From 1afe2e79e4acf205a17dcbe56b7181f3776da839 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 27 Feb 2026 23:58:35 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=A2=86=E6=96=99=E5=87=BA=E5=BA=93=E5=8D=95=E6=98=8E=E7=BB=86?= =?UTF-8?q?=20API=20=E6=8E=A5=E5=8F=A3=E5=8F=8A=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改领料出库单明细的 API 接口,支持按行编号查询明细列表 - 替换供应商选择组件,简化供应商选择逻辑 - 添加取消领料出库单的功能,增强用户操作体验 --- .../mes/wm/productionissue/detail/index.ts | 6 ++--- src/api/mes/wm/productionissue/index.ts | 5 ++++ .../wm/itemreceipt/ItemReceiptLineList.vue | 4 +-- src/views/mes/wm/itemreceipt/index.vue | 22 +++------------- .../ProductionIssueDetailList.vue | 8 +----- .../productionissue/ProductionIssueForm.vue | 5 ++-- src/views/mes/wm/productionissue/index.vue | 26 ++++++++++++++++++- 7 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/api/mes/wm/productionissue/detail/index.ts b/src/api/mes/wm/productionissue/detail/index.ts index 3d68b3661..ebc3843cb 100644 --- a/src/api/mes/wm/productionissue/detail/index.ts +++ b/src/api/mes/wm/productionissue/detail/index.ts @@ -21,9 +21,9 @@ export interface WmProductionIssueDetailVO { // MES 领料出库明细 API export const WmProductionIssueDetailApi = { - // 查询领料出库明细分页 - getProductionIssueDetailPage: async (params: any) => { - return await request.get({ url: '/mes/wm/production-issue-detail/page', params }) + // 查询领料出库明细列表(按行编号) + getProductionIssueDetailListByLineId: async (lineId: number) => { + return await request.get({ url: '/mes/wm/production-issue-detail/list-by-line', params: { lineId } }) }, // 查询领料出库明细详情 diff --git a/src/api/mes/wm/productionissue/index.ts b/src/api/mes/wm/productionissue/index.ts index 332b05149..d564310ef 100644 --- a/src/api/mes/wm/productionissue/index.ts +++ b/src/api/mes/wm/productionissue/index.ts @@ -68,6 +68,11 @@ export const WmProductionIssueApi = { return await request.put({ url: '/mes/wm/production-issue/stock?id=' + id }) }, + // 取消领料出库单 + cancelProductionIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/production-issue/cancel?id=' + id }) + }, + // 完成领料出库单(执行出库) finishProductionIssue: async (id: number) => { return await request.put({ url: '/mes/wm/production-issue/finish?id=' + id }) diff --git a/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue b/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue index 68fdaa815..37168f357 100644 --- a/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue +++ b/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue @@ -47,7 +47,7 @@ 删除 - + 上架 @@ -314,7 +314,7 @@ const setDetailListRef = (lineId: number, el: any) => { const detailFormRef = ref() /** 上架:直接打开明细创建表单 */ -const handleShelving = (lineId: number) => { +const handleStock = (lineId: number) => { const row = list.value.find((r) => r.id === lineId) openDetailForm('create', lineId, row?.itemId) } diff --git a/src/views/mes/wm/itemreceipt/index.vue b/src/views/mes/wm/itemreceipt/index.vue index f51fce01b..e0ce049f0 100644 --- a/src/views/mes/wm/itemreceipt/index.vue +++ b/src/views/mes/wm/itemreceipt/index.vue @@ -26,19 +26,7 @@ /> - - - + ([]) // 列表的数据 const total = ref(0) // 列表的总页数 const exportLoading = ref(false) // 导出的加载中 -const vendorList = ref([]) // 供应商列表 const queryParams = reactive({ pageNo: 1, pageSize: 10, @@ -282,8 +269,7 @@ const handleExport = async () => { } /** 初始化 */ -onMounted(async () => { - vendorList.value = await MdVendorApi.getVendorSimpleList() - await getList() +onMounted(() => { + getList() }) diff --git a/src/views/mes/wm/productionissue/ProductionIssueDetailList.vue b/src/views/mes/wm/productionissue/ProductionIssueDetailList.vue index 1768e8a61..3553a6d4e 100644 --- a/src/views/mes/wm/productionissue/ProductionIssueDetailList.vue +++ b/src/views/mes/wm/productionissue/ProductionIssueDetailList.vue @@ -52,14 +52,8 @@ const list = ref([]) // 明细列表 /** 查询明细列表 */ const getList = async () => { loading.value = true - // TODO @AI:走 list 接口,不需要分页;检查下; try { - const data = await WmProductionIssueDetailApi.getProductionIssueDetailPage({ - pageNo: 1, - pageSize: 100, - lineId: props.lineId - }) - list.value = data.list + list.value = await WmProductionIssueDetailApi.getProductionIssueDetailListByLineId(props.lineId) } finally { loading.value = false } diff --git a/src/views/mes/wm/productionissue/ProductionIssueForm.vue b/src/views/mes/wm/productionissue/ProductionIssueForm.vue index d94203b6a..d1749e4d8 100644 --- a/src/views/mes/wm/productionissue/ProductionIssueForm.vue +++ b/src/views/mes/wm/productionissue/ProductionIssueForm.vue @@ -107,9 +107,10 @@ const formData = ref({ remark: undefined }) const formRules = reactive({ - // TODO @AI:你看下 workorderid、需求时间,必填; code: [{ required: true, message: '领料单编号不能为空', trigger: 'blur' }], - name: [{ required: true, message: '领料单名称不能为空', trigger: 'blur' }] + name: [{ required: true, message: '领料单名称不能为空', trigger: 'blur' }], + workOrderId: [{ required: true, message: '生产工单不能为空', trigger: 'change' }], + requiredTime: [{ required: true, message: '需求时间不能为空', trigger: 'change' }] }) const formRef = ref() // 表单 Ref diff --git a/src/views/mes/wm/productionissue/index.vue b/src/views/mes/wm/productionissue/index.vue index d67ee7f7a..210907c3c 100644 --- a/src/views/mes/wm/productionissue/index.vue +++ b/src/views/mes/wm/productionissue/index.vue @@ -96,7 +96,7 @@ :formatter="dateFormatter2" width="180px" /> - + @@ -151,6 +151,20 @@ > 完成 + + + 取消 + @@ -242,6 +256,16 @@ const handleDelete = async (id: number) => { } catch {} } +/** 取消按钮操作 */ +const handleCancel = async (id: number) => { + try { + await message.confirm('确认取消该领料出库单?取消后不可恢复。') + await WmProductionIssueApi.cancelProductionIssue(id) + message.success('取消成功') + await getList() + } catch {} +} + /** 完成按钮操作 */ const handleFinish = async (id: number) => { try {