chore: release client-v1.0.74
Deploy Client / build-client-web (push) Successful in 39s
Deploy Client / build-macos (push) Successful in 2m23s
Deploy Client / build-android (push) Successful in 1m37s
Deploy Client / build-ios (push) Successful in 2m51s
Deploy Client / build-windows (push) Has been cancelled
Deploy Client / release-deploy-client (push) Has been cancelled

入库/出库详情页明细新增生产日期、批次号两列

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
This commit is contained in:
wangjia
2026-06-22 20:16:19 +08:00
parent 08f9e20010
commit 078fab30f0
4 changed files with 39 additions and 12 deletions
+5
View File
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.74] - 2026-06-22
### 改进
- 入库单 / 出库单详情页的商品明细表新增「生产日期」「批次号」两列,便于核对货品批次信息
## [1.0.73] - 2026-06-22
### 改进
+6
View File
@@ -12,6 +12,8 @@ class StockOutItem {
final String? productSeries;
final String? productSpec;
final String? productUnit;
final String? batchNo;
final String? productionDate;
bool get isReturned => returnedQuantity >= quantity && quantity > 0;
@@ -29,6 +31,8 @@ class StockOutItem {
this.productSeries,
this.productSpec,
this.productUnit,
this.batchNo,
this.productionDate,
});
factory StockOutItem.fromJson(Map<String, dynamic> json) {
@@ -57,6 +61,8 @@ class StockOutItem {
productSeries: lineOrProduct('series', 'series'),
productSpec: lineOrProduct('spec', 'spec'),
productUnit: (json['product'] as Map<String, dynamic>?)?['unit'] as String?,
batchNo: json['batch_no'] as String?,
productionDate: json['production_date'] as String?,
);
}
}
@@ -1064,16 +1064,18 @@ class _StockInDetailDialogState extends ConsumerState<_StockInDetailDialog> {
0: FixedColumnWidth(36),
1: FlexColumnWidth(1.2),
2: FlexColumnWidth(2.2),
3: FlexColumnWidth(1.5),
4: FlexColumnWidth(1.5),
5: FlexColumnWidth(1.2),
6: FlexColumnWidth(1.2),
7: FlexColumnWidth(1.2),
3: FlexColumnWidth(1.3),
4: FlexColumnWidth(1.3),
5: FlexColumnWidth(1.3),
6: FlexColumnWidth(1.3),
7: FlexColumnWidth(1.0),
8: FlexColumnWidth(1.1),
9: FlexColumnWidth(1.1),
},
children: [
TableRow(
decoration: const BoxDecoration(color: Color(0xFFF0F4FF)),
children: ['序号', '商品编码', '名称', '系列', '规格', '数量', '单价', '金额']
children: ['序号', '商品编码', '名称', '系列', '规格', '生产日期', '批次号', '数量', '单价', '金额']
.map((h) => Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8, vertical: 10),
@@ -1122,6 +1124,12 @@ class _StockInDetailDialogState extends ConsumerState<_StockInDetailDialog> {
),
_TableCell(item.productSeries ?? '-'),
_TableCell(item.productSpec ?? '-'),
_TableCell((item.productionDate != null &&
item.productionDate!.length >= 10)
? item.productionDate!.substring(0, 10)
: (item.productionDate ?? '-')),
_TableCell(
(item.batchNo?.isNotEmpty ?? false) ? item.batchNo! : '-'),
_TableCell(item.quantity.toStringAsFixed(3)),
_TableCell('¥${item.unitPrice.toStringAsFixed(2)}'),
_TableCell('¥${item.totalPrice.toStringAsFixed(2)}'),
@@ -1003,16 +1003,18 @@ class _StockOutDetailDialogState extends ConsumerState<_StockOutDetailDialog> {
0: FixedColumnWidth(36),
1: FlexColumnWidth(1.2),
2: FlexColumnWidth(2.2),
3: FlexColumnWidth(1.5),
4: FlexColumnWidth(1.5),
5: FlexColumnWidth(1.2),
6: FlexColumnWidth(1.2),
7: FlexColumnWidth(1.2),
3: FlexColumnWidth(1.3),
4: FlexColumnWidth(1.3),
5: FlexColumnWidth(1.3),
6: FlexColumnWidth(1.3),
7: FlexColumnWidth(1.0),
8: FlexColumnWidth(1.1),
9: FlexColumnWidth(1.1),
},
children: [
TableRow(
decoration: const BoxDecoration(color: Color(0xFFF0F4FF)),
children: ['序号', '商品编码', '名称', '系列', '规格', '数量', '单价', '金额']
children: ['序号', '商品编码', '名称', '系列', '规格', '生产日期', '批次号', '数量', '单价', '金额']
.map((h) => Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 10),
child: Text(h,
@@ -1035,6 +1037,12 @@ class _StockOutDetailDialogState extends ConsumerState<_StockOutDetailDialog> {
_TableCell(item.productName ?? '-'),
_TableCell(item.productSeries ?? '-'),
_TableCell(item.productSpec ?? '-'),
_TableCell((item.productionDate != null &&
item.productionDate!.length >= 10)
? item.productionDate!.substring(0, 10)
: (item.productionDate ?? '-')),
_TableCell(
(item.batchNo?.isNotEmpty ?? false) ? item.batchNo! : '-'),
_TableCell(item.quantity.toStringAsFixed(3)),
_TableCell('¥${item.unitPrice.toStringAsFixed(2)}'),
_TableCell('¥${item.totalPrice.toStringAsFixed(2)}'),