登录页面

This commit is contained in:
2026-07-12 15:17:54 +08:00
parent becf91da52
commit bfac6c6663
63 changed files with 4662 additions and 431 deletions
+71
View File
@@ -0,0 +1,71 @@
import { useEffect, useState } from 'react';
import { View, Text, Input } from '@tarojs/components';
import Taro, { useRouter } from '@tarojs/taro';
import PageShell from '../../components/PageShell';
import SubPageHeader from '../../components/SubPageHeader';
import { goLogin } from '../../lib/auth-nav';
import { isLoggedIn, request, toast } from '../../lib/api';
type BenefitSummary = {
totalBalance: number;
maxRedeemAmount: number;
};
export default function RedeemPage() {
const router = useRouter();
const initialAmount = router.params.amount ?? '';
const [balance, setBalance] = useState(0);
const [amount, setAmount] = useState(initialAmount);
useEffect(() => {
if (!isLoggedIn()) {
goLogin('/pages/redeem/index');
return;
}
request<BenefitSummary>('/benefit/summary')
.then((s) => setBalance(Number(s.maxRedeemAmount ?? s.totalBalance ?? 0)))
.catch(() => {});
}, []);
function submit() {
const value = Number(amount);
if (!(value > 0)) {
toast('请输入核销金额');
return;
}
if (value > balance && balance > 0) {
toast('超出可用余额');
return;
}
Taro.navigateTo({
url: `/pages/redeem-code/index?amount=${value}`,
});
}
return (
<PageShell variant="sub" className="redeem-page">
<SubPageHeader title="权益核销" />
<View className="sub-page-body">
<View className="redeem-hero">
<Text className="redeem-hero-label"></Text>
<Text className="redeem-hero-amount">¥{balance.toFixed(2)}</Text>
</View>
<View className="redeem-input-wrap">
<Input
className="redeem-input"
type="digit"
placeholder="输入核销金额"
value={amount}
onInput={(e) => setAmount(e.detail.value)}
/>
</View>
<Text className="redeem-tips">
0 3
</Text>
<View className="redeem-submit" onClick={submit}>
<Text></Text>
</View>
</View>
</PageShell>
);
}