123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501 |
- <template>
- <el-container class="userInfo">
- <el-aside class="aside">
- <el-card shadow="never" body-style="height:700px">
- <template #header>
- <div class="card-header">
- <span>
- <div class="person-bg">
- <el-icon size="14"><user-filled></user-filled></el-icon>
- </div>
- <label class="person-text">基本信息</label>
- </span>
- </div>
- </template>
- <div class="user-info">
- <div class="user-info-top">
- <el-avatar :size="80" :src="userInfo.photo"></el-avatar>
- <h2>{{ userInfo.name || "-" }}</h2>
- <p>{{ userInfo.sign || "无签名" }}</p>
- <el-button type="primary" round icon="collection-tag">{{
- userInfo.loginName
- }}</el-button>
- </div>
- <div class="user-info-main">
- <el-descriptions :column="1">
- <el-descriptions-item>
- <template #label>
- <el-icon :size="14">
- <Iphone />
- </el-icon>
- </template>
- {{ userInfo.mobile }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label>
- <el-icon :size="14">
- <youjian />
- </el-icon>
- </template>
- {{ userInfo.email }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label>
- <el-icon :size="14">
- <location />
- </el-icon>
- </template>
- {{ userInfo.companyDTO?.name }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label>
- <el-icon :size="14"><office-building /></el-icon>
- </template>
- {{ userInfo.officeDTO?.name }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label>
- <el-icon :size="14">
- <coin />
- </el-icon>
- </template>
- {{ userInfo.roleNames }}
- </el-descriptions-item>
- </el-descriptions>
- </div>
- </div>
- </el-card>
- </el-aside>
- <el-main style="padding: 0">
- <el-card shadow="never" body-style="height:700px" v-loading="loading">
- <template #header>
- <div class="card-header">
- <span>
- <div class="person-bg">
- <el-icon size="14">
- <bianji></bianji>
- </el-icon>
- </div>
- <label class="person-text">资料修改</label>
- </span>
- <div style="float: right;display: flex;justify-content: center;align-items: center;">
- <el-button type="primary" @click="submitUserInfo"
- v-if="auditStatus != 2 && auditStatus != 4">提交审批</el-button>
- <el-tag size="large" style="margin-left: 10px;font-size: 12px; " v-if="auditStatus == 5"
- type="success">
- <span>审核通过,修改成功</span>
- </el-tag>
- <el-button type="primary" @click="submitUserInfo"
- v-else-if="auditStatus == 4">重新提交</el-button>
- <el-popover placement="left" :width="400" trigger="hover">
- <template #reference>
- <el-button style="margin-left: 10px;" v-if="auditStatus == 2"
- type="primary">审批中</el-button>
- </template>
- <!-- <el-table :data="flowData" ref="flowRef" style="width: 100%;"
- highlight-current-row="true">
- <el-table-column property="comment.status" label="节点" align="center" />
- <el-table-column property="assigneeName" label="审核人" align="center" />
- </el-table> -->
- <el-timeline style="max-width: 600px" v-if="flowData && flowData.length">
- <el-timeline-item v-for="(activity, index) in flowData" :key="index"
- :color="index === flowData.length - 1 ? '#0bbd87' : '#dcdfe6'"
- :timestamp="activity.histIns.startTime">
- 状态:{{ activity.comment.status }}<br />
- 审批人:{{ activity.assigneeName }}<br />
- </el-timeline-item>
- </el-timeline>
- <el-result v-else icon="info" title="暂未查询到审批信息">
- <template #sub-title>
- <span>请刷新后重试</span>
- </template>
- <template #extra>
- </template>
- </el-result>
- </el-popover>
- <el-button style="margin-left: 10px;" v-if="auditStatus == 2" type="warning"
- @click="handleRevoke">撤回</el-button>
- <el-popover width="300" class="box-item" title="" :content="rejectMessage"
- placement="top-start">
- <template #reference>
- <el-tag size="large" style="margin-left: 10px; max-width: 200px;font-size: 12px;"
- v-if="auditStatus == 4 && this.procInsId" type="danger">
- <span>已驳回,原因:</span>
- <span style="
- display: inline-block;
- vertical-align: bottom;
- max-width: 50px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- ">
- {{ rejectMessage }}
- </span>
- </el-tag>
- </template>
- </el-popover>
- </div>
- </div>
- </template>
- <el-tabs tab-position="top" v-model="activeName">
- <el-form :model="generalForm" ref="generalForm" label-width="130px" :disabled="auditStatus == 2">
- <el-tab-pane label="基本信息" name="basicInfo">
- <el-row :gutter="26">
- <el-col :span="12">
- <el-form-item label="姓名" prop="name"
- :rules="[{ required: true, message: '姓名不能为空', trigger: 'blur' }]">
- <el-input v-model="generalForm.name"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="身份证号码" prop="idCard"
- :rules="[{ required: true, validator: validator.isCardId, trigger: 'blur' }]">
- <el-input v-model="generalForm.idCard"
- @blur="idCardOnly(generalForm.idCard, generalForm.id)"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="性别" prop="sex" :rules="[
- { required: true, message: '性别不能为空', trigger: 'change' }
- ]">
- <el-radio-group :disabled="true" v-model="generalForm.sex">
- <el-radio v-for="item in $dictUtils.getDictList('sex')" :label="item.value"
- :key="item.value">{{ item.label
- }}</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="年龄" prop="age"
- :rules="[{ required: true, message: '年龄不能为空', trigger: 'change' }]">
- <el-input :disabled="true" v-model="generalForm.age" type="number"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="出生日期" prop="birthday" :rules="[
- { required: true, message: '请填写出生日期', trigger: 'blur' }
- ]">
- <el-date-picker :disabled="true" style="width: 100%"
- v-model="generalForm.birthday" value-format="YYYY-MM-DD" placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="政治面貌" prop="politicalOutlook" :rules="[]">
- <!-- <el-input v-model="generalForm.politicalOutlook"></el-input>-->
- <el-select v-model="generalForm.politicalOutlook" placeholder="请选择政治面貌"
- style="width:100%;">
- <el-option v-for="item in $dictUtils.getDictList('political_outlook')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="12">
- <el-form-item label="籍贯" prop="nativePlace" :rules="[]">
- <el-input v-model="generalForm.nativePlace"></el-input>
- </el-form-item>
- </el-col>-->
- <el-col :span="12">
- <el-form-item label="籍贯" prop="nativePlace" :rules="[
- { required: true, message: '籍贯不能为空', trigger: 'change' }
- ]">
- <SelectTree ref="areaTree" :props="{
- value: 'id', // ID字段名
- label: 'name', // 显示名称
- children: 'children' // 子级字段名
- }" url="/system-server/sys/area/treeData" :value="generalForm.nativePlace" :clearable="true" size="large"
- :accordion="true"
- @getValue="(value) => { generalForm.nativePlace = value }" />
- </el-form-item>
- </el-col>
- <!-- <el-col :span="12">
- <el-form-item label="民族" prop="nation" :rules="[]">
- <el-input v-model="generalForm.nation"></el-input>
- </el-form-item>
- </el-col>-->
- <el-col :span="12">
- <el-form-item label="民族" prop="nation" :rules="[]">
- <el-select v-model="generalForm.nation" placeholder="请选择民族" clearable
- style="width: 100%;">
- <el-option v-for="item in $dictUtils.getDictList('sys_nation')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="婚姻状况" prop="maritalStatus" :rules="[]">
- <el-select v-model="generalForm.maritalStatus" placeholder="请选择婚姻状况" clearable
- style="width: 100%;">
- <el-option v-for="item in $dictUtils.getDictList('marital_status')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="邮箱" :rules="[
- {
- type: 'email',
- message: '请输入正确的邮箱地址',
- trigger: 'blur',
- },
- ]" prop="email">
- <el-input @blur="checkEmail(concatForm.email)"
- v-model="concatForm.email"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="联系电话" prop="mobilePhone"
- :rules="[{ required: true, message: '联系电话不能为空', trigger: 'change' }]">
- <el-input v-model="generalForm.mobilePhone"
- @blur="mobilePhoneOnly(generalForm.mobilePhone)"></el-input>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="12">
- <el-form-item label="家庭住址" prop="homeAddress" :rules="[]">
- <el-input v-model="generalForm.homeAddress"></el-input>
- </el-form-item>
- </el-col> -->
- <el-col :span="12">
- <el-form-item label="常住住址" prop="permanentAddress" :rules="[]">
- <el-input v-model="generalForm.permanentAddress"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="参加工作日期" prop="joinWorkDate" :rules="[
- ]">
- <el-date-picker style="width: 100%" v-model="generalForm.joinWorkDate"
- value-format="x" placeholder="">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="从事行业日期" prop="joinIndustryDate" :rules="[
- ]">
- <el-date-picker style="width: 100%" v-model="generalForm.joinIndustryDate"
- value-format="x" placeholder="">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <!--
- <el-col :span="24">
- <el-form-item label="个人简介" prop="remarks" :rules="[]">
- <el-input type="textarea" maxlength="200" show-word-limit
- v-model="generalForm.remarks"></el-input>
- </el-form-item>
- </el-col> -->
- </el-row>
- <el-row :gutter="26">
- <el-col :span="12">
- <el-form-item class="star-require" label="身份证人像面" prop="idCardFront" :rules="[]">
- <UpLoadComponent ref="idCardFront"></UpLoadComponent>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item class="star-require" label="身份证国徽面" prop="idCardBack" :rules="[]">
- <UpLoadComponent ref="idCardBack"></UpLoadComponent>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <!-- <el-tab-pane label="学历信息">
- <el-row :gutter="26">
- <el-col :span="12">
- <el-form-item label="毕业院校" prop="graduatedFrom" :rules="[]">
- <el-input v-model="generalForm.graduatedFrom"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="专业" prop="speciality" :rules="[]">
- <el-input v-model="generalForm.speciality"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="开始时间" prop="startTime" :rules="[
- ]">
- <el-date-picker style="width: 100%" v-model="generalForm.startTime"
- value-format="YYYY-MM-DD" placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="毕业时间" prop="endTime" :rules="[
- ]">
- <el-date-picker style="width: 100%" v-model="generalForm.endTime"
- value-format="YYYY-MM-DD" placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="学历" prop="education" :rules="[]">
- <el-select v-model="generalForm.education" placeholder="请选择学历" clearable
- style="width: 100%;">
- <el-option v-for="item in $dictUtils.getDictList('education')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="学历性质" prop="educationNature" :rules="[]">
- <el-select v-model="generalForm.educationNature" placeholder="请选择学历性质" clearable
- style="width: 100%;">
- <el-option v-for="item in $dictUtils.getDictList('education_nature')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="是否毕业" prop="graduatedOrNot" :rules="[]">
- <el-radio-group v-model="generalForm.graduatedOrNot">
- <el-radio v-for="item in $dictUtils.getDictList('graduated_or_not')"
- :label="item.value" :key="item.value">{{ item.label }}</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="英语等级" prop="englishLevel" :rules="[]">
- <el-select v-model="generalForm.englishLevel" placeholder="请选择英语等级" clearable
- style="width: 100%;">
- <el-option v-for="item in $dictUtils.getDictList('english_level')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="计算机等级" prop="ncre" :rules="[]">
- <el-select v-model="generalForm.ncre" placeholder="请选择英语等级" clearable
- style="width: 100%;">
- <el-option v-for="item in $dictUtils.getDictList('computer_level')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane> -->
- <el-tab-pane label="部门信息">
- <el-row :gutter="26">
- <el-col :span="24">
- <el-form-item label="所属部门" prop="department" :rules="[
- ]">
- <SelectTree ref="officeTree" :disabled="true" :props="{
- value: 'id', // ID字段名
- label: 'name', // 显示名称
- children: 'children' // 子级字段名
- }" :url="`/system-server/sys/office/treeData?type=2`" :value="generalForm.department" :accordion="true"
- size="default" @getValue="(value) => { generalForm.department = value }" />
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item label="员工类型" prop="onJobStatus" :rules="[
- ]">
- <!-- <el-input v-model="generalForm.politicalOutlook"></el-input>-->
- <el-select :disabled="true" v-model="generalForm.onJobStatus"
- placeholder="请选择员工类型" style="width:100%;">
- <el-option v-for="item in $dictUtils.getDictList('on_job_status')"
- :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="24">
- <el-form-item label="岗位" prop="postIdList" :rules="[]">
- <el-select :disabled="true" v-model="generalForm.postIdList" style="width: 100%"
- multiple placeholder="请选择">
- <el-option v-for="item in postList" :key="item.id" :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col> -->
- <!-- <el-col :span="24">
- <el-form-item label="角色" prop="roleIdList"
- :rules="[{ required: true, message: '角色不能为空', trigger: 'change' }]">
- <el-select :disabled="true" v-model="generalForm.roleIdList" style="width: 100%"
- multiple placeholder="请选择">
- <el-option v-for="role in roleList" :key="role.id" :label="role.name"
- :value="role.id">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col> -->
- <el-col :span="24">
- <el-form-item label="进所日期" prop="entryDate" :rules="[
- ]">
- <el-date-picker :disabled="true" style="width: 100%"
- v-model="generalForm.entryDate" value-format="YYYY-MM-DD"
- placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item label="合同开始日期" prop="contractStartDate" :rules="[
- ]">
- <el-date-picker :disabled="true" style="width: 100%"
- v-model="generalForm.contractStartDate" value-format="YYYY-MM-DD"
- placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item label="合同结束日期" prop="contractEndDate" :rules="[
- ]">
- <el-date-picker :disabled="true" style="width: 100%"
- v-model="generalForm.contractEndDate" value-format="YYYY-MM-DD"
- placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <!-- <el-tab-pane label="社保信息">
- <el-row :gutter="26" v-if="status === 'audit' || status === 'taskFormDetail'">
- <el-col :span="12">
- <el-form-item label="社保编号" prop="socialSecurityNumber" :rules="[]">
- <el-input v-model="generalForm.socialSecurityNumber" maxlength="10"
- @input="validateInput"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="社保银行卡号" prop="socialSecurityBankNumber" :rules="[]">
- <el-input v-model="generalForm.socialSecurityBankNumber"
- @change="checkBankNumber(generalForm.socialSecurityBankNumber)"
- maxlength="19"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="社保卡照片正面" prop="socialSecurityPictureFront" :rules="[]">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="hideUploadEdit" list-type="picture-card"
- :auto-upload="true" :on-success="handleUploadSuccess"
- v-model:file-list="fileList">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="handlePictureCardPreview(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="handleDownload(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!disabled" style="display:none;"
- class="el-upload-list__item-delete"
- @click="handleRemove(file, fileList)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="dialogVisible">
- <img w-full :src="generalForm.socialSecurityPictureFrontUrl"
- alt="Preview Image" :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="社保卡照片反面" prop="socialSecurityPictureOpposite" :rules="[]">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="hideUploadEdit2" list-type="picture-card"
- :auto-upload="true" :on-success="handleUploadSuccess2"
- v-model:file-list="fileList2">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="handlePictureCardPreview2(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="handleDownload2(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!disabled" style="display:none;"
- class="el-upload-list__item-delete"
- @click="handleRemove2(file, fileList2)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="dialogVisible2">
- <img w-full :src="generalForm.socialSecurityPictureOppositeUrl"
- alt="Preview Image" :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="26" v-else>
- <el-col :span="12">
- <el-form-item label="社保编号" prop="socialSecurityNumber" :rules="[]">
- <el-input v-model="generalForm.socialSecurityNumber" maxlength="10"
- @input="validateInput"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="社保银行卡号" prop="socialSecurityBankNumber" :rules="[]">
- <el-input v-model="generalForm.socialSecurityBankNumber"
- @change="checkBankNumber(generalForm.socialSecurityBankNumber)"
- maxlength="19"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="社保卡照片正面" prop="socialSecurityPictureFront" :rules="[]">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="hideUploadEdit" list-type="picture-card"
- :auto-upload="true" :on-success="handleUploadSuccess" :file-list="fileList">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="handlePictureCardPreview(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="handleDownload(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="handleRemove(file, fileList)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="dialogVisible">
- <img w-full :src="generalForm.socialSecurityPictureFrontUrl"
- alt="Preview Image" :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="社保卡照片反面" prop="socialSecurityPictureOpposite" :rules="[]">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="hideUploadEdit2" list-type="picture-card"
- :auto-upload="true" :on-success="handleUploadSuccess2"
- v-model:file-list="fileList2">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="handlePictureCardPreview2(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="handleDownload2(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="handleRemove2(file, fileList2)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="dialogVisible2">
- <img w-full :src="generalForm.socialSecurityPictureOppositeUrl"
- alt="Preview Image" :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <el-tab-pane label="中信银行卡信息">
- <el-row :gutter="26">
- <el-col :span="12">
- <el-form-item label="中信银行卡号" prop="zxBankCardNumber">
- <el-input v-model="generalForm.zxBankCardNumber"
- @change="checkBankNumber(generalForm.zxBankCardNumber, 'zx')"
- maxlength="19"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="开户行" prop="zxAccountHolder">
- <el-input v-model="generalForm.zxAccountHolder"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="银行卡正面" prop="accountHolderFront">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="bankHideUploadEdit" list-type="picture-card"
- :auto-upload="true" :on-success="bankHandleUploadSuccess"
- v-model:file-list="bankFileList">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="bankHandlePictureCardPreview(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="bankHandleDownload(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!(method === 'view')"
- class="el-upload-list__item-delete"
- @click="bankHandleRemove(file, fileList)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="bankDialogVisible">
- <img w-full :src="generalForm.accountHolderFrontUrl" alt="Preview Image"
- :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="银行卡反面" prop="accountHolderOpposite">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="bankHideUploadEdit2" list-type="picture-card"
- :auto-upload="true" :on-success="bankHandleUploadSuccess2"
- v-model:file-list="bankFileList2">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="bankHandlePictureCardPreview2(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="bankHandleDownload2(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!(method === 'view')"
- class="el-upload-list__item-delete"
- @click="bankHandleRemove2(file, fileList)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="bankDialogVisible2">
- <img w-full :src="generalForm.accountHolderOppositeUrl" alt="Preview Image"
- :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane>
- <el-tab-pane label="招商银行卡信息">
- <el-row :gutter="26">
- <el-col :span="12">
- <el-form-item label="招商银行卡号" prop="gsBankCardNumber">
- <el-input v-model="generalForm.gsBankCardNumber"
- @change="checkBankNumber(generalForm.gsBankCardNumber, 'gs')"
- maxlength="19"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="开户行" prop="gsAccountHolder">
- <el-input v-model="generalForm.gsAccountHolder"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="银行卡正面" prop="gsAccountHolderFront">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="gsHideUploadEdit" list-type="picture-card"
- :auto-upload="true" :on-success="gsHandleUploadSuccess"
- v-model:file-list="gsFileList">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="gsHandlePictureCardPreview(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="gsHandleDownload(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!(method === 'view')"
- class="el-upload-list__item-delete"
- @click="gsHandleRemove(file, fileList)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="gsDialogVisible">
- <img w-full :src="generalForm.gsAccountHolderFrontUrl" alt="Preview Image"
- :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="银行卡反面" prop="gsAccountHolderOpposite">
- <el-upload
- :action="`${$http.BASE_URL}/public-modules-server/oss/file/webUpload/upload`"
- :limit="limitNum" :disabled="gsHideUploadEdit2" list-type="picture-card"
- :auto-upload="true" :on-success="gsHandleUploadSuccess2"
- v-model:file-list="gsFileList2">
- <el-icon>
- <Plus />
- </el-icon>
- <template #file="{ file }">
- <div>
- <img class="el-upload-list__item-thumbnail" :src="file.url"
- alt="" />
- <span class="el-upload-list__item-actions">
- <span class="el-upload-list__item-preview"
- @click="gsHandlePictureCardPreview2(file)">
- <el-icon><zoom-in /></el-icon>
- </span>
- <span v-if="!disabled" class="el-upload-list__item-delete"
- @click="gsHandleDownload2(file)">
- <el-icon>
- <Download />
- </el-icon>
- </span>
- <span v-if="!(method === 'view')"
- class="el-upload-list__item-delete"
- @click="gsHandleRemove2(file, fileList)">
- <el-icon>
- <Delete />
- </el-icon>
- </span>
- </span>
- </div>
- </template>
- </el-upload>
- <el-dialog v-model="gsDialogVisible2">
- <img w-full :src="generalForm.gsAccountHolderOppositeUrl"
- alt="Preview Image" :style="{ maxWidth: '100%', maxHeight: '100%' }" />
- </el-dialog>
- </el-form-item>
- </el-col>
- </el-row>
- </el-tab-pane> -->
- </el-form>
- <el-tab-pane label="教育经历">
- <el-card style="width: 100%;transition: all 0.3s ease;" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">教育经历</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addEdu()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[0] ? 'warning' : 'success'"
- @click="changeInfoList(0)">{{
- changeFlag[0] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[0]">
- <el-col :span="24">
- <el-collapse v-if="eduInfoList && eduInfoList.length > 0"
- v-model="activeNames[0]">
- <div style="padding: 0 30px;" v-for="(item, index) in eduInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{
- $dictUtils.getDictLabel("education",
- item.education, '-') + ' - ' +
- item.graduatedFrom +
- ' - ' + item.cultureMethod }}</span>
- <span
- style="color: #b0b0b0;font-size: 12px;"> | </span>
- <span style="font-size: 14px;"> {{
- handleDateFormatter(item.startDate) }}</span>
- <span
- style="color: #b0b0b0;font-size: 12px;"> 至 </span>
- <span style="font-size: 14px;"> {{
- handleDateFormatter(item.endDate) }}</span>
- <el-tag v-if="item.isHighestEducation == 1" size="small"
- style="margin-left: 10px;">最高学历</el-tag>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editEdu(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text" @click.stop="delEdu(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border :column="2">
- <el-descriptions-item label="开始日期:">{{
- handleDateFormatter(item.startDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="结束日期:">{{
- handleDateFormatter(item.endDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="毕业院校:">{{
- item.graduatedFrom
- }}</el-descriptions-item>
- <!-- <el-descriptions-item label="其他毕业院校:">{{
- item.otherGraduatedFrom
- }}</el-descriptions-item> -->
- <el-descriptions-item label="专业:">{{ item.speciality
- }}</el-descriptions-item>
- <el-descriptions-item label="学历:">{{
- $dictUtils.getDictLabel("education",
- item.education, '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="学位:">{{
- $dictUtils.getDictLabel("degree", item.degree, '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="是否最高学历:">
- <el-tag v-if="item.isHighestEducation == 1">是</el-tag>
- <el-tag type="warning" v-else>否</el-tag>
- </el-descriptions-item>
- <el-descriptions-item label="是否最高学位:">
- <el-tag v-if="item.isHighestDegree == 1">是</el-tag>
- <el-tag type="warning" v-else>否</el-tag>
- </el-descriptions-item>
- <el-descriptions-item label="学习形式:">{{
- $dictUtils.getDictLabel("learn_form",
- item.learnForms, '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="毕业类型:">{{
- $dictUtils.getDictLabel("graduation_type",
- item.graduationType, '-')
- }}</el-descriptions-item>
- <!-- <el-descriptions-item label="培养方式:">{{ item.cultureMethod
- }}</el-descriptions-item> -->
- <!-- <el-descriptions-item label="专业描述:">{{
- item.specialityDesc
- }}</el-descriptions-item> -->
- <el-descriptions-item label="学历证明:">
- <AttachmentView :fileList="item.educationFile"
- :key="uploadKey">
- </AttachmentView>
- </el-descriptions-item>
- <el-descriptions-item label="学位证明:">
- <AttachmentView :fileList="item.degreeFile"
- :key="uploadKey">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无教育经历"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="工作经历">
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">工作经历</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addWork()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[1] ? 'warning' : 'success'"
- @click="changeInfoList(1)">{{
- changeFlag[1] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[1]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[1]"
- v-if="workInfoList && workInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in workInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.companyName
- + ' - '
- +
- item.position }}</span>
- <span
- style="color: #b0b0b0;font-size: 12px;"> | </span>
- <span style="font-size: 14px;"> {{
- handleDateFormatter(item.startDate) }}</span>
- <span
- style="color: #b0b0b0;font-size: 12px;"> 至 </span>
- <span style="font-size: 14px;"> {{
- handleDateFormatter(item.endDate) }}</span>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editWork(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text" @click.stop="delWork(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="单位名称:">{{ item.companyName
- }}</el-descriptions-item>
- <el-descriptions-item label="职务:">{{ item.position
- }}</el-descriptions-item>
- <el-descriptions-item label="证明人:">{{ item.certifier
- }}</el-descriptions-item>
- <el-descriptions-item label="开始日期:">{{
- handleDateFormatter(item.startDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="结束日期:">{{
- handleDateFormatter(item.endDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="是否本单位工作经历">
- <el-tag
- v-if="item.isCurrentCompanyExperience == 1">是</el-tag>
- <el-tag type="warning" v-else>否</el-tag>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无工作经历"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="培训经历">
- <!-- 培训经历 -->
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">培训经历</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addTraining()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[2] ? 'warning' : 'success'"
- @click="changeInfoList(2)">{{
- changeFlag[2] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[2]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[2]"
- v-if="trainingInfoList && trainingInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in trainingInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.name + ' - '
- +
- item.trainingInstitution }}</span>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editTraining(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text"
- @click.stop="delTraining(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="名称:">{{ item.name
- }}</el-descriptions-item>
- <el-descriptions-item label="培训机构:">{{
- item.trainingInstitution
- }}</el-descriptions-item>
- <el-descriptions-item label="培训成绩:">{{
- item.trainingResult
- }}</el-descriptions-item>
- <el-descriptions-item label="附件:">
- <AttachmentView :key="uploadKey" :fileList="item.files">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无培训经历"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="执业资格证书">
- <!-- 执业资格证书 -->
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">执业资格证书</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addCertificate()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[3] ? 'warning' : 'success'"
- @click="changeInfoList(3)">{{
- changeFlag[3] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[3]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[3]"
- v-if="certificateInfoList && certificateInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in certificateInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{
- $dictUtils.getDictLabel('sys_cert_type', item.type, '-')
- }}</span>
- <div style="margin-left: auto;">
- <el-button type="text"
- @click.stop="editCertificate(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text"
- @click.stop="delCertificate(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="证书类型:">
- {{ $dictUtils.getDictLabel('sys_cert_type', item.type, '-')
- }}
- </el-descriptions-item>
- <el-descriptions-item label="证书编号:">
- {{ item.no }}
- </el-descriptions-item>
- <el-descriptions-item label="发证机关:">
- {{ item.authorities }}
- </el-descriptions-item>
- <el-descriptions-item label="发证日期:">
- {{ handleDateFormatter(item.issuedDate) }}
- </el-descriptions-item>
- <el-descriptions-item label="注册日期:">
- {{ handleDateFormatter(item.enrollDate) }}
- </el-descriptions-item>
- <el-descriptions-item label="到期日期:">
- {{ handleDateFormatter(item.expireDate) }}
- </el-descriptions-item>
- <el-descriptions-item label="注册证书编号:">
- {{ item.enrollCertNo }}
- </el-descriptions-item>
- <el-descriptions-item label="专业:">
- {{ item.profession }}
- </el-descriptions-item>
- <el-descriptions-item label="附件:">
- <AttachmentView :key="uploadKey"
- :fileList="item.certificateAttachment">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无执业资格证书"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="职称证书">
- <!-- 专业技能 -->
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">职称证书</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addSkill()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[4] ? 'warning' : 'success'"
- @click="changeInfoList(4)">{{
- changeFlag[4] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[4]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[4]"
- v-if="skillInfoList && skillInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in skillInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.name
- }}</span>
- <span style="font-size: 16px;" v-if="item.proficiency"> {{
- '-' +
- item.proficiency }}</span>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editSkill(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text" @click.stop="delSkill(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="职称名称:">{{
- $dictUtils.getDictLabel('professional_certificate',
- item.name, '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="职称等级:">{{ item.proficiency
- }}</el-descriptions-item>
- <el-descriptions-item label="取得日期:">{{
- handleDateFormatter(item.obtainDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="取得途径:">{{ item.category
- }}</el-descriptions-item>
- <el-descriptions-item label="审批单位:">{{ item.usageTime
- }}</el-descriptions-item>
- <el-descriptions-item label="附件:">
- <AttachmentView :fileList="item.files">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无职称证书"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="外语语种">
- <!-- 外语语种 -->
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">外语语种</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addLanguage()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[5] ? 'warning' : 'success'"
- @click="changeInfoList(5)">{{
- changeFlag[5] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[5]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[5]"
- v-if="languageInfoList && languageInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in languageInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.language
- }}</span>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editLanguage(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text"
- @click.stop="delLanguage(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="语言:">{{ item.language
- }}</el-descriptions-item>
- <el-descriptions-item label="是否母语:">
- <el-tag v-if="item.isNative == 1">是</el-tag>
- <el-tag type="warning" v-else>否</el-tag>
- </el-descriptions-item>
- <el-descriptions-item label="掌握程度:">{{ item.proficiency
- }}</el-descriptions-item>
- <el-descriptions-item label="书写能力:">{{
- item.writingAbility
- }}</el-descriptions-item>
- <el-descriptions-item label="阅读能力:">{{
- item.readingAbility
- }}</el-descriptions-item>
- <el-descriptions-item label="口语能力:">{{
- item.speakingAbility
- }}</el-descriptions-item>
- <el-descriptions-item label="附件:">
- <AttachmentView :key="uploadKey" :fileList="item.files">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无外语语种信息"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="家庭情况">
- <!-- 家庭情况 -->
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">家庭情况</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addFamily()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[6] ? 'warning' : 'success'"
- @click="changeInfoList(6)">{{
- changeFlag[6] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[6]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[6]"
- v-if="familyInfoList && familyInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in familyInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.relation +
- "-"
- }}</span>
- <span style="font-size: 16px;"> {{ item.name
- }}</span>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editFamily(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text" @click.stop="delFamily(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="姓名:">{{ item.name
- }}</el-descriptions-item>
- <el-descriptions-item label="出生日期:">{{
- handleDateFormatter(item.birthDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="与本人关系名称:">{{ item.relation
- }}</el-descriptions-item>
- <el-descriptions-item label="性别:">{{
- $dictUtils.getDictLabel("sex",
- item.gender, '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="手机号码:">{{ item.mobile
- }}</el-descriptions-item>
- <!-- <el-descriptions-item label="工作单位:">{{ item.workUnit
- }}</el-descriptions-item>
- <el-descriptions-item label="联系电话:">{{
- item.contactNumber
- }}</el-descriptions-item> -->
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无家庭情况信息"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="表彰与奖励">
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">表彰与奖励</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addReward()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[7] ? 'warning' : 'success'"
- @click="changeInfoList(7)">{{
- changeFlag[7] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[7]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[7]"
- v-if="rewardInfoList && rewardInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in rewardInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.name
- }}</span>
- <span style="font-size: 16px;"> {{ "-" +
- handleDateFormatter(item.rewardDate)
- }}</span>
- <div style="margin-left: auto;">
- <el-button type="text" @click.stop="editReward(item)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text" @click.stop="delReward(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border :column="2">
- <el-descriptions-item label="奖项:">{{ item.name
- }}</el-descriptions-item>
- <el-descriptions-item label="获奖日期:">{{
- handleDateFormatter(item.rewardDate)
- }}</el-descriptions-item>
- <el-descriptions-item :span="2" label="简述:">{{
- item.description
- }}</el-descriptions-item>
- <el-descriptions-item label="附件:">
- <AttachmentView :key="uploadKey" :fileList="item.files">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无表彰与奖励"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="社会及行业职务">
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">社会及行业职务</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addSociety()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[9] ? 'warning' : 'success'"
- @click="changeInfoList(9)">{{
- changeFlag[9] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[9]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[9]"
- v-if="societyInfoList && societyInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in societyInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.name }}</span>
- <div style="margin-left: auto;">
- <el-button type="text"
- @click.stop="editSociety(item.id)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text" @click.stop="delSociety(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="职务名称:">{{ item.name
- }}</el-descriptions-item>
- <el-descriptions-item label="任职开始日期:">{{
- handleDateFormatter(item.startDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="任职开始日期:">{{
- handleDateFormatter(item.endDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="任职机构:">{{ item.institution
- }}</el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无社会及行业职务信息"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="工作业绩">
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">工作业绩</span>
- <el-divider direction="vertical" />
- <el-button type="primary" @click="addPerformance()"
- :disabled="auditStatus == 2">新增</el-button>
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[10] ? 'warning' : 'success'"
- @click="changeInfoList(10)">{{
- changeFlag[10] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[10]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[10]"
- v-if="performanceInfoList && performanceInfoList.length > 0">
- <div style="padding: 0 30px;" v-for="(item, index) in performanceInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{ item.name }}</span>
- <div style="margin-left: auto;">
- <el-button type="text"
- @click.stop="editPerformance(item.id)"
- :disabled="auditStatus == 2">修改</el-button>
- <el-button type="text"
- @click.stop="delPerformance(item.id)"
- style="color: red;"
- :disabled="auditStatus == 2">删除</el-button>
- </div>
- </div>
- </template>
- <el-descriptions title="" border>
- <el-descriptions-item label="项目名称:">{{ item.name
- }}</el-descriptions-item>
- <el-descriptions-item label="委托方:">{{ item.client
- }}</el-descriptions-item>
- <el-descriptions-item label="工程分类:">{{ item.type
- }}</el-descriptions-item>
- <el-descriptions-item label="规模类型/单位/数量:">{{ item.info
- }}</el-descriptions-item>
- <el-descriptions-item label="担任职务:">{{
- $dictUtils.getDictLabel("position_held",
- item.position,
- '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="参与内容:">{{ item.participateContent
- }}</el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无工作业绩信息"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="劳动合同">
- <el-card style="width: 100%" shadow="hover" class="card-info">
- <template #header>
- <el-divider content-position="left"><i class="el-icon-document"></i> <span
- style="font-weight: 900; font-size: 16px; color: #606266;">劳动合同</span>
- <!-- <el-button type="primary" @click="addReward()"
- :disabled="auditStatus == 2">新增</el-button> -->
- <el-divider direction="vertical" />
- <el-button :type="changeFlag[8] ? 'warning' : 'success'"
- @click="changeInfoList(8)">{{
- changeFlag[8] ? "收起" : "展开"
- }}</el-button>
- </el-divider>
- </template>
- <el-collapse-transition>
- <el-row :gutter="26" v-if="changeFlag[8]">
- <el-col :span="24">
- <el-collapse v-model="activeNames[8]"
- v-if="laborContractInfoList && laborContractInfoList.length > 0">
- <div style="padding: 0 30px;"
- v-for="(item, index) in laborContractInfoList">
- <el-collapse-item :name="item.id">
- <template #title="{ isActive }">
- <div class="collapseTitle">
- <span style="font-size: 16px;"> {{
- $dictUtils.getDictLabel("labor_contract_type",
- item.type, '-')
- }}</span>
- <span style="font-size: 16px;"> {{ "-" +
- $dictUtils.getDictLabel("labor_contract_term",
- item.term,
- '-')
- }}</span>
- </div>
- </template>
- <el-descriptions title="" border :column="2">
- <el-descriptions-item label="合同类型:">{{
- $dictUtils.getDictLabel("labor_contract_type", item.type,
- '-')
- }}</el-descriptions-item>
- <!-- <el-descriptions-item label="合同编号:">{{ item.code
- }}</el-descriptions-item> -->
- <el-descriptions-item label="合同期限:">{{
- $dictUtils.getDictLabel("labor_contract_term",
- item.term,
- '-')
- }}</el-descriptions-item>
- <el-descriptions-item label="合同起始日期:">{{
- handleDateFormatter(item.startDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="合同终止日期:">{{
- handleDateFormatter(item.endDate)
- }}</el-descriptions-item>
- <el-descriptions-item label="试用期结束日期:">{{
- handleDateFormatter(item.trialEndDate)
- }}</el-descriptions-item>
- <!-- <el-descriptions-item label="办理日期:">{{
- handleDateFormatter(item.processeDate)
- }}</el-descriptions-item> -->
- <el-descriptions-item label="附件:">
- <AttachmentView :fileList="item.files">
- </AttachmentView>
- </el-descriptions-item>
- </el-descriptions>
- </el-collapse-item>
- </div>
- </el-collapse>
- <el-empty image-size="80px"
- style="margin-top: 0 !important;padding: 0 !important;" v-else
- description="暂无表彰与奖励"></el-empty>
- </el-col>
- </el-row>
- </el-collapse-transition>
- </el-card>
- </el-tab-pane>
- <el-tab-pane label="上传头像">
- <el-form :model="photoForm" ref="photoForm" label-width="100px">
- <el-form-item prop="photo">
- <image-select v-model="photoForm.photo" round icon="el-icon-avatar"
- title="头像"></image-select>
- </el-form-item>
- <!-- <el-form-item>
- <el-button style="width: 148px" type="primary" @click="submitPhotoForm()">保存</el-button>
- </el-form-item> -->
- </el-form>
- </el-tab-pane>
- <!-- <el-tab-pane label="联系方式">
- <el-form :model="concatForm" ref="concatForm" label-width="100px">
- <el-form-item label="手机" prop="mobile" :rules="[
- {
- validator: validator.isMobile,
- trigger: 'blur',
- },
- ]">
- <el-input v-model="concatForm.mobile"></el-input>
- </el-form-item>
- <el-form-item label="电话" prop="phone" :rules="[
- {
- validator: validator.isPhone,
- trigger: 'blur',
- },
- ]">
- <el-input v-model="concatForm.phone"></el-input>
- </el-form-item>
- <!– <el-form-item>
- <el-button type="primary" @click="submitConcatForm()">保存</el-button>
- </el-form-item> –>
- </el-form>
- </el-tab-pane>-->
- <!--<el-tab-pane label="修改密码">
- <el-form
- :rules="dataRule"
- :model="pwdForm"
- ref="pwdForm"
- label-width="100px"
- >
- <el-form-item
- label="旧密码"
- :rules="[
- {
- required: true,
- message: '必填项不能为空',
- trigger: 'blur',
- },
- ]"
- prop="oldPassword"
- >
- <el-input
- v-model="pwdForm.oldPassword"
- show-password
- ></el-input>
- </el-form-item>
- <el-form-item
- label="新密码"
- :rules="[
- {
- required: true,
- message: '必填项不能为空',
- trigger: 'blur',
- },
- ]"
- prop="newPassword"
- >
- <el-input
- v-model="pwdForm.newPassword"
- show-password
- ></el-input>
- </el-form-item>
- <el-form-item
- label="确认新密码"
- :rules="rule"
- prop="confirmNewPassword"
- >
- <el-input
- v-model="pwdForm.confirmNewPassword"
- show-password
- ></el-input>
- </el-form-item>
- <el-form-item>
- <el-button
- type="primary"
- @click="submitPwdForm()"
- >保存</el-button
- >
- </el-form-item>
- </el-form>
- </el-tab-pane>-->
- <!--<el-tab-pane label="我的日志">
- <el-menu
- default-active="1"
- mode="horizontal"
- @select="changeLog"
- >
- <el-menu-item index="1">
- <template #title>登陆日志</template>
- </el-menu-item>
- <el-menu-item index="2">
- <template #title>访问日志</template>
- </el-menu-item>
- </el-menu>
- <vxe-table
- auto-resize
- resizable
- height="400px"
- :loading="loading"
- size="mini"
- ref="logTable"
- show-header-overflow
- show-overflow
- highlight-hover-row
- :menu-config="{}"
- :print-config="{}"
- :import-config="{}"
- :export-config="{}"
- @sort-change="sortChangeHandle"
- :sort-config="{ remote: true }"
- :data="dataList"
- :checkbox-config="{}"
- >
- <vxe-column type="seq" width="40"></vxe-column>
- <vxe-column
- title="操作菜单"
- field="title"
- sortable
- ></vxe-column>
- <vxe-column
- title="耗时(毫秒)"
- field="recordTime"
- sortable
- ></vxe-column>
- <vxe-column
- title="请求参数"
- field="params"
- sortable
- ></vxe-column>
- <vxe-column
- title="返回结果"
- field="result"
- sortable
- ></vxe-column>
- <vxe-column
- title="公司"
- field="createBy.companyDTO.name"
- sort-by="c.name"
- sortable
- ></vxe-column>
- <vxe-column
- title="部门"
- field="createBy.officeDTO.name"
- sort-by="o.name"
- sortable
- ></vxe-column>
- <vxe-column
- title="用户"
- field="createBy.name"
- sort-by="u.name"
- sortable
- ></vxe-column>
- <vxe-column
- title="IP地址"
- field="remoteAddr"
- sortable
- ></vxe-column>
- <vxe-column
- title="访问时间"
- field="createTime"
- sort-by="a.create_time"
- sortable
- ></vxe-column>
- </vxe-table>
- <vxe-pager
- background
- size="mini"
- :current-page="tablePage.currentPage"
- :page-size="tablePage.pageSize"
- :total="tablePage.total"
- :page-sizes="[
- 10,
- 20,
- 100,
- 1000,
- { label: '全量数据', value: 1000000 },
- ]"
- :layouts="[
- 'PrevPage',
- 'JumpNumber',
- 'NextPage',
- 'FullJump',
- 'Sizes',
- 'Total',
- ]"
- @page-change="currentChangeHandle"
- >
- </vxe-pager>
- </el-tab-pane>-->
- </el-tabs>
- </el-card>
- </el-main>
- <!-- 教育经历 -->
- <EducationInfo ref="EducationInfo" @addEduInfo="handleAddEduInfo"></EducationInfo>
- <!-- 工作经历 -->
- <WorkInfo ref="WorkInfo" @addWorkInfo="handleAddWorkInfo"></WorkInfo>
- <!-- 培训经历 -->
- <TrainingInfo ref="TrainingInfo" @addTrainingInfo="handleAddTrainingInfo"></TrainingInfo>
- <!-- 执业资格证书 -->
- <CertificateInfo ref="certificateInfo" @addCertificateInfo="handleAddCertificateInfo"></CertificateInfo>
- <!-- 职称证书 -->
- <SkillInfo ref="skillInfo" @addSkillInfo="handleAddSkillInfo"></SkillInfo>
- <!--外语语种 -->
- <LanguageInfo ref="languageInfo" @addLanguageInfo="handleAddLanguageInfo"></LanguageInfo>
- <!-- 家庭情况 -->
- <FamilyInfo ref="familyInfo" @addFamilyInfo="handleAddFamilyInfo"></FamilyInfo>
- <!-- 表彰与奖励 -->
- <RewardInfo ref="rewardInfo" @addRewardInfo="handleAddRewardInfo"></RewardInfo>
- <!-- 社会及行业职务 -->
- <SocietyInfo ref="societyInfo" @addSocietyInfo="handleAddSocietyInfo"></SocietyInfo>
- <!-- 工作业绩 -->
- <PerformanceInfo ref="performanceInfo" @addPerformanceInfo="handleAddPerformanceInfo"></PerformanceInfo>
- </el-container>
- </template>
- <script>
- import colorTool from "@/utils/color";
- import userService from "@/api/sys/userService";
- import logService from "@/api/sys/logService";
- import postService from "@/api/sys/postService";
- import roleService from "@/api/sys/roleService";
- import enrollmentRegistrationService from '@/api/human/enrollment/EnrollmentRegistrationService'
- import SelectTree from '@/components/treeSelect/treeSelect.vue'
- import dayjs from 'dayjs'
- import EducationInfo from "./components/EducationInfo";
- import WorkInfo from "./components/WorkInfo";
- import TrainingInfo from "./components/TrainingInfo";
- import CertificateInfo from "./components/CertificateInfo";
- import SkillInfo from "./components/SkillInfo";
- import LanguageInfo from "./components/LanguageInfo";
- import FamilyInfo from "./components/FamilyInfo";
- import RewardInfo from "./components/RewardInfo";
- import SocietyInfo from "./components/SocietyInfo";
- import PerformanceInfo from "./components/PerformanceInfo";
- import AttachmentView from './components/AttachmentView'
- import UpLoadComponent from '@/views/common/UpLoadComponentCardStyle'
- import processService from '@/api/flowable/processService'
- import taskService from '@/api/flowable/taskService'
- import OSSSerivce, {
- httpRequest,
- fileName,
- toHref,
- } from '@/api/sys/OSSService'
- import { flow } from "lodash";
- export default {
- components: {
- SelectTree,
- EducationInfo,
- WorkInfo,
- TrainingInfo,
- CertificateInfo,
- SkillInfo,
- LanguageInfo,
- FamilyInfo,
- RewardInfo,
- SocietyInfo,
- PerformanceInfo,
- AttachmentView,
- UpLoadComponent
- },
- data() {
- var validatePass2 = (rule, value, callback) => {
- if (value !== this.pwdForm.newPassword) {
- callback(new Error("两次输入密码不一致!"));
- } else {
- callback();
- }
- };
- return {
- activeName: "basicInfo",
- rejectMessage: "无",
- uploadKey: "",
- fileType: ['jpg', 'jpeg', 'png', 'webp'],
- bankHideUploadEdit: false, //控制上传点击
- bankHideUploadEdit2: false, //控制上传点击
- bankFileList: [],
- bankFileList2: [],
- bankDialogVisible: false,
- bankDialogVisible2: false,
- gsDialogVisible: false,
- gsDialogVisible2: false,
- gsHideUploadEdit: false, //控制上传点击
- gsHideUploadEdit2: false, //控制上传点击
- gsFileList: [],
- gsFileList2: [],
- hideUploadEdit: false, //隐藏上传按钮
- hideUploadEdit2: false, //隐藏上传按钮
- limitNum: 1,
- fileList: [],
- fileList2: [],
- dialogImageUrl: '',
- dialogVisible: false,
- dialogVisible2: false,
- disabled: false,
- ossService: null,
- roleList: [],
- postList: [],
- fileList: [],
- fileList2: [],
- type: "1",
- colorList: [
- "#409EFF",
- "#009688",
- "#536dfe",
- "#ff5c93",
- "#c62f2f",
- "#fd726d",
- ],
- config: {
- lang: this.$TOOL.data.get("APP_LANG") || this.$CONFIG.LANG,
- theme: this.$TOOL.data.get("APP_THEME") || "default",
- colorPrimary:
- this.$TOOL.data.get("APP_COLOR") ||
- this.$CONFIG.COLOR ||
- "#409EFF",
- },
- userInfo: {},
- generalForm: {
- id: "",
- name: "",
- sign: "",
- loginName: "",
- companyDTO: {
- name: "",
- },
- officeDTO: {
- name: "",
- },
- remarks: "",
- wageCardId: '',//银行卡信息id
- zxBankCardNumber: '',//银行卡信息
- zxAccountHolder: '',
- accountHolderFront: '',
- accountHolderFrontUrl: '',
- accountHolderOpposite: '',
- accountHolderOppositeUrl: '',
- gsAccountHolder: '',
- gsBankCardNumber: '',
- gsAccountHolderFront: '',
- gsAccountHolderFrontUrl: '',
- gsAccountHolderOpposite: '',
- gsAccountHolderOppositeUrl: '',
- id: '',
- userId: '',
- name: '', //姓名
- sex: '', // 性别
- age: '',//年龄
- birthday: '',//生日
- joinIndustryDate: null, // 参加工作日期
- joinWorkDate: null, // 参加行业日期
- politicalOutlook: '',//政治面貌
- nativePlace: '',//籍贯
- nation: '', //民族
- maritalStatus: '',//婚姻
- mobilePhone: '',//联系电话
- idCard: '', //身份证
- idCardFront: [],
- idCardBack: [],
- homeAddress: '',//家庭住址
- permanentAddress: '',//常驻地址
- email: "",
- graduatedFrom: '',
- speciality: '',
- startTime: '',
- endTime: '',
- education: '',
- educationNature: '',
- graduatedOrNot: '',
- englishLevel: '',
- ncre: '',
- department: '',
- entryDate: '',
- contractStartDate: '',
- contractEndDate: '',
- remarks: '',
- type: '',
- onJobStatus: '',
- socialSecurityNumber: '',
- socialSecurityBankNumber: '',
- socialSecurityPictureFront: '',
- socialSecurityPictureFrontUrl: '',
- socialSecurityPictureOpposite: '',
- socialSecurityPictureOppositeUrl: '',
- roleIdList: [],
- postIdList: [],
- ddId: '',
- registrationId: "",
- status: ""
- },
- concatForm: {
- id: "",
- email: "",
- phone: "",
- mobile: "",
- },
- photoForm: {
- id: "",
- photo: "",
- },
- pwdForm: {
- id: this.$store.state.user.id,
- oldPassword: "",
- newPassword: "",
- confirmNewPassword: "",
- },
- dataRule: {
- password: [
- { required: true, message: '原密码不能为空', trigger: 'blur' }
- ],
- newPassword: [
- { required: true, message: '新密码不能为空', trigger: 'blur' },
- {
- validator: (rule, value, callback) => {
- const passwordRegex = /^(?=(.*[A-Z]))(?=(.*[a-z]))(?=(.*\d))|(?=(.*[A-Z]))(?=(.*[a-z]))(?=(.*[!@#$%^&*.,]))|(?=(.*[A-Z]))(?=(.*\d))(?=(.*[!@#$%^&*.,]))|(?=(.*[a-z]))(?=(.*\d))(?=(.*[!@#$%^&*.,]))[A-Za-z\d!@#$%^&*.,]{8,20}$/;
- if (!value) {
- callback(new Error('新的密码不能为空'));
- } else if (!passwordRegex.test(value)) {
- callback(new Error('密码必须包含大写字母、小写字母、数字或特殊字符中的三种,且长度为8到20个字符'));
- } else {
- callback(); // 验证通过
- }
- },
- trigger: 'blur'
- }
- ],
- confirmNewPassword: [
- { required: true, message: '确认密码不能为空', trigger: 'blur' },
- { validator: validatePass2, trigger: 'blur' },
- {
- validator: (rule, value, callback) => {
- const passwordRegex = /^(?=(.*[A-Z]))(?=(.*[a-z]))(?=(.*\d))|(?=(.*[A-Z]))(?=(.*[a-z]))(?=(.*[!@#$%^&*.,]))|(?=(.*[A-Z]))(?=(.*\d))(?=(.*[!@#$%^&*.,]))|(?=(.*[a-z]))(?=(.*\d))(?=(.*[!@#$%^&*.,]))[A-Za-z\d!@#$%^&*.,]{8,20}$/;
- if (!value) {
- callback(new Error('确认密码不能为空'));
- } else if (!passwordRegex.test(value)) {
- callback(new Error('密码必须包含大写字母、小写字母、数字或特殊字符中的三种,且长度为8到20个字符'));
- } else {
- callback(); // 验证通过
- }
- },
- trigger: 'blur'
- }
- ]
- },
- dataList: [],
- tablePage: {
- total: 0,
- currentPage: 1,
- pageSize: 10,
- orders: [{ column: "a.create_time", asc: false }],
- },
- loading: false,
- rule: [
- { required: true, message: "必填项不能为空", trigger: "blur" },
- { validator: validatePass2, trigger: "blur" },
- ],
- changeFlag: [
- true, true, true, true, true, true, true, true, true, true, true
- ],
- activeNames: [],
- //教育经历
- eduInfoList: [
- ],
- // 工作经历
- workInfoList: [
- ],
- // 培训经历
- trainingInfoList: [
- ],
- // 资质证书
- certificateInfoList: [
- ],
- // 专业技能
- skillInfoList: [
- ],
- languageInfoList: [
- ],
- familyInfoList: [
- ],
- rewardInfoList: [
- ],
- societyInfoList: [],
- performanceInfoList: [],
- laborContractInfoList: [],
- auditStatus: "0",
- flowData: [],
- procInsId: ""
- };
- },
- created() {
- this.ossService = new OSSSerivce()
- this.userInfo = this.$TOOL.data.get("USER_INFO");
- var userId = this.userInfo.id;
- if (userId) {
- this.getDataInfo(userId)
- // this.refreshList(userId);
- }
- },
- computed: {
- userId() {
- return this.$store.state.user.id
- }
- },
- watch: {
- "config.theme"(val) {
- document.body.setAttribute("data-theme", val);
- this.$TOOL.data.set("APP_THEME", val);
- },
- "config.lang"(val) {
- this.$i18n.locale = val;
- this.$TOOL.data.set("APP_LANG", val);
- },
- "config.colorPrimary"(val) {
- colorTool.setAppColors(val);
- this.$TOOL.data.set("APP_COLOR", val);
- },
- },
- methods: {
- getDataInfo(userId) {
- this.loading = true
- enrollmentRegistrationService.getUserInfoAudit({ userId: userId }).then(res => {
- if (res) {
- this.procInsId = res.procInsId
- if (res.procInsId) {
- taskService.historicTaskList(
- res.procInsId
- ).then(result => {
- if (res.status == 4) {
- let rejectObj = result.find(temp => {
- return temp.comment.status == "驳回"
- })
- if (rejectObj && rejectObj.comment.message != "") {
- this.rejectMessage = rejectObj.comment.message
- }
- } else if (res.status == 2) {
- this.flowData = result
- // this.$refs.flowRef.setCurrentRow(this.flowData[this.flowData.length - 1]);
- }
- })
- }
- //审核中就展示提交审核的信息
- if (res.status == 2 || res.status == 4) {
- this.auditStatus = res.status
- this.initAudit(res.id)
- // 完成审核或者已经驳回,就展示最终信息
- } else {
- this.auditStatus = "5"
- userService.queryById(userId).then((data) => {
- // this.recover(this.generalForm, data);
- this.recover(this.concatForm, data);
- this.recover(this.photoForm, data);
- });
- this.init(userId)
- }
- } else {
- this.auditStatus = "6"
- userService.queryById(userId).then((data) => {
- // this.recover(this.generalForm, data);
- this.recover(this.concatForm, data);
- this.recover(this.photoForm, data);
- });
- this.init(userId)
- }
- }).catch(() => {
- this.loading = false
- })
- },
- init(userId) {
- this.loading = true;
- enrollmentRegistrationService.findInfoByUserId(userId).then(async (data) => {
- this.fileList = []
- this.fileList2 = []
- this.generalForm = this.recover(this.generalForm, data)
- this.generalForm = JSON.parse(JSON.stringify(this.generalForm))
- if (this.commonJS.isEmpty(this.generalForm.roleIdList)) {
- this.generalForm.roleIdList = []
- }
- if (this.commonJS.isEmpty(this.generalForm.postIdList)) {
- this.generalForm.postIdList = []
- }
- // 教育经历
- if (this.commonJS.isNotEmpty(data.eduInfoList)) {
- this.eduInfoList = data.eduInfoList
- }
- // 工作经历
- if (this.commonJS.isNotEmpty(data.workInfoList)) {
- this.workInfoList = data.workInfoList
- }
- // 培训经历
- if (this.commonJS.isNotEmpty(data.trainingInfoList)) {
- this.trainingInfoList = data.trainingInfoList
- }
- // 资质证书
- if (this.commonJS.isNotEmpty(data.certificateInfoList)) {
- this.certificateInfoList = data.certificateInfoList
- }
- // 专业技能
- if (this.commonJS.isNotEmpty(data.skillInfoList)) {
- this.skillInfoList = data.skillInfoList
- }
- // 外语语种
- if (this.commonJS.isNotEmpty(data.languageInfoList)) {
- this.languageInfoList = data.languageInfoList
- }
- // 家庭情况
- if (this.commonJS.isNotEmpty(data.familyInfoList)) {
- this.familyInfoList = data.familyInfoList
- }
- // 表彰与奖励
- if (this.commonJS.isNotEmpty(data.rewardInfoList)) {
- this.rewardInfoList = data.rewardInfoList
- }
- // 劳动合同
- if (this.commonJS.isNotEmpty(data.laborContractInfoList)) {
- this.laborContractInfoList = data.laborContractInfoList
- }
- // 社会及行业职务
- if (this.commonJS.isNotEmpty(data.societyInfoList)) {
- this.societyInfoList = data.societyInfoList
- }
- //工作业绩
- if (this.commonJS.isNotEmpty(data.performanceInfoList)) {
- this.performanceInfoList = data.performanceInfoList
- }
- if (this.commonJS.isEmpty(this.generalForm.idCardFront)) {
- this.generalForm.idCardFront = []
- }
- if (this.commonJS.isEmpty(this.generalForm.idCardBack)) {
- this.generalForm.idCardBack = []
- }
- this.certificateInfoList.forEach(temp => {
- this.changeType(temp.type, temp)
- })
- this.activeNames[0] = this.eduInfoList.map(item => item.id)
- this.activeNames[1] = this.workInfoList.map(item => item.id)
- this.activeNames[2] = this.trainingInfoList.map(item => item.id)
- this.activeNames[3] = this.certificateInfoList.map(item => item.id)
- this.activeNames[4] = this.skillInfoList.map(item => item.id)
- this.activeNames[5] = this.languageInfoList.map(item => item.id)
- this.activeNames[6] = this.familyInfoList.map(item => item.id)
- this.activeNames[7] = this.rewardInfoList.map(item => item.id)
- this.activeNames[8] = this.laborContractInfoList.map(item => item.id)
- this.activeNames[9] = this.societyInfoList.map(item => item.id)
- this.activeNames[10] = this.performanceInfoList.map(item => item.id)
- //后面的fileType是限制上传类型
- this.$refs.idCardFront.newUpload('edit', this.generalForm.idCardFront, 'idCard', null, null, null, null, null, [...this.fileType])
- this.$refs.idCardBack.newUpload('edit', this.generalForm.idCardBack, 'idCard', null, null, null, null, null, [...this.fileType])
- if (this.commonJS.isNotEmpty(this.generalForm.socialSecurityPictureFront)) {
- await this.ossService.getTemporaryUrl(this.generalForm.socialSecurityPictureFront).then((data) => {
- let file = {
- url: data
- }
- this.fileList.push(file)
- })
- }
- if (this.commonJS.isNotEmpty(this.generalForm.socialSecurityPictureOpposite)) {
- await this.ossService.getTemporaryUrl(this.generalForm.socialSecurityPictureOpposite).then((data) => {
- let file = {
- url: data
- }
- this.fileList2.push(file)
- })
- }
- if (this.commonJS.isNotEmpty(this.generalForm.accountHolderFront)) {
- await this.ossService.getTemporaryUrl(this.generalForm.accountHolderFront).then((data) => {
- console.log('data', data)
- let file = {
- url: data
- }
- this.bankFileList.push(file)
- })
- }
- if (this.commonJS.isNotEmpty(this.generalForm.accountHolderOpposite)) {
- console.log('123')
- await this.ossService.getTemporaryUrl(this.generalForm.accountHolderOpposite).then((data) => {
- let file = {
- url: data
- }
- this.bankFileList2.push(file)
- })
- }
- if (this.commonJS.isNotEmpty(this.generalForm.gsAccountHolderFront)) {
- await this.ossService.getTemporaryUrl(this.generalForm.gsAccountHolderFront).then((data) => {
- let file = {
- url: data
- }
- this.gsFileList.push(file)
- })
- }
- if (this.commonJS.isNotEmpty(this.generalForm.gsAccountHolderOpposite)) {
- await this.ossService.getTemporaryUrl(this.generalForm.gsAccountHolderOpposite).then((data) => {
- let file = {
- url: data
- }
- this.gsFileList2.push(file)
- })
- }
- if (this.generalForm.type == 5) {
- roleService.list2(this.generalForm.department).then((data) => {
- this.roleList = data
- })
- postService.list2(this.generalForm.department).then((data) => {
- this.postList = data
- })
- }
- this.loading = false
- }).catch(err => {
- this.loading = false;
- })
- },
- initAudit(id) {
- this.generalForm = {
- id: '',
- userId: '',
- name: '', //姓名
- sex: '', // 性别
- age: '',//年龄
- birthday: '',//生日
- joinIndustryDate: null, // 参加工作日期
- joinWorkDate: null, // 参加行业日期
- politicalOutlook: '',//政治面貌
- nativePlace: '',//籍贯
- nation: '', //民族
- maritalStatus: '',//婚姻
- mobilePhone: '',//联系电话
- idCard: '', //身份证
- idCardFront: [],
- idCardBack: [],
- homeAddress: '',//家庭住址
- permanentAddress: '',//常驻地址
- email: "",
- registrationId: "",
- status: ""
- }
- this.generalForm.id = id
- this.visible = true
- this.loading = false
- this.$nextTick(() => {
- this.loading = true
- enrollmentRegistrationService.findAuditInfoById(this.generalForm.id).then(async (data) => {
- this.generalForm = this.recover(this.generalForm, data)
- this.generalForm = JSON.parse(JSON.stringify(this.generalForm))
- this.eduInfoList = data.eduInfoList
- this.certificateInfoList = data.certificateInfoList
- this.skillInfoList = data.skillInfoList
- this.familyInfoList = data.familyInfoList
- this.languageInfoList = data.languageInfoList
- this.trainingInfoList = data.trainingInfoList
- this.rewardInfoList = data.rewardInfoList
- this.laborContractInfoList = data.laborContractInfoList
- this.workInfoList = data.workInfoList
- this.societyInfoList = data.societyInfoList
- this.performanceInfoList = data.performanceInfoList
- this.concatForm.email = data.email
- this.activeNames[0] = this.eduInfoList.map(item => item.id)
- this.activeNames[1] = this.workInfoList.map(item => item.id)
- this.activeNames[2] = this.trainingInfoList.map(item => item.id)
- this.activeNames[3] = this.certificateInfoList.map(item => item.id)
- this.activeNames[4] = this.skillInfoList.map(item => item.id)
- this.activeNames[5] = this.languageInfoList.map(item => item.id)
- this.activeNames[6] = this.familyInfoList.map(item => item.id)
- this.activeNames[7] = this.rewardInfoList.map(item => item.id)
- this.activeNames[8] = this.laborContractInfoList.map(item => item.id)
- this.activeNames[9] = this.societyInfoList.map(item => item.id)
- this.activeNames[10] = this.performanceInfoList.map(item => item.id)
- if (this.commonJS.isEmpty(this.generalForm.idCardFront)) {
- this.generalForm.idCardFront = []
- }
- if (this.commonJS.isEmpty(this.generalForm.idCardBack)) {
- this.generalForm.idCardBack = []
- }
- //后面的fileType是限制上传类型
- let method = ""
- if (this.auditStatus == 2) {
- method = "view"
- }
- if (this.auditStatus == 4) {
- method = "edit"
- }
- this.certificateInfoList.forEach(temp => {
- this.changeType(temp.type, temp)
- })
- this.$refs.idCardFront.newUpload(method, this.generalForm.idCardFront, 'idCard', null, null, null, null, null, [...this.fileType])
- this.$refs.idCardBack.newUpload(method, this.generalForm.idCardBack, 'idCard', null, null, null, null, null, [...this.fileType])
- this.loading = false
- })
- })
- },
- async submitGeneralForm() {
- let valid = await this.$refs["generalForm"].validate();
- if (valid) {
- const loading = this.$loading();
- let data = await userService.saveInfo(this.generalForm);
- let { user } = await userService.info();
- this.userInfo = user;
- this.$TOOL.data.set("USER_INFO", user);
- loading.close();
- this.$message.success(data);
- }
- },
- async submitConcatForm() {
- // let valid = await this.$refs["concatForm"].validate();
- // if (valid) {
- const loading = this.$loading();
- let data = await userService.saveInfo(this.concatForm);
- let { user } = await userService.info();
- this.userInfo = user;
- // this.$TOOL.data.set("USER_INFO", user);
- localStorage.setItem("USER_INFO", JSON.stringify(user))
- loading.close();
- // this.$message.success(data);
- // }
- },
- async submitUserInfo() {
- this.$confirm('确定提交审批吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- if (this.$refs.idCardFront.checkProgress() || this.$refs.idCardBack.checkProgress()) {
- return
- }
- if (this.$refs.idCardFront.getDataList().length == 0 || this.$refs.idCardBack.getDataList().length == 0) {
- this.$message.error("请确保已完整上传身份证正反面照片,再进行提交")
- return
- }
- // if (!this.generalForm.idCard || this.generalForm.idCard == "" || this.generalForm.idCard == null) {
- // this.$message.error("身份证号码未填写")
- // return
- // }
- this.$refs['generalForm'].validate((valid) => {
- if (valid) {
- this.loading = true
- this.submitConcatForm()
- this.submitPhotoForm()
- this.generalForm.idCardFront = this.$refs.idCardFront.getDataList()
- this.generalForm.idCardBack = this.$refs.idCardBack.getDataList()
- this.generalForm.email = this.concatForm.email
- this.generalForm.eduInfoList = this.eduInfoList
- this.generalForm.workInfoList = this.workInfoList
- this.generalForm.certificateInfoList = this.certificateInfoList
- this.generalForm.skillInfoList = this.skillInfoList
- this.generalForm.rewardInfoList = this.rewardInfoList
- this.generalForm.familyInfoList = this.familyInfoList
- this.generalForm.trainingInfoList = this.trainingInfoList
- this.generalForm.languageInfoList = this.languageInfoList
- this.generalForm.societyInfoList = this.societyInfoList
- this.generalForm.performanceInfoList = this.performanceInfoList
- enrollmentRegistrationService.updateInfoAudit(this.generalForm).then((data) => {
- this.close()
- this.$message.success(data.msg)
- this.$refs.idCardBack.clearUpload()
- this.$refs.idCardFront.clearUpload()
- this.getDataInfo(this.userInfo.id)
- this.loading = false
- }).catch(() => {
- this.loading = false
- })
- } else {
- if (!this.generalForm.idCard || this.generalForm.idCard == "" || this.generalForm.idCard == null) {
- this.$message.error("身份证号码未填写")
- }
- this.activeName = "basicInfo"
- }
- })
- }).catch(() => {
- });
- },
- close() {
- this.$refs.generalForm.resetFields()
- this.fileList = []
- this.fileList2 = []
- this.bankFileList = []
- this.bankFileList2 = []
- this.gsFileList = []
- this.gsFileList2 = []
- this.visible = false
- },
- async submitPhotoForm() {
- const loading = this.$loading();
- let data = await userService.saveInfo(this.photoForm);
- let { user } = await userService.info();
- this.userInfo = user;
- this.$TOOL.data.set("USER_INFO", user);
- loading.close();
- // this.$message.success(data);
- },
- async submitPwdForm() {
- console.log(this.pwdForm)
- let valid = await this.$refs["pwdForm"].validate();
- console.log(valid)
- if (valid) {
- const loading = this.$loading();
- try {
- let data = await userService.saveInfo(this.pwdForm); // 可能抛出错误的请求
- // 更新用户信息
- let { user } = await userService.info();
- this.userInfo = user;
- this.$TOOL.data.set("USER_INFO", user);
- this.$message.success(data); // 成功信息提示
- } catch (error) {
- // 捕获请求中的异常
- /*if (error.response && error.response.status === 400) {
- // 使用后端返回的错误信息提示用户
- this.$message.error(error.response.data); // 比如 "修改密码失败,旧密码错误!"
- } else {
- this.$message.error("请求失败,请稍后重试");
- console.error("请求失败", error);
- }*/
- } finally {
- loading.close(); // 确保 loading 状态关闭
- }
- }
- }
- ,
- // 获取数据列表
- refreshList() {
- this.loading = true;
- logService
- .mine({
- current: this.tablePage.currentPage,
- size: this.tablePage.pageSize,
- orders: this.tablePage.orders,
- })
- .then((data) => {
- this.dataList = data.records;
- this.tablePage.total = data.total;
- this.loading = false;
- });
- },
- changeLog(index) {
- this.type = index;
- this.refreshList();
- },
- // 当前页
- currentChangeHandle({ currentPage, pageSize }) {
- this.tablePage.currentPage = currentPage;
- this.tablePage.pageSize = pageSize;
- this.refreshList();
- },
- // 排序
- sortChangeHandle(obj) {
- this.tablePage.orders = [];
- if (obj.order != null) {
- this.tablePage.orders.push({
- column:
- obj.column.sortBy || this.$utils.toLine(obj.property),
- asc: obj.order === "asc",
- });
- } else {
- this.tablePage.orders = [
- { column: "a.create_time", asc: false },
- ];
- }
- this.refreshList();
- },
- //身份证号码唯一性判断
- idCardOnly(idCard, id) {
- enrollmentRegistrationService.findIdCardOnly(idCard, id).then((data) => {
- if (data != 0) {
- this.$message.error('身份证号码已存在,请重新确认')
- this.generalForm.idCard = ''
- throw new Error('身份证号码已存在,请重新确认')
- } else {
- let sex = null
- let birth = null
- let myDate = new Date()
- let month = myDate.getMonth() + 1
- let day = myDate.getDate()
- let age = 0
- if (idCard.length === 18) {
- age = myDate.getFullYear() - idCard.substring(6, 10) - 1
- sex = idCard.substring(16, 17)
- birth = idCard.substring(6, 10) + '-' + idCard.substring(10, 12) + '-' + idCard.substring(12, 14)
- // eslint-disable-next-line no-mixed-operators
- if (idCard.substring(10, 12) < month || idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day) age++
- }
- if (idCard.length === 15) {
- age = myDate.getFullYear() - idCard.substring(6, 8) - 1901
- sex = idCard.substring(13, 14)
- birth = '19' + idCard.substring(6, 8) + '-' + idCard.substring(8, 10) + '-' + idCard.substring(10, 12)
- // eslint-disable-next-line no-mixed-operators
- if (idCard.substring(8, 10) < month || idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day) age++
- }
- if (sex % 2 === 0) {
- sex = '2' // 性别代码 1代表男,2代表女,暂时不涉及其他类型性别
- } else {
- sex = '1'
- }
- //获取户籍所在地
- const regionCode = idCard.substring(0, 6);
- this.generalForm.nativePlace = regionCode
- this.generalForm.age = age
- this.generalForm.sex = sex
- this.generalForm.birthday = birth
- return { age, sex, birth }
- }
- })
- },
- //联系电话唯一性判断
- mobilePhoneOnly(mobilePhone) {
- if (!this.validateXG.isPhoneOrMobile(mobilePhone)) {
- this.$message.error('”联系电话“填写不正确,请重新填写')
- this.loading = false
- this.generalForm.mobilePhone = ''
- throw new Error('”联系电话“填写不正确,请重新填写')
- }
- enrollmentRegistrationService.findMobilePhoneOnly(mobilePhone).then((data) => {
- if (data !== 0) {
- this.$message.error('联系电话已存在,请重新确认')
- this.generalForm.mobilePhone = ''
- throw new Error('联系电话已存在,请重新确认')
- }
- })
- },
- //邮箱验证
- checkEmail(email) {
- if (!this.validateXG.isEmail(email)) {
- this.$message.error('邮箱格式不正确,请重新填写')
- this.loading = false
- this.concatForm.email = ''
- throw new Error('邮箱格式不正确,请重新填写')
- }
- },
- checkBankNumber(bankNumber, type) {
- if (!this.validateXG.isBankNum(bankNumber)) {
- if (type === 'zx') {
- this.generalForm.zxBankCardNumber = ''
- } else if (type === 'gs') {
- this.generalForm.gsBankCardNumber = ''
- } else {
- this.$message.error('请输入正确的社保银行卡号')
- this.generalForm.socialSecurityBankNumber = ''
- throw new Error('请输入正确的社保银行卡号')
- }
- this.$message.error('请输入正确的银行卡号')
- throw new Error('请输入正确的银行卡号')
- }
- },
- handleAvatarSuccess(res, file, fileList, index, val) {
- console.log('foleList', fileList)
- if (val === 'front') {
- this.generalForm.socialSecurityPictureFront = '/' + res.url
- this.generalForm.socialSecurityPictureFrontUrl = res.lsUrl
- console.log('res.url', res.url)
- console.log('res.lsUrl', res.lsUrl)
- }
- this.hideUploadEdit = true
- this.$forceUpdate()
- },
- handleAvatarSuccess2(res, file, fileList, index, val) {
- console.log('foleList', fileList)
- if (val === 'front') {
- this.generalForm.socialSecurityPictureOpposite = '/' + res.url
- this.generalForm.socialSecurityPictureOppositeUrl = res.lsUrl
- }
- this.hideUploadEdit = true
- this.$forceUpdate()
- },
- onPreview(url) {
- if (url !== '' && url !== undefined && url !== null) {
- this.url = url
- this.showViewer = true
- }
- },
- checkIsPic(file) {
- return this.commonJS.isPic(file)
- },
- validateInput() {
- // 使用正则表达式验证输入内容,禁止中文
- this.generalForm.socialSecurityNumber = this.generalForm.socialSecurityNumber.replace(/[\u4e00-\u9fa5]/g, '');
- },
- handleUploadSuccess(response, file, fileList) {
- return this.handleAvatarSuccess(response, file, fileList, null, 'front')
- },
- handleUploadSuccess2(response, file, fileList) {
- return this.handleAvatarSuccess2(response, file, fileList, null, 'front')
- },
- bankHandleUploadSuccess(response, file, fileList) {
- return this.bankHandleAvatarSuccess(response, file, fileList, null, 'front')
- },
- bankHandleAvatarSuccess(res, file, fileList, index, val) {
- if (val === 'front') {
- this.generalForm.accountHolderFront = '/' + res.url
- this.generalForm.accountHolderFrontUrl = res.lsUrl
- }
- this.bankHideUploadEdit = true
- this.$forceUpdate()
- },
- bankHandlePictureCardPreview(file) {
- this.generalForm.accountHolderFrontUrl = file.url
- this.bankDialogVisible = true;
- },
- bankHandleDownload(file) {
- let file2 = {
- url: this.generalForm.accountHolderFront
- }
- toHref(file2)
- },
- bankHandleRemove(file, fileList) {
- this.bankHideUploadEdit = false
- // 如果需要删除图片信息,可以根据file或其他标识从相应的数据结构中删除信息
- const fileIndex = this.bankFileList.indexOf(file);
- if (fileIndex !== -1) {
- this.bankFileList.splice(fileIndex, 1); // 从fileList中删除该图片信息
- this.generalForm.accountHolderFront = ""
- }
- },
- bankHandleUploadSuccess2(response, file, fileList) {
- return this.bankHandleAvatarSuccess2(response, file, fileList, null, 'front')
- },
- bankHandleAvatarSuccess2(res, file, fileList, index, val) {
- if (val === 'front') {
- this.generalForm.accountHolderOpposite = '/' + res.url
- this.generalForm.accountHolderOppositeUrl = res.lsUrl
- }
- this.bankHideUploadEdit2 = true
- this.$forceUpdate()
- },
- bankHandlePictureCardPreview2(file) {
- this.generalForm.accountHolderOppositeUrl = file.url
- this.bankDialogVisible2 = true;
- },
- bankHandleDownload2(file) {
- let file2 = {
- url: this.generalForm.accountHolderOpposite
- }
- toHref(file2)
- },
- bankHandleRemove2(file, fileList) {
- this.hideUploadEdit2 = false
- // 如果需要删除图片信息,可以根据file或其他标识从相应的数据结构中删除信息
- const fileIndex = this.bankFileList2.indexOf(file);
- if (fileIndex !== -1) {
- this.bankFileList2.splice(fileIndex, 1); // 从fileList中删除该图片信息
- this.generalForm.accountHolderOpposite = ""
- }
- },
- gsHandleUploadSuccess(response, file, fileList) {
- return this.gsHandleAvatarSuccess(response, file, fileList, null, 'front')
- },
- gsHandleUploadSuccess2(response, file, fileList) {
- return this.gsHandleAvatarSuccess2(response, file, fileList, null, 'front')
- },
- gsHandleAvatarSuccess(res, file, fileList, index, val) {
- if (val === 'front') {
- this.generalForm.gsAccountHolderFront = '/' + res.url
- this.generalForm.gsAccountHolderFrontUrl = res.lsUrl
- }
- this.hideUploadEdit = true
- this.$forceUpdate()
- },
- gsHandleAvatarSuccess2(res, file, fileList, index, val) {
- if (val === 'front') {
- this.generalForm.gsAccountHolderOpposite = '/' + res.url
- this.generalForm.gsAccountHolderOppositeUrl = res.lsUrl
- }
- this.hideUploadEdit2 = true
- this.$forceUpdate()
- },
- gsHandlePictureCardPreview(file) {
- this.dialogImageUrl = file.url;
- this.generalForm.gsAccountHolderFrontUrl = file.url
- this.gsDialogVisible = true;
- },
- gsHandlePictureCardPreview2(file) {
- this.generalForm.gsAccountHolderOppositeUrl = file.url
- this.gsDialogVisible2 = true;
- },
- gsHandleDownload(file) {
- let file2 = {
- url: this.generalForm.gsAccountHolderFront
- }
- toHref(file2)
- },
- gsHandleDownload2(file) {
- let file2 = {
- url: this.generalForm.gsAccountHolderOpposite
- }
- toHref(file2)
- },
- gsHandleRemove(file, fileList) {
- this.gsHideUploadEdit = false
- // 如果需要删除图片信息,可以根据file或其他标识从相应的数据结构中删除信息
- const fileIndex = this.gsFileList.indexOf(file);
- if (fileIndex !== -1) {
- this.gsFileList.splice(fileIndex, 1); // 从fileList中删除该图片信息
- this.generalForm.gsAccountHolderFront = ""
- }
- },
- gsHandleRemove2(file, fileList) {
- this.gsHideUploadEdit2 = false
- // 如果需要删除图片信息,可以根据file或其他标识从相应的数据结构中删除信息
- const fileIndex = this.gsFileList2.indexOf(file);
- if (fileIndex !== -1) {
- this.gsFileList2.splice(fileIndex, 1); // 从fileList中删除该图片信息
- this.generalForm.gsAccountHolderOpposite = ""
- }
- },
- // 日期格式化
- handleDateFormatter(dateStr) {
- if (!dateStr) return ''; // 如果为空,返回空字符串
- return dayjs(dateStr).format('YYYY年MM月DD日');
- },
- changeInfoList(index) {
- this.changeFlag[index] = !this.changeFlag[index]
- },
- // 教育经历处理
- handleEduInfoChange(val) {
- console.log(val);
- },
- // 教育经历
- addEdu() {
- this.$refs.EducationInfo.init("add", null, this.userId)
- },
- editEdu(row) {
- this.$refs.EducationInfo.init("edit", row, this.userId)
- },
- delEdu(id) {
- this.$confirm('确定删除此条教育经历信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.eduInfoList = this.eduInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddEduInfo(row) {
- const { id } = row
- let index = this.eduInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.eduInfoList.push(row)
- } else {
- // 存在就更新
- this.eduInfoList[index] = row
- this.eduInfoList[index].degreeFile = row.degreeFile
- this.eduInfoList[index].educationFile = row.educationFile
- }
- if (!this.activeNames[0].includes(id)) {
- this.activeNames[0].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetEduInfo() {
- enrollmentRegistrationService.findEduInfo({
- userId: this.userId
- }).then(res => {
- this.eduInfoList = res
- })
- },
- // 工作经历处理
- addWork() {
- this.$refs.WorkInfo.init("add", null, this.userId)
- },
- editWork(row) {
- this.$refs.WorkInfo.init("edit", row, this.userId)
- },
- delWork(id) {
- this.$confirm('确定删除此条工作经历信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.workInfoList = this.workInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddWorkInfo(row) {
- const { id } = row
- let index = this.workInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.workInfoList.push(row)
- this.activeNames[1].push(row.id)
- } else {
- // 存在就更新
- this.workInfoList[index] = row
- }
- if (!this.activeNames[1].includes(id)) {
- this.activeNames[1].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetWorkInfo() {
- enrollmentRegistrationService.findWorkInfo({
- userId: this.userId
- }).then(res => {
- this.workInfoList = res
- })
- },
- //培训经历处理
- addTraining() {
- this.$refs.TrainingInfo.init("add", null, this.userId)
- },
- editTraining(row) {
- this.$refs.TrainingInfo.init("edit", row, this.userId)
- },
- delTraining(id) {
- this.$confirm('确定删除此条培训经历信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.trainingInfoList = this.trainingInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddTrainingInfo(row) {
- const { id } = row;
- let index = this.trainingInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.trainingInfoList.push(row)
- } else {
- // 存在就更新
- this.trainingInfoList[index] = row
- }
- if (!this.activeNames[2].includes(id)) {
- this.activeNames[2].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetTrainingInfo() {
- enrollmentRegistrationService.findTrainingInfo({
- userId: this.userId
- }).then(res => {
- this.trainingInfoList = res
- })
- },
- //资质证书处理
- addCertificate() {
- this.$refs.certificateInfo.init("add", null, this.userId)
- },
- editCertificate(row) {
- this.$refs.certificateInfo.init("edit", row, this.userId)
- },
- delCertificate(id) {
- this.$confirm('确定删除此条执业资格证书信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.certificateInfoList = this.certificateInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddCertificateInfo(row) {
- const { id } = row
- let index = this.certificateInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.certificateInfoList.push(row)
- } else {
- // 存在就更新
- this.certificateInfoList[index] = row
- }
- if (!this.activeNames[3].includes(id)) {
- this.activeNames[3].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetCertificateInfo() {
- enrollmentRegistrationService.findCertificateInfo({
- userId: this.userId
- }).then(res => {
- this.certificateInfoList = res
- })
- },
- //职称证书处理
- addSkill() {
- this.$refs.skillInfo.init("add", null, this.userId)
- },
- editSkill(row) {
- this.$refs.skillInfo.init("edit", row, this.userId)
- },
- delSkill(id) {
- this.$confirm('确定删除此条职称证书信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.skillInfoList = this.skillInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddSkillInfo(row) {
- const { id } = row
- let index = this.skillInfoList.findIndex(item => item.id === id)
- if (index === -1) {
- // 不存在就新增
- this.skillInfoList.push(row)
- } else {
- // 存在就更新
- this.skillInfoList[index] = row
- }
- if (!this.activeNames[4].includes(id)) {
- this.activeNames[4].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetSkillInfo() {
- enrollmentRegistrationService.findSkillInfo({
- userId: this.userId
- }).then(res => {
- this.skillInfoList = res
- })
- },
- //外语语种处理
- addLanguage() {
- this.$refs.languageInfo.init("add", null, this.userId)
- },
- editLanguage(row) {
- this.$refs.languageInfo.init("edit", row, this.userId)
- },
- delLanguage(id) {
- this.$confirm('确定删除此条外语语种信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.languageInfoList = this.languageInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddLanguageInfo(row) {
- const { id } = row
- let index = this.languageInfoList.findIndex(item => item.id === id)
- if (index === -1) {
- // 不存在就新增
- this.languageInfoList.push(row)
- } else {
- // 存在就更新
- this.languageInfoList[index] = row
- }
- if (!this.activeNames[5].includes(id)) {
- this.activeNames[5].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetLanguageInfo() {
- enrollmentRegistrationService.findLanguageInfo({
- userId: this.userId
- }).then(res => {
- this.languageInfoList = res
- })
- },
- //家庭情况处理
- addFamily() {
- this.$refs.familyInfo.init("add", null, this.userId)
- },
- editFamily(row) {
- this.$refs.familyInfo.init("edit", row, this.userId)
- },
- delFamily(id) {
- this.$confirm('确定删除此条家庭情况信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.familyInfoList = this.familyInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddFamilyInfo(row) {
- const { id } = row
- let index = this.familyInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.familyInfoList.push(row)
- } else {
- // 存在就更新
- this.familyInfoList[index] = row
- }
- if (!this.activeNames[6].includes(id)) {
- this.activeNames[6].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetFamilyInfo(row) {
- enrollmentRegistrationService.findFamilyInfo({
- userId: this.userId
- }).then(res => {
- this.familyInfoList = res
- })
- },
- //表彰与奖励处理
- addReward() {
- this.$refs.rewardInfo.init("add", null, this.userId)
- },
- editReward(row) {
- this.$refs.rewardInfo.init("edit", row, this.userId)
- },
- delReward(id) {
- this.$confirm('确定删除此条奖项信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.rewardInfoList = this.rewardInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddRewardInfo(row) {
- const { id } = row
- let index = this.rewardInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.rewardInfoList.push(row)
- } else {
- // 存在就更新
- this.rewardInfoList[index] = row
- }
- if (!this.activeNames[7].includes(id)) {
- this.activeNames[7].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetRewardInfo() {
- enrollmentRegistrationService.findRewardInfo({
- userId: this.userId
- }).then(res => {
- this.rewardInfoList = res
- })
- },
- //社会及行业职务
- addSociety() {
- this.$refs.societyInfo.init("add", null, this.userId)
- },
- editSociety(row) {
- this.$refs.societyInfo.init("edit", row, this.userId)
- },
- delSociety(id) {
- this.$confirm('确定删除此条社会及行业职务信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.societyInfoList = this.societyInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddSocietyInfo(row) {
- const { id } = row
- let index = this.societyInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.societyInfoList.push(row)
- } else {
- // 存在就更新
- this.societyInfoList[index] = row
- }
- if (!this.activeNames[9].includes(id)) {
- this.activeNames[9].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetSocietyInfo(row) {
- enrollmentRegistrationService.findSocietyInfo({
- userId: this.userId
- }).then(res => {
- this.societyInfoList = res
- })
- },
- //工作业绩
- addPerformance() {
- this.$refs.performanceInfo.init("add", null, this.userId)
- },
- editPerformance(row) {
- this.$refs.performanceInfo.init("edit", row, this.userId)
- },
- delPerformance(id) {
- this.$confirm('确定删除此条工作业绩信息吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.performanceInfoList = this.performanceInfoList.filter(item => item.id !== id)
- }).catch(() => {
- });
- },
- handleAddPerformanceInfo(row) {
- const { id } = row
- let index = this.performanceInfoList.findIndex(item => item.id === row.id)
- if (index === -1) {
- // 不存在就新增
- this.performanceInfoList.push(row)
- } else {
- // 存在就更新
- this.performanceInfoList[index] = row
- }
- if (!this.activeNames[10].includes(id)) {
- this.activeNames[10].push(id);
- }
- this.uploadKey = Date.now().toString();
- },
- handleGetPerformanceInfo(row) {
- enrollmentRegistrationService.findPerformanceInfo({
- userId: this.userId
- }).then(res => {
- this.performanceInfoList = res
- })
- },
- changeType(value, row) {
- if (value === '1' || value === '2') {
- let obj = this.$dictUtils.getDictList('sys_cert_profession_build').find(item => {
- return item.value == row.profession
- })
- if (obj) {
- row.profession = obj.label
- }
- } else if (value === '3' || value === '4') {
- let obj = this.$dictUtils.getDictList('sys_cert_profession_cost').find(item => {
- return item.value == row.profession
- })
- if (obj) {
- row.profession = obj.label
- }
- } else if (value === '5') {
- let obj = this.$dictUtils.getDictList('sys_cert_profession_supervision').find(item => {
- return item.value == row.profession
- })
- if (obj) {
- row.profession = obj.label
- }
- } else if (value === '6') {
- let obj = this.$dictUtils.getDictList('sys_cert_profession_accounting').find(item => {
- return item.value == row.profession
- })
- if (obj) {
- row.profession = obj.label
- }
- }
- },
- handleRevoke() {
- this.$confirm('确定要撤回审批吗?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.loading = true
- processService.revokeProcIns(this.procInsId).then(res => {
- this.generalForm.idCardFront = this.$refs.idCardFront.getDataList()
- this.generalForm.idCardBack = this.$refs.idCardBack.getDataList()
- this.generalForm.email = this.concatForm.email
- this.generalForm.eduInfoList = this.eduInfoList
- this.generalForm.workInfoList = this.workInfoList
- this.generalForm.certificateInfoList = this.certificateInfoList
- this.generalForm.skillInfoList = this.skillInfoList
- this.generalForm.rewardInfoList = this.rewardInfoList
- this.generalForm.familyInfoList = this.familyInfoList
- this.generalForm.trainingInfoList = this.trainingInfoList
- this.generalForm.languageInfoList = this.languageInfoList
- enrollmentRegistrationService.updateStatusByIdUserInfo(this.generalForm).then((data) => {
- this.close()
- this.$message.success(data.msg)
- this.$refs.idCardBack.clearUpload()
- this.$refs.idCardFront.clearUpload()
- this.getDataInfo(this.userInfo.id)
- this.loading = false
- }).catch(() => {
- this.loading = false
- })
- })
- }).catch(() => {
- this.loading = false
- });
- }
- },
- };
- </script>
- <style lang="less">
- .userInfo {
- padding: 8px 12px;
- .aside {
- width: 340px;
- margin-right: 20px;
- }
- .el-card__header {
- padding: calc(var(--el-card-padding) - 2px) var(--el-card-padding);
- border-bottom: 1px solid var(--el-card-border-color);
- box-sizing: border-box;
- }
- .person-bg {
- color: rgb(24, 144, 255);
- background-color: rgb(230, 247, 255);
- width: 24px;
- height: 24px;
- border-radius: 50%;
- text-align: center;
- vertical-align: middle;
- display: inline-block;
- }
- .person-text {
- font-size: 15px;
- margin-left: 5px;
- font-weight: 400;
- }
- }
- .adminui-topbar+.userInfo {
- padding: 12px 12px 8px 12px;
- }
- /deep/ .el-collapse-item__header {
- font-size: 16px !important;
- order: -1;
- }
- .collapseTitle {
- width: 100%;
- display: flex;
- align-items: center;
- order: 1;
- }
- .card-info {
- margin-bottom: 20px;
- }
- .star-require .el-form-item__label::before {
- content: "*";
- color: red;
- }
- </style>
|