fix(client): 出入库录单 golden 随日期漂移——表单支持钉死单据日期
根因:表单 _orderDate 默认 DateTime.now(),golden 07-04 录制后每天必挂 (整屏 diff 只有日期格一个数字)。表单加 initialDate 测试注入口, golden 测试钉死 2026-07-04,基准图零重录、永不随日期漂移。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJ1g8XV1YhhmHRzhwWEW7o
This commit is contained in:
@@ -27,7 +27,10 @@ import '../../widgets/ds/ds_toast.dart';
|
|||||||
/// 明细为可键盘操作的内联网格(名称/系列/规格可搜索+新增,生产日期/批次/数量/单价/售价内联编辑)。
|
/// 明细为可键盘操作的内联网格(名称/系列/规格可搜索+新增,生产日期/批次/数量/单价/售价内联编辑)。
|
||||||
class StockInFormScreen extends ConsumerStatefulWidget {
|
class StockInFormScreen extends ConsumerStatefulWidget {
|
||||||
final int? editOrderId;
|
final int? editOrderId;
|
||||||
const StockInFormScreen({super.key, this.editOrderId});
|
|
||||||
|
/// 仅供 golden 测试钉死单据日期(默认 DateTime.now() 会让 golden 随日期漂移)。
|
||||||
|
final DateTime? initialDate;
|
||||||
|
const StockInFormScreen({super.key, this.editOrderId, this.initialDate});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ConsumerState<StockInFormScreen> createState() => _StockInFormScreenState();
|
ConsumerState<StockInFormScreen> createState() => _StockInFormScreenState();
|
||||||
@@ -39,7 +42,7 @@ class _StockInFormScreenState extends ConsumerState<StockInFormScreen> {
|
|||||||
final _warehouseFocus = FocusNode();
|
final _warehouseFocus = FocusNode();
|
||||||
int? _warehouseId;
|
int? _warehouseId;
|
||||||
int? _partnerId;
|
int? _partnerId;
|
||||||
DateTime _orderDate = DateTime.now();
|
late DateTime _orderDate = widget.initialDate ?? DateTime.now();
|
||||||
bool _submitting = false;
|
bool _submitting = false;
|
||||||
bool _loadingEdit = false;
|
bool _loadingEdit = false;
|
||||||
StockInOrder? _loadedOrder;
|
StockInOrder? _loadedOrder;
|
||||||
|
|||||||
@@ -142,7 +142,10 @@ class _ItemRow {
|
|||||||
/// 明细行经「从库存批量选择」添加,商品/系列/规格/可用只读,仅数量、售价可内联编辑。
|
/// 明细行经「从库存批量选择」添加,商品/系列/规格/可用只读,仅数量、售价可内联编辑。
|
||||||
class StockOutFormScreen extends ConsumerStatefulWidget {
|
class StockOutFormScreen extends ConsumerStatefulWidget {
|
||||||
final int? editOrderId;
|
final int? editOrderId;
|
||||||
const StockOutFormScreen({super.key, this.editOrderId});
|
|
||||||
|
/// 仅供 golden 测试钉死单据日期(默认 DateTime.now() 会让 golden 随日期漂移)。
|
||||||
|
final DateTime? initialDate;
|
||||||
|
const StockOutFormScreen({super.key, this.editOrderId, this.initialDate});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ConsumerState<StockOutFormScreen> createState() => _StockOutFormScreenState();
|
ConsumerState<StockOutFormScreen> createState() => _StockOutFormScreenState();
|
||||||
@@ -154,7 +157,7 @@ class _StockOutFormScreenState extends ConsumerState<StockOutFormScreen> {
|
|||||||
final _warehouseFocus = FocusNode();
|
final _warehouseFocus = FocusNode();
|
||||||
int? _warehouseId;
|
int? _warehouseId;
|
||||||
int? _partnerId;
|
int? _partnerId;
|
||||||
DateTime _orderDate = DateTime.now();
|
late DateTime _orderDate = widget.initialDate ?? DateTime.now();
|
||||||
bool _submitting = false;
|
bool _submitting = false;
|
||||||
bool _loadingEdit = false;
|
bool _loadingEdit = false;
|
||||||
Map<int, double> _inventoryMap = {};
|
Map<int, double> _inventoryMap = {};
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ void main() {
|
|||||||
goldenAcrossThemes(
|
goldenAcrossThemes(
|
||||||
'stock-in form 录单(桌面)',
|
'stock-in form 录单(桌面)',
|
||||||
goldenPrefix: 'stock_in_form',
|
goldenPrefix: 'stock_in_form',
|
||||||
child: () => const Scaffold(body: StockInFormScreen()),
|
child: () => Scaffold(body: StockInFormScreen(initialDate: DateTime(2026, 7, 4))),
|
||||||
overrides: _overrides,
|
overrides: _overrides,
|
||||||
logical: const Size(1280, 920),
|
logical: const Size(1280, 920),
|
||||||
);
|
);
|
||||||
@@ -81,7 +81,7 @@ void main() {
|
|||||||
goldenAcrossThemes(
|
goldenAcrossThemes(
|
||||||
'stock-in form 录单(移动)',
|
'stock-in form 录单(移动)',
|
||||||
goldenPrefix: 'stock_in_form_mobile',
|
goldenPrefix: 'stock_in_form_mobile',
|
||||||
child: () => const Scaffold(body: StockInFormScreen()),
|
child: () => Scaffold(body: StockInFormScreen(initialDate: DateTime(2026, 7, 4))),
|
||||||
overrides: _overrides,
|
overrides: _overrides,
|
||||||
logical: const Size(390, 1400),
|
logical: const Size(390, 1400),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ void main() {
|
|||||||
goldenAcrossThemes(
|
goldenAcrossThemes(
|
||||||
'stock-out form 录单(桌面)',
|
'stock-out form 录单(桌面)',
|
||||||
goldenPrefix: 'stock_out_form',
|
goldenPrefix: 'stock_out_form',
|
||||||
child: () => const Scaffold(body: StockOutFormScreen()),
|
child: () => Scaffold(body: StockOutFormScreen(initialDate: DateTime(2026, 7, 4))),
|
||||||
overrides: _overrides,
|
overrides: _overrides,
|
||||||
logical: const Size(1280, 920),
|
logical: const Size(1280, 920),
|
||||||
);
|
);
|
||||||
@@ -61,7 +61,7 @@ void main() {
|
|||||||
goldenAcrossThemes(
|
goldenAcrossThemes(
|
||||||
'stock-out form 录单(移动)',
|
'stock-out form 录单(移动)',
|
||||||
goldenPrefix: 'stock_out_form_mobile',
|
goldenPrefix: 'stock_out_form_mobile',
|
||||||
child: () => const Scaffold(body: StockOutFormScreen()),
|
child: () => Scaffold(body: StockOutFormScreen(initialDate: DateTime(2026, 7, 4))),
|
||||||
overrides: _overrides,
|
overrides: _overrides,
|
||||||
logical: const Size(390, 1400),
|
logical: const Size(390, 1400),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user