From 55fbdf7ecdc95e0eb073925505a76bca75b0b2d6 Mon Sep 17 00:00:00 2001
From: zhongwenkai <3478244299@qq.com>
Date: Fri, 26 Jun 2026 14:09:37 +0800
Subject: [PATCH] =?UTF-8?q?style:=20=E5=A4=87=E4=BB=B6=E5=BA=93=E5=AD=98?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2-=E7=89=A9=E6=96=99=E5=BA=93=E5=AD=98?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=90=9C=E7=B4=A2=E6=A1=86=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/locales/zh-CN.js | 28 +-
.../pages/materialInventory/detail.vue | 377 ++++++++---------
.../pages/materialInventory/index.vue | 117 ++----
.../pages/sparepartInventory/detail.vue | 392 ++++++++----------
.../pages/sparepartInventory/index.vue | 128 +++---
5 files changed, 495 insertions(+), 547 deletions(-)
diff --git a/src/locales/zh-CN.js b/src/locales/zh-CN.js
index 4f25304..7a3dcd5 100644
--- a/src/locales/zh-CN.js
+++ b/src/locales/zh-CN.js
@@ -1920,38 +1920,54 @@ export default {
},
sparepartInventory: {
moduleName: '备件库存查询',
+ detailTitle: '备件详情',
searchPlaceholder: '请输入备件编码或名称',
allArea: '全部库区',
areaPlaceholder: '库区筛选',
+ stockInfo: '库存信息',
productName: '物料名称',
barCode: '物料编码',
warehouse: '仓库',
area: '库区',
count: '基本数量',
stockDisplay: '库存展示',
+ areaStockDisplay: '库区库存展示',
+ totalPackageCount: '总包数',
+ totalBaseCount: '总个数',
unit: '单位',
category: '物料小类',
+ standard: '规格',
packagingRule: '包装/换算规则',
- recentInTime: '最近入库',
- recentOutTime: '最近出库',
- empty: '暂无备件库存数据'
+ latestInTime: '最近入库',
+ latestOutTime: '最近出库',
+ remark: '备注',
+ empty: '暂无备件库存数据',
+ noDetailId: '暂无备件库存ID'
},
materialInventory: {
moduleName: '物料库存查询',
+ detailTitle: '物料详情',
searchPlaceholder: '请输入物料编码或名称',
allArea: '全部库区',
areaPlaceholder: '库区筛选',
+ stockInfo: '库存信息',
productName: '物料名称',
barCode: '物料编码',
warehouse: '仓库',
area: '库区',
count: '基本数量',
stockDisplay: '库存展示',
+ areaStockDisplay: '库区库存展示',
+ totalPackageCount: '总包数',
+ totalBaseCount: '总个数',
unit: '单位',
category: '物料小类',
+ standard: '规格',
packagingRule: '包装/换算规则',
- recentInTime: '最近入库',
- recentOutTime: '最近出库',
- empty: '暂无物料库存数据'
+ latestInTime: '最近入库',
+ latestOutTime: '最近出库',
+ remark: '备注',
+ empty: '暂无物料库存数据',
+ noDetailId: '暂无物料库存ID'
}
}
diff --git a/src/pages_function/pages/materialInventory/detail.vue b/src/pages_function/pages/materialInventory/detail.vue
index 8bde891..c6aebf3 100644
--- a/src/pages_function/pages/materialInventory/detail.vue
+++ b/src/pages_function/pages/materialInventory/detail.vue
@@ -1,81 +1,164 @@
-
+
-
-
-
- 物料基本信息
-
-
-
-
-
- 📦
-
-
- 物料名称{{ textValue(detail.name) }}
- 物料编码{{ textValue(detail.barCode) }}
- 物料小类{{ textValue(detail.categoryName) }}
+
+
+
+
+
+
+ 📦
+
+
+
+ {{ t('materialInventory.productName') }}
+ {{ textValue(detail.name || detail.productName) }}
+
+
+ {{ t('materialInventory.barCode') }}
+ {{ textValue(detail.barCode || detail.productBarCode) }}
+
+
+ {{ t('materialInventory.category') }}
+ {{ textValue(detail.categoryName || detail.subCategoryName) }}
+
+
-
- 仓库{{ textValue(warehouseName) }}
- 库区{{ textValue(areaName) }}
- 库存展示{{ textValue(detail.stockDisplay) }}
- 基本数量{{ textValue(stockCount) }}{{ stockUnit !== '-' ? stockUnit : '' }}
- 包装/换算规则{{ textValue(packagingRule) }}
- 最近入库{{ formatDateTime(recentInTime) }}
- 最近出库{{ formatDateTime(recentOutTime) }}
+
+
+
+
+
+
+ {{ t('materialInventory.packagingRule') }}
+ {{ textValue(detail.packagingRule) }}
+
+
+ {{ t('materialInventory.warehouse') }}
+ {{ textValue(detail.warehouseName) }}
+
+
+ {{ t('materialInventory.stockDisplay') }}
+
+ {{ item }}
+ -
+
+
+
+ {{ t('materialInventory.areaStockDisplay') }}
+
+ {{ item }}
+ -
+
+
+
+ {{ t('materialInventory.totalPackageCount') }}
+ {{ formatStockCount(detail.totalPackageCount) }}
+
+
+ {{ t('materialInventory.totalBaseCount') }}
+ {{ formatStockCount(detail.totalBaseCount) }}
+
+
+ {{ t('materialInventory.unit') }}
+ {{ textValue(detail.unitName) }}
+
+
+ {{ t('materialInventory.latestInTime') }}
+ {{ formatDateTime(detail.latestInTime) }}
+
+
+ {{ t('materialInventory.latestOutTime') }}
+ {{ formatDateTime(detail.latestOutTime) }}
+
+
+
-
- 加载中...
- 加载失败
+ {{ t('functionCommon.loading') }}
+ {{ t('functionCommon.loadFailed') }}
+
diff --git a/src/pages_function/pages/materialInventory/index.vue b/src/pages_function/pages/materialInventory/index.vue
index 3a6f6ae..3983a2d 100644
--- a/src/pages_function/pages/materialInventory/index.vue
+++ b/src/pages_function/pages/materialInventory/index.vue
@@ -3,23 +3,23 @@
-
-
-
-
- {{ selectedAreaLabel || t('materialInventory.allArea') }}
-
+
+
+
+
+
+
+
- {{ t('functionCommon.reset') }}
- {{ textValue(item.barCode) }}
-
-
- {{ t('materialInventory.productName') }}
- {{ textValue(item.productName) }}
+ {{ textValue(item.productName) }}
- {{ t('materialInventory.area') }}
- {{ textValue(item.areaName) }}
+ {{ t('materialInventory.barCode') }}
+ {{ textValue(item.barCode) }}
{{ t('materialInventory.stockDisplay') }}
@@ -342,77 +338,56 @@ function formatDateTime(value) {
}
.filter-bar {
+ padding: 18rpx 14rpx 20rpx;
+ background: #f3f4f6;
+}
+
+.filter-row {
display: flex;
align-items: center;
- gap: 12rpx;
- padding: 18rpx 24rpx 20rpx;
+ gap: 18rpx;
}
-.scan-input-row {
- flex: 1;
+.keyword-wrap,
+.icon-filter-btn {
+ height: 66rpx;
+ border: 1rpx solid #d9dde5;
+ background: #ffffff;
+ box-sizing: border-box;
+}
+
+.keyword-wrap {
min-width: 0;
- min-height: 72rpx !important;
- height: 72rpx !important;
+ flex: 1;
+ display: flex;
+ align-items: center;
}
-.scan-input {
+.keyword-input {
width: 100%;
- min-height: 72rpx !important;
- height: 72rpx !important;
+ height: 64rpx;
padding: 0 20rpx;
font-size: 26rpx;
- color: #333;
- background: #fff;
- border: 1rpx solid #d0d5dd;
- border-radius: 10rpx;
- box-sizing: border-box;
+ color: #374151;
}
.scan-placeholder {
color: #9ca3af;
}
-.area-box {
- flex-shrink: 0;
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 180rpx;
- height: 72rpx;
- padding: 0 14rpx;
- background: #ffffff;
- border: 1rpx solid #d0d5dd;
- border-radius: 10rpx;
- box-sizing: border-box;
-}
-
-.area-box-text {
- color: #374151;
- font-size: 26rpx;
- max-width: 110rpx;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.reset-filter-btn {
- flex-shrink: 0;
+.icon-filter-btn {
+ width: 66rpx;
+ flex: 0 0 66rpx;
display: flex;
align-items: center;
justify-content: center;
- width: 96rpx;
- height: 72rpx;
- font-size: 24rpx;
- color: #4b5563;
- background: #ffffff;
- border: 1rpx solid #d0d5dd;
- border-radius: 10rpx;
- box-sizing: border-box;
+ border-color: transparent;
+ background: transparent;
}
.content-scroll {
width: 100%;
- height: calc(100vh - 120rpx);
+ height: calc(100vh - var(--status-bar-height) - 88rpx - 106rpx);
}
.list-wrap {
diff --git a/src/pages_function/pages/sparepartInventory/detail.vue b/src/pages_function/pages/sparepartInventory/detail.vue
index 6793a34..f665f29 100644
--- a/src/pages_function/pages/sparepartInventory/detail.vue
+++ b/src/pages_function/pages/sparepartInventory/detail.vue
@@ -1,94 +1,164 @@
-
+
-
-
-
-
- 备件基本信息
-
-
-
-
-
-
- 📦
-
-
- 物料名称{{ textValue(detail.name) }}
- 物料编码{{ textValue(detail.barCode) }}
- 物料小类{{ textValue(detail.categoryName) }}
+
+
+
+
+
+
+ 📦
+
+
+
+ {{ t('sparepartInventory.productName') }}
+ {{ textValue(detail.name || detail.productName) }}
+
+
+ {{ t('sparepartInventory.barCode') }}
+ {{ textValue(detail.barCode || detail.productBarCode) }}
+
+
+ {{ t('sparepartInventory.category') }}
+ {{ textValue(detail.categoryName || detail.subCategoryName) }}
+
+
-
-
- 仓库{{ textValue(warehouseName) }}
- 库区{{ textValue(areaName) }}
- 库存展示{{ textValue(detail.stockDisplay) }}
- 基本数量{{ textValue(stockCount) }}{{ stockUnit !== '-' ? stockUnit : '' }}
- 包装/换算规则{{ textValue(packagingRule) }}
- 最近入库{{ formatDateTime(recentInTime) }}
- 最近出库{{ formatDateTime(recentOutTime) }}
+
+
+
+
+
+
+ {{ t('sparepartInventory.packagingRule') }}
+ {{ textValue(detail.packagingRule) }}
+
+
+ {{ t('sparepartInventory.warehouse') }}
+ {{ textValue(detail.warehouseName) }}
+
+
+ {{ t('sparepartInventory.stockDisplay') }}
+
+ {{ item }}
+ -
+
+
+
+ {{ t('sparepartInventory.areaStockDisplay') }}
+
+ {{ item }}
+ -
+
+
+
+ {{ t('sparepartInventory.totalPackageCount') }}
+ {{ formatStockCount(detail.totalPackageCount) }}
+
+
+ {{ t('sparepartInventory.totalBaseCount') }}
+ {{ formatStockCount(detail.totalBaseCount) }}
+
+
+ {{ t('sparepartInventory.unit') }}
+ {{ textValue(detail.unitName) }}
+
+
+ {{ t('sparepartInventory.latestInTime') }}
+ {{ formatDateTime(detail.latestInTime) }}
+
+
+ {{ t('sparepartInventory.latestOutTime') }}
+ {{ formatDateTime(detail.latestOutTime) }}
+
+
+
-
- 加载中...
- 加载失败
+ {{ t('functionCommon.loading') }}
+ {{ t('functionCommon.loadFailed') }}
+
diff --git a/src/pages_function/pages/sparepartInventory/index.vue b/src/pages_function/pages/sparepartInventory/index.vue
index 0a9f01d..aec2574 100644
--- a/src/pages_function/pages/sparepartInventory/index.vue
+++ b/src/pages_function/pages/sparepartInventory/index.vue
@@ -3,23 +3,23 @@
-
-
-
-
- {{ selectedAreaLabel || t('sparepartInventory.allArea') }}
-
+
+
+
+
+
+
+
- {{ t('functionCommon.reset') }}
- {{ textValue(item.barCode) }}
-
-
- {{ t('sparepartInventory.productName') }}
- {{ textValue(item.productName) }}
+ {{ textValue(item.productName) }}
- {{ t('sparepartInventory.area') }}
- {{ textValue(item.areaName) }}
+ {{ t('sparepartInventory.barCode') }}
+ {{ textValue(item.barCode) }}
{{ t('sparepartInventory.stockDisplay') }}
@@ -348,77 +344,89 @@ function formatDateTime(value) {
}
.filter-bar {
+ padding: 18rpx 14rpx 20rpx;
+ background: #f3f4f6;
+}
+
+.filter-row {
display: flex;
align-items: center;
- gap: 12rpx;
- padding: 18rpx 24rpx 20rpx;
+ gap: 18rpx;
+}
+
+.search-row {
+ /* single row, no extra margin */
}
-.scan-input-row {
+.quick-row > picker {
+ min-width: 0;
flex: 1;
+}
+
+.keyword-wrap,
+.status-filter,
+.icon-filter-btn {
+ height: 66rpx;
+ border: 1rpx solid #d9dde5;
+ background: #ffffff;
+ box-sizing: border-box;
+}
+
+.keyword-wrap {
min-width: 0;
- min-height: 72rpx !important;
- height: 72rpx !important;
+ flex: 1;
+ display: flex;
+ align-items: center;
}
-.scan-input {
+.keyword-input {
width: 100%;
- min-height: 72rpx !important;
- height: 72rpx !important;
+ height: 64rpx;
padding: 0 20rpx;
font-size: 26rpx;
- color: #333;
- background: #fff;
- border: 1rpx solid #d0d5dd;
- border-radius: 10rpx;
- box-sizing: border-box;
+ color: #374151;
}
.scan-placeholder {
color: #9ca3af;
}
-.area-box {
- flex-shrink: 0;
+.status-filter {
+ min-width: 0;
+ flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
- width: 180rpx;
- height: 72rpx;
- padding: 0 14rpx;
- background: #ffffff;
- border: 1rpx solid #d0d5dd;
- border-radius: 10rpx;
- box-sizing: border-box;
+ padding: 0 18rpx 0 26rpx;
}
-.area-box-text {
- color: #374151;
- font-size: 26rpx;
- max-width: 110rpx;
+.status-filter-text {
+ min-width: 0rpx;
+ flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
+ font-size: 26rpx;
+ color: #374151;
}
-.reset-filter-btn {
- flex-shrink: 0;
+.status-filter-text.placeholder {
+ color: #a8adb7;
+}
+
+.icon-filter-btn {
+ width: 66rpx;
+ flex: 0 0 66rpx;
display: flex;
align-items: center;
justify-content: center;
- width: 96rpx;
- height: 72rpx;
- font-size: 24rpx;
- color: #4b5563;
- background: #ffffff;
- border: 1rpx solid #d0d5dd;
- border-radius: 10rpx;
- box-sizing: border-box;
+ border-color: transparent;
+ background: transparent;
}
.content-scroll {
width: 100%;
- height: calc(100vh - 120rpx);
+ height: calc(100vh - var(--status-bar-height) - 88rpx - 106rpx);
}
.list-wrap {