From 434d68ac11e29d0a0e7358c9ebb9a8e6eaca7716 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 19 Mar 2026 13:09:37 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增报工审批功能,包括审批通过和驳回的逻辑,优化了状态枚举和表单交互,提升用户体验。 --- src/views/mes/pro/feedback/FeedbackForm.vue | 48 +++++++++++- src/views/mes/pro/feedback/index.vue | 83 +++++++-------------- src/views/mes/utils/constants.ts | 11 ++- 3 files changed, 74 insertions(+), 68 deletions(-) diff --git a/src/views/mes/pro/feedback/FeedbackForm.vue b/src/views/mes/pro/feedback/FeedbackForm.vue index b58546ffd..4d323e1ba 100644 --- a/src/views/mes/pro/feedback/FeedbackForm.vue +++ b/src/views/mes/pro/feedback/FeedbackForm.vue @@ -207,9 +207,16 @@ - @@ -239,6 +246,9 @@ const dialogTitle = computed(() => { if (formType.value === 'create') { return '添加生产报工记录' } + if (formType.value === 'approve') { + return '审批生产报工' + } return '修改生产报工记录' }) const formData = ref>({ @@ -275,7 +285,7 @@ const formRules = reactive({ approveUserId: [{ required: true, message: '审核人不能为空', trigger: 'change' }] }) const formRef = ref() // 表单 Ref -const isDetail = computed(() => formType.value === 'detail') // 是否为详情模式 +const isDetail = computed(() => formType.value === 'detail' || formType.value === 'approve') // 是否为只读模式(详情/审批) const checkFlag = ref(true) // 是否需要检验(默认 true,未选任务时只展示报工数量) // ==================== 级联选择回调 ==================== @@ -415,6 +425,36 @@ const submitForm = async () => { } } +/** 审批通过 */ +const handleApprove = async () => { + formLoading.value = true + try { + const finished = await ProFeedbackApi.approveFeedback(formData.value.id!) + if (finished) { + message.success('报工单已审批完成') + } else { + message.success('报工成功,请等待质量检验完成!') + } + dialogVisible.value = false + emit('success') + } finally { + formLoading.value = false + } +} + +/** 审批不通过(驳回) */ +const handleReject = async () => { + formLoading.value = true + try { + await ProFeedbackApi.rejectFeedback(formData.value.id!) + message.success('报工单已驳回') + dialogVisible.value = false + emit('success') + } finally { + formLoading.value = false + } +} + /** 重置表单 */ const resetForm = () => { formData.value = { diff --git a/src/views/mes/pro/feedback/index.vue b/src/views/mes/pro/feedback/index.vue index 097e467e2..5dc7e135a 100644 --- a/src/views/mes/pro/feedback/index.vue +++ b/src/views/mes/pro/feedback/index.vue @@ -107,7 +107,6 @@ :show-overflow-tooltip="true" row-key="id" > - - - - -