失信人员字段添加 考勤机管理字段添加

This commit is contained in:
BianLzhaoMin 2025-09-18 11:13:04 +08:00
parent a27bd10842
commit feba0428da
6 changed files with 211 additions and 5 deletions

View File

@ -35,3 +35,20 @@ export const getAttendanceMachineListAPI = (data) => {
params: data, params: data,
}) })
} }
// 根据工程查询分包下拉接口
export const getSubListByProIdAPI = (data) => {
return request({
url: '/bmw/pmSub/getSublistByProId',
method: 'GET',
params: data,
})
}
// 根据工程和分包查询班组下拉接口
export const getTeamListBySubIdAndProIdAPI = (data) => {
return request({
url: '/bmw/subTeamContract/getSubTeamContractList',
method: 'GET',
params: data,
})
}

View File

@ -12,7 +12,7 @@ export const getDishonestyPersonListAPI = (data) => {
// 红绿灯统计 新增失信人员 // 红绿灯统计 新增失信人员
export const addDishonestyPersonAPI = (data) => { export const addDishonestyPersonAPI = (data) => {
return request({ return requestFormData({
url: '/bmw/workerBlack/insert', url: '/bmw/workerBlack/insert',
method: 'POST', method: 'POST',
data, data,

View File

@ -56,6 +56,7 @@
filterable filterable
style="width: 100%" style="width: 100%"
placeholder="请选择" placeholder="请选择"
@change="getSubListByProId"
v-model="addOrEditForm.proId" v-model="addOrEditForm.proId"
> >
<el-option <el-option
@ -68,6 +69,47 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="24">
<el-form-item label="分包名称">
<el-select
clearable
filterable
style="width: 100%"
placeholder="请选择"
v-model="addOrEditForm.subId"
@change="getTeamListBySubIdAndProId"
>
<el-option
:key="item.id"
:value="item.id"
:label="item.subName"
v-for="item in subSelectList"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="班组名称">
<el-select
clearable
filterable
style="width: 100%"
placeholder="请选择"
v-model="addOrEditForm.teamId"
>
<el-option
:key="item.teamId"
:label="item.teamName"
:value="item.teamId"
v-for="item in teamSelectList"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</div> </div>
</template> </template>
@ -77,6 +119,8 @@ import UploadImgFormData from '@/components/UploadImgFormData'
import { import {
addAttendanceMachineAPI, addAttendanceMachineAPI,
editAttendanceMachineAPI, editAttendanceMachineAPI,
getSubListByProIdAPI,
getTeamListBySubIdAndProIdAPI,
} from '@/api/construction-person/attendance-manage/attendance-machine' } from '@/api/construction-person/attendance-manage/attendance-machine'
import { getLotProjectSelectListCommonFun } from '@/utils/getCommonData' import { getLotProjectSelectListCommonFun } from '@/utils/getCommonData'
@ -104,6 +148,8 @@ export default {
deviceCode: '', deviceCode: '',
deviceName: '', deviceName: '',
serialNumber: '', serialNumber: '',
subId: '',
teamId: '',
}, },
addOrEditFormRules: { addOrEditFormRules: {
deviceCode: [ deviceCode: [
@ -138,7 +184,9 @@ export default {
}, },
], ],
}, },
lotProjectList: [], lotProjectList: [], //
subSelectList: [], //
teamSelectList: [], //
} }
}, },
methods: { methods: {
@ -154,6 +202,8 @@ export default {
deviceCode, deviceCode,
deviceName, deviceName,
serialNumber, serialNumber,
subId,
teamId,
} = this.addOrEditForm } = this.addOrEditForm
const params = { const params = {
@ -161,6 +211,8 @@ export default {
deviceCode, deviceCode,
deviceName, deviceName,
serialNumber, serialNumber,
subId,
teamId,
} }
const API = isUpdate const API = isUpdate
@ -188,6 +240,34 @@ export default {
resetForm() { resetForm() {
this.$refs.addOrEditFormRef.resetFields() this.$refs.addOrEditFormRef.resetFields()
}, },
//
async getSubListByProId(val) {
this.subSelectList = []
this.teamSelectList = []
this.addOrEditForm.teamId = ''
this.addOrEditForm.subId = ''
if (!val) {
return
}
const { rows: res } = await getSubListByProIdAPI({ proId: val })
this.subSelectList = res
},
//
async getTeamListBySubIdAndProId(val) {
this.teamSelectList = []
this.addOrEditForm.teamId = ''
if (!val) {
return
}
const { data: res } = await getTeamListBySubIdAndProIdAPI({
subId: val,
proId: this.addOrEditForm.proId,
})
this.teamSelectList = res
},
}, },
async created() { async created() {

View File

@ -40,6 +40,8 @@ export const columnsList = [
{ t_props: 'deviceName', t_label: '考勤机名称' }, { t_props: 'deviceName', t_label: '考勤机名称' },
{ t_props: 'serialNumber', t_label: '出厂编号' }, { t_props: 'serialNumber', t_label: '出厂编号' },
{ t_props: 'proName', t_label: '工程名称' }, { t_props: 'proName', t_label: '工程名称' },
{ t_props: 'subName', t_label: '分包名称' },
{ t_props: 'teamName', t_label: '班组名称' },
{ t_slot: 'isShanghai', t_label: '工程类型' }, { t_slot: 'isShanghai', t_label: '工程类型' },
{ {
t_label: '状态', t_label: '状态',

View File

@ -60,6 +60,8 @@ export const columnsList = [
t_label: '分包名称', t_label: '分包名称',
}, },
{ t_props: 'reason', t_label: '事件' }, { t_props: 'reason', t_label: '事件' },
{ t_props: 'remark', t_label: '备注' },
{ t_slot: 'file', t_label: '附件', t_width: '200px' },
{ {
t_label: '起止时间', t_label: '起止时间',
t_slot: 'time', t_slot: 'time',

View File

@ -47,6 +47,25 @@
</el-button> </el-button>
</template> </template>
<template slot="file" slot-scope="{ data }">
<template
v-if="data.contractFile && data.contractFile.length > 0"
>
<a
target="_blank"
:key="item.id"
:href="item.lsUrl"
class="cursor-blue"
style="padding: 0 2px"
v-for="(item, index) in data.contractFile"
>
附件{{ index + 1 }}
</a>
</template>
<span v-else> 0 </span>
</template>
<template slot="isRemove" slot-scope="{ data }"> <template slot="isRemove" slot-scope="{ data }">
<el-tag size="mini" type="warning" v-if="data.isRemove === 0"> <el-tag size="mini" type="warning" v-if="data.isRemove === 0">
执行中 执行中
@ -248,6 +267,46 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10">
<el-col :span="20">
<el-form-item label="备注" prop="remark">
<el-input
clearable
show-word-limit
type="textarea"
maxlength="100"
placeholder="请输入备注"
v-model="addDishonestyPersonForm.remark"
:autosize="{ minRows: 4, maxRows: 4 }"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="20">
<el-form-item label="附件" prop="fileList">
<UploadFileFormData
:limit="3"
:file-size="20"
:multiple="true"
uploadTip="请上传附件"
:file-list.sync="
addDishonestyPersonForm.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">
@ -314,6 +373,7 @@ import {
importDishonestyPersonAPI, importDishonestyPersonAPI,
downloadDishonestyPersonTemplateAPI, downloadDishonestyPersonTemplateAPI,
} from '@/api/construction-person/red-green-light-mange/dishonesty-person' } from '@/api/construction-person/red-green-light-mange/dishonesty-person'
export default { export default {
name: 'DishonestyPerson', name: 'DishonestyPerson',
components: { components: {
@ -338,6 +398,8 @@ export default {
reason: '', // reason: '', //
endTime: '', // endTime: '', //
startTime: '', // startTime: '', //
remark: '', //
fileList: [], //
}, },
addDishonestyPersonFormRules: { addDishonestyPersonFormRules: {
name: [ name: [
@ -448,6 +510,10 @@ export default {
// //
handleCloseDialogOuter() { handleCloseDialogOuter() {
this.importFileList = [] this.importFileList = []
if (this.dialogConfig.outerTitle === '新增失信人员') {
this.$refs.addDishonestyPersonFormRef.resetFields()
}
this.dialogConfig.outerVisible = false this.dialogConfig.outerVisible = false
}, },
@ -461,9 +527,48 @@ export default {
onHandleConfirmAddOrEdit() { onHandleConfirmAddOrEdit() {
this.$refs.addDishonestyPersonFormRef.validate(async (valid) => { this.$refs.addDishonestyPersonFormRef.validate(async (valid) => {
if (valid) { if (valid) {
const res = await addDishonestyPersonAPI( //
this.addDishonestyPersonForm,
) const {
name, //
idNumber, //
postName, //
proName, //
subName, //
reason, //
endTime, //
startTime, //
remark, //
fileList,
} = this.addDishonestyPersonForm
const params = {
name, //
idNumber, //
postName, //
proName, //
subName, //
reason, //
endTime, //
startTime, //
remark, //
}
const formData = new FormData()
const fileMsg = []
if (fileList.length > 0) {
fileList.forEach((e) => {
formData.append('files', e.raw)
fileMsg.push({
type: 1,
name: '附件',
})
})
}
formData.append('params', JSON.stringify(params))
formData.append('fileMsg', JSON.stringify(fileMsg))
const res = await addDishonestyPersonAPI(formData)
if (res.code === 200) { if (res.code === 200) {
this.$modal.msgSuccess('新增成功') this.$modal.msgSuccess('新增成功')