This commit is contained in:
parent
7308366adc
commit
ff5304db60
|
|
@ -21,8 +21,9 @@ export const deleteEntryPersonAPI = (data) => {
|
||||||
// 人员入场 获取人员详情接口
|
// 人员入场 获取人员详情接口
|
||||||
export const getEntryPersonDetailAPI = (data) => {
|
export const getEntryPersonDetailAPI = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: `/bmw/worker/select/${data.id}/${data.proId}`,
|
url: `/bmw/worker/select`,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 人员入场 修改人员接口
|
// 人员入场 修改人员接口
|
||||||
|
|
@ -98,7 +99,7 @@ export const getShanghaiProListByWorkerIdAPI = (data) => {
|
||||||
|
|
||||||
// 上海人员入场新工程接口
|
// 上海人员入场新工程接口
|
||||||
export const addShanghaiProEinAPI = (data) => {
|
export const addShanghaiProEinAPI = (data) => {
|
||||||
return request({
|
return requestFormData({
|
||||||
url: '/bmw/worker/insertProEin',
|
url: '/bmw/worker/insertProEin',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data,
|
data,
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,166 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</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-form>
|
||||||
|
|
||||||
<el-row class="dialog-footer-btn">
|
<el-row class="dialog-footer-btn">
|
||||||
|
|
@ -215,6 +375,8 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import DialogModel from '@/components/DialogModel'
|
import DialogModel from '@/components/DialogModel'
|
||||||
|
import UploadImgFormData from '@/components/UploadImgFormData'
|
||||||
|
import UploadFileFormData from '@/components/UploadFileFormData'
|
||||||
import {
|
import {
|
||||||
getShanghaiProByIdNumberAPI,
|
getShanghaiProByIdNumberAPI,
|
||||||
getShanghaiProListByWorkerIdAPI,
|
getShanghaiProListByWorkerIdAPI,
|
||||||
|
|
@ -231,6 +393,8 @@ export default {
|
||||||
name: 'ShanghaiProSetting',
|
name: 'ShanghaiProSetting',
|
||||||
components: {
|
components: {
|
||||||
DialogModel,
|
DialogModel,
|
||||||
|
UploadFileFormData,
|
||||||
|
UploadImgFormData,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
idNumber: {
|
idNumber: {
|
||||||
|
|
@ -239,9 +403,44 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
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 {
|
return {
|
||||||
currentStep: 1,
|
currentStep: 1,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
// 工资卡附件
|
||||||
|
contractImageList: [
|
||||||
|
{
|
||||||
|
type: 1,
|
||||||
|
fileList: [],
|
||||||
|
name: 'wageCard',
|
||||||
|
title: '手持银行卡、承诺书',
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
type: 6,
|
||||||
|
title: '附件',
|
||||||
|
fileList: [],
|
||||||
|
name: 'wageCard',
|
||||||
|
},
|
||||||
|
],
|
||||||
columnsList: [
|
columnsList: [
|
||||||
{
|
{
|
||||||
prop: 'name',
|
prop: 'name',
|
||||||
|
|
@ -280,9 +479,9 @@ export default {
|
||||||
dialogConfig: {
|
dialogConfig: {
|
||||||
outerVisible: false,
|
outerVisible: false,
|
||||||
outerTitle: '新增入场工程',
|
outerTitle: '新增入场工程',
|
||||||
outerWidth: '40%',
|
outerWidth: '60%',
|
||||||
// minHeight: '78vh',
|
// minHeight: '78vh',
|
||||||
// maxHeight: '78vh',
|
maxHeight: '90vh',
|
||||||
},
|
},
|
||||||
|
|
||||||
addEntryProjectForm: {
|
addEntryProjectForm: {
|
||||||
|
|
@ -297,6 +496,12 @@ export default {
|
||||||
proId: '',
|
proId: '',
|
||||||
postId: '',
|
postId: '',
|
||||||
id: '',
|
id: '',
|
||||||
|
contractCode: '',
|
||||||
|
contractTermType: '以完成一定工作为期限的合同',
|
||||||
|
contractStartDate: null,
|
||||||
|
contractStopDate: null,
|
||||||
|
wageApprovedWay: '天',
|
||||||
|
wageCriterion: '',
|
||||||
},
|
},
|
||||||
|
|
||||||
addEntryProjectFormRules: {
|
addEntryProjectFormRules: {
|
||||||
|
|
@ -336,6 +541,34 @@ export default {
|
||||||
message: '请输入入场班组',
|
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: {
|
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() {
|
async addShanghaiProEin() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.$refs.addEntryProjectFormRef.validate(async (valid) => {
|
this.$refs.addEntryProjectFormRef.validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const res = await addShanghaiProEinAPI(
|
const status = this.checkFormStatus()
|
||||||
this.addEntryProjectForm,
|
const filesList = []
|
||||||
)
|
const formData = new FormData()
|
||||||
if (res.code === 200) {
|
const params = {
|
||||||
this.$modal.msgSuccess('新增成功')
|
...this.addEntryProjectForm,
|
||||||
resolve(true)
|
}
|
||||||
await updatePersonLightStatusAPI(this.workerId)
|
|
||||||
} else {
|
console.log('status', status)
|
||||||
reject(false)
|
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 {
|
} else {
|
||||||
reject(false)
|
reject(false)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue