From fc39d815640006ed929cc29bd589b8dd4fe54dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=A4=E5=AD=A6=E4=BC=9A?= Date: Sat, 13 Jun 2026 00:55:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=9F=E4=BA=A7=E5=8F=B0?= =?UTF-8?q?=E8=B4=A6=E5=85=A5=E5=BA=93=E5=8D=95=E6=91=98=E8=A6=81=E7=AB=96?= =?UTF-8?q?=E6=8E=92=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/styles/main.css | 78 +++++++++++++++++++ .../src/views/InventoryLedgerView.test.js | 7 ++ frontend/src/views/InventoryLedgerView.vue | 22 +++--- 3 files changed, 96 insertions(+), 11 deletions(-) diff --git a/frontend/src/styles/main.css b/frontend/src/styles/main.css index ec4705b..770513a 100644 --- a/frontend/src/styles/main.css +++ b/frontend/src/styles/main.css @@ -16802,6 +16802,10 @@ body .login-production-layout .login-security-foot p { padding: 14px; } +.warehouse-document-section-grid > .warehouse-paper-summary-grid { + grid-column: 1 / -1; +} + .warehouse-document-section-grid > .stack-form, .warehouse-document-section-grid > .double-field, .warehouse-document-section-grid > .triple-field, @@ -16816,6 +16820,68 @@ body .login-production-layout .login-security-foot p { grid-column: 1 / -1; } +.warehouse-paper-summary-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 0; + min-width: 0; + border-top: 1.5px solid var(--document-paper-grid, rgba(20, 14, 6, 0.88)); + border-left: 1.5px solid var(--document-paper-grid, rgba(20, 14, 6, 0.88)); + background: rgba(255, 250, 240, 0.42); +} + +.warehouse-paper-summary-card { + display: grid; + grid-template-rows: auto minmax(48px, auto); + min-width: 0; + margin: 0; + border-right: 1.5px solid var(--document-paper-grid, rgba(20, 14, 6, 0.88)); + border-bottom: 1.5px solid var(--document-paper-grid, rgba(20, 14, 6, 0.88)); + background: + linear-gradient(90deg, rgba(31, 122, 74, 0.035), transparent 44%), + rgba(255, 250, 240, 0.52); +} + +.warehouse-paper-summary-card-wide { + grid-column: span 2; +} + +.warehouse-paper-summary-card span, +.warehouse-paper-summary-card strong { + min-width: 0; + margin: 0; +} + +.warehouse-paper-summary-card span { + display: flex; + align-items: center; + min-height: 30px; + padding: 7px 10px; + color: rgba(23, 18, 10, 0.74); + border-bottom: 1px solid rgba(20, 14, 6, 0.48); + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.2), transparent), + rgba(227, 207, 161, 0.5); + font-family: var(--ui-font-display); + font-size: 12px; + font-weight: 900; + letter-spacing: 0.06em; +} + +.warehouse-paper-summary-card strong { + display: flex; + align-items: center; + min-height: 48px; + padding: 10px 11px; + color: #17120a; + font-family: "Songti SC", "SimSun", var(--ui-font-body); + font-size: 14px; + font-weight: 900; + line-height: 1.45; + overflow-wrap: anywhere; + word-break: normal; +} + .warehouse-document-action-bar--shared { justify-content: flex-end; gap: 14px; @@ -16847,6 +16913,10 @@ body .login-production-layout .login-security-foot p { .warehouse-document-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + + .warehouse-paper-summary-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } } @media (max-width: 620px) { @@ -16863,6 +16933,14 @@ body .login-production-layout .login-security-foot p { grid-template-columns: 1fr; } + .warehouse-paper-summary-grid { + grid-template-columns: 1fr; + } + + .warehouse-paper-summary-card-wide { + grid-column: 1 / -1; + } + .warehouse-document-action-bar--shared, .warehouse-document-action-bar--shared.warehouse-document-action-bar--with-state { align-items: stretch; diff --git a/frontend/src/views/InventoryLedgerView.test.js b/frontend/src/views/InventoryLedgerView.test.js index fa81e48..5b0b578 100644 --- a/frontend/src/views/InventoryLedgerView.test.js +++ b/frontend/src/views/InventoryLedgerView.test.js @@ -70,6 +70,13 @@ describe("InventoryLedgerView warehouse action layout", () => { assert.match(source, /:business-date="new Date\(\)"/); }); + it("keeps production inbound preview fields in a full-width paper grid", () => { + assert.doesNotMatch(source, /summary-grid compact-summary-grid/); + assert.match(source, /warehouse-paper-summary-grid/); + assert.match(mainCss, /\.warehouse-document-section-grid > \.warehouse-paper-summary-grid\s*\{[\s\S]*grid-column: 1 \/ -1;/); + assert.match(mainCss, /\.warehouse-paper-summary-grid\s*\{[\s\S]*grid-template-columns: repeat\(4, minmax\(0, 1fr\)\);/); + }); + it("surfaces generated PDF archive feedback after independent warehouse saves", () => { [ ["submitRawReturnOutbound", "退货出库"], diff --git a/frontend/src/views/InventoryLedgerView.vue b/frontend/src/views/InventoryLedgerView.vue index b096aa5..7a11461 100644 --- a/frontend/src/views/InventoryLedgerView.vue +++ b/frontend/src/views/InventoryLedgerView.vue @@ -2054,17 +2054,17 @@ -
-
生产台账{{ productionWorkOrderInboundPreview.material_lot_no }} · {{ productionWorkOrderInboundPreview.product_name }}
-
产品{{ productionWorkOrderInboundPreview.product_name }}
-
材料库存批次号{{ productionWorkOrderInboundPreview.material_lot_no }}
-
累计领料重量{{ formatWeight(productionWorkOrderInboundPreview.total_issued_weight_kg) }}
-
库外未闭环重量{{ formatWeight(productionWorkOrderInboundPreview.outside_weight_kg) }}
-
参考成品数量{{ formatQty(productionWorkOrderInboundPreview.reference_finished_qty) }}
-
单件毛重{{ formatWeight(productionWorkOrderInboundPreview.gross_weight_per_piece_kg) }}
-
单件净重{{ formatWeight(productionWorkOrderInboundPreview.net_weight_per_piece_kg) }}
-
已入库成品{{ formatQty(productionWorkOrderInboundPreview.finished_inbound_qty) }}
-
已入库废料{{ formatWeight(productionWorkOrderInboundPreview.scrap_inbound_weight_kg) }}
+
+
生产台账{{ productionWorkOrderInboundPreview.material_lot_no }} · {{ productionWorkOrderInboundPreview.product_name }}
+
产品{{ productionWorkOrderInboundPreview.product_name }}
+
材料库存批次号{{ productionWorkOrderInboundPreview.material_lot_no }}
+
累计领料重量{{ formatWeight(productionWorkOrderInboundPreview.total_issued_weight_kg) }}
+
库外未闭环重量{{ formatWeight(productionWorkOrderInboundPreview.outside_weight_kg) }}
+
参考成品数量{{ formatQty(productionWorkOrderInboundPreview.reference_finished_qty) }}
+
单件毛重{{ formatWeight(productionWorkOrderInboundPreview.gross_weight_per_piece_kg) }}
+
单件净重{{ formatWeight(productionWorkOrderInboundPreview.net_weight_per_piece_kg) }}
+
已入库成品{{ formatQty(productionWorkOrderInboundPreview.finished_inbound_qty) }}
+
已入库废料{{ formatWeight(productionWorkOrderInboundPreview.scrap_inbound_weight_kg) }}