/* * @Author: your name * @Date: 2022-03-03 17:42:10 * @LastEditTime: 2023-06-12 16:14:59 * @LastEditors: code4eat awesomedema@gmail.com * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: /KC-MiddlePlatform/src/pages/personalCenter/components/security.tsx */ import React, { useState } from 'react'; import { List } from 'antd'; import KCModal from '@/components/KCModal'; import { ProFormText } from '@ant-design/pro-form'; import { Form, Alert, Progress, notification, Modal } from 'antd'; import PasswordQualityCalculator from 'password-quality-calculator'; import { editUsers, editUsersPsd } from '@/service/user'; import { useModel } from 'umi'; type Unpacked = T extends (infer U)[] ? U : T; const passwordStrength = { strong: , medium: , weak: 弱 Weak, }; const SecurityView: React.FC = () => { const getData = () => [ { title: '账户密码', description: ( <> 当前密码强度: {passwordStrength} ), actions: [ resetPasswordHandle()}> 修改 , ], }, // { // title: '密保手机', // description: `已绑定手机:138****8293`, // actions: [修改], // }, // { // title: '密保问题', // description: '未设置密保问题,密保问题可有效保护账户安全', // actions: [设置], // }, // { // title: '备用邮箱', // description: `已绑定邮箱:ant***sign.com`, // actions: [修改], // }, // { // title: 'MFA 设备', // description: '未绑定 MFA 设备,绑定后,可以进行二次确认', // actions: [绑定], // }, ]; const { initialState, setInitialState } = useModel('@@initialState'); const [modalVisible, setmodalVisible] = useState(false); const [passwordStrength, setpasswordStrength] = useState(0); const [showPasswordCompareTip, setshowPasswordCompareTip] = useState(false); const data = getData(); const resetPasswordHandle = () => { setmodalVisible(true); }; const onVisibleChangeHandle = (bool: boolean) => { setmodalVisible(bool); }; const passwordChangeHandle = (e: React.ChangeEvent) => { // console.log(PasswordQualityCalculator(e.target.value)); setpasswordStrength(PasswordQualityCalculator(e.target.value)); }; const onFinishhandle = async (values: any) => { const { newPassword, reNewPassword } = values; if (reNewPassword != newPassword) { setshowPasswordCompareTip(true); setTimeout(() => { setshowPasswordCompareTip(false); }, 2000); return false; } const userData = localStorage.getItem('userData'); if (userData) { const resp = await editUsersPsd({ id: JSON.parse(userData).userId, password: newPassword, }); if (resp) { Modal.confirm({ title: '密码修改成功,前往重新登录?', closable: false, okText:'确定', onOk: () => { if (initialState?.logout) { initialState.logout(); } }, cancelText: '', }); return true; } } else { notification['error']({ message: '用户信息获取错误!', }); } }; return (
onFinishhandle(val)} >
passwordChangeHandle(e), }} />
> itemLayout="horizontal" dataSource={data} renderItem={(item) => ( )} />
); }; export default SecurityView;