自动修改

This commit is contained in:
2026-07-12 07:50:27 +08:00
parent b74e4e4fe5
commit d0f0fa09af
18 changed files with 117 additions and 66 deletions
+2 -2
View File
@@ -19,7 +19,7 @@ V2 目标:`mini-user` / `mini-partner` / `mini-hq` 替换对应 H5(除门店
- 类型从 `@dukang/shared-types` import,禁止复制枚举字符串
- 禁止 import `server/` 或另一个 `apps/*` 的源码
- UI 共享组件优先 `@dukang/shared-ui`
- C 端订单列表 **5 Tab**(含 `pending_ship`
- C 端订单列表 **3 Tab**`待付款 | 已付款 | 已完成`Tab key: `pending_pay` / `paid` / `completed`
## 新页面 workflow
@@ -32,7 +32,7 @@ V2 目标:`mini-user` / `mini-partner` / `mini-hq` 替换对应 H5(除门店
### h5-userjacy-dukang
主链路:登录 → 首页/详情 → 下单 Mock 支付 → 5 Tab 订单 → 权益 → 核销码 → 门店列表
主链路:登录 → 首页/详情 → 下单 Mock 支付 → **3 Tab** 订单 → 权益 → 核销码 → 门店列表
**勿改**:门店核销确认 UI(属 h5-shop)、合伙人录店(属 h5-partner
+1 -2
View File
@@ -11,8 +11,7 @@ const DEFAULT_AVATAR =
const ORDER_SHORTCUTS = [
{ tab: 'pending_pay', icon: 'payments', label: '待付款' },
{ tab: 'pending_ship', icon: 'package_2', label: '待发货' },
{ tab: 'pending_receive', icon: 'local_shipping', label: '配送中' },
{ tab: 'paid', icon: 'package_2', label: '已付款' },
{ tab: 'completed', icon: 'task_alt', label: '已完成' },
] as const;
+5 -6
View File
@@ -8,17 +8,16 @@ import { request } from '../lib/api';
const TABS = [
{ key: 'all', label: '全部' },
{ key: 'pending_pay', label: '待付款' },
{ key: 'pending_ship', label: '待发货' },
{ key: 'pending_receive', label: '待收货' },
{ key: 'paid', label: '已付款' },
{ key: 'completed', label: '已完成' },
];
const STATUS_LABEL: Record<string, string> = {
PENDING_PAY: '待付款',
PENDING_SHIP: '待发货',
OUT_WAREHOUSE: '出库中',
SHIPPING: '配送中',
PENDING_RECEIVE: '待收货',
PENDING_SHIP: '已付款',
OUT_WAREHOUSE: '已付款',
SHIPPING: '已付款',
PENDING_RECEIVE: '已付款',
COMPLETED: '已完成',
};
+2 -2
View File
@@ -140,11 +140,11 @@ export default function PayPage() {
if (!paid) {
alert('支付结果确认中,请稍后在订单列表查看');
}
navigate('/orders?tab=pending_ship');
navigate('/orders?tab=paid');
return;
}
navigate('/orders?tab=pending_ship');
navigate('/orders?tab=paid');
} catch (e) {
if (isWechatAuthRequiredError(e)) {
setNeedsWechatAuth(true);
+2 -1
View File
@@ -1,12 +1,13 @@
import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { REDEEM_TOKEN_TTL_SECONDS } from '@dukang/shared-types';
import PageHeader from '@dukang/shared-ui/PageHeader';
export default function RedeemCodePage() {
const navigate = useNavigate();
const token = sessionStorage.getItem('redeemToken') || '';
const amount = sessionStorage.getItem('redeemAmount') || '0';
const [secondsLeft, setSecondsLeft] = useState(300);
const [secondsLeft, setSecondsLeft] = useState(REDEEM_TOKEN_TTL_SECONDS);
useEffect(() => {
const expireAt = sessionStorage.getItem('redeemExpireAt');
+3 -3
View File
@@ -1,8 +1,8 @@
import { useCallback, useEffect, useRef, useState } from 'react';
import { useNavigate, useSearchParams } from 'react-router-dom';
import { REDEEM_TOKEN_TTL_SECONDS } from '@dukang/shared-types';
import { request } from '../lib/api';
const REDEEM_TOKEN_TTL_SECONDS = 300;
const POLL_INTERVAL_MS = 2500;
type BenefitSummary = {
@@ -236,7 +236,7 @@ export default function RedeemPage() {
type="button"
className="redeem-header-btn"
aria-label="帮助"
onClick={() => window.alert('核销金额不超过可用余额,核销码 5 分钟内有效。')}
onClick={() => window.alert('核销金额不超过可用余额,核销码 3 分钟内有效。')}
>
<span className="material-symbols-outlined">help_outline</span>
</button>
@@ -301,7 +301,7 @@ export default function RedeemPage() {
<div className="redeem-security">
<span className="material-symbols-outlined">shield</span>
<p> 5 </p>
<p> 3 </p>
</div>
</main>