This commit is contained in:
2026-06-30 10:33:56 +08:00
commit 6e047dc0a5
607 changed files with 65966 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
import { useState } from 'react';
import { useNavigate, useSearchParams } from 'react-router-dom';
import SubPageHeader from '../components/SubPageHeader';
import { request } from '../lib/api';
import { buildOrderConfirmUrl } from '../lib/navigation';
export default function PayPage() {
const [params] = useSearchParams();
const orderId = params.get('orderId') || '';
const navigate = useNavigate();
const [loading, setLoading] = useState(false);
function goBackConfirm() {
navigate(
buildOrderConfirmUrl({
productId: params.get('productId'),
qty: params.get('qty'),
addressId: params.get('addressId'),
cross: params.get('cross'),
}),
);
}
async function pay() {
setLoading(true);
try {
await request('USER_H5', `/trade/orders/${orderId}/pay`, { method: 'POST' });
navigate('/orders?tab=pending_ship');
} catch (e) {
alert(e instanceof Error ? e.message : '支付失败');
} finally {
setLoading(false);
}
}
return (
<div className="page-no-tab pay-page">
<SubPageHeader title="微信支付" onBack={goBackConfirm} />
<div className="pay-body sub-page-body">
<div className="pay-icon">
<span className="material-symbols-outlined">account_balance_wallet</span>
</div>
<p className="headline-lg text-primary">Mock </p>
<p className="text-muted body-md" style={{ marginTop: 8 }}>preV1 </p>
<p className="label-md text-muted" style={{ marginTop: 24 }}> {orderId}</p>
</div>
<div className="page-actions">
<button type="button" className="btn btn-primary btn-block" disabled={loading || !orderId} onClick={pay}>
{loading ? '支付中...' : '确认支付'}
</button>
</div>
</div>
);
}