admin-vben/src/views/base/profile/data.ts

190 lines
3.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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()
}
}
]
}
}
]