diff --git a/src/api/mes/dv/repair/index.ts b/src/api/mes/dv/repair/index.ts index 6d869570d..3c8ca1081 100644 --- a/src/api/mes/dv/repair/index.ts +++ b/src/api/mes/dv/repair/index.ts @@ -57,12 +57,22 @@ export const DvRepairApi = { return await request.download({ url: `/mes/dv/repair/export-excel`, params }) }, - // 通过维修工单 + // 提交维修工单(草稿→维修中) + submitRepair: async (id: number) => { + return await request.put({ url: `/mes/dv/repair/submit?id=` + id }) + }, + + // 完成维修(维修中→待验收) + finishRepair: async (id: number) => { + return await request.put({ url: `/mes/dv/repair/finish?id=` + id }) + }, + + // 验收通过(待验收→已确认) confirmRepair: async (id: number) => { return await request.put({ url: `/mes/dv/repair/confirm?id=` + id }) }, - // 不通过维修工单 + // 验收不通过(待验收→已确认) rejectRepair: async (id: number) => { return await request.put({ url: `/mes/dv/repair/reject?id=` + id }) } diff --git a/src/views/mes/dv/repair/RepairForm.vue b/src/views/mes/dv/repair/RepairForm.vue index b387b5ccc..4e695b952 100644 --- a/src/views/mes/dv/repair/RepairForm.vue +++ b/src/views/mes/dv/repair/RepairForm.vue @@ -49,18 +49,18 @@ /> - + - + - + + - + + - + + @@ -126,12 +129,6 @@ 保 存 - - 通 过 - - - 不通过 - 关 闭 @@ -152,18 +149,31 @@ const emit = defineEmits(['success']) const message = useMessage() // 消息弹窗 const dialogVisible = ref(false) // 弹窗的是否展示 const formLoading = ref(false) // 表单的加载中 -const formType = ref('create') // 表单类型:create / update / confirm / reject / detail +const formType = ref('create') // 表单类型:create / update / detail const isEditable = computed(() => ['create', 'update'].includes(formType.value)) // 是否为编辑模式 -const isConfirm = computed(() => formType.value === 'confirm') // 是否为通过模式 -const isReject = computed(() => formType.value === 'reject') // 是否为不通过模式 -const isDetail = computed(() => ['detail', 'confirm', 'reject'].includes(formType.value)) // 是否为详情模式 -const isHeaderReadonly = computed(() => ['confirm', 'reject', 'detail'].includes(formType.value)) // 是否只读 +const isDetail = computed(() => formType.value === 'detail') // 是否为详情模式 +const isHeaderReadonly = computed(() => formType.value === 'detail') // 是否只读 + +// 根据状态控制 4 状态字段显隐 TODO @AI;注释在字段后面,对齐上面的标准 +const showFinishFields = computed(() => { + const status = formData.value.status + if (status == null) { + return false + } + return status >= MesDvRepairStatusEnum.CONFIRMED +}) +const showConfirmFields = computed(() => { + const status = formData.value.status + if (status == null) { + return false + } + return status >= MesDvRepairStatusEnum.APPROVING +}) + const dialogTitle = computed(() => { const titles: Record = { create: '新增维修工单', update: '编辑维修工单', - confirm: '通过维修工单', - reject: '不通过维修工单', detail: '维修工单详情' } return titles[formType.value] || formType.value @@ -200,7 +210,7 @@ const open = async (type: string, id?: number) => { dialogVisible.value = true formType.value = type resetForm() - // 修改/通过/不通过/详情时,加载数据 + // 修改/详情时,加载数据 if (id) { formLoading.value = true try { @@ -221,8 +231,9 @@ const submitForm = async () => { const res = await DvRepairApi.createRepair(data) message.success('新增成功') // 创建成功后,更新表单数据和状态为编辑模式 + // TODO @AI:对齐,是不是应该直接 close 的? formData.value.id = res - formData.value.status = MesDvRepairStatusEnum.DRAFT + formData.value.status = MesDvRepairStatusEnum.PREPARE formType.value = 'update' } else { await DvRepairApi.updateRepair(data) @@ -234,36 +245,6 @@ const submitForm = async () => { } } -/** 通过操作 */ -const handleConfirm = async () => { - try { - await message.confirm('确认通过该维修工单吗?') - formLoading.value = true - await DvRepairApi.confirmRepair(formData.value.id!) - message.success('操作成功') - dialogVisible.value = false - emit('success') - } catch { - } finally { - formLoading.value = false - } -} - -/** 不通过操作 */ -const handleReject = async () => { - try { - await message.confirm('确认不通过该维修工单吗?') - formLoading.value = true - await DvRepairApi.rejectRepair(formData.value.id!) - message.success('操作成功') - dialogVisible.value = false - emit('success') - } catch { - } finally { - formLoading.value = false - } -} - /** 重置表单 */ const resetForm = () => { formData.value = { diff --git a/src/views/mes/dv/repair/index.vue b/src/views/mes/dv/repair/index.vue index b328af47b..774e596e2 100644 --- a/src/views/mes/dv/repair/index.vue +++ b/src/views/mes/dv/repair/index.vue @@ -117,7 +117,12 @@ - +