fix(client): rebase 到 main 后适配打印线与 token 体系

main 的打印代码引用了分支已删除的 AppTheme(app_theme.dart)。按「冲突以 main 逻辑为准」
保留 main 的打印预览流程,把三处 AppTheme.* 颜色迁移到分支 token 体系:
- stock_in/out_list 单据详情顶栏:brand50/border/primaryDark → context.tokens.*
- order_print_preview_dialog:import 换 context_tokens,primary/textSecondary → tokens.primary/muted
form 屏改用 main 的 showStock{In,Out}OrderPrint 打印预览入口,随之刷新 12 张 form golden 基线。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-01 20:54:54 +08:00
parent 8a8043573c
commit 2c2bb7ccb3
15 changed files with 25 additions and 19 deletions
@@ -1072,26 +1072,29 @@ class _StockInDetailDialogState extends ConsumerState<_StockInDetailDialog> {
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
decoration: const BoxDecoration(
color: AppTheme.brand50,
border: Border(bottom: BorderSide(color: AppTheme.border)),
decoration: BoxDecoration(
color: context.tokens.brand50,
border: Border(
bottom: BorderSide(color: context.tokens.border)),
),
child: Row(
children: [
IconButton(
icon: const Icon(Icons.arrow_back, color: AppTheme.primaryDark),
icon: Icon(Icons.arrow_back,
color: context.tokens.primaryDark),
tooltip: '返回',
onPressed: () => Navigator.of(context).pop(),
),
const Text('入库单详情',
Text('入库单详情',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: AppTheme.primaryDark)),
color: context.tokens.primaryDark)),
const Spacer(),
if (_loadedOrder != null)
IconButton(
icon: const Icon(Icons.print_outlined, color: AppTheme.primaryDark),
icon: Icon(Icons.print_outlined,
color: context.tokens.primaryDark),
tooltip: '打印',
onPressed: () => showStockInOrderPrint(context, ref, _loadedOrder!),
),
@@ -983,26 +983,29 @@ class _StockOutDetailDialogState extends ConsumerState<_StockOutDetailDialog> {
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
decoration: const BoxDecoration(
color: AppTheme.brand50,
border: Border(bottom: BorderSide(color: AppTheme.border)),
decoration: BoxDecoration(
color: context.tokens.brand50,
border: Border(
bottom: BorderSide(color: context.tokens.border)),
),
child: Row(
children: [
IconButton(
icon: const Icon(Icons.arrow_back, color: AppTheme.primaryDark),
icon: Icon(Icons.arrow_back,
color: context.tokens.primaryDark),
tooltip: '返回',
onPressed: () => Navigator.of(context).pop(),
),
const Text('出库单详情',
Text('出库单详情',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: AppTheme.primaryDark)),
color: context.tokens.primaryDark)),
const Spacer(),
if (_loadedOrder != null)
IconButton(
icon: const Icon(Icons.print_outlined, color: AppTheme.primaryDark),
icon: Icon(Icons.print_outlined,
color: context.tokens.primaryDark),
tooltip: '打印',
onPressed: () => showStockOutOrderPrint(context, ref, _loadedOrder!),
),
@@ -5,7 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:printing/printing.dart';
import '../core/auth/auth_state.dart';
import '../core/errors/error_reporter.dart';
import '../core/theme/app_theme.dart';
import '../core/theme/context_tokens.dart';
import '../core/responsive/responsive.dart';
import '../core/utils/print_util.dart';
import '../models/shop.dart';
@@ -112,9 +112,9 @@ class _OrderPrintPreviewDialogState extends State<OrderPrintPreviewDialog> {
Container(
padding:
const EdgeInsets.symmetric(horizontal: 20, vertical: 14),
decoration: const BoxDecoration(
color: AppTheme.primary,
borderRadius: BorderRadius.only(
decoration: BoxDecoration(
color: context.tokens.primary,
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(12),
topRight: Radius.circular(12),
),
@@ -163,7 +163,7 @@ class _OrderPrintPreviewDialogState extends State<OrderPrintPreviewDialog> {
fontSize: 12,
color: _error.isNotEmpty
? Colors.red
: AppTheme.textSecondary),
: context.tokens.muted),
),
),
TextButton(
Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 85 KiB