From 1b6301a01a9723346a1faa3229a0b52eb12d9a69 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 24 Jun 2026 15:11:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?style=EF=BC=9A=E4=BA=A7=E5=93=81=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=9F=A5=E8=AF=A2=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/productInventory.js | 12 + src/locales/en-US.js | 27 ++ src/locales/index.js | 2 + src/locales/zh-CN.js | 27 ++ src/pages.json | 14 + .../pages/productInventory/detail.vue | 230 +++++++++++++ .../pages/productInventory/index.vue | 320 ++++++++++++++++++ src/utils/permissionMenu.js | 7 + 8 files changed, 639 insertions(+) create mode 100644 src/api/mes/productInventory.js create mode 100644 src/pages_function/pages/productInventory/detail.vue create mode 100644 src/pages_function/pages/productInventory/index.vue diff --git a/src/api/mes/productInventory.js b/src/api/mes/productInventory.js new file mode 100644 index 0000000..2806c0b --- /dev/null +++ b/src/api/mes/productInventory.js @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +export function getProductInventoryPage(params = {}) { + return request({ + url: '/admin-api/erp/stock/page', + method: 'get', + params: { + categoryType: 1, + ...params + } + }) +} \ No newline at end of file diff --git a/src/locales/en-US.js b/src/locales/en-US.js index 414221b..bf2a1ed 100644 --- a/src/locales/en-US.js +++ b/src/locales/en-US.js @@ -1732,4 +1732,31 @@ export default { outMode: 'Outbound Mode', outModeWholePallet: 'Whole Pallet', outModeSplitPallet: 'Split Pallet' + }, + productInventory: { + moduleName: 'Product Inventory', + detailTitle: 'Product Inventory Detail', + searchPlaceholder: 'Enter product code or name', + allWarehouse: 'All Warehouses', + warehousePlaceholder: 'Warehouse Filter', + productInfo: 'Product Info', + stockInfo: 'Stock Info', + productName: 'Product Name', + barCode: 'Product Code', + warehouse: 'Warehouse', + area: 'Area', + count: 'Base Qty', + stockDisplay: 'Stock Display', + areaStockDisplay: 'Area Stock Display', + totalPackageCount: 'Total Packages', + totalBaseCount: 'Total Pieces', + unit: 'Unit', + category: 'Product Category', + standard: 'Spec', + packagingRule: 'Packaging/Conversion Rule', + latestInTime: 'Latest Inbound', + latestOutTime: 'Latest Outbound', + remark: 'Remark', + empty: 'No product inventory data', + noDetailId: 'No product inventory ID' }} diff --git a/src/locales/index.js b/src/locales/index.js index 0b50723..356f13e 100644 --- a/src/locales/index.js +++ b/src/locales/index.js @@ -147,6 +147,8 @@ const literalMap = { '产品出库': 'productOutbound.moduleName', '新增产品出库': 'productOutbound.createTitle', '产品出库详情': 'productOutbound.detailTitle', + '产品库存查询': 'productInventory.moduleName', + '产品库存详情': 'productInventory.detailTitle', '产品盘点执行': 'productCheck.moduleName', '新增产品盘点': 'productCheck.createTitle', '执行盘点': 'productCheck.executeTitle', diff --git a/src/locales/zh-CN.js b/src/locales/zh-CN.js index 6a3403e..dd8941d 100644 --- a/src/locales/zh-CN.js +++ b/src/locales/zh-CN.js @@ -1817,6 +1817,33 @@ export default { empty: '暂无出库单据', createTitle: '新增物料出库' }, + productInventory: { + moduleName: '产品库存查询', + detailTitle: '产品库存详情', + searchPlaceholder: '请输入产品编码或名称', + allWarehouse: '全部仓库', + warehousePlaceholder: '仓库筛选', + productInfo: '产品信息', + stockInfo: '库存信息', + productName: '产品名称', + barCode: '产品编码', + warehouse: '仓库', + area: '库区', + count: '基本数量', + stockDisplay: '库存展示', + areaStockDisplay: '库区库存展示', + totalPackageCount: '总包数', + totalBaseCount: '总个数', + unit: '单位', + category: '产品小类', + standard: '规格', + packagingRule: '包装/换算规则', + latestInTime: '最近入库', + latestOutTime: '最近出库', + remark: '备注', + empty: '暂无产品库存数据', + noDetailId: '暂无产品库存ID' + }, sparepartInventory: { moduleName: '备件库存查询', searchPlaceholder: '请输入备件编码或名称', diff --git a/src/pages.json b/src/pages.json index 3403dc3..2034190 100644 --- a/src/pages.json +++ b/src/pages.json @@ -577,6 +577,20 @@ "navigationStyle": "custom" } }, + { + "path": "productInventory/index", + "style": { + "navigationBarTitleText": "\u4ea7\u54c1\u5e93\u5b58\u67e5\u8be2", + "navigationStyle": "custom" + } + }, + { + "path": "productInventory/detail", + "style": { + "navigationBarTitleText": "\u4ea7\u54c1\u5e93\u5b58\u8be6\u60c5", + "navigationStyle": "custom" + } + }, { "path": "sparepartInventory/index", "style": { diff --git a/src/pages_function/pages/productInventory/detail.vue b/src/pages_function/pages/productInventory/detail.vue new file mode 100644 index 0000000..ed7d96a --- /dev/null +++ b/src/pages_function/pages/productInventory/detail.vue @@ -0,0 +1,230 @@ + + + + + \ No newline at end of file diff --git a/src/pages_function/pages/productInventory/index.vue b/src/pages_function/pages/productInventory/index.vue new file mode 100644 index 0000000..59ce481 --- /dev/null +++ b/src/pages_function/pages/productInventory/index.vue @@ -0,0 +1,320 @@ + + + + + \ No newline at end of file diff --git a/src/utils/permissionMenu.js b/src/utils/permissionMenu.js index 6cfc06e..f817de2 100644 --- a/src/utils/permissionMenu.js +++ b/src/utils/permissionMenu.js @@ -121,6 +121,13 @@ const MENU_ROUTE_MAP = { materialOutbound: '/pages_function/pages/materialOutbound/index', materialoutbound: '/pages_function/pages/materialOutbound/index', '物料出库': '/pages_function/pages/materialOutbound/index', + productInventory: '/pages_function/pages/productInventory/index', + productinventory: '/pages_function/pages/productInventory/index', + productStock: '/pages_function/pages/productInventory/index', + productstock: '/pages_function/pages/productInventory/index', + productinventoryquery: '/pages_function/pages/productInventory/index', + '产品库存': '/pages_function/pages/productInventory/index', + '产品库存查询': '/pages_function/pages/productInventory/index', sparepartinventory: '/pages_function/pages/sparepartInventory/index', '备件库存查询': '/pages_function/pages/sparepartInventory/index', materialinventory: '/pages_function/pages/materialInventory/index', From 9bc94b6816faa707e9925e4a40bea8fee0699228 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 24 Jun 2026 15:49:48 +0800 Subject: [PATCH 2/4] =?UTF-8?q?style=EF=BC=9A=E4=BA=A7=E5=93=81=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E3=80=81=E4=BA=A7=E5=93=81=E5=87=BA=E5=BA=93=E3=80=81?= =?UTF-8?q?=E7=9B=98=E7=82=B9=E7=8A=B6=E6=80=81=E7=AD=9B=E9=80=89=E6=A1=86?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/en-US.js | 2 ++ src/locales/zh-CN.js | 2 ++ src/pages_function/pages/productCheck/index.vue | 7 +++---- src/pages_function/pages/productInbound/index.vue | 7 +++---- src/pages_function/pages/productOutbound/index.vue | 7 +++---- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/locales/en-US.js b/src/locales/en-US.js index bf2a1ed..b2c2e57 100644 --- a/src/locales/en-US.js +++ b/src/locales/en-US.js @@ -1400,6 +1400,7 @@ export default { selectPalletTitle: 'Select Pallet', createPalletTitle: 'New Pallet', all: 'All', + inboundStatus: 'Inbound Status', reset: 'Reset', clear: 'Clear', loading: 'Loading...', @@ -1637,6 +1638,7 @@ export default { selectProductTitle: 'Select Product', selectPalletTitle: 'Select Pallet', all: 'All', + outboundStatus: 'Outbound Status', reset: 'Reset', clear: 'Clear', loading: 'Loading...', diff --git a/src/locales/zh-CN.js b/src/locales/zh-CN.js index dd8941d..3ec6af9 100644 --- a/src/locales/zh-CN.js +++ b/src/locales/zh-CN.js @@ -1403,6 +1403,7 @@ export default { selectPalletTitle: '选择托盘', createPalletTitle: '新增托盘', all: '全部', + inboundStatus: '入库状态', reset: '重置', clear: '清空', loading: '加载中...', @@ -1640,6 +1641,7 @@ export default { selectProductTitle: '选择产品', selectPalletTitle: '选择托盘', all: '全部', + outboundStatus: '出库状态', reset: '重置', clear: '清空', loading: '加载中...', diff --git a/src/pages_function/pages/productCheck/index.vue b/src/pages_function/pages/productCheck/index.vue index 0efdc22..9941478 100644 --- a/src/pages_function/pages/productCheck/index.vue +++ b/src/pages_function/pages/productCheck/index.vue @@ -18,7 +18,7 @@ /> - {{ selectedStatusLabel || t('productCheck.all') }} + {{ selectedStatusLabel || t('productCheck.checkStatus') }} {{ t('productCheck.reset') }} @@ -155,7 +155,6 @@ const selectedStatus = ref('') const searchKeyword = ref('') const statusPickerRef = ref(null) const statusOptions = computed(() => [ - { label: t('productCheck.all'), value: '' }, { label: t('productCheck.statusDraft'), value: '0' }, { label: t('productCheck.statusAuditing'), value: '10' }, { label: t('productCheck.statusApproved'), value: '20' }, @@ -526,7 +525,7 @@ onUnload(() => clearSearchTimer())