You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
3.7 KiB
189 lines
3.7 KiB
import { FormSchema } from '@/components/Form/index' |
|
import { useI18n } from '@/hooks/web/useI18n' |
|
|
|
const { t } = useI18n() |
|
|
|
export interface ListItem { |
|
key: string |
|
title: string |
|
description: string |
|
extra?: string |
|
avatar?: string |
|
color?: string |
|
} |
|
|
|
// tab的list |
|
export const settingList = [ |
|
{ |
|
key: '1', |
|
name: '基本设置', |
|
component: 'BaseSetting' |
|
}, |
|
{ |
|
key: '2', |
|
name: '安全设置', |
|
component: 'SecureSetting' |
|
}, |
|
{ |
|
key: '3', |
|
name: '账号绑定', |
|
component: 'AccountBind' |
|
}, |
|
{ |
|
key: '4', |
|
name: '新消息通知', |
|
component: 'MsgNotify' |
|
} |
|
] |
|
|
|
// 基础设置 form |
|
export const baseSetschemas: FormSchema[] = [ |
|
{ |
|
field: 'nickname', |
|
component: 'Input', |
|
label: t('profile.user.nickname'), |
|
colProps: { span: 18 } |
|
}, |
|
{ |
|
field: 'mobile', |
|
component: 'Input', |
|
label: t('profile.user.mobile'), |
|
colProps: { span: 18 } |
|
}, |
|
{ |
|
field: 'email', |
|
component: 'Input', |
|
label: t('profile.user.email'), |
|
colProps: { span: 18 } |
|
}, |
|
{ |
|
field: 'sex', |
|
component: 'RadioGroup', |
|
componentProps: { |
|
options: [ |
|
{ label: '男', value: 1 }, |
|
{ label: '女', value: 2 } |
|
] |
|
}, |
|
label: t('profile.user.sex'), |
|
colProps: { span: 18 } |
|
} |
|
] |
|
|
|
// 安全设置 list |
|
export const secureSettingList: ListItem[] = [ |
|
{ |
|
key: '1', |
|
title: '账户密码', |
|
description: '当前密码强度::强', |
|
extra: '修改' |
|
}, |
|
{ |
|
key: '2', |
|
title: '密保手机', |
|
description: '已绑定手机::138****8293', |
|
extra: '修改' |
|
}, |
|
{ |
|
key: '3', |
|
title: '密保问题', |
|
description: '未设置密保问题,密保问题可有效保护账户安全', |
|
extra: '修改' |
|
}, |
|
{ |
|
key: '4', |
|
title: '备用邮箱', |
|
description: '已绑定邮箱::ant***sign.com', |
|
extra: '修改' |
|
}, |
|
{ |
|
key: '5', |
|
title: 'MFA 设备', |
|
description: '未绑定 MFA 设备,绑定后,可以进行二次确认', |
|
extra: '修改' |
|
} |
|
] |
|
|
|
// 账号绑定 list |
|
export const accountBindList: ListItem[] = [ |
|
{ |
|
key: '20', |
|
title: '钉钉', |
|
description: '当前未绑定钉钉账号', |
|
extra: '绑定', |
|
avatar: 'ri:dingding-fill', |
|
color: '#2eabff' |
|
}, |
|
{ |
|
key: '30', |
|
title: '企业微信', |
|
description: '当前未绑定企业微信', |
|
extra: '绑定', |
|
avatar: 'ri:wechat-line', |
|
color: '#2eabff' |
|
} |
|
] |
|
|
|
// 新消息通知 list |
|
export const msgNotifyList: ListItem[] = [ |
|
{ |
|
key: '1', |
|
title: '账户密码', |
|
description: '其他用户的消息将以站内信的形式通知' |
|
}, |
|
{ |
|
key: '2', |
|
title: '系统消息', |
|
description: '系统消息将以站内信的形式通知' |
|
}, |
|
{ |
|
key: '3', |
|
title: '待办任务', |
|
description: '待办任务将以站内信的形式通知' |
|
} |
|
] |
|
|
|
export const passwordSchema: FormSchema[] = [ |
|
{ |
|
field: 'oldPassword', |
|
label: '当前密码', |
|
component: 'InputPassword', |
|
required: true |
|
}, |
|
{ |
|
field: 'newPassword', |
|
label: '新密码', |
|
component: 'StrengthMeter', |
|
componentProps: { |
|
placeholder: '新密码' |
|
}, |
|
rules: [ |
|
{ |
|
required: true, |
|
message: '请输入新密码' |
|
} |
|
] |
|
}, |
|
{ |
|
field: 'confirmPassword', |
|
label: '确认密码', |
|
component: 'InputPassword', |
|
|
|
dynamicRules: ({ values }) => { |
|
return [ |
|
{ |
|
required: true, |
|
validator: (_, value) => { |
|
if (!value) { |
|
return Promise.reject('密码不能为空') |
|
} |
|
if (value !== values.newPassword) { |
|
return Promise.reject('两次输入的密码不一致!') |
|
} |
|
return Promise.resolve() |
|
} |
|
} |
|
] |
|
} |
|
} |
|
]
|
|
|