FEAT => 本次更新项目为:设置中心构建完成

This commit is contained in:
超级老白兔
2025-07-30 17:08:31 +08:00
parent c4b41daf6a
commit 1c154c6f48
3 changed files with 38 additions and 90 deletions

View File

@@ -1,13 +1,11 @@
import React, { useState, useEffect } from "react";
import { useNavigate } from "react-router-dom";
import { Card, NavBar, List, Button, Dialog, Toast } from "antd-mobile";
import { Card, NavBar, List, Button, Toast } from "antd-mobile";
import {
LogoutOutlined,
PhoneOutlined,
MessageOutlined,
DatabaseOutlined,
FolderOpenOutlined,
BellOutlined,
SettingOutlined,
} from "@ant-design/icons";
import MeauMobile from "@/components/MeauMobile/MeauMoible";
@@ -15,6 +13,7 @@ import Layout from "@/components/Layout/Layout";
import style from "./index.module.scss";
import { useUserStore } from "@/store/module/user";
import { getDashboard } from "./api";
const Mine: React.FC = () => {
const navigate = useNavigate();
const { user } = useUserStore();
@@ -25,7 +24,6 @@ const Mine: React.FC = () => {
content: 156,
balance: 0,
});
const [showLogoutDialog, setShowLogoutDialog] = useState(false);
// 用户信息
const currentUserInfo = {
@@ -102,19 +100,6 @@ const Mine: React.FC = () => {
loadStats();
}, []);
const handleLogout = () => {
// 清除本地存储的用户信息
localStorage.removeItem("token");
localStorage.removeItem("token_expired");
localStorage.removeItem("userInfo");
setShowLogoutDialog(false);
navigate("/login");
Toast.show({
content: "退出成功",
position: "top",
});
};
const handleFunctionClick = (path: string) => {
navigate(path);
};
@@ -227,42 +212,7 @@ const Mine: React.FC = () => {
))}
</List>
</Card>
{/* 退出登录按钮 */}
<Button
block
color="danger"
fill="outline"
className={style["logout-btn"]}
onClick={() => setShowLogoutDialog(true)}
>
<LogoutOutlined style={{ marginRight: "8px" }} />
退
</Button>
</div>
{/* 退出登录确认对话框 */}
<Dialog
content="您确定要退出登录吗?退出后需要重新登录才能使用完整功能。"
visible={showLogoutDialog}
closeOnAction
actions={[
[
{
key: "cancel",
text: "取消",
},
{
key: "confirm",
text: "确认退出",
bold: true,
danger: true,
onClick: handleLogout,
},
],
]}
onClose={() => setShowLogoutDialog(false)}
/>
</Layout>
);
};

View File

@@ -1,6 +1,6 @@
import React, { useState } from "react";
import { useNavigate } from "react-router-dom";
import { NavBar, List, Button, Dialog, Toast, Card, Input } from "antd-mobile";
import { NavBar, List, Dialog, Toast, Card, Input } from "antd-mobile";
import {
LockOutlined,
MobileOutlined,
@@ -10,7 +10,7 @@ import {
import Layout from "@/components/Layout/Layout";
import { useUserStore } from "@/store/module/user";
import style from "./index.module.scss";
import NavCommon from "@/components/NavCommon";
const SecuritySetting: React.FC = () => {
const navigate = useNavigate();
const { user } = useUserStore();
@@ -92,15 +92,7 @@ const SecuritySetting: React.FC = () => {
];
return (
<Layout
header={
<NavBar onBack={() => navigate(-1)} style={{ background: "#fff" }}>
<span style={{ color: "var(--primary-color)", fontWeight: 600 }}>
</span>
</NavBar>
}
>
<Layout header={<NavCommon title="安全设置" />}>
<div className={style["setting-page"]}>
{/* 安全提示卡片 */}
<Card className={style["security-tip-card"]}>
@@ -125,9 +117,7 @@ const SecuritySetting: React.FC = () => {
prefix={item.icon}
title={item.title}
description={item.description}
extra={<RightOutlined style={{ color: "#ccc" }} />}
onClick={item.onClick}
arrow
/>
))}
</List>
@@ -163,30 +153,36 @@ const SecuritySetting: React.FC = () => {
title="修改密码"
content={
<div className={style["password-form"]}>
<Input
type="password"
placeholder="请输入当前密码"
value={passwordForm.oldPassword}
onChange={value =>
setPasswordForm(prev => ({ ...prev, oldPassword: value }))
}
/>
<Input
type="password"
placeholder="请输入新密码"
value={passwordForm.newPassword}
onChange={value =>
setPasswordForm(prev => ({ ...prev, newPassword: value }))
}
/>
<Input
type="password"
placeholder="请确认新密码"
value={passwordForm.confirmPassword}
onChange={value =>
setPasswordForm(prev => ({ ...prev, confirmPassword: value }))
}
/>
<div className={style["line"]}>
<Input
type="password"
placeholder="请输入当前密码"
value={passwordForm.oldPassword}
onChange={value =>
setPasswordForm(prev => ({ ...prev, oldPassword: value }))
}
/>
</div>
<div className={style["line"]}>
<Input
type="password"
placeholder="请输入新密码"
value={passwordForm.newPassword}
onChange={value =>
setPasswordForm(prev => ({ ...prev, newPassword: value }))
}
/>
</div>
<div className={style["line"]}>
<Input
type="password"
placeholder="请确认新密码"
value={passwordForm.confirmPassword}
onChange={value =>
setPasswordForm(prev => ({ ...prev, confirmPassword: value }))
}
/>
</div>
</div>
}
closeOnAction

View File

@@ -373,7 +373,9 @@
flex-direction: column;
gap: 12px;
padding: 16px 0;
.line {
margin-bottom: 12px;
}
:global(.adm-input) {
border: 1px solid #d9d9d9;
border-radius: 8px;