feat: 劳务实名制人员管理新增
This commit is contained in:
parent
9ea6c11043
commit
6d02362582
@ -286,6 +286,10 @@ export const getBuildUnitAll = (params: any) => {
|
|||||||
export const getClassGroupList = (params: FormData) => {
|
export const getClassGroupList = (params: FormData) => {
|
||||||
return http.post(BASEURL + `/project/teamInfo/page`, params);
|
return http.post(BASEURL + `/project/teamInfo/page`, params);
|
||||||
};
|
};
|
||||||
|
// 班组管理列表
|
||||||
|
export const getClassGroupAll = (params: FormData) => {
|
||||||
|
return http.post(BASEURL + `/project/teamInfo/list`, params);
|
||||||
|
};
|
||||||
// 班组管理新增
|
// 班组管理新增
|
||||||
export const addClassGroup = (params: FormData) => {
|
export const addClassGroup = (params: FormData) => {
|
||||||
return http.post(BASEURL + `/project/teamInfo/add`, params);
|
return http.post(BASEURL + `/project/teamInfo/add`, params);
|
||||||
@ -306,6 +310,10 @@ export const deleteClassGroup = (params: { id: string }) => {
|
|||||||
export const getworkTypeList = (params: FormData) => {
|
export const getworkTypeList = (params: FormData) => {
|
||||||
return http.post(BASEURL + `/project/workerType/page`, params);
|
return http.post(BASEURL + `/project/workerType/page`, params);
|
||||||
};
|
};
|
||||||
|
// 工种管理列表
|
||||||
|
export const getworkTypeAll = (params: FormData) => {
|
||||||
|
return http.post(BASEURL + `/project/workerType/list`, params);
|
||||||
|
};
|
||||||
// 工种管理新增
|
// 工种管理新增
|
||||||
export const addWorkType = (params: FormData) => {
|
export const addWorkType = (params: FormData) => {
|
||||||
return http.post(BASEURL + `/project/workerType/add`, params);
|
return http.post(BASEURL + `/project/workerType/add`, params);
|
||||||
@ -318,3 +326,11 @@ export const updateWorkType = (params: FormData) => {
|
|||||||
export const deleteWorkType = (params: { id: string }) => {
|
export const deleteWorkType = (params: { id: string }) => {
|
||||||
return http.post(BASEURL + `/project/workerType/delete`, params);
|
return http.post(BASEURL + `/project/workerType/delete`, params);
|
||||||
};
|
};
|
||||||
|
// 人员管理新增
|
||||||
|
export const addMember = (params: FormData) => {
|
||||||
|
return http.post(BASEURL + `/project/workerInfo/add`, params);
|
||||||
|
};
|
||||||
|
// 人员管理分页列表
|
||||||
|
export const getMemberList = (params: FormData) => {
|
||||||
|
return http.post(BASEURL + `/project/workerInfo/page`, params);
|
||||||
|
};
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="overview">
|
<div class="overview">
|
||||||
<el-dialog title="新增工人" show-close v-model="visible1" style="min-width: 1300px">
|
<el-dialog title="新增工人" show-close v-model="visible1" style="min-width: 1500px">
|
||||||
<el-form ref="ruleFormRef" :model="form" :rules="rules" label-width="200px" class="form" size="default">
|
<el-form ref="ruleFormRef" :model="form" :rules="rules" label-width="200px" class="form" size="default">
|
||||||
<!-- 基础信息 -->
|
<!-- 基础信息 -->
|
||||||
<div>
|
<div>
|
||||||
@ -9,44 +9,52 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="姓名:" prop="personName">
|
<el-form-item label="姓名:" prop="personName">
|
||||||
<el-input placeholder="请输入" v-model="form.personName" disabled />
|
<el-input placeholder="请输入" v-model="form.personName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="性别:" prop="engineeringName">
|
<el-form-item label="性别:" prop="sex">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.sex">
|
||||||
<el-radio :label="1">男</el-radio>
|
<el-radio :label="1">男</el-radio>
|
||||||
<el-radio :label="0">女</el-radio>
|
<el-radio :label="2">女</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="出生日期:" prop="projectName">
|
<el-form-item label="出生日期:" prop="birthday">
|
||||||
<el-input placeholder="请输入" v-model="form.projectName" />
|
<el-date-picker
|
||||||
|
v-model="form.birthday"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
type="datetime"
|
||||||
|
placeholder="请选择时间"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="民族:" prop="engineeringName">
|
<el-form-item label="民族:" prop="nation">
|
||||||
<el-input placeholder="请输入" v-model="form.projectName" />
|
<el-input placeholder="请输入" v-model="form.nation" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<el-form-item label="住址:" prop="registerAddress">
|
<el-form-item label="住址:" prop="registerAddress">
|
||||||
<el-input placeholder="请输入" v-model="form.registerAddress" />
|
<el-input placeholder="请输入" v-model="form.registerAddress" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="身份证号:" prop="projectName">
|
<el-form-item label="身份证号:" prop="idCard">
|
||||||
<el-input placeholder="请输入" v-model="form.projectName" />
|
<el-input placeholder="请输入" v-model="form.idCard" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="签发机关:" prop="projectName">
|
<el-form-item label="签发机关:" prop="issuingAuthorityForIdCard">
|
||||||
<el-input placeholder="请输入" v-model="form.projectName" />
|
<el-input placeholder="请输入" v-model="form.issuingAuthorityForIdCard" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="身份证有效期:" prop="engineeringName">
|
<el-form-item label="身份证有效期:" prop="idCardExpireDate">
|
||||||
<div class="date-select">
|
<div class="date-select">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
style="width: 62%; margin-right: 8px"
|
style="width: 62%; margin-right: 8px"
|
||||||
v-model="form.engineeringName"
|
v-model="form.idCardExpireDate"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
type="datetime"
|
type="daterange"
|
||||||
placeholder="请选择时间"
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
v-if="changeType == 1"
|
v-if="changeType == 1"
|
||||||
/>
|
/>
|
||||||
<div v-else>长期</div>
|
<div v-else>长期</div>
|
||||||
@ -58,44 +66,44 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="身份证:" prop="isImportant">
|
<el-form-item label="身份证:">
|
||||||
<div class="idCard-img">
|
<div class="idCard-img">
|
||||||
<el-upload
|
<el-upload
|
||||||
class="avatar-uploader"
|
class="avatar-uploader"
|
||||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:on-success="handleAvatarSuccess"
|
:on-success="(response, uploadFile) => handleAvatarSuccess(response, uploadFile, 1)"
|
||||||
:before-upload="beforeAvatarUpload"
|
:before-upload="beforeAvatarFrontUpload"
|
||||||
accept="image/jpg, image/jpeg, image/png"
|
accept="image/jpg, image/jpeg, image/png"
|
||||||
>
|
>
|
||||||
<img v-if="form.engineeringArea" :src="form.engineeringArea" class="avatar" />
|
<img v-if="form.idCardFront" :src="form.idCardFront" class="avatar" />
|
||||||
<span v-else class="text-tip">上传身份证人像面</span>
|
<span v-else class="text-tip">上传身份证人像面</span>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-upload
|
<el-upload
|
||||||
class="avatar-uploader"
|
class="avatar-uploader"
|
||||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:on-success="handleAvatarSuccess"
|
:on-success="(response, uploadFile) => handleAvatarSuccess(response, uploadFile, 2)"
|
||||||
:before-upload="beforeAvatarUpload"
|
:before-upload="beforeAvatarBackUpload"
|
||||||
accept="image/jpg, image/jpeg, image/png"
|
accept="image/jpg, image/jpeg, image/png"
|
||||||
>
|
>
|
||||||
<img v-if="form.engineeringArea" :src="form.engineeringArea" class="avatar" />
|
<img v-if="form.idCardBack" :src="form.idCardBack" class="avatar" />
|
||||||
<span v-else class="text-tip">上传身份证国徽面</span>
|
<span v-else class="text-tip">上传身份证国徽面</span>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
<div class="idCard-tip">请上传清晰、完善、无遮挡物的身份证照片</div>
|
<div class="idCard-tip">请上传清晰、完善、无遮挡物的身份证照片</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="人像信息:" prop="position">
|
<el-form-item label="人像信息:">
|
||||||
<div class="face-img">
|
<div class="face-img">
|
||||||
<el-upload
|
<el-upload
|
||||||
class="face-uploader"
|
class="face-uploader"
|
||||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:on-success="handleAvatarSuccess"
|
:on-success="(response, uploadFile) => handleAvatarSuccess(response, uploadFile, 3)"
|
||||||
:before-upload="beforeAvatarUpload"
|
:before-upload="beforeAvatarUpload"
|
||||||
accept="image/jpg, image/jpeg, image/png"
|
accept="image/jpg, image/jpeg, image/png"
|
||||||
>
|
>
|
||||||
<img v-if="form.engineeringArea" :src="form.engineeringArea" class="face-avatar" />
|
<img v-if="form.portrait" :src="form.portrait" class="face-avatar" />
|
||||||
<el-icon v-else><plus /></el-icon>
|
<el-icon v-else><plus /></el-icon>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<div class="face-tip">
|
<div class="face-tip">
|
||||||
@ -138,52 +146,58 @@
|
|||||||
<div>进场信息</div>
|
<div>进场信息</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="手机号:" prop="projectName">
|
<el-form-item label="手机号:" prop="phone">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.phone" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="现居住地 :" prop="engineeringName">
|
<el-form-item label="现居住地 :" prop="address">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<el-form-item label="参建单位:" prop="address">
|
|
||||||
<el-input placeholder="请输入" v-model="form.address" />
|
<el-input placeholder="请输入" v-model="form.address" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="班组 :" prop="engineeringName">
|
</div>
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<div class="row">
|
||||||
|
<el-form-item label="参建单位:" prop="companySn">
|
||||||
|
<el-select v-model="form.companySn" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option v-for="item in unitList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="班组 :" prop="teamSn">
|
||||||
|
<el-select v-model="form.teamSn" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option v-for="item in groupList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="工种 :" prop="engineeringCost">
|
<el-form-item label="工种 :" prop="workerType">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-select v-model="form.workerType" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option v-for="item in workList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="人员类别:" prop="engineeringName">
|
<el-form-item label="人员类别:">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.personType">
|
||||||
<el-radio :label="1">男</el-radio>
|
<el-radio :label="1">管理</el-radio>
|
||||||
<el-radio :label="0">女</el-radio>
|
<el-radio :label="2">工人</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="是否参与安全教育:" prop="engineeringName">
|
<el-form-item label="是否参与安全教育:">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.safetyEducation">
|
||||||
<el-radio :label="1">合格</el-radio>
|
<el-radio :label="1">合格</el-radio>
|
||||||
<el-radio :label="2">不合格</el-radio>
|
<el-radio :label="2">不合格</el-radio>
|
||||||
<el-radio :label="3">未培训</el-radio>
|
<el-radio :label="3">未培训</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否购买工伤和意外保险:" prop="engineeringName">
|
<el-form-item label="是否购买工伤和意外保险:">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.isPurchaseInsurance">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="2">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="有无合同 :" prop="engineeringCost">
|
<el-form-item label="有无合同 :">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.isContract">
|
||||||
<el-radio :label="1">有</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="2">无</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<el-upload
|
<el-upload
|
||||||
v-model:file-list="filelist"
|
v-model:file-list="filelist"
|
||||||
@ -193,17 +207,18 @@
|
|||||||
:limit="1"
|
:limit="1"
|
||||||
:on-success="uploadSuccess"
|
:on-success="uploadSuccess"
|
||||||
style="display: flex; align-items: center; justify-content: center; margin-left: 22px"
|
style="display: flex; align-items: center; justify-content: center; margin-left: 22px"
|
||||||
|
v-if="form.isContract == 1"
|
||||||
>
|
>
|
||||||
<el-button plain color="#47A99D" size="small">选择文件</el-button>
|
<el-button plain color="#47A99D" size="small">选择文件</el-button>
|
||||||
<template #tip>
|
<template #tip>
|
||||||
<div v-show="!form.engineeringCost" style="margin-left: 10px; color: #aeaeae">未选择任何文件</div>
|
<div v-show="!form.contractImage" style="margin-left: 10px; color: #aeaeae">未选择任何文件</div>
|
||||||
</template>
|
</template>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否体验:" prop="engineeringName">
|
<el-form-item label="是否体检:">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.isPhysicalExamination">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="2">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
@ -214,24 +229,26 @@
|
|||||||
<div>银行卡和社保</div>
|
<div>银行卡和社保</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="银行类型:" prop="engineeringName">
|
<el-form-item label="银行类型:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-select v-model="form.bankType" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option v-for="item in bankTypeList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="银行卡号:" prop="engineeringName">
|
<el-form-item label="银行卡号:" prop="bankCard">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.bankCard" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="实名制卡号:" prop="engineeringName">
|
<el-form-item label="实名制卡号:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.realNameCardNumber" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="开户支行名称:" prop="engineeringName">
|
<el-form-item label="开户支行名称:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.bankName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="开户支行代号:" prop="engineeringName">
|
<el-form-item label="开户支行代号:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.bankCode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -261,23 +278,23 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="学位:" prop="academicDegree">
|
<el-form-item label="学位:" prop="academicDegree">
|
||||||
<el-select v-model="form.academicDegree" placeholder="请选择">
|
<el-select v-model="form.academicDegree" placeholder="请选择" style="width: 100%">
|
||||||
<el-option v-for="item in academicDegreeList" :key="item.label" :label="item.label" :value="item.value">
|
<el-option v-for="item in academicDegreeList" :key="item.label" :label="item.label" :value="item.value">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否有重大病史:" prop="engineeringName">
|
<el-form-item label="是否有重大病史:">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.haveMedicalHistory">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="2">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="户口性质:" prop="engineeringName">
|
<el-form-item label="户口性质:">
|
||||||
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
<el-radio-group placeholder="请选择" v-model="form.natureOfAccount">
|
||||||
<el-radio :label="1">是</el-radio>
|
<el-radio :label="1">非农户口</el-radio>
|
||||||
<el-radio :label="2">否</el-radio>
|
<el-radio :label="2">农业户口</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="婚姻状况:" prop="maritalStatus">
|
<el-form-item label="婚姻状况:" prop="maritalStatus">
|
||||||
@ -288,24 +305,36 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="紧急联系人:" prop="engineeringName">
|
<el-form-item label="紧急联系人:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.contacts" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="紧急联系电话:" prop="engineeringName">
|
<el-form-item label="紧急联系电话:" prop="contactsTel">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.contactsTel" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="开始工作日期:" prop="engineeringName">
|
<el-form-item label="开始工作日期:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-date-picker
|
||||||
|
v-model="form.entryTime"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
type="datetime"
|
||||||
|
placeholder="请选择"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="岗前培训日期:" prop="engineeringName">
|
<el-form-item label="岗前培训日期:">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-date-picker
|
||||||
|
v-model="form.trainingTime"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
type="datetime"
|
||||||
|
placeholder="请选择"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="邮箱:" prop="engineeringName">
|
<el-form-item label="邮箱:" prop="personEmail">
|
||||||
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.personEmail" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -320,17 +349,20 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, watch } from "vue";
|
import { onMounted, ref, watch } from "vue";
|
||||||
import type { UploadProps } from "element-plus";
|
import type { FormInstance, UploadProps } from "element-plus";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { getDicList } from "@/api/modules/jxjview";
|
import { getDicList } from "@/api/modules/jxjview";
|
||||||
|
import { getBuildUnitAll, getClassGroupAll, getworkTypeAll } from "@/api/modules/project";
|
||||||
const baseUrl = import.meta.env.VITE_API_URL;
|
const baseUrl = import.meta.env.VITE_API_URL;
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
newMemberDialog: Boolean
|
newMemberDialog: Boolean,
|
||||||
|
engineeringSn: String
|
||||||
});
|
});
|
||||||
const visible1 = ref(false);
|
const visible1 = ref(false);
|
||||||
const changeType = ref(1);
|
const changeType = ref(1);
|
||||||
const filelist = ref([]);
|
const filelist = ref([]);
|
||||||
const emits = defineEmits(["update:newMemberDialog"]);
|
const emits = defineEmits(["update:newMemberDialog", "confirm"]);
|
||||||
|
const ruleFormRef = ref<FormInstance>();
|
||||||
const rules = ref({
|
const rules = ref({
|
||||||
personName: [
|
personName: [
|
||||||
{
|
{
|
||||||
@ -360,7 +392,7 @@ const rules = ref({
|
|||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
address: [
|
registerAddress: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入",
|
message: "请输入",
|
||||||
@ -369,6 +401,7 @@ const rules = ref({
|
|||||||
],
|
],
|
||||||
idCard: [
|
idCard: [
|
||||||
{
|
{
|
||||||
|
required: true,
|
||||||
pattern: /^[1-9]\d{5}(19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i,
|
pattern: /^[1-9]\d{5}(19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i,
|
||||||
message: "请输入正确的身份证号码",
|
message: "请输入正确的身份证号码",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
@ -388,9 +421,15 @@ const rules = ref({
|
|||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
companySn: [
|
contactsTel: [
|
||||||
{
|
{
|
||||||
pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,
|
pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,
|
||||||
|
message: "请输入合法手机号",
|
||||||
|
trigger: "blur"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
companySn: [
|
||||||
|
{
|
||||||
message: "请选择",
|
message: "请选择",
|
||||||
trigger: "change"
|
trigger: "change"
|
||||||
}
|
}
|
||||||
@ -413,6 +452,13 @@ const rules = ref({
|
|||||||
message: "请输入正确的身份证号码",
|
message: "请输入正确的身份证号码",
|
||||||
trigger: "change"
|
trigger: "change"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
personEmail: [
|
||||||
|
{
|
||||||
|
type: "email",
|
||||||
|
message: "请输入正确的邮箱格式",
|
||||||
|
trigger: "change"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
const enum Type {
|
const enum Type {
|
||||||
@ -438,6 +484,26 @@ const maritalStatusList = ref([
|
|||||||
{ label: "已婚", value: 2 }
|
{ label: "已婚", value: 2 }
|
||||||
]);
|
]);
|
||||||
const educationLevelList: any = ref([]);
|
const educationLevelList: any = ref([]);
|
||||||
|
const unitList: any = ref([]);
|
||||||
|
const groupList: any = ref([]);
|
||||||
|
const workList: any = ref([]);
|
||||||
|
const bankTypeList: any = ref([
|
||||||
|
{ label: "工商银行", value: 1 },
|
||||||
|
{ label: "建设银行", value: 2 },
|
||||||
|
{ label: "农业银行", value: 3 },
|
||||||
|
{ label: "交通银行", value: 4 },
|
||||||
|
{ label: "中国银行", value: 5 },
|
||||||
|
{ label: "招商银行", value: 6 },
|
||||||
|
{ label: "浦发银行", value: 7 },
|
||||||
|
{ label: "兴业银行", value: 8 },
|
||||||
|
{ label: "民生银行", value: 9 },
|
||||||
|
{ label: "光大银行", value: 10 },
|
||||||
|
{ label: "广发银行", value: 11 },
|
||||||
|
{ label: "华夏银行", value: 12 },
|
||||||
|
{ label: "平安银行", value: 13 },
|
||||||
|
{ label: "邮政储蓄银行", value: 14 },
|
||||||
|
{ label: "浙商银行", value: 15 }
|
||||||
|
]);
|
||||||
const form = ref({
|
const form = ref({
|
||||||
personName: "",
|
personName: "",
|
||||||
sex: 1,
|
sex: 1,
|
||||||
@ -454,21 +520,45 @@ const form = ref({
|
|||||||
address: "",
|
address: "",
|
||||||
companySn: "",
|
companySn: "",
|
||||||
teamSn: "",
|
teamSn: "",
|
||||||
|
workerType: null,
|
||||||
personType: Type["One"],
|
personType: Type["One"],
|
||||||
safetyEducation: Type["One"],
|
safetyEducation: Type["One"],
|
||||||
isPurchaseInsurance: Type["One"],
|
isPurchaseInsurance: Type["One"],
|
||||||
isContract: Type["One"],
|
isContract: Type["One"],
|
||||||
|
contractImage: "",
|
||||||
isPhysicalExamination: Type["One"],
|
isPhysicalExamination: Type["One"],
|
||||||
bankType: Type["One"],
|
bankType: null,
|
||||||
bankCard: "",
|
bankCard: "",
|
||||||
realNameCardNumber: "",
|
realNameCardNumber: "",
|
||||||
bankName: "",
|
bankName: "",
|
||||||
bankCode: "",
|
bankCode: "",
|
||||||
politicsStatus: null
|
politicsStatus: null,
|
||||||
|
educationLevel: null,
|
||||||
|
academicDegree: null,
|
||||||
|
haveMedicalHistory: Type["One"],
|
||||||
|
natureOfAccount: Type["One"],
|
||||||
|
maritalStatus: null,
|
||||||
|
contacts: "",
|
||||||
|
contactsTel: "",
|
||||||
|
entryTime: "",
|
||||||
|
trainingTime: "",
|
||||||
|
personEmail: ""
|
||||||
});
|
});
|
||||||
// 图片上传成功后的钩子
|
// 图片上传成功后的钩子
|
||||||
const handleAvatarSuccess: UploadProps["onSuccess"] = (response, uploadFile) => {
|
const handleAvatarSuccess: UploadProps["onSuccess"] = (response, uploadFile, index) => {
|
||||||
console.log(response.result.url);
|
console.log(response.result.url);
|
||||||
|
console.log(response, uploadFile, index);
|
||||||
|
switch (index) {
|
||||||
|
case 1:
|
||||||
|
form.value.idCardFront = response.result.url;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
form.value.idCardBack = response.result.url;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
form.value.portrait = response.result.url;
|
||||||
|
break;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const beforeAvatarUpload: UploadProps["beforeUpload"] = rawFile => {
|
const beforeAvatarUpload: UploadProps["beforeUpload"] = rawFile => {
|
||||||
@ -488,28 +578,68 @@ const beforeAvatarUpload: UploadProps["beforeUpload"] = rawFile => {
|
|||||||
const uploadSuccess = (response: any) => {
|
const uploadSuccess = (response: any) => {
|
||||||
ElMessage.success("上传成功");
|
ElMessage.success("上传成功");
|
||||||
// ruleForm.businessLicense = response.result.originalFilename;
|
// ruleForm.businessLicense = response.result.originalFilename;
|
||||||
// ruleForm.businessLicense = response.result.url;
|
form.value.contractImage = response.result.url;
|
||||||
// ruleForm.businessLicenseOriginalName = response.result.originalFilename;
|
// ruleForm.businessLicenseOriginalName = response.result.originalFilename;
|
||||||
|
|
||||||
// businessLicense.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
// businessLicense.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||||
};
|
};
|
||||||
// TODO: 提交表单操作
|
// TODO: 提交表单操作
|
||||||
const submitForm = async (data: any) => {
|
const submitForm = async (data: any) => {
|
||||||
// const formEl = formRef.value;
|
console.log(data.value);
|
||||||
// if (!formEl) return;
|
const formEl = ruleFormRef.value;
|
||||||
// await formEl.validate((valid, fields) => {
|
if (!formEl) return;
|
||||||
// if (valid) {
|
await formEl.validate((valid, fields) => {
|
||||||
// if (changeType.value == 2) {
|
if (valid) {
|
||||||
// delete data.businessLicenseLifespan;
|
if (changeType.value == 2) {
|
||||||
// }
|
delete data.businessLicenseLifespan;
|
||||||
// data.engineeringSn = initParam.engineeringSn;
|
}
|
||||||
// saveItem(data);
|
data.idCardExpireDate = data.idCardExpireDate + "";
|
||||||
// } else {
|
data.engineeringSn = props.engineeringSn;
|
||||||
// console.log("error submit!", fields);
|
emits("confirm", data);
|
||||||
// }
|
} else {
|
||||||
// });
|
console.log("error submit!", fields);
|
||||||
|
}
|
||||||
|
visible1.value = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 获取参建单位列表
|
||||||
|
const getUnitList = async () => {
|
||||||
|
const res = await getBuildUnitAll({ engineeringSn: props.engineeringSn });
|
||||||
|
console.log(res);
|
||||||
|
unitList.value = res.result.map(item => {
|
||||||
|
console.log(item);
|
||||||
|
return {
|
||||||
|
label: item.companyName,
|
||||||
|
value: item.companySn
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 获取班组管理列表
|
||||||
|
const getGroupList = async () => {
|
||||||
|
const res = await getClassGroupAll({ engineeringSn: props.engineeringSn });
|
||||||
|
console.log(res);
|
||||||
|
groupList.value = res.result.map(item => {
|
||||||
|
console.log(item);
|
||||||
|
return {
|
||||||
|
label: item.teamName,
|
||||||
|
value: item.teamSn
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 获取工种管理列表
|
||||||
|
const getTypeList = async () => {
|
||||||
|
const res = await getworkTypeAll({ engineeringSn: props.engineeringSn });
|
||||||
|
console.log(res);
|
||||||
|
workList.value = res.result.map(item => {
|
||||||
|
console.log(item);
|
||||||
|
return {
|
||||||
|
label: item.typeName,
|
||||||
|
value: item.id
|
||||||
|
};
|
||||||
|
});
|
||||||
};
|
};
|
||||||
const getDicMainList = async () => {
|
const getDicMainList = async () => {
|
||||||
|
// 获取学历字典
|
||||||
const { result } = await getDicList({ dictType: "education_level" });
|
const { result } = await getDicList({ dictType: "education_level" });
|
||||||
educationLevelList.value.length = 0;
|
educationLevelList.value.length = 0;
|
||||||
educationLevelList.value.push(...result);
|
educationLevelList.value.push(...result);
|
||||||
@ -519,6 +649,11 @@ watch(
|
|||||||
() => props.newMemberDialog,
|
() => props.newMemberDialog,
|
||||||
(n, o) => {
|
(n, o) => {
|
||||||
visible1.value = n;
|
visible1.value = n;
|
||||||
|
if (n) {
|
||||||
|
getUnitList();
|
||||||
|
getGroupList();
|
||||||
|
getTypeList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
// 监听el-dialog显示状态,再通过@update:visible 通知父组件,一般是用于关
|
// 监听el-dialog显示状态,再通过@update:visible 通知父组件,一般是用于关
|
||||||
|
|||||||
@ -48,7 +48,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</engineeringDrawer>
|
</engineeringDrawer>
|
||||||
<allEngineering @click="engVisable = true" />
|
<allEngineering @click="engVisable = true" />
|
||||||
<addMemberForm v-model:newMemberDialog="newMemberDialog"></addMemberForm>
|
<addMemberForm
|
||||||
|
v-model:newMemberDialog="newMemberDialog"
|
||||||
|
:engineeringSn="initParam.engineeringSn"
|
||||||
|
@confirm="saveItem"
|
||||||
|
></addMemberForm>
|
||||||
<DialogForm
|
<DialogForm
|
||||||
:title="title"
|
:title="title"
|
||||||
:formConfig="formConfig"
|
:formConfig="formConfig"
|
||||||
@ -78,9 +82,9 @@ import {
|
|||||||
addClassGroup,
|
addClassGroup,
|
||||||
updateClassGroup,
|
updateClassGroup,
|
||||||
deleteClassGroup,
|
deleteClassGroup,
|
||||||
getClassGroupList,
|
getMemberList,
|
||||||
getBuildUnitAll,
|
classGroupInfo,
|
||||||
classGroupInfo
|
addMember
|
||||||
} from "@/api/modules/project";
|
} from "@/api/modules/project";
|
||||||
import DialogForm from "@/components/DialogForm/index.vue";
|
import DialogForm from "@/components/DialogForm/index.vue";
|
||||||
import addMemberForm from "./components/addMemberForm.vue";
|
import addMemberForm from "./components/addMemberForm.vue";
|
||||||
@ -257,7 +261,7 @@ const getTableList = (params: any) => {
|
|||||||
newParams.createTime_end = newParams.createTime[1];
|
newParams.createTime_end = newParams.createTime[1];
|
||||||
delete newParams.createTime;
|
delete newParams.createTime;
|
||||||
}
|
}
|
||||||
return getClassGroupList(newParams);
|
return getMemberList(newParams);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleAddItem = async (index: number, row: any) => {
|
const handleAddItem = async (index: number, row: any) => {
|
||||||
@ -297,7 +301,7 @@ const saveItem = async (form: any) => {
|
|||||||
proTable.value.getTableList();
|
proTable.value.getTableList();
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
} else {
|
} else {
|
||||||
const res = await addClassGroup(form);
|
const res = await addMember(form);
|
||||||
ElMessage.success("新增成功");
|
ElMessage.success("新增成功");
|
||||||
proTable.value.getTableList();
|
proTable.value.getTableList();
|
||||||
}
|
}
|
||||||
@ -312,27 +316,11 @@ const deleteGroup = async (params: any) => {
|
|||||||
// 点击抽屉的工程名称更新页面
|
// 点击抽屉的工程名称更新页面
|
||||||
const onUpdate = async row => {
|
const onUpdate = async row => {
|
||||||
initParam.engineeringSn = row.engineeringSn;
|
initParam.engineeringSn = row.engineeringSn;
|
||||||
getUnitList();
|
|
||||||
ElMessage.success("页面已更新");
|
ElMessage.success("页面已更新");
|
||||||
};
|
};
|
||||||
const getengineering = (params: any) => {
|
const getengineering = (params: any) => {
|
||||||
// let newParams = JSON.parse(JSON.stringify(params));
|
// let newParams = JSON.parse(JSON.stringify(params));
|
||||||
return getRelevanceList();
|
return getRelevanceList();
|
||||||
};
|
};
|
||||||
// 获取参建单位列表
|
|
||||||
const getUnitList = async () => {
|
|
||||||
const res = await getBuildUnitAll({ engineeringSn: initParam.engineeringSn });
|
|
||||||
console.log(res);
|
|
||||||
formConfig.formItemConfig[0].data = res.result.map(item => {
|
|
||||||
console.log(item);
|
|
||||||
return {
|
|
||||||
label: item.companyName,
|
|
||||||
value: item.companySn
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
onMounted(() => {
|
|
||||||
getUnitList();
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user