From 4146716655bfbe4ae5b780e5b52a6377efd914ec Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Wed, 28 Feb 2024 14:38:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/UserInfo/src/UserInfo.vue | 5 - src/hooks/web/useValidator.ts | 38 +++- src/locales/en.ts | 1 - src/locales/zh-CN.ts | 1 - src/router/index.ts | 10 -- .../PersonalCenter/PersonalCenter.vue | 167 ++++++++++++++---- .../PersonalCenter/components/EditInfo.vue | 96 ++++++++++ .../components/EditPassword.vue | 110 ++++++++++++ .../components/UploadAvatar.vue | 30 ++++ .../PersonalSetting/PersonalSetting.vue | 7 - 10 files changed, 410 insertions(+), 55 deletions(-) create mode 100644 src/views/Personal/PersonalCenter/components/EditInfo.vue create mode 100644 src/views/Personal/PersonalCenter/components/EditPassword.vue create mode 100644 src/views/Personal/PersonalCenter/components/UploadAvatar.vue delete mode 100644 src/views/Personal/PersonalSetting/PersonalSetting.vue 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 @@ - - -