This commit is contained in:
BianLzhaoMin 2025-08-19 15:52:10 +08:00
parent ad055f2554
commit ec6e97d549
17 changed files with 342 additions and 313 deletions

View File

@ -33,6 +33,14 @@ export function getLotProjectSelectListAPI() {
method: 'GET',
})
}
// 获取标段工程下拉列表
export function getLotProjectSelectListBySubIdAPI(data = {}) {
return request({
url: '/bmw/pmProject/listAllBySubId',
method: 'GET',
params: data,
})
}
// 获取分包商下拉列表
export const getSubSelectListAPI = () => {
@ -43,10 +51,11 @@ export const getSubSelectListAPI = () => {
}
// 获取班组下拉列表
export const getTeamSelectListAPI = () => {
export const getTeamSelectListAPI = (data = {}) => {
return request({
url: '/bmw/pmSubTeam/listAll',
method: 'GET',
params: data,
})
}
// 获取工种下拉列表

View File

@ -53,12 +53,12 @@ export async function getSubCompanySelectListCommonFun() {
}
// 获取标段工程下拉列表
export async function getLotProjectSelectListCommonFun() {
export async function getLotProjectSelectListCommonFun(data) {
const { lotProjectSelectList } = store.state.common
if (lotProjectSelectList.length > 0) {
return lotProjectSelectList
}
const res = await getLotProjectSelectListAPI()
const res = await getLotProjectSelectListAPI(data)
if (res.code === 200) {
store.commit('SET_LOT_PROJECT_SELECT_LIST', res.rows)
return res.rows
@ -79,12 +79,12 @@ export async function getSubSelectListCommonFun() {
return []
}
// 获取班组下拉列表
export async function getTeamSelectListCommonFun() {
export async function getTeamSelectListCommonFun(data) {
const { teamSelectList } = store.state.common
if (teamSelectList.length > 0) {
return teamSelectList
}
const res = await getTeamSelectListAPI()
const res = await getTeamSelectListAPI(data)
if (res.code === 200) {
store.commit('SET_TEAM_SELECT_LIST', res.rows)
return res.rows

View File

@ -36,6 +36,8 @@
<el-form-item label="法人联系电话" prop="legalPersonPhone">
<el-input
clearable
maxlength="11"
show-word-limit
placeholder="请输入法人联系电话"
v-model="addOrEditForm.legalPersonPhone"
/>

View File

@ -12,6 +12,8 @@
<el-form-item label="班组名称" prop="teamName">
<el-input
clearable
maxlength="50"
show-word-limit
placeholder="请输入班组名称"
v-model="addOrEditForm.teamName"
/>
@ -23,7 +25,10 @@
<el-col :span="24">
<el-form-item label="分包名称" prop="subId">
<el-select
clearable
filterable
style="width: 100%"
placeholder="请选择分包名称"
v-model="addOrEditForm.subId"
>
<el-option
@ -41,6 +46,8 @@
<el-form-item label="班组长" prop="teamLeader">
<el-input
clearable
maxlength="20"
show-word-limit
placeholder="请输入班组长"
v-model="addOrEditForm.teamLeader"
/>
@ -53,6 +60,8 @@
<el-form-item label="班组长联系方式" prop="phone">
<el-input
clearable
maxlength="11"
show-word-limit
placeholder="请输入班组长联系方式"
v-model="addOrEditForm.phone"
/>
@ -65,11 +74,7 @@
<script>
import UploadImg from '@/components/UploadImg'
import {
addTeamBaseInfoAPI,
editTeamBaseInfoAPI,
addAndEditTeamBaseInfoAPI,
} from '@/api/basic-manage/team-manage/team-base-info'
import { addAndEditTeamBaseInfoAPI } from '@/api/basic-manage/team-manage/team-base-info'
import { getSubSelectListCommonFun } from '@/utils/getCommonData'
export default {
name: 'AddOrEditForm',
@ -151,15 +156,12 @@ export default {
const res = await addAndEditTeamBaseInfoAPI(
this.addOrEditForm,
)
console.log(res, '新增或修改结果')
if (res.code === 200) {
this.$modal.msgSuccess(
this.addOrEditForm.id ? '修改成功' : '新增成功',
)
resolve()
// store
this.$store.dispatch('getTeamSelectList')
this.$store.dispatch('getTeamSelectList') // store
} else {
this.$modal.msgError(res.msg)
reject(new Error(res.msg))

View File

@ -15,7 +15,7 @@
size="mini"
type="success"
icon="el-icon-download"
@click="onHandleExportSubBaseInfo(queryParams)"
@click="onHandleExportTeamBaseInfo(queryParams)"
>
导出
</el-button>
@ -26,7 +26,7 @@
type="primary"
icon="el-icon-plus"
v-hasPermi="['team:base:add']"
@click="onHandleAddOrEditSubBaseInfo(1, null)"
@click="onHandleAddOrEditTeamBaseInfo(1, null)"
>
新增
</el-button>
@ -39,7 +39,7 @@
type="primary"
icon="el-icon-edit"
v-hasPermi="['team:base:edit']"
@click="onHandleAddOrEditSubBaseInfo(2, data)"
@click="onHandleAddOrEditTeamBaseInfo(2, data)"
>
修改
</el-button>
@ -49,7 +49,7 @@
type="danger"
icon="el-icon-delete"
v-hasPermi="['team:base:delete']"
@click="onHandleDeleteSubBaseInfo(data)"
@click="onHandleDeleteTeamBaseInfo(data)"
>
删除
</el-button>
@ -62,8 +62,8 @@
>
<template slot="outerContent">
<AddOrEditForm
ref="addOrEditFormContentRef"
:editFormData="editFormData"
ref="teamBaseInfoAddOrEditFormRef"
/>
<el-row class="dialog-footer-btn">
@ -112,7 +112,7 @@ export default {
},
methods: {
//
onHandleExportSubBaseInfo(queryParams) {
onHandleExportTeamBaseInfo(queryParams) {
console.log(queryParams, '导出')
this.download(
'/bmw/pmSubTeam/export',
@ -124,7 +124,7 @@ export default {
},
//
onHandleAddOrEditSubBaseInfo(type, data) {
onHandleAddOrEditTeamBaseInfo(type, data) {
this.dialogConfig.outerTitle =
type === 1 ? '新增标段工程' : '修改标段工程'
@ -145,7 +145,7 @@ export default {
},
//
onHandleDeleteSubBaseInfo(data) {
onHandleDeleteTeamBaseInfo(data) {
this.$confirm('确定删除该班组吗?', '温馨提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -157,21 +157,18 @@ export default {
if (res.code === 200) {
this.$modal.msgSuccess('删除成功')
this.$refs.teamBaseInfoTableRef.getTableList() //
// store
this.$store.dispatch('getTeamSelectList')
this.$store.dispatch('getTeamSelectList') // store
}
})
.catch(() => {
console.log('取消')
// console.log('')
})
},
//
async onHandleConfirmAddOrEdit() {
this.$refs.addOrEditFormContentRef.formType =
this.dialogConfig.outerTitle === '新增标段工程' ? 1 : 2
try {
await this.$refs.addOrEditFormContentRef.onHandleConfirmAddOrEditFun()
await this.$refs.teamBaseInfoAddOrEditFormRef.onHandleConfirmAddOrEditFun()
this.dialogConfig.outerVisible = false
this.$refs.teamBaseInfoTableRef.getTableList()
} catch (error) {
@ -181,7 +178,7 @@ export default {
//
handleCloseDialogOuter() {
this.$refs.addOrEditFormContentRef.resetForm()
this.$refs.teamBaseInfoAddOrEditFormRef.resetForm()
this.dialogConfig.outerVisible = false
},
},

View File

@ -17,6 +17,8 @@
<el-col :span="24">
<el-form-item label="分包名称" prop="subId">
<el-select
clearable
filterable
style="width: 100%"
@change="onChangeSubIdFun"
v-model="addOrEditForm.subId"
@ -36,6 +38,8 @@
<el-col :span="24">
<el-form-item label="班组名称" prop="teamId">
<el-select
clearable
filterable
style="width: 100%"
@change="onChangeTeamIdFun"
v-model="addOrEditForm.teamId"
@ -55,6 +59,8 @@
<el-col :span="24">
<el-form-item label="工程名称" prop="proId">
<el-select
clearable
filterable
style="width: 100%"
@change="onChangeProIdFun"
v-model="addOrEditForm.proId"
@ -139,10 +145,10 @@ import {
getTeamExitDataNumAPI,
} from '@/api/basic-manage/team-manage/team-entry-and-exit'
import {
getLotProjectSelectListCommonFun,
getSubSelectListCommonFun,
getTeamSelectListCommonFun,
} from '@/utils/getCommonData'
getTeamSelectListAPI,
getLotProjectSelectListBySubIdAPI,
} from '@/api/common'
import { getSubSelectListCommonFun } from '@/utils/getCommonData'
export default {
name: 'AddOrEditForm',
components: {
@ -288,10 +294,37 @@ export default {
this.$refs.addOrEditFormRef.resetFields()
},
onChangeSubIdFun(val) {
async onChangeSubIdFun(val) {
this.addOrEditForm.teamId = ''
this.addOrEditForm.proId = ''
this.addOrEditForm.teamName = ''
this.addOrEditForm.proName = ''
if (!val) {
this.teamSelectList = []
this.lotProjectSelectList = []
return
}
this.addOrEditForm.subName = this.subSelectList.find(
(item) => item.value === val,
).label
const team = await getTeamSelectListAPI({ subId: val })
const lotProject = await getLotProjectSelectListBySubIdAPI({
subId: val,
})
this.teamSelectList = team.rows.map((item) => {
return {
value: item.id,
label: item.teamName,
}
})
this.lotProjectSelectList = lotProject.rows.map((item) => {
return {
value: item.id,
label: item.proName,
}
})
},
onChangeTeamIdFun(val) {
this.addOrEditForm.teamName = this.teamSelectList.find(
@ -307,8 +340,6 @@ export default {
async created() {
const sub = await getSubSelectListCommonFun()
const team = await getTeamSelectListCommonFun()
const lotProject = await getLotProjectSelectListCommonFun()
this.subSelectList = sub.map((item) => {
return {
@ -317,19 +348,19 @@ export default {
}
})
this.teamSelectList = team.map((item) => {
return {
value: item.id,
label: item.teamName,
}
})
// this.teamSelectList = team.map((item) => {
// return {
// value: item.id,
// label: item.teamName,
// }
// })
this.lotProjectSelectList = lotProject.map((item) => {
return {
value: item.id,
label: item.proName,
}
})
// this.lotProjectSelectList = lotProject.map((item) => {
// return {
// value: item.id,
// label: item.proName,
// }
// })
this.getTeamExitDataNum()
},

View File

@ -25,6 +25,7 @@
size="mini"
type="primary"
icon="el-icon-plus"
v-hasPermi="['worker:ein:insert']"
@click="onHandleAddOrEditPersonEntry(1, null)"
>
新增
@ -47,6 +48,7 @@
size="mini"
type="primary"
icon="el-icon-edit"
v-hasPermi="['worker:ein:edit']"
@click="onHandleAddOrEditPersonEntry(2, data)"
>
修改
@ -56,6 +58,7 @@
type="danger"
icon="el-icon-delete"
v-if="data.einStatus === 2"
v-hasPermi="['worker:ein:del']"
@click="onHandleDeletePersonEntry(data)"
>
删除

View File

@ -28,6 +28,7 @@
type="primary"
icon="el-icon-plus"
@click="onHandleBatchExit"
v-hasPermi="['worker:exit:batchExit']"
>
批量出场
</el-button>
@ -82,6 +83,7 @@
type="primary"
icon="el-icon-right"
v-if="data.einStatus === 1"
v-hasPermi="['worker:exit:exit']"
@click="onHandlePersonExit(data, 1)"
>
出场

View File

@ -34,16 +34,7 @@ export const formLabel = [
f_type: 'sel',
f_width: '180px',
isShow: false, // 是否展示label
f_selList: [
{
label: '分包1',
value: '1',
},
{
label: '分包2',
value: '2',
},
], // 分包列表
f_selList: [], // 分包列表
},
{
f_label: '班组',
@ -51,16 +42,7 @@ export const formLabel = [
f_type: 'sel',
f_width: '180px',
isShow: false, // 是否展示label
f_selList: [
{
label: '班组1',
value: '1',
},
{
label: '班组2',
value: '2',
},
], // 班组列表
f_selList: [], // 班组列表
},
{
f_label: '状态',

View File

@ -81,12 +81,14 @@
<el-image
:src="contractImgList[0]"
:preview-src-list="contractImgList"
style="display: block; max-width: 100%; margin: 0 auto"
v-if="dialogConfig.outerTitle === '合同图片详情'"
style="display: block; max-width: 100%; margin: 0 auto"
/>
<ContractDetails
ref="contractDetailsRef"
:contractId="contractId"
:contractInfo="contractInfo"
:filesImgList="filesImgList"
:filesFileList="filesFileList"
v-if="dialogConfig.outerTitle === '合同见证详情'"
/>
</template>
@ -98,10 +100,12 @@
import DialogModel from '@/components/DialogModel'
import ContractDetails from './contract-details.vue' //
import {
getContractDetailAPI,
getContractDetailListAPI,
getContractDetailLookFileAPI,
} from '@/api/construction-person/red-green-light-mange/contract-witness'
export default {
name: 'ContractDetailsList',
components: {
DialogModel,
ContractDetails,
@ -124,6 +128,18 @@ export default {
maxHeight: '',
},
contractImgList: [], //
contractInfo: {
contractCode: '', //
wageCriterion: '', //
wageApprovedWay: '', //
contractTermType: '', //
contractStopDate: '', //
contractStartDate: '', //
},
filesImgList: [], //
filesFileList: [], //
}
},
mounted() {
@ -148,24 +164,51 @@ export default {
.map((item) => item.lsUrl)
this.dialogConfig.outerTitle = '合同图片详情'
this.dialogConfig.outerWidth = ''
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.minHeight = '80vh'
this.dialogConfig.maxHeight = '80vh'
this.dialogConfig.outerVisible = true
},
//
onHandleViewContractDetails(row) {
this.contractId = row.id
this.dialogConfig.outerTitle = '合同见证详情'
this.dialogConfig.outerWidth = '80%'
this.dialogConfig.outerWidth = '70%'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.outerVisible = true
this.$nextTick(() => {
this.$refs.contractDetailsRef.getContractInfo()
this.getContractInfo(row.id).then(() => {
this.dialogConfig.outerVisible = true
})
},
async getContractInfo(id) {
const { data: res } = await getContractDetailAPI(id)
if (res.length > 0) {
const {
files,
contractCode,
wageCriterion,
wageApprovedWay,
contractStopDate,
contractTermType,
contractStartDate,
} = res[0]
this.contractInfo = {
contractCode,
wageCriterion,
wageApprovedWay,
contractStopDate,
contractTermType,
contractStartDate,
}
this.filesImgList = files.filter((item) => item.sourceType != 6)
this.filesFileList = files.filter(
(item) => item.sourceType == 6,
)
}
},
//
handleCloseDialogOuter() {
this.dialogConfig.outerVisible = false

View File

@ -56,31 +56,24 @@
</template>
<script>
import { getContractDetailAPI } from '@/api/construction-person/red-green-light-mange/contract-witness'
export default {
props: {
contractId: {
type: [String, Number],
default: '',
contractInfo: {
type: Object,
default: () => {},
},
filesImgList: {
type: Array,
default: () => [],
},
filesFileList: {
type: Array,
default: () => [],
},
},
name: 'ContractDetails',
data() {
return {
contractInfo: {
contractCode: '',
contractTermType: '',
contractStartDate: '',
contractStopDate: '',
wageApprovedWay: '',
wageCriterion: '',
},
filesImgList: [], //
filesFileList: [], //
imgTitleEnum: {
1: '人员手持合同照片',
2: '工作内容页',
@ -92,38 +85,6 @@ export default {
},
methods: {
//
async getContractInfo() {
const { data: res } = await getContractDetailAPI(this.contractId)
// this.contractInfo = res
if (res.length > 0) {
const {
contractCode,
contractTermType,
contractStartDate,
contractStopDate,
wageApprovedWay,
wageCriterion,
files,
} = res[0]
this.contractInfo = {
contractCode,
contractTermType,
contractStartDate,
contractStopDate,
wageApprovedWay,
wageCriterion,
}
this.filesImgList = files.filter((item) => item.sourceType != 6)
this.filesFileList = files.filter(
(item) => item.sourceType == 6,
)
}
},
//
onHandlePreviewFile(item) {
window.open(item.lsUrl, '_blank')

View File

@ -6,10 +6,11 @@
label-width="140px"
ref="contractInfoFormRef"
:model="contractInfoForm"
:rules="contractInfoFormRules"
>
<el-row>
<el-col :span="24">
<el-form-item label="合同见证照片" prop="businessLicense">
<el-form-item label="合同见证照片">
<div style="display: flex; gap: 10px">
<div
class="contract-img-box"
@ -17,7 +18,6 @@
:key="item.title"
>
<UploadImgFormData
:key="item.title"
:limit="1"
:file-size="10"
:multiple="true"
@ -39,16 +39,18 @@
<el-row>
<el-col :span="12">
<el-form-item label="合同编号" prop="contractCode">
<el-form-item label="合同编号">
<el-input
clearable
maxlength="50"
show-word-limit
placeholder="请输入合同编号"
v-model="contractInfoForm.contractCode"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合同期限类型" prop="contractTermType">
<el-form-item label="合同期限类型">
<el-radio-group
size="mini"
v-model="contractInfoForm.contractTermType"
@ -102,6 +104,8 @@
<el-form-item label="工资核定标准" prop="wageCriterion">
<el-input
clearable
maxlength="50"
show-word-limit
placeholder="请输入工资核定标准"
v-model="contractInfoForm.wageCriterion"
/>
@ -143,7 +147,7 @@ import {
getContractDetailAPI,
} from '@/api/construction-person/red-green-light-mange/contract-witness'
export default {
name: 'AddOrEditForm',
name: 'ContractWitnessUpload',
props: {
queryDetailsId: {
type: [String, Number],
@ -169,46 +173,86 @@ export default {
UploadFileFormData,
},
data() {
const validateContractStartDate = (rule, value, callback) => {
if (!value) {
return callback()
}
if (value >= this.contractInfoForm.contractStopDate) {
callback(new Error('合同签订日期不能大于合同终止日期'))
}
callback()
}
const validateContractStopDate = (rule, value, callback) => {
if (!value) {
return callback()
}
if (value <= this.contractInfoForm.contractStartDate) {
callback(new Error('合同终止日期不能小于合同签订日期'))
}
callback()
}
return {
//
contractInfoForm: {
contractCode: '', //
contractTermType: '以完成一定工作为期限的合同', //
contractStartDate: '', //
contractStopDate: '', //
wageApprovedWay: '天', //
wageCriterion: '', //
wageApprovedWay: '天', //
contractStopDate: null, //
contractStartDate: null, //
contractTermType: '以完成一定工作为期限的合同', //
},
contractInfoFormRules: {
contractStartDate: [
{
required: false,
},
{
trigger: ['change', 'blur'],
validator: validateContractStartDate,
},
],
contractStopDate: [
{
required: false,
},
{
trigger: ['change', 'blur'],
validator: validateContractStopDate,
},
],
},
contractImageList: [
{
title: '人员手持合同照',
type: 1,
fileList: [],
title: '人员手持合同照',
},
{
title: '工作内容页',
type: 2,
fileList: [],
title: '工作内容页',
},
{
title: '薪酬约定页',
type: 3,
fileList: [],
title: '薪酬约定页',
},
{
title: '本人签名页',
type: 4,
fileList: [],
title: '本人签名页',
},
{
title: '其他照片',
type: 5,
fileList: [],
title: '其他照片',
},
{
title: '附件',
type: 6,
title: '附件',
fileList: [],
},
],
@ -220,9 +264,9 @@ export default {
//
const fieldsList = [
'contractCode', //
'contractStartDate', //
'contractStopDate', //
'wageCriterion', //
'contractStopDate', //
'contractStartDate', //
]
const imageFieldsToCheck = this.contractImageList.slice(0, -1) //
@ -266,101 +310,74 @@ export default {
//
onHandleConfirmAddOrEditFun() {
return new Promise(async (resolve, reject) => {
const status = this.checkFormStatus()
this.$refs.contractInfoFormRef.validate(async (valid) => {
if (valid) {
const status = this.checkFormStatus()
let params = {
...this.contractInfoForm,
workerId: this.workerId,
}
const filesList = []
const formData = new FormData()
// 1. params
let params = {
...this.contractInfoForm,
workerId: this.workerId,
}
// ID
if (this.queryDetailsId) {
params.id = this.queryDetailsId
}
if (this.queryDetailsId) {
params.id = this.queryDetailsId
}
//
if (status === 'partial') {
this.$modal.msgError(
'请完善合同见证中的必填信息(除附件外)后再提交',
)
return reject(new Error('合同信息未完善'))
}
if (status === 'partial') {
this.$modal.msgError(
'请完善合同见证中的必填信息(除附件外)后再提交',
)
return reject(new Error('合同信息未完善'))
}
//
if (status === 'all_empty') {
await new Promise((innerResolve, innerReject) => {
this.$confirm(
'当前合同信息为空,确定后将关闭该上传页面',
'温馨提示',
)
.then(() => innerResolve())
.catch(() => innerReject())
})
.then(() => resolve('isClose'))
.catch(() => reject())
if (status === 'all_empty') {
await new Promise((innerResolve, innerReject) => {
this.$confirm(
'当前合同信息为空,确定后将关闭该上传页面',
'温馨提示',
)
.then(() => innerResolve())
.catch(() => innerReject())
})
.then(() => resolve('isClose'))
.catch(() => reject())
return
}
return
}
// all_filled
const filesList = []
const formData = new FormData()
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))
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))
// 3. APIreject
try {
const res = await uploadContractAPI(formData)
if (res.code === 200) {
this.$modal.msgSuccess('合同上传成功')
resolve()
try {
const res = await uploadContractAPI(formData)
if (res.code === 200) {
this.$modal.msgSuccess('合同上传成功')
resolve()
} else {
this.$modal.msgError(res.msg)
reject()
}
} catch (err) {
this.$modal.msgError('合同上传失败,请重试')
reject(err)
}
} else {
this.$modal.msgError(res.msg)
reject()
}
} catch (err) {
this.$modal.msgError('合同上传失败,请重试')
reject(err)
}
})
})
},
//
onChangeProId(val) {
this.keyInfoForm.proName = this.proSelectList.find(
(item) => item.value === val,
).label
},
//
onChangePostId(val) {
this.keyInfoForm.postName = this.postSelectList.find(
(item) => item.value === val,
).label
},
//
onChangeSubId(val) {
this.keyInfoForm.subName = this.subSelectList.find(
(item) => item.value === val,
).label
},
//
onChangeTeamId(val) {
this.keyInfoForm.teamName = this.teamSelectList.find(
(item) => item.value === val,
).label
},
//
resetForm() {},
//
async getContractDetail() {
console.log(this.queryDetailsId, 'queryDetailsId 合同详情')
@ -371,20 +388,20 @@ export default {
if (res.length > 0) {
const {
contractCode,
wageCriterion,
wageApprovedWay,
contractTermType,
contractStartDate,
contractStopDate,
wageApprovedWay,
wageCriterion,
} = res[0]
this.contractInfoForm = {
contractCode,
contractTermType,
wageCriterion,
wageApprovedWay,
contractStartDate,
contractStopDate,
wageApprovedWay,
wageCriterion,
contractTermType,
}
}
},

View File

@ -5,7 +5,7 @@
:formLabel="formLabel"
:showOperation="true"
:showRightTools="true"
ref="personEntryTableRef"
ref="contractWitnessTableRef"
:columnsList="columnsList"
:request-api="getPersonContractListAPI"
>
@ -60,6 +60,7 @@
size="mini"
type="primary"
icon="el-icon-upload"
v-hasPermi="['worker:contract:edit']"
@click="onHandleUploadContract(data)"
>
上传
@ -126,7 +127,11 @@ import {
getContractDetailLookFileAPI,
} from '@/api/construction-person/red-green-light-mange/contract-witness'
import { getLotProjectSelectListCommonFun } from '@/utils/getCommonData'
import {
getSubSelectListCommonFun,
getTeamSelectListCommonFun,
getLotProjectSelectListCommonFun,
} from '@/utils/getCommonData'
export default {
name: 'ContractWitness',
components: {
@ -170,47 +175,8 @@ export default {
)
},
//
onHandleAddOrEditPersonEntry(type, data) {
this.dialogConfig.outerTitle = type === 1 ? '新增人员' : '修改人员'
this.formType = type
if (type === 2) {
this.queryDetailsId = data.id
this.einStatus = data.einStatus
this.dialogConfig.outerVisible = true
this.$nextTick(() => {
this.$refs.uploadContractContentRef.getEntryPersonDetail()
})
} else {
this.dialogConfig.outerVisible = true
}
},
//
onHandleDeletePersonEntry(data) {
this.$confirm('确定删除该人员吗?', '温馨提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
const res = await deleteEntryPersonAPI({
id: data.id,
})
if (res.code === 200) {
this.$modal.msgSuccess('删除成功')
this.$refs.personEntryTableRef.getTableList() //
}
})
.catch(() => {
console.log('取消')
})
},
//
onHandleUploadContract(data) {
console.log(data, '上传合同')
this.queryDetailsId = data.id
if (data.isSign == 1) {
this.$confirm(
@ -225,25 +191,19 @@ export default {
.then(async () => {
this.workerId = data.workerId
this.queryDetailsId = data.id
this.dialogConfig.outerTitle = '合同见证'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.outerWidth = '80%'
this.dialogConfig.outerVisible = true
// this.$nextTick(() => {
// this.$refs.uploadContractContentRef.getContractDetail()
// })
})
.catch(() => {})
} else {
this.workerId = data.workerId
this.queryDetailsId = ''
this.dialogConfig.outerTitle = '合同见证'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.outerWidth = '80%'
this.workerId = data.workerId
this.dialogConfig.outerVisible = true
}
this.dialogConfig.outerTitle = '合同见证'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.outerWidth = '80%'
},
//
@ -263,8 +223,8 @@ export default {
.filter((item) => item.sourceType != 6)
.map((item) => item.lsUrl)
this.dialogConfig.outerTitle = '合同图片详情'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.minHeight = '80vh'
this.dialogConfig.maxHeight = '80vh'
this.dialogConfig.outerWidth = ''
this.dialogConfig.outerVisible = true
},
@ -275,11 +235,11 @@ export default {
const res =
await this.$refs.uploadContractContentRef.onHandleConfirmAddOrEditFun()
if (res !== 'isClose') {
this.$refs.personEntryTableRef.getTableList()
this.$refs.contractWitnessTableRef.getTableList()
}
this.handleCloseDialogOuter()
} catch (error) {
console.log('表单提交失败', error)
// console.log('', error)
}
},
@ -292,12 +252,30 @@ export default {
async created() {
//
const lotProject = await getLotProjectSelectListCommonFun()
const subCom = await getSubSelectListCommonFun()
const team = await getTeamSelectListCommonFun()
formLabel.forEach((item) => {
if (item.f_model === 'proId') {
item.f_selList = lotProject.map((item) => {
return {
label: item.proName,
value: item.id,
label: item.proName,
}
})
}
if (item.f_model === 'subId') {
item.f_selList = subCom.map((item) => {
return {
value: item.id,
label: item.subName,
}
})
}
if (item.f_model === 'teamId') {
item.f_selList = team.map((item) => {
return {
value: item.id,
label: item.teamName,
}
})
}

View File

@ -97,13 +97,12 @@ export default {
const res = await getRedAndGreenCountListAPI(this.queryParams)
if (res.code === 200) {
this.redAndGreenCountList = res.rows
this.total = res.total
this.redAndGreenCountList = res.rows
}
},
//
onHandleClickCompany(subComId) {
console.log(subComId)
this.subComId = subComId
this.dialogConfig.outerVisible = true
},

View File

@ -71,9 +71,9 @@ export const columnsList = [
]
export const dialogConfig = {
outerVisible: false,
outerTitle: '工资卡见证',
outerWidth: '60%',
minHeight: '',
maxHeight: '',
outerVisible: false,
outerWidth: '70%',
outerTitle: '工资卡见证',
}

View File

@ -37,10 +37,13 @@
<el-button
size="mini"
type="text"
v-if="data.isUpload == 1"
@click="onHandleViewWageCardImg(data)"
>
查看
</el-button>
<span v-else> - </span>
</template>
<template slot="handle" slot-scope="{ data }">
@ -49,6 +52,7 @@
size="mini"
type="primary"
icon="el-icon-upload"
v-hasPermi="['worker:wageCard:edit']"
@click="onHandleUploadWageCard(data)"
>
修改
@ -126,21 +130,12 @@ export default {
einStatus: 1, //
formType: 1, //
workerId: '', // id
slots: {
businessLicense: 'businessLicense',
idCard: 'idCard',
electronicStamp: 'electronicStamp',
electronicSignature: 'electronicSignature',
},
contractImgList: [], //
}
},
methods: {
//
onHandleExportWageCard(queryParams) {
console.log(queryParams, '导出参数')
this.download(
'/bmw/workerWageCard/wageCardExport',
{
@ -152,10 +147,10 @@ export default {
//
onHandleUploadWageCard(data) {
this.dialogConfig.outerTitle = '工资卡见证'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.outerWidth = '60%'
this.dialogConfig.outerWidth = '70%'
this.dialogConfig.outerTitle = '工资卡见证'
if (data.isUpload == 1) {
this.$confirm(
'当前已上传工资卡信息,是否要重新上传,重新上传将会覆盖原数据?',
@ -187,8 +182,8 @@ export default {
.map((item) => item.lsUrl)
this.dialogConfig.outerTitle = '工资卡图片详情'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.minHeight = '90vh'
this.dialogConfig.maxHeight = '90vh'
this.dialogConfig.outerWidth = ''
this.dialogConfig.outerVisible = true
},
@ -196,8 +191,12 @@ export default {
//
async onHandleConfirmAddOrEdit() {
try {
await this.$refs.uploadContractContentRef.onHandleConfirmAddOrEditFun()
this.$refs.wageCardWitnessTableRef.getTableList()
const res =
await this.$refs.uploadContractContentRef.onHandleConfirmAddOrEditFun()
if (res !== 'isClose') {
this.$refs.wageCardWitnessTableRef.getTableList()
}
this.handleCloseDialogOuter()
} catch (error) {
// console.log('', error)

View File

@ -15,7 +15,7 @@
justifyContent="flex-start"
>
<template>
<span class="tip-text"> (工资册之前必须完善) </span>
<span class="tip-text"> (工资册之前必须完善) </span>
</template>
</TitleTip>
<el-row>
@ -52,6 +52,8 @@
<el-form-item label="银行卡号" prop="bankCardCode">
<el-input
clearable
maxlength="19"
show-word-limit
placeholder="请输入银行卡号"
v-model="salaryCardInfoForm.bankCardCode"
/>
@ -61,6 +63,8 @@
<el-form-item label="银行名称" prop="bankName">
<el-input
clearable
maxlength="50"
show-word-limit
placeholder="请输入银行名称"
v-model="salaryCardInfoForm.bankName"
/>
@ -91,6 +95,8 @@
<el-form-item label="银行支行名称" prop="bankBranchName">
<el-input
clearable
maxlength="50"
show-word-limit
placeholder="请输入银行支行名称"
v-model="salaryCardInfoForm.bankBranchName"
/>
@ -238,13 +244,11 @@ export default {
...this.salaryCardInfoForm,
workerId: this.workerId,
}
let fileIdList = []
const filesList = []
const formData = new FormData()
// 2.
//
if (status === 'partial') {
this.$modal.msgError(