From efaf527d8052898652fda45b6bbb6f0c59c76017 Mon Sep 17 00:00:00 2001 From: hwj Date: Fri, 24 Apr 2026 14:49:29 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=BA=93=E5=8C=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF/=E5=BA=93=E4=BD=8D=E4=BF=A1=E6=81=AF-=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/erp/stock/warehousearea/index.ts | 34 +++ src/api/erp/stock/warehouselocation/index.ts | 40 +++ src/locales/en.ts | 54 ++++ src/locales/zh-CN.ts | 54 ++++ .../erp/warehousearea/WarehouseAreaForm.vue | 148 ++++++++++ src/views/erp/warehousearea/index.vue | 201 +++++++++++++ .../WarehouseLocationForm.vue | 227 +++++++++++++++ src/views/erp/warehouselocation/index.vue | 263 ++++++++++++++++++ 8 files changed, 1021 insertions(+) create mode 100644 src/api/erp/stock/warehousearea/index.ts create mode 100644 src/api/erp/stock/warehouselocation/index.ts create mode 100644 src/views/erp/warehousearea/WarehouseAreaForm.vue create mode 100644 src/views/erp/warehousearea/index.vue create mode 100644 src/views/erp/warehouselocation/WarehouseLocationForm.vue create mode 100644 src/views/erp/warehouselocation/index.vue diff --git a/src/api/erp/stock/warehousearea/index.ts b/src/api/erp/stock/warehousearea/index.ts new file mode 100644 index 00000000..5d0b9296 --- /dev/null +++ b/src/api/erp/stock/warehousearea/index.ts @@ -0,0 +1,34 @@ +import request from '@/config/axios' + +export interface WarehouseAreaVO { + id: number + warehouseId: number + areaCode: string + areaName: string + areaSize: number + description: string + status: number + createTime: string +} + +export const WarehouseAreaApi = { + getWarehouseAreaPage: async (params: any) => { + return await request.get({ url: `/erp/warehouse-area/page`, params }) + }, + + getWarehouseArea: async (id: number) => { + return await request.get({ url: `/erp/warehouse-area/get?id=` + id }) + }, + + createWarehouseArea: async (data: WarehouseAreaVO) => { + return await request.post({ url: `/erp/warehouse-area/create`, data }) + }, + + updateWarehouseArea: async (data: WarehouseAreaVO) => { + return await request.put({ url: `/erp/warehouse-area/update`, data }) + }, + + deleteWarehouseArea: async (id: number) => { + return await request.delete({ url: `/erp/warehouse-area/delete?id=` + id }) + } +} diff --git a/src/api/erp/stock/warehouselocation/index.ts b/src/api/erp/stock/warehouselocation/index.ts new file mode 100644 index 00000000..5bb7a0a1 --- /dev/null +++ b/src/api/erp/stock/warehouselocation/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface WarehouseLocationVO { + id: number + warehouseId: number + areaId: number + code: string + name: string + areaSize: number + maxLoadWeight: number + positionX: number + positionY: number + positionZ: number + allowProductMix: boolean + allowBatchMix: boolean + status: number + createTime: string +} + +export const WarehouseLocationApi = { + getWarehouseLocationPage: async (params: any) => { + return await request.get({ url: `/erp/warehouse-location/page`, params }) + }, + + getWarehouseLocation: async (id: number) => { + return await request.get({ url: `/erp/warehouse-location/get?id=` + id }) + }, + + createWarehouseLocation: async (data: WarehouseLocationVO) => { + return await request.post({ url: `/erp/warehouse-location/create`, data }) + }, + + updateWarehouseLocation: async (data: WarehouseLocationVO) => { + return await request.put({ url: `/erp/warehouse-location/update`, data }) + }, + + deleteWarehouseLocation: async (id: number) => { + return await request.delete({ url: `/erp/warehouse-location/delete?id=` + id }) + } +} diff --git a/src/locales/en.ts b/src/locales/en.ts index 5c7a1810..59c1851d 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -59,6 +59,8 @@ export default { copy: 'Copy', copySuccess: 'Copy Success', copyError: 'Copy Error', + yes: 'Yes', + no: 'No', code:'Auto-generate on Save' }, ReportDashboard: { @@ -287,6 +289,58 @@ export default { cancel: 'cancel', exportName: 'Warehouse.xls' }, + WarehouseArea: { + warehouseId: 'Warehouse', + areaCode: 'Area Code', + areaName: 'Area Name', + areaSize: 'Area Size (㎡)', + description: 'Description', + status: 'Status', + createTime: 'Create Time', + placeholderWarehouseId: 'Please select warehouse', + placeholderAreaCode: 'Please enter area code', + placeholderAreaName: 'Please enter area name', + placeholderAreaSize: 'Please enter area size', + placeholderDescription: 'Please enter description', + placeholderStatus: 'Please select status', + validatorWarehouseIdRequired: 'Warehouse is required', + validatorAreaCodeRequired: 'Area code is required', + validatorAreaNameRequired: 'Area name is required', + validatorStatusRequired: 'Status is required' + }, + WarehouseLocation: { + warehouseId: 'Warehouse', + areaId: 'Area', + code: 'Location Code', + name: 'Location Name', + areaSize: 'Area Size (㎡)', + maxLoadWeight: 'Max Load Weight', + position: 'Position (X,Y,Z)', + positionX: 'Position X', + positionY: 'Position Y', + positionZ: 'Position Z', + allowProductMix: 'Allow Product Mix', + allowBatchMix: 'Allow Batch Mix', + status: 'Status', + createTime: 'Create Time', + placeholderWarehouseId: 'Please select warehouse', + placeholderAreaId: 'Please select area', + placeholderCode: 'Please enter location code', + placeholderName: 'Please enter location name', + placeholderAreaSize: 'Please enter area size', + placeholderMaxLoadWeight: 'Please enter max load weight', + placeholderPositionX: 'Please enter position X', + placeholderPositionY: 'Please enter position Y', + placeholderPositionZ: 'Please enter position Z', + placeholderStatus: 'Please select status', + validatorWarehouseIdRequired: 'Warehouse is required', + validatorAreaIdRequired: 'Area is required', + validatorCodeRequired: 'Location code is required', + validatorNameRequired: 'Location name is required', + validatorAllowProductMixRequired: 'Allow product mix is required', + validatorAllowBatchMixRequired: 'Allow batch mix is required', + validatorStatusRequired: 'Status is required' + }, Stock: { product: 'Product', warehouse: 'Warehouse', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 8b896efa..d52c723e 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -59,6 +59,8 @@ export default { copy: '复制', copySuccess: '复制成功', copyError: '复制失败', + yes: '是', + no: '否', code: '编码保存后自动生成' }, ReportDashboard: { @@ -287,6 +289,58 @@ export default { cancel: '取消', exportName: '仓库.xls' }, + WarehouseArea: { + warehouseId: '所属仓库', + areaCode: '库区编码', + areaName: '库区名称', + areaSize: '面积(㎡)', + description: '库区描述', + status: '开启状态', + createTime: '创建时间', + placeholderWarehouseId: '请选择所属仓库', + placeholderAreaCode: '请输入库区编码', + placeholderAreaName: '请输入库区名称', + placeholderAreaSize: '请输入面积', + placeholderDescription: '请输入库区描述', + placeholderStatus: '请选择开启状态', + validatorWarehouseIdRequired: '所属仓库不能为空', + validatorAreaCodeRequired: '库区编码不能为空', + validatorAreaNameRequired: '库区名称不能为空', + validatorStatusRequired: '开启状态不能为空' + }, + WarehouseLocation: { + warehouseId: '所属仓库', + areaId: '所属库区', + code: '库位编码', + name: '库位名称', + areaSize: '面积(㎡)', + maxLoadWeight: '最大载重量', + position: '库位位置(X,Y,Z)', + positionX: '位置X', + positionY: '位置Y', + positionZ: '位置Z', + allowProductMix: '允许产品混放', + allowBatchMix: '允许批次混放', + status: '开启状态', + createTime: '创建时间', + placeholderWarehouseId: '请选择所属仓库', + placeholderAreaId: '请选择所属库区', + placeholderCode: '请输入库位编码', + placeholderName: '请输入库位名称', + placeholderAreaSize: '请输入面积', + placeholderMaxLoadWeight: '请输入最大载重量', + placeholderPositionX: '请输入位置X', + placeholderPositionY: '请输入位置Y', + placeholderPositionZ: '请输入位置Z', + placeholderStatus: '请选择开启状态', + validatorWarehouseIdRequired: '所属仓库不能为空', + validatorAreaIdRequired: '所属库区不能为空', + validatorCodeRequired: '库位编码不能为空', + validatorNameRequired: '库位名称不能为空', + validatorAllowProductMixRequired: '是否允许产品混放不能为空', + validatorAllowBatchMixRequired: '是否允许批次混放不能为空', + validatorStatusRequired: '开启状态不能为空' + }, Stock: { product: '产品', warehouse: '仓库', diff --git a/src/views/erp/warehousearea/WarehouseAreaForm.vue b/src/views/erp/warehousearea/WarehouseAreaForm.vue new file mode 100644 index 00000000..83e87a00 --- /dev/null +++ b/src/views/erp/warehousearea/WarehouseAreaForm.vue @@ -0,0 +1,148 @@ + + + diff --git a/src/views/erp/warehousearea/index.vue b/src/views/erp/warehousearea/index.vue new file mode 100644 index 00000000..1feed687 --- /dev/null +++ b/src/views/erp/warehousearea/index.vue @@ -0,0 +1,201 @@ + + + diff --git a/src/views/erp/warehouselocation/WarehouseLocationForm.vue b/src/views/erp/warehouselocation/WarehouseLocationForm.vue new file mode 100644 index 00000000..f2fe9a1d --- /dev/null +++ b/src/views/erp/warehouselocation/WarehouseLocationForm.vue @@ -0,0 +1,227 @@ + + + diff --git a/src/views/erp/warehouselocation/index.vue b/src/views/erp/warehouselocation/index.vue new file mode 100644 index 00000000..9d92f67c --- /dev/null +++ b/src/views/erp/warehouselocation/index.vue @@ -0,0 +1,263 @@ + + +