diff --git a/src/views/wms/inventoryManage/package/index.vue b/src/views/wms/inventoryManage/package/index.vue
new file mode 100644
index 000000000..1cd4b7e1d
--- /dev/null
+++ b/src/views/wms/inventoryManage/package/index.vue
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/inventoryManage/package/package.data.ts b/src/views/wms/inventoryManage/package/package.data.ts
new file mode 100644
index 000000000..aedcef0e3
--- /dev/null
+++ b/src/views/wms/inventoryManage/package/package.data.ts
@@ -0,0 +1,408 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const PackageRules = reactive({
+ number: [required],
+ itemCode: [required],
+ itemName: [required],
+})
+export const Package = useCrudSchemas(reactive([
+ {
+ label: '包装号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 150,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '物料代码',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '物品名称',
+ field: 'itemName',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '物品描述1',
+ field: 'itemDesc1',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '物品描述2',
+ field: 'itemDesc2',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '批次',
+ field: 'batch',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '替代批次',
+ field: 'altBatch',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '生产日期',
+ field: 'produceDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ style: {width:'100%'},
+ 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'
+ }
+ },
+ table: {
+ width: 180,
+ },
+ },
+ {
+ label: '有效期(日)',
+ field: 'validityDays',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0
+ },
+ value: 0
+ },
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '失效日期',
+ field: 'expireDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ style: {width:'100%'},
+ 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'
+ }
+ },
+ table: {
+ width: 180,
+ },
+ },
+ {
+ label: '计量单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ form: {
+ component: 'SelectV2'
+ },
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '替代计量单位',
+ field: 'altUom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ form: {
+ component: 'SelectV2'
+ },
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '替代数量',
+ field: 'altQty',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '转换率',
+ field: 'convertRate',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '标包数量',
+ field: 'stdPackQty',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '标包单位',
+ field: 'stdPackUnit',
+ sort: 'custom',
+ dictType: DICT_TYPE.PACK_UNIT,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ form: {
+ component: 'SelectV2'
+ },
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '仓库代码',
+ field: 'toWarehouseCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '月台代码',
+ field: 'toDockCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '库位代码',
+ field: 'toLocationCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '供应商代码',
+ field: 'supplierCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '供应商物品代码',
+ field: 'supplierItemCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '采购订单号',
+ field: 'poNumber',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '采购订单行',
+ field: 'poLine',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '采购计划单号',
+ field: 'rpNumber',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '发货单号',
+ field: 'asnNumber',
+ sort: 'custom',
+ table: {
+ width: 182,
+ },
+ },
+ {
+ label: '生产订单号',
+ field: 'woNumber',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '生产订单行',
+ field: 'woLine',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '生产线代码',
+ field: 'productionLineCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '班组代码',
+ field: 'teamCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '班次代码',
+ field: 'shiftCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '客户代码',
+ field: 'customerCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '客户月台代码',
+ field: 'customerDockCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '客户物品代码',
+ field: 'customerItemCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '销售订单号',
+ field: 'soNumber',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '销售订单行',
+ field: 'soLine',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '质量等级',
+ field: 'eqLevel',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '货主代码',
+ field: 'ownerCode',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '重量',
+ field: 'weight',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '面积',
+ field: 'area',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '体积',
+ field: 'volume',
+ sort: 'custom',
+ table: {
+ width: 150,
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))