From bc932d0a0dc92ff4453af93c4ff27599aacfa074 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 1 Mar 2026 22:16:12 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=94=80=E5=94=AE=E9=80=80=E8=B4=A7=E5=8D=95=E5=8F=8A=E8=A1=8C?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E5=92=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增销售退货单及行的相关数据结构、请求和响应对象,包含销售退货单的基本信息、行信息以及相关的 API 接口,支持销售退货单的创建、更新、查询和删除操作,提升了系统的功能性和可维护性。 --- src/api/mes/wm/returnsales/detail/index.ts | 47 +++ src/api/mes/wm/returnsales/index.ts | 70 ++++ src/api/mes/wm/returnsales/line/index.ts | 45 +++ src/views/mes/utils/constants.ts | 9 + .../mes/wm/returnsales/ReturnSalesForm.vue | 227 +++++++++++++ src/views/mes/wm/returnsales/index.vue | 300 ++++++++++++++++++ 6 files changed, 698 insertions(+) create mode 100644 src/api/mes/wm/returnsales/detail/index.ts create mode 100644 src/api/mes/wm/returnsales/index.ts create mode 100644 src/api/mes/wm/returnsales/line/index.ts create mode 100644 src/views/mes/wm/returnsales/ReturnSalesForm.vue create mode 100644 src/views/mes/wm/returnsales/index.vue diff --git a/src/api/mes/wm/returnsales/detail/index.ts b/src/api/mes/wm/returnsales/detail/index.ts new file mode 100644 index 000000000..a8fbc2a81 --- /dev/null +++ b/src/api/mes/wm/returnsales/detail/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// MES 销售退货明细 VO +export interface WmReturnSalesDetailVO { + id?: number + returnId: number + lineId: number + itemId: number + quantity: number + batchId?: number + batchCode?: string + warehouseId: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + remark?: string +} + +// MES 销售退货明细 API +export const WmReturnSalesDetailApi = { + // 查询销售退货明细列表(按行编号) + getReturnSalesDetailListByLineId: async (lineId: number) => { + return await request.get({ url: '/mes/wm/return-sales-detail/list-by-line', params: { lineId } }) + }, + + // 查询销售退货明细详情 + getReturnSalesDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/return-sales-detail/get?id=' + id }) + }, + + // 新增销售退货明细 + createReturnSalesDetail: async (data: WmReturnSalesDetailVO) => { + return await request.post({ url: '/mes/wm/return-sales-detail/create', data }) + }, + + // 修改销售退货明细 + updateReturnSalesDetail: async (data: WmReturnSalesDetailVO) => { + return await request.put({ url: '/mes/wm/return-sales-detail/update', data }) + }, + + // 删除销售退货明细 + deleteReturnSalesDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-sales-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnsales/index.ts b/src/api/mes/wm/returnsales/index.ts new file mode 100644 index 000000000..1ef06886a --- /dev/null +++ b/src/api/mes/wm/returnsales/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +// MES 销售退货单 VO +export interface WmReturnSalesVO { + id?: number + code?: string + name: string + soCode?: string + clientId?: number + clientCode?: string + clientName?: string + returnDate?: string + returnReason?: string + status?: number + remark?: string + createTime?: string +} + +// MES 销售退货单 API +export const WmReturnSalesApi = { + // 查询销售退货单分页 + getReturnSalesPage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-sales/page', params }) + }, + + // 查询销售退货单详情 + getReturnSales: async (id: number) => { + return await request.get({ url: '/mes/wm/return-sales/get?id=' + id }) + }, + + // 新增销售退货单 + createReturnSales: async (data: WmReturnSalesVO) => { + return await request.post({ url: '/mes/wm/return-sales/create', data }) + }, + + // 修改销售退货单 + updateReturnSales: async (data: WmReturnSalesVO) => { + return await request.put({ url: '/mes/wm/return-sales/update', data }) + }, + + // 删除销售退货单 + deleteReturnSales: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-sales/delete?id=' + id }) + }, + + // 提交销售退货单 + submitReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/submit?id=' + id }) + }, + + // 执行退货 + executeReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/execute?id=' + id }) + }, + + // 执行上架 + stockReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/stock?id=' + id }) + }, + + // 取消销售退货单 + cancelReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/cancel?id=' + id }) + }, + + // 导出销售退货单 Excel + exportReturnSales: async (params: any) => { + return await request.download({ url: '/mes/wm/return-sales/export-excel', params }) + } +} diff --git a/src/api/mes/wm/returnsales/line/index.ts b/src/api/mes/wm/returnsales/line/index.ts new file mode 100644 index 000000000..3750f2dee --- /dev/null +++ b/src/api/mes/wm/returnsales/line/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// MES 销售退货单行 VO +export interface WmReturnSalesLineVO { + id?: number + returnId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + quantityReturned: number + batchId?: number + batchCode?: string + qualityStatus?: number + remark?: string +} + +// MES 销售退货单行 API +export const WmReturnSalesLineApi = { + // 查询销售退货单行分页 + getReturnSalesLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-sales-line/page', params }) + }, + + // 查询销售退货单行详情 + getReturnSalesLine: async (id: number) => { + return await request.get({ url: '/mes/wm/return-sales-line/get?id=' + id }) + }, + + // 新增销售退货单行 + createReturnSalesLine: async (data: WmReturnSalesLineVO) => { + return await request.post({ url: '/mes/wm/return-sales-line/create', data }) + }, + + // 修改销售退货单行 + updateReturnSalesLine: async (data: WmReturnSalesLineVO) => { + return await request.put({ url: '/mes/wm/return-sales-line/update', data }) + }, + + // 删除销售退货单行 + deleteReturnSalesLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-sales-line/delete?id=' + id }) + } +} diff --git a/src/views/mes/utils/constants.ts b/src/views/mes/utils/constants.ts index 1fbf2bba8..a67bb42b2 100644 --- a/src/views/mes/utils/constants.ts +++ b/src/views/mes/utils/constants.ts @@ -227,6 +227,15 @@ export const MesWmReturnVendorStatusEnum = { CANCELED: MesOrderStatusConstants.CANCELLED } +/** MES 销售退货单状态枚举 */ +export const MesWmReturnSalesStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + /** MES 生产退料单状态枚举 */ export const MesWmReturnIssueStatusEnum = { PREPARE: MesOrderStatusConstants.DRAFT, diff --git a/src/views/mes/wm/returnsales/ReturnSalesForm.vue b/src/views/mes/wm/returnsales/ReturnSalesForm.vue new file mode 100644 index 000000000..6d9516b26 --- /dev/null +++ b/src/views/mes/wm/returnsales/ReturnSalesForm.vue @@ -0,0 +1,227 @@ + + + diff --git a/src/views/mes/wm/returnsales/index.vue b/src/views/mes/wm/returnsales/index.vue new file mode 100644 index 000000000..c95f3e0aa --- /dev/null +++ b/src/views/mes/wm/returnsales/index.vue @@ -0,0 +1,300 @@ + + +