fix(mining-app): 更新弹窗不可点击外部关闭,订单详情按买卖角色显示不同倒计时文案

- 更新提示弹窗 barrierDismissible 始终为 false,防止用户误触关闭
- 订单详情页根据买家/卖家角色显示不同的倒计时提示文案
  - 买方:你需要在xx:xx内完成付款 / 等待卖方确认收款
  - 卖方:对方将在xx:xx内完成付款 / 请在xx:xx内确认收款

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-02-01 01:58:53 -08:00
parent 4e4a876341
commit 7f2479d995
2 changed files with 21 additions and 9 deletions

View File

@ -31,7 +31,7 @@ class SelfHostedUpdater extends StatefulWidget {
}) async { }) async {
await showDialog( await showDialog(
context: context, context: context,
barrierDismissible: !isForceUpdate, barrierDismissible: false,
builder: (context) => SelfHostedUpdater( builder: (context) => SelfHostedUpdater(
versionInfo: versionInfo, versionInfo: versionInfo,
isForceUpdate: isForceUpdate, isForceUpdate: isForceUpdate,

View File

@ -108,7 +108,7 @@ class _C2cOrderDetailPageState extends ConsumerState<C2cOrderDetailPage> {
const SizedBox(height: 16), const SizedBox(height: 16),
// //
_buildStatusCard(order), _buildStatusCard(order, isBuyer),
const SizedBox(height: 16), const SizedBox(height: 16),
@ -158,7 +158,7 @@ class _C2cOrderDetailPageState extends ConsumerState<C2cOrderDetailPage> {
); );
} }
Widget _buildStatusCard(C2cOrderModel order) { Widget _buildStatusCard(C2cOrderModel order, bool isBuyer) {
Color statusColor; Color statusColor;
String statusText; String statusText;
String statusDesc; String statusDesc;
@ -176,18 +176,30 @@ class _C2cOrderDetailPageState extends ConsumerState<C2cOrderDetailPage> {
statusColor = Colors.blue; statusColor = Colors.blue;
statusText = '待付款'; statusText = '待付款';
remainingSeconds = order.paymentRemainingSeconds; remainingSeconds = order.paymentRemainingSeconds;
statusDesc = remainingSeconds != null && remainingSeconds > 0 if (isBuyer) {
? '对方将在 ${_formatRemainingTime(remainingSeconds)} 内完成付款' statusDesc = remainingSeconds != null && remainingSeconds > 0
: '买方需在规定时间内付款'; ? '你需要在 ${_formatRemainingTime(remainingSeconds)} 内完成付款'
: '请在规定时间内完成付款';
} else {
statusDesc = remainingSeconds != null && remainingSeconds > 0
? '对方将在 ${_formatRemainingTime(remainingSeconds)} 内完成付款'
: '买方需在规定时间内付款';
}
statusIcon = Icons.payment; statusIcon = Icons.payment;
break; break;
case C2cOrderStatus.paid: case C2cOrderStatus.paid:
statusColor = Colors.purple; statusColor = Colors.purple;
statusText = '待确认'; statusText = '待确认';
remainingSeconds = order.confirmRemainingSeconds; remainingSeconds = order.confirmRemainingSeconds;
statusDesc = remainingSeconds != null && remainingSeconds > 0 if (isBuyer) {
? '请在 ${_formatRemainingTime(remainingSeconds)} 内确认收款' statusDesc = remainingSeconds != null && remainingSeconds > 0
: '卖方需确认收款后释放资产'; ? '等待卖方在 ${_formatRemainingTime(remainingSeconds)} 内确认收款'
: '等待卖方确认收款';
} else {
statusDesc = remainingSeconds != null && remainingSeconds > 0
? '请在 ${_formatRemainingTime(remainingSeconds)} 内确认收款'
: '请确认收款后释放资产';
}
statusIcon = Icons.check_circle_outline; statusIcon = Icons.check_circle_outline;
break; break;
case C2cOrderStatus.completed: case C2cOrderStatus.completed: