personnelAll.jsx 192 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830
  1. import React from "react";
  2. import $ from "jquery/src/ajax";
  3. import moment from "moment";
  4. import "@/manageCenter/financialManage/distribute/public.less";
  5. import { ChooseList } from "../../order/orderNew/chooseList";
  6. import { citySelect, provinceList, areaSelect, Birthplace } from "@/areaList";
  7. import "./personnelList.less"
  8. import {
  9. Button,
  10. Form,
  11. Input,
  12. Select,
  13. Spin,
  14. Table,
  15. message,
  16. Modal,
  17. Tabs,
  18. Tag,
  19. RangePicker,
  20. DatePicker,
  21. Radio,
  22. Cascader,
  23. Upload,
  24. Tooltip,
  25. } from "antd";
  26. import { splitUrl } from "@/tools";
  27. import { getProvinceList } from "@/addressList";
  28. import PicModal from "./picModal"
  29. import AddPicModal from "./addPicModal";
  30. const FormItem = Form.Item;
  31. const { TabPane } = Tabs;
  32. const { TextArea } = Input;
  33. const PersonnelAll = React.createClass({
  34. loadData(pageNo) {
  35. this.state.data = [];
  36. this.setState({
  37. loading: true,
  38. });
  39. $.ajax({
  40. method: "get",
  41. dataType: "json",
  42. crossDomain: false,
  43. url: globalConfig.context + "/api/admin/personnel/selectList",
  44. data: {
  45. pageNo: pageNo || 1,
  46. pageSize: this.state.pagination.pageSize,
  47. name: this.state.nameSearch,
  48. status: this.state.statusSearch,
  49. company: this.state.departmenttList,
  50. sex: this.state.sexSearch,
  51. marriage: this.state.marriageSearch,
  52. politicalOutlook: this.state.politicalOutlookSearch,
  53. birthdayMonth: this.state.birthdayMonthSearch,
  54. promotionStart: this.state.promotionTime[0],
  55. promotionEnd: this.state.promotionTime[1],
  56. entryStart: this.state.entryTime[0],
  57. entryStart: this.state.entryTime[1],
  58. quitStart: this.state.quitTime[0],
  59. quitEnd: this.state.quitTime[1],
  60. system: this.state.systemSearch,
  61. workingYears: this.state.workingYearsSearch,
  62. education: this.state.educationSearch,
  63. contractStart: this.state.contractTime[0],
  64. contractEnd: this.state.contractTime[1],
  65. },
  66. success: function (data) {
  67. let theArr = [];
  68. if (!data.data || !data.data.list) {
  69. if (data.error && data.error.length) {
  70. message.warning(data.error[0].message);
  71. }
  72. } else {
  73. for (let i = 0; i < data.data.list.length; i++) {
  74. let thisdata = data.data.list[i];
  75. thisdata.key = thisdata.id;
  76. theArr.push(thisdata);
  77. }
  78. }
  79. this.state.pagination.current = data.data.pageNo;
  80. this.state.pagination.total = data.data.totalCount;
  81. if (data.data && data.data.list && !data.data.list.length) {
  82. this.state.pagination.current = 0;
  83. this.state.pagination.total = 0;
  84. }
  85. this.setState({
  86. dataSource: theArr,
  87. pagination: this.state.pagination,
  88. });
  89. }.bind(this),
  90. }).always(
  91. function () {
  92. this.setState({
  93. loading: false,
  94. });
  95. }.bind(this)
  96. );
  97. },
  98. getInitialState() {
  99. return {
  100. active: "1",
  101. detailFlag: false,
  102. editWelfareData: {},
  103. contractList: [],
  104. quitList: [],
  105. chooseList: [],
  106. starArr: [],
  107. starArrs: [],
  108. annexName: "",
  109. annexUrl: "",
  110. voucherUrl: [],
  111. ModalData: [],
  112. contractTime: [],
  113. contactList: [],
  114. quitTime: [],
  115. promotionList: [],
  116. promotionTime: [],
  117. entryTime: [],
  118. pic: [],
  119. previewImage: "",
  120. peoVisible: false,
  121. phoneVisible: false,
  122. isAddPeo: false,
  123. searchMore: true,
  124. stayVisible: false,
  125. assignVisible: false,
  126. releaseDate: [],
  127. residence: [],
  128. nativePlace: [],
  129. now: [],
  130. roleName: "",
  131. shouKuanDate: [],
  132. boHuivisible: false,
  133. departmentArr: [],
  134. selectedRowKeys: [],
  135. selectedRows: [],
  136. paginations: false,
  137. loading: false,
  138. pagination: {
  139. defaultCurrent: 1,
  140. defaultPageSize: 10,
  141. showQuickJumper: true,
  142. pageSize: 10,
  143. onChange: function (page) {
  144. this.loadData(page);
  145. }.bind(this),
  146. showTotal: function (total) {
  147. return "共" + total + "条数据";
  148. },
  149. },
  150. columns: [
  151. {
  152. title: "员工编号",
  153. dataIndex: "employeeId",
  154. key: "employeeId",
  155. },
  156. {
  157. title: "门禁编号",
  158. dataIndex: "doorId",
  159. key: "doorId",
  160. },
  161. {
  162. title: "名称",
  163. dataIndex: "name",
  164. key: "name",
  165. },
  166. {
  167. title: "员工状态",
  168. dataIndex: "statusName",
  169. key: "statusName",
  170. },
  171. {
  172. title: "所属系统",
  173. dataIndex: "systemName",
  174. key: "systemName",
  175. },
  176. {
  177. title: "公司名称",
  178. dataIndex: "depName",
  179. key: "depName",
  180. },
  181. {
  182. title: "职位名称",
  183. dataIndex: "jobsName",
  184. key: "jobsName",
  185. },
  186. {
  187. title: "等级名称",
  188. dataIndex: "starName",
  189. key: "starName",
  190. },
  191. {
  192. title: "入职时间",
  193. dataIndex: "entryTimes",
  194. key: "entryTimes",
  195. },
  196. {
  197. title: "转正时间",
  198. dataIndex: "promotionTimes",
  199. key: "promotionTimes",
  200. render: (text) => {
  201. let time = moment(text).valueOf();
  202. let today = Date.parse(new Date());
  203. let sevenDay = 604800000;
  204. if (time - today < sevenDay) {
  205. return (
  206. <span style={{ color: "red", fontWeight: 900 }}>{text}</span>
  207. );
  208. }
  209. return text;
  210. },
  211. },
  212. {
  213. title: "生日日期",
  214. dataIndex: "birthdays",
  215. key: "birthdays",
  216. },
  217. {
  218. title: "性别",
  219. dataIndex: "sex",
  220. key: "sex",
  221. render: (text) => {
  222. if (text == 0) {
  223. return "男";
  224. } else if (text == 1) {
  225. return "女";
  226. }
  227. },
  228. },
  229. {
  230. title: "婚姻状态",
  231. dataIndex: "marriageName",
  232. key: "marriageName",
  233. },
  234. {
  235. title: "子/女",
  236. dataIndex: "son",
  237. key: "son",
  238. render: (text, record) => {
  239. return <span>{text + "/" + record.girl}</span>;
  240. },
  241. },
  242. {
  243. title: "政治面貌",
  244. dataIndex: "politicalOutlookName",
  245. key: "politicalOutlookName",
  246. },
  247. {
  248. title: "教育经历",
  249. dataIndex: "educationName",
  250. key: "educationName",
  251. },
  252. {
  253. title: "毕业学校",
  254. dataIndex: "school",
  255. key: "school",
  256. },
  257. {
  258. title: "专业",
  259. dataIndex: "major",
  260. key: "major",
  261. },
  262. {
  263. title: "职称",
  264. dataIndex: "title",
  265. key: "title",
  266. },
  267. {
  268. title: "晋升备注",
  269. dataIndex: "promotionRemarks",
  270. key: "promotionRemarks",
  271. },
  272. {
  273. title: "晋升时间",
  274. dataIndex: "promotionTime",
  275. key: "promotionTime",
  276. },
  277. {
  278. title: "合同时间",
  279. dataIndex: "contractStart",
  280. key: "contractStart",
  281. render: (text, record) => {
  282. let end = moment(record.contractEnd).valueOf();
  283. let today = Date.parse(new Date());
  284. let sevenDay = 604800000;
  285. if (text) {
  286. if (end - today < sevenDay) {
  287. return (
  288. <span style={{ color: "red", fontWeight: 900 }}>
  289. {text + "~" + record.contractEnd}
  290. </span>
  291. );
  292. }
  293. return text + "~" + record.contractEnd;
  294. }
  295. },
  296. },
  297. {
  298. title: "手机号码",
  299. dataIndex: "mobile",
  300. key: "mobile",
  301. },
  302. {
  303. title: "电话",
  304. dataIndex: "fixedTel",
  305. key: "fixedTel",
  306. },
  307. {
  308. title: "身份证",
  309. dataIndex: "idCard",
  310. key: "idCard",
  311. },
  312. {
  313. title: "发证机构",
  314. dataIndex: "certificationAuthority",
  315. key: "certificationAuthority",
  316. },
  317. {
  318. title: "户籍地址",
  319. dataIndex: "residenceName",
  320. key: "residenceName",
  321. },
  322. {
  323. title: "籍贯",
  324. dataIndex: "nativePlaceName",
  325. key: "nativePlaceName",
  326. },
  327. {
  328. title: "现住地址",
  329. dataIndex: "nowName",
  330. key: "nowName",
  331. },
  332. {
  333. title: "离职时间",
  334. dataIndex: "quitTime",
  335. key: "quitTime",
  336. },
  337. {
  338. title: "工作年限",
  339. dataIndex: "workingYear",
  340. key: "workingYear",
  341. },
  342. {
  343. title: "年龄",
  344. dataIndex: "age",
  345. key: "age",
  346. },
  347. {
  348. title: "出生月份",
  349. dataIndex: "month",
  350. key: "month",
  351. },
  352. {
  353. title: "参保时间",
  354. dataIndex: "insuranceStartTimes",
  355. key: "insuranceStartTimes",
  356. },
  357. {
  358. title: "停保时间",
  359. dataIndex: "insuranceEndTimes",
  360. key: "insuranceEndTimes",
  361. },
  362. {
  363. title: "公积金时间",
  364. dataIndex: "fundStartTimes",
  365. key: "fundStartTimes",
  366. },
  367. {
  368. title: "停办公积金时间",
  369. dataIndex: "fundEndTimes",
  370. key: "fundEndTimes",
  371. },
  372. ],
  373. dataSource: [],
  374. resVisible: false,
  375. welfareColumns: [
  376. {
  377. title: "福利类型",
  378. dataIndex: "type",
  379. key: "type",
  380. render: (text) => {
  381. if (text == 0) {
  382. return "社保";
  383. } else if (text == 1) {
  384. return "公积金";
  385. } else if (text == 2) {
  386. return "雇主险";
  387. }
  388. },
  389. },
  390. {
  391. title: "购买状态",
  392. dataIndex: "status",
  393. key: "status",
  394. render: (text) => {
  395. if (text == 0) {
  396. return "未购买";
  397. } else if (text == 1) {
  398. return "已购买";
  399. } else if (text == 2) {
  400. return "已停止";
  401. }
  402. },
  403. },
  404. {
  405. title: "购买时间",
  406. dataIndex: "startTimes",
  407. key: "startTimes",
  408. },
  409. {
  410. title: "停缴时间",
  411. dataIndex: "endTimes",
  412. key: "endTimes",
  413. },
  414. {
  415. title: "公司名称",
  416. dataIndex: "depName",
  417. key: "depName",
  418. },
  419. {
  420. title: "备注信息",
  421. dataIndex: "welfareRemarks",
  422. key: "welfareRemarks",
  423. },
  424. ],
  425. welfareColumnsEdit: [
  426. {
  427. title: "福利类型",
  428. dataIndex: "type",
  429. key: "type",
  430. render: (text) => {
  431. if (text == 0) {
  432. return "社保";
  433. } else if (text == 1) {
  434. return "公积金";
  435. } else if (text == 2) {
  436. return "雇主险";
  437. }
  438. },
  439. },
  440. {
  441. title: "购买状态",
  442. dataIndex: "status",
  443. key: "status",
  444. render: (text) => {
  445. if (text == 0) {
  446. return "未购买";
  447. } else if (text == 1) {
  448. return "已购买";
  449. } else if (text == 2) {
  450. return "已停止";
  451. }
  452. },
  453. },
  454. {
  455. title: "购买时间",
  456. dataIndex: "startTimes",
  457. key: "startTimes",
  458. },
  459. {
  460. title: "停缴时间",
  461. dataIndex: "endTimes",
  462. key: "endTimes",
  463. },
  464. {
  465. title: "公司名称",
  466. dataIndex: "depName",
  467. key: "depName",
  468. },
  469. {
  470. title: "备注信息",
  471. dataIndex: "welfareRemarks",
  472. key: "welfareRemarks",
  473. },
  474. {
  475. title: "操作",
  476. dataIndex: "caozuo",
  477. key: "caozuo",
  478. render: (text, record) => {
  479. return (
  480. <Button
  481. type="primary"
  482. onClick={(e) => {
  483. this.welfareTable(record);
  484. }}
  485. >
  486. 修改
  487. </Button>
  488. );
  489. },
  490. },
  491. ],
  492. table: [
  493. {
  494. key: "员工编号",
  495. value: "employeeId",
  496. },
  497. {
  498. key: "姓名",
  499. value: "name",
  500. },
  501. {
  502. key: "出生日期",
  503. value: "birthdays",
  504. },
  505. {
  506. key: "出生月份",
  507. value: "month",
  508. },
  509. {
  510. key: "门禁编号",
  511. value: "doorId",
  512. },
  513. {
  514. key: "性别",
  515. value: "sex",
  516. render: (e) => {
  517. if (e == 0) {
  518. return "男";
  519. } else if (e == 1) {
  520. return "女";
  521. }
  522. },
  523. },
  524. {
  525. key: "年龄",
  526. value: "age",
  527. },
  528. {
  529. key: "民族",
  530. value: "nation",
  531. },
  532. {
  533. key: "户籍地址",
  534. value: "residenceName",
  535. },
  536. {
  537. key: "籍贯",
  538. value: "nativePlaceName",
  539. },
  540. {
  541. key: "身份证",
  542. value: "idCard",
  543. },
  544. {
  545. key: "领证机关",
  546. value: "certificationAuthority",
  547. },
  548. {
  549. key: "现住地址",
  550. value: "nowName",
  551. },
  552. {
  553. key: "婚姻状态",
  554. value: "marriageName",
  555. },
  556. {
  557. key: "子/女",
  558. value: "son",
  559. render: (e, i) => {
  560. return e + "/" + i;
  561. },
  562. },
  563. {
  564. key: "政治面貌",
  565. value: "politicalOutlookName",
  566. },
  567. ],
  568. };
  569. },
  570. componentWillMount() {
  571. let areaArr = getProvinceList();
  572. let Area = areaSelect(areaArr);
  573. let Birthplaces = Birthplace(areaArr);
  574. this.setState({
  575. Area,
  576. Birthplaces: Birthplaces,
  577. });
  578. //城市
  579. let Province = [];
  580. areaArr.map(function (item) {
  581. var id = String(item.id);
  582. Province.push(
  583. <Select.Option value={id} key={item.name}>
  584. {item.name}
  585. </Select.Option>
  586. );
  587. });
  588. this.state.Provinces = Province;
  589. this.loadData();
  590. this.departmentList();
  591. },
  592. export() {
  593. const data = {
  594. pageSize: 9999,
  595. name: this.state.nameSearch ? this.state.nameSearch : undefined,
  596. status: this.state.statusSearch ? this.state.statusSearch : undefined,
  597. company: this.state.departmenttList
  598. ? this.state.departmenttList
  599. : undefined,
  600. sex: this.state.sexSearch ? this.state.sexSearch : undefined,
  601. marriage: this.state.marriageSearch
  602. ? this.state.marriageSearch
  603. : undefined,
  604. politicalOutlook: this.state.politicalOutlookSearch
  605. ? this.state.politicalOutlookSearch
  606. : undefined,
  607. birthdayMonth: this.state.birthdayMonthSearch
  608. ? this.state.birthdayMonthSearch
  609. : undefined,
  610. promotionStart: this.state.promotionTime[0]
  611. ? this.state.promotionTime[0]
  612. : undefined,
  613. promotionEnd: this.state.promotionTime[1]
  614. ? this.state.promotionTime[1]
  615. : undefined,
  616. entryStart: this.state.entryTime[0] ? this.state.entryTime[0] : undefined,
  617. entryStart: this.state.entryTime[1] ? this.state.entryTime[1] : undefined,
  618. quitStart: this.state.quitTime[0] ? this.state.quitTime[0] : undefined,
  619. quitEnd: this.state.quitTime[1] ? this.state.quitTime[1] : undefined,
  620. system: this.state.systemSearch ? this.state.systemSearch : undefined,
  621. workingYears: this.state.workingYearsSearch
  622. ? this.state.workingYearsSearch
  623. : undefined,
  624. education: this.state.educationSearch
  625. ? this.state.educationSearch
  626. : undefined,
  627. contractStart: this.state.contractTime[0]
  628. ? this.state.contractTime[0]
  629. : undefined,
  630. contractEnd: this.state.contractTime[1]
  631. ? this.state.contractTime[1]
  632. : undefined,
  633. };
  634. for(let key in data) {
  635. if(!data[key]) {
  636. delete data[key]
  637. console.log(data);
  638. }
  639. }
  640. window.location.href =
  641. globalConfig.context +
  642. "/api/admin/personnel/exportPersonnelList?" +
  643. $.param(data);
  644. },
  645. departmentList() {
  646. $.ajax({
  647. method: "get",
  648. dataType: "json",
  649. crossDomain: false,
  650. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  651. data: {},
  652. success: function (data) {
  653. let thedata = data.data;
  654. let theArr = [];
  655. if (!thedata) {
  656. if (data.error && data.error.length) {
  657. message.warning(data.error[0].message);
  658. }
  659. } else {
  660. thedata.map(function (item, index) {
  661. theArr.push({
  662. key: index,
  663. name: item.name,
  664. id: item.id,
  665. });
  666. });
  667. }
  668. this.setState({
  669. departmentArr: theArr,
  670. });
  671. }.bind(this),
  672. });
  673. },
  674. welfareTable(record) {
  675. this.setState({
  676. editWelfareVisible: true,
  677. });
  678. if (record) {
  679. this.setState({
  680. editWelfareData: record,
  681. });
  682. } else {
  683. let editWelfareData = {
  684. status: undefined,
  685. id: undefined,
  686. depId: [],
  687. pdId: this.state.ModalData.id,
  688. type: undefined,
  689. welfareRemarks: undefined,
  690. endTimes: undefined,
  691. startTimes: undefined,
  692. };
  693. this.setState({
  694. editWelfareData
  695. });
  696. }
  697. },
  698. editWelfareDataOk() {
  699. this.setState({
  700. loading: true,
  701. });
  702. $.ajax({
  703. method: "post",
  704. dataType: "json",
  705. crossDomain: false,
  706. url: globalConfig.context + "/api/admin/personnel/updateWelfare",
  707. data: {
  708. startTimes:
  709. this.state.editWelfareData.status == 1 ||
  710. this.state.editWelfareData.status == 2
  711. ? this.state.editWelfareData.startTimes
  712. : "",
  713. endTimes:
  714. this.state.editWelfareData.status == 2
  715. ? this.state.editWelfareData.endTimes
  716. : "",
  717. pdId: this.state.editWelfareData.pdId,
  718. welfareRemarks:
  719. this.state.editWelfareData.status == 0
  720. ? this.state.editWelfareData.welfareRemarks
  721. : "",
  722. type: this.state.editWelfareData.type,
  723. id: this.state.editWelfareData.id,
  724. status: this.state.editWelfareData.status,
  725. depId: this.state.editWelfareData.status == 0 ? "" : this.state.editWelfareData.depId,
  726. },
  727. success: function (data) {
  728. let theArr = [];
  729. if (data.error && data.error.length) {
  730. message.warning(data.error[0].message);
  731. } else {
  732. message.success("修改成功!");
  733. this.loadData();
  734. this.tableRowClick(this.state.ModalData);
  735. this.setState({
  736. editWelfareVisible: false,
  737. });
  738. }
  739. }.bind(this),
  740. }).always(
  741. function () {
  742. this.setState({
  743. loading: false,
  744. });
  745. }.bind(this)
  746. );
  747. },
  748. getWelfareData() {
  749. this.setState({
  750. loading: true,
  751. });
  752. $.ajax({
  753. method: "post",
  754. dataType: "json",
  755. crossDomain: false,
  756. url: globalConfig.context + "/api/admin/personnel/add",
  757. data: {
  758. name: this.state.name,
  759. doorId: this.state.doorId,
  760. sex: this.state.sex,
  761. nation: this.state.nation,
  762. residenceProvince: this.state.residence[0],
  763. residenceCity: this.state.residence[1],
  764. residenceArea: this.state.residence[2],
  765. residenceAddress: this.state.residenceAddress,
  766. nativePlaceProvince: this.state.nativePlace[0],
  767. nativePlaceCity: this.state.nativePlace[1],
  768. nowProvince: this.state.now[0],
  769. nowCity: this.state.now[1],
  770. nowArea: this.state.now[2],
  771. nowAddress: this.state.nowAddress,
  772. idCard: this.state.idCard,
  773. certificationAuthority: this.state.certificationAuthority,
  774. marriage: this.state.marriage,
  775. politicalOutlook: this.state.politicalOutlook,
  776. son: this.state.son,
  777. girl: this.state.girl,
  778. birthdays: this.state.birthdays,
  779. marriage: this.state.marriage,
  780. },
  781. success: function (data) {
  782. let theArr = [];
  783. if (data.error && data.error.length) {
  784. message.warning(data.error[0].message);
  785. } else {
  786. message.success("添加成功!");
  787. this.loadData();
  788. this.addPeoCancel();
  789. }
  790. }.bind(this),
  791. }).always(
  792. function () {
  793. this.setState({
  794. loading: false,
  795. });
  796. }.bind(this)
  797. );
  798. },
  799. changeList(arr) {
  800. const newArr = [];
  801. this.state.columns.forEach((item) => {
  802. arr.forEach((val) => {
  803. if (val === item.title) {
  804. newArr.push(item);
  805. }
  806. });
  807. });
  808. this.setState({
  809. changeList: newArr,
  810. });
  811. },
  812. addPeo() {
  813. this.setState({
  814. peoVisible: true,
  815. isAddPeo: true,
  816. });
  817. },
  818. addPeoCancel() {
  819. this.setState({
  820. id: undefined,
  821. peoVisible: false,
  822. isAddPeo: false,
  823. name: undefined,
  824. doorId: undefined,
  825. sex: undefined,
  826. nation: undefined,
  827. residence: [],
  828. residenceAddress: undefined,
  829. nativePlace: [],
  830. now: [],
  831. nowAddress: undefined,
  832. idCard: undefined,
  833. certificationAuthority: undefined,
  834. marriage: undefined,
  835. politicalOutlook: undefined,
  836. employeeId: undefined,
  837. son: undefined,
  838. girl: undefined,
  839. birthdays: undefined,
  840. marriage: undefined,
  841. });
  842. },
  843. verifyDoor() {
  844. this.setState({
  845. loading: true,
  846. });
  847. $.ajax({
  848. method: "get",
  849. dataType: "json",
  850. crossDomain: false,
  851. url: globalConfig.context + "/api/admin/personnel/checkDoorId",
  852. data: {
  853. doorId: this.state.doorId,
  854. id: this.state.id,
  855. },
  856. success: function (data) {
  857. if (data.error && data.error.length) {
  858. message.warning(data.error[0].message);
  859. } else {
  860. message.success("此编号未被占用");
  861. }
  862. }.bind(this),
  863. }).always(
  864. function () {
  865. this.setState({
  866. loading: false,
  867. });
  868. }.bind(this)
  869. );
  870. },
  871. verifyId() {
  872. this.setState({
  873. loading: true,
  874. });
  875. $.ajax({
  876. method: "get",
  877. dataType: "json",
  878. crossDomain: false,
  879. url: globalConfig.context + "/api/admin/personnel/checkEmployeeId",
  880. data: {
  881. employeeId: this.state.employeeId,
  882. id: this.state.id
  883. },
  884. success: function (data) {
  885. if (data.error && data.error.length) {
  886. message.warning(data.error[0].message);
  887. } else {
  888. message.success("此编号未被占用");
  889. }
  890. }.bind(this),
  891. }).always(
  892. function () {
  893. this.setState({
  894. loading: false,
  895. });
  896. }.bind(this)
  897. );
  898. },
  899. addOk() {
  900. this.setState({
  901. loading: true,
  902. });
  903. $.ajax({
  904. method: "post",
  905. dataType: "json",
  906. crossDomain: false,
  907. url: globalConfig.context + "/api/admin/personnel/add",
  908. data: {
  909. name: this.state.name,
  910. doorId: this.state.doorId,
  911. sex: this.state.sex,
  912. nation: this.state.nation,
  913. residenceProvince: this.state.residence[0],
  914. residenceCity: this.state.residence[1],
  915. residenceArea: this.state.residence[2],
  916. residenceAddress: this.state.residenceAddress,
  917. nativePlaceProvince: this.state.nativePlace[0],
  918. nativePlaceCity: this.state.nativePlace[1],
  919. nowProvince: this.state.now[0],
  920. nowCity: this.state.now[1],
  921. nowArea: this.state.now[2],
  922. nowAddress: this.state.nowAddress,
  923. idCard: this.state.idCard,
  924. certificationAuthority: this.state.certificationAuthority,
  925. marriage: this.state.marriage,
  926. politicalOutlook: this.state.politicalOutlook,
  927. son: this.state.son,
  928. girl: this.state.girl,
  929. birthdays: this.state.birthdays,
  930. marriage: this.state.marriage,
  931. employeeId: this.state.employeeId,
  932. },
  933. success: function (data) {
  934. let theArr = [];
  935. if (data.error && data.error.length) {
  936. message.warning(data.error[0].message);
  937. } else {
  938. message.success("添加成功!");
  939. this.loadData();
  940. this.addPeoCancel();
  941. }
  942. }.bind(this),
  943. }).always(
  944. function () {
  945. this.setState({
  946. loading: false,
  947. });
  948. }.bind(this)
  949. );
  950. },
  951. editOk() {
  952. this.setState({
  953. loading: true,
  954. });
  955. $.ajax({
  956. method: "post",
  957. dataType: "json",
  958. crossDomain: false,
  959. url: globalConfig.context + "/api/admin/personnel/update",
  960. data: {
  961. id: this.state.id,
  962. name: this.state.name,
  963. doorId: this.state.doorId,
  964. sex: this.state.sex,
  965. nation: this.state.nation,
  966. residenceProvince: this.state.residence[0],
  967. residenceCity: this.state.residence[1],
  968. residenceArea: this.state.residence[2],
  969. residenceAddress: this.state.residenceAddress,
  970. nativePlaceProvince: this.state.nativePlace[0],
  971. nativePlaceCity: this.state.nativePlace[1],
  972. nowProvince: this.state.now[0],
  973. nowCity: this.state.now[1],
  974. nowArea: this.state.now[2],
  975. nowAddress: this.state.nowAddress,
  976. idCard: this.state.idCard,
  977. certificationAuthority: this.state.certificationAuthority,
  978. marriage: this.state.marriage,
  979. politicalOutlook: this.state.politicalOutlook,
  980. son: this.state.son,
  981. girl: this.state.girl,
  982. birthdays: this.state.birthdays,
  983. marriage: this.state.marriage,
  984. employeeId: this.state.employeeId,
  985. },
  986. success: function (data) {
  987. let theArr = [];
  988. if (data.error && data.error.length) {
  989. message.warning(data.error[0].message);
  990. } else {
  991. message.success("修改成功!");
  992. this.loadData();
  993. this.tableRowClick(this.state.ModalData);
  994. this.addPeoCancel();
  995. }
  996. }.bind(this),
  997. }).always(
  998. function () {
  999. this.setState({
  1000. loading: false,
  1001. });
  1002. }.bind(this)
  1003. );
  1004. },
  1005. editPeo() {
  1006. this.state.residence[0] = this.state.ModalData.residenceProvince;
  1007. this.state.residence[1] = this.state.ModalData.residenceCity;
  1008. this.state.residence[2] = this.state.ModalData.residenceArea;
  1009. this.state.nativePlace[0] = this.state.ModalData.nativePlaceProvince;
  1010. this.state.nativePlace[1] = this.state.ModalData.nativePlaceCity;
  1011. this.state.now[0] = this.state.ModalData.nowProvince;
  1012. this.state.now[1] = this.state.ModalData.nowCity;
  1013. this.state.now[2] = this.state.ModalData.nowArea;
  1014. this.setState({
  1015. peoVisible: true,
  1016. isAddPeo: false,
  1017. id: this.state.ModalData.id,
  1018. doorId: this.state.ModalData.doorId,
  1019. name: this.state.ModalData.name,
  1020. birthdays: this.state.ModalData.birthdays,
  1021. sex: this.state.ModalData.sex,
  1022. nation: this.state.ModalData.nation,
  1023. residence: this.state.residence ? this.state.residence : [],
  1024. residenceAddress: this.state.ModalData.residenceAddress,
  1025. now: this.state.now ? this.state.now : [],
  1026. nowAddress: this.state.ModalData.nowAddress,
  1027. nativePlace: this.state.nativePlace ? this.state.nativePlace : [],
  1028. idCard: this.state.ModalData.idCard,
  1029. certificationAuthority: this.state.ModalData.certificationAuthority,
  1030. marriage: this.state.ModalData.marriage,
  1031. son: this.state.ModalData.son,
  1032. girl: this.state.ModalData.girl,
  1033. politicalOutlook: this.state.ModalData.politicalOutlook || this.state.ModalData.politicalOutlook == 0
  1034. ? this.state.ModalData.politicalOutlook
  1035. : undefined,
  1036. marriage: this.state.ModalData.marriage,
  1037. employeeId: this.state.ModalData.employeeId,
  1038. });
  1039. },
  1040. stayModal(id) {
  1041. this.setState({
  1042. stayVisible: true,
  1043. });
  1044. this.setState({
  1045. loading: true,
  1046. });
  1047. $.ajax({
  1048. method: "get",
  1049. dataType: "json",
  1050. crossDomain: false,
  1051. url: globalConfig.context + "/api/admin/personnel/selectBypdId",
  1052. data: {
  1053. id: id,
  1054. },
  1055. success: function (data) {
  1056. let res = data.data;
  1057. let theArr = [];
  1058. if (data.error && data.error.length) {
  1059. message.warning(data.error[0].message);
  1060. } else {
  1061. this.setState({
  1062. id: res.id,
  1063. status: res.status + "",
  1064. system: res.system + "",
  1065. jobNature: res.jobNature,
  1066. jobNatureRemarks: res.jobNatureRemarks,
  1067. age: res.age,
  1068. entryTimes: res.entryTimes,
  1069. promotionTimes: res.promotionTimes,
  1070. company: res.company,
  1071. lvl: res.lvl ? res.lvl + "" : [],
  1072. jobs: res.jobs ? res.jobs + "" : [],
  1073. star: res.star ? res.star + "" : [],
  1074. allowance: res.allowance,
  1075. });
  1076. this.getList();
  1077. }
  1078. }.bind(this),
  1079. }).always(
  1080. function () {
  1081. this.setState({
  1082. loading: false,
  1083. });
  1084. }.bind(this)
  1085. );
  1086. },
  1087. stayCancel() {
  1088. this.setState({
  1089. stayVisible: false,
  1090. });
  1091. },
  1092. editStay() {
  1093. if (this.state.star == "" || this.state.star == undefined) {
  1094. message.warning("请选择星级");
  1095. return;
  1096. }
  1097. this.setState({
  1098. loading: true,
  1099. });
  1100. $.ajax({
  1101. method: "post",
  1102. dataType: "json",
  1103. crossDomain: false,
  1104. url: globalConfig.context + "/api/admin/personnel/update",
  1105. data: {
  1106. id: this.state.id,
  1107. status: this.state.status,
  1108. system: this.state.system,
  1109. jobNature: this.state.jobNature,
  1110. jobNatureRemarks: this.state.jobNatureRemarks,
  1111. entryTimes: this.state.entryTimes,
  1112. promotionTimes: this.state.promotionTimes,
  1113. company: this.state.company,
  1114. lvl: this.state.lvl,
  1115. jobs: this.state.jobs,
  1116. star: this.state.star,
  1117. allowance: this.state.allowance,
  1118. },
  1119. success: function (data) {
  1120. let res = data.data;
  1121. let theArr = [];
  1122. if (data.error && data.error.length) {
  1123. message.warning(data.error[0].message);
  1124. } else {
  1125. this.setState({
  1126. stayVisible: false,
  1127. });
  1128. this.tableRowClick(this.state.ModalData);
  1129. message.success("提交成功");
  1130. }
  1131. }.bind(this),
  1132. }).always(
  1133. function () {
  1134. this.setState({
  1135. loading: false,
  1136. });
  1137. }.bind(this)
  1138. );
  1139. },
  1140. phoneModal() {
  1141. let obj = [
  1142. {
  1143. id: undefined,
  1144. pdid: this.state.ModalData.id,
  1145. emergencyContact: "",
  1146. emergencyMobile: "",
  1147. },
  1148. {
  1149. id: undefined,
  1150. pdid: this.state.ModalData.id,
  1151. emergencyContact: "",
  1152. emergencyMobile: "",
  1153. },
  1154. {
  1155. id: undefined,
  1156. pdid: this.state.ModalData.id,
  1157. emergencyContact: "",
  1158. emergencyMobile: "",
  1159. },
  1160. ];
  1161. this.setState({
  1162. phoneVisible: true,
  1163. id: this.state.ModalData.id,
  1164. mobile: this.state.ModalData.mobile,
  1165. fixedTel: this.state.ModalData.fixedTel,
  1166. contactList: this.state.ModalData.contactList.length
  1167. ? JSON.parse(JSON.stringify(this.state.ModalData.contactList))
  1168. : obj,
  1169. });
  1170. },
  1171. phoneCancel() {
  1172. this.setState({
  1173. phoneVisible: false,
  1174. });
  1175. },
  1176. editPhone() {
  1177. this.setState({
  1178. loading: true,
  1179. });
  1180. $.ajax({
  1181. method: "post",
  1182. dataType: "json",
  1183. crossDomain: false,
  1184. url: globalConfig.context + "/api/admin/personnel/updateContact",
  1185. data: {
  1186. id: this.state.id,
  1187. mobile: this.state.mobile,
  1188. fixedTel: this.state.fixedTel,
  1189. contactList: JSON.stringify(this.state.contactList),
  1190. },
  1191. success: function (data) {
  1192. let theArr = [];
  1193. if (data.error && data.error.length) {
  1194. message.warning(data.error[0].message);
  1195. } else {
  1196. this.loadData();
  1197. this.phoneCancel();
  1198. this.tableRowClick(this.state.ModalData);
  1199. message.success("修改成功");
  1200. }
  1201. }.bind(this),
  1202. }).always(
  1203. function () {
  1204. this.setState({
  1205. loading: false,
  1206. });
  1207. }.bind(this)
  1208. );
  1209. },
  1210. entryModal() {
  1211. this.setState({
  1212. entryVisible: true,
  1213. });
  1214. this.setState({
  1215. loading: true,
  1216. });
  1217. $.ajax({
  1218. method: "get",
  1219. dataType: "json",
  1220. crossDomain: false,
  1221. url: globalConfig.context + "/api/admin/personnel/selectBypdId",
  1222. data: {
  1223. id: this.state.ModalData.id,
  1224. },
  1225. success: function (data) {
  1226. let theArr = [];
  1227. if (data.error && data.error.length) {
  1228. message.warning(data.error[0].message);
  1229. } else {
  1230. this.setState({
  1231. id: data.data.personnelEntry ? data.data.personnelEntry.id : "",
  1232. school: data.data.personnelEntry
  1233. ? data.data.personnelEntry.school
  1234. : "",
  1235. education: data.data.personnelEntry
  1236. ? data.data.personnelEntry.education
  1237. : "",
  1238. major: data.data.personnelEntry
  1239. ? data.data.personnelEntry.major
  1240. : "",
  1241. title: data.data.personnelEntry
  1242. ? data.data.personnelEntry.title
  1243. : "",
  1244. entryRemarks: data.data.personnelEntry
  1245. ? data.data.personnelEntry.entryRemarks
  1246. : "",
  1247. annexUrl: data.data.personnelEntry
  1248. ? data.data.personnelEntry.annexUrl
  1249. ? data.data.personnelEntry.annexUrl
  1250. : ""
  1251. : "",
  1252. annexName: data.data.personnelEntry
  1253. ? data.data.personnelEntry.annexName
  1254. ? data.data.personnelEntry.annexName
  1255. : ""
  1256. : "",
  1257. });
  1258. // }
  1259. }
  1260. }.bind(this),
  1261. }).always(
  1262. function () {
  1263. this.setState({
  1264. loading: false,
  1265. });
  1266. }.bind(this)
  1267. );
  1268. },
  1269. entryCancel() {
  1270. this.tableRowClick(this.state.ModalData);
  1271. this.setState({
  1272. entryVisible: false,
  1273. });
  1274. },
  1275. cancel() {
  1276. this.setState({
  1277. visible: false,
  1278. detailFlag: false,
  1279. active: "1",
  1280. });
  1281. },
  1282. tableRowClick(record) {
  1283. this.setState({
  1284. visible: true,
  1285. id: record.id,
  1286. });
  1287. this.setState({
  1288. loading: true,
  1289. });
  1290. $.ajax({
  1291. method: "get",
  1292. dataType: "json",
  1293. crossDomain: false,
  1294. url: globalConfig.context + "/api/admin/personnel/selectBypdId",
  1295. data: {
  1296. id: record.id,
  1297. },
  1298. success: function (data) {
  1299. let theArr = [];
  1300. if (data.error && data.error.length) {
  1301. message.warning(data.error[0].message);
  1302. } else {
  1303. this.setState({
  1304. ModalData: data.data,
  1305. });
  1306. }
  1307. }.bind(this),
  1308. }).always(
  1309. function () {
  1310. this.setState({
  1311. loading: false,
  1312. });
  1313. }.bind(this)
  1314. );
  1315. },
  1316. search() {
  1317. this.loadData();
  1318. },
  1319. addPic() {
  1320. this.setState({
  1321. addPicModal: true,
  1322. });
  1323. },
  1324. addPicModalCancel() {
  1325. this.setState({
  1326. addPicModal: false,
  1327. });
  1328. },
  1329. getVoucherUrl(e) {
  1330. this.setState({
  1331. voucherUrl: e,
  1332. });
  1333. },
  1334. add() {
  1335. if (this.state.entryVisible) {
  1336. return this.addRuzhi;
  1337. } else if (this.state.upgradeVisible) {
  1338. return this.addJinsheng;
  1339. } else if (this.state.contractVisible) {
  1340. return this.addContract;
  1341. } else if (this.state.chooseVisible) {
  1342. return this.addChoose;
  1343. } else if (this.state.quitVisible) {
  1344. return this.addQuit;
  1345. } else if (this.state.welfareVisible) {
  1346. return this.addWelfare;
  1347. }
  1348. },
  1349. addRuzhi(e, i) {
  1350. this.setState({
  1351. addPicModal: false,
  1352. });
  1353. if (this.state.annexUrl.length > 0) {
  1354. this.state.annexUrl += "," + e;
  1355. this.state.annexName += "," + i;
  1356. } else {
  1357. this.state.annexUrl += e;
  1358. this.state.annexName += i;
  1359. }
  1360. this.setState({
  1361. annexUrl: this.state.annexUrl,
  1362. annexName: this.state.annexName,
  1363. });
  1364. },
  1365. addJinsheng(e, i) {
  1366. this.setState({
  1367. addPicModal: false,
  1368. });
  1369. if (
  1370. this.state.promotionList.annexUrl &&
  1371. this.state.promotionList.annexUrl.length > 0
  1372. ) {
  1373. this.state.promotionList.annexUrl += "," + e;
  1374. this.state.promotionList.annexName += "," + i;
  1375. } else {
  1376. this.state.promotionList.annexUrl = e;
  1377. this.state.promotionList.annexName = i;
  1378. }
  1379. this.setState({
  1380. promotionList: this.state.promotionList,
  1381. });
  1382. },
  1383. addContract(e, i) {
  1384. this.setState({
  1385. addPicModal: false,
  1386. });
  1387. if (
  1388. this.state.contractList.annexUrl &&
  1389. this.state.contractList.annexUrl.length > 0
  1390. ) {
  1391. this.state.contractList.annexUrl += "," + e;
  1392. this.state.contractList.annexName += "," + i;
  1393. } else {
  1394. this.state.contractList.annexUrl = e;
  1395. this.state.contractList.annexName = i;
  1396. }
  1397. this.setState({
  1398. contractList: this.state.contractList,
  1399. });
  1400. },
  1401. addChoose(e, i) {
  1402. this.setState({
  1403. addPicModal: false,
  1404. });
  1405. if (
  1406. this.state.chooseList.annexUrl &&
  1407. this.state.chooseList.annexUrl.length > 0
  1408. ) {
  1409. this.state.chooseList.annexUrl += "," + e;
  1410. this.state.chooseList.annexName += "," + i;
  1411. } else {
  1412. this.state.chooseList.annexUrl = e;
  1413. this.state.chooseList.annexName = i;
  1414. }
  1415. this.setState({
  1416. chooseList: this.state.chooseList,
  1417. });
  1418. },
  1419. addQuit(e, i) {
  1420. this.setState({
  1421. addPicModal: false,
  1422. });
  1423. if (
  1424. this.state.quitList.annexUrl &&
  1425. this.state.quitList.annexUrl.length > 0
  1426. ) {
  1427. this.state.quitList.annexUrl += "," + e;
  1428. this.state.quitList.annexName += "," + i;
  1429. } else {
  1430. this.state.quitList.annexUrl = e;
  1431. this.state.quitList.annexName = i;
  1432. }
  1433. this.setState({
  1434. quitList: this.state.quitList,
  1435. });
  1436. },
  1437. addWelfare(e, i) {
  1438. this.setState({
  1439. addPicModal: false,
  1440. });
  1441. if (
  1442. this.state.ModalData.welfareAnnexUrl &&
  1443. this.state.ModalData.welfareAnnexUrl.length > 0
  1444. ) {
  1445. this.state.ModalData.welfareAnnexUrl += "," + e;
  1446. this.state.ModalData.welfareAnnexName += "," + i;
  1447. } else {
  1448. this.state.ModalData.welfareAnnexUrl = e;
  1449. this.state.ModalData.welfareAnnexName = i;
  1450. }
  1451. this.setState({
  1452. ModalData: this.state.ModalData,
  1453. });
  1454. },
  1455. reset() {
  1456. this.state.nameSearch = undefined;
  1457. this.state.statusSearch = undefined;
  1458. this.state.departmenttList = undefined;
  1459. this.state.sexSearch = undefined;
  1460. this.state.marriageSearch = undefined;
  1461. this.state.politicalOutlookSearch = undefined;
  1462. this.state.birthdayMonthSearch = undefined;
  1463. this.state.systemSearch = undefined;
  1464. this.state.workingYearsSearch = undefined;
  1465. this.state.educationSearch = undefined;
  1466. this.state.promotionTime = [];
  1467. this.state.entryTime = [];
  1468. this.state.quitTime = [];
  1469. this.state.contractTime = [];
  1470. this.loadData();
  1471. },
  1472. peoStatus(e) {
  1473. if (e == 0) {
  1474. return "在职(试用期)";
  1475. } else if (e == 1) {
  1476. return "在职(正式工)";
  1477. } else if (e == 2) {
  1478. return "离职";
  1479. }
  1480. },
  1481. jobStatus(e, i) {
  1482. if (e == 0) {
  1483. return "全职";
  1484. } else if (e == 1) {
  1485. return "兼职";
  1486. } else if (e == 2) {
  1487. return i;
  1488. }
  1489. },
  1490. educationStatus(e) {
  1491. if (e == 0) {
  1492. return "高中/中专";
  1493. } else if (e == 1) {
  1494. return "专科/高职";
  1495. } else if (e == 2) {
  1496. return "本科";
  1497. } else if (e == 3) {
  1498. return "研究生";
  1499. } else if (e == 5) {
  1500. return "博士";
  1501. }
  1502. },
  1503. picToArr(e) {
  1504. if (!e) return [];
  1505. let arr = e.split(",");
  1506. return arr;
  1507. },
  1508. ruzhiRemove(e) {
  1509. let url = e.file.response.data;
  1510. let arr = this.state.annexUrl.split(",");
  1511. let arrName = this.state.annexName.split(",");
  1512. let num = "";
  1513. arr.forEach((item, index) => {
  1514. if (item == url) {
  1515. arr.splice(index, 1);
  1516. num = index;
  1517. }
  1518. });
  1519. arrName.splice(num, 1);
  1520. this.setState({
  1521. annexUrl: arr.join(","),
  1522. annexName: arrName.join(","),
  1523. });
  1524. },
  1525. jinshengRemove(e) {
  1526. let url = e.file.response.data;
  1527. let arr = this.state.promotionList.annexUrl.split(",");
  1528. let arrName = this.state.promotionList.annexName.split(",");
  1529. let num = "";
  1530. arr.forEach((item, index) => {
  1531. if (item == url) {
  1532. arr.splice(index, 1);
  1533. num = index;
  1534. }
  1535. });
  1536. arrName.splice(num, 1);
  1537. this.state.promotionList.annexUrl = arr.join(",");
  1538. this.state.promotionList.annexName = arrName.join(",");
  1539. this.setState({
  1540. promotionList: this.state.promotionList,
  1541. });
  1542. },
  1543. contractRemove(e) {
  1544. let url = e.file.response.data;
  1545. let arr = this.state.contractList.annexUrl.split(",");
  1546. let arrName = this.state.contractList.annexName.split(",");
  1547. let num = "";
  1548. arr.forEach((item, index) => {
  1549. if (item == url) {
  1550. arr.splice(index, 1);
  1551. num = index;
  1552. }
  1553. });
  1554. arrName.splice(num, 1);
  1555. this.state.contractList.annexUrl = arr.join(",");
  1556. this.state.contractList.annexName = arrName.join(",");
  1557. this.setState({
  1558. contractList: this.state.contractList,
  1559. });
  1560. },
  1561. chooseRemove(e) {
  1562. let url = e.file.response.data;
  1563. let arr = this.state.chooseList.annexUrl.split(",");
  1564. let arrName = this.state.chooseList.annexName.split(",");
  1565. let num = "";
  1566. arr.forEach((item, index) => {
  1567. if (item == url) {
  1568. arr.splice(index, 1);
  1569. num = index;
  1570. }
  1571. });
  1572. arrName.splice(num, 1);
  1573. this.state.chooseList.annexUrl = arr.join(",");
  1574. this.state.chooseList.annexName = arrName.join(",");
  1575. this.setState({
  1576. chooseList: this.state.chooseList,
  1577. });
  1578. },
  1579. quitRemove(e) {
  1580. let url = e.file.response.data;
  1581. let arr = this.state.quitList.annexUrl.split(",");
  1582. let arrName = this.state.quitList.annexName.split(",");
  1583. let num = "";
  1584. arr.forEach((item, index) => {
  1585. if (item == url) {
  1586. arr.splice(index, 1);
  1587. num = index;
  1588. }
  1589. });
  1590. arrName.splice(num, 1);
  1591. this.state.quitList.annexUrl = arr.join(",");
  1592. this.state.quitList.annexName = arrName.join(",");
  1593. this.setState({
  1594. quitList: this.state.quitList,
  1595. });
  1596. },
  1597. welfareRemove(e) {
  1598. let url = e.file.response.data;
  1599. let arr = this.state.ModalData.welfareAnnexUrl.split(",");
  1600. let arrName = this.state.ModalData.welfareAnnexName.split(",");
  1601. let num = "";
  1602. arr.forEach((item, index) => {
  1603. if (item == url) {
  1604. arr.splice(index, 1);
  1605. num = index;
  1606. }
  1607. });
  1608. arrName.splice(num, 1);
  1609. this.state.ModalData.welfareAnnexUrl = arr.join(",");
  1610. this.state.ModalData.welfareAnnexName = arrName.join(",");
  1611. this.setState({
  1612. ModalData: this.state.ModalData,
  1613. });
  1614. },
  1615. getList(jobs) {
  1616. this.setState({
  1617. loading: true,
  1618. });
  1619. $.ajax({
  1620. method: "get",
  1621. dataType: "json",
  1622. crossDomain: false,
  1623. url: globalConfig.context + "/api/admin/personnel/selectLvlList",
  1624. data: {},
  1625. success: function (data) {
  1626. let theArr = [];
  1627. if (data.error && data.error.length) {
  1628. message.warning(data.error[0].message);
  1629. } else {
  1630. let arr = data.data;
  1631. let starArr = [];
  1632. arr.forEach((item, index) => {
  1633. if(jobs && item.jobs == jobs) {
  1634. let obj = {
  1635. star: item.lvl + "",
  1636. starName: item.lvlName,
  1637. };
  1638. starArr.push(obj);
  1639. return
  1640. }else if (!jobs && item.jobs == this.state.jobs) {
  1641. let obj = {
  1642. star: item.lvl + "",
  1643. starName: item.lvlName,
  1644. };
  1645. starArr.push(obj);
  1646. }
  1647. });
  1648. this.setState({
  1649. starArr,
  1650. });
  1651. }
  1652. }.bind(this),
  1653. }).always(
  1654. function () {
  1655. this.setState({
  1656. loading: false,
  1657. });
  1658. }.bind(this)
  1659. );
  1660. },
  1661. getLists(jobs) {
  1662. this.setState({
  1663. loading: true,
  1664. });
  1665. $.ajax({
  1666. method: "get",
  1667. dataType: "json",
  1668. crossDomain: false,
  1669. url: globalConfig.context + "/api/admin/personnel/selectLvlList",
  1670. data: {},
  1671. success: function (data) {
  1672. let theArr = [];
  1673. if (data.error && data.error.length) {
  1674. message.warning(data.error[0].message);
  1675. } else {
  1676. let arr = data.data;
  1677. let starArrs = [];
  1678. arr.forEach((item, index) => {
  1679. if (jobs && item.jobs == jobs) {
  1680. let obj = {
  1681. star: item.lvl + "",
  1682. starName: item.lvlName,
  1683. };
  1684. starArrs.push(obj);
  1685. return;
  1686. }
  1687. if (item.jobs == this.state.jobss) {
  1688. let obj = {
  1689. star: item.lvl + "",
  1690. starName: item.lvlName,
  1691. };
  1692. starArrs.push(obj);
  1693. }
  1694. });
  1695. this.setState({
  1696. starArrs,
  1697. });
  1698. }
  1699. }.bind(this),
  1700. }).always(
  1701. function () {
  1702. this.setState({
  1703. loading: false,
  1704. });
  1705. }.bind(this)
  1706. );
  1707. },
  1708. editRuzi() {
  1709. this.setState({
  1710. loading: true,
  1711. });
  1712. $.ajax({
  1713. method: "post",
  1714. dataType: "json",
  1715. crossDomain: false,
  1716. url: globalConfig.context + "/api/admin/personnel/updateEntry",
  1717. data: {
  1718. id: this.state.ModalData.id,
  1719. school: this.state.school,
  1720. education: this.state.education,
  1721. major: this.state.major,
  1722. title: this.state.title,
  1723. entryRemarks: this.state.entryRemarks,
  1724. annexUrl: this.state.annexUrl,
  1725. annexName: this.state.annexName,
  1726. },
  1727. success: function (data) {
  1728. let theArr = [];
  1729. if (data.error && data.error.length) {
  1730. message.warning(data.error[0].message);
  1731. } else {
  1732. this.loadData();
  1733. this.entryCancel();
  1734. this.tableRowClick(this.state.ModalData);
  1735. message.success("修改成功");
  1736. }
  1737. }.bind(this),
  1738. }).always(
  1739. function () {
  1740. this.setState({
  1741. loading: false,
  1742. });
  1743. }.bind(this)
  1744. );
  1745. },
  1746. upgradeCancel() {
  1747. this.tableRowClick(this.state.ModalData);
  1748. this.setState({
  1749. upgradeVisible: false,
  1750. });
  1751. },
  1752. contractCancel() {
  1753. this.tableRowClick(this.state.ModalData);
  1754. this.setState({
  1755. contractVisible: false,
  1756. });
  1757. },
  1758. chooseCancel() {
  1759. this.tableRowClick(this.state.ModalData);
  1760. this.setState({
  1761. chooseVisible: false,
  1762. });
  1763. },
  1764. quitCancel() {
  1765. this.tableRowClick(this.state.ModalData);
  1766. this.setState({
  1767. quitVisible: false,
  1768. });
  1769. },
  1770. welfareCancel() {
  1771. this.tableRowClick(this.state.ModalData);
  1772. this.setState({
  1773. welfareVisible: false,
  1774. });
  1775. },
  1776. upgradeModal(flag, index) {
  1777. this.setState({
  1778. upgradeVisible: true,
  1779. });
  1780. let obj = {
  1781. id: undefined,
  1782. pdId: this.state.ModalData.id,
  1783. oldJobs: [],
  1784. oldLvl: [],
  1785. newJobs: [],
  1786. newLvl: [],
  1787. promotionTimes: undefined,
  1788. promotionRemarks: undefined,
  1789. annexUrl: "",
  1790. annexName: "",
  1791. };
  1792. this.setState({
  1793. promotionList: flag ? obj : this.state.ModalData.promotionList[index],
  1794. });
  1795. this.getList(flag ? undefined : this.state.ModalData.promotionList[index].oldJobs);
  1796. this.getLists(flag ? undefined : this.state.ModalData.promotionList[index].newJobs);
  1797. },
  1798. contractModal(flag, index) {
  1799. this.setState({
  1800. contractVisible: true,
  1801. });
  1802. let obj = {
  1803. id: undefined,
  1804. pdId: this.state.ModalData.id,
  1805. startTimes: undefined,
  1806. endTimes: undefined,
  1807. contractRemarks: undefined,
  1808. annexUrl: "",
  1809. annexName: "",
  1810. };
  1811. this.setState({
  1812. contractList: flag ? obj : this.state.ModalData.contractList[index],
  1813. });
  1814. },
  1815. chooseModal(flag, index) {
  1816. this.setState({
  1817. chooseVisible: true,
  1818. });
  1819. let obj = {
  1820. id: undefined,
  1821. pdId: this.state.ModalData.id,
  1822. chooseStatus: undefined,
  1823. effectTimes: undefined,
  1824. chooseRemarks: undefined,
  1825. annexUrl: "",
  1826. annexName: "",
  1827. };
  1828. this.setState({
  1829. chooseList: flag ? obj : this.state.ModalData.chooseList[index],
  1830. });
  1831. },
  1832. quitModal(flag, index) {
  1833. this.setState({
  1834. quitVisible: true,
  1835. });
  1836. let obj = {
  1837. id: undefined,
  1838. pdId: this.state.ModalData.id,
  1839. effectTimes: undefined,
  1840. quitRemarks: undefined,
  1841. annexUrl: "",
  1842. annexName: "",
  1843. };
  1844. this.setState({
  1845. quitList: flag ? obj : this.state.ModalData.quitList[index],
  1846. });
  1847. },
  1848. welfareModal() {
  1849. this.setState({
  1850. welfareVisible: true,
  1851. });
  1852. },
  1853. editUpgrade() {
  1854. this.setState({
  1855. loading: true,
  1856. });
  1857. $.ajax({
  1858. method: "post",
  1859. dataType: "json",
  1860. crossDomain: false,
  1861. url: globalConfig.context + "/api/admin/personnel/updatePromotion",
  1862. data: {
  1863. id: this.state.promotionList.id,
  1864. pdId: this.state.promotionList.pdId,
  1865. oldJobs: this.state.promotionList.oldJobs,
  1866. oldLvl: this.state.promotionList.oldLvl,
  1867. newJobs: this.state.promotionList.newJobs,
  1868. newLvl: this.state.promotionList.newLvl,
  1869. promotionTimes: this.state.promotionList.promotionTimes,
  1870. promotionRemarks: this.state.promotionList.promotionRemarks,
  1871. annexUrl: this.state.promotionList.annexUrl,
  1872. annexName: this.state.promotionList.annexName,
  1873. },
  1874. success: function (data) {
  1875. let theArr = [];
  1876. if (data.error && data.error.length) {
  1877. message.warning(data.error[0].message);
  1878. } else {
  1879. this.loadData();
  1880. this.upgradeCancel();
  1881. message.success("修改成功");
  1882. }
  1883. }.bind(this),
  1884. }).always(
  1885. function () {
  1886. this.setState({
  1887. loading: false,
  1888. });
  1889. }.bind(this)
  1890. );
  1891. },
  1892. editContract() {
  1893. this.setState({
  1894. loading: true,
  1895. });
  1896. $.ajax({
  1897. method: "post",
  1898. dataType: "json",
  1899. crossDomain: false,
  1900. url: globalConfig.context + "/api/admin/personnel/updateContract",
  1901. data: {
  1902. id: this.state.contractList.id,
  1903. pdId: this.state.contractList.pdId,
  1904. startTimes: this.state.contractList.startTimes,
  1905. endTimes: this.state.contractList.endTimes,
  1906. contractRemarks: this.state.contractList.contractRemarks,
  1907. annexUrl: this.state.contractList.annexUrl,
  1908. annexName: this.state.contractList.annexName,
  1909. },
  1910. success: function (data) {
  1911. let theArr = [];
  1912. if (data.error && data.error.length) {
  1913. message.warning(data.error[0].message);
  1914. } else {
  1915. this.loadData();
  1916. this.contractCancel();
  1917. message.success("修改成功");
  1918. }
  1919. }.bind(this),
  1920. }).always(
  1921. function () {
  1922. this.setState({
  1923. loading: false,
  1924. });
  1925. }.bind(this)
  1926. );
  1927. },
  1928. editChoose() {
  1929. this.setState({
  1930. loading: true,
  1931. });
  1932. $.ajax({
  1933. method: "post",
  1934. dataType: "json",
  1935. crossDomain: false,
  1936. url: globalConfig.context + "/api/admin/personnel/updateChoose",
  1937. data: {
  1938. id: this.state.chooseList.id,
  1939. pdId: this.state.chooseList.pdId,
  1940. chooseStatus: this.state.chooseList.chooseStatus,
  1941. effectTimes: this.state.chooseList.effectTimes,
  1942. chooseRemarks: this.state.chooseList.chooseRemarks,
  1943. annexUrl: this.state.chooseList.annexUrl,
  1944. annexName: this.state.chooseList.annexName,
  1945. },
  1946. success: function (data) {
  1947. let theArr = [];
  1948. if (data.error && data.error.length) {
  1949. message.warning(data.error[0].message);
  1950. } else {
  1951. this.loadData();
  1952. this.chooseCancel();
  1953. message.success("修改成功");
  1954. }
  1955. }.bind(this),
  1956. }).always(
  1957. function () {
  1958. this.setState({
  1959. loading: false,
  1960. });
  1961. }.bind(this)
  1962. );
  1963. },
  1964. editQuit() {
  1965. this.setState({
  1966. loading: true,
  1967. });
  1968. $.ajax({
  1969. method: "post",
  1970. dataType: "json",
  1971. crossDomain: false,
  1972. url: globalConfig.context + "/api/admin/personnel/updateQuit",
  1973. data: {
  1974. id: this.state.quitList.id,
  1975. pdId: this.state.quitList.pdId,
  1976. effectTimes: this.state.quitList.effectTimes,
  1977. quitRemarks: this.state.quitList.quitRemarks,
  1978. annexUrl: this.state.quitList.annexUrl,
  1979. annexName: this.state.quitList.annexName,
  1980. },
  1981. success: function (data) {
  1982. let theArr = [];
  1983. if (data.error && data.error.length) {
  1984. message.warning(data.error[0].message);
  1985. } else {
  1986. this.loadData();
  1987. this.quitCancel();
  1988. message.success("修改成功");
  1989. }
  1990. }.bind(this),
  1991. }).always(
  1992. function () {
  1993. this.setState({
  1994. loading: false,
  1995. });
  1996. }.bind(this)
  1997. );
  1998. },
  1999. editWelfare() {
  2000. this.setState({
  2001. loading: true,
  2002. });
  2003. $.ajax({
  2004. method: "post",
  2005. dataType: "json",
  2006. crossDomain: false,
  2007. url: globalConfig.context + "/api/admin/personnel/updateWelfare",
  2008. data: {
  2009. pdId: this.state.ModalData.id,
  2010. annexUrl: this.state.ModalData.welfareAnnexUrl,
  2011. annexName: this.state.ModalData.welfareAnnexName,
  2012. remarks: this.state.ModalData.welfareRemarks,
  2013. },
  2014. success: function (data) {
  2015. let theArr = [];
  2016. if (data.error && data.error.length) {
  2017. message.warning(data.error[0].message);
  2018. } else {
  2019. this.loadData();
  2020. this.welfareCancel();
  2021. message.success("修改成功");
  2022. }
  2023. }.bind(this),
  2024. }).always(
  2025. function () {
  2026. this.setState({
  2027. loading: false,
  2028. });
  2029. }.bind(this)
  2030. );
  2031. },
  2032. render() {
  2033. const rowSelection = {
  2034. selectedRowKeys: this.state.selectedRowKeys,
  2035. onChange: (selectedRowKeys, selectedRows) => {
  2036. this.setState({
  2037. selectedRows: selectedRows.slice(-1),
  2038. selectedRowKeys: selectedRowKeys.slice(-1),
  2039. });
  2040. },
  2041. };
  2042. const { RangePicker } = DatePicker;
  2043. const formItemLayout = {
  2044. labelCol: { span: 6 },
  2045. wrapperCol: { span: 16 },
  2046. };
  2047. let departmentArr = this.state.departmentArr || [];
  2048. return (
  2049. <div className="user-content">
  2050. <div className="content-title" style={{ marginBottom: 10 }}>
  2051. <span style={{ fontWeight: 900, fontSize: 16 }}>人事档案统计</span>
  2052. </div>
  2053. <Tabs defaultActiveKey="2" onChange={this.callback} className="test">
  2054. <TabPane tab="更改表格显示数据" key="1">
  2055. <div style={{ marginLeft: 10 }}>
  2056. <ChooseList
  2057. columns={this.state.columns}
  2058. changeFn={this.changeList}
  2059. changeList={this.state.changeList}
  2060. top={55}
  2061. margin={11}
  2062. />
  2063. </div>
  2064. </TabPane>
  2065. <TabPane tab="搜索" key="2">
  2066. <div className="user-search" style={{ marginLeft: 10 }}>
  2067. <Input
  2068. placeholder="姓名"
  2069. style={{ width: 120 }}
  2070. value={this.state.nameSearch}
  2071. onChange={(e) => {
  2072. this.setState({ nameSearch: e.target.value });
  2073. }}
  2074. />
  2075. <Select
  2076. placeholder="员工状态"
  2077. onChange={(e) => {
  2078. this.setState({ statusSearch: e });
  2079. }}
  2080. style={{ width: 120, marginRight: 10 }}
  2081. value={this.state.statusSearch}
  2082. >
  2083. <Option value="0">在职(试用期)</Option>
  2084. <Option value="1">在职(合同期)</Option>
  2085. <Option value="2">离职</Option>
  2086. </Select>
  2087. <Select
  2088. placeholder="所属公司"
  2089. style={{ width: 120, marginRight: 10 }}
  2090. value={this.state.departmenttList}
  2091. onChange={(e) => {
  2092. this.setState({ departmenttList: e });
  2093. }}
  2094. >
  2095. {departmentArr.map(function (item) {
  2096. return (
  2097. <Select.Option key={item.id}>{item.name}</Select.Option>
  2098. );
  2099. })}
  2100. </Select>
  2101. <Select
  2102. placeholder="性别"
  2103. onChange={(e) => {
  2104. this.setState({ sexSearch: e });
  2105. }}
  2106. style={{ width: 120, marginRight: 10 }}
  2107. value={this.state.sexSearch}
  2108. >
  2109. <Option value="0">男</Option>
  2110. <Option value="1">女</Option>
  2111. </Select>
  2112. <Select
  2113. placeholder="婚姻状态"
  2114. onChange={(e) => {
  2115. this.setState({ marriageSearch: e });
  2116. }}
  2117. style={{ width: 120, marginRight: 10 }}
  2118. value={this.state.marriageSearch}
  2119. >
  2120. <Option value="0">未婚</Option>
  2121. <Option value="1">已婚</Option>
  2122. <Option value="2">离异</Option>
  2123. </Select>
  2124. <Select
  2125. placeholder="政治面貌"
  2126. onChange={(e) => {
  2127. this.setState({ politicalOutlookSearch: e });
  2128. }}
  2129. style={{ width: 120, marginRight: 10 }}
  2130. value={this.state.politicalOutlookSearch}
  2131. >
  2132. <Option value="0">群众</Option>
  2133. <Option value="1">中共预备党员</Option>
  2134. <Option value="2">中共党员</Option>
  2135. <Option value="3">致公党员</Option>
  2136. </Select>
  2137. <Select
  2138. placeholder="生日月份"
  2139. onChange={(e) => {
  2140. this.setState({ birthdayMonthSearch: e });
  2141. }}
  2142. style={{ width: 120, marginRight: 10 }}
  2143. value={this.state.birthdayMonthSearch}
  2144. >
  2145. <Option value="">全部</Option>
  2146. <Option value="1">一月</Option>
  2147. <Option value="2">二月</Option>
  2148. <Option value="3">三月</Option>
  2149. <Option value="4">四月</Option>
  2150. <Option value="5">五月</Option>
  2151. <Option value="6">六月</Option>
  2152. <Option value="7">七月</Option>
  2153. <Option value="8">八月</Option>
  2154. <Option value="9">九月</Option>
  2155. <Option value="10">十月</Option>
  2156. <Option value="11">十一月</Option>
  2157. <Option value="12">十二月</Option>
  2158. </Select>
  2159. <Select
  2160. placeholder="所属系统"
  2161. onChange={(e) => {
  2162. this.setState({ systemSearch: e });
  2163. }}
  2164. style={{ width: 120, marginRight: 10 }}
  2165. value={this.state.systemSearch}
  2166. >
  2167. <Option value="0">管理系统</Option>
  2168. <Option value="1">营销系统</Option>
  2169. <Option value="2">技术系统</Option>
  2170. </Select>
  2171. <Select
  2172. placeholder="工作年限"
  2173. onChange={(e) => {
  2174. this.setState({ workingYearsSearch: e });
  2175. }}
  2176. style={{ width: 120, marginRight: 10 }}
  2177. value={this.state.workingYearsSearch}
  2178. >
  2179. <Option value="0">0-1年</Option>
  2180. <Option value="1">1-3年</Option>
  2181. <Option value="2">3-10年</Option>
  2182. <Option value="3">10年以上</Option>
  2183. </Select>
  2184. <Select
  2185. placeholder="学历"
  2186. onChange={(e) => {
  2187. this.setState({ educationSearch: e });
  2188. }}
  2189. style={{ width: 120 }}
  2190. value={this.state.educationSearch}
  2191. >
  2192. <Option value="0">高中/中专</Option>
  2193. <Option value="1">专科/高职</Option>
  2194. <Option value="2">本科</Option>
  2195. <Option value="3">研究生</Option>
  2196. <Option value="5">博士</Option>
  2197. </Select>
  2198. <br />
  2199. <span style={{}}>转正日期:</span>
  2200. <RangePicker
  2201. style={{ marginRight: 10, width: 170 }}
  2202. value={[
  2203. this.state.promotionTime[0]
  2204. ? moment(this.state.promotionTime[0])
  2205. : null,
  2206. this.state.promotionTime[1]
  2207. ? moment(this.state.promotionTime[1])
  2208. : null,
  2209. ]}
  2210. onChange={(data, dataString) => {
  2211. this.setState({ promotionTime: dataString });
  2212. }}
  2213. />
  2214. <span style={{}}>入职时间:</span>
  2215. <RangePicker
  2216. style={{ marginRight: 10, width: 170 }}
  2217. value={[
  2218. this.state.entryTime[0]
  2219. ? moment(this.state.entryTime[0])
  2220. : null,
  2221. this.state.entryTime[1]
  2222. ? moment(this.state.entryTime[1])
  2223. : null,
  2224. ]}
  2225. onChange={(data, dataString) => {
  2226. this.setState({ entryTime: dataString });
  2227. }}
  2228. />
  2229. <span style={{}}>离职时间:</span>
  2230. <RangePicker
  2231. style={{ marginRight: 10, width: 170 }}
  2232. value={[
  2233. this.state.quitTime[0]
  2234. ? moment(this.state.quitTime[0])
  2235. : null,
  2236. this.state.quitTime[1]
  2237. ? moment(this.state.quitTime[1])
  2238. : null,
  2239. ]}
  2240. onChange={(data, dataString) => {
  2241. this.setState({ quitTime: dataString });
  2242. }}
  2243. />
  2244. <span style={{}}>合同时间:</span>
  2245. <RangePicker
  2246. style={{ marginRight: 10, width: 170 }}
  2247. value={[
  2248. this.state.contractTime[0]
  2249. ? moment(this.state.contractTime[0])
  2250. : null,
  2251. this.state.contractTime[1]
  2252. ? moment(this.state.contractTime[1])
  2253. : null,
  2254. ]}
  2255. onChange={(data, dataString) => {
  2256. this.setState({ contractTime: dataString });
  2257. }}
  2258. />
  2259. <Button
  2260. type="primary"
  2261. onClick={this.search}
  2262. style={{ marginLeft: 10 }}
  2263. >
  2264. 搜索
  2265. </Button>
  2266. <Button onClick={this.reset}>重置</Button>
  2267. </div>
  2268. </TabPane>
  2269. <TabPane tab="新增员工档案" key="3">
  2270. <Button
  2271. type="primary"
  2272. onClick={this.addPeo}
  2273. style={{ margin: "11px 0px 10px 10px" }}
  2274. >
  2275. 新增员工档案
  2276. </Button>
  2277. </TabPane>
  2278. <TabPane tab="导出Excel" key="4">
  2279. <Button
  2280. type="primary"
  2281. onClick={this.export}
  2282. style={{ margin: "11px 0px 10px 10px" }}
  2283. >
  2284. 导出当前列表
  2285. </Button>
  2286. </TabPane>
  2287. </Tabs>
  2288. <div className="patent-table" style={{ marginTop: 10 }}>
  2289. <Spin spinning={this.state.loading}>
  2290. <Table
  2291. bordered
  2292. columns={
  2293. this.state.changeList == undefined
  2294. ? this.state.columns
  2295. : this.state.changeList
  2296. }
  2297. onRowClick={this.tableRowClick}
  2298. dataSource={this.state.dataSource}
  2299. scroll={{ x: "max-content", y: 0 }}
  2300. pagination={this.state.pagination}
  2301. size="small"
  2302. />
  2303. </Spin>
  2304. </div>
  2305. <Modal
  2306. visible={this.state.visible}
  2307. footer={null}
  2308. width={1000}
  2309. onCancel={() => {
  2310. this.loadData();
  2311. this.cancel();
  2312. }}
  2313. >
  2314. <Spin spinning={this.state.loading}>
  2315. <h2
  2316. style={{
  2317. textAlign: "center",
  2318. paddingBottom: 10,
  2319. marginBottom: 10,
  2320. }}
  2321. >
  2322. {this.state.ModalData.name + "人事档案"}
  2323. </h2>
  2324. <Button
  2325. type="primary"
  2326. style={{ position: "absolute", top: 25 }}
  2327. onClick={(e) => {
  2328. this.setState({ detailFlag: !this.state.detailFlag });
  2329. }}
  2330. >
  2331. 更换显示模式
  2332. </Button>
  2333. <ul onClick={this.editPeo} className="peo-table">
  2334. {this.state.table.map((item) => {
  2335. let value = item.value;
  2336. if (item.render) {
  2337. let fn = item.render;
  2338. return (
  2339. <li>
  2340. <div className="peo-left">{item.key}</div>
  2341. <Tooltip
  2342. placement="top"
  2343. title={fn(
  2344. this.state.ModalData[value],
  2345. value == "son" ? this.state.ModalData.girl : 0
  2346. )}
  2347. >
  2348. <div className="peo-right">
  2349. {fn(
  2350. this.state.ModalData[value],
  2351. value == "son" ? this.state.ModalData.girl : 0
  2352. )}
  2353. </div>
  2354. </Tooltip>
  2355. </li>
  2356. );
  2357. }
  2358. return (
  2359. <li>
  2360. <div className="peo-left">{item.key}</div>
  2361. <Tooltip
  2362. placement="top"
  2363. title={this.state.ModalData[item.value]}
  2364. >
  2365. <div className="peo-right">
  2366. {this.state.ModalData[value] &&
  2367. this.state.ModalData[value].length > 10
  2368. ? this.state.ModalData[value].substring(0, 10) + "..."
  2369. : this.state.ModalData[value]}
  2370. </div>
  2371. </Tooltip>
  2372. </li>
  2373. );
  2374. })}
  2375. </ul>
  2376. {this.state.detailFlag ? (
  2377. <div>
  2378. <div className="title-peo">
  2379. <span>任职信息</span>
  2380. {/* <Button
  2381. type="primary"
  2382. onClick={(e) => {
  2383. this.stayModal(this.state.ModalData.id);
  2384. }}
  2385. style={{ position: "absolute", right: 0, height: 30 }}
  2386. >
  2387. 修改任职信息
  2388. </Button> */}
  2389. </div>
  2390. <div className="clearfix">
  2391. <FormItem
  2392. className="half-item"
  2393. labelCol={{ span: 6 }}
  2394. wrapperCol={{ span: 30 }}
  2395. label="员工状态"
  2396. >
  2397. {this.state.ModalData.statusName}
  2398. </FormItem>
  2399. <FormItem
  2400. className="half-item"
  2401. labelCol={{ span: 6 }}
  2402. wrapperCol={{ span: 30 }}
  2403. label="所属系统"
  2404. >
  2405. {this.state.ModalData.systemName}
  2406. </FormItem>
  2407. </div>
  2408. <div className="clearfix">
  2409. <FormItem
  2410. className="half-item"
  2411. labelCol={{ span: 6 }}
  2412. wrapperCol={{ span: 30 }}
  2413. label="工作性质"
  2414. >
  2415. {this.jobStatus(
  2416. this.state.ModalData.jobNature,
  2417. this.state.ModalData.jobNatureRemarks
  2418. )}
  2419. </FormItem>
  2420. <FormItem
  2421. className="half-item"
  2422. labelCol={{ span: 6 }}
  2423. wrapperCol={{ span: 30 }}
  2424. label="工龄"
  2425. >
  2426. {this.state.ModalData.workingYear}
  2427. </FormItem>
  2428. </div>
  2429. <div className="clearfix">
  2430. <FormItem
  2431. className="half-item"
  2432. labelCol={{ span: 6 }}
  2433. wrapperCol={{ span: 30 }}
  2434. label="入职时间"
  2435. >
  2436. {this.state.ModalData.entryTimes}
  2437. </FormItem>
  2438. <FormItem
  2439. className="half-item"
  2440. labelCol={{ span: 6 }}
  2441. wrapperCol={{ span: 30 }}
  2442. label="转正时间"
  2443. >
  2444. {this.state.ModalData.promotionTimes}
  2445. </FormItem>
  2446. </div>
  2447. <div className="clearfix">
  2448. <FormItem
  2449. className="half-item"
  2450. labelCol={{ span: 6 }}
  2451. wrapperCol={{ span: 30 }}
  2452. label="所属公司"
  2453. >
  2454. {this.state.ModalData.depName}
  2455. </FormItem>
  2456. <FormItem
  2457. className="half-item"
  2458. labelCol={{ span: 6 }}
  2459. wrapperCol={{ span: 30 }}
  2460. label="级别"
  2461. >
  2462. {this.state.ModalData.lvlName}
  2463. </FormItem>
  2464. </div>
  2465. <div className="clearfix">
  2466. <FormItem
  2467. className="half-item"
  2468. labelCol={{ span: 6 }}
  2469. wrapperCol={{ span: 30 }}
  2470. label="职位"
  2471. >
  2472. {this.state.ModalData.jobsName}
  2473. </FormItem>
  2474. <FormItem
  2475. className="half-item"
  2476. labelCol={{ span: 6 }}
  2477. wrapperCol={{ span: 30 }}
  2478. label="岗位津贴"
  2479. >
  2480. {this.state.ModalData.allowance}
  2481. </FormItem>
  2482. </div>
  2483. <div className="clearfix">
  2484. <FormItem
  2485. className="half-item"
  2486. labelCol={{ span: 6 }}
  2487. wrapperCol={{ span: 30 }}
  2488. label="星级"
  2489. >
  2490. {this.state.ModalData.starName}
  2491. </FormItem>
  2492. </div>
  2493. <div className="title-peo">
  2494. <span>联系信息</span>
  2495. {/* <Button
  2496. type="primary"
  2497. onClick={this.phoneModal}
  2498. style={{ position: "absolute", right: 0, height: 30 }}
  2499. >
  2500. 修改联系信息
  2501. </Button> */}
  2502. </div>
  2503. <div className="clearfix">
  2504. <FormItem
  2505. className="half-item"
  2506. labelCol={{ span: 6 }}
  2507. wrapperCol={{ span: 30 }}
  2508. label="手机号码"
  2509. >
  2510. {this.state.ModalData.mobile}
  2511. </FormItem>
  2512. <FormItem
  2513. className="half-item"
  2514. labelCol={{ span: 6 }}
  2515. wrapperCol={{ span: 30 }}
  2516. label="电话"
  2517. >
  2518. {this.state.ModalData.fixedTel}
  2519. </FormItem>
  2520. </div>
  2521. {this.state.ModalData.contactList &&
  2522. this.state.ModalData.contactList.length > 0 ? (
  2523. this.state.ModalData.contactList.map((item, index) => {
  2524. return (
  2525. <div className="clearfix">
  2526. <FormItem
  2527. className="half-item"
  2528. labelCol={{ span: 6 }}
  2529. wrapperCol={{ span: 30 }}
  2530. label={"紧急联系人" + (index + 1)}
  2531. >
  2532. {item.emergencyContact}
  2533. </FormItem>
  2534. <FormItem
  2535. className="half-item"
  2536. labelCol={{ span: 6 }}
  2537. wrapperCol={{ span: 30 }}
  2538. label={"紧急联系人" + (index + 1) + "电话"}
  2539. >
  2540. {item.emergencyMobile}
  2541. </FormItem>
  2542. </div>
  2543. );
  2544. })
  2545. ) : (
  2546. <div
  2547. style={{
  2548. textAlign: "center",
  2549. height: 60,
  2550. lineHeight: "60px",
  2551. }}
  2552. >
  2553. 暂无紧急联系人信息
  2554. </div>
  2555. )}
  2556. <div className="title-peo">
  2557. <span>入职资料</span>
  2558. {/* <Button
  2559. type="primary"
  2560. onClick={this.entryModal}
  2561. style={{ position: "absolute", right: 0, height: 30 }}
  2562. >
  2563. 修改入职信息
  2564. </Button> */}
  2565. </div>
  2566. <div className="clearfix">
  2567. <FormItem
  2568. className="half-item"
  2569. labelCol={{ span: 6 }}
  2570. wrapperCol={{ span: 30 }}
  2571. label="毕业学校"
  2572. >
  2573. {this.state.ModalData.personnelEntry
  2574. ? this.state.ModalData.personnelEntry.school
  2575. : ""}
  2576. </FormItem>
  2577. <FormItem
  2578. className="half-item"
  2579. labelCol={{ span: 6 }}
  2580. wrapperCol={{ span: 30 }}
  2581. label="学历"
  2582. >
  2583. {this.state.ModalData.personnelEntry
  2584. ? this.educationStatus(
  2585. this.state.ModalData.personnelEntry.education
  2586. )
  2587. : ""}
  2588. </FormItem>
  2589. </div>
  2590. <div className="clearfix">
  2591. <FormItem
  2592. className="half-item"
  2593. labelCol={{ span: 6 }}
  2594. wrapperCol={{ span: 30 }}
  2595. label="所学专业"
  2596. >
  2597. {this.state.ModalData.personnelEntry
  2598. ? this.state.ModalData.personnelEntry.major
  2599. : ""}
  2600. </FormItem>
  2601. <FormItem
  2602. className="half-item"
  2603. labelCol={{ span: 6 }}
  2604. wrapperCol={{ span: 30 }}
  2605. label="职称"
  2606. >
  2607. {this.state.ModalData.personnelEntry
  2608. ? this.state.ModalData.personnelEntry.title
  2609. : ""}
  2610. </FormItem>
  2611. </div>
  2612. <div className="clearfix" style={{ paddingLeft: 70 }}>
  2613. <div style={{ marginBottom: 10 }}>附件:</div>
  2614. <PicModal
  2615. remarks={
  2616. this.state.ModalData.personnelEntry
  2617. ? this.picToArr(
  2618. this.state.ModalData.personnelEntry.annexName
  2619. )
  2620. : []
  2621. }
  2622. picUrl={
  2623. this.state.ModalData.personnelEntry
  2624. ? this.picToArr(
  2625. this.state.ModalData.personnelEntry.annexUrl
  2626. )
  2627. : []
  2628. }
  2629. />
  2630. </div>
  2631. <div className="title-peo">
  2632. <span>晋升情况</span>
  2633. {/* <Button
  2634. type="primary"
  2635. onClick={(e) => {
  2636. this.upgradeModal(true);
  2637. }}
  2638. style={{ position: "absolute", right: 0, height: 30 }}
  2639. >
  2640. 新增晋升信息
  2641. </Button> */}
  2642. </div>
  2643. {this.state.ModalData.promotionList &&
  2644. this.state.ModalData.promotionList.length > 0 ? (
  2645. this.state.ModalData.promotionList.map((item, index) => {
  2646. return (
  2647. <div
  2648. style={{
  2649. width: "100%",
  2650. borderBottom: "1px dashed #ccc",
  2651. position: "relative",
  2652. }}
  2653. >
  2654. {/* <Button
  2655. style={{
  2656. position: "absolute",
  2657. right: "50%",
  2658. bottom: 10,
  2659. transform: "translateX(50%)",
  2660. }}
  2661. type="primary"
  2662. onClick={(e) => {
  2663. this.upgradeModal(false, index);
  2664. }}
  2665. >
  2666. 修改信息
  2667. </Button> */}
  2668. <div className="clearfix">
  2669. <FormItem
  2670. className="half-item"
  2671. labelCol={{ span: 6 }}
  2672. wrapperCol={{ span: 30 }}
  2673. label="晋升职位"
  2674. >
  2675. {item.oldJobsName + "--->" + item.newJobsName}
  2676. </FormItem>
  2677. <FormItem
  2678. className="half-item"
  2679. labelCol={{ span: 6 }}
  2680. wrapperCol={{ span: 30 }}
  2681. label="晋升等级"
  2682. >
  2683. {item.oldLvlName + "--->" + item.newLvlName}
  2684. </FormItem>
  2685. </div>
  2686. <div className="clearfix">
  2687. <FormItem
  2688. className="half-item"
  2689. labelCol={{ span: 6 }}
  2690. wrapperCol={{ span: 30 }}
  2691. label="晋升时间"
  2692. >
  2693. {item.promotionTimes}
  2694. </FormItem>
  2695. </div>
  2696. <div className="clearfix">
  2697. <FormItem
  2698. className="half-item"
  2699. labelCol={{ span: 6 }}
  2700. wrapperCol={{ span: 30 }}
  2701. label="晋升备注"
  2702. >
  2703. {item.promotionRemarks}
  2704. </FormItem>
  2705. </div>
  2706. <div
  2707. className="clearfix"
  2708. style={{ paddingLeft: 70, marginBottom: 40 }}
  2709. >
  2710. <div style={{ marginBottom: 10 }}>附件:</div>
  2711. <PicModal
  2712. remarks={this.picToArr(item.annexName)}
  2713. picUrl={this.picToArr(item.annexUrl)}
  2714. />
  2715. </div>
  2716. </div>
  2717. );
  2718. })
  2719. ) : (
  2720. <div
  2721. style={{
  2722. textAlign: "center",
  2723. height: 60,
  2724. lineHeight: "60px",
  2725. }}
  2726. >
  2727. 暂无晋升情况
  2728. </div>
  2729. )}
  2730. <div className="title-peo">
  2731. <span>合同情况</span>
  2732. {/* <Button
  2733. type="primary"
  2734. onClick={(e) => {
  2735. this.contractModal(true);
  2736. }}
  2737. style={{ position: "absolute", right: 0, height: 30 }}
  2738. >
  2739. 新增合同信息
  2740. </Button> */}
  2741. </div>
  2742. {this.state.ModalData.contractList &&
  2743. this.state.ModalData.contractList.length > 0 ? (
  2744. this.state.ModalData.contractList.map((item, index) => {
  2745. return (
  2746. <div
  2747. style={{
  2748. width: "100%",
  2749. borderBottom: "1px dashed #ccc",
  2750. position: "relative",
  2751. }}
  2752. >
  2753. {/* <Button
  2754. style={{
  2755. position: "absolute",
  2756. right: "50%",
  2757. bottom: 10,
  2758. transform: "translateX(50%)",
  2759. }}
  2760. type="primary"
  2761. onClick={(e) => {
  2762. this.contractModal(false, index);
  2763. }}
  2764. >
  2765. 修改信息
  2766. </Button> */}
  2767. <div className="clearfix">
  2768. <FormItem
  2769. className="half-item"
  2770. labelCol={{ span: 6 }}
  2771. wrapperCol={{ span: 30 }}
  2772. label="签订时间"
  2773. >
  2774. {item.startTimes}
  2775. </FormItem>
  2776. <FormItem
  2777. className="half-item"
  2778. labelCol={{ span: 6 }}
  2779. wrapperCol={{ span: 30 }}
  2780. label="到期时间"
  2781. >
  2782. {item.endTimes}
  2783. </FormItem>
  2784. </div>
  2785. <div className="clearfix">
  2786. <FormItem
  2787. style={{ width: "100%", wordBreak: "break-all" }}
  2788. className="half-item"
  2789. labelCol={{ span: 3 }}
  2790. wrapperCol={{ span: 30 }}
  2791. label="备注"
  2792. >
  2793. {item.contractRemarks}
  2794. </FormItem>
  2795. </div>
  2796. <div
  2797. className="clearfix"
  2798. style={{ paddingLeft: 70, marginBottom: 40 }}
  2799. >
  2800. <div style={{ marginBottom: 10 }}>附件:</div>
  2801. <PicModal
  2802. remarks={this.picToArr(item.annexName)}
  2803. picUrl={this.picToArr(item.annexUrl)}
  2804. />
  2805. </div>
  2806. </div>
  2807. );
  2808. })
  2809. ) : (
  2810. <div
  2811. style={{
  2812. textAlign: "center",
  2813. height: 60,
  2814. lineHeight: "60px",
  2815. }}
  2816. >
  2817. 暂无合同情况
  2818. </div>
  2819. )}
  2820. <div className="title-peo">
  2821. <span>奖惩情况</span>
  2822. {/* <Button
  2823. type="primary"
  2824. onClick={(e) => {
  2825. this.chooseModal(true);
  2826. }}
  2827. style={{ position: "absolute", right: 0, height: 30 }}
  2828. >
  2829. 新增奖惩信息
  2830. </Button> */}
  2831. </div>
  2832. {this.state.ModalData.chooseList &&
  2833. this.state.ModalData.chooseList.length > 0 ? (
  2834. this.state.ModalData.chooseList.map((item, index) => {
  2835. return (
  2836. <div
  2837. style={{
  2838. width: "100%",
  2839. borderBottom: "1px dashed #ccc",
  2840. position: "relative",
  2841. }}
  2842. >
  2843. {/* <Button
  2844. style={{
  2845. position: "absolute",
  2846. right: "50%",
  2847. bottom: 10,
  2848. transform: "translateX(50%)",
  2849. }}
  2850. type="primary"
  2851. onClick={(e) => {
  2852. this.chooseModal(false, index);
  2853. }}
  2854. >
  2855. 修改信息
  2856. </Button> */}
  2857. <div className="clearfix">
  2858. <FormItem
  2859. className="half-item"
  2860. labelCol={{ span: 6 }}
  2861. wrapperCol={{ span: 30 }}
  2862. label={"状态"}
  2863. >
  2864. {item.chooseStatus == 0 ? "奖励" : "惩罚"}
  2865. </FormItem>
  2866. <FormItem
  2867. className="half-item"
  2868. labelCol={{ span: 6 }}
  2869. wrapperCol={{ span: 30 }}
  2870. label="时间"
  2871. >
  2872. {item.effectTimes}
  2873. </FormItem>
  2874. </div>
  2875. <div className="clearfix">
  2876. <FormItem
  2877. className="half-item"
  2878. labelCol={{ span: 6 }}
  2879. wrapperCol={{ span: 30 }}
  2880. label={"内容"}
  2881. >
  2882. {item.chooseRemarks}
  2883. </FormItem>
  2884. </div>
  2885. <div
  2886. className="clearfix"
  2887. style={{ paddingLeft: 70, marginBottom: 40 }}
  2888. >
  2889. <div style={{ marginBottom: 10 }}>附件:</div>
  2890. <PicModal
  2891. remarks={this.picToArr(item.annexName)}
  2892. picUrl={this.picToArr(item.annexUrl)}
  2893. />
  2894. </div>
  2895. </div>
  2896. );
  2897. })
  2898. ) : (
  2899. <div
  2900. style={{
  2901. textAlign: "center",
  2902. height: 60,
  2903. lineHeight: "60px",
  2904. }}
  2905. >
  2906. 暂无奖惩情况
  2907. </div>
  2908. )}
  2909. <div className="title-peo">
  2910. <span>离职情况</span>
  2911. {/* <Button
  2912. type="primary"
  2913. onClick={(e) => {
  2914. this.quitModal(true);
  2915. }}
  2916. style={{ position: "absolute", right: 0, height: 30 }}
  2917. >
  2918. 新增离职信息
  2919. </Button> */}
  2920. </div>
  2921. {this.state.ModalData.quitList &&
  2922. this.state.ModalData.quitList.length > 0 ? (
  2923. this.state.ModalData.quitList.map((item, index) => {
  2924. return (
  2925. <div
  2926. style={{
  2927. width: "100%",
  2928. borderBottom: "1px dashed #ccc",
  2929. position: "relative",
  2930. }}
  2931. >
  2932. {/* <Button
  2933. style={{
  2934. position: "absolute",
  2935. right: "50%",
  2936. bottom: 10,
  2937. transform: "translateX(50%)",
  2938. }}
  2939. type="primary"
  2940. onClick={(e) => {
  2941. this.quitModal(false, index);
  2942. }}
  2943. >
  2944. 修改信息
  2945. </Button> */}
  2946. <div className="clearfix">
  2947. <FormItem
  2948. className="half-item"
  2949. labelCol={{ span: 6 }}
  2950. wrapperCol={{ span: 30 }}
  2951. label="离职时间"
  2952. >
  2953. {item.effectTimes}
  2954. </FormItem>
  2955. <FormItem
  2956. className="half-item"
  2957. labelCol={{ span: 6 }}
  2958. wrapperCol={{ span: 30 }}
  2959. label="离职备注"
  2960. >
  2961. {item.quitRemarks}
  2962. </FormItem>
  2963. </div>
  2964. <div
  2965. className="clearfix"
  2966. style={{ paddingLeft: 70, marginBottom: 40 }}
  2967. >
  2968. <div style={{ marginBottom: 10 }}>附件:</div>
  2969. <PicModal
  2970. remarks={this.picToArr(item.annexName)}
  2971. picUrl={this.picToArr(item.annexUrl)}
  2972. />
  2973. </div>
  2974. </div>
  2975. );
  2976. })
  2977. ) : (
  2978. <div
  2979. style={{
  2980. textAlign: "center",
  2981. height: 60,
  2982. lineHeight: "60px",
  2983. }}
  2984. >
  2985. 暂无奖惩情况
  2986. </div>
  2987. )}
  2988. <div className="title-peo" style={{ marginBottom: 10 }}>
  2989. <span>福利情况</span>
  2990. {/* <Button
  2991. type="primary"
  2992. onClick={(e) => {
  2993. this.welfareModal();
  2994. }}
  2995. style={{ position: "absolute", right: 0, height: 30 }}
  2996. >
  2997. 修改福利信息
  2998. </Button> */}
  2999. </div>
  3000. <Table
  3001. columns={this.state.welfareColumns}
  3002. dataSource={this.state.ModalData.welfareList}
  3003. pagination={false}
  3004. bordered
  3005. size="small"
  3006. scroll={{ x: "max-content", y: 0 }}
  3007. />
  3008. <div className="clearfix" style={{ marginTop: 10 }}>
  3009. <FormItem
  3010. className="half-item"
  3011. style={{ width: "100%", wordBreak: "break-all" }}
  3012. labelCol={{ span: 3 }}
  3013. wrapperCol={{ span: 30 }}
  3014. label="备注"
  3015. >
  3016. {this.state.ModalData.welfareRemarks}
  3017. </FormItem>
  3018. </div>
  3019. <div
  3020. className="clearfix"
  3021. style={{ paddingLeft: 70, marginBottom: 0 }}
  3022. >
  3023. <div style={{ marginBottom: 10 }}>附件:</div>
  3024. <PicModal
  3025. remarks={this.picToArr(
  3026. this.state.ModalData.welfareAnnexName
  3027. )}
  3028. picUrl={this.picToArr(this.state.ModalData.welfareAnnexUrl)}
  3029. />
  3030. </div>
  3031. </div>
  3032. ) : (
  3033. <Tabs
  3034. activeKey={this.state.active}
  3035. onChange={(e) => {
  3036. this.setState({ active: e });
  3037. }}
  3038. >
  3039. <TabPane tab="任职信息" key={1}>
  3040. <div className="title-peo">
  3041. <span>任职信息</span>
  3042. <Button
  3043. type="primary"
  3044. onClick={(e) => {
  3045. this.stayModal(this.state.ModalData.id);
  3046. }}
  3047. style={{ position: "absolute", right: 0, height: 30 }}
  3048. >
  3049. 修改任职信息
  3050. </Button>
  3051. </div>
  3052. <div className="clearfix">
  3053. <FormItem
  3054. className="half-item"
  3055. labelCol={{ span: 6 }}
  3056. wrapperCol={{ span: 30 }}
  3057. label="员工状态"
  3058. >
  3059. {this.state.ModalData.statusName}
  3060. </FormItem>
  3061. <FormItem
  3062. className="half-item"
  3063. labelCol={{ span: 6 }}
  3064. wrapperCol={{ span: 30 }}
  3065. label="所属系统"
  3066. >
  3067. {this.state.ModalData.systemName}
  3068. </FormItem>
  3069. </div>
  3070. <div className="clearfix">
  3071. <FormItem
  3072. className="half-item"
  3073. labelCol={{ span: 6 }}
  3074. wrapperCol={{ span: 30 }}
  3075. label="工作性质"
  3076. >
  3077. {this.jobStatus(
  3078. this.state.ModalData.jobNature,
  3079. this.state.ModalData.jobNatureRemarks
  3080. )}
  3081. </FormItem>
  3082. <FormItem
  3083. className="half-item"
  3084. labelCol={{ span: 6 }}
  3085. wrapperCol={{ span: 30 }}
  3086. label="工龄"
  3087. >
  3088. {this.state.ModalData.workingYear}
  3089. </FormItem>
  3090. </div>
  3091. <div className="clearfix">
  3092. <FormItem
  3093. className="half-item"
  3094. labelCol={{ span: 6 }}
  3095. wrapperCol={{ span: 30 }}
  3096. label="入职时间"
  3097. >
  3098. {this.state.ModalData.entryTimes}
  3099. </FormItem>
  3100. <FormItem
  3101. className="half-item"
  3102. labelCol={{ span: 6 }}
  3103. wrapperCol={{ span: 30 }}
  3104. label="转正时间"
  3105. >
  3106. {this.state.ModalData.promotionTimes}
  3107. </FormItem>
  3108. </div>
  3109. <div className="clearfix">
  3110. <FormItem
  3111. className="half-item"
  3112. labelCol={{ span: 6 }}
  3113. wrapperCol={{ span: 30 }}
  3114. label="所属公司"
  3115. >
  3116. {this.state.ModalData.depName}
  3117. </FormItem>
  3118. <FormItem
  3119. className="half-item"
  3120. labelCol={{ span: 6 }}
  3121. wrapperCol={{ span: 30 }}
  3122. label="级别"
  3123. >
  3124. {this.state.ModalData.lvlName}
  3125. </FormItem>
  3126. </div>
  3127. <div className="clearfix">
  3128. <FormItem
  3129. className="half-item"
  3130. labelCol={{ span: 6 }}
  3131. wrapperCol={{ span: 30 }}
  3132. label="职位"
  3133. >
  3134. {this.state.ModalData.jobsName}
  3135. </FormItem>
  3136. <FormItem
  3137. className="half-item"
  3138. labelCol={{ span: 6 }}
  3139. wrapperCol={{ span: 30 }}
  3140. label="岗位津贴"
  3141. >
  3142. {this.state.ModalData.allowance}
  3143. </FormItem>
  3144. </div>
  3145. <div className="clearfix">
  3146. <FormItem
  3147. className="half-item"
  3148. labelCol={{ span: 6 }}
  3149. wrapperCol={{ span: 30 }}
  3150. label="星级"
  3151. >
  3152. {this.state.ModalData.starName}
  3153. </FormItem>
  3154. </div>
  3155. </TabPane>
  3156. <TabPane tab="联系信息" key={2}>
  3157. <div className="title-peo">
  3158. <span>联系信息</span>
  3159. <Button
  3160. type="primary"
  3161. onClick={this.phoneModal}
  3162. style={{ position: "absolute", right: 0, height: 30 }}
  3163. >
  3164. 修改联系信息
  3165. </Button>
  3166. </div>
  3167. <div className="clearfix">
  3168. <FormItem
  3169. className="half-item"
  3170. labelCol={{ span: 6 }}
  3171. wrapperCol={{ span: 30 }}
  3172. label="手机号码"
  3173. >
  3174. {this.state.ModalData.mobile}
  3175. </FormItem>
  3176. <FormItem
  3177. className="half-item"
  3178. labelCol={{ span: 6 }}
  3179. wrapperCol={{ span: 30 }}
  3180. label="电话"
  3181. >
  3182. {this.state.ModalData.fixedTel}
  3183. </FormItem>
  3184. </div>
  3185. {this.state.ModalData.contactList &&
  3186. this.state.ModalData.contactList.length > 0 ? (
  3187. this.state.ModalData.contactList.map((item, index) => {
  3188. return (
  3189. <div className="clearfix">
  3190. <FormItem
  3191. className="half-item"
  3192. labelCol={{ span: 6 }}
  3193. wrapperCol={{ span: 30 }}
  3194. label={"紧急联系人" + (index + 1)}
  3195. >
  3196. {item.emergencyContact}
  3197. </FormItem>
  3198. <FormItem
  3199. className="half-item"
  3200. labelCol={{ span: 6 }}
  3201. wrapperCol={{ span: 30 }}
  3202. label={"紧急联系人" + (index + 1) + "电话"}
  3203. >
  3204. {item.emergencyMobile}
  3205. </FormItem>
  3206. </div>
  3207. );
  3208. })
  3209. ) : (
  3210. <div
  3211. style={{
  3212. textAlign: "center",
  3213. height: 60,
  3214. lineHeight: "60px",
  3215. }}
  3216. >
  3217. 暂无紧急联系人信息
  3218. </div>
  3219. )}
  3220. </TabPane>
  3221. <TabPane tab="入职资料" key={3}>
  3222. <div className="title-peo">
  3223. <span>入职资料</span>
  3224. <Button
  3225. type="primary"
  3226. onClick={this.entryModal}
  3227. style={{ position: "absolute", right: 0, height: 30 }}
  3228. >
  3229. 修改入职信息
  3230. </Button>
  3231. </div>
  3232. <div className="clearfix">
  3233. <FormItem
  3234. className="half-item"
  3235. labelCol={{ span: 6 }}
  3236. wrapperCol={{ span: 30 }}
  3237. label="毕业学校"
  3238. >
  3239. {this.state.ModalData.personnelEntry
  3240. ? this.state.ModalData.personnelEntry.school
  3241. : ""}
  3242. </FormItem>
  3243. <FormItem
  3244. className="half-item"
  3245. labelCol={{ span: 6 }}
  3246. wrapperCol={{ span: 30 }}
  3247. label="学历"
  3248. >
  3249. {this.state.ModalData.personnelEntry
  3250. ? this.educationStatus(
  3251. this.state.ModalData.personnelEntry.education
  3252. )
  3253. : ""}
  3254. </FormItem>
  3255. </div>
  3256. <div className="clearfix">
  3257. <FormItem
  3258. className="half-item"
  3259. labelCol={{ span: 6 }}
  3260. wrapperCol={{ span: 30 }}
  3261. label="所学专业"
  3262. >
  3263. {this.state.ModalData.personnelEntry
  3264. ? this.state.ModalData.personnelEntry.major
  3265. : ""}
  3266. </FormItem>
  3267. <FormItem
  3268. className="half-item"
  3269. labelCol={{ span: 6 }}
  3270. wrapperCol={{ span: 30 }}
  3271. label="职称"
  3272. >
  3273. {this.state.ModalData.personnelEntry
  3274. ? this.state.ModalData.personnelEntry.title
  3275. : ""}
  3276. </FormItem>
  3277. </div>
  3278. <div className="clearfix" style={{ paddingLeft: 70 }}>
  3279. <div style={{ marginBottom: 10 }}>附件:</div>
  3280. <PicModal
  3281. remarks={
  3282. this.state.ModalData.personnelEntry
  3283. ? this.picToArr(
  3284. this.state.ModalData.personnelEntry.annexName
  3285. )
  3286. : []
  3287. }
  3288. picUrl={
  3289. this.state.ModalData.personnelEntry
  3290. ? this.picToArr(
  3291. this.state.ModalData.personnelEntry.annexUrl
  3292. )
  3293. : []
  3294. }
  3295. />
  3296. </div>
  3297. </TabPane>
  3298. <TabPane tab="晋升情况" key={4}>
  3299. <div className="title-peo">
  3300. <span>晋升情况</span>
  3301. <Button
  3302. type="primary"
  3303. onClick={(e) => {
  3304. this.upgradeModal(true);
  3305. }}
  3306. style={{ position: "absolute", right: 0, height: 30 }}
  3307. >
  3308. 新增晋升信息
  3309. </Button>
  3310. </div>
  3311. {this.state.ModalData.promotionList &&
  3312. this.state.ModalData.promotionList.length > 0 ? (
  3313. this.state.ModalData.promotionList.map((item, index) => {
  3314. return (
  3315. <div
  3316. style={{
  3317. width: "100%",
  3318. borderBottom: "1px dashed #ccc",
  3319. position: "relative",
  3320. }}
  3321. >
  3322. <Button
  3323. style={{
  3324. position: "absolute",
  3325. right: "50%",
  3326. bottom: 10,
  3327. transform: "translateX(50%)",
  3328. }}
  3329. type="primary"
  3330. onClick={(e) => {
  3331. this.upgradeModal(false, index);
  3332. }}
  3333. >
  3334. 修改信息
  3335. </Button>
  3336. <div className="clearfix">
  3337. <FormItem
  3338. className="half-item"
  3339. labelCol={{ span: 6 }}
  3340. wrapperCol={{ span: 30 }}
  3341. label="晋升职位"
  3342. >
  3343. {item.oldJobsName + "--->" + item.newJobsName}
  3344. </FormItem>
  3345. <FormItem
  3346. className="half-item"
  3347. labelCol={{ span: 6 }}
  3348. wrapperCol={{ span: 30 }}
  3349. label="晋升等级"
  3350. >
  3351. {item.oldLvlName + "--->" + item.newLvlName}
  3352. </FormItem>
  3353. </div>
  3354. <div className="clearfix">
  3355. <FormItem
  3356. className="half-item"
  3357. labelCol={{ span: 6 }}
  3358. wrapperCol={{ span: 30 }}
  3359. label="晋升时间"
  3360. >
  3361. {item.promotionTimes}
  3362. </FormItem>
  3363. </div>
  3364. <div className="clearfix">
  3365. <FormItem
  3366. className="half-item"
  3367. labelCol={{ span: 6 }}
  3368. wrapperCol={{ span: 30 }}
  3369. label="晋升备注"
  3370. >
  3371. {item.promotionRemarks}
  3372. </FormItem>
  3373. </div>
  3374. <div
  3375. className="clearfix"
  3376. style={{ paddingLeft: 70, marginBottom: 40 }}
  3377. >
  3378. <div style={{ marginBottom: 10 }}>附件:</div>
  3379. <PicModal
  3380. remarks={this.picToArr(item.annexName)}
  3381. picUrl={this.picToArr(item.annexUrl)}
  3382. />
  3383. </div>
  3384. </div>
  3385. );
  3386. })
  3387. ) : (
  3388. <div
  3389. style={{
  3390. textAlign: "center",
  3391. height: 60,
  3392. lineHeight: "60px",
  3393. }}
  3394. >
  3395. 暂无晋升情况
  3396. </div>
  3397. )}
  3398. </TabPane>
  3399. <TabPane tab="合同情况" key={5}>
  3400. <div className="title-peo">
  3401. <span>合同情况</span>
  3402. <Button
  3403. type="primary"
  3404. onClick={(e) => {
  3405. this.contractModal(true);
  3406. }}
  3407. style={{ position: "absolute", right: 0, height: 30 }}
  3408. >
  3409. 新增合同信息
  3410. </Button>
  3411. </div>
  3412. {this.state.ModalData.contractList &&
  3413. this.state.ModalData.contractList.length > 0 ? (
  3414. this.state.ModalData.contractList.map((item, index) => {
  3415. return (
  3416. <div
  3417. style={{
  3418. width: "100%",
  3419. borderBottom: "1px dashed #ccc",
  3420. position: "relative",
  3421. }}
  3422. >
  3423. <Button
  3424. style={{
  3425. position: "absolute",
  3426. right: "50%",
  3427. bottom: 10,
  3428. transform: "translateX(50%)",
  3429. }}
  3430. type="primary"
  3431. onClick={(e) => {
  3432. this.contractModal(false, index);
  3433. }}
  3434. >
  3435. 修改信息
  3436. </Button>
  3437. <div className="clearfix">
  3438. <FormItem
  3439. className="half-item"
  3440. labelCol={{ span: 6 }}
  3441. wrapperCol={{ span: 30 }}
  3442. label="签订时间"
  3443. >
  3444. {item.startTimes}
  3445. </FormItem>
  3446. <FormItem
  3447. className="half-item"
  3448. labelCol={{ span: 6 }}
  3449. wrapperCol={{ span: 30 }}
  3450. label="到期时间"
  3451. >
  3452. {item.endTimes}
  3453. </FormItem>
  3454. </div>
  3455. <div className="clearfix">
  3456. <FormItem
  3457. style={{ width: "100%", wordBreak: "break-all" }}
  3458. className="half-item"
  3459. labelCol={{ span: 3 }}
  3460. wrapperCol={{ span: 30 }}
  3461. label="备注"
  3462. >
  3463. {item.contractRemarks}
  3464. </FormItem>
  3465. </div>
  3466. <div
  3467. className="clearfix"
  3468. style={{ paddingLeft: 70, marginBottom: 40 }}
  3469. >
  3470. <div style={{ marginBottom: 10 }}>附件:</div>
  3471. <PicModal
  3472. remarks={this.picToArr(item.annexName)}
  3473. picUrl={this.picToArr(item.annexUrl)}
  3474. />
  3475. </div>
  3476. </div>
  3477. );
  3478. })
  3479. ) : (
  3480. <div
  3481. style={{
  3482. textAlign: "center",
  3483. height: 60,
  3484. lineHeight: "60px",
  3485. }}
  3486. >
  3487. 暂无合同情况
  3488. </div>
  3489. )}
  3490. </TabPane>
  3491. <TabPane tab="奖惩情况" key={6}>
  3492. <div className="title-peo">
  3493. <span>奖惩情况</span>
  3494. <Button
  3495. type="primary"
  3496. onClick={(e) => {
  3497. this.chooseModal(true);
  3498. }}
  3499. style={{ position: "absolute", right: 0, height: 30 }}
  3500. >
  3501. 新增奖惩信息
  3502. </Button>
  3503. </div>
  3504. {this.state.ModalData.chooseList &&
  3505. this.state.ModalData.chooseList.length > 0 ? (
  3506. this.state.ModalData.chooseList.map((item, index) => {
  3507. return (
  3508. <div
  3509. style={{
  3510. width: "100%",
  3511. borderBottom: "1px dashed #ccc",
  3512. position: "relative",
  3513. }}
  3514. >
  3515. <Button
  3516. style={{
  3517. position: "absolute",
  3518. right: "50%",
  3519. bottom: 10,
  3520. transform: "translateX(50%)",
  3521. }}
  3522. type="primary"
  3523. onClick={(e) => {
  3524. this.chooseModal(false, index);
  3525. }}
  3526. >
  3527. 修改信息
  3528. </Button>
  3529. <div className="clearfix">
  3530. <FormItem
  3531. className="half-item"
  3532. labelCol={{ span: 6 }}
  3533. wrapperCol={{ span: 30 }}
  3534. label={"状态"}
  3535. >
  3536. {item.chooseStatus == 0 ? "奖励" : "惩罚"}
  3537. </FormItem>
  3538. <FormItem
  3539. className="half-item"
  3540. labelCol={{ span: 6 }}
  3541. wrapperCol={{ span: 30 }}
  3542. label="时间"
  3543. >
  3544. {item.effectTimes}
  3545. </FormItem>
  3546. </div>
  3547. <div className="clearfix">
  3548. <FormItem
  3549. className="half-item"
  3550. labelCol={{ span: 6 }}
  3551. wrapperCol={{ span: 30 }}
  3552. label={"内容"}
  3553. >
  3554. {item.chooseRemarks}
  3555. </FormItem>
  3556. </div>
  3557. <div
  3558. className="clearfix"
  3559. style={{ paddingLeft: 70, marginBottom: 40 }}
  3560. >
  3561. <div style={{ marginBottom: 10 }}>附件:</div>
  3562. <PicModal
  3563. remarks={this.picToArr(item.annexName)}
  3564. picUrl={this.picToArr(item.annexUrl)}
  3565. />
  3566. </div>
  3567. </div>
  3568. );
  3569. })
  3570. ) : (
  3571. <div
  3572. style={{
  3573. textAlign: "center",
  3574. height: 60,
  3575. lineHeight: "60px",
  3576. }}
  3577. >
  3578. 暂无奖惩情况
  3579. </div>
  3580. )}
  3581. </TabPane>
  3582. <TabPane tab="离职情况" key={7}>
  3583. <div className="title-peo">
  3584. <span>离职情况</span>
  3585. <Button
  3586. type="primary"
  3587. onClick={(e) => {
  3588. this.quitModal(true);
  3589. }}
  3590. style={{ position: "absolute", right: 0, height: 30 }}
  3591. >
  3592. 新增离职信息
  3593. </Button>
  3594. </div>
  3595. {this.state.ModalData.quitList &&
  3596. this.state.ModalData.quitList.length > 0 ? (
  3597. this.state.ModalData.quitList.map((item, index) => {
  3598. return (
  3599. <div
  3600. style={{
  3601. width: "100%",
  3602. borderBottom: "1px dashed #ccc",
  3603. position: "relative",
  3604. }}
  3605. >
  3606. <Button
  3607. style={{
  3608. position: "absolute",
  3609. right: "50%",
  3610. bottom: 10,
  3611. transform: "translateX(50%)",
  3612. }}
  3613. type="primary"
  3614. onClick={(e) => {
  3615. this.quitModal(false, index);
  3616. }}
  3617. >
  3618. 修改信息
  3619. </Button>
  3620. <div className="clearfix">
  3621. <FormItem
  3622. className="half-item"
  3623. labelCol={{ span: 6 }}
  3624. wrapperCol={{ span: 30 }}
  3625. label="离职时间"
  3626. >
  3627. {item.effectTimes}
  3628. </FormItem>
  3629. <FormItem
  3630. className="half-item"
  3631. labelCol={{ span: 6 }}
  3632. wrapperCol={{ span: 30 }}
  3633. label="离职备注"
  3634. >
  3635. {item.quitRemarks}
  3636. </FormItem>
  3637. </div>
  3638. <div
  3639. className="clearfix"
  3640. style={{ paddingLeft: 70, marginBottom: 40 }}
  3641. >
  3642. <div style={{ marginBottom: 10 }}>附件:</div>
  3643. <PicModal
  3644. remarks={this.picToArr(item.annexName)}
  3645. picUrl={this.picToArr(item.annexUrl)}
  3646. />
  3647. </div>
  3648. </div>
  3649. );
  3650. })
  3651. ) : (
  3652. <div
  3653. style={{
  3654. textAlign: "center",
  3655. height: 60,
  3656. lineHeight: "60px",
  3657. }}
  3658. >
  3659. 暂无奖惩情况
  3660. </div>
  3661. )}
  3662. </TabPane>
  3663. <TabPane tab="福利情况" key={8}>
  3664. <div className="title-peo" style={{ marginBottom: 10 }}>
  3665. <span>福利情况</span>
  3666. <Button
  3667. type="primary"
  3668. onClick={(e) => {
  3669. this.welfareModal();
  3670. }}
  3671. style={{ position: "absolute", right: 0, height: 30 }}
  3672. >
  3673. 修改福利信息
  3674. </Button>
  3675. </div>
  3676. <Table
  3677. columns={this.state.welfareColumns}
  3678. dataSource={this.state.ModalData.welfareList}
  3679. pagination={false}
  3680. bordered
  3681. size="small"
  3682. scroll={{ x: "max-content", y: 0 }}
  3683. />
  3684. <div className="clearfix" style={{ marginTop: 10 }}>
  3685. <FormItem
  3686. className="half-item"
  3687. style={{ width: "100%", wordBreak: "break-all" }}
  3688. labelCol={{ span: 3 }}
  3689. wrapperCol={{ span: 30 }}
  3690. label="备注"
  3691. >
  3692. {this.state.ModalData.welfareRemarks}
  3693. </FormItem>
  3694. </div>
  3695. <div
  3696. className="clearfix"
  3697. style={{ paddingLeft: 70, marginBottom: 0 }}
  3698. >
  3699. <div style={{ marginBottom: 10 }}>附件:</div>
  3700. <PicModal
  3701. remarks={this.picToArr(
  3702. this.state.ModalData.welfareAnnexName
  3703. )}
  3704. picUrl={this.picToArr(
  3705. this.state.ModalData.welfareAnnexUrl
  3706. )}
  3707. />
  3708. </div>
  3709. </TabPane>
  3710. </Tabs>
  3711. )}
  3712. </Spin>
  3713. <Modal
  3714. visible={this.state.peoVisible}
  3715. onOk={this.checkOk}
  3716. footer={null}
  3717. width={800}
  3718. style={{ position: "relative", zIndex: 9999 }}
  3719. onCancel={() => {
  3720. this.loadData();
  3721. this.addPeoCancel();
  3722. }}
  3723. >
  3724. <Spin spinning={this.state.loading}>
  3725. <h2
  3726. style={{
  3727. textAlign: "center",
  3728. paddingBottom: 10,
  3729. marginBottom: 10,
  3730. }}
  3731. >
  3732. {this.state.isAddPeo ? "新增人事档案" : "修改人事档案"}
  3733. </h2>
  3734. <div className="clearfix">
  3735. <FormItem
  3736. className="half-item"
  3737. {...formItemLayout}
  3738. label="员工编号"
  3739. >
  3740. <Input
  3741. placeholder="请输入员工编号"
  3742. style={{ width: 200 }}
  3743. value={this.state.employeeId}
  3744. onChange={(e) => {
  3745. this.setState({
  3746. employeeId: e.target.value,
  3747. });
  3748. }}
  3749. />
  3750. <Button
  3751. disabled={this.state.employeeId || this.state.employeeId == 0 ? false : true}
  3752. style={{ position: "absolute" }}
  3753. type={"primary"}
  3754. onClick={this.verifyId}
  3755. >
  3756. 验证重复
  3757. </Button>
  3758. </FormItem>
  3759. <FormItem
  3760. className="half-item"
  3761. {...formItemLayout}
  3762. label="门禁编号"
  3763. >
  3764. <Input
  3765. style={{ width: 200 }}
  3766. placeholder="请输入门禁编号"
  3767. value={this.state.doorId}
  3768. onChange={(e) => {
  3769. this.setState({
  3770. doorId: e.target.value,
  3771. });
  3772. }}
  3773. />
  3774. <Button
  3775. disabled={this.state.doorId || this.state.doorId == 0 ? false : true}
  3776. style={{ position: "absolute" }}
  3777. type={"primary"}
  3778. onClick={this.verifyDoor}
  3779. >
  3780. 验证重复
  3781. </Button>
  3782. </FormItem>
  3783. </div>
  3784. <div className="clearfix">
  3785. <FormItem
  3786. className="half-item"
  3787. {...formItemLayout}
  3788. label="姓名"
  3789. >
  3790. <Input
  3791. placeholder="请输入姓名"
  3792. style={{ width: 200 }}
  3793. value={this.state.name}
  3794. onChange={(e) => {
  3795. this.setState({
  3796. name: e.target.value,
  3797. });
  3798. }}
  3799. />
  3800. </FormItem>
  3801. <FormItem
  3802. className="half-item"
  3803. {...formItemLayout}
  3804. label="出生日期"
  3805. >
  3806. <DatePicker
  3807. value={
  3808. this.state.birthdays ? moment(this.state.birthdays) : null
  3809. }
  3810. onChange={(e, t) => {
  3811. this.setState({
  3812. birthdays: t,
  3813. });
  3814. }}
  3815. />
  3816. </FormItem>
  3817. </div>
  3818. <div className="clearfix">
  3819. <FormItem
  3820. className="half-item"
  3821. {...formItemLayout}
  3822. label="性别"
  3823. >
  3824. <Radio.Group
  3825. onChange={(e) => {
  3826. this.setState({ sex: e.target.value });
  3827. }}
  3828. value={this.state.sex}
  3829. >
  3830. <Radio value={0}>男</Radio>
  3831. <Radio value={1}>女</Radio>
  3832. </Radio.Group>
  3833. </FormItem>
  3834. <FormItem
  3835. className="half-item"
  3836. {...formItemLayout}
  3837. label="民族"
  3838. >
  3839. <Input
  3840. placeholder="输入民族(例:汉族)"
  3841. style={{ width: 200 }}
  3842. value={this.state.nation}
  3843. onChange={(e) => {
  3844. this.setState({
  3845. nation: e.target.value,
  3846. });
  3847. }}
  3848. />
  3849. </FormItem>
  3850. </div>
  3851. <div className="clearfix">
  3852. <FormItem
  3853. className="half-item"
  3854. {...formItemLayout}
  3855. label="户籍地址"
  3856. >
  3857. <Cascader
  3858. options={this.state.Area}
  3859. value={this.state.residence}
  3860. placeholder="选择城市"
  3861. style={{ width: "200px" }}
  3862. onChange={(e, pre) => {
  3863. this.setState({ residence: e });
  3864. }}
  3865. />
  3866. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  3867. </FormItem>
  3868. <FormItem
  3869. className="half-item"
  3870. {...formItemLayout}
  3871. label="户籍街道地址"
  3872. >
  3873. <Input
  3874. placeholder="输入街道地址"
  3875. style={{ width: 200 }}
  3876. value={this.state.residenceAddress}
  3877. onChange={(e) => {
  3878. this.setState({
  3879. residenceAddress: e.target.value,
  3880. });
  3881. }}
  3882. />
  3883. </FormItem>
  3884. </div>
  3885. <div className="clearfix">
  3886. <FormItem
  3887. className="half-item"
  3888. {...formItemLayout}
  3889. label="现住地址"
  3890. >
  3891. <Cascader
  3892. options={this.state.Area}
  3893. value={this.state.now}
  3894. placeholder="选择城市"
  3895. style={{ width: "200px" }}
  3896. onChange={(e, pre) => {
  3897. this.setState({ now: e });
  3898. }}
  3899. />
  3900. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  3901. </FormItem>
  3902. <FormItem
  3903. className="half-item"
  3904. {...formItemLayout}
  3905. label="现住街道地址"
  3906. >
  3907. <Input
  3908. placeholder="输入街道地址"
  3909. style={{ width: 200 }}
  3910. value={this.state.nowAddress}
  3911. onChange={(e) => {
  3912. this.setState({
  3913. nowAddress: e.target.value,
  3914. });
  3915. }}
  3916. />
  3917. </FormItem>
  3918. </div>
  3919. <div className="clearfix">
  3920. <FormItem
  3921. className="half-item"
  3922. {...formItemLayout}
  3923. label="籍贯"
  3924. >
  3925. <Cascader
  3926. options={this.state.Birthplaces}
  3927. value={this.state.nativePlace}
  3928. placeholder="选择城市"
  3929. style={{ width: "200px" }}
  3930. onChange={(e, pre) => {
  3931. this.setState({ nativePlace: e });
  3932. }}
  3933. />
  3934. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  3935. </FormItem>
  3936. <FormItem
  3937. className="half-item"
  3938. {...formItemLayout}
  3939. label="身份证"
  3940. >
  3941. <Input
  3942. placeholder="输入身份证信息"
  3943. style={{ width: 200 }}
  3944. value={this.state.idCard}
  3945. onChange={(e) => {
  3946. // let reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
  3947. this.setState({
  3948. idCard: e.target.value,
  3949. });
  3950. }}
  3951. />
  3952. </FormItem>
  3953. </div>
  3954. <div className="clearfix">
  3955. <FormItem
  3956. className="half-item"
  3957. {...formItemLayout}
  3958. label="身份证领证机关"
  3959. >
  3960. <Input
  3961. placeholder="输入机关名称"
  3962. style={{ width: 200 }}
  3963. value={this.state.certificationAuthority}
  3964. onChange={(e) => {
  3965. // let reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
  3966. this.setState({
  3967. certificationAuthority: e.target.value,
  3968. });
  3969. }}
  3970. />
  3971. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  3972. </FormItem>
  3973. <FormItem
  3974. className="half-item"
  3975. {...formItemLayout}
  3976. label="婚姻状态"
  3977. >
  3978. <Radio.Group
  3979. onChange={(e) => {
  3980. this.setState({ marriage: e.target.value });
  3981. }}
  3982. value={this.state.marriage}
  3983. >
  3984. <Radio value={0}>未婚</Radio>
  3985. <Radio value={1}>已婚</Radio>
  3986. <Radio value={2}>离异</Radio>
  3987. </Radio.Group>
  3988. </FormItem>
  3989. </div>
  3990. <div className="clearfix">
  3991. <FormItem
  3992. className="half-item"
  3993. labelCol={{ span: 6 }}
  3994. wrapperCol={{ span: 30 }}
  3995. label="子女数量"
  3996. >
  3997. <span>儿子:</span>
  3998. <Input
  3999. placeholder="输入数量"
  4000. style={{ width: 80 }}
  4001. type={"number"}
  4002. value={this.state.son}
  4003. onChange={(e) => {
  4004. this.setState({
  4005. son: e.target.value,
  4006. });
  4007. }}
  4008. />
  4009. <span style={{ marginLeft: 10 }}>女儿:</span>
  4010. <Input
  4011. placeholder="输入数量"
  4012. style={{ width: 80 }}
  4013. type={"number"}
  4014. value={this.state.girl}
  4015. onChange={(e) => {
  4016. this.setState({
  4017. girl: e.target.value,
  4018. });
  4019. }}
  4020. />
  4021. </FormItem>
  4022. <FormItem
  4023. className="half-item"
  4024. {...formItemLayout}
  4025. label="政治面貌"
  4026. >
  4027. <Select
  4028. placeholder="请选择政治面貌"
  4029. style={{ width: 200 }}
  4030. onChange={(e) => {
  4031. this.setState({ politicalOutlook: e });
  4032. }}
  4033. value={this.state.politicalOutlook}
  4034. >
  4035. <Option value={0}>群众</Option>
  4036. <Option value={1}>中共预备党员</Option>
  4037. <Option value={2}>中共党员</Option>
  4038. <Option value={3}>致公党党员</Option>
  4039. </Select>
  4040. </FormItem>
  4041. </div>
  4042. <Button
  4043. type="primary"
  4044. shape="round"
  4045. size="large"
  4046. style={{
  4047. position: "relative",
  4048. left: "50%",
  4049. transform: "translateX(-50%)",
  4050. }}
  4051. onClick={this.state.isAddPeo ? this.addOk : this.editOk}
  4052. >
  4053. 保存
  4054. </Button>
  4055. </Spin>
  4056. </Modal>
  4057. </Modal>
  4058. <Modal
  4059. visible={this.state.peoVisible}
  4060. onOk={this.checkOk}
  4061. footer={null}
  4062. width={800}
  4063. style={{ position: "relative", zIndex: 9999 }}
  4064. onCancel={() => {
  4065. this.loadData();
  4066. this.addPeoCancel();
  4067. }}
  4068. >
  4069. <Spin spinning={this.state.loading}>
  4070. <h2
  4071. style={{
  4072. textAlign: "center",
  4073. paddingBottom: 10,
  4074. marginBottom: 10,
  4075. }}
  4076. >
  4077. {this.state.isAddPeo ? "新增人事档案" : "修改人事档案"}
  4078. </h2>
  4079. <div className="clearfix">
  4080. <FormItem
  4081. className="half-item"
  4082. {...formItemLayout}
  4083. label="员工编号"
  4084. >
  4085. <Input
  4086. placeholder="请输入员工编号"
  4087. style={{ width: 200 }}
  4088. value={this.state.employeeId}
  4089. onChange={(e) => {
  4090. this.setState({
  4091. employeeId: e.target.value,
  4092. });
  4093. }}
  4094. />
  4095. <Button
  4096. disabled={this.state.employeeId || this.state.employeeId == 0 ? false : true}
  4097. style={{ position: "absolute" }}
  4098. type={"primary"}
  4099. onClick={this.verifyId}
  4100. >
  4101. 验证重复
  4102. </Button>
  4103. </FormItem>
  4104. <FormItem
  4105. className="half-item"
  4106. {...formItemLayout}
  4107. label="门禁编号"
  4108. >
  4109. <Input
  4110. style={{ width: 200 }}
  4111. placeholder="请输入门禁编号"
  4112. value={this.state.doorId}
  4113. onChange={(e) => {
  4114. this.setState({
  4115. doorId: e.target.value,
  4116. });
  4117. }}
  4118. />
  4119. <Button
  4120. disabled={this.state.doorId || this.state.doorId == 0 ? false : true}
  4121. style={{ position: "absolute" }}
  4122. type={"primary"}
  4123. onClick={this.verifyDoor}
  4124. >
  4125. 验证重复
  4126. </Button>
  4127. </FormItem>
  4128. </div>
  4129. <div className="clearfix">
  4130. <FormItem className="half-item" {...formItemLayout} label="姓名">
  4131. <Input
  4132. placeholder="请输入姓名"
  4133. style={{ width: 200 }}
  4134. value={this.state.name}
  4135. onChange={(e) => {
  4136. this.setState({
  4137. name: e.target.value,
  4138. });
  4139. }}
  4140. />
  4141. </FormItem>
  4142. <FormItem
  4143. className="half-item"
  4144. {...formItemLayout}
  4145. label="出生日期"
  4146. >
  4147. <DatePicker
  4148. value={
  4149. this.state.birthdays ? moment(this.state.birthdays) : null
  4150. }
  4151. onChange={(e, t) => {
  4152. this.setState({
  4153. birthdays: t,
  4154. });
  4155. }}
  4156. />
  4157. </FormItem>
  4158. </div>
  4159. <div className="clearfix">
  4160. <FormItem className="half-item" {...formItemLayout} label="性别">
  4161. <Radio.Group
  4162. onChange={(e) => {
  4163. this.setState({ sex: e.target.value });
  4164. }}
  4165. value={this.state.sex}
  4166. >
  4167. <Radio value={0}>男</Radio>
  4168. <Radio value={1}>女</Radio>
  4169. </Radio.Group>
  4170. </FormItem>
  4171. <FormItem className="half-item" {...formItemLayout} label="民族">
  4172. <Input
  4173. placeholder="输入民族(例:汉族)"
  4174. style={{ width: 200 }}
  4175. value={this.state.nation}
  4176. onChange={(e) => {
  4177. this.setState({
  4178. nation: e.target.value,
  4179. });
  4180. }}
  4181. />
  4182. </FormItem>
  4183. </div>
  4184. <div className="clearfix">
  4185. <FormItem
  4186. className="half-item"
  4187. {...formItemLayout}
  4188. label="户籍地址"
  4189. >
  4190. <Cascader
  4191. options={this.state.Area}
  4192. value={this.state.residence}
  4193. placeholder="选择城市"
  4194. style={{ width: "200px" }}
  4195. onChange={(e, pre) => {
  4196. this.setState({ residence: e });
  4197. }}
  4198. />
  4199. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  4200. </FormItem>
  4201. <FormItem
  4202. className="half-item"
  4203. {...formItemLayout}
  4204. label="户籍街道地址"
  4205. >
  4206. <Input
  4207. placeholder="输入街道地址"
  4208. style={{ width: 200 }}
  4209. value={this.state.residenceAddress}
  4210. onChange={(e) => {
  4211. this.setState({
  4212. residenceAddress: e.target.value,
  4213. });
  4214. }}
  4215. />
  4216. </FormItem>
  4217. </div>
  4218. <div className="clearfix">
  4219. <FormItem
  4220. className="half-item"
  4221. {...formItemLayout}
  4222. label="现住地址"
  4223. >
  4224. <Cascader
  4225. options={this.state.Area}
  4226. value={this.state.now}
  4227. placeholder="选择城市"
  4228. style={{ width: "200px" }}
  4229. onChange={(e, pre) => {
  4230. this.setState({ now: e });
  4231. }}
  4232. />
  4233. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  4234. </FormItem>
  4235. <FormItem
  4236. className="half-item"
  4237. {...formItemLayout}
  4238. label="现住街道地址"
  4239. >
  4240. <Input
  4241. placeholder="输入街道地址"
  4242. style={{ width: 200 }}
  4243. value={this.state.nowAddress}
  4244. onChange={(e) => {
  4245. this.setState({
  4246. nowAddress: e.target.value,
  4247. });
  4248. }}
  4249. />
  4250. </FormItem>
  4251. </div>
  4252. <div className="clearfix">
  4253. <FormItem className="half-item" {...formItemLayout} label="籍贯">
  4254. <Cascader
  4255. options={this.state.Birthplaces}
  4256. value={this.state.nativePlace}
  4257. placeholder="选择城市"
  4258. style={{ width: "200px" }}
  4259. onChange={(e, pre) => {
  4260. this.setState({ nativePlace: e });
  4261. }}
  4262. />
  4263. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  4264. </FormItem>
  4265. <FormItem
  4266. className="half-item"
  4267. {...formItemLayout}
  4268. label="身份证"
  4269. >
  4270. <Input
  4271. placeholder="输入身份证信息"
  4272. style={{ width: 200 }}
  4273. value={this.state.idCard}
  4274. onChange={(e) => {
  4275. // let reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
  4276. this.setState({
  4277. idCard: e.target.value,
  4278. });
  4279. }}
  4280. />
  4281. </FormItem>
  4282. </div>
  4283. <div className="clearfix">
  4284. <FormItem
  4285. className="half-item"
  4286. {...formItemLayout}
  4287. label="身份证领证机关"
  4288. >
  4289. <Input
  4290. placeholder="输入机关名称"
  4291. style={{ width: 200 }}
  4292. value={this.state.certificationAuthority}
  4293. onChange={(e) => {
  4294. // let reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
  4295. this.setState({
  4296. certificationAuthority: e.target.value,
  4297. });
  4298. }}
  4299. />
  4300. {/* <span style={{ color: "red", marginLeft: "15px" }}>*</span> */}
  4301. </FormItem>
  4302. <FormItem
  4303. className="half-item"
  4304. {...formItemLayout}
  4305. label="婚姻状态"
  4306. >
  4307. <Radio.Group
  4308. onChange={(e) => {
  4309. this.setState({ marriage: e.target.value });
  4310. }}
  4311. value={this.state.marriage}
  4312. >
  4313. <Radio value={0}>未婚</Radio>
  4314. <Radio value={1}>已婚</Radio>
  4315. <Radio value={2}>离异</Radio>
  4316. </Radio.Group>
  4317. </FormItem>
  4318. </div>
  4319. <div className="clearfix">
  4320. <FormItem
  4321. className="half-item"
  4322. labelCol={{ span: 6 }}
  4323. wrapperCol={{ span: 30 }}
  4324. label="子女数量"
  4325. >
  4326. <span>儿子:</span>
  4327. <Input
  4328. placeholder="输入数量"
  4329. style={{ width: 80 }}
  4330. type={"number"}
  4331. value={this.state.son}
  4332. onChange={(e) => {
  4333. this.setState({
  4334. son: e.target.value,
  4335. });
  4336. }}
  4337. />
  4338. <span style={{ marginLeft: 10 }}>女儿:</span>
  4339. <Input
  4340. placeholder="输入数量"
  4341. style={{ width: 80 }}
  4342. type={"number"}
  4343. value={this.state.girl}
  4344. onChange={(e) => {
  4345. this.setState({
  4346. girl: e.target.value,
  4347. });
  4348. }}
  4349. />
  4350. </FormItem>
  4351. <FormItem
  4352. className="half-item"
  4353. {...formItemLayout}
  4354. label="政治面貌"
  4355. >
  4356. <Select
  4357. placeholder="请选择政治面貌"
  4358. style={{ width: 200 }}
  4359. onChange={(e) => {
  4360. this.setState({ politicalOutlook: e });
  4361. }}
  4362. value={this.state.politicalOutlook}
  4363. >
  4364. <Option value={0}>群众</Option>
  4365. <Option value={1}>中共预备党员</Option>
  4366. <Option value={2}>中共党员</Option>
  4367. <Option value={3}>致公党党员</Option>
  4368. </Select>
  4369. </FormItem>
  4370. </div>
  4371. <Button
  4372. type="primary"
  4373. shape="round"
  4374. size="large"
  4375. style={{
  4376. position: "relative",
  4377. left: "50%",
  4378. transform: "translateX(-50%)",
  4379. }}
  4380. onClick={this.state.isAddPeo ? this.addOk : this.editOk}
  4381. >
  4382. 保存
  4383. </Button>
  4384. </Spin>
  4385. </Modal>
  4386. <Modal
  4387. visible={this.state.stayVisible}
  4388. footer={null}
  4389. width={800}
  4390. onCancel={() => {
  4391. this.loadData();
  4392. this.stayCancel();
  4393. }}
  4394. >
  4395. <Spin spinning={this.state.loading}>
  4396. <h3
  4397. style={{
  4398. textAlign: "center",
  4399. paddingBottom: 10,
  4400. marginBottom: 10,
  4401. }}
  4402. >
  4403. 任职信息
  4404. </h3>
  4405. <div className="clearfix">
  4406. <FormItem
  4407. className="half-item"
  4408. labelCol={{ span: 6 }}
  4409. wrapperCol={{ span: 30 }}
  4410. label="员工状态"
  4411. >
  4412. <Select
  4413. placeholder="请选择状态"
  4414. style={{ width: 200 }}
  4415. onChange={(e) => {
  4416. this.setState({ status: e });
  4417. }}
  4418. value={this.state.status}
  4419. >
  4420. <Option value="0">实习生</Option>
  4421. <Option value="1">在职(试用期)</Option>
  4422. <Option value="2">在职(合同期)</Option>
  4423. <Option value="3">兼职</Option>
  4424. <Option value="4">已离职</Option>
  4425. </Select>
  4426. </FormItem>
  4427. <FormItem
  4428. className="half-item"
  4429. {...formItemLayout}
  4430. label="所属系统"
  4431. >
  4432. <Select
  4433. placeholder="请选择所属系统"
  4434. style={{ width: 200 }}
  4435. onChange={(e) => {
  4436. this.setState({ system: e });
  4437. }}
  4438. value={this.state.system}
  4439. >
  4440. <Option value="0">管理系统</Option>
  4441. <Option value="1">营销系统</Option>
  4442. <Option value="2">技术系统</Option>
  4443. </Select>
  4444. </FormItem>
  4445. </div>
  4446. <div className="clearfix">
  4447. <FormItem
  4448. className="half-item"
  4449. labelCol={{ span: 6 }}
  4450. wrapperCol={{ span: 30 }}
  4451. label="工作性质"
  4452. >
  4453. <Radio.Group
  4454. onChange={(e) => {
  4455. this.setState({ jobNature: e.target.value });
  4456. }}
  4457. value={this.state.jobNature}
  4458. >
  4459. <Radio value="0">全职</Radio>
  4460. <Radio value="1">兼职</Radio>
  4461. <Radio value="2">其他</Radio>
  4462. </Radio.Group>
  4463. <Input
  4464. placeholder="输入性质"
  4465. style={{
  4466. width: 80,
  4467. display:
  4468. this.state.jobNature == 2 ? "inline-block" : "none",
  4469. }}
  4470. value={this.state.jobNatureRemarks}
  4471. onChange={(e) => {
  4472. this.setState({
  4473. jobNatureRemarks: e.target.value,
  4474. });
  4475. }}
  4476. />
  4477. </FormItem>
  4478. <FormItem className="half-item" {...formItemLayout} label="工龄">
  4479. <span>{this.state.ModalData.workingYear}</span>
  4480. </FormItem>
  4481. </div>
  4482. <div className="clearfix">
  4483. <FormItem
  4484. className="half-item"
  4485. {...formItemLayout}
  4486. label="入职时间"
  4487. >
  4488. <DatePicker
  4489. value={
  4490. this.state.entryTimes ? moment(this.state.entryTimes) : null
  4491. }
  4492. style={{ width: 200 }}
  4493. onChange={(e, t) => {
  4494. this.setState({
  4495. entryTimes: t,
  4496. });
  4497. }}
  4498. />
  4499. </FormItem>
  4500. <FormItem
  4501. className="half-item"
  4502. {...formItemLayout}
  4503. label="转正时间"
  4504. >
  4505. <DatePicker
  4506. value={
  4507. this.state.promotionTimes
  4508. ? moment(this.state.promotionTimes)
  4509. : null
  4510. }
  4511. style={{ width: 200 }}
  4512. onChange={(e, t) => {
  4513. this.setState({
  4514. promotionTimes: t,
  4515. });
  4516. }}
  4517. />
  4518. </FormItem>
  4519. </div>
  4520. <div className="clearfix">
  4521. <FormItem
  4522. className="half-item"
  4523. {...formItemLayout}
  4524. label="所属公司"
  4525. >
  4526. <Select
  4527. placeholder="选择公司"
  4528. style={{ width: 200, marginRight: 10 }}
  4529. value={this.state.company}
  4530. onChange={(e) => {
  4531. this.setState({ company: e });
  4532. }}
  4533. >
  4534. {departmentArr.map(function (item) {
  4535. return (
  4536. <Select.Option key={item.id}>{item.name}</Select.Option>
  4537. );
  4538. })}
  4539. </Select>
  4540. </FormItem>
  4541. <FormItem className="half-item" {...formItemLayout} label="级别">
  4542. <Select
  4543. placeholder="请选择所属级别"
  4544. style={{ width: 200 }}
  4545. onChange={(e) => {
  4546. this.setState({ lvl: e });
  4547. }}
  4548. value={this.state.lvl}
  4549. >
  4550. <Option value="0">员工</Option>
  4551. <Option value="1">主管</Option>
  4552. <Option value="2">经理</Option>
  4553. <Option value="3">总经理</Option>
  4554. <Option value="4">副总裁</Option>
  4555. <Option value="5">副总</Option>
  4556. <Option value="6">总监</Option>
  4557. <Option value="7">董事长</Option>
  4558. </Select>
  4559. </FormItem>
  4560. </div>
  4561. <div className="clearfix">
  4562. <FormItem className="half-item" {...formItemLayout} label="职位">
  4563. <Select
  4564. placeholder="选择职位"
  4565. style={{ width: 200, marginRight: 10 }}
  4566. value={this.state.jobs}
  4567. onChange={(e) => {
  4568. this.setState({ jobs: e, star: [] });
  4569. this.getList();
  4570. }}
  4571. >
  4572. <Option value="1">员工</Option>
  4573. <Option value="2">试用营销员</Option>
  4574. <Option value="3">试用营销储备经理</Option>
  4575. <Option value="4">营销经理</Option>
  4576. <Option value="5">总监合伙人</Option>
  4577. <Option value="6">技术助理</Option>
  4578. <Option value="7">咨询师</Option>
  4579. <Option value="8">咨询师主管</Option>
  4580. <Option value="9">咨询师经理</Option>
  4581. <Option value="10">高级经理</Option>
  4582. </Select>
  4583. </FormItem>
  4584. <FormItem className="half-item" {...formItemLayout} label="星级">
  4585. <Select
  4586. placeholder="请选择所属星级"
  4587. style={{ width: 200 }}
  4588. onChange={(e) => {
  4589. this.setState({ star: e });
  4590. }}
  4591. value={this.state.star}
  4592. >
  4593. {this.state.starArr
  4594. ? this.state.starArr.map((item, index) => {
  4595. return (
  4596. <Option value={item.star}>{item.starName}</Option>
  4597. );
  4598. })
  4599. : []}
  4600. </Select>
  4601. </FormItem>
  4602. </div>
  4603. <div className="clearfix">
  4604. <FormItem
  4605. className="half-item"
  4606. labelCol={{ span: 6 }}
  4607. wrapperCol={{ span: 30 }}
  4608. label="岗位津贴"
  4609. >
  4610. <Input
  4611. placeholder="输入金额"
  4612. style={{ width: 200 }}
  4613. value={this.state.allowance}
  4614. onChange={(e) => {
  4615. this.setState({
  4616. allowance: e.target.value,
  4617. });
  4618. }}
  4619. />
  4620. </FormItem>
  4621. </div>
  4622. <Button
  4623. type="primary"
  4624. shape="round"
  4625. size="large"
  4626. style={{
  4627. position: "relative",
  4628. left: "50%",
  4629. transform: "translateX(-50%)",
  4630. }}
  4631. onClick={this.editStay}
  4632. >
  4633. 保存
  4634. </Button>
  4635. </Spin>
  4636. </Modal>
  4637. <Modal
  4638. visible={this.state.phoneVisible}
  4639. footer={null}
  4640. width={800}
  4641. onCancel={() => {
  4642. this.loadData();
  4643. this.phoneCancel();
  4644. }}
  4645. >
  4646. <Spin spinning={this.state.loading}>
  4647. <h3
  4648. style={{
  4649. textAlign: "center",
  4650. paddingBottom: 10,
  4651. marginBottom: 10,
  4652. }}
  4653. >
  4654. 联系信息
  4655. </h3>
  4656. <div className="clearfix">
  4657. <FormItem
  4658. className="half-item"
  4659. labelCol={{ span: 6 }}
  4660. wrapperCol={{ span: 30 }}
  4661. label="手机号码"
  4662. >
  4663. <Input
  4664. placeholder="输入号码"
  4665. style={{ width: 200 }}
  4666. value={this.state.mobile}
  4667. onChange={(e) => {
  4668. this.setState({
  4669. mobile: e.target.value,
  4670. });
  4671. }}
  4672. />
  4673. </FormItem>
  4674. <FormItem
  4675. className="half-item"
  4676. labelCol={{ span: 6 }}
  4677. wrapperCol={{ span: 30 }}
  4678. label="办公室电话"
  4679. >
  4680. <Input
  4681. placeholder="输入电话"
  4682. style={{ width: 200 }}
  4683. value={this.state.fixedTel}
  4684. onChange={(e) => {
  4685. this.setState({
  4686. fixedTel: e.target.value,
  4687. });
  4688. }}
  4689. />
  4690. </FormItem>
  4691. </div>
  4692. <div className="clearfix">
  4693. <FormItem
  4694. className="half-item"
  4695. labelCol={{ span: 6 }}
  4696. wrapperCol={{ span: 30 }}
  4697. label="紧急联系人1"
  4698. >
  4699. <Input
  4700. placeholder="请输入名字"
  4701. style={{ width: 200 }}
  4702. value={
  4703. this.state.contactList.length
  4704. ? this.state.contactList[0].emergencyContact
  4705. : ""
  4706. }
  4707. onChange={(e) => {
  4708. this.state.contactList[0].emergencyContact = e.target.value;
  4709. let obj = this.state.contactList;
  4710. this.setState({
  4711. contactList: obj,
  4712. });
  4713. }}
  4714. />
  4715. </FormItem>
  4716. <FormItem
  4717. className="half-item"
  4718. labelCol={{ span: 6 }}
  4719. wrapperCol={{ span: 30 }}
  4720. label="紧急联系人电话"
  4721. >
  4722. <Input
  4723. placeholder="请输入电话"
  4724. style={{ width: 200 }}
  4725. value={
  4726. this.state.contactList.length
  4727. ? this.state.contactList[0].emergencyMobile
  4728. : ""
  4729. }
  4730. onChange={(e) => {
  4731. this.state.contactList[0].emergencyMobile = e.target.value;
  4732. let obj = this.state.contactList;
  4733. this.setState({
  4734. contactList: obj,
  4735. });
  4736. }}
  4737. />
  4738. </FormItem>
  4739. </div>
  4740. <div className="clearfix">
  4741. <FormItem
  4742. className="half-item"
  4743. labelCol={{ span: 6 }}
  4744. wrapperCol={{ span: 30 }}
  4745. label="紧急联系人2"
  4746. >
  4747. <Input
  4748. placeholder="请输入名字"
  4749. style={{ width: 200 }}
  4750. value={
  4751. this.state.contactList.length
  4752. ? this.state.contactList[1].emergencyContact
  4753. : ""
  4754. }
  4755. onChange={(e) => {
  4756. this.state.contactList[1].emergencyContact = e.target.value;
  4757. let obj = this.state.contactList;
  4758. this.setState({
  4759. contactList: obj,
  4760. });
  4761. }}
  4762. />
  4763. </FormItem>
  4764. <FormItem
  4765. className="half-item"
  4766. labelCol={{ span: 6 }}
  4767. wrapperCol={{ span: 30 }}
  4768. label="紧急联系人电话"
  4769. >
  4770. <Input
  4771. placeholder="请输入电话"
  4772. style={{ width: 200 }}
  4773. value={
  4774. this.state.contactList.length
  4775. ? this.state.contactList[1].emergencyMobile
  4776. : ""
  4777. }
  4778. onChange={(e) => {
  4779. this.state.contactList[1].emergencyMobile = e.target.value;
  4780. let obj = this.state.contactList;
  4781. this.setState({
  4782. contactList: obj,
  4783. });
  4784. }}
  4785. />
  4786. </FormItem>
  4787. </div>
  4788. <div className="clearfix">
  4789. <FormItem
  4790. className="half-item"
  4791. labelCol={{ span: 6 }}
  4792. wrapperCol={{ span: 30 }}
  4793. label="紧急联系人3"
  4794. >
  4795. <Input
  4796. placeholder="请输入名字"
  4797. style={{ width: 200 }}
  4798. value={
  4799. this.state.contactList.length
  4800. ? this.state.contactList[2].emergencyContact
  4801. : ""
  4802. }
  4803. onChange={(e) => {
  4804. this.state.contactList[2].emergencyContact = e.target.value;
  4805. let obj = this.state.contactList;
  4806. this.setState({
  4807. contactList: obj,
  4808. });
  4809. }}
  4810. />
  4811. </FormItem>
  4812. <FormItem
  4813. className="half-item"
  4814. labelCol={{ span: 6 }}
  4815. wrapperCol={{ span: 30 }}
  4816. label="紧急联系人电话"
  4817. >
  4818. <Input
  4819. placeholder="请输入电话"
  4820. style={{ width: 200 }}
  4821. value={
  4822. this.state.contactList.length
  4823. ? this.state.contactList[2].emergencyMobile
  4824. : ""
  4825. }
  4826. onChange={(e) => {
  4827. this.state.contactList[2].emergencyMobile = e.target.value;
  4828. let obj = this.state.contactList;
  4829. this.setState({
  4830. contactList: obj,
  4831. });
  4832. }}
  4833. />
  4834. </FormItem>
  4835. </div>
  4836. <Button
  4837. type="primary"
  4838. shape="round"
  4839. size="large"
  4840. style={{
  4841. position: "relative",
  4842. left: "50%",
  4843. transform: "translateX(-50%)",
  4844. }}
  4845. onClick={this.editPhone}
  4846. >
  4847. 保存
  4848. </Button>
  4849. </Spin>
  4850. </Modal>
  4851. <Modal
  4852. visible={this.state.entryVisible}
  4853. footer={null}
  4854. width={800}
  4855. onCancel={() => {
  4856. this.loadData();
  4857. this.entryCancel();
  4858. }}
  4859. >
  4860. <Spin spinning={this.state.loading}>
  4861. <h3
  4862. style={{
  4863. textAlign: "center",
  4864. paddingBottom: 10,
  4865. marginBottom: 10,
  4866. }}
  4867. >
  4868. 入职信息
  4869. </h3>
  4870. <div className="clearfix">
  4871. <FormItem
  4872. className="half-item"
  4873. labelCol={{ span: 6 }}
  4874. wrapperCol={{ span: 30 }}
  4875. label="毕业学校"
  4876. >
  4877. <Input
  4878. placeholder="输入学校名称"
  4879. style={{ width: 200 }}
  4880. value={this.state.school}
  4881. onChange={(e) => {
  4882. this.setState({
  4883. school: e.target.value,
  4884. });
  4885. }}
  4886. />
  4887. </FormItem>
  4888. <FormItem
  4889. className="half-item"
  4890. labelCol={{ span: 6 }}
  4891. wrapperCol={{ span: 30 }}
  4892. label="学历"
  4893. >
  4894. <Select
  4895. placeholder="请选择学历"
  4896. style={{ width: 200 }}
  4897. onChange={(e) => {
  4898. this.setState({ education: e });
  4899. }}
  4900. value={this.state.education}
  4901. >
  4902. <Option value="0">高中/中专</Option>
  4903. <Option value="1">专科/高职</Option>
  4904. <Option value="2">本科</Option>
  4905. <Option value="3">研究生</Option>
  4906. <Option value="5">博士</Option>
  4907. </Select>
  4908. </FormItem>
  4909. </div>
  4910. <div className="clearfix">
  4911. <FormItem
  4912. className="half-item"
  4913. labelCol={{ span: 6 }}
  4914. wrapperCol={{ span: 30 }}
  4915. label="所学专业"
  4916. >
  4917. <Input
  4918. placeholder="请输入专业名称"
  4919. style={{ width: 200 }}
  4920. value={this.state.major}
  4921. onChange={(e) => {
  4922. this.setState({
  4923. major: e.target.value,
  4924. });
  4925. }}
  4926. />
  4927. </FormItem>
  4928. <FormItem
  4929. className="half-item"
  4930. labelCol={{ span: 6 }}
  4931. wrapperCol={{ span: 30 }}
  4932. label="职称"
  4933. >
  4934. <Input
  4935. placeholder="请输入职称"
  4936. style={{ width: 200 }}
  4937. value={this.state.title}
  4938. onChange={(e) => {
  4939. this.setState({
  4940. title: e.target.value,
  4941. });
  4942. }}
  4943. />
  4944. </FormItem>
  4945. </div>
  4946. <div className="clearfix">
  4947. <FormItem
  4948. className="half-item"
  4949. labelCol={{ span: 6 }}
  4950. wrapperCol={{ span: 30 }}
  4951. label="备注"
  4952. >
  4953. <Input
  4954. placeholder="请输入备注"
  4955. style={{ width: 200 }}
  4956. value={this.state.entryRemarks}
  4957. onChange={(e) => {
  4958. this.setState({
  4959. entryRemarks: e.target.value,
  4960. });
  4961. }}
  4962. />
  4963. </FormItem>
  4964. </div>
  4965. <div
  4966. className="clearfix"
  4967. style={{ paddingLeft: 70, marginBottom: 10 }}
  4968. >
  4969. <div style={{ marginBottom: 10 }}>附件:</div>
  4970. <PicModal
  4971. remarks={this.picToArr(this.state.annexName)}
  4972. picUrl={this.picToArr(this.state.annexUrl)}
  4973. remove={this.ruzhiRemove}
  4974. />
  4975. <Button onClick={this.addPic}>添加附件</Button>
  4976. </div>
  4977. <Button
  4978. type="primary"
  4979. shape="round"
  4980. size="large"
  4981. style={{
  4982. position: "relative",
  4983. left: "50%",
  4984. transform: "translateX(-50%)",
  4985. }}
  4986. onClick={this.editRuzi}
  4987. >
  4988. 保存
  4989. </Button>
  4990. <AddPicModal
  4991. cancel={this.addPicModalCancel}
  4992. add={this.add()}
  4993. visible={this.state.addPicModal}
  4994. />
  4995. </Spin>
  4996. </Modal>
  4997. <Modal
  4998. visible={this.state.upgradeVisible}
  4999. footer={null}
  5000. width={800}
  5001. onCancel={() => {
  5002. this.loadData();
  5003. this.upgradeCancel();
  5004. }}
  5005. >
  5006. <Spin spinning={this.state.loading}>
  5007. <h3
  5008. style={{
  5009. textAlign: "center",
  5010. paddingBottom: 10,
  5011. marginBottom: 10,
  5012. }}
  5013. >
  5014. 晋升信息
  5015. </h3>
  5016. <div>
  5017. <div className="clearfix">
  5018. <FormItem
  5019. className="half-item"
  5020. labelCol={{ span: 6 }}
  5021. wrapperCol={{ span: 30 }}
  5022. label="当前职位"
  5023. >
  5024. <Select
  5025. placeholder="选择职位"
  5026. style={{ width: 200, marginRight: 10 }}
  5027. value={this.state.promotionList.oldJobs}
  5028. onChange={(e) => {
  5029. this.setState({ jobs: e, star: [] });
  5030. this.getList();
  5031. this.state.promotionList.oldJobs = e;
  5032. this.state.promotionList.oldLvl = [];
  5033. this.setState({
  5034. promotionList: this.state.promotionList,
  5035. });
  5036. }}
  5037. >
  5038. <Option value="1">员工</Option>
  5039. <Option value="2">试用营销员</Option>
  5040. <Option value="3">试用营销储备经理</Option>
  5041. <Option value="4">营销经理</Option>
  5042. <Option value="5">总监合伙人</Option>
  5043. <Option value="6">技术助理</Option>
  5044. <Option value="7">咨询师</Option>
  5045. <Option value="8">咨询师主管</Option>
  5046. <Option value="9">咨询师经理</Option>
  5047. <Option value="10">高级经理</Option>
  5048. </Select>
  5049. </FormItem>
  5050. <FormItem
  5051. className="half-item"
  5052. labelCol={{ span: 6 }}
  5053. wrapperCol={{ span: 30 }}
  5054. label="当前星级"
  5055. >
  5056. <Select
  5057. placeholder="请选择所属星级"
  5058. style={{ width: 200 }}
  5059. onChange={(e) => {
  5060. this.state.promotionList.oldLvl = e;
  5061. this.setState({
  5062. promotionList: this.state.promotionList,
  5063. });
  5064. }}
  5065. value={this.state.promotionList.oldLvl}
  5066. >
  5067. {this.state.starArr.map((item, index) => {
  5068. return <Option value={item.star}>{item.starName}</Option>;
  5069. })}
  5070. </Select>
  5071. </FormItem>
  5072. </div>
  5073. <div className="clearfix">
  5074. <FormItem
  5075. className="half-item"
  5076. labelCol={{ span: 6 }}
  5077. wrapperCol={{ span: 30 }}
  5078. label="晋升后职位"
  5079. >
  5080. <Select
  5081. placeholder="选择职位"
  5082. style={{ width: 200, marginRight: 10 }}
  5083. value={this.state.promotionList.newJobs}
  5084. onChange={(e) => {
  5085. this.setState({ jobss: e });
  5086. this.getLists();
  5087. this.state.promotionList.newJobs = e;
  5088. this.state.promotionList.newLvl = [];
  5089. this.setState({
  5090. promotionList: this.state.promotionList,
  5091. });
  5092. }}
  5093. >
  5094. <Option value="1">员工</Option>
  5095. <Option value="2">试用营销员</Option>
  5096. <Option value="3">试用营销储备经理</Option>
  5097. <Option value="4">营销经理</Option>
  5098. <Option value="5">总监合伙人</Option>
  5099. <Option value="6">技术助理</Option>
  5100. <Option value="7">咨询师</Option>
  5101. <Option value="8">咨询师主管</Option>
  5102. <Option value="9">咨询师经理</Option>
  5103. <Option value="10">高级经理</Option>
  5104. </Select>
  5105. </FormItem>
  5106. <FormItem
  5107. className="half-item"
  5108. labelCol={{ span: 6 }}
  5109. wrapperCol={{ span: 30 }}
  5110. label="晋升后星级"
  5111. >
  5112. <Select
  5113. placeholder="请选择所属星级"
  5114. style={{ width: 200 }}
  5115. onChange={(e) => {
  5116. this.state.promotionList.newLvl = e;
  5117. this.setState({
  5118. promotionList: this.state.promotionList,
  5119. });
  5120. }}
  5121. value={this.state.promotionList.newLvl}
  5122. >
  5123. {this.state.starArrs.map((item, index) => {
  5124. return <Option value={item.star}>{item.starName}</Option>;
  5125. })}
  5126. </Select>
  5127. </FormItem>
  5128. </div>
  5129. <div className="clearfix">
  5130. <FormItem
  5131. className="half-item"
  5132. labelCol={{ span: 6 }}
  5133. wrapperCol={{ span: 30 }}
  5134. label="晋升时间"
  5135. >
  5136. <DatePicker
  5137. value={
  5138. this.state.promotionList.promotionTimes
  5139. ? moment(this.state.promotionList.promotionTimes)
  5140. : null
  5141. }
  5142. style={{ width: 200 }}
  5143. onChange={(e, t) => {
  5144. this.state.promotionList.promotionTimes = t;
  5145. this.setState({
  5146. promotionList: this.state.promotionList,
  5147. });
  5148. }}
  5149. />
  5150. </FormItem>
  5151. </div>
  5152. <div className="clearfix">
  5153. <FormItem
  5154. className="half-item"
  5155. labelCol={{ span: 6 }}
  5156. wrapperCol={{ span: 30 }}
  5157. label="备注"
  5158. >
  5159. <Input
  5160. placeholder="请输入备注"
  5161. style={{ width: 200 }}
  5162. value={this.state.promotionList.promotionRemarks}
  5163. onChange={(e) => {
  5164. this.state.promotionList.promotionRemarks =
  5165. e.target.value;
  5166. this.setState({
  5167. promotionList: this.state.promotionList,
  5168. });
  5169. }}
  5170. />
  5171. </FormItem>
  5172. </div>
  5173. <div
  5174. className="clearfix"
  5175. style={{ paddingLeft: 70, marginBottom: 10 }}
  5176. >
  5177. <div style={{ marginBottom: 10 }}>附件:</div>
  5178. <PicModal
  5179. remarks={this.picToArr(this.state.promotionList.annexName)}
  5180. picUrl={this.picToArr(this.state.promotionList.annexUrl)}
  5181. remove={this.jinshengRemove}
  5182. />
  5183. <Button onClick={this.addPic}>添加附件</Button>
  5184. </div>
  5185. </div>
  5186. <Button
  5187. type="primary"
  5188. shape="round"
  5189. size="large"
  5190. style={{
  5191. position: "relative",
  5192. left: "50%",
  5193. transform: "translateX(-50%)",
  5194. }}
  5195. onClick={this.editUpgrade}
  5196. >
  5197. 保存
  5198. </Button>
  5199. <AddPicModal
  5200. cancel={this.addPicModalCancel}
  5201. add={this.add()}
  5202. visible={this.state.addPicModal}
  5203. />
  5204. </Spin>
  5205. </Modal>
  5206. <Modal
  5207. visible={this.state.contractVisible}
  5208. footer={null}
  5209. width={800}
  5210. onCancel={() => {
  5211. this.loadData();
  5212. this.contractCancel();
  5213. }}
  5214. >
  5215. <Spin spinning={this.state.loading}>
  5216. <h3
  5217. style={{
  5218. textAlign: "center",
  5219. paddingBottom: 10,
  5220. marginBottom: 10,
  5221. }}
  5222. >
  5223. 合同信息
  5224. </h3>
  5225. <div>
  5226. <div className="clearfix">
  5227. <FormItem
  5228. className="half-item"
  5229. labelCol={{ span: 6 }}
  5230. wrapperCol={{ span: 30 }}
  5231. label="签订时间"
  5232. >
  5233. <DatePicker
  5234. value={
  5235. this.state.contractList.startTimes
  5236. ? moment(this.state.contractList.startTimes)
  5237. : null
  5238. }
  5239. style={{ width: 200 }}
  5240. onChange={(e, t) => {
  5241. this.state.contractList.startTimes = t;
  5242. this.setState({
  5243. contractList: this.state.contractList,
  5244. });
  5245. }}
  5246. />
  5247. </FormItem>
  5248. <FormItem
  5249. className="half-item"
  5250. labelCol={{ span: 6 }}
  5251. wrapperCol={{ span: 30 }}
  5252. label="到期时间"
  5253. >
  5254. <DatePicker
  5255. value={
  5256. this.state.contractList.endTimes
  5257. ? moment(this.state.contractList.endTimes)
  5258. : null
  5259. }
  5260. style={{ width: 200 }}
  5261. onChange={(e, t) => {
  5262. this.state.contractList.endTimes = t;
  5263. this.setState({
  5264. contractList: this.state.contractList,
  5265. });
  5266. }}
  5267. />
  5268. </FormItem>
  5269. </div>
  5270. <div className="clearfix">
  5271. <FormItem
  5272. className="half-item"
  5273. labelCol={{ span: 6 }}
  5274. wrapperCol={{ span: 30 }}
  5275. label="备注"
  5276. >
  5277. <Input
  5278. placeholder="请输入备注"
  5279. style={{ width: 200 }}
  5280. value={this.state.contractList.contractRemarks}
  5281. onChange={(e) => {
  5282. this.state.contractList.contractRemarks = e.target.value;
  5283. this.setState({
  5284. contractList: this.state.contractList,
  5285. });
  5286. }}
  5287. />
  5288. </FormItem>
  5289. </div>
  5290. <div
  5291. className="clearfix"
  5292. style={{ paddingLeft: 70, marginBottom: 10 }}
  5293. >
  5294. <div style={{ marginBottom: 10 }}>附件:</div>
  5295. <PicModal
  5296. remarks={this.picToArr(this.state.contractList.annexName)}
  5297. picUrl={this.picToArr(this.state.contractList.annexUrl)}
  5298. remove={this.contractRemove}
  5299. />
  5300. <Button onClick={this.addPic}>添加附件</Button>
  5301. </div>
  5302. </div>
  5303. <Button
  5304. type="primary"
  5305. shape="round"
  5306. size="large"
  5307. style={{
  5308. position: "relative",
  5309. left: "50%",
  5310. transform: "translateX(-50%)",
  5311. }}
  5312. onClick={this.editContract}
  5313. >
  5314. 保存
  5315. </Button>
  5316. <AddPicModal
  5317. cancel={this.addPicModalCancel}
  5318. add={this.add()}
  5319. visible={this.state.addPicModal}
  5320. />
  5321. </Spin>
  5322. </Modal>
  5323. <Modal
  5324. visible={this.state.chooseVisible}
  5325. footer={null}
  5326. width={800}
  5327. onCancel={() => {
  5328. this.loadData();
  5329. this.chooseCancel();
  5330. }}
  5331. >
  5332. <Spin spinning={this.state.loading}>
  5333. <h3
  5334. style={{
  5335. textAlign: "center",
  5336. paddingBottom: 10,
  5337. marginBottom: 10,
  5338. }}
  5339. >
  5340. 奖惩信息
  5341. </h3>
  5342. <div>
  5343. <div className="clearfix">
  5344. <FormItem
  5345. className="half-item"
  5346. labelCol={{ span: 6 }}
  5347. wrapperCol={{ span: 30 }}
  5348. label="类型"
  5349. >
  5350. <Radio.Group
  5351. onChange={(e) => {
  5352. this.state.chooseList.chooseStatus = e.target.value;
  5353. this.setState({ chooseList: this.state.chooseList });
  5354. }}
  5355. value={this.state.chooseList.chooseStatus}
  5356. >
  5357. <Radio value={0}>奖励</Radio>
  5358. <Radio value={1}>罚款</Radio>
  5359. </Radio.Group>
  5360. </FormItem>
  5361. <FormItem
  5362. className="half-item"
  5363. labelCol={{ span: 6 }}
  5364. wrapperCol={{ span: 30 }}
  5365. label="时间"
  5366. >
  5367. <DatePicker
  5368. value={
  5369. this.state.chooseList.effectTimes
  5370. ? moment(this.state.chooseList.effectTimes)
  5371. : null
  5372. }
  5373. style={{ width: 200 }}
  5374. onChange={(e, t) => {
  5375. this.state.chooseList.effectTimes = t;
  5376. this.setState({
  5377. chooseList: this.state.chooseList,
  5378. });
  5379. }}
  5380. />
  5381. </FormItem>
  5382. </div>
  5383. <div className="clearfix">
  5384. <FormItem
  5385. className="half-item"
  5386. labelCol={{ span: 6 }}
  5387. wrapperCol={{ span: 30 }}
  5388. label="内容"
  5389. >
  5390. <Input
  5391. placeholder="请输入内容"
  5392. style={{ width: 200 }}
  5393. value={this.state.chooseList.chooseRemarks}
  5394. onChange={(e) => {
  5395. this.state.chooseList.chooseRemarks = e.target.value;
  5396. this.setState({
  5397. chooseList: this.state.chooseList,
  5398. });
  5399. }}
  5400. />
  5401. </FormItem>
  5402. </div>
  5403. <div
  5404. className="clearfix"
  5405. style={{ paddingLeft: 70, marginBottom: 10 }}
  5406. >
  5407. <div style={{ marginBottom: 10 }}>附件:</div>
  5408. <PicModal
  5409. remarks={this.picToArr(this.state.chooseList.annexName)}
  5410. picUrl={this.picToArr(this.state.chooseList.annexUrl)}
  5411. remove={this.chooseRemove}
  5412. />
  5413. <Button onClick={this.addPic}>添加附件</Button>
  5414. </div>
  5415. </div>
  5416. <Button
  5417. type="primary"
  5418. shape="round"
  5419. size="large"
  5420. style={{
  5421. position: "relative",
  5422. left: "50%",
  5423. transform: "translateX(-50%)",
  5424. }}
  5425. onClick={this.editChoose}
  5426. >
  5427. 保存
  5428. </Button>
  5429. <AddPicModal
  5430. cancel={this.addPicModalCancel}
  5431. add={this.add()}
  5432. visible={this.state.addPicModal}
  5433. />
  5434. </Spin>
  5435. </Modal>
  5436. <Modal
  5437. visible={this.state.quitVisible}
  5438. footer={null}
  5439. width={800}
  5440. onCancel={() => {
  5441. this.loadData();
  5442. this.quitCancel();
  5443. }}
  5444. >
  5445. <Spin spinning={this.state.loading}>
  5446. <h3
  5447. style={{
  5448. textAlign: "center",
  5449. paddingBottom: 10,
  5450. marginBottom: 10,
  5451. }}
  5452. >
  5453. 离职信息
  5454. </h3>
  5455. <div>
  5456. <div className="clearfix">
  5457. <FormItem
  5458. className="half-item"
  5459. labelCol={{ span: 6 }}
  5460. wrapperCol={{ span: 30 }}
  5461. label="离职时间"
  5462. >
  5463. <DatePicker
  5464. value={
  5465. this.state.quitList.effectTimes
  5466. ? moment(this.state.quitList.effectTimes)
  5467. : null
  5468. }
  5469. style={{ width: 200 }}
  5470. onChange={(e, t) => {
  5471. this.state.quitList.effectTimes = t;
  5472. this.setState({
  5473. quitList: this.state.quitList,
  5474. });
  5475. }}
  5476. />
  5477. </FormItem>
  5478. </div>
  5479. <div className="clearfix">
  5480. <FormItem
  5481. className="half-item"
  5482. labelCol={{ span: 6 }}
  5483. wrapperCol={{ span: 30 }}
  5484. label="备注"
  5485. >
  5486. <Input
  5487. placeholder="请输入备注"
  5488. style={{ width: 200 }}
  5489. value={this.state.quitList.quitRemarks}
  5490. onChange={(e) => {
  5491. this.state.quitList.quitRemarks = e.target.value;
  5492. this.setState({
  5493. quitList: this.state.quitList,
  5494. });
  5495. }}
  5496. />
  5497. </FormItem>
  5498. </div>
  5499. <div
  5500. className="clearfix"
  5501. style={{ paddingLeft: 70, marginBottom: 10 }}
  5502. >
  5503. <div style={{ marginBottom: 10 }}>附件:</div>
  5504. <PicModal
  5505. remarks={this.picToArr(this.state.quitList.annexName)}
  5506. picUrl={this.picToArr(this.state.quitList.annexUrl)}
  5507. remove={this.quitRemove}
  5508. />
  5509. <Button onClick={this.addPic}>添加附件</Button>
  5510. </div>
  5511. </div>
  5512. <Button
  5513. type="primary"
  5514. shape="round"
  5515. size="large"
  5516. style={{
  5517. position: "relative",
  5518. left: "50%",
  5519. transform: "translateX(-50%)",
  5520. }}
  5521. onClick={this.editQuit}
  5522. >
  5523. 保存
  5524. </Button>
  5525. <AddPicModal
  5526. cancel={this.addPicModalCancel}
  5527. add={this.add()}
  5528. visible={this.state.addPicModal}
  5529. />
  5530. </Spin>
  5531. </Modal>
  5532. <Modal
  5533. visible={this.state.welfareVisible}
  5534. footer={null}
  5535. width={800}
  5536. onCancel={() => {
  5537. this.loadData();
  5538. this.welfareCancel();
  5539. }}
  5540. >
  5541. <Spin spinning={this.state.loading}>
  5542. <h3
  5543. style={{
  5544. textAlign: "center",
  5545. paddingBottom: 10,
  5546. }}
  5547. >
  5548. 福利信息
  5549. </h3>
  5550. <Button
  5551. type="primary"
  5552. style={{ marginBottom: 5 }}
  5553. onClick={(e) => {
  5554. this.welfareTable();
  5555. }}
  5556. >
  5557. 新建信息
  5558. </Button>
  5559. <div>
  5560. <div className="clearfix" style={{ marginBottom: 10 }}>
  5561. <Table
  5562. columns={this.state.welfareColumnsEdit}
  5563. type="textarea"
  5564. dataSource={this.state.ModalData.welfareList}
  5565. pagination={false}
  5566. bordered
  5567. size="small"
  5568. scroll={{ x: "max-content", y: 0 }}
  5569. />
  5570. </div>
  5571. <div className="clearfix">
  5572. <FormItem
  5573. className="half-item"
  5574. labelCol={{ span: 6 }}
  5575. wrapperCol={{ span: 30 }}
  5576. label="备注"
  5577. >
  5578. <Input
  5579. placeholder="请输入备注"
  5580. style={{ width: 200 }}
  5581. value={this.state.ModalData.welfareRemarks}
  5582. onChange={(e) => {
  5583. this.state.ModalData.welfareRemarks = e.target.value;
  5584. this.setState({
  5585. ModalData: this.state.ModalData,
  5586. });
  5587. }}
  5588. />
  5589. </FormItem>
  5590. </div>
  5591. <div
  5592. className="clearfix"
  5593. style={{ paddingLeft: 70, marginBottom: 10 }}
  5594. >
  5595. <div style={{ marginBottom: 10 }}>附件:</div>
  5596. <PicModal
  5597. remarks={this.picToArr(this.state.ModalData.welfareAnnexName)}
  5598. picUrl={this.picToArr(this.state.ModalData.welfareAnnexUrl)}
  5599. remove={this.welfareRemove}
  5600. />
  5601. <Button onClick={this.addPic}>添加附件</Button>
  5602. </div>
  5603. </div>
  5604. <Button
  5605. type="primary"
  5606. shape="round"
  5607. size="large"
  5608. style={{
  5609. position: "relative",
  5610. left: "50%",
  5611. transform: "translateX(-50%)",
  5612. }}
  5613. onClick={this.editWelfare}
  5614. >
  5615. 保存
  5616. </Button>
  5617. <AddPicModal
  5618. cancel={this.addPicModalCancel}
  5619. add={this.add()}
  5620. visible={this.state.addPicModal}
  5621. />
  5622. </Spin>
  5623. </Modal>
  5624. <Modal
  5625. visible={this.state.editWelfareVisible}
  5626. footer={null}
  5627. width={800}
  5628. onCancel={() => {
  5629. this.setState({
  5630. editWelfareVisible: false,
  5631. });
  5632. }}
  5633. >
  5634. <Spin spinning={this.state.loading}>
  5635. <div>
  5636. <div className="clearfix">
  5637. <FormItem
  5638. className="half-item"
  5639. labelCol={{ span: 6 }}
  5640. wrapperCol={{ span: 30 }}
  5641. label="福利类型"
  5642. >
  5643. <Select
  5644. placeholder="请选择类型"
  5645. value={this.state.editWelfareData.type}
  5646. onChange={(e) => {
  5647. this.state.editWelfareData.type = e;
  5648. this.setState({
  5649. editWelfareData: this.state.editWelfareData,
  5650. });
  5651. }}
  5652. style={{ width: 120, marginRight: 10 }}
  5653. >
  5654. <Option value={0}>社保</Option>
  5655. <Option value={1}>公积金</Option>
  5656. <Option value={2}>雇主险</Option>
  5657. </Select>
  5658. </FormItem>
  5659. <FormItem
  5660. className="half-item"
  5661. labelCol={{ span: 6 }}
  5662. wrapperCol={{ span: 30 }}
  5663. label="福利状态"
  5664. >
  5665. <Select
  5666. placeholder="请选择状态"
  5667. onChange={(e) => {
  5668. this.state.editWelfareData.status = e;
  5669. this.setState({
  5670. editWelfareData: this.state.editWelfareData,
  5671. });
  5672. }}
  5673. style={{ width: 120, marginRight: 10 }}
  5674. value={this.state.editWelfareData.status}
  5675. >
  5676. <Option value={0}>未购买</Option>
  5677. <Option value={1}>已购买</Option>
  5678. <Option value={2}>已停止</Option>
  5679. </Select>
  5680. </FormItem>
  5681. </div>
  5682. <div className="clearfix">
  5683. <FormItem
  5684. className="half-item"
  5685. labelCol={{ span: 6 }}
  5686. wrapperCol={{ span: 30 }}
  5687. style={{
  5688. display:
  5689. this.state.editWelfareData.status == 1 ? "block" : "none",
  5690. }}
  5691. label="购买时间"
  5692. >
  5693. <DatePicker
  5694. value={
  5695. this.state.editWelfareData.startTimes
  5696. ? moment(this.state.editWelfareData.startTimes)
  5697. : null
  5698. }
  5699. style={{ width: 200 }}
  5700. onChange={(e, t) => {
  5701. this.state.editWelfareData.startTimes = t;
  5702. this.setState({
  5703. editWelfareData: this.state.editWelfareData,
  5704. });
  5705. }}
  5706. />
  5707. </FormItem>
  5708. <FormItem
  5709. className="half-item"
  5710. labelCol={{ span: 6 }}
  5711. wrapperCol={{ span: 30 }}
  5712. style={{
  5713. display:
  5714. this.state.editWelfareData.status == 2 ? "block" : "none",
  5715. }}
  5716. label="停缴时间"
  5717. >
  5718. <DatePicker
  5719. value={
  5720. this.state.editWelfareData.endTimes
  5721. ? moment(this.state.editWelfareData.endTimes)
  5722. : null
  5723. }
  5724. style={{ width: 200 }}
  5725. onChange={(e, t) => {
  5726. this.state.editWelfareData.endTimes = t;
  5727. this.setState({
  5728. editWelfareData: this.state.editWelfareData,
  5729. });
  5730. }}
  5731. />
  5732. </FormItem>
  5733. </div>
  5734. <div className="clearfix">
  5735. <FormItem
  5736. className="half-item"
  5737. labelCol={{ span: 6 }}
  5738. wrapperCol={{ span: 30 }}
  5739. style={{
  5740. display:
  5741. this.state.editWelfareData.status == 1 ? "block" : "none",
  5742. }}
  5743. label="参保公司"
  5744. >
  5745. <Select
  5746. placeholder="选择公司"
  5747. style={{ width: 200, marginRight: 10 }}
  5748. value={
  5749. this.state.editWelfareData.depId
  5750. ? this.state.editWelfareData.depId
  5751. : undefined
  5752. }
  5753. onChange={(e) => {
  5754. this.state.editWelfareData.depId = e;
  5755. this.setState({
  5756. editWelfareData: this.state.editWelfareData,
  5757. });
  5758. }}
  5759. >
  5760. {departmentArr.map(function (item) {
  5761. return (
  5762. <Select.Option key={item.id}>{item.name}</Select.Option>
  5763. );
  5764. })}
  5765. </Select>
  5766. </FormItem>
  5767. </div>
  5768. <div className="clearfix">
  5769. <FormItem
  5770. className="half-item"
  5771. labelCol={{ span: 6 }}
  5772. wrapperCol={{ span: 30 }}
  5773. style={{
  5774. display:
  5775. this.state.editWelfareData.status == 0 ? "block" : "none",
  5776. }}
  5777. label="未购买备注"
  5778. >
  5779. <Input
  5780. placeholder="请输入备注信息"
  5781. style={{ width: 200 }}
  5782. value={this.state.editWelfareData.welfareRemarks}
  5783. onChange={(e) => {
  5784. this.state.editWelfareData.welfareRemarks =
  5785. e.target.value;
  5786. this.setState({
  5787. editWelfareData: this.state.editWelfareData,
  5788. });
  5789. }}
  5790. />
  5791. </FormItem>
  5792. </div>
  5793. </div>
  5794. <Button
  5795. type="primary"
  5796. shape="round"
  5797. size="large"
  5798. style={{
  5799. position: "relative",
  5800. left: "50%",
  5801. transform: "translateX(-50%)",
  5802. }}
  5803. onClick={this.editWelfareDataOk}
  5804. >
  5805. 保存
  5806. </Button>
  5807. </Spin>
  5808. </Modal>
  5809. </div>
  5810. );
  5811. },
  5812. });
  5813. export default PersonnelAll;