设置交易密码页面

This commit is contained in:
2025-09-27 00:22:04 +08:00
parent ca0013b37c
commit a1be43e02b
9 changed files with 361 additions and 27 deletions

View File

@@ -103,6 +103,7 @@ const WalletPage: React.FC = () => {
const [show_withdraw_popup, set_show_withdraw_popup] = useState(false);
const [withdraw_amount, set_withdraw_amount] = useState("");
const [submitting, set_submitting] = useState(false);
const [password_status, set_password_status] = useState(false);
// 交易记录状态
const [transactions, set_transactions] = useState<Transaction[]>([]);
@@ -125,8 +126,18 @@ const WalletPage: React.FC = () => {
useDidShow(() => {
load_wallet_data();
load_transactions();
check_password_status();
});
const check_password_status = async () => {
try {
const res = await httpService.post("/wallet/check_password_status");
set_password_status(res.data.is_password_set);
} catch (e) {
console.error("检查交易密码状态失败:", e);
}
}
// 加载钱包数据
const load_wallet_data = async () => {
try {
@@ -216,8 +227,18 @@ const WalletPage: React.FC = () => {
}
};
const navigateToSetTransactionPassword = (type: "set" | "reset") => {
Taro.navigateTo({
url: `/user_pages/setTransactionPassword/index?type=${type}`,
});
};
// 处理提现
const handle_withdraw = () => {
if (!password_status) {
navigateToSetTransactionPassword("set");
return;
}
if (wallet_info.balance <= 0) {
Taro.showToast({
title: "余额不足",
@@ -357,7 +378,7 @@ const WalletPage: React.FC = () => {
{/* 头部信息 */}
<View className="card_header">
<Text className="header_title"></Text>
<Text className="modify_password"></Text>
<Text className="modify_password" onClick={() => navigateToSetTransactionPassword("reset")}></Text>
</View>
{/* 余额显示 */}
@@ -420,7 +441,8 @@ const WalletPage: React.FC = () => {
/>
<Text className="function_text"></Text>
</View>
<View className="function_item">
{/* TODO 客服中心 */}
<View className="function_item" onClick={() => Taro.navigateTo({ url: "/user_pages/validPhone/index" })}>
<Image
className="function_icon"
src={require("@/static/wallet/custom-service.svg")}
@@ -570,7 +592,7 @@ const WalletPage: React.FC = () => {
<View
className={
load_transactions_params.transaction_sub_type ===
option.value
option.value
? "option_item active"
: "option_item"
}