diff --git a/src/components/UserInfo/src/UserInfo.vue b/src/components/UserInfo/src/UserInfo.vue index b35a2ac..526b0a0 100644 --- a/src/components/UserInfo/src/UserInfo.vue +++ b/src/components/UserInfo/src/UserInfo.vue @@ -62,11 +62,6 @@ const toPage = (path: string) => { {{ t('router.personalCenter') }} - -
- {{ t('router.personalSetting') }} -
-
{{ t('common.document') }}
diff --git a/src/hooks/web/useValidator.ts b/src/hooks/web/useValidator.ts index 151e35b..55d2274 100644 --- a/src/hooks/web/useValidator.ts +++ b/src/hooks/web/useValidator.ts @@ -51,10 +51,46 @@ export const useValidator = () => { } } + const phone = (message?: string): FormItemRule => { + return { + validator: (_, val, callback) => { + if (!val) return callback() + if (!/^1[3456789]\d{9}$/.test(val)) { + callback(new Error(message || '请输入正确的手机号码')) + } else { + callback() + } + } + } + } + + const email = (message?: string): FormItemRule => { + return { + validator: (_, val, callback) => { + if (!val) return callback() + if (!/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(val)) { + callback(new Error(message || '请输入正确的邮箱')) + } else { + callback() + } + } + } + } + + const maxlength = (max: number): FormItemRule => { + return { + max, + message: '长度不能超过' + max + '个字符' + } + } + return { required, lengthRange, notSpace, - notSpecialCharacters + notSpecialCharacters, + phone, + email, + maxlength } } diff --git a/src/locales/en.ts b/src/locales/en.ts index dd346cc..2598374 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -186,7 +186,6 @@ export default { tableVideoPreview: 'Table video preview', cardTable: 'Card table', personalCenter: 'Personal center', - personalSetting: 'Personal setting', personal: 'Personal' }, permission: { diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index afd43c1..ebf9dfe 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -182,7 +182,6 @@ export default { tableVideoPreview: '表格视频预览', cardTable: '卡片表格', personalCenter: '个人中心', - personalSetting: '个人设置', personal: '个人' }, permission: { diff --git a/src/router/index.ts b/src/router/index.ts index 9ae65ee..0efe943 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -64,16 +64,6 @@ export const constantRouterMap: AppRouteRecordRaw[] = [ hidden: true, canTo: true } - }, - { - path: 'personal-setting', - component: () => import('@/views/Personal/PersonalSetting/PersonalSetting.vue'), - name: 'PersonalSetting', - meta: { - title: t('router.personalSetting'), - hidden: true, - canTo: true - } } ] }, diff --git a/src/views/Personal/PersonalCenter/PersonalCenter.vue b/src/views/Personal/PersonalCenter/PersonalCenter.vue index 2290104..dc09883 100644 --- a/src/views/Personal/PersonalCenter/PersonalCenter.vue +++ b/src/views/Personal/PersonalCenter/PersonalCenter.vue @@ -1,41 +1,148 @@ - diff --git a/src/views/Personal/PersonalCenter/components/EditInfo.vue b/src/views/Personal/PersonalCenter/components/EditInfo.vue new file mode 100644 index 0000000..bd684b7 --- /dev/null +++ b/src/views/Personal/PersonalCenter/components/EditInfo.vue @@ -0,0 +1,96 @@ + + + diff --git a/src/views/Personal/PersonalCenter/components/EditPassword.vue b/src/views/Personal/PersonalCenter/components/EditPassword.vue new file mode 100644 index 0000000..7b320f3 --- /dev/null +++ b/src/views/Personal/PersonalCenter/components/EditPassword.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/views/Personal/PersonalCenter/components/UploadAvatar.vue b/src/views/Personal/PersonalCenter/components/UploadAvatar.vue new file mode 100644 index 0000000..9b40e21 --- /dev/null +++ b/src/views/Personal/PersonalCenter/components/UploadAvatar.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/views/Personal/PersonalSetting/PersonalSetting.vue b/src/views/Personal/PersonalSetting/PersonalSetting.vue deleted file mode 100644 index 36119b6..0000000 --- a/src/views/Personal/PersonalSetting/PersonalSetting.vue +++ /dev/null @@ -1,7 +0,0 @@ - - -