This commit is contained in:
parent
7308366adc
commit
ff5304db60
|
|
@ -21,8 +21,9 @@ export const deleteEntryPersonAPI = (data) => {
|
|||
// 人员入场 获取人员详情接口
|
||||
export const getEntryPersonDetailAPI = (data) => {
|
||||
return request({
|
||||
url: `/bmw/worker/select/${data.id}/${data.proId}`,
|
||||
url: `/bmw/worker/select`,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 人员入场 修改人员接口
|
||||
|
|
@ -98,7 +99,7 @@ export const getShanghaiProListByWorkerIdAPI = (data) => {
|
|||
|
||||
// 上海人员入场新工程接口
|
||||
export const addShanghaiProEinAPI = (data) => {
|
||||
return request({
|
||||
return requestFormData({
|
||||
url: '/bmw/worker/insertProEin',
|
||||
method: 'POST',
|
||||
data,
|
||||
|
|
|
|||
|
|
@ -187,6 +187,166 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item
|
||||
label="合同见证照片"
|
||||
prop="businessLicense"
|
||||
>
|
||||
<div style="display: flex; gap: 10px">
|
||||
<div
|
||||
:key="item.title"
|
||||
class="contract-img-box"
|
||||
v-for="item in contractImageList"
|
||||
>
|
||||
<UploadImgFormData
|
||||
:limit="3"
|
||||
:file-size="10"
|
||||
:multiple="true"
|
||||
v-if="item.type != 6"
|
||||
:file-list.sync="item.fileList"
|
||||
:file-type="['jpg', 'png', 'jpeg']"
|
||||
:is-uploaded="
|
||||
item.fileList.length >= 3
|
||||
"
|
||||
/>
|
||||
|
||||
<span v-if="item.type != 6">
|
||||
{{ item.title }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同编号" prop="contractCode">
|
||||
<el-input
|
||||
clearable
|
||||
maxlength="50"
|
||||
show-word-limit
|
||||
placeholder="请输入合同编号"
|
||||
v-model.trim="
|
||||
addEntryProjectForm.contractCode
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="合同期限类型"
|
||||
prop="contractTermType"
|
||||
>
|
||||
<el-radio-group
|
||||
size="mini"
|
||||
v-model="
|
||||
addEntryProjectForm.contractTermType
|
||||
"
|
||||
>
|
||||
<el-radio-button
|
||||
label="以完成一定工作为期限的合同"
|
||||
/>
|
||||
<el-radio-button label="固定期限合同" />
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="合同签订日期"
|
||||
prop="contractStartDate"
|
||||
>
|
||||
<el-date-picker
|
||||
type="date"
|
||||
style="width: 100%"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择合同签订日期"
|
||||
v-model.trim="
|
||||
addEntryProjectForm.contractStartDate
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="合同终止日期"
|
||||
prop="contractStopDate"
|
||||
>
|
||||
<el-date-picker
|
||||
type="date"
|
||||
style="width: 100%"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择合同终止日期"
|
||||
v-model.trim="
|
||||
addEntryProjectForm.contractStopDate
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="工资核定方式"
|
||||
prop="wageApprovedWay"
|
||||
>
|
||||
<el-radio-group
|
||||
size="mini"
|
||||
v-model="
|
||||
addEntryProjectForm.wageApprovedWay
|
||||
"
|
||||
>
|
||||
<el-radio-button label="天" />
|
||||
<!-- <el-radio-button label="月" /> -->
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="工资核定标准"
|
||||
prop="wageCriterion"
|
||||
>
|
||||
<el-input
|
||||
clearable
|
||||
maxlength="10"
|
||||
show-word-limit
|
||||
placeholder="请输入工资核定标准"
|
||||
v-model.trim="
|
||||
addEntryProjectForm.wageCriterion
|
||||
"
|
||||
/>
|
||||
</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"
|
||||
uploadTip="身份证、银行卡扫描件,承诺书、劳动合同或用工协议扫描件"
|
||||
:file-list.sync="
|
||||
contractImageList[1].fileList
|
||||
"
|
||||
:file-type="[
|
||||
'jpg',
|
||||
'png',
|
||||
'jpeg',
|
||||
'pdf',
|
||||
'doc',
|
||||
'docx',
|
||||
]"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<el-row class="dialog-footer-btn">
|
||||
|
|
@ -215,6 +375,8 @@
|
|||
|
||||
<script>
|
||||
import DialogModel from '@/components/DialogModel'
|
||||
import UploadImgFormData from '@/components/UploadImgFormData'
|
||||
import UploadFileFormData from '@/components/UploadFileFormData'
|
||||
import {
|
||||
getShanghaiProByIdNumberAPI,
|
||||
getShanghaiProListByWorkerIdAPI,
|
||||
|
|
@ -231,6 +393,8 @@ export default {
|
|||
name: 'ShanghaiProSetting',
|
||||
components: {
|
||||
DialogModel,
|
||||
UploadFileFormData,
|
||||
UploadImgFormData,
|
||||
},
|
||||
props: {
|
||||
idNumber: {
|
||||
|
|
@ -239,9 +403,44 @@ export default {
|
|||
},
|
||||
},
|
||||
data() {
|
||||
const validateContractStartDate = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
return callback()
|
||||
}
|
||||
if (value >= this.addEntryProjectForm.contractStopDate) {
|
||||
callback(new Error('合同签订日期不能大于合同终止日期'))
|
||||
}
|
||||
callback()
|
||||
}
|
||||
|
||||
const validateContractStopDate = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
return callback()
|
||||
}
|
||||
if (value <= this.addEntryProjectForm.contractStartDate) {
|
||||
callback(new Error('合同终止日期不能小于合同签订日期'))
|
||||
}
|
||||
callback()
|
||||
}
|
||||
return {
|
||||
currentStep: 1,
|
||||
tableData: [],
|
||||
// 工资卡附件
|
||||
contractImageList: [
|
||||
{
|
||||
type: 1,
|
||||
fileList: [],
|
||||
name: 'wageCard',
|
||||
title: '手持银行卡、承诺书',
|
||||
},
|
||||
|
||||
{
|
||||
type: 6,
|
||||
title: '附件',
|
||||
fileList: [],
|
||||
name: 'wageCard',
|
||||
},
|
||||
],
|
||||
columnsList: [
|
||||
{
|
||||
prop: 'name',
|
||||
|
|
@ -280,9 +479,9 @@ export default {
|
|||
dialogConfig: {
|
||||
outerVisible: false,
|
||||
outerTitle: '新增入场工程',
|
||||
outerWidth: '40%',
|
||||
outerWidth: '60%',
|
||||
// minHeight: '78vh',
|
||||
// maxHeight: '78vh',
|
||||
maxHeight: '90vh',
|
||||
},
|
||||
|
||||
addEntryProjectForm: {
|
||||
|
|
@ -297,6 +496,12 @@ export default {
|
|||
proId: '',
|
||||
postId: '',
|
||||
id: '',
|
||||
contractCode: '',
|
||||
contractTermType: '以完成一定工作为期限的合同',
|
||||
contractStartDate: null,
|
||||
contractStopDate: null,
|
||||
wageApprovedWay: '天',
|
||||
wageCriterion: '',
|
||||
},
|
||||
|
||||
addEntryProjectFormRules: {
|
||||
|
|
@ -336,6 +541,34 @@ export default {
|
|||
message: '请输入入场班组',
|
||||
},
|
||||
],
|
||||
contractStartDate: [
|
||||
{
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
trigger: ['change', 'blur'],
|
||||
validator: validateContractStartDate,
|
||||
},
|
||||
],
|
||||
contractStopDate: [
|
||||
{
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
trigger: ['change', 'blur'],
|
||||
validator: validateContractStopDate,
|
||||
},
|
||||
],
|
||||
wageCriterion: [
|
||||
{
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
trigger: 'blur',
|
||||
pattern: /^[1-9]\d{0,5}$/,
|
||||
message: '请输入1-999999之间的正整数',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
idNumberForm: {
|
||||
|
|
@ -452,20 +685,109 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
// 检查表单状态
|
||||
checkFormStatus() {
|
||||
// 检查图片是否有上传(排除附件)
|
||||
let fieldsList = [
|
||||
// 'contractCode', // 合同编号
|
||||
'wageCriterion', // 工资核定标准
|
||||
'contractStopDate', // 合同终止日期
|
||||
'contractStartDate', // 合同签订日期
|
||||
]
|
||||
|
||||
if (
|
||||
this.addEntryProjectForm.contractTermType ===
|
||||
'以完成一定工作为期限的合同'
|
||||
) {
|
||||
fieldsList = fieldsList.filter(
|
||||
(item) => item !== 'contractStopDate',
|
||||
)
|
||||
}
|
||||
const imageFieldsToCheck = this.contractImageList.slice(0, -1) // 排除最后一个附件
|
||||
|
||||
// 检查字段是否全部为空或全部有值
|
||||
let emptyFieldCount = 0
|
||||
let filledFieldCount = 0
|
||||
|
||||
// 检查普通字段
|
||||
fieldsList.forEach((field) => {
|
||||
if (!this.addEntryProjectForm[field]) {
|
||||
emptyFieldCount++
|
||||
} else {
|
||||
filledFieldCount++
|
||||
}
|
||||
})
|
||||
|
||||
// 检查图片字段
|
||||
imageFieldsToCheck.forEach((item) => {
|
||||
if (item.fileList.length === 0) {
|
||||
emptyFieldCount++
|
||||
} else {
|
||||
filledFieldCount++
|
||||
}
|
||||
})
|
||||
|
||||
// 返回状态
|
||||
if (
|
||||
emptyFieldCount ===
|
||||
fieldsList.length + imageFieldsToCheck.length
|
||||
) {
|
||||
return 'all_empty' // 全部为空
|
||||
} else if (
|
||||
filledFieldCount ===
|
||||
fieldsList.length + imageFieldsToCheck.length
|
||||
) {
|
||||
return 'all_filled' // 全部有值
|
||||
} else {
|
||||
return 'partial' // 部分有值
|
||||
}
|
||||
},
|
||||
|
||||
// 新增入场工程
|
||||
async addShanghaiProEin() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$refs.addEntryProjectFormRef.validate(async (valid) => {
|
||||
if (valid) {
|
||||
const res = await addShanghaiProEinAPI(
|
||||
this.addEntryProjectForm,
|
||||
)
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
resolve(true)
|
||||
await updatePersonLightStatusAPI(this.workerId)
|
||||
} else {
|
||||
reject(false)
|
||||
const status = this.checkFormStatus()
|
||||
const filesList = []
|
||||
const formData = new FormData()
|
||||
const params = {
|
||||
...this.addEntryProjectForm,
|
||||
}
|
||||
|
||||
console.log('status', status)
|
||||
if (status === 'partial') {
|
||||
this.$modal.msgError(
|
||||
'请完善合同见证中的必填信息(除附件外)后再提交',
|
||||
)
|
||||
return reject(new Error('合同信息未完善'))
|
||||
}
|
||||
|
||||
this.contractImageList.forEach((item) => {
|
||||
item.fileList.forEach((file) => {
|
||||
filesList.push({
|
||||
type: item.type,
|
||||
name: 'contract',
|
||||
})
|
||||
formData.append('files', file.raw)
|
||||
})
|
||||
})
|
||||
formData.append('params', JSON.stringify(params))
|
||||
formData.append('fileMsg', JSON.stringify(filesList))
|
||||
|
||||
try {
|
||||
// const res = await uploadContractAPI(formData)
|
||||
const res = await addShanghaiProEinAPI(formData)
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
resolve(true)
|
||||
await updatePersonLightStatusAPI(this.workerId)
|
||||
} else {
|
||||
reject(false)
|
||||
}
|
||||
} catch (err) {
|
||||
this.$modal.msgError('合同上传失败,请重试')
|
||||
reject(err)
|
||||
}
|
||||
} else {
|
||||
reject(false)
|
||||
|
|
|
|||
Loading…
Reference in New Issue