From ae54f938cf344c98a9067ead5c924d3ab705fd91 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 14 May 2026 22:35:53 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=88wms=EF=BC=89=EF=BC=9A=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=A6=96=E9=A1=B5=E7=9A=84=E4=BB=A3=E7=A0=81=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/home/index.ts | 18 +- .../components/WmsHomeInventoryCharts.vue | 209 ++++++ .../components/WmsHomeOrderSummaryCards.vue | 219 ++++++ .../components/WmsHomeOrderTrendChart.vue | 174 +++++ src/views/wms/home/index.vue | 686 +----------------- src/views/wms/inventory/history/index.vue | 8 +- src/views/wms/inventory/index/index.vue | 14 +- .../md/item/sku/components/ItemSkuSelect.vue | 12 +- .../wms/order/check/CheckOrderDetail.vue | 62 +- src/views/wms/order/check/CheckOrderForm.vue | 103 ++- src/views/wms/order/check/CheckOrderPrint.vue | 26 +- src/views/wms/order/check/index.vue | 161 ++-- .../order/movement/MovementOrderDetail.vue | 15 +- .../wms/order/movement/MovementOrderForm.vue | 75 +- src/views/wms/order/movement/index.vue | 140 ++-- .../wms/order/receipt/ReceiptOrderForm.vue | 37 +- .../wms/order/receipt/ReceiptOrderPrint.vue | 7 +- src/views/wms/order/receipt/index.vue | 74 +- .../wms/order/shipment/ShipmentOrderForm.vue | 42 +- .../wms/order/shipment/ShipmentOrderPrint.vue | 7 +- src/views/wms/order/shipment/index.vue | 74 +- 21 files changed, 1184 insertions(+), 979 deletions(-) create mode 100644 src/views/wms/home/components/WmsHomeInventoryCharts.vue create mode 100644 src/views/wms/home/components/WmsHomeOrderSummaryCards.vue create mode 100644 src/views/wms/home/components/WmsHomeOrderTrendChart.vue diff --git a/src/api/wms/home/index.ts b/src/api/wms/home/index.ts index 68cf18c5f..3c747bd87 100644 --- a/src/api/wms/home/index.ts +++ b/src/api/wms/home/index.ts @@ -3,26 +3,26 @@ import request from '@/config/axios' // WMS 首页统计查询参数 export interface WmsHomeStatisticsReqVO { warehouseId?: number + goodsLimit?: number + warehouseLimit?: number } // WMS 首页单据状态统计 VO export interface WmsHomeOrderStatusVO { status: number - statusName: string count: number } // WMS 首页单据汇总统计 VO export interface WmsHomeOrderSummaryVO { - orderType: number - orderTypeName: string + type: number total: number - statusList: WmsHomeOrderStatusVO[] + statuses: WmsHomeOrderStatusVO[] } // WMS 首页单据趋势 VO export interface WmsHomeOrderTrendVO { - date: string + time: string | number receiptCount: number shipmentCount: number movementCount: number @@ -31,15 +31,15 @@ export interface WmsHomeOrderTrendVO { // WMS 首页商品库存排行 VO export interface WmsHomeInventoryItemRankVO { - itemId: number - itemName: string + id: number + name: string quantity: number } // WMS 首页仓库库存排行 VO export interface WmsHomeInventoryWarehouseRankVO { - warehouseId: number - warehouseName: string + id: number + name: string quantity: number } diff --git a/src/views/wms/home/components/WmsHomeInventoryCharts.vue b/src/views/wms/home/components/WmsHomeInventoryCharts.vue new file mode 100644 index 000000000..1eaeef6a3 --- /dev/null +++ b/src/views/wms/home/components/WmsHomeInventoryCharts.vue @@ -0,0 +1,209 @@ + + + diff --git a/src/views/wms/home/components/WmsHomeOrderSummaryCards.vue b/src/views/wms/home/components/WmsHomeOrderSummaryCards.vue new file mode 100644 index 000000000..a87a70bc0 --- /dev/null +++ b/src/views/wms/home/components/WmsHomeOrderSummaryCards.vue @@ -0,0 +1,219 @@ + + + diff --git a/src/views/wms/home/components/WmsHomeOrderTrendChart.vue b/src/views/wms/home/components/WmsHomeOrderTrendChart.vue new file mode 100644 index 000000000..06c152850 --- /dev/null +++ b/src/views/wms/home/components/WmsHomeOrderTrendChart.vue @@ -0,0 +1,174 @@ + + + diff --git a/src/views/wms/home/index.vue b/src/views/wms/home/index.vue index 20f1fc0b1..08b38e592 100644 --- a/src/views/wms/home/index.vue +++ b/src/views/wms/home/index.vue @@ -1,29 +1,25 @@ - - - diff --git a/src/views/wms/inventory/history/index.vue b/src/views/wms/inventory/history/index.vue index 42a7d46e1..e67855c39 100644 --- a/src/views/wms/inventory/history/index.vue +++ b/src/views/wms/inventory/history/index.vue @@ -102,7 +102,7 @@
库存流水
{ await getList() }) - - diff --git a/src/views/wms/inventory/index/index.vue b/src/views/wms/inventory/index/index.vue index abf0e22c0..cb8dca3b3 100644 --- a/src/views/wms/inventory/index/index.vue +++ b/src/views/wms/inventory/index/index.vue @@ -11,11 +11,7 @@ > - + {{ item.label }} @@ -82,7 +78,7 @@ { await getList() }) - - diff --git a/src/views/wms/md/item/sku/components/ItemSkuSelect.vue b/src/views/wms/md/item/sku/components/ItemSkuSelect.vue index 313366b1f..06e03e3c5 100644 --- a/src/views/wms/md/item/sku/components/ItemSkuSelect.vue +++ b/src/views/wms/md/item/sku/components/ItemSkuSelect.vue @@ -91,7 +91,9 @@
商品编号:{{ row.itemCode }}
-
品牌:{{ row.brandName }}
+
+ 品牌:{{ row.brandName }} +
@@ -104,13 +106,17 @@ diff --git a/src/views/wms/order/check/CheckOrderDetail.vue b/src/views/wms/order/check/CheckOrderDetail.vue index 5bd29292e..dbfdc3113 100644 --- a/src/views/wms/order/check/CheckOrderDetail.vue +++ b/src/views/wms/order/check/CheckOrderDetail.vue @@ -5,7 +5,9 @@
单据信息
{{ detailData.no || '-' }} - {{ detailData.warehouseName || '-' }} + + {{ detailData.warehouseName || '-' }} + {{ formatNullableDate(detailData.orderTime, 'YYYY-MM-DD') }} @@ -45,7 +47,9 @@ {{ detailData.updaterName || detailData.updater || '-' }} - {{ detailData.remark || '-' }} + + {{ detailData.remark || '-' }} +
商品明细
@@ -53,13 +57,17 @@ @@ -83,7 +91,9 @@
@@ -116,9 +126,15 @@ const dialogVisible = ref(false) const detailData = ref({}) const getOrderDifferencePrice = (order: CheckOrderVO) => roundPrice(Number(order.actualPrice || 0) - Number(order.totalPrice || 0)) -const getDifferenceQuantity = (detail: CheckOrderDetailVO) => Number(detail.checkQuantity || 0) - Number(detail.quantity || 0) +const getDifferenceQuantity = (detail: CheckOrderDetailVO) => + Number(detail.checkQuantity || 0) - Number(detail.quantity || 0) const getActualPrice = (detail: CheckOrderDetailVO) => { - if (detail.checkQuantity === undefined || detail.checkQuantity === null || detail.price === undefined || detail.price === null) { + if ( + detail.checkQuantity === undefined || + detail.checkQuantity === null || + detail.price === undefined || + detail.price === null + ) { return undefined } return roundPrice(Number(detail.checkQuantity) * Number(detail.price)) @@ -129,20 +145,36 @@ const getDifferencePrice = (detail: CheckOrderDetailVO) => { } return roundPrice(getDifferenceQuantity(detail) * Number(detail.price)) } -const renderLossText = (value: number | string | null | undefined, formatter: (value?: number | string | null) => string) => - h('span', { class: getLossClass(value) }, formatter(value)) +const renderLossText = ( + value: number | string | null | undefined, + formatter: (value?: number | string | null) => string +) => h('span', { class: getLossClass(value) }, formatter(value)) const getSummaries = ({ columns, data }: { columns: any[]; data: CheckOrderDetailVO[] }) => columns.map((column, index) => { - if (index === 0) return '合计' - if (column.property === 'quantity') return formatSumQuantity(data, (detail) => detail.quantity) - if (column.property === 'checkQuantity') return formatSumQuantity(data, (detail) => detail.checkQuantity) - if (column.property === 'actualPrice') return formatSumPrice(data, (detail) => getActualPrice(detail)) + if (index === 0) { + return '合计' + } + if (column.property === 'quantity') { + return formatSumQuantity(data, (detail) => detail.quantity) + } + if (column.property === 'checkQuantity') { + return formatSumQuantity(data, (detail) => detail.checkQuantity) + } + if (column.property === 'actualPrice') { + return formatSumPrice(data, (detail) => getActualPrice(detail)) + } if (column.property === 'differenceQuantity') { - return renderLossText(sumQuantity(data, (detail) => getDifferenceQuantity(detail)), formatQuantity) + return renderLossText( + sumQuantity(data, (detail) => getDifferenceQuantity(detail)), + formatQuantity + ) } if (column.property === 'differencePrice') { - return renderLossText(sumPrice(data, (detail) => getDifferencePrice(detail)), formatPrice) + return renderLossText( + sumPrice(data, (detail) => getDifferencePrice(detail)), + formatPrice + ) } return '' }) diff --git a/src/views/wms/order/check/CheckOrderForm.vue b/src/views/wms/order/check/CheckOrderForm.vue index 6297ab494..99db891cf 100644 --- a/src/views/wms/order/check/CheckOrderForm.vue +++ b/src/views/wms/order/check/CheckOrderForm.vue @@ -1,7 +1,13 @@