From 6553ab1875ca31e4a445138cf9aea2bc463537d2 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 18 Mar 2026 21:49:34 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E5=AE=A1=E6=89=B9=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E5=AD=97=E6=AE=B5=E5=92=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化报工审批功能,修改了相关的请求和响应对象,移除不必要的字段,新增任务信息的自动填充逻辑。调整了控制器中的方法名称和权限校验,确保审批流程的清晰和一致性。 --- src/api/mes/pro/feedback/index.ts | 11 ++--- src/views/mes/pro/feedback/FeedbackForm.vue | 53 ++++----------------- src/views/mes/pro/feedback/index.vue | 36 +++++--------- 3 files changed, 25 insertions(+), 75 deletions(-) diff --git a/src/api/mes/pro/feedback/index.ts b/src/api/mes/pro/feedback/index.ts index 3235b8e29..81a7ace45 100644 --- a/src/api/mes/pro/feedback/index.ts +++ b/src/api/mes/pro/feedback/index.ts @@ -28,7 +28,6 @@ export interface ProFeedbackVO { unitMeasureId: number // 单位编号 unitMeasureName: string // 单位名称 expireDate: Date // 过期日期 - batchCode: string // 批次号 scheduledQuantity: number // 排产数量 feedbackQuantity: number // 本次报工数量 qualifiedQuantity: number // 合格品数量 @@ -79,12 +78,8 @@ export const ProFeedbackApi = { rejectFeedback: async (id: number) => { return await request.put({ url: `/mes/pro/feedback/reject?id=` + id }) }, - // 执行报工 - finishFeedback: async (id: number) => { - return await request.put({ url: `/mes/pro/feedback/finish?id=` + id }) - }, - // 取消报工 - cancelFeedback: async (id: number) => { - return await request.put({ url: `/mes/pro/feedback/cancel?id=` + id }) + // 审批报工(返回审批后的状态) + approveFeedback: async (id: number) => { + return await request.put({ url: `/mes/pro/feedback/approve?id=` + id }) } } diff --git a/src/views/mes/pro/feedback/FeedbackForm.vue b/src/views/mes/pro/feedback/FeedbackForm.vue index a4020b43c..0940962b0 100644 --- a/src/views/mes/pro/feedback/FeedbackForm.vue +++ b/src/views/mes/pro/feedback/FeedbackForm.vue @@ -32,24 +32,6 @@ - - - - - - - - @@ -84,23 +66,13 @@ - - + - - - - - 报工数量 @@ -262,21 +234,16 @@ const dialogVisible = ref(false) const dialogTitle = ref('') const formLoading = ref(false) const formType = ref('') // 'create' | 'update' | 'detail' - const formData = ref>({ id: undefined, code: undefined, type: undefined, - channel: undefined, workstationId: undefined, routeId: undefined, processId: undefined, workOrderId: undefined, taskId: undefined, - itemId: undefined, - unitMeasureId: undefined, expireDate: undefined, - batchCode: undefined, feedbackQuantity: 0, qualifiedQuantity: 0, unqualifiedQuantity: 0, @@ -289,7 +256,6 @@ const formData = ref>({ approveUserId: undefined, remark: undefined }) - const formRules = reactive({ type: [{ required: true, message: '报工类型不能为空', trigger: 'change' }], workOrderId: [{ required: true, message: '生产工单不能为空', trigger: 'change' }], @@ -315,8 +281,6 @@ const handleWorkOrderChange = () => { formData.value.taskId = undefined formData.value.routeId = undefined formData.value.processId = undefined - formData.value.itemId = undefined - formData.value.unitMeasureId = undefined formData.value.workstationId = undefined processDisplay.value = '' checkFlag.value = false @@ -329,8 +293,6 @@ const handleTaskChange = (task: any) => { } formData.value.routeId = task.routeId formData.value.processId = task.processId - formData.value.itemId = task.itemId - formData.value.unitMeasureId = task.unitMeasureId formData.value.workstationId = task.workstationId processDisplay.value = task.processCode ? task.processCode + ' - ' + task.processName : '' // TODO @芋艿:加载 checkFlag(查询 routeProcess) @@ -339,6 +301,7 @@ const handleTaskChange = (task: any) => { // ==================== 报工单编号生成 ==================== /** 生成报工单编号(前端生成) */ +// TODO @芋艿:这块的生成逻辑; const generateCode = () => { const now = new Date() const pad = (n: number) => n.toString().padStart(2, '0') @@ -360,7 +323,13 @@ const generateCode = () => { /** 打开弹窗 */ const open = async (type: string, id?: number) => { dialogVisible.value = true - dialogTitle.value = type === 'detail' ? '报工详情' : t('action.' + type) + // TODO @AI:搞成 computed + dialogTitle.value = + type === 'detail' + ? '查看生产报工记录' + : type === 'create' + ? '添加生产报工记录' + : '修改生产报工记录' formType.value = type resetForm() if (id) { @@ -409,16 +378,12 @@ const resetForm = () => { id: undefined, code: undefined, type: undefined, - channel: undefined, workstationId: undefined, routeId: undefined, processId: undefined, workOrderId: undefined, taskId: undefined, - itemId: undefined, - unitMeasureId: undefined, expireDate: undefined, - batchCode: undefined, feedbackQuantity: 0, qualifiedQuantity: 0, unqualifiedQuantity: 0, diff --git a/src/views/mes/pro/feedback/index.vue b/src/views/mes/pro/feedback/index.vue index 44f860aae..eedc304de 100644 --- a/src/views/mes/pro/feedback/index.vue +++ b/src/views/mes/pro/feedback/index.vue @@ -99,6 +99,7 @@ :show-overflow-tooltip="true" row-key="id" > + + { } catch {} } -const handleFinish = async (id: number) => { +const handleApprove = async (id: number) => { try { - await message.confirm('确认要执行该报工单吗?') - await ProFeedbackApi.finishFeedback(id) - message.success('报工单已执行') - await getList() - } catch {} -} - -const handleCancel = async (id: number) => { - try { - await message.confirm('确认要取消该报工单吗?') - await ProFeedbackApi.cancelFeedback(id) - message.success('报工单已取消') + await message.confirm('确认要审批该报工单吗?') + const status = await ProFeedbackApi.approveFeedback(id) + if (status === MesProFeedbackStatusEnum.UNCHECK) { + message.success('报工成功,请等待质量检验完成!') + } else { + message.success('报工单已审批完成') + } await getList() } catch {} }