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

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,
})
}
// 根据工程查询分包下拉接口
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) => {
return request({
return requestFormData({
url: '/bmw/workerBlack/insert',
method: 'POST',
data,

View File

@ -56,6 +56,7 @@
filterable
style="width: 100%"
placeholder="请选择"
@change="getSubListByProId"
v-model="addOrEditForm.proId"
>
<el-option
@ -68,6 +69,47 @@
</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.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>
</div>
</template>
@ -77,6 +119,8 @@ import UploadImgFormData from '@/components/UploadImgFormData'
import {
addAttendanceMachineAPI,
editAttendanceMachineAPI,
getSubListByProIdAPI,
getTeamListBySubIdAndProIdAPI,
} from '@/api/construction-person/attendance-manage/attendance-machine'
import { getLotProjectSelectListCommonFun } from '@/utils/getCommonData'
@ -104,6 +148,8 @@ export default {
deviceCode: '',
deviceName: '',
serialNumber: '',
subId: '',
teamId: '',
},
addOrEditFormRules: {
deviceCode: [
@ -138,7 +184,9 @@ export default {
},
],
},
lotProjectList: [],
lotProjectList: [], //
subSelectList: [], //
teamSelectList: [], //
}
},
methods: {
@ -154,6 +202,8 @@ export default {
deviceCode,
deviceName,
serialNumber,
subId,
teamId,
} = this.addOrEditForm
const params = {
@ -161,6 +211,8 @@ export default {
deviceCode,
deviceName,
serialNumber,
subId,
teamId,
}
const API = isUpdate
@ -188,6 +240,34 @@ export default {
resetForm() {
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() {

View File

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

View File

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

View File

@ -47,6 +47,25 @@
</el-button>
</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 }">
<el-tag size="mini" type="warning" v-if="data.isRemove === 0">
执行中
@ -248,6 +267,46 @@
</el-form-item>
</el-col>
</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-row class="dialog-footer-btn">
@ -314,6 +373,7 @@ import {
importDishonestyPersonAPI,
downloadDishonestyPersonTemplateAPI,
} from '@/api/construction-person/red-green-light-mange/dishonesty-person'
export default {
name: 'DishonestyPerson',
components: {
@ -338,6 +398,8 @@ export default {
reason: '', //
endTime: '', //
startTime: '', //
remark: '', //
fileList: [], //
},
addDishonestyPersonFormRules: {
name: [
@ -448,6 +510,10 @@ export default {
//
handleCloseDialogOuter() {
this.importFileList = []
if (this.dialogConfig.outerTitle === '新增失信人员') {
this.$refs.addDishonestyPersonFormRef.resetFields()
}
this.dialogConfig.outerVisible = false
},
@ -461,9 +527,48 @@ export default {
onHandleConfirmAddOrEdit() {
this.$refs.addDishonestyPersonFormRef.validate(async (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) {
this.$modal.msgSuccess('新增成功')