From 1cb1a2a471b354a59e28f362f5aa2f473c78aba4 Mon Sep 17 00:00:00 2001
From: zhaoxuebing <1291173720@qq.com>
Date: Fri, 16 May 2025 16:48:20 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BC=BA=E9=99=B7=EF=BC=9AFWHL-45?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/wms/packagetuomergeDetail/index.ts | 77 ++++
src/api/wms/packagetuomergeMain/index.ts | 62 +++
.../packagetuomergeMain/index.vue | 252 +++++++++++
.../packagetuomergeMain.data.ts | 409 ++++++++++++++++++
4 files changed, 800 insertions(+)
create mode 100644 src/api/wms/packagetuomergeDetail/index.ts
create mode 100644 src/api/wms/packagetuomergeMain/index.ts
create mode 100644 src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/index.vue
create mode 100644 src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/packagetuomergeMain.data.ts
diff --git a/src/api/wms/packagetuomergeDetail/index.ts b/src/api/wms/packagetuomergeDetail/index.ts
new file mode 100644
index 000000000..41429db76
--- /dev/null
+++ b/src/api/wms/packagetuomergeDetail/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface PackagetuomergeDetailVO {
+ id: number
+ number: string
+ masterId: number
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ uom: string
+ fromQty: number
+ toQty: number
+ fromLocationCode: string
+ toLocationCode: string
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCode: string
+ toAreaCode: string
+ fromPackingNumber: string
+ fromParentPackingNumber: string
+ fromBatch: string
+ toPackingNumber: string
+ toParentPackingNumber: string
+ toBatch: string
+ fromInventoryStatus: string
+ toInventoryStatus: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ interfaceType: string
+ projectCode: string
+ remark: string
+ siteId: string
+}
+
+// 查询合托记录子列表
+export const getPackagetuomergeDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packagetuomerge-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packagetuomerge-detail/page`, params })
+ }
+}
+
+// 查询合托记录子详情
+export const getPackagetuomergeDetail = async (id: number) => {
+ return await request.get({ url: `/wms/packagetuomerge-detail/get?id=` + id })
+}
+
+// 新增合托记录子
+export const createPackagetuomergeDetail = async (data: PackagetuomergeDetailVO) => {
+ return await request.post({ url: `/wms/packagetuomerge-detail/create`, data })
+}
+
+// 修改合托记录子
+export const updatePackagetuomergeDetail = async (data: PackagetuomergeDetailVO) => {
+ return await request.put({ url: `/wms/packagetuomerge-detail/update`, data })
+}
+
+// 删除合托记录子
+export const deletePackagetuomergeDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/packagetuomerge-detail/delete?id=` + id })
+}
+
+// 导出合托记录子 Excel
+export const exportPackagetuomergeDetail = async (params) => {
+ return await request.download({ url: `/wms/packagetuomerge-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packagetuomerge-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/packagetuomergeMain/index.ts b/src/api/wms/packagetuomergeMain/index.ts
new file mode 100644
index 000000000..05c8fc64f
--- /dev/null
+++ b/src/api/wms/packagetuomergeMain/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface PackagetuomergeMainVO {
+ id: number
+ number: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询合托记录主列表
+export const getPackagetuomergeMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packagetuomerge-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packagetuomerge-main/page`, params })
+ }
+}
+
+// 查询合托记录主详情
+export const getPackagetuomergeMain = async (id: number) => {
+ return await request.get({ url: `/wms/packagetuomerge-main/get?id=` + id })
+}
+
+// 新增合托记录主
+export const createPackagetuomergeMain = async (data: PackagetuomergeMainVO) => {
+ return await request.post({ url: `/wms/packagetuomerge-main/create`, data })
+}
+
+// 修改合托记录主
+export const updatePackagetuomergeMain = async (data: PackagetuomergeMainVO) => {
+ return await request.put({ url: `/wms/packagetuomerge-main/update`, data })
+}
+
+// 删除合托记录主
+export const deletePackagetuomergeMain = async (id: number) => {
+ return await request.delete({ url: `/wms/packagetuomerge-main/delete?id=` + id })
+}
+
+// 导出合托记录主 Excel
+export const exportPackagetuomergeMain = async (params) => {
+ return await request.download({ url: `/wms/packagetuomerge-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packagetuomerge-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/index.vue b/src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/index.vue
new file mode 100644
index 000000000..06efdc228
--- /dev/null
+++ b/src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/index.vue
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/packagetuomergeMain.data.ts b/src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/packagetuomergeMain.data.ts
new file mode 100644
index 000000000..dd71bdf6c
--- /dev/null
+++ b/src/views/wms/inventoryjobManage/packageManage/packagetuomergeMain/packagetuomergeMain.data.ts
@@ -0,0 +1,409 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const PackagetuomergeMainRules = reactive({
+})
+
+export const PackagetuomergeMain = useCrudSchemas(reactive([
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '物品代码',
+ field: 'itemCode',
+ sort: 'custom',
+ },
+ {
+ label: '物品名称',
+ field: 'itemName',
+ sort: 'custom',
+ },
+ {
+ label: '包装号',
+ field: 'toPackingNumber',
+ sort: 'custom',
+ },
+ {
+ label: '批次',
+ field: 'batch',
+ sort: 'custom',
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ },
+ {
+ label: '包装规格',
+ field: 'packUnit',
+ sort: 'custom',
+ },
+ {
+ label: '标包数量',
+ field: 'packQty',
+ sort: 'custom',
+ },
+ {
+ label: '库位代码',
+ field: 'toLocationCode',
+ sort: 'custom',
+ },
+ {
+ label: '库区代码',
+ field: 'toAreaCode',
+ sort: 'custom',
+ },
+ {
+ label: '仓库代码',
+ field: 'warehouseCode',
+ sort: 'custom',
+ },
+ {
+ label: '出库事务类型',
+ field: 'outTransactionType',
+ sort: 'custom',
+ isTable:false,
+ },
+ {
+ label: '入库事务类型',
+ field: 'inTransactionType',
+ sort: 'custom',
+ isTable:false,
+ },
+ {
+ label: '执行时间',
+ field: 'executeTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ isTable:false
+ },
+ {
+ label: '生效日期',
+ field: 'activeDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ isTable:false
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '申请时间',
+ field: 'requestTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ isTable:false
+ },
+ {
+ label: '截止时间',
+ field: 'dueTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ isTable:false
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '用户组',
+ field: 'userGroupCode',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '接口类型',
+ field: 'interfaceType',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '业务类型',
+ field: 'businessType',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isTable:false
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable:false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+
+// 表单校验
+export const PackagetuomergeDetailRules = reactive({
+})
+
+export const PackagetuomergeDetail = useCrudSchemas(reactive([
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '主表ID',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable:false,
+ isForm:false
+ },
+ {
+ label: '物品代码',
+ field: 'itemCode',
+ sort: 'custom',
+ },
+ {
+ label: '物品名称',
+ field: 'itemName',
+ sort: 'custom',
+ },
+ {
+ label: '物品描述1',
+ field: 'itemDesc1',
+ sort: 'custom',
+ },
+ {
+ label: '物品描述2',
+ field: 'itemDesc2',
+ sort: 'custom',
+ },
+ {
+ label: '计量单位',
+ field: 'uom',
+ sort: 'custom',
+ },
+ {
+ label: '从数量',
+ field: 'fromQty',
+ sort: 'custom',
+ },
+ {
+ label: '到数量',
+ field: 'toQty',
+ sort: 'custom',
+ },
+ {
+ label: '来源库位代码',
+ field: 'fromLocationCode',
+ sort: 'custom',
+ },
+ {
+ label: '目标库位代码',
+ field: 'toLocationCode',
+ sort: 'custom',
+ },
+ {
+ label: '来源库位组代码',
+ field: 'fromLocationGroupCode',
+ sort: 'custom',
+ isTable:false,
+ isForm:false
+ },
+ {
+ label: '目标库位组代码',
+ field: 'toLocationGroupCode',
+ sort: 'custom',
+ isTable:false,
+ isForm:false
+ },
+ {
+ label: '来源库区代码',
+ field: 'fromAreaCode',
+ sort: 'custom',
+ isTable:false,
+ isForm:false
+ },
+ {
+ label: '目标库区代码',
+ field: 'toAreaCode',
+ sort: 'custom',
+ isTable:false,
+ isForm:false
+ },
+ {
+ label: '从包装号',
+ field: 'fromPackingNumber',
+ sort: 'custom',
+ },
+ {
+ label: '从父包装号',
+ field: 'fromParentPackingNumber',
+ sort: 'custom',
+ },
+
+ {
+ label: '到包装号',
+ field: 'toPackingNumber',
+ sort: 'custom',
+ },
+ {
+ label: '从父包装号',
+ field: 'toParentPackingNumber',
+ sort: 'custom',
+ },
+ {
+ label: '从批次',
+ field: 'fromBatch',
+ sort: 'custom',
+ },
+ {
+ label: '到批次',
+ field: 'toBatch',
+ sort: 'custom',
+ },
+ {
+ label: '从库存状态',
+ field: 'fromInventoryStatus',
+ sort: 'custom',
+ },
+ {
+ label: '到库存状态',
+ field: 'toInventoryStatus',
+ sort: 'custom',
+ },
+ {
+ label: '包装规格',
+ field: 'packUnit',
+ sort: 'custom',
+ },
+ {
+ label: '标包数量',
+ field: 'packQty',
+ sort: 'custom',
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ isTable:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isSearch: false,
+ isForm: false,
+ isTable:false,
+ },
+]))