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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.status }}
+
+ 编辑
+
+
+ 提交
+
+
+ 删除
+
+
+
+
+ 执行退货
+
+
+
+ 执行上架
+
+
+
+ 取消
+
+
+
+
+
+
+
+
+
+
+