From 62fb3f9b73b8d7e018497026143c7b11d55a0bb1 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Thu, 21 Aug 2025 14:12:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/人员入场-模版.xlsx | Bin 0 -> 11075 bytes public/失信人员-模板.xlsx | Bin 0 -> 11003 bytes .../entry-and-exit-manage/person-entry.js | 7 + .../entry-and-exit-manage/person-exit.js | 16 +- src/components/UploadImgFormData/index.vue | 2 + .../attendance-count/attendance-details.vue | 10 +- .../attendance-count/person-table.vue | 5 +- .../person-entry/add-or-edit-form.vue | 34 +++- .../person-entry/index.vue | 11 +- .../person-exit/entry-exit-record.vue | 159 +++++++++++++++++- .../person-exit/person-exit-form.vue | 73 +++++--- .../contract-witness-upload.vue | 6 + .../dishonesty-person/index.vue | 1 + .../wage-card-witness/wage-card-upload.vue | 8 + 14 files changed, 284 insertions(+), 48 deletions(-) create mode 100644 public/人员入场-模版.xlsx create mode 100644 public/失信人员-模板.xlsx diff --git a/public/人员入场-模版.xlsx b/public/人员入场-模版.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a766b6978d272bfe62721a536f681dcc311de05e GIT binary patch literal 11075 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 literal 0 HcmV?d00001 diff --git a/public/失信人员-模板.xlsx b/public/失信人员-模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fa4a54ed36ae7cbff3a3876d00416cc8cc17b842 GIT binary patch literal 11003 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 { data, }) } +// 修改人员的红绿灯状态 +export const updatePersonLightStatusAPI = (id) => { + return request({ + url: `/bmw/workerWageCard/light/${id}`, + method: 'POST', + }) +} diff --git a/src/api/construction-person/entry-and-exit-manage/person-exit.js b/src/api/construction-person/entry-and-exit-manage/person-exit.js index 8b27245..0848670 100644 --- a/src/api/construction-person/entry-and-exit-manage/person-exit.js +++ b/src/api/construction-person/entry-and-exit-manage/person-exit.js @@ -40,7 +40,7 @@ export const uploadExitFileAPI = (data) => { export const deleteEntryPersonAPI = (data) => { return request({ url: `/bmw/worker/delete/${data.id}`, - method: 'post', + method: 'POST', }) } @@ -48,14 +48,14 @@ export const deleteEntryPersonAPI = (data) => { export const getEntryPersonDetailAPI = (data) => { return request({ url: `/bmw/worker/select/${data.id}`, - method: 'post', + method: 'POST', }) } // 人员出场 修改人员接口 export const editEntryPersonAPI = (data) => { return request({ url: `/bmw/worker/edit`, - method: 'post', + method: 'POST', data, }) } @@ -64,7 +64,15 @@ export const editEntryPersonAPI = (data) => { export const getExitPersonListAPI = (data) => { return request({ url: '/bmw/workerExit/list', - method: 'get', + method: 'GET', params: data, }) } + +// 人员出场后 查看工资结算确认单 +export const getExitFileAPI = (id) => { + return request({ + url: `/bmw/workerExit/lookFile/${id}`, + method: 'POST', + }) +} diff --git a/src/components/UploadImgFormData/index.vue b/src/components/UploadImgFormData/index.vue index fca7908..145f78a 100644 --- a/src/components/UploadImgFormData/index.vue +++ b/src/components/UploadImgFormData/index.vue @@ -103,6 +103,7 @@ export default { methods: { // 删除 async handleRemove(file, fileList) { + this.$emit('onUploadChange', fileList) // if (file.response && file.response.data.length > 0) { // this.$emit('deleteFile', { // filePath: file.response.data[0].filePath, @@ -190,6 +191,7 @@ export default { handleChange(file, fileList) { console.log(file, fileList, 'file, fileList') this.$emit('update:fileList', fileList) + this.$emit('onUploadChange', fileList) }, }, diff --git a/src/views/construction-person/attendance-manage/attendance-count/attendance-details.vue b/src/views/construction-person/attendance-manage/attendance-count/attendance-details.vue index eb4a23d..2539958 100644 --- a/src/views/construction-person/attendance-manage/attendance-count/attendance-details.vue +++ b/src/views/construction-person/attendance-manage/attendance-count/attendance-details.vue @@ -133,6 +133,10 @@ export default { type: [String, Number], default: '', }, + workerId: { + type: [String, Number], + default: '', + }, }, data() { return { @@ -203,9 +207,10 @@ export default { this.download( '/bmw/workerLight/attExportByWorkerMsg', { - teamId: this.teamId, proId: this.proId, + teamId: this.teamId, idNumber: this.idNumber, + workerId: this.workerId, startDate: this.timeRange[0], endDate: this.timeRange[1], }, @@ -216,9 +221,10 @@ export default { // 获取考勤详情列表 async getAttendanceDetailsListData() { const params = { - teamId: this.teamId, proId: this.proId, + teamId: this.teamId, idNumber: this.idNumber, + workerId: this.workerId, startDate: this.timeRange[0], endDate: this.timeRange[1], } diff --git a/src/views/construction-person/attendance-manage/attendance-count/person-table.vue b/src/views/construction-person/attendance-manage/attendance-count/person-table.vue index 584c90c..349dd61 100644 --- a/src/views/construction-person/attendance-manage/attendance-count/person-table.vue +++ b/src/views/construction-person/attendance-manage/attendance-count/person-table.vue @@ -52,6 +52,7 @@ @@ -97,7 +98,8 @@ export default { personDialogConfig, getPersonListAPI, idNumber: '', - slots: ['attDay', 'notAttNum'], + workerId: '', + slots: ['attNum', 'notAttNum'], } }, methods: { @@ -120,6 +122,7 @@ export default { // 点击人员姓名 弹出考勤详情 onHandleCheckPerson(data) { this.idNumber = data.idNumber + this.workerId = data.workerId this.personDialogConfig.outerVisible = true }, }, diff --git a/src/views/construction-person/entry-and-exit-manage/person-entry/add-or-edit-form.vue b/src/views/construction-person/entry-and-exit-manage/person-entry/add-or-edit-form.vue index b84415d..f04680c 100644 --- a/src/views/construction-person/entry-and-exit-manage/person-entry/add-or-edit-form.vue +++ b/src/views/construction-person/entry-and-exit-manage/person-entry/add-or-edit-form.vue @@ -20,7 +20,14 @@ v-model="idCardReaderForm.idCardReaderAddress" /> - + {{ isConnected ? '已连接' : '未连接' }} @@ -189,6 +196,7 @@ :limit="1" :file-size="10" :multiple="true" + @onUploadChange="onUploadChange" :file-type="['jpg', 'png', 'jpeg']" :file-list.sync="idCardInfoForm.faceImg" :is-uploaded="idCardInfoForm.faceImg.length >= 1" @@ -580,6 +588,7 @@ import { addEntryPersonAPI, editEntryPersonAPI, getEntryPersonDetailAPI, + updatePersonLightStatusAPI, } from '@/api/construction-person/entry-and-exit-manage/person-entry' import { getSubSelectListByConditionAPI, @@ -1207,6 +1216,19 @@ export default { ? '修改人员成功' : '新增人员成功', ) + + // 更新一下红绿灯状态 + const result = + await updatePersonLightStatusAPI( + this.queryDetailsId + ? this.workerId + : res.data.id, + ) + console.log( + result, + 'result红绿灯状态更新结果', + ) + resolve() } else { this.$modal.msgError(res.msg) @@ -1542,9 +1564,13 @@ export default { this.webSocket.close() }, - // 下载身份证读卡器驱动 - downloadIdCardReaderDriver() { - // window.open(this.idCardReaderForm.idCardReaderAddress) + // 人脸照片验证 + onUploadChange(fileList) { + console.log('人脸照片验证', fileList) + + if (fileList.length > 0) { + // 走验证逻辑 + } }, }, diff --git a/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue b/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue index 6019530..34bf446 100644 --- a/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue +++ b/src/views/construction-person/entry-and-exit-manage/person-entry/index.vue @@ -96,6 +96,7 @@ > @@ -57,21 +57,104 @@ label="离场人员工资结算确认单" > + + + +