From 5375487d5733c79046bcc23991cf551ad95a2cdb Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 2 Mar 2026 18:21:55 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=94=80=E5=94=AE=E5=87=BA=E5=BA=93=E5=8D=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E5=8F=8A=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增待填写运单状态,优化销售出库单状态描述,调整相关方法注释以提高可读性。同时,更新前端表单以支持填写运单功能,确保用户体验一致性。 --- src/api/mes/wm/productsales/line/index.ts | 8 +- .../productsales/ProductSalesDetailForm.vue | 2 +- .../mes/wm/productsales/ProductSalesForm.vue | 77 +++++++++++++------ .../wm/productsales/ProductSalesLineList.vue | 21 ++++- 4 files changed, 73 insertions(+), 35 deletions(-) diff --git a/src/api/mes/wm/productsales/line/index.ts b/src/api/mes/wm/productsales/line/index.ts index 7be5fbdeb..cf8f57482 100644 --- a/src/api/mes/wm/productsales/line/index.ts +++ b/src/api/mes/wm/productsales/line/index.ts @@ -16,11 +16,9 @@ export interface WmProductSalesLineVO { // MES 销售出库单行 API export const WmProductSalesLineApi = { - // 查询销售出库单行列表(按出库单编号) - getProductSalesLineListBySalesId: async (salesId: number) => { - return await request.get({ - url: '/mes/wm/product-sales-line/list-by-sales-id?salesId=' + salesId - }) + // 查询销售出库单行分页 + getProductSalesLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-sales-line/page', params }) }, // 查询销售出库单行详情 diff --git a/src/views/mes/wm/productsales/ProductSalesDetailForm.vue b/src/views/mes/wm/productsales/ProductSalesDetailForm.vue index 5c8b3134b..9294611c1 100644 --- a/src/views/mes/wm/productsales/ProductSalesDetailForm.vue +++ b/src/views/mes/wm/productsales/ProductSalesDetailForm.vue @@ -24,7 +24,7 @@ - + - @@ -41,7 +40,7 @@ - + - - - - - - - - - - - - - @@ -122,6 +100,27 @@ + 运输信息 + + + + + + + + + + + + @@ -153,7 +155,7 @@ const message = useMessage() // 消息弹窗 const dialogVisible = ref(false) // 弹窗的是否展示 const formLoading = ref(false) // 表单的加载中 -const formType = ref('create') // 表单的类型:create / update / pick / detail +const formType = ref('create') // 表单的类型:create / update / pick / shipping / detail const formData = ref({ id: undefined as number | undefined, code: undefined, @@ -178,12 +180,14 @@ const formRef = ref() // 表单 Ref const isUpdate = computed(() => ['create', 'update'].includes(formType.value)) // 是否为编辑模式 const isPick = computed(() => formType.value === 'pick') // 是否为拣货模式 -const isHeaderReadonly = computed(() => ['pick', 'detail'].includes(formType.value)) // 是否只读 +const isShipping = computed(() => formType.value === 'shipping') // 是否为填写运单模式 +const isHeaderReadonly = computed(() => ['pick', 'shipping', 'detail'].includes(formType.value)) // 是否只读 const dialogTitle = computed(() => { const titles = { create: '新增销售出库单', update: '编辑销售出库单', pick: '执行拣货', + shipping: '填写运单', detail: '销售出库单详情' } return titles[formType.value] || formType.value @@ -251,6 +255,29 @@ const handlePick = async () => { } } +/** 填写运单 */ +// TODO @AI:方法改成 handleShipping +const handleShipping = async () => { + try { + await message.confirm('确认提交运单信息?') + formLoading.value = true + // 只提交运输信息字段 + const data = { + id: formData.value.id, + carrier: formData.value.carrier, + shippingNumber: formData.value.shippingNumber + } as unknown as WmProductSalesVO + // TODO @AI:不是更新方法,需要增加一个 controller 接口; + await WmProductSalesApi.updateProductSales(data) + message.success('运单信息填写成功') + dialogVisible.value = false + emit('success') + } catch { + } finally { + formLoading.value = false + } +} + /** 重置表单 */ const resetForm = () => { formData.value = { diff --git a/src/views/mes/wm/productsales/ProductSalesLineList.vue b/src/views/mes/wm/productsales/ProductSalesLineList.vue index aec691da3..994d44032 100644 --- a/src/views/mes/wm/productsales/ProductSalesLineList.vue +++ b/src/views/mes/wm/productsales/ProductSalesLineList.vue @@ -65,6 +65,12 @@ + @@ -84,8 +90,7 @@ - - + @@ -156,12 +161,21 @@ const isPick = computed(() => props.formType === 'pick') // 是否为拣货模 // ==================== 列表 ==================== const loading = ref(false) // 列表的加载中 const list = ref([]) // 行列表 +const total = ref(0) // 列表的总页数 +const queryParams = reactive({ + pageNo: 1, + pageSize: 10, + salesId: undefined as number | undefined +}) /** 查询行列表 */ const getList = async () => { loading.value = true try { - list.value = await WmProductSalesLineApi.getProductSalesLineListBySalesId(props.salesId) + queryParams.salesId = props.salesId + const data = await WmProductSalesLineApi.getProductSalesLinePage(queryParams) + list.value = data.list + total.value = data.total } finally { loading.value = false } @@ -204,7 +218,6 @@ const openForm = async (type: string, id?: number) => { lineFormType.value = type resetForm() if (id) { - // TODO @AI:这个是分页接口; formLoading.value = true try { formData.value = await WmProductSalesLineApi.getProductSalesLine(id)