<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
	<div>
		<el-dialog :title="title" :close-on-click-modal="false" draggable width="1400px" height="500px" @close="close"
			append-to-body v-model="visible">
			<el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method === 'view' ? 'readonly' : ''"
				:disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'" label-width="100px"
				@submit.native.prevent>

				<!-- <el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">账号信息</span></el-divider>
				<el-row :gutter="26">
					<el-col :span="24">
						<el-form-item label="登录名" prop="loginName"
							:rules="[{ required: true, message: '登录名不能为空', trigger: 'blur' }]">
							<el-input v-model="inputForm.loginName"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="密码:" prop="newPassword">
							<el-input v-model="inputForm.newPassword" maxlength="50" placeholder="若不修改，请留空"
								show-password></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="确认密码" prop="confirmNewPassword" :rules="inputForm.newPassword ? [
							{
								validator: validatePass2,
								trigger: 'blur',
							},
						] :
							[]
							">
							<el-input v-model="inputForm.confirmNewPassword" maxlength="50" placeholder=""
								show-password></el-input>
						</el-form-item>
					</el-col>
				</el-row> -->
				<el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">基础信息</span></el-divider>
				<el-row :gutter="26">
					<el-col :span="12">
						<el-form-item label="姓名" prop="name"
							:rules="[{ required: true, message: '姓名不能为空', trigger: 'blur' }]">
							<el-input v-model="inputForm.name"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="身份证号码" prop="idCard"
							:rules="[{ validator: validator.isCardId, trigger: 'blur' }]">
							<el-input v-model="inputForm.idCard"
								@blur="idCardOnly(inputForm.idCard, inputForm.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 v-model="inputForm.sex">
								<el-radio v-for="item in $dictUtils.getDictList('sex')" :label="item.value"
									:disabled="true" :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 v-model="inputForm.age" type="number" :disabled="true"></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 style="width: 100%" v-model="inputForm.birthday" value-format="YYYY-MM-DD"
								:disabled="true" placeholder="选择日期">
							</el-date-picker>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="政治面貌" prop="politicalOutlook" :rules="[]">
							<!--						<el-input v-model="inputForm.politicalOutlook"></el-input>-->
							<el-select v-model="inputForm.politicalOutlook" placeholder="请选择政治面貌" style="width:100%;"
								clearable>
								<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="[
							{ required: true, message: '籍贯不能为空', trigger: 'change' }
						]">
							<SelectTree ref="areaTree" :props="{
								value: 'id',             // ID字段名
								label: 'name',         // 显示名称
								children: 'children'    // 子级字段名
							}" url="/system-server/sys/area/treeData" :value="inputForm.nativePlace" :clearable="true" size="large"
								:accordion="true" @getValue="(value) => { inputForm.nativePlace = value }" />
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="民族" prop="nation" :rules="[]">
							<el-select v-model="inputForm.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="inputForm.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="联系电话" prop="mobilePhone"
							:rules="[{ required: true, message: '联系电话不能为空', trigger: 'change' }]">
							<el-input v-model="inputForm.mobilePhone"
								@blur="mobilePhoneOnly(inputForm.mobilePhone)"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="家庭住址" prop="homeAddress" :rules="[]">
							<el-input v-model="inputForm.homeAddress"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="常住住址" prop="permanentAddress" :rules="[]">
							<el-input v-model="inputForm.permanentAddress"></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="[]">
							<SFZUpLoadComponent ref="idCardFront"></SFZUpLoadComponent>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item class="star-require" label="身份证国徽面" prop="idCardBack" :rules="[]">
							<SFZUpLoadComponent ref="idCardBack"></SFZUpLoadComponent>
						</el-form-item>
					</el-col>
				</el-row>
				<!-- <el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">学历信息</span></el-divider>
				<el-row :gutter="26">
					<el-col :span="12">
						<el-form-item label="毕业院校" prop="graduatedFrom" :rules="[]">
							<el-input v-model="inputForm.graduatedFrom"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="专业" prop="speciality" :rules="[]">
							<el-input v-model="inputForm.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="inputForm.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="inputForm.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="inputForm.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="inputForm.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="inputForm.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="inputForm.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="inputForm.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-row :gutter="26">
					<el-col :span="12">
						<el-form-item label="个人简介" prop="remarks" :rules="[]">
							<el-input type="textarea" maxlength="200" show-word-limit
								v-model="inputForm.remarks"></el-input>
						</el-form-item>
					</el-col>
				</el-row>-->
				<el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">部门信息</span></el-divider>
				<el-row :gutter="26">
					<el-form v-if="status === 'audit'" style="width: 100%" :model="inputForm" ref="inputForm"
						v-loading="loading" :class="method === 'view' ? 'readonly' : ''"
						:disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'"
						label-width="110px" @submit.native.prevent>
						<el-row :gutter="26">
							<el-col :span="12">
								<el-form-item label="所属部门" prop="department" :rules="[
									{ required: true, message: '请选择所属部门', trigger: 'blur' }
								]">
									<SelectTree ref="officeTree" :props="{
										value: 'id',             // ID字段名
										label: 'name',         // 显示名称
										children: 'children'    // 子级字段名
									}" :url="`/system-server/sys/office/treeData?type=2`" :value="inputForm.department" :accordion="true"
										size="default" @getValue="(value) => { inputForm.department = value }" />
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="员工类型" prop="onJobStatus" :rules="[
									{ required: true, message: '请选择员工类型', trigger: 'blur' }
								]">
									<!--						<el-input v-model="inputForm.politicalOutlook"></el-input>-->
									<el-select v-model="inputForm.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="12">
								<el-form-item label="岗位" prop="postIdList" :rules="[]">
									<el-select v-model="inputForm.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="12">
								<el-form-item label="工号" prop="no" :rules="[
								]">
									<el-input v-model="inputForm.no" maxlength="50" placeholder=""></el-input>
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="角色" prop="roleIdList"
									:rules="[{ required: true, message: '角色不能为空', trigger: 'change' }]">
									<el-select v-model="inputForm.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="12">
								<el-form-item label="进所日期" prop="entryDate" :rules="[
									{ required: true, message: '请填写进所日期', trigger: 'blur' }
								]">
									<el-date-picker style="width: 100%" v-model="inputForm.entryDate"
										value-format="YYYY-MM-DD" placeholder="选择日期">
									</el-date-picker>
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="合同开始日期" prop="contractStartDate" :rules="[
									{ required: true, message: '请填写合同开始日期', trigger: 'blur' }
								]">
									<el-date-picker style="width: 100%" v-model="inputForm.contractStartDate"
										value-format="YYYY-MM-DD" placeholder="选择日期">
									</el-date-picker>
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="合同结束日期" prop="contractEndDate" :rules="[
									{ required: true, message: '请填写合同结束日期', trigger: 'blur' }
								]">
									<el-date-picker style="width: 100%" v-model="inputForm.contractEndDate"
										value-format="YYYY-MM-DD" placeholder="选择日期">
									</el-date-picker>
								</el-form-item>
							</el-col>
						</el-row>
					</el-form>
					<el-form v-else-if="inputForm.type !== '0'" style="width: 100%" :model="inputForm" ref="inputForm"
						v-loading="loading" :class="method === 'view' ? 'readonly' : ''"
						:disabled="status === 'audit' || status === 'taskFormDetail' || method === 'view'"
						label-width="110px" @submit.native.prevent>
						<el-row :gutter="26">
							<el-col :span="12">
								<el-form-item label="所属部门" prop="department" :rules="[
								]">
									<SelectTree ref="officeTree" :props="{
										value: 'id',             // ID字段名
										label: 'name',         // 显示名称
										children: 'children'    // 子级字段名
									}" :url="`/system-server/sys/office/treeData?type=2`" :value="inputForm.department" :accordion="true"
										size="default" @getValue="(value) => { inputForm.department = value }" />
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="员工类型" prop="onJobStatus" :rules="[
								]">
									<!--						<el-input v-model="inputForm.politicalOutlook"></el-input>-->
									<el-select @change="handleChangeJobStatus" v-model="inputForm.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="12" v-if="trialFlag">
								<el-form-item label="试用期时长（月）" prop="trialDuration" :rules="[
									// { required: true, message: '请输入试用期时长（月）', trigger: 'blur' },
									{ pattern: /^\d+(\.\d{1,2})?$/, message: '请输入数字', trigger: 'blur' }
								]">
									<el-input v-model="inputForm.trialDuration"
										oninput="this.value = this.value.replace(/[^\d.]/g, '').replace(/^(\d*\.\d{0,2}).*$/, '$1').replace(/\.{2,}/g, '.').replace(/^0+(\d)/, '$1')"
										placeholder="请输入试用期时长（月）"></el-input>
								</el-form-item>
							</el-col>
							<el-col :span="12" v-if="trialFlag">
								<el-form-item label="试用期结束日期" prop="trialEndDate" :rules="[
									// { required: true, message: '请选择试用期结束日期', trigger: 'blur' }
								]">
									<el-date-picker style="width: 100%" v-model="inputForm.trialEndDate"
										value-format="x" placeholder="选择试用期结束日期">
									</el-date-picker>
								</el-form-item>
							</el-col>

							<el-col :span="12">
								<el-form-item label="岗位" prop="postIdList" :rules="[]">
									<el-select v-model="inputForm.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="12">
								<el-form-item label="工号" prop="no" :rules="[
								]">
									<el-input v-model="inputForm.no" maxlength="50" placeholder=""></el-input>
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="角色" prop="roleIdList"
									:rules="[{ required: true, message: '角色不能为空', trigger: 'change' }]">
									<el-select v-model="inputForm.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="12">
								<el-form-item label="进所日期" prop="entryDate" :rules="[
								]">
									<el-date-picker style="width: 100%" v-model="inputForm.entryDate"
										value-format="YYYY-MM-DD" placeholder="选择日期">
									</el-date-picker>
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="合同开始日期" prop="contractStartDate" :rules="[
								]">
									<el-date-picker style="width: 100%" v-model="inputForm.contractStartDate"
										value-format="YYYY-MM-DD" placeholder="选择日期">
									</el-date-picker>
								</el-form-item>
							</el-col>
							<el-col :span="12">
								<el-form-item label="合同结束日期" prop="contractEndDate">
									<el-date-picker style="width: 100%" v-model="inputForm.contractEndDate"
										value-format="YYYY-MM-DD" placeholder="选择日期">
									</el-date-picker>
								</el-form-item>
							</el-col>
						</el-row>


					</el-form>
				</el-row>
				<el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">社保信息</span>（选填）</el-divider>
				<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="inputForm.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="inputForm.socialSecurityBankNumber"
								@change="checkBankNumber(inputForm.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="inputForm.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="inputForm.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="inputForm.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="inputForm.socialSecurityBankNumber"
								@change="checkBankNumber(inputForm.socialSecurityBankNumber)" maxlength="19"></el-input>
						</el-form-item>
					</el-col>
					<el-col :span="12">
						<el-form-item label="社保卡照片正面" prop="socialSecurityPictureFront" :rules="[]">
							<el-upload class="uploadCom"
								: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" 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="inputForm.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="inputForm.socialSecurityPictureOppositeUrl" alt="Preview Image"
									:style="{ maxWidth: '100%', maxHeight: '100%' }" />
							</el-dialog>

						</el-form-item>
					</el-col>
				</el-row>
				<el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">中信银行卡信息</span></el-divider>
				<el-row :gutter="26">
					<el-col :span="12">
						<el-form-item label="中信银行卡号" prop="zxBankCardNumber">
							<el-input v-model="inputForm.zxBankCardNumber"
								@change="checkBankNumber(inputForm.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="inputForm.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="inputForm.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="inputForm.accountHolderOppositeUrl" alt="Preview Image"
									:style="{ maxWidth: '100%', maxHeight: '100%' }" />
							</el-dialog>
						</el-form-item>
					</el-col>
				</el-row>
				<el-divider content-position="left"><i class="el-icon-document"></i> <span
						style="font-weight: 900; font-size: 16px; color: #606266;">招商银行卡信息</span></el-divider>
				<el-row :gutter="26">
					<el-col :span="12">
						<el-form-item label="招商银行卡号" prop="gsBankCardNumber">
							<el-input v-model="inputForm.gsBankCardNumber"
								@change="checkBankNumber(inputForm.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="inputForm.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="inputForm.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="inputForm.gsAccountHolderOppositeUrl" alt="Preview Image"
									:style="{ maxWidth: '100%', maxHeight: '100%' }" />
							</el-dialog>
						</el-form-item>
					</el-col>
				</el-row>
				<!-- 教育经历 -->
				<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()">新增</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-model="activeNames[0]" @change="handleEduInfoChange"
									v-if="inputForm.eduInfoList && inputForm.eduInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.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;">&nbsp;|&nbsp;</span>
													<span style="font-size: 14px;"> {{
														handleDateFormatter(item.startDate) }}</span>
													<span style="color: #b0b0b0;font-size: 12px;">&nbsp;至&nbsp;</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.id)">修改</el-button>
														<el-button type="text" @click.stop="delEdu(item.id)"
															style="color: red;">删除</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">
													</AttachmentView>
												</el-descriptions-item>
												<el-descriptions-item label="学位证明：">
													<AttachmentView :fileList="item.degreeFile">
													</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-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()">新增</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]" @change="handleEduInfoChange"
									v-if="inputForm.workInfoList && inputForm.workInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.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;">&nbsp;|&nbsp;</span>
													<span style="font-size: 14px;"> {{
														handleDateFormatter(item.startDate) }}</span>
													<span style="color: #b0b0b0;font-size: 12px;">&nbsp;至&nbsp;</span>
													<span style="font-size: 14px;"> {{
														handleDateFormatter(item.endDate) }}</span>

													<div style="margin-left: auto;">
														<el-button type="text"
															@click.stop="editWork(item.id)">修改</el-button>
														<el-button type="text" @click.stop="delWork(item.id)"
															style="color: red;">删除</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-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()">新增</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]" @change="handleEduInfoChange"
									v-if="inputForm.trainingInfoList && inputForm.trainingInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.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.id)">修改</el-button>
														<el-button type="text" @click.stop="delTraining(item.id)"
															style="color: red;">删除</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 :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-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()">新增</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]" @change="handleEduInfoChange"
									v-if="inputForm.certificateInfoList && inputForm.certificateInfoList.length > 0">
									<div style="padding: 0 30px;"
										v-for="(item, index) in inputForm.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.id)">修改</el-button>
														<el-button type="text" @click.stop="delCertificate(item.id)"
															style="color: red;">删除</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 :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-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()">新增</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="inputForm.skillInfoList && inputForm.skillInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.skillInfoList">
										<el-collapse-item :name="item.id">
											<template #title="{ isActive }">
												<div class="collapseTitle">
													<span style="font-size: 16px;"> {{
														$dictUtils.getDictLabel('professional_certificate',
															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.id)">修改</el-button>
														<el-button type="text" @click.stop="delSkill(item.id)"
															style="color: red;">删除</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-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()">新增</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="inputForm.languageInfoList && inputForm.languageInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.languageInfoList">
										<el-collapse-item :name="item.id">
											<template #title="{ isActive }">
												<div class="collapseTitle">
													<span style="font-size: 16px;"> {{
														$dictUtils.getDictLabel("user_info_language",
															item.language, '-') }}</span>
													<div style="margin-left: auto;">
														<el-button type="text"
															@click.stop="editLanguage(item.id)">修改</el-button>
														<el-button type="text" @click.stop="delLanguage(item.id)"
															style="color: red;">删除</el-button>
													</div>
												</div>
											</template>
											<el-descriptions title="" border>
												<el-descriptions-item label="语种：">{{
													$dictUtils.getDictLabel("user_info_language",
														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 :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-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()">新增</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="inputForm.familyInfoList && inputForm.familyInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.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.id)">修改</el-button>
														<el-button type="text" @click.stop="delFamily(item.id)"
															style="color: red;">删除</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-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()">新增</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="inputForm.rewardInfoList && inputForm.rewardInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.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.id)">修改</el-button>
														<el-button type="text" @click.stop="delReward(item.id)"
															style="color: red;">删除</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 :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-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="addLaborContract()">新增</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="inputForm.laborContractInfoList && inputForm.laborContractInfoList.length > 0">
									<div style="padding: 0 30px;"
										v-for="(item, index) in inputForm.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 style="margin-left: auto;">
														<el-button type="text"
															@click.stop="editLaborContract(item.id)">修改</el-button>
														<el-button type="text" @click.stop="delLaborContract(item.id)"
															style="color: red;">删除</el-button>
													</div>
												</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-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()">新增</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="inputForm.societyInfoList && inputForm.societyInfoList.length > 0">
									<div style="padding: 0 30px;" v-for="(item, index) in inputForm.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)">修改</el-button>
														<el-button type="text" @click.stop="delSociety(item.id)"
															style="color: red;">删除</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-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()">新增</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="inputForm.performanceInfoList && inputForm.performanceInfoList.length > 0">
									<div style="padding: 0 30px;"
										v-for="(item, index) in inputForm.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)">修改</el-button>
														<el-button type="text" @click.stop="delPerformance(item.id)"
															style="color: red;">删除</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-form>
			<template #footer>
				<span class="dialog-footer">
					<el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
					<el-button v-if="method === 'edit'" type="primary" icon="el-icon-circle-check"
						@click="doSubmit()">确定</el-button>
				</span>
			</template>
			<!-- 教育经历 -->
			<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>
			<!-- 劳动合同 -->
			<LaborContractInfo ref="laborContractInfo" @addLaborContractInfo="handleAddLaborContractInfo">
			</LaborContractInfo>
			<!-- 社会及行业职务 -->
			<SocietyInfo ref="societyInfo" @addSocietyInfo="handleAddSocietyInfo">
			</SocietyInfo>
			<!-- 工作业绩 -->
			<PerformanceInfo ref="performanceInfo" @addPerformanceInfo="handleAddPerformanceInfo"></PerformanceInfo>

		</el-dialog>
	</div>
</template>

<script>
import dayjs from 'dayjs'
import SelectTree from '@/components/treeSelect/treeSelect.vue'
import enrollmentRegistrationService from '@/api/human/enrollment/EnrollmentRegistrationService'
import OSSSerivce, {
	httpRequest,
	fileName,
	toHref,
} from '@/api/sys/OSSService'
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 AttachmentView from './components/AttachmentView'
import LaborContractInfo from "./components/LaborContractInfo"
import SocietyInfo from "./components/SocietyInfo.vue"
import PerformanceInfo from "./components/PerformanceInfo.vue"
import SFZUpLoadComponent from '@/views/common/SFZUpLoadComponent'

import postService from "@/api/sys/postService";
import roleService from "@/api/sys/roleService";
export default {
	props: {
		businessId: {
			type: String,
			default: ''
		},
		formReadOnly: {
			type: Boolean,
			default: false
		},
		status: {
			type: String,
			default: ''
		}
	},
	data() {
		return {
			fileType: ['jpg', 'jpeg', 'png', 'webp'],
			trialFlag: false,
			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,
			title: '',
			method: '',
			visible: false,
			loading: false,
			showViewer: false,
			inputForm: {
				idCardFront: [],
				idCardBack: [],
				wageCardId: '',//银行卡信息id
				zxBankCardNumber: '',//银行卡信息
				zxAccountHolder: '',
				accountHolderFront: '',
				accountHolderFrontUrl: '',
				accountHolderOpposite: '',
				accountHolderOppositeUrl: '',
				gsAccountHolder: '',
				gsBankCardNumber: '',
				gsAccountHolderFront: '',
				gsAccountHolderFrontUrl: '',
				gsAccountHolderOpposite: '',
				gsAccountHolderOppositeUrl: '',

				id: '',
				userId: '',
				name: '',
				sex: '',
				age: '',
				birthday: '',
				politicalOutlook: '',
				nativePlace: '',
				nation: '',
				maritalStatus: '',
				mobilePhone: '',
				idCard: '',
				homeAddress: '',
				permanentAddress: '',
				graduatedFrom: '',
				speciality: '',
				startTime: '',
				endTime: '',
				education: '',
				educationNature: '',
				graduatedOrNot: '',
				englishLevel: '',
				ncre: '',
				department: '',
				entryDate: '',
				contractStartDate: '',
				contractEndDate: '',
				remarks: '',
				type: '',
				onJobStatus: '',
				no: "",
				trialDuration: "",
				trialEndDate: "",
				socialSecurityNumber: '',
				socialSecurityBankNumber: '',
				socialSecurityPictureFront: '',
				socialSecurityPictureFrontUrl: '',
				socialSecurityPictureOpposite: '',
				socialSecurityPictureOppositeUrl: '',
				roleIdList: [],
				postIdList: [],
				loginName: "",
				confirmNewPassword: "",//确认密码
				newPassword: "",// 密码
				//教育经历
				eduInfoList: [

				],
				// 工作经历
				workInfoList: [

				],
				// 培训经历
				trainingInfoList: [

				],
				// 执业资格证书
				certificateInfoList: [

				],
				// 职称证书
				skillInfoList: [

				],
				languageInfoList: [

				],
				familyInfoList: [

				],
				rewardInfoList: [
				],
				laborContractInfoList: [],
				societyInfoList: [],
				performanceInfoList: []
			},
			keyWatch: '',
			roleList: [],
			postList: [],
			changeFlag: [
				true, true, true, true, true, true, true, true, true, true, true
			],
			activeNames: [],

		}
	},
	created() {
		this.ossService = new OSSSerivce()
	},
	components: {
		SelectTree,
		EducationInfo,
		WorkInfo,
		TrainingInfo,
		CertificateInfo,
		SkillInfo,
		LanguageInfo,
		FamilyInfo,
		RewardInfo,
		AttachmentView,
		LaborContractInfo,
		SocietyInfo,
		PerformanceInfo,
		SFZUpLoadComponent
	},
	computed: {
		bus: {
			get() {
				return this.businessId
			},
			set(val) {
				this.businessId = val
			}
		},
		name() {
			return this.$store.state.user.name
		},
		userId() {
			return this.$store.state.user.id
		}
	},
	watch: {
		'keyWatch': {
			handler(newVal) {
				if (this.commonJS.isNotEmpty(this.bus)) {
					this.init('', this.bus)
				} else {
					this.$nextTick(() => {
						this.$refs.inputForm.resetFields()
					})
				}
			}
		},
		'loading': {
			handler(newVal) {
				this.$emit('changeLoading', newVal)
			}
		}
	},
	methods: {
		validatePass2(rule, value, callback) {
			if (value !== this.inputForm.newPassword) {
				callback(new Error("两次输入密码不一致!"));
			} else {
				callback();
			}

		},
		handleUploadSuccess(response, file, fileList) {
			return this.handleAvatarSuccess(response, file, fileList, null, 'front')
		},
		handleUploadSuccess2(response, file, fileList) {
			return this.handleAvatarSuccess2(response, file, fileList, null, 'front')
		},
		handleRemove(file, fileList) {
			console.log(file);
			this.hideUploadEdit = false
			// 如果需要删除图片信息，可以根据file或其他标识从相应的数据结构中删除信息
			const fileIndex = this.fileList.indexOf(file);
			if (fileIndex !== -1) {
				this.fileList.splice(fileIndex, 1); // 从fileList中删除该图片信息
			}
		},
		handleRemove2(file) {
			console.log(file);
			this.hideUploadEdit = false
			// 如果需要删除图片信息，可以根据file或其他标识从相应的数据结构中删除信息
			const fileIndex = this.fileList2.indexOf(file);
			if (fileIndex !== -1) {
				this.fileList2.splice(fileIndex, 1); // 从fileList中删除该图片信息
			}
		},
		handleDownload(file) {
			let file2 = {
				url: this.inputForm.socialSecurityPictureFront
			}
			toHref(file2)
		},
		handleDownload2(file) {
			let file2 = {
				url: this.inputForm.socialSecurityPictureOpposite
			}
			toHref(file2)
		},
		handlePictureCardPreview(file) {
			this.dialogImageUrl = file.url;
			this.inputForm.socialSecurityPictureFrontUrl = file.url
			console.log('file.url1', file.url)
			this.dialogVisible = true;
		},
		handlePictureCardPreview2(file) {
			this.dialogImageUrl = file.url;
			this.inputForm.socialSecurityPictureOppositeUrl = file.url
			this.dialogVisible2 = true;
		},
		async httpRequest(file) {
			await httpRequest(file, fileName(file), this.directory, this.maxValue)
		},

		getKeyWatch(keyWatch) {
			this.keyWatch = keyWatch
		},
		getUpload() {
		},
		init(method, id) {
			this.method = method
			this.inputForm = {
				wageCardId: '',//银行卡信息id
				zxBankCardNumber: '',//银行卡信息
				zxAccountHolder: '',
				accountHolderFront: '',
				accountHolderFrontUrl: '',
				accountHolderOpposite: '',
				accountHolderOppositeUrl: '',
				gsAccountHolder: '',
				gsBankCardNumber: '',
				gsAccountHolderFront: '',
				gsAccountHolderFrontUrl: '',
				gsAccountHolderOpposite: '',
				gsAccountHolderOppositeUrl: '',
				id: '',
				userId: '',
				name: '',
				sex: '',
				age: '',
				birthday: '',
				politicalOutlook: '',
				nativePlace: '',
				nation: '',
				maritalStatus: '',
				mobilePhone: '',
				idCard: '',
				homeAddress: '',
				permanentAddress: '',
				graduatedFrom: '',
				speciality: '',
				startTime: '',
				endTime: '',
				education: '',
				educationNature: '',
				graduatedOrNot: '',
				englishLevel: '',
				ncre: '',
				department: '',
				entryDate: '',
				contractStartDate: '',
				contractEndDate: '',
				remarks: '',
				type: '',
				no: "",
				onJobStatus: '',
				trialDuration: "",
				trialEndDate: "",
				socialSecurityNumber: '',
				socialSecurityBankNumber: '',
				socialSecurityPictureFront: '',
				socialSecurityPictureFrontUrl: '',
				socialSecurityPictureOpposite: '',
				socialSecurityPictureOppositeUrl: '',
				roleIdList: [],
				postIdList: [],
				ddId: '',
				eduInfoList: [],
				workInfoList: [],
				trainingInfoList: [],
				certificateInfoList: [],
				skillInfoList: [],
				languageInfoList: [],
				familyInfoList: [],
				rewardInfoList: [],
				laborContractInfoList: [],
				societyInfoList: [],
				performanceInfoList: [],
				idCardFront: [],
				idCardBack: [],
				loginName: ""
			}
			if (method === 'add') {
				this.title = `新建入职登记`
			} else if (method === 'edit') {
				this.title = '修改入职登记信息'
			} else if (method === 'view') {
				this.title = '查看入职登记信息'
			}
			this.inputForm.id = id
			this.visible = true
			this.loading = false

			this.$nextTick(() => {
				this.loading = true
				this.$refs.idCardBack.clearUpload()
				this.$refs.idCardFront.clearUpload()
				enrollmentRegistrationService.findById(this.inputForm.id).then(async (data) => {
					this.fileList = []
					this.fileList2 = []
					if (this.status === 'audit' || this.status === 'taskFormDetail') {
						method = 'view'
					}
					this.inputForm = this.recover(this.inputForm, data)
					this.inputForm = JSON.parse(JSON.stringify(this.inputForm))

					if (this.inputForm.onJobStatus == 1) {
						this.trialFlag = true
					} else {
						this.trialFlag = false
					}

					if (this.commonJS.isEmpty(this.inputForm.roleIdList)) {
						this.inputForm.roleIdList = []
					}
					if (this.commonJS.isEmpty(this.inputForm.postIdList)) {
						this.inputForm.postIdList = []
					}
					// 教育经历
					if (this.commonJS.isEmpty(this.inputForm.eduInfoList)) {
						this.inputForm.eduInfoList = []
					}
					// 工作经历
					if (this.commonJS.isEmpty(this.inputForm.workInfoList)) {
						this.inputForm.workInfoList = []
					}
					// 培训经历
					if (this.commonJS.isEmpty(this.inputForm.trainingInfoList)) {
						this.inputForm.trainingInfoList = []
					}
					// 资质证书
					if (this.commonJS.isEmpty(this.inputForm.certificateInfoList)) {
						this.inputForm.certificateInfoList = []
					}
					// 职称证书
					if (this.commonJS.isEmpty(this.inputForm.skillInfoList)) {
						this.inputForm.skillInfoList = []
					}
					// 外语语种
					if (this.commonJS.isEmpty(this.inputForm.languageInfoList)) {
						this.inputForm.languageInfoList = []
					}
					// 家庭情况
					if (this.commonJS.isEmpty(this.inputForm.familyInfoList)) {
						this.inputForm.familyInfoList = []
					}
					// 表彰与奖励
					if (this.commonJS.isEmpty(this.inputForm.rewardInfoList)) {
						this.inputForm.rewardInfoList = []
					}
					// 劳动合同
					if (this.commonJS.isEmpty(this.inputForm.laborContractInfoList)) {
						this.inputForm.laborContractInfoList = []
					}
					// 社会及行业职务
					if (this.commonJS.isEmpty(this.inputForm.societyInfoList)) {
						this.inputForm.societyInfoList = []
					}
					// 工作业绩
					if (this.commonJS.isEmpty(this.inputForm.performanceInfoList)) {
						this.inputForm.performanceInfoList = []
					}
					if (this.commonJS.isEmpty(this.inputForm.idCardFront)) {
						this.inputForm.idCardFront = []
					}

					if (this.commonJS.isEmpty(this.inputForm.idCardBack)) {
						this.inputForm.idCardBack = []
					}

					this.inputForm.certificateInfoList.forEach(temp => {
						this.changeType(temp.type, temp)
					})

					console.log(this.inputForm.idCardFront);
					console.log(this.inputForm.idCardFront);
					console.log(this.inputForm.idCardFront);
					console.log(this.inputForm.idCardBack);
					console.log(this.inputForm.idCardBack);

					this.$refs.idCardFront.newUpload('edit', this.inputForm.idCardFront, 'idCard', null, null, null, null, null, [...this.fileType])
					this.$refs.idCardBack.newUpload('edit', this.inputForm.idCardBack, 'idCard', null, null, null, null, null, [...this.fileType])

					// 展开所有
					this.activeNames[0] = this.inputForm.eduInfoList.map(item => item.id)
					this.activeNames[1] = this.inputForm.workInfoList.map(item => item.id)
					this.activeNames[2] = this.inputForm.trainingInfoList.map(item => item.id)
					this.activeNames[3] = this.inputForm.certificateInfoList.map(item => item.id)
					this.activeNames[4] = this.inputForm.skillInfoList.map(item => item.id)
					this.activeNames[5] = this.inputForm.languageInfoList.map(item => item.id)
					this.activeNames[6] = this.inputForm.familyInfoList.map(item => item.id)
					this.activeNames[7] = this.inputForm.rewardInfoList.map(item => item.id)
					this.activeNames[8] = this.inputForm.laborContractInfoList.map(item => item.id)
					this.activeNames[9] = this.inputForm.societyInfoList.map(item => item.id)
					this.activeNames[10] = this.inputForm.performanceInfoList.map(item => item.id)

					if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityPictureFront)) {
						await this.ossService.getTemporaryUrl(this.inputForm.socialSecurityPictureFront).then((data) => {
							let file = {
								url: data
							}
							this.fileList.push(file)
						})
					}
					if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityPictureOpposite)) {
						await this.ossService.getTemporaryUrl(this.inputForm.socialSecurityPictureOpposite).then((data) => {
							let file = {
								url: data
							}
							this.fileList2.push(file)
						})
					}
					if (this.commonJS.isNotEmpty(this.inputForm.accountHolderFront)) {

						await this.ossService.getTemporaryUrl(this.inputForm.accountHolderFront).then((data) => {
							console.log('data', data)
							let file = {
								url: data
							}
							this.bankFileList.push(file)
						})
					}
					if (this.commonJS.isNotEmpty(this.inputForm.accountHolderOpposite)) {
						await this.ossService.getTemporaryUrl(this.inputForm.accountHolderOpposite).then((data) => {
							let file = {
								url: data
							}
							this.bankFileList2.push(file)
						})
					}
					if (this.commonJS.isNotEmpty(this.inputForm.gsAccountHolderFront)) {
						await this.ossService.getTemporaryUrl(this.inputForm.gsAccountHolderFront).then((data) => {
							let file = {
								url: data
							}
							this.gsFileList.push(file)
						})
					}
					if (this.commonJS.isNotEmpty(this.inputForm.gsAccountHolderOpposite)) {
						await this.ossService.getTemporaryUrl(this.inputForm.gsAccountHolderOpposite).then((data) => {
							let file = {
								url: data
							}
							this.gsFileList2.push(file)
						})
					}
					if (this.inputForm.type == 5) {
						roleService.list2(this.inputForm.department).then((data) => {
							this.roleList = data
						})
						postService.list2(this.inputForm.department).then((data) => {
							this.postList = data
							console.log('this.postList', this.postList)

						})
					}

					this.loading = false
				})

			})
		},
		// 表单提交
		doSubmit() {
			this.$refs['inputForm'].validate((valid) => {
				if (valid) {
					this.loading = true
					// if (this.commonJS.isEmpty(this.inputForm.idCard)) {
					// 	this.loading = false
					// 	this.$message.error('身份证号码不能为空')
					// 	throw new Error('身份证号码不能为空')
					// }
					// if (!this.validateXG.isPhoneOrMobile(this.inputForm.mobilePhone)) {
					// 	this.$message.error('”联系电话“填写不正确，请重新填写')
					// 	this.loading = false
					// 	this.inputForm.mobilePhone = ''
					// 	throw new Error('”联系电话“填写不正确，请重新填写')
					// }
					//
					// if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityNumber) && (this.commonJS.isEmpty(this.inputForm.socialSecurityBankNumber) || this.commonJS.isEmpty(this.inputForm.socialSecurityPictureFront))) {
					// 	this.loading = false
					// 	this.$message.error('社保银行卡号与社保卡照片不能为空');
					// 	throw new Error('社保银行卡号与社保卡照片不能为空')
					// }
					// if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityBankNumber) && (this.commonJS.isEmpty(this.inputForm.socialSecurityNumber) || this.commonJS.isEmpty(this.inputForm.socialSecurityPictureFront))) {
					// 	this.loading = false
					// 	this.$message.error('社保编号与社保卡照片不能为空');
					// 	throw new Error('社保编号与社保卡照片不能为空')
					// }
					// if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityPictureFront) && (this.commonJS.isEmpty(this.inputForm.socialSecurityNumber) || this.commonJS.isEmpty(this.inputForm.socialSecurityBankNumber))) {
					// 	this.loading = false
					// 	this.$message.error('社保编号与社保银行卡号不能为空');
					// 	throw new Error('社保编号与社保银行卡号不能为空')
					// }
					// this.inputForm.id = this.businessId
					this.inputForm.idCardFront = this.$refs.idCardFront.getDataList()
					this.inputForm.idCardBack = this.$refs.idCardBack.getDataList()
					enrollmentRegistrationService.updateInfo(this.inputForm).then((data) => {
						this.close()
						this.$message.success(data.msg)
						this.$emit('refreshDataList')
						this.loading = false
					}).catch(() => {
						this.loading = false
					})
				}
			})
		},
		close() {
			this.$refs.inputForm.resetFields()
			this.fileList = []
			this.fileList2 = []
			this.bankFileList = []
			this.bankFileList2 = []
			this.gsFileList = []
			this.gsFileList2 = []
			this.visible = false
		},
		reapplyForm(callback) {
			this.loading = true
			enrollmentRegistrationService.findById(this.inputForm.id).then((data) => {
				if (data.type !== '4') { // 审核状态不是“驳回”，就弹出提示
					this.loading = false
					this.$message.error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
					throw new Error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
				} else {
					this.startForm(callback)
				}
			})
		},
		// 送审
		async startForm(callback) {
			this.$refs['inputForm'].validate(async (valid) => {
				if (valid) {
					this.loading = true

					if (this.commonJS.isEmpty(this.inputForm.idCard)) {
						this.loading = false
						this.$message.error('身份证号码不能为空')
						throw new Error('身份证号码不能为空')
					}
					if (!this.validateXG.isPhoneOrMobile(this.inputForm.mobilePhone)) {
						this.$message.error('”联系电话“填写不正确，请重新填写')
						this.loading = false
						this.inputForm.mobilePhone = ''
						throw new Error('”联系电话“填写不正确，请重新填写')
					}

					if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityNumber) && (this.commonJS.isEmpty(this.inputForm.socialSecurityBankNumber) || this.commonJS.isEmpty(this.inputForm.socialSecurityPictureFront))) {
						this.loading = false
						this.$message.error('社保银行卡号与社保卡照片不能为空');
						throw new Error('社保银行卡号与社保卡照片不能为空')
					}
					if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityBankNumber) && (this.commonJS.isEmpty(this.inputForm.socialSecurityNumber) || this.commonJS.isEmpty(this.inputForm.socialSecurityPictureFront))) {
						this.loading = false
						this.$message.error('社保编号与社保卡照片不能为空');
						throw new Error('社保编号与社保卡照片不能为空')
					}
					if (this.commonJS.isNotEmpty(this.inputForm.socialSecurityPictureFront) && (this.commonJS.isEmpty(this.inputForm.socialSecurityNumber) || this.commonJS.isEmpty(this.inputForm.socialSecurityBankNumber))) {
						this.loading = false
						this.$message.error('社保编号与社保银行卡号不能为空');
						throw new Error('社保编号与社保银行卡号不能为空')
					}
					this.inputForm.type = '2'
					enrollmentRegistrationService.save(this.inputForm).then((data) => {
						this.inputForm.title = `${this.$store.state.user.name} 发起了 [${this.inputForm.name} - 入职登记]`
						this.inputForm.id = data.businessId
						callback(data.businessTable, data.businessId, this.inputForm)
						this.$refs.inputForm.resetFields()
						this.loading = false
					}).catch(() => {
						this.$refs.inputForm.resetFields()
						this.loading = false
					})
				} else {
					this.loading = false
				}
			})
		},

		// 通过
		async agreeForm(callback) {
			this.loading = true
			enrollmentRegistrationService.findById(this.inputForm.id).then((data) => {
				if (data.type !== '2') { // 审核状态不是“审核中”，就弹出提示
					this.loading = false
					this.$message.error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
					throw new Error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
				} else {
					this.$refs['inputForm'].validate(async (valid) => {
						if (valid) {
							this.loading = true
							this.inputForm.type = '5'
							console.log('this.inputForm', this.inputForm)
							enrollmentRegistrationService.save(this.inputForm).then((data) => {
								callback(data.businessTable, data.businessId, this.inputForm)
								this.loading = false
							}).catch(() => {
								this.loading = false
							})
						} else {
							this.loading = false
						}
					})
				}
			})
		},
		// 修改状态
		updateStatusById(type, callback) {
			if (type === 'reject') {
				this.loading = true
				enrollmentRegistrationService.findById(this.inputForm.id).then((data) => {
					if (data.type !== '2') { // 审核状态不是“审核中”，就弹出提示
						this.loading = false
						this.$message.error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
						throw new Error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
					} else {
						this.inputForm.type = '4'
						enrollmentRegistrationService.updateStatusById(this.inputForm).then(() => {
							this.loading = false
							callback()
						})
					}
				})
			} else if (type === 'hold') {
				this.loading = true
				enrollmentRegistrationService.findById(this.inputForm.id).then((data) => {
					if (data.type !== '4') { // 审核状态不是“驳回”，就弹出提示
						this.loading = false
						this.$message.error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
						throw new Error('任务数据已发生改变或不存在，请在待办任务中确认此任务是否存在')
					} else {
						this.inputForm.type = '1'
						enrollmentRegistrationService.updateStatusById(this.inputForm).then(() => {
							this.loading = false
							callback()
						})
					}
				})
			}
		},
		handleChangeJobStatus(val) {
			if (val == 1) {
				this.trialFlag = true
			} else {
				this.trialFlag = false

			}
		},
		//身份证号码唯一性判断
		idCardOnly(idCard, id) {
			if (this.commonJS.isNotEmpty(idCard)) {

				enrollmentRegistrationService.findIdCardOnly(idCard, this.inputForm.userId).then((data) => {
					if (data !== 0) {
						this.$message.error('身份证号码已存在，请重新确认')
						this.inputForm.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.inputForm.nativePlace = regionCode
						this.inputForm.age = age
						this.inputForm.sex = sex
						this.inputForm.birthday = birth
						console.log(regionCode, age, sex, birth);

						return { age, sex, birth }
					}
				})
			}
		},
		//联系电话唯一性判断
		mobilePhoneOnly(mobilePhone) {
			if (this.commonJS.isNotEmpty(mobilePhone)) {
				if (!this.validateXG.isPhoneOrMobile(mobilePhone)) {
					this.$message.error('”联系电话“填写不正确，请重新填写')
					this.loading = false
					this.inputForm.mobilePhone = ''
					throw new Error('”联系电话“填写不正确，请重新填写')
				}
				enrollmentRegistrationService.findMobilePhoneOnly(mobilePhone).then((data) => {
					if (data !== 0) {
						this.$message.error('联系电话已存在，请重新确认')
						this.inputForm.mobilePhone = ''
						throw new Error('联系电话已存在，请重新确认')
					}
				})
			}
		},
		checkBankNumber(bankNumber, type) {
			if (!this.validateXG.isBankNum(bankNumber)) {
				if (type === 'zx') {
					this.inputForm.zxBankCardNumber = ''
				} else if (type === 'gs') {
					this.inputForm.gsBankCardNumber = ''
				} else {
					this.$message.error('请输入正确的社保银行卡号')
					this.inputForm.socialSecurityBankNumber = ''
					throw new Error('请输入正确的社保银行卡号')
				}
				this.$message.error('请输入正确的银行卡号')
				throw new Error('请输入正确的银行卡号')
			}
		},
		handleAvatarSuccess(res, file, fileList, index, val) {
			console.log('foleList', fileList)
			if (val === 'front') {
				this.inputForm.socialSecurityPictureFront = '/' + res.url
				this.inputForm.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.inputForm.socialSecurityPictureOpposite = '/' + res.url
				this.inputForm.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.inputForm.socialSecurityNumber = this.inputForm.socialSecurityNumber.replace(/[\u4e00-\u9fa5]/g, '');
		},
		bankHandleUploadSuccess(response, file, fileList) {
			return this.bankHandleAvatarSuccess(response, file, fileList, null, 'front')
		},
		bankHandleAvatarSuccess(res, file, fileList, index, val) {
			if (val === 'front') {
				this.inputForm.accountHolderFront = '/' + res.url
				this.inputForm.accountHolderFrontUrl = res.lsUrl
			}
			this.bankHideUploadEdit = true
			this.$forceUpdate()
		},
		bankHandlePictureCardPreview(file) {
			this.inputForm.accountHolderFrontUrl = file.url
			this.bankDialogVisible = true;
		},
		bankHandleDownload(file) {
			let file2 = {
				url: this.inputForm.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.inputForm.accountHolderFront = ""
			}
		},
		bankHandleUploadSuccess2(response, file, fileList) {
			return this.bankHandleAvatarSuccess2(response, file, fileList, null, 'front')
		},
		bankHandleAvatarSuccess2(res, file, fileList, index, val) {
			if (val === 'front') {
				this.inputForm.accountHolderOpposite = '/' + res.url
				this.inputForm.accountHolderOppositeUrl = res.lsUrl
			}
			this.bankHideUploadEdit2 = true
			this.$forceUpdate()
		},
		bankHandlePictureCardPreview2(file) {
			this.inputForm.accountHolderOppositeUrl = file.url
			this.bankDialogVisible2 = true;
		},
		bankHandleDownload2(file) {
			let file2 = {
				url: this.inputForm.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.inputForm.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.inputForm.gsAccountHolderFront = '/' + res.url
				this.inputForm.gsAccountHolderFrontUrl = res.lsUrl
			}
			this.hideUploadEdit = true
			this.$forceUpdate()
		},
		gsHandleAvatarSuccess2(res, file, fileList, index, val) {
			if (val === 'front') {
				this.inputForm.gsAccountHolderOpposite = '/' + res.url
				this.inputForm.gsAccountHolderOppositeUrl = res.lsUrl
			}
			this.hideUploadEdit2 = true
			this.$forceUpdate()
		},
		gsHandlePictureCardPreview(file) {
			this.dialogImageUrl = file.url;
			this.inputForm.gsAccountHolderFrontUrl = file.url
			this.gsDialogVisible = true;
		},
		gsHandlePictureCardPreview2(file) {
			this.inputForm.gsAccountHolderOppositeUrl = file.url
			this.gsDialogVisible2 = true;
		},
		gsHandleDownload(file) {
			let file2 = {
				url: this.inputForm.gsAccountHolderFront
			}
			toHref(file2)
		},
		gsHandleDownload2(file) {
			let file2 = {
				url: this.inputForm.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.inputForm.gsAccountHolderFront = ""
			}
		},
		gsHandleRemove2(file, fileList) {
			this.gsHideUploadEdit2 = false
			// 如果需要删除图片信息，可以根据file或其他标识从相应的数据结构中删除信息
			const fileIndex = this.gsFileList2.indexOf(file);
			if (fileIndex !== -1) {
				this.gsFileList2.splice(fileIndex, 1); // 从fileList中删除该图片信息
				this.inputForm.gsAccountHolderOpposite = ""
			}
		},
		// 教育经历处理
		handleEduInfoChange(val) {
			console.log(val);
		},
		// 教育经历
		addEdu() {
			this.$refs.EducationInfo.init("add", null, this.inputForm.userId)
		},
		editEdu(id) {
			this.$refs.EducationInfo.init("edit", id, this.inputForm.userId)
		},
		delEdu(id) {
			this.$confirm('确定删除此条教育经历信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteEduInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetEduInfo()
				})

			}).catch(() => {

			});
		},
		handleAddEduInfo(id) {
			this.handleGetEduInfo()
		},
		handleGetEduInfo() {
			enrollmentRegistrationService.findEduInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.eduInfoList = res
				this.activeNames[0] = this.inputForm.eduInfoList.map(item => item.id)
			})
		},
		// 工作经历处理
		addWork() {
			this.$refs.WorkInfo.init("add", null, this.inputForm.userId)
		},
		editWork(id) {
			this.$refs.WorkInfo.init("edit", id, this.inputForm.userId)
		},
		delWork(id) {
			this.$confirm('确定删除此条工作经历信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteWorkInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetWorkInfo()
				})

			}).catch(() => {

			});
		},
		handleAddWorkInfo(id) {
			this.handleGetWorkInfo()
		},
		handleGetWorkInfo() {
			enrollmentRegistrationService.findWorkInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.workInfoList = res
				this.activeNames[1] = this.inputForm.workInfoList.map(item => item.id)
			})
		},
		//培训经历处理
		addTraining() {
			this.$refs.TrainingInfo.init("add", null, this.inputForm.userId)
		},
		editTraining(id) {
			this.$refs.TrainingInfo.init("edit", id, this.inputForm.userId)
		},
		delTraining(id) {
			this.$confirm('确定删除此条培训经历信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteTrainingInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetTrainingInfo()
				})

			}).catch(() => {

			});
		},
		handleAddTrainingInfo(id) {
			this.handleGetTrainingInfo()
		},
		handleGetTrainingInfo() {
			enrollmentRegistrationService.findTrainingInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.trainingInfoList = res
				this.activeNames[2] = this.inputForm.trainingInfoList.map(item => item.id)
			})
		},
		//执业资格证书处理
		addCertificate() {
			this.$refs.certificateInfo.init("add", null, this.inputForm.userId)
		},
		editCertificate(id) {
			this.$refs.certificateInfo.init("edit", id, this.inputForm.userId)
		},
		delCertificate(id) {
			this.$confirm('确定删除此条执业资格证书信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteCertificateInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetCertificateInfo()
				})

			}).catch(() => {

			});
		},
		handleAddCertificateInfo(id) {
			this.handleGetCertificateInfo()
		},
		handleGetCertificateInfo() {
			enrollmentRegistrationService.findCertificateInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.certificateInfoList = res
				this.activeNames[3] = this.inputForm.certificateInfoList.map(item => item.id)
			})
		},
		//职称证书处理
		addSkill() {
			this.$refs.skillInfo.init("add", null, this.inputForm.userId)
		},
		editSkill(id) {
			this.$refs.skillInfo.init("edit", id, this.inputForm.userId)
		},
		delSkill(id) {
			this.$confirm('确定删除此条职称证书信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteSkillInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetSkillInfo()
				})

			}).catch(() => {

			});
		},
		handleAddSkillInfo(id) {
			this.handleGetSkillInfo()
		},
		handleGetSkillInfo() {
			enrollmentRegistrationService.findSkillInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.skillInfoList = res
				this.activeNames[4] = this.inputForm.skillInfoList.map(item => item.id)
			})
		},
		//外语语种处理
		addLanguage() {
			this.$refs.languageInfo.init("add", null, this.inputForm.userId)
		},
		editLanguage(id) {
			this.$refs.languageInfo.init("edit", id, this.inputForm.userId)
		},
		delLanguage(id) {
			this.$confirm('确定删除此条外语语种信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteLanguageInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetLanguageInfo()
				})

			}).catch(() => {

			});
		},
		handleAddLanguageInfo(id) {
			this.handleGetLanguageInfo()
		},
		handleGetLanguageInfo() {
			enrollmentRegistrationService.findLanguageInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.languageInfoList = res
				this.activeNames[5] = this.inputForm.languageInfoList.map(item => item.id)
			})
		},
		//家庭情况处理
		addFamily() {
			this.$refs.familyInfo.init("add", null, this.inputForm.userId)
		},
		editFamily(id) {
			this.$refs.familyInfo.init("edit", id, this.inputForm.userId)
		},
		delFamily(id) {
			this.$confirm('确定删除此条家庭情况信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteFamilyInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetFamilyInfo()
				})

			}).catch(() => {

			});
		},
		handleAddFamilyInfo(id) {
			this.handleGetFamilyInfo()
		},
		handleGetFamilyInfo() {
			enrollmentRegistrationService.findFamilyInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.familyInfoList = res
				this.activeNames[6] = this.inputForm.familyInfoList.map(item => item.id)
			})
		},
		//表彰与奖励处理
		addReward() {
			this.$refs.rewardInfo.init("add", null, this.inputForm.userId)
		},
		editReward(id) {
			this.$refs.rewardInfo.init("edit", id, this.inputForm.userId)
		},
		delReward(id) {
			this.$confirm('确定删除此条奖项信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteRewardInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetRewardInfo()
				})

			}).catch(() => {

			});
		},
		handleAddRewardInfo(id) {
			this.handleGetRewardInfo()
		},
		handleGetRewardInfo() {
			enrollmentRegistrationService.findRewardInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.rewardInfoList = res
				this.activeNames[7] = this.inputForm.rewardInfoList.map(item => item.id)
			})
		},
		//劳动合同
		addLaborContract() {
			this.$refs.laborContractInfo.init("add", null, this.inputForm.userId)
		},
		editLaborContract(id) {
			this.$refs.laborContractInfo.init("edit", id, this.inputForm.userId)
		},
		delLaborContract(id) {
			this.$confirm('确定删除此条合同信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteLaborContractInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetLaborContractInfo()
				})

			}).catch(() => {

			});
		},
		handleAddLaborContractInfo(id) {
			this.handleGetLaborContractInfo()
		},
		handleGetLaborContractInfo() {
			enrollmentRegistrationService.findLaborContractInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.laborContractInfoList = res
				this.activeNames[8] = this.inputForm.laborContractInfoList.map(item => item.id)
			})
		},
		//社会及行业职务
		addSociety() {
			this.$refs.societyInfo.init("add", null, this.inputForm.userId)
		},
		editSociety(id) {
			this.$refs.societyInfo.init("edit", id, this.inputForm.userId)
		},
		delSociety(id) {
			this.$confirm('确定删除此条社会及行业职务信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deleteSocietyInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetSocietyInfo()
				})

			}).catch(() => {

			});
		},
		handleAddSocietyInfo(id) {
			this.handleGetSocietyInfo()
		},
		handleGetSocietyInfo() {
			enrollmentRegistrationService.findSocietyInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.societyInfoList = res
				this.activeNames[9] = this.inputForm.societyInfoList.map(item => item.id)
			})
		},
		//工作业绩
		addPerformance() {
			this.$refs.performanceInfo.init("add", null, this.inputForm.userId)
		},
		editPerformance(id) {
			this.$refs.performanceInfo.init("edit", id, this.inputForm.userId)
		},
		delPerformance(id) {
			this.$confirm('确定删除此条工作业绩信息吗?', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.loading = true
				enrollmentRegistrationService.deletePerformanceInfoById(id).then(res => {
					this.$message.success(res)
					this.loading = false
					this.handleGetPerformanceInfo()
				})

			}).catch(() => {

			});
		},
		handleAddPerformanceInfo(id) {
			this.handleGetPerformanceInfo()
		},
		handleGetPerformanceInfo() {
			enrollmentRegistrationService.findPerformanceInfo({
				userId: this.inputForm.userId
			}).then(res => {
				this.inputForm.performanceInfoList = res
				this.activeNames[10] = this.inputForm.performanceInfoList.map(item => item.id)
			})
		},
		// 日期格式化
		handleDateFormatter(dateStr) {
			if (!dateStr) return ''; // 如果为空，返回空字符串
			return dayjs(dateStr).format('YYYY年MM月DD日');
		},
		changeInfoList(index) {
			this.changeFlag[index] = !this.changeFlag[index]
		},
		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
				})
				console.log(obj);
				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
				}
			}

		},
	}
}
</script>

<style lang="less" scoped>
/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;
}

/deep/ .el-upload-list {


	.el-upload {
		width: 80px;
		height: 80px;
	}

	.el-upload-list__item {
		width: 80px;
		height: 80px;
	}

}
</style>
