Files
ThriveX-Admin/src/pages/Setup/components/System/index.tsx

101 lines
3.1 KiB
TypeScript
Raw Normal View History

2024-08-08 16:00:46 +08:00
import { Form, Input, Button, notification, Modal } from 'antd';
import { useUserStore } from '@/stores';
import { editAdminPassAPI } from '@/api/User';
2024-08-15 15:28:58 +08:00
import { EditUser } from '@/types/app/user'
2024-08-08 16:00:46 +08:00
const { confirm } = Modal;
2024-08-08 16:08:12 +08:00
const SystemPage = () => {
2024-08-08 16:00:46 +08:00
const store = useUserStore();
const [form] = Form.useForm<EditUser>();
const initialValues: EditUser = {
username: store.user?.username || '',
oldPassword: '',
newPassword: ''
};
const rules = {
username: [
{ required: true, message: '管理员账号不能为空' },
2024-11-21 19:29:13 +08:00
{ min: 5, max: 16, message: '账号限制在5 ~ 16个字符' }
2024-08-08 16:00:46 +08:00
],
oldPassword: [
{ required: true, message: '管理员旧密码不能为空' },
{ min: 6, max: 16, message: '密码限制在6 ~ 16个字符' }
],
newPassword: [
{ required: true, message: '管理员新密码不能为空' },
{ min: 6, max: 16, message: '密码限制在6 ~ 16个字符' }
]
};
const handleSubmit = async (values: EditUser) => {
try {
await editAdminPassAPI(values);
confirm({
title: '提示',
content: '🔒️ 修改成功,请重新登录',
okText: '确定',
onOk: () => {
store.quitLogin();
},
cancelButtonProps: { style: { display: 'none' } }
});
} catch (error) {
notification.error({
message: '错误',
2024-10-14 16:40:23 +08:00
description: '修改密码失败,请重试:' + error
2024-08-08 16:00:46 +08:00
});
}
};
return (
2024-08-08 16:08:12 +08:00
<div>
2024-11-11 13:37:06 +08:00
<h2 className="text-xl pb-4 pl-10"></h2>
2024-08-08 16:00:46 +08:00
<Form
form={form}
initialValues={initialValues}
size='large'
layout="vertical"
onFinish={handleSubmit}
2024-11-11 13:59:08 +08:00
className="w-full lg:w-[500px] md:ml-10"
2024-08-08 16:00:46 +08:00
>
<Form.Item
label="管理员账号"
name="username"
rules={rules.username}
>
2024-11-21 19:29:13 +08:00
<Input placeholder="请输入账号" />
2024-08-08 16:00:46 +08:00
</Form.Item>
<Form.Item
label="管理员旧密码"
name="oldPassword"
rules={rules.oldPassword}
>
<Input.Password placeholder="请输入旧密码" />
</Form.Item>
<Form.Item
label="管理员新密码"
name="newPassword"
rules={rules.newPassword}
>
<Input.Password placeholder="请输入新密码" />
</Form.Item>
<Form.Item>
<Button type="primary" htmlType="submit" className="w-full">
</Button>
</Form.Item>
</Form>
</div>
);
};
export default SystemPage;