人员出场接口调试
This commit is contained in:
parent
3fd238f498
commit
8815c8f5f2
|
|
@ -1,11 +1,11 @@
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
import requestFormData from '@/utils/request_formdata'
|
import requestFormData from '@/utils/request_formdata'
|
||||||
|
|
||||||
// 人员出场 新增人员接口
|
// 人员出场 新增人员出场接口
|
||||||
export const addEntryPersonAPI = (data) => {
|
export const addEntryPersonAPI = (data) => {
|
||||||
return requestFormData({
|
return requestFormData({
|
||||||
url: '/bmw/worker/insert',
|
url: '/bmw/workerExit/exit',
|
||||||
method: 'post',
|
method: 'POST',
|
||||||
data,
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,13 +52,13 @@ export const columnsList = [
|
||||||
t_props: 'subEinTime',
|
t_props: 'subEinTime',
|
||||||
t_label: '分包入场时间',
|
t_label: '分包入场时间',
|
||||||
},
|
},
|
||||||
{ t_props: 'idCard', t_label: '授权委托书', t_slot: 'idCard' },
|
{ t_label: '授权委托书', t_slot: 'file-1' },
|
||||||
{
|
{
|
||||||
t_props: 'subExitTime',
|
t_props: 'subExitTime',
|
||||||
t_label: '分包出场时间',
|
t_label: '分包出场时间',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
t_props: 'electronicSignature',
|
t_slot: 'file-2',
|
||||||
t_label: '工资已支付完成承诺书',
|
t_label: '工资已支付完成承诺书',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,7 @@ export default {
|
||||||
|
|
||||||
subSelectList: [], // 分包商下拉列表
|
subSelectList: [], // 分包商下拉列表
|
||||||
lotProjectSelectList: [], // 标段工程下拉列表
|
lotProjectSelectList: [], // 标段工程下拉列表
|
||||||
|
editUploadFileList: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -205,14 +206,35 @@ export default {
|
||||||
|
|
||||||
if (id) {
|
if (id) {
|
||||||
params.id = id
|
params.id = id
|
||||||
|
let reserveFileList = []
|
||||||
|
businessLicense.forEach((item) => {
|
||||||
|
if (item.id) {
|
||||||
|
reserveFileList.push(item.id)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (reserveFileList.length > 0) {
|
||||||
|
fileIdList = this.editUploadFileList
|
||||||
|
.filter(
|
||||||
|
(item) =>
|
||||||
|
!reserveFileList.includes(item.id),
|
||||||
|
)
|
||||||
|
.map((j) => j.id)
|
||||||
|
|
||||||
|
if (fileIdList.length > 0) {
|
||||||
|
params.delIds = fileIdList.join(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
businessLicense.forEach((item) => {
|
businessLicense.forEach((item) => {
|
||||||
formData.append('files', item.raw)
|
if (!item.id) {
|
||||||
fileMsg.push({
|
formData.append('files', item.raw)
|
||||||
type: 1,
|
fileMsg.push({
|
||||||
name: '法定代表人授权书',
|
type: 1,
|
||||||
})
|
name: '法定代表人授权书',
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
formData.append('fileMsg', JSON.stringify(fileMsg))
|
formData.append('fileMsg', JSON.stringify(fileMsg))
|
||||||
|
|
@ -247,7 +269,14 @@ export default {
|
||||||
const { data: res } = await getSubEntryDetailAPI({
|
const { data: res } = await getSubEntryDetailAPI({
|
||||||
id: this.queryDetailId,
|
id: this.queryDetailId,
|
||||||
})
|
})
|
||||||
const { id, subId, proId, subContractName, subContractCode } = res
|
const {
|
||||||
|
id,
|
||||||
|
subId,
|
||||||
|
proId,
|
||||||
|
subContractName,
|
||||||
|
subContractCode,
|
||||||
|
contractFile,
|
||||||
|
} = res
|
||||||
|
|
||||||
this.addOrEditForm = {
|
this.addOrEditForm = {
|
||||||
id,
|
id,
|
||||||
|
|
@ -255,7 +284,22 @@ export default {
|
||||||
proId,
|
proId,
|
||||||
subContractName,
|
subContractName,
|
||||||
subContractCode,
|
subContractCode,
|
||||||
businessLicense: [],
|
}
|
||||||
|
|
||||||
|
if (contractFile && contractFile.length > 0) {
|
||||||
|
this.addOrEditForm.businessLicense = contractFile
|
||||||
|
.filter((item) => item.sourceType == 1)
|
||||||
|
.map((item) => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
url: item.lsUl,
|
||||||
|
name: item.fileName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.editUploadFileList = contractFile.filter(
|
||||||
|
(item) => item.sourceType == 1,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -32,20 +32,6 @@
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 标段工程数量 -->
|
|
||||||
<!-- <template :slot="item" slot-scope="{ data }" v-for="item in slots">
|
|
||||||
<span
|
|
||||||
:style="{
|
|
||||||
color: data[item] === '已上传' ? '#67C23A' : '#F56C6C',
|
|
||||||
}"
|
|
||||||
:key="item"
|
|
||||||
style="font-size: 12px"
|
|
||||||
@click="onHandleViewLotProject(data)"
|
|
||||||
>
|
|
||||||
{{ data[item] }}
|
|
||||||
</span>
|
|
||||||
</template> -->
|
|
||||||
|
|
||||||
<template slot="subEinStatus" slot-scope="{ data }">
|
<template slot="subEinStatus" slot-scope="{ data }">
|
||||||
<el-tag
|
<el-tag
|
||||||
size="mini"
|
size="mini"
|
||||||
|
|
@ -54,6 +40,30 @@
|
||||||
{{ data.subEinStatus == 1 ? '在场' : '出场' }}
|
{{ data.subEinStatus == 1 ? '在场' : '出场' }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
|
<template slot="file-1" slot-scope="{ data }">
|
||||||
|
<span
|
||||||
|
:style="{
|
||||||
|
color:
|
||||||
|
initIsUpload(data, 1) === '已上传'
|
||||||
|
? '#67C23A'
|
||||||
|
: '#F56C6C',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ initIsUpload(data, 1) }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<template slot="file-2" slot-scope="{ data }">
|
||||||
|
<span
|
||||||
|
:style="{
|
||||||
|
color:
|
||||||
|
initIsUpload(data, 2) === '已上传'
|
||||||
|
? '#67C23A'
|
||||||
|
: '#F56C6C',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ initIsUpload(data, 2) }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="handle" slot-scope="{ data }">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -63,6 +73,7 @@
|
||||||
icon="el-icon-check"
|
icon="el-icon-check"
|
||||||
@click="onHandleExit(data)"
|
@click="onHandleExit(data)"
|
||||||
v-hasPermi="['sub:exit:add']"
|
v-hasPermi="['sub:exit:add']"
|
||||||
|
v-if="data.subEinStatus == 1"
|
||||||
>
|
>
|
||||||
出场
|
出场
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -72,6 +83,7 @@
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
v-hasPermi="['sub:entry:edit']"
|
v-hasPermi="['sub:entry:edit']"
|
||||||
|
v-if="data.subEinStatus == 1"
|
||||||
@click="onHandleAddOrEditSubEntry(2, data)"
|
@click="onHandleAddOrEditSubEntry(2, data)"
|
||||||
>
|
>
|
||||||
修改
|
修改
|
||||||
|
|
@ -81,6 +93,7 @@
|
||||||
type="danger"
|
type="danger"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
v-hasPermi="['sub:entry:delete']"
|
v-hasPermi="['sub:entry:delete']"
|
||||||
|
v-if="data.subEinStatus == 1"
|
||||||
@click="onHandleDeleteSubEntry(data)"
|
@click="onHandleDeleteSubEntry(data)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
|
|
@ -89,6 +102,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
|
v-if="data.subEinStatus == 2"
|
||||||
@click="onHandleViewEntryDetails(data)"
|
@click="onHandleViewEntryDetails(data)"
|
||||||
>
|
>
|
||||||
详情
|
详情
|
||||||
|
|
@ -265,6 +279,17 @@ export default {
|
||||||
this.dialogConfig.outerTitle = '分包入场详情'
|
this.dialogConfig.outerTitle = '分包入场详情'
|
||||||
this.dialogConfig.outerVisible = true
|
this.dialogConfig.outerVisible = true
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 初始化是否上传
|
||||||
|
initIsUpload(data, type) {
|
||||||
|
if (data.contractFile.length > 0) {
|
||||||
|
const isUpload = data.contractFile.some(
|
||||||
|
(item) => item.sourceType == type,
|
||||||
|
)
|
||||||
|
return isUpload ? '已上传' : '未上传'
|
||||||
|
}
|
||||||
|
return '未上传'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
async created() {
|
async created() {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
export const formLabel = [
|
export const formLabel = [
|
||||||
{
|
{
|
||||||
f_label: '分包合同',
|
f_label: '班组名称',
|
||||||
f_model: 'htName',
|
f_model: 'teamName',
|
||||||
f_type: 'ipt',
|
f_type: 'ipt',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
},
|
},
|
||||||
|
|
@ -13,15 +13,25 @@ export const formLabel = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '工程名称',
|
f_label: '工程名称',
|
||||||
f_model: 'projectName',
|
f_model: 'proName',
|
||||||
f_type: 'ipt',
|
f_type: 'ipt',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
f_label: '状态',
|
f_label: '状态',
|
||||||
f_model: 'status',
|
f_model: 'teamEinStatus',
|
||||||
f_type: 'sel',
|
f_type: 'sel',
|
||||||
isShow: false, // 是否展示label
|
isShow: false, // 是否展示label
|
||||||
|
f_selList: [
|
||||||
|
{
|
||||||
|
label: '在场',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '出场',
|
||||||
|
value: 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -29,14 +39,14 @@ export const columnsList = [
|
||||||
{ t_props: 'subName', t_label: '分包商名称' },
|
{ t_props: 'subName', t_label: '分包商名称' },
|
||||||
{ t_props: 'teamName', t_label: '班组名称' },
|
{ t_props: 'teamName', t_label: '班组名称' },
|
||||||
{ t_props: 'proName', t_label: '班组入场工程名称' },
|
{ t_props: 'proName', t_label: '班组入场工程名称' },
|
||||||
{ t_props: 'teamEinStatus', t_label: '出入场状态' },
|
{ t_slot: 'teamEinStatus', t_label: '出入场状态' },
|
||||||
{
|
{
|
||||||
t_props: 'teamEinTime',
|
t_props: 'teamEinTime',
|
||||||
t_label: '入场时间',
|
t_label: '入场时间',
|
||||||
},
|
},
|
||||||
{ t_props: 'teamExitTime', t_label: '出场时间' },
|
{ t_props: 'teamExitTime', t_label: '出场时间' },
|
||||||
{
|
{
|
||||||
t_props: 'contractFile',
|
t_slot: 'contractFile',
|
||||||
t_label: '施工组承诺书',
|
t_label: '施工组承诺书',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@
|
||||||
检测到分包下存在2个班组,12名施工人员未出场
|
检测到分包下存在2个班组,12名施工人员未出场
|
||||||
</div>
|
</div>
|
||||||
<el-form
|
<el-form
|
||||||
:label-width="formType === 2 ? '220px' : '120px'"
|
|
||||||
ref="addOrEditFormRef"
|
ref="addOrEditFormRef"
|
||||||
:model="addOrEditForm"
|
:model="addOrEditForm"
|
||||||
:rules="addOrEditFormRules"
|
:rules="addOrEditFormRules"
|
||||||
|
:label-width="formType === 2 || formType === 3 ? '220px' : '120px'"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="onChangeSubIdFun"
|
@change="onChangeSubIdFun"
|
||||||
v-model="addOrEditForm.subId"
|
v-model="addOrEditForm.subId"
|
||||||
:disabled="formType === 2"
|
:disabled="formType === 2 || formType === 3"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="onChangeTeamIdFun"
|
@change="onChangeTeamIdFun"
|
||||||
v-model="addOrEditForm.teamId"
|
v-model="addOrEditForm.teamId"
|
||||||
:disabled="formType === 2"
|
:disabled="formType === 2 || formType === 3"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="onChangeProIdFun"
|
@change="onChangeProIdFun"
|
||||||
v-model="addOrEditForm.proId"
|
v-model="addOrEditForm.proId"
|
||||||
:disabled="formType === 2"
|
:disabled="formType === 2 || formType === 3"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|
@ -70,7 +70,35 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row v-if="formType === 2">
|
|
||||||
|
<el-row v-if="formType === 3">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="入场日期">
|
||||||
|
<el-date-picker
|
||||||
|
disabled
|
||||||
|
type="date"
|
||||||
|
style="width: 100%"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
v-model="addOrEditForm.teamEinTime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row v-if="formType === 3">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="出场日期">
|
||||||
|
<el-date-picker
|
||||||
|
disabled
|
||||||
|
type="date"
|
||||||
|
style="width: 100%"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
v-model="addOrEditForm.teamExitTime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row v-if="formType === 2 || formType === 3">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
prop="businessLicense"
|
prop="businessLicense"
|
||||||
|
|
@ -80,7 +108,12 @@
|
||||||
:limit="3"
|
:limit="3"
|
||||||
:file-size="20"
|
:file-size="20"
|
||||||
:multiple="true"
|
:multiple="true"
|
||||||
uploadTip="身份证、银行卡扫描件,承诺书、劳动合同或用工协议扫描件"
|
:is-detail="formType === 3"
|
||||||
|
:uploadTip="
|
||||||
|
formType === 3
|
||||||
|
? ''
|
||||||
|
: '身份证、银行卡扫描件,承诺书、劳动合同或用工协议扫描件'
|
||||||
|
"
|
||||||
:file-list.sync="addOrEditForm.businessLicense"
|
:file-list.sync="addOrEditForm.businessLicense"
|
||||||
:file-type="[
|
:file-type="[
|
||||||
'jpg',
|
'jpg',
|
||||||
|
|
@ -134,6 +167,9 @@ export default {
|
||||||
proName: '',
|
proName: '',
|
||||||
teamName: '',
|
teamName: '',
|
||||||
teamEinStatus: '',
|
teamEinStatus: '',
|
||||||
|
teamEinTime: '',
|
||||||
|
teamExitTime: '',
|
||||||
|
|
||||||
businessLicense: [],
|
businessLicense: [],
|
||||||
},
|
},
|
||||||
addOrEditFormRules: {
|
addOrEditFormRules: {
|
||||||
|
|
@ -288,6 +324,16 @@ export default {
|
||||||
handler(newVal) {
|
handler(newVal) {
|
||||||
if (Object.keys(newVal).length > 0) {
|
if (Object.keys(newVal).length > 0) {
|
||||||
Object.assign(this.addOrEditForm, newVal)
|
Object.assign(this.addOrEditForm, newVal)
|
||||||
|
|
||||||
|
if (newVal.contractFile && newVal.contractFile.length > 0) {
|
||||||
|
this.addOrEditForm.businessLicense =
|
||||||
|
newVal.contractFile.map((e) => {
|
||||||
|
return {
|
||||||
|
url: e.lsUrl,
|
||||||
|
name: e.fileName,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
|
|
|
||||||
|
|
@ -41,16 +41,32 @@
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- 施工承诺书 -->
|
||||||
|
<template slot="contractFile" slot-scope="{ data }">
|
||||||
|
{{ initContractFile(data) }}
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="handle" slot-scope="{ data }">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-button
|
<el-button
|
||||||
plain
|
plain
|
||||||
size="mini"
|
size="mini"
|
||||||
type="success"
|
type="success"
|
||||||
icon="el-icon-check"
|
icon="el-icon-check"
|
||||||
|
v-if="data.teamEinStatus == 1"
|
||||||
@click="onHandleEntryAndExit(2, data)"
|
@click="onHandleEntryAndExit(2, data)"
|
||||||
>
|
>
|
||||||
出场
|
出场
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-view"
|
||||||
|
v-if="data.teamEinStatus == 2"
|
||||||
|
@click="onHandleEntryAndExit(3, data)"
|
||||||
|
>
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableModel>
|
</TableModel>
|
||||||
|
|
||||||
|
|
@ -88,10 +104,7 @@ import DialogModel from '@/components/DialogModel'
|
||||||
import EntryAndExitForm from './entry-and-exit-form'
|
import EntryAndExitForm from './entry-and-exit-form'
|
||||||
|
|
||||||
import { formLabel, columnsList, dialogConfig } from './config'
|
import { formLabel, columnsList, dialogConfig } from './config'
|
||||||
import {
|
import { getTeamEntryListAPI } from '@/api/basic-manage/team-manage/team-entry-and-exit'
|
||||||
deleteTeamEntryAPI,
|
|
||||||
getTeamEntryListAPI,
|
|
||||||
} from '@/api/basic-manage/team-manage/team-entry-and-exit'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'TeamEntryAndExit',
|
name: 'TeamEntryAndExit',
|
||||||
|
|
@ -115,16 +128,45 @@ export default {
|
||||||
// 导出按钮
|
// 导出按钮
|
||||||
onHandleExportAllProject(queryParams) {
|
onHandleExportAllProject(queryParams) {
|
||||||
console.log(queryParams, '导出')
|
console.log(queryParams, '导出')
|
||||||
|
this.download(
|
||||||
|
'/bmw/subTeamContract/export',
|
||||||
|
{
|
||||||
|
...queryParams,
|
||||||
|
},
|
||||||
|
`班组出入场列表.xlsx`,
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
// 入场或出场
|
// 入场或出场 详情
|
||||||
onHandleEntryAndExit(type, data) {
|
onHandleEntryAndExit(type, data) {
|
||||||
this.formType = type
|
this.formType = type
|
||||||
this.dialogConfig.outerTitle = type === 1 ? '班组入场' : '班组出场'
|
this.dialogConfig.outerTitle = type === 1 ? '班组入场' : '班组出场'
|
||||||
|
|
||||||
|
if (type === 1) {
|
||||||
|
this.dialogConfig.outerTitle = '班组入场'
|
||||||
|
this.editFormData = {}
|
||||||
|
}
|
||||||
if (type === 2) {
|
if (type === 2) {
|
||||||
const { subId, proId, teamId, id, subName, proName, teamName } =
|
this.dialogConfig.outerTitle = '班组出场'
|
||||||
data
|
}
|
||||||
|
|
||||||
|
if (type === 3) {
|
||||||
|
this.dialogConfig.outerTitle = '详情'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type === 2 || type === 3) {
|
||||||
|
const {
|
||||||
|
subId,
|
||||||
|
proId,
|
||||||
|
teamId,
|
||||||
|
id,
|
||||||
|
subName,
|
||||||
|
proName,
|
||||||
|
teamName,
|
||||||
|
teamEinTime,
|
||||||
|
teamExitTime,
|
||||||
|
contractFile,
|
||||||
|
} = data
|
||||||
this.editFormData = {
|
this.editFormData = {
|
||||||
id,
|
id,
|
||||||
subId,
|
subId,
|
||||||
|
|
@ -133,10 +175,12 @@ export default {
|
||||||
subName,
|
subName,
|
||||||
proName,
|
proName,
|
||||||
teamName,
|
teamName,
|
||||||
|
teamEinTime,
|
||||||
|
teamExitTime,
|
||||||
|
contractFile,
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this.editFormData = {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.dialogConfig.outerVisible = true
|
this.dialogConfig.outerVisible = true
|
||||||
},
|
},
|
||||||
// 确定按钮
|
// 确定按钮
|
||||||
|
|
@ -154,6 +198,15 @@ export default {
|
||||||
handleCloseDialogOuter() {
|
handleCloseDialogOuter() {
|
||||||
this.dialogConfig.outerVisible = false
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 初始化施工承诺书
|
||||||
|
initContractFile(data) {
|
||||||
|
if (data.contractFile && data.contractFile.length > 0) {
|
||||||
|
return '已上传'
|
||||||
|
} else {
|
||||||
|
return '-'
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,591 +0,0 @@
|
||||||
<template>
|
|
||||||
<!-- 新增或修改标段工程表单 -->
|
|
||||||
<div>
|
|
||||||
<el-form
|
|
||||||
label-width="140px"
|
|
||||||
ref="addOrEditFormRef"
|
|
||||||
:model="addOrEditForm"
|
|
||||||
:rules="addOrEditFormRules"
|
|
||||||
>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="身份证读卡器地址" prop="subName">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入身份证读卡器地址"
|
|
||||||
v-model="addOrEditForm.subName"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item>
|
|
||||||
<el-button size="medium" type="primary" plain>
|
|
||||||
建立连接
|
|
||||||
</el-button>
|
|
||||||
<el-button size="medium" type="primary" plain>
|
|
||||||
断开连接
|
|
||||||
</el-button>
|
|
||||||
<el-button size="medium" type="primary" plain>
|
|
||||||
下载驱动
|
|
||||||
</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<TitleTip
|
|
||||||
titleText="人员信息"
|
|
||||||
justifyContent="flex-start"
|
|
||||||
borderBottom="none"
|
|
||||||
backgroundColor="#f8fafc"
|
|
||||||
padding="24px 10px"
|
|
||||||
>
|
|
||||||
<template>
|
|
||||||
<span class="tip-text">
|
|
||||||
(必须填写,连接身份证读卡器自动填充数据)
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</TitleTip>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="姓名" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入姓名"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="身份证号" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入身份证号"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="性别" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入性别"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="出生日期" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入出生日期"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="民族" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入民族"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="签发机关" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入签发机关"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="生效日期" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入生效日期"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="失效日期" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入失效日期"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="身份证住址" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入身份证住址"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="人脸照片" prop="businessAddress">
|
|
||||||
<UploadImg
|
|
||||||
:limit="30"
|
|
||||||
:file-size="10"
|
|
||||||
:multiple="true"
|
|
||||||
:is-detail="formType === 2"
|
|
||||||
:file-type="['jpg', 'png', 'jpeg']"
|
|
||||||
:upload-file-url="uploadFileUrl"
|
|
||||||
:file-list.sync="addOrEditForm.businessLicense"
|
|
||||||
:is-uploaded="
|
|
||||||
addOrEditForm.businessLicense.length >= 2
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<TitleTip
|
|
||||||
titleText="关键信息"
|
|
||||||
justifyContent="flex-start"
|
|
||||||
borderBottom="none"
|
|
||||||
backgroundColor="#f8fafc"
|
|
||||||
padding="24px 10px"
|
|
||||||
>
|
|
||||||
<template>
|
|
||||||
<span class="tip-text">
|
|
||||||
(必须填写,自动创建用户账号,手机号为登录账号)
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</TitleTip>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="入场工程" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入入场工程"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工种" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入工种"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="入场分包" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入入场分包"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="手机号码" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入手机号码"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="入场班组" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入入场班组"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<TitleTip
|
|
||||||
titleText="合同见证"
|
|
||||||
justifyContent="flex-start"
|
|
||||||
borderBottom="none"
|
|
||||||
backgroundColor="#f8fafc"
|
|
||||||
padding="24px 10px"
|
|
||||||
>
|
|
||||||
<template>
|
|
||||||
<span class="tip-text"> (生产工资册之前必须完善) </span>
|
|
||||||
</template>
|
|
||||||
</TitleTip>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="合同见证照片" prop="businessLicense">
|
|
||||||
<div style="display: flex; gap: 10px">
|
|
||||||
<div
|
|
||||||
class="contract-img-box"
|
|
||||||
v-for="item in contractImageList"
|
|
||||||
:key="item.title"
|
|
||||||
>
|
|
||||||
<UploadImg
|
|
||||||
:limit="30"
|
|
||||||
:file-size="10"
|
|
||||||
:multiple="true"
|
|
||||||
:is-detail="formType === 2"
|
|
||||||
:file-type="['jpg', 'png', 'jpeg']"
|
|
||||||
:upload-file-url="uploadFileUrl"
|
|
||||||
:file-list.sync="
|
|
||||||
addOrEditForm.businessLicense
|
|
||||||
"
|
|
||||||
:is-uploaded="
|
|
||||||
addOrEditForm.businessLicense.length >=
|
|
||||||
2
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<span> {{ item.title }} </span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="合同编号" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入合同编号"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="合同期限类型" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入合同期限类型"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="合同签订日期" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入合同签订日期"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="合同终止日期" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入合同终止日期"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工资核定方式" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入工资核定方式"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工资核定标准" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入工资核定标准"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="附件" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入附件"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<TitleTip
|
|
||||||
titleText="工资卡见证"
|
|
||||||
borderBottom="none"
|
|
||||||
padding="24px 10px"
|
|
||||||
backgroundColor="#f8fafc"
|
|
||||||
justifyContent="flex-start"
|
|
||||||
>
|
|
||||||
<template>
|
|
||||||
<span class="tip-text"> (生产工资册之前必须完善) </span>
|
|
||||||
</template>
|
|
||||||
</TitleTip>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="工资卡见证照片" prop="businessLicense">
|
|
||||||
<div style="display: flex; gap: 10px">
|
|
||||||
<div
|
|
||||||
class="contract-img-box"
|
|
||||||
v-for="item in bankImageList"
|
|
||||||
:key="item.title"
|
|
||||||
>
|
|
||||||
<UploadImg
|
|
||||||
:limit="30"
|
|
||||||
:file-size="10"
|
|
||||||
:multiple="true"
|
|
||||||
:is-detail="formType === 2"
|
|
||||||
:file-type="['jpg', 'png', 'jpeg']"
|
|
||||||
:upload-file-url="uploadFileUrl"
|
|
||||||
:file-list.sync="
|
|
||||||
addOrEditForm.businessLicense
|
|
||||||
"
|
|
||||||
:is-uploaded="
|
|
||||||
addOrEditForm.businessLicense.length >=
|
|
||||||
2
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<span> {{ item.title }} </span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="银行卡号" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入银行卡号"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="银行名称" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入银行名称"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="附件" prop="phone">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入附件"
|
|
||||||
v-model="addOrEditForm.phone"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="银行支行名称" prop="businessAddress">
|
|
||||||
<el-input
|
|
||||||
clearable
|
|
||||||
placeholder="请输入银行支行名称"
|
|
||||||
v-model="addOrEditForm.businessAddress"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import UploadImg from '@/components/UploadImg'
|
|
||||||
import {
|
|
||||||
addSubBaseInfoAPI,
|
|
||||||
editSubBaseInfoAPI,
|
|
||||||
} from '@/api/basic-manage/sub-manage/sub-base-info'
|
|
||||||
export default {
|
|
||||||
name: 'AddOrEditForm',
|
|
||||||
components: {
|
|
||||||
UploadImg,
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
formType: 1,
|
|
||||||
uploadFileUrl:
|
|
||||||
process.env.VUE_APP_BASE_API + '/system/file/uploadFiles',
|
|
||||||
addOrEditForm: {
|
|
||||||
subName: '', // 分包商名称
|
|
||||||
legalRepresentative: '', // 法定代表人
|
|
||||||
phone: '', // 联系电话
|
|
||||||
businessAddress: '', // 营业住址
|
|
||||||
|
|
||||||
businessLicense: [], // 营业执照
|
|
||||||
electronicStamp: [], // 电子公章
|
|
||||||
idCard: [], // 身份证正反面
|
|
||||||
electronicSignature: [], // 电子签名/法人印章
|
|
||||||
},
|
|
||||||
contractImageList: [
|
|
||||||
{
|
|
||||||
title: '人员手持合同照',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '工作内容页',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '薪酬约定页',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '本人签名页',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '其他照片',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
bankImageList: [
|
|
||||||
{
|
|
||||||
title: '手持银行卡、承诺书',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '银行卡照片',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '个人工资卡承诺书',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '其它照片',
|
|
||||||
imgList: [],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
addOrEditFormRules: {
|
|
||||||
subName: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入分包商名称',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
legalRepresentative: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入法定代表人',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
businessLicense: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请上传营业执照',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
electronicStamp: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请上传电子公章',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
idCard: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请上传身份证正反面',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
electronicSignature: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请上传电子签名/法人印章',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 确定按钮
|
|
||||||
onHandleConfirmAddOrEditFun() {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this.$refs.addOrEditFormRef.validate(async (valid) => {
|
|
||||||
if (valid) {
|
|
||||||
console.log(this.addOrEditForm)
|
|
||||||
|
|
||||||
const API =
|
|
||||||
this.formType === 1
|
|
||||||
? addSubBaseInfoAPI
|
|
||||||
: editSubBaseInfoAPI
|
|
||||||
const res = await API(this.addOrEditForm)
|
|
||||||
console.log(res, '新增或修改结果')
|
|
||||||
if (res.code === 200) {
|
|
||||||
resolve()
|
|
||||||
} else {
|
|
||||||
reject(new Error(res.message))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
reject(new Error('表单验证失败'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// 重置表单
|
|
||||||
resetForm() {
|
|
||||||
this.$refs.addOrEditFormRef.resetFields()
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
@import '@/assets/styles/variables.scss';
|
|
||||||
.contract-img-box {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-size: 14px;
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -56,17 +56,17 @@ export const formLabel = [
|
||||||
]
|
]
|
||||||
|
|
||||||
export const columnsList = [
|
export const columnsList = [
|
||||||
{ t_props: 'projectName', t_label: '姓名' },
|
{ t_props: 'name', t_label: '姓名' },
|
||||||
{ t_props: 'xmb', t_label: '身份证' },
|
{ t_props: 'idNumber', t_label: '身份证' },
|
||||||
{ t_props: 'name', t_label: '所属工程' },
|
{ t_props: 'proName', t_label: '所属工程' },
|
||||||
{ t_props: 'type', t_label: '所属班组' },
|
{ t_props: 'teamName', t_label: '所属班组' },
|
||||||
{
|
{
|
||||||
t_props: 'businessLicense',
|
t_slot: 'einStatus',
|
||||||
t_label: '出入场状态',
|
t_label: '出入场状态',
|
||||||
},
|
},
|
||||||
{ t_props: 'idCard', t_label: '入场时间' },
|
{ t_props: 'einTime', t_label: '入场时间' },
|
||||||
{
|
{
|
||||||
t_props: 'electronicStamp',
|
t_props: 'exitTime',
|
||||||
t_label: '出场时间',
|
t_label: '出场时间',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -74,7 +74,7 @@ export const columnsList = [
|
||||||
t_label: '离场人员工资结算确认单',
|
t_label: '离场人员工资结算确认单',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
t_props: 'electronicSignature',
|
t_props: 'subName',
|
||||||
t_label: '所属分包',
|
t_label: '所属分包',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
@ -82,7 +82,7 @@ export const columnsList = [
|
||||||
export const dialogConfig = {
|
export const dialogConfig = {
|
||||||
outerVisible: false,
|
outerVisible: false,
|
||||||
outerTitle: '',
|
outerTitle: '',
|
||||||
outerWidth: '90%',
|
outerWidth: '50%',
|
||||||
minHeight: '98vh',
|
minHeight: '',
|
||||||
maxHeight: '98vh',
|
maxHeight: '',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
<template>
|
||||||
|
<!-- 出入场记录 -->
|
||||||
|
<div>
|
||||||
|
<el-table :data="entryExitRecordList">
|
||||||
|
<el-table-column label="序号" type="index" width="50" />
|
||||||
|
<el-table-column prop="name" label="姓名" />
|
||||||
|
<el-table-column prop="idNumber" label="工种" />
|
||||||
|
<el-table-column prop="proName" label="所属工程" />
|
||||||
|
<el-table-column prop="teamName" label="所属分包" />
|
||||||
|
<el-table-column prop="einStatus" label="所属班组" />
|
||||||
|
<el-table-column prop="einStatus" label="入场时间" />
|
||||||
|
<el-table-column prop="einStatus" label="出场时间" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'EntryExitRecord',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
entryExitRecordList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
||||||
|
|
@ -35,13 +35,23 @@
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template slot="einStatus" slot-scope="{ data }">
|
||||||
|
<el-tag size="mini" type="success" v-if="data.einStatus === 1">
|
||||||
|
在场
|
||||||
|
</el-tag>
|
||||||
|
<el-tag size="mini" type="danger" v-if="data.einStatus === 2">
|
||||||
|
出场
|
||||||
|
</el-tag>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template slot="handle" slot-scope="{ data }">
|
<template slot="handle" slot-scope="{ data }">
|
||||||
<el-button
|
<el-button
|
||||||
plain
|
plain
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-right"
|
icon="el-icon-right"
|
||||||
@click="onHandleAddOrEditAllProject(2, data)"
|
v-if="data.einStatus === 1"
|
||||||
|
@click="onHandlePersonExit(data)"
|
||||||
>
|
>
|
||||||
出场
|
出场
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -50,7 +60,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-tickets"
|
icon="el-icon-tickets"
|
||||||
@click="onHandleDeleteAllProject(data)"
|
@click="onHandleEntryAndExitRecord(data)"
|
||||||
>
|
>
|
||||||
出入场记录
|
出入场记录
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -62,7 +72,15 @@
|
||||||
@closeDialogOuter="handleCloseDialogOuter"
|
@closeDialogOuter="handleCloseDialogOuter"
|
||||||
>
|
>
|
||||||
<template slot="outerContent">
|
<template slot="outerContent">
|
||||||
<AddOrEditForm ref="addOrEditFormContentRef" />
|
<PersonExitForm
|
||||||
|
ref="personExitFormRef"
|
||||||
|
:exitFormData="exitFormData"
|
||||||
|
v-if="dialogConfig.outerTitle === '人员出场'"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<EntryExitRecord
|
||||||
|
v-if="dialogConfig.outerTitle === '出入场记录'"
|
||||||
|
/>
|
||||||
|
|
||||||
<el-row class="dialog-footer-btn">
|
<el-row class="dialog-footer-btn">
|
||||||
<el-button size="medium" @click="handleCloseDialogOuter">
|
<el-button size="medium" @click="handleCloseDialogOuter">
|
||||||
|
|
@ -84,7 +102,8 @@
|
||||||
<script>
|
<script>
|
||||||
import TableModel from '@/components/TableModel'
|
import TableModel from '@/components/TableModel'
|
||||||
import DialogModel from '@/components/DialogModel'
|
import DialogModel from '@/components/DialogModel'
|
||||||
import AddOrEditForm from './add-or-edit-form'
|
import PersonExitForm from './person-exit-form.vue'
|
||||||
|
import EntryExitRecord from './entry-exit-record.vue'
|
||||||
import { formLabel, columnsList, dialogConfig } from './config'
|
import { formLabel, columnsList, dialogConfig } from './config'
|
||||||
import {
|
import {
|
||||||
deleteSubBaseInfoAPI,
|
deleteSubBaseInfoAPI,
|
||||||
|
|
@ -97,7 +116,8 @@ export default {
|
||||||
components: {
|
components: {
|
||||||
TableModel,
|
TableModel,
|
||||||
DialogModel,
|
DialogModel,
|
||||||
AddOrEditForm,
|
PersonExitForm,
|
||||||
|
EntryExitRecord,
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -105,7 +125,7 @@ export default {
|
||||||
formLabel,
|
formLabel,
|
||||||
columnsList,
|
columnsList,
|
||||||
dialogConfig,
|
dialogConfig,
|
||||||
|
exitFormData: {},
|
||||||
getExitPersonListAPI,
|
getExitPersonListAPI,
|
||||||
|
|
||||||
slots: {
|
slots: {
|
||||||
|
|
@ -134,47 +154,49 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 新增或修改
|
onHandlePersonExit(data) {
|
||||||
onHandleAddOrEditAllProject(type, data) {
|
const { name, idNumber, proName, subName, teamName, id, workerId } =
|
||||||
this.dialogConfig.outerTitle =
|
data
|
||||||
type === 1 ? '新增标段工程' : '修改标段工程'
|
|
||||||
this.dialogConfig.outerVisible = true
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除
|
this.exitFormData = {
|
||||||
onHandleDeleteAllProject(data) {
|
id,
|
||||||
this.$confirm('确定删除该工程吗?', '温馨提示', {
|
name,
|
||||||
confirmButtonText: '确定',
|
proName,
|
||||||
cancelButtonText: '取消',
|
subName,
|
||||||
type: 'warning',
|
teamName,
|
||||||
})
|
idNumber,
|
||||||
.then(async () => {
|
workerId,
|
||||||
const res = await deleteSubBaseInfoAPI(data.id)
|
}
|
||||||
console.log(res, '删除结果')
|
this.dialogConfig.outerWidth = ''
|
||||||
if (res.code === 200) {
|
this.dialogConfig.minHeight = ''
|
||||||
this.$msgSuccess('删除成功')
|
this.dialogConfig.maxHeight = ''
|
||||||
this.$refs.personExitTableRef.getTableList() // 更新列表
|
this.dialogConfig.outerTitle = '人员出场'
|
||||||
}
|
this.dialogConfig.outerVisible = true
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
console.log('取消')
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 确定按钮
|
// 确定按钮
|
||||||
async onHandleConfirmAddOrEdit() {
|
async onHandleConfirmAddOrEdit() {
|
||||||
this.$refs.addOrEditFormContentRef.formType =
|
|
||||||
this.dialogConfig.outerTitle === '新增标段工程' ? 1 : 2
|
|
||||||
try {
|
try {
|
||||||
await this.$refs.addOrEditFormContentRef.onHandleConfirmAddOrEditFun()
|
await this.$refs.personExitFormRef.onHandleConfirmAddOrEditFun()
|
||||||
|
this.handleCloseDialogOuter()
|
||||||
|
this.$refs.personExitTableRef.getTableList() // 更新列表
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log('表单提交失败', error)
|
console.log('表单提交失败', error)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 出入场记录
|
||||||
|
onHandleEntryAndExitRecord(data) {
|
||||||
|
console.log('----')
|
||||||
|
this.dialogConfig.outerTitle = '出入场记录'
|
||||||
|
this.dialogConfig.outerWidth = '80%'
|
||||||
|
this.dialogConfig.minHeight = '90vh'
|
||||||
|
this.dialogConfig.maxHeight = '90vh'
|
||||||
|
this.dialogConfig.outerVisible = true
|
||||||
|
},
|
||||||
|
|
||||||
// 关闭弹框
|
// 关闭弹框
|
||||||
handleCloseDialogOuter() {
|
handleCloseDialogOuter() {
|
||||||
this.$refs.addOrEditFormContentRef.resetForm()
|
|
||||||
this.dialogConfig.outerVisible = false
|
this.dialogConfig.outerVisible = false
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<template>
|
||||||
|
<!-- 新增或修改标段工程表单 -->
|
||||||
|
<div>
|
||||||
|
<el-form
|
||||||
|
label-width="140px"
|
||||||
|
ref="addOrEditFormRef"
|
||||||
|
:model="personExitFormData"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="姓名">
|
||||||
|
<el-input disabled v-model="personExitFormData.name" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="身份证号">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="personExitFormData.idNumber"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="工程名称">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="personExitFormData.proName"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="分包商名称">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="personExitFormData.subName"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="班组名称">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="personExitFormData.teamName"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="离场工资结算确认单">
|
||||||
|
<UploadFileFormData
|
||||||
|
:limit="3"
|
||||||
|
:file-size="20"
|
||||||
|
:multiple="true"
|
||||||
|
:file-list.sync="personExitFormData.fileList"
|
||||||
|
uploadTip="可上传多张,离场工资结算单,人员手持结算单照片"
|
||||||
|
:file-type="[
|
||||||
|
'jpg',
|
||||||
|
'png',
|
||||||
|
'jpeg',
|
||||||
|
'pdf',
|
||||||
|
'doc',
|
||||||
|
'docx',
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import UploadFileFormData from '@/components/UploadFileFormData'
|
||||||
|
import { addEntryPersonAPI } from '@/api/construction-person/entry-and-exit-manage/person-exit'
|
||||||
|
export default {
|
||||||
|
name: 'personExitForm',
|
||||||
|
components: {
|
||||||
|
UploadFileFormData,
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
exitFormData: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
personExitFormData: {
|
||||||
|
id: '',
|
||||||
|
name: '',
|
||||||
|
idNumber: '',
|
||||||
|
proName: '',
|
||||||
|
subName: '',
|
||||||
|
teamName: '',
|
||||||
|
fileList: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 确定按钮
|
||||||
|
onHandleConfirmAddOrEditFun() {
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
const { id, workerId, fileList } = this.personExitFormData
|
||||||
|
const params = {
|
||||||
|
id,
|
||||||
|
workerId,
|
||||||
|
}
|
||||||
|
|
||||||
|
const formData = new FormData()
|
||||||
|
const fileMsg = []
|
||||||
|
|
||||||
|
if (fileList.length > 0) {
|
||||||
|
fileList.forEach((e) => {
|
||||||
|
formData.append('files', e.raw)
|
||||||
|
fileMsg.push({
|
||||||
|
name: '工资结算确认单',
|
||||||
|
type: 1,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
formData.append('params', JSON.stringify(params))
|
||||||
|
formData.append('fileMsg', JSON.stringify(fileMsg))
|
||||||
|
const res = await addEntryPersonAPI(formData)
|
||||||
|
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$modal.msgSuccess('出场成功')
|
||||||
|
resolve()
|
||||||
|
} else {
|
||||||
|
this.$modal.msgError(res.msg)
|
||||||
|
reject(new Error(res.msg))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
exitFormData: {
|
||||||
|
handler(newVal) {
|
||||||
|
if (Object.keys(newVal).length > 0) {
|
||||||
|
Object.assign(this.personExitFormData, newVal)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import '@/assets/styles/variables.scss';
|
||||||
|
.contract-img-box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 14px;
|
||||||
|
color: $red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue