diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue index 805b8a73d2e..8c5c663a3ac 100644 --- a/apps/web-antd/src/layouts/basic.vue +++ b/apps/web-antd/src/layouts/basic.vue @@ -2,6 +2,7 @@ import type { NotificationItem } from '@vben/layouts'; import { computed, ref, watch } from 'vue'; +import { useRouter } from 'vue-router'; import { AuthenticationLoginExpiredModal } from '@vben/common-ui'; import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants'; @@ -52,6 +53,7 @@ const notifications = ref([ }, ]); +const router = useRouter(); const userStore = useUserStore(); const authStore = useAuthStore(); const accessStore = useAccessStore(); @@ -61,6 +63,13 @@ const showDot = computed(() => ); const menus = computed(() => [ + { + handler: () => { + router.push({ name: 'Profile' }); + }, + icon: 'lucide:user', + text: $t('page.auth.profile'), + }, { handler: () => { openWindow(VBEN_DOC_URL, { diff --git a/apps/web-antd/src/locales/langs/en-US/page.json b/apps/web-antd/src/locales/langs/en-US/page.json index 618a258c0a6..39f1641c871 100644 --- a/apps/web-antd/src/locales/langs/en-US/page.json +++ b/apps/web-antd/src/locales/langs/en-US/page.json @@ -4,7 +4,8 @@ "register": "Register", "codeLogin": "Code Login", "qrcodeLogin": "Qr Code Login", - "forgetPassword": "Forget Password" + "forgetPassword": "Forget Password", + "profile": "Profile" }, "dashboard": { "title": "Dashboard", diff --git a/apps/web-antd/src/locales/langs/zh-CN/page.json b/apps/web-antd/src/locales/langs/zh-CN/page.json index 4cb67081cbf..2192d1d529d 100644 --- a/apps/web-antd/src/locales/langs/zh-CN/page.json +++ b/apps/web-antd/src/locales/langs/zh-CN/page.json @@ -4,7 +4,8 @@ "register": "注册", "codeLogin": "验证码登录", "qrcodeLogin": "二维码登录", - "forgetPassword": "忘记密码" + "forgetPassword": "忘记密码", + "profile": "个人中心" }, "dashboard": { "title": "概览", diff --git a/apps/web-antd/src/router/routes/modules/vben.ts b/apps/web-antd/src/router/routes/modules/vben.ts index 4a8cdb0a4c9..631facc0162 100644 --- a/apps/web-antd/src/router/routes/modules/vben.ts +++ b/apps/web-antd/src/router/routes/modules/vben.ts @@ -89,6 +89,16 @@ const routes: RouteRecordRaw[] = [ order: 9999, }, }, + { + name: 'Profile', + path: '/profile', + component: () => import('#/views/_core/profile/index.vue'), + meta: { + icon: 'lucide:user', + hideInMenu: true, + title: $t('page.auth.profile'), + }, + }, ]; export default routes; diff --git a/apps/web-antd/src/views/_core/profile/base-setting.vue b/apps/web-antd/src/views/_core/profile/base-setting.vue new file mode 100644 index 00000000000..aa8a4c260d0 --- /dev/null +++ b/apps/web-antd/src/views/_core/profile/base-setting.vue @@ -0,0 +1,65 @@ + + diff --git a/apps/web-antd/src/views/_core/profile/index.vue b/apps/web-antd/src/views/_core/profile/index.vue new file mode 100644 index 00000000000..8740894e3a7 --- /dev/null +++ b/apps/web-antd/src/views/_core/profile/index.vue @@ -0,0 +1,49 @@ + + diff --git a/apps/web-antd/src/views/_core/profile/notification-setting.vue b/apps/web-antd/src/views/_core/profile/notification-setting.vue new file mode 100644 index 00000000000..324a4b393dc --- /dev/null +++ b/apps/web-antd/src/views/_core/profile/notification-setting.vue @@ -0,0 +1,31 @@ + + diff --git a/apps/web-antd/src/views/_core/profile/password-setting.vue b/apps/web-antd/src/views/_core/profile/password-setting.vue new file mode 100644 index 00000000000..b246bc37e38 --- /dev/null +++ b/apps/web-antd/src/views/_core/profile/password-setting.vue @@ -0,0 +1,66 @@ + + diff --git a/apps/web-antd/src/views/_core/profile/security-setting.vue b/apps/web-antd/src/views/_core/profile/security-setting.vue new file mode 100644 index 00000000000..be30db58e43 --- /dev/null +++ b/apps/web-antd/src/views/_core/profile/security-setting.vue @@ -0,0 +1,43 @@ + + diff --git a/apps/web-ele/src/layouts/basic.vue b/apps/web-ele/src/layouts/basic.vue index 805b8a73d2e..8c5c663a3ac 100644 --- a/apps/web-ele/src/layouts/basic.vue +++ b/apps/web-ele/src/layouts/basic.vue @@ -2,6 +2,7 @@ import type { NotificationItem } from '@vben/layouts'; import { computed, ref, watch } from 'vue'; +import { useRouter } from 'vue-router'; import { AuthenticationLoginExpiredModal } from '@vben/common-ui'; import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants'; @@ -52,6 +53,7 @@ const notifications = ref([ }, ]); +const router = useRouter(); const userStore = useUserStore(); const authStore = useAuthStore(); const accessStore = useAccessStore(); @@ -61,6 +63,13 @@ const showDot = computed(() => ); const menus = computed(() => [ + { + handler: () => { + router.push({ name: 'Profile' }); + }, + icon: 'lucide:user', + text: $t('page.auth.profile'), + }, { handler: () => { openWindow(VBEN_DOC_URL, { diff --git a/apps/web-ele/src/locales/langs/en-US/page.json b/apps/web-ele/src/locales/langs/en-US/page.json index 618a258c0a6..39f1641c871 100644 --- a/apps/web-ele/src/locales/langs/en-US/page.json +++ b/apps/web-ele/src/locales/langs/en-US/page.json @@ -4,7 +4,8 @@ "register": "Register", "codeLogin": "Code Login", "qrcodeLogin": "Qr Code Login", - "forgetPassword": "Forget Password" + "forgetPassword": "Forget Password", + "profile": "Profile" }, "dashboard": { "title": "Dashboard", diff --git a/apps/web-ele/src/locales/langs/zh-CN/page.json b/apps/web-ele/src/locales/langs/zh-CN/page.json index 4cb67081cbf..2192d1d529d 100644 --- a/apps/web-ele/src/locales/langs/zh-CN/page.json +++ b/apps/web-ele/src/locales/langs/zh-CN/page.json @@ -4,7 +4,8 @@ "register": "注册", "codeLogin": "验证码登录", "qrcodeLogin": "二维码登录", - "forgetPassword": "忘记密码" + "forgetPassword": "忘记密码", + "profile": "个人中心" }, "dashboard": { "title": "概览", diff --git a/apps/web-ele/src/router/routes/modules/vben.ts b/apps/web-ele/src/router/routes/modules/vben.ts index 98bdaf327d9..5c522f30a2c 100644 --- a/apps/web-ele/src/router/routes/modules/vben.ts +++ b/apps/web-ele/src/router/routes/modules/vben.ts @@ -89,6 +89,16 @@ const routes: RouteRecordRaw[] = [ order: 9999, }, }, + { + name: 'Profile', + path: '/profile', + component: () => import('#/views/_core/profile/index.vue'), + meta: { + icon: 'lucide:user', + hideInMenu: true, + title: $t('page.auth.profile'), + }, + }, ]; export default routes; diff --git a/apps/web-ele/src/views/_core/profile/base-setting.vue b/apps/web-ele/src/views/_core/profile/base-setting.vue new file mode 100644 index 00000000000..aa8a4c260d0 --- /dev/null +++ b/apps/web-ele/src/views/_core/profile/base-setting.vue @@ -0,0 +1,65 @@ + + diff --git a/apps/web-ele/src/views/_core/profile/index.vue b/apps/web-ele/src/views/_core/profile/index.vue new file mode 100644 index 00000000000..8740894e3a7 --- /dev/null +++ b/apps/web-ele/src/views/_core/profile/index.vue @@ -0,0 +1,49 @@ + + diff --git a/apps/web-ele/src/views/_core/profile/notification-setting.vue b/apps/web-ele/src/views/_core/profile/notification-setting.vue new file mode 100644 index 00000000000..324a4b393dc --- /dev/null +++ b/apps/web-ele/src/views/_core/profile/notification-setting.vue @@ -0,0 +1,31 @@ + + diff --git a/apps/web-ele/src/views/_core/profile/password-setting.vue b/apps/web-ele/src/views/_core/profile/password-setting.vue new file mode 100644 index 00000000000..4d80d74c69b --- /dev/null +++ b/apps/web-ele/src/views/_core/profile/password-setting.vue @@ -0,0 +1,66 @@ + + diff --git a/apps/web-ele/src/views/_core/profile/security-setting.vue b/apps/web-ele/src/views/_core/profile/security-setting.vue new file mode 100644 index 00000000000..be30db58e43 --- /dev/null +++ b/apps/web-ele/src/views/_core/profile/security-setting.vue @@ -0,0 +1,43 @@ + + diff --git a/apps/web-naive/src/layouts/basic.vue b/apps/web-naive/src/layouts/basic.vue index 0e9747befa6..f752b9410ef 100644 --- a/apps/web-naive/src/layouts/basic.vue +++ b/apps/web-naive/src/layouts/basic.vue @@ -2,6 +2,7 @@ import type { NotificationItem } from '@vben/layouts'; import { computed, ref, watch } from 'vue'; +import { useRouter } from 'vue-router'; import { AuthenticationLoginExpiredModal } from '@vben/common-ui'; import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants'; @@ -52,6 +53,7 @@ const notifications = ref([ }, ]); +const router = useRouter(); const userStore = useUserStore(); const authStore = useAuthStore(); const accessStore = useAccessStore(); @@ -61,6 +63,13 @@ const showDot = computed(() => ); const menus = computed(() => [ + { + handler: () => { + router.push({ name: 'Profile' }); + }, + icon: 'lucide:user', + text: $t('page.auth.profile'), + }, { handler: () => { openWindow(VBEN_DOC_URL, { diff --git a/apps/web-naive/src/locales/langs/en-US/page.json b/apps/web-naive/src/locales/langs/en-US/page.json index 618a258c0a6..39f1641c871 100644 --- a/apps/web-naive/src/locales/langs/en-US/page.json +++ b/apps/web-naive/src/locales/langs/en-US/page.json @@ -4,7 +4,8 @@ "register": "Register", "codeLogin": "Code Login", "qrcodeLogin": "Qr Code Login", - "forgetPassword": "Forget Password" + "forgetPassword": "Forget Password", + "profile": "Profile" }, "dashboard": { "title": "Dashboard", diff --git a/apps/web-naive/src/locales/langs/zh-CN/page.json b/apps/web-naive/src/locales/langs/zh-CN/page.json index 4cb67081cbf..2192d1d529d 100644 --- a/apps/web-naive/src/locales/langs/zh-CN/page.json +++ b/apps/web-naive/src/locales/langs/zh-CN/page.json @@ -4,7 +4,8 @@ "register": "注册", "codeLogin": "验证码登录", "qrcodeLogin": "二维码登录", - "forgetPassword": "忘记密码" + "forgetPassword": "忘记密码", + "profile": "个人中心" }, "dashboard": { "title": "概览", diff --git a/apps/web-naive/src/router/routes/modules/vben.ts b/apps/web-naive/src/router/routes/modules/vben.ts index 8f8803b3257..32c21ca495b 100644 --- a/apps/web-naive/src/router/routes/modules/vben.ts +++ b/apps/web-naive/src/router/routes/modules/vben.ts @@ -89,6 +89,16 @@ const routes: RouteRecordRaw[] = [ order: 9999, }, }, + { + name: 'Profile', + path: '/profile', + component: () => import('#/views/_core/profile/index.vue'), + meta: { + icon: 'lucide:user', + hideInMenu: true, + title: $t('page.auth.profile'), + }, + }, ]; export default routes; diff --git a/apps/web-naive/src/views/_core/profile/base-setting.vue b/apps/web-naive/src/views/_core/profile/base-setting.vue new file mode 100644 index 00000000000..aa8a4c260d0 --- /dev/null +++ b/apps/web-naive/src/views/_core/profile/base-setting.vue @@ -0,0 +1,65 @@ + + diff --git a/apps/web-naive/src/views/_core/profile/index.vue b/apps/web-naive/src/views/_core/profile/index.vue new file mode 100644 index 00000000000..8740894e3a7 --- /dev/null +++ b/apps/web-naive/src/views/_core/profile/index.vue @@ -0,0 +1,49 @@ + + diff --git a/apps/web-naive/src/views/_core/profile/notification-setting.vue b/apps/web-naive/src/views/_core/profile/notification-setting.vue new file mode 100644 index 00000000000..324a4b393dc --- /dev/null +++ b/apps/web-naive/src/views/_core/profile/notification-setting.vue @@ -0,0 +1,31 @@ + + diff --git a/apps/web-naive/src/views/_core/profile/password-setting.vue b/apps/web-naive/src/views/_core/profile/password-setting.vue new file mode 100644 index 00000000000..1132a51fb41 --- /dev/null +++ b/apps/web-naive/src/views/_core/profile/password-setting.vue @@ -0,0 +1,66 @@ + + diff --git a/apps/web-naive/src/views/_core/profile/security-setting.vue b/apps/web-naive/src/views/_core/profile/security-setting.vue new file mode 100644 index 00000000000..be30db58e43 --- /dev/null +++ b/apps/web-naive/src/views/_core/profile/security-setting.vue @@ -0,0 +1,43 @@ + + diff --git a/apps/web-tdesign/src/layouts/basic.vue b/apps/web-tdesign/src/layouts/basic.vue index 805b8a73d2e..8c5c663a3ac 100644 --- a/apps/web-tdesign/src/layouts/basic.vue +++ b/apps/web-tdesign/src/layouts/basic.vue @@ -2,6 +2,7 @@ import type { NotificationItem } from '@vben/layouts'; import { computed, ref, watch } from 'vue'; +import { useRouter } from 'vue-router'; import { AuthenticationLoginExpiredModal } from '@vben/common-ui'; import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants'; @@ -52,6 +53,7 @@ const notifications = ref([ }, ]); +const router = useRouter(); const userStore = useUserStore(); const authStore = useAuthStore(); const accessStore = useAccessStore(); @@ -61,6 +63,13 @@ const showDot = computed(() => ); const menus = computed(() => [ + { + handler: () => { + router.push({ name: 'Profile' }); + }, + icon: 'lucide:user', + text: $t('page.auth.profile'), + }, { handler: () => { openWindow(VBEN_DOC_URL, { diff --git a/apps/web-tdesign/src/locales/langs/en-US/page.json b/apps/web-tdesign/src/locales/langs/en-US/page.json index 618a258c0a6..39f1641c871 100644 --- a/apps/web-tdesign/src/locales/langs/en-US/page.json +++ b/apps/web-tdesign/src/locales/langs/en-US/page.json @@ -4,7 +4,8 @@ "register": "Register", "codeLogin": "Code Login", "qrcodeLogin": "Qr Code Login", - "forgetPassword": "Forget Password" + "forgetPassword": "Forget Password", + "profile": "Profile" }, "dashboard": { "title": "Dashboard", diff --git a/apps/web-tdesign/src/locales/langs/zh-CN/page.json b/apps/web-tdesign/src/locales/langs/zh-CN/page.json index 4cb67081cbf..2192d1d529d 100644 --- a/apps/web-tdesign/src/locales/langs/zh-CN/page.json +++ b/apps/web-tdesign/src/locales/langs/zh-CN/page.json @@ -4,7 +4,8 @@ "register": "注册", "codeLogin": "验证码登录", "qrcodeLogin": "二维码登录", - "forgetPassword": "忘记密码" + "forgetPassword": "忘记密码", + "profile": "个人中心" }, "dashboard": { "title": "概览", diff --git a/apps/web-tdesign/src/router/routes/modules/vben.ts b/apps/web-tdesign/src/router/routes/modules/vben.ts index b1a3537c01b..a5f0aa4d904 100644 --- a/apps/web-tdesign/src/router/routes/modules/vben.ts +++ b/apps/web-tdesign/src/router/routes/modules/vben.ts @@ -89,6 +89,16 @@ const routes: RouteRecordRaw[] = [ order: 9999, }, }, + { + name: 'Profile', + path: '/profile', + component: () => import('#/views/_core/profile/index.vue'), + meta: { + icon: 'lucide:user', + hideInMenu: true, + title: $t('page.auth.profile'), + }, + }, ]; export default routes; diff --git a/apps/web-tdesign/src/views/_core/profile/base-setting.vue b/apps/web-tdesign/src/views/_core/profile/base-setting.vue new file mode 100644 index 00000000000..aa8a4c260d0 --- /dev/null +++ b/apps/web-tdesign/src/views/_core/profile/base-setting.vue @@ -0,0 +1,65 @@ + + diff --git a/apps/web-tdesign/src/views/_core/profile/index.vue b/apps/web-tdesign/src/views/_core/profile/index.vue new file mode 100644 index 00000000000..8740894e3a7 --- /dev/null +++ b/apps/web-tdesign/src/views/_core/profile/index.vue @@ -0,0 +1,49 @@ + + diff --git a/apps/web-tdesign/src/views/_core/profile/notification-setting.vue b/apps/web-tdesign/src/views/_core/profile/notification-setting.vue new file mode 100644 index 00000000000..324a4b393dc --- /dev/null +++ b/apps/web-tdesign/src/views/_core/profile/notification-setting.vue @@ -0,0 +1,31 @@ + + diff --git a/apps/web-tdesign/src/views/_core/profile/password-setting.vue b/apps/web-tdesign/src/views/_core/profile/password-setting.vue new file mode 100644 index 00000000000..7e1c0f08296 --- /dev/null +++ b/apps/web-tdesign/src/views/_core/profile/password-setting.vue @@ -0,0 +1,66 @@ + + diff --git a/apps/web-tdesign/src/views/_core/profile/security-setting.vue b/apps/web-tdesign/src/views/_core/profile/security-setting.vue new file mode 100644 index 00000000000..be30db58e43 --- /dev/null +++ b/apps/web-tdesign/src/views/_core/profile/security-setting.vue @@ -0,0 +1,43 @@ + + diff --git a/packages/effects/common-ui/src/ui/index.ts b/packages/effects/common-ui/src/ui/index.ts index fb99fdec125..8b1db558546 100644 --- a/packages/effects/common-ui/src/ui/index.ts +++ b/packages/effects/common-ui/src/ui/index.ts @@ -2,3 +2,4 @@ export * from './about'; export * from './authentication'; export * from './dashboard'; export * from './fallback'; +export * from './profile'; diff --git a/packages/effects/common-ui/src/ui/profile/base-setting.vue b/packages/effects/common-ui/src/ui/profile/base-setting.vue new file mode 100644 index 00000000000..1ef1c1a0498 --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/base-setting.vue @@ -0,0 +1,56 @@ + + diff --git a/packages/effects/common-ui/src/ui/profile/index.ts b/packages/effects/common-ui/src/ui/profile/index.ts new file mode 100644 index 00000000000..209a2e8131e --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/index.ts @@ -0,0 +1,6 @@ +export { default as ProfileBaseSetting } from './base-setting.vue'; +export { default as ProfileNotificationSetting } from './notification-setting.vue'; +export { default as ProfilePasswordSetting } from './password-setting.vue'; +export { default as Profile } from './profile.vue'; +export { default as ProfileSecuritySetting } from './security-setting.vue'; +export type * from './types'; diff --git a/packages/effects/common-ui/src/ui/profile/notification-setting.vue b/packages/effects/common-ui/src/ui/profile/notification-setting.vue new file mode 100644 index 00000000000..9a3e488201a --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/notification-setting.vue @@ -0,0 +1,53 @@ + + diff --git a/packages/effects/common-ui/src/ui/profile/password-setting.vue b/packages/effects/common-ui/src/ui/profile/password-setting.vue new file mode 100644 index 00000000000..1d90e086b96 --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/password-setting.vue @@ -0,0 +1,56 @@ + + diff --git a/packages/effects/common-ui/src/ui/profile/profile.vue b/packages/effects/common-ui/src/ui/profile/profile.vue new file mode 100644 index 00000000000..5ab39e61012 --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/profile.vue @@ -0,0 +1,62 @@ + + diff --git a/packages/effects/common-ui/src/ui/profile/security-setting.vue b/packages/effects/common-ui/src/ui/profile/security-setting.vue new file mode 100644 index 00000000000..9a3e488201a --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/security-setting.vue @@ -0,0 +1,53 @@ + + diff --git a/packages/effects/common-ui/src/ui/profile/types.ts b/packages/effects/common-ui/src/ui/profile/types.ts new file mode 100644 index 00000000000..e600bde8356 --- /dev/null +++ b/packages/effects/common-ui/src/ui/profile/types.ts @@ -0,0 +1,21 @@ +import type { BasicUserInfo } from '@vben/types'; + +export interface Props { + title?: string; + userInfo: BasicUserInfo | null; + tabs: { + label: string; + value: string; + }[]; +} + +export interface FormSchemaItem { + description: string; + fieldName: string; + label: string; + value: boolean; +} + +export interface SettingProps { + formSchema: FormSchemaItem[]; +} diff --git a/playground/src/layouts/basic.vue b/playground/src/layouts/basic.vue index 0578765106f..35f877ffa1a 100644 --- a/playground/src/layouts/basic.vue +++ b/playground/src/layouts/basic.vue @@ -2,6 +2,7 @@ import type { NotificationItem } from '@vben/layouts'; import { computed, onBeforeMount, ref, watch } from 'vue'; +import { useRouter } from 'vue-router'; import { AuthenticationLoginExpiredModal } from '@vben/common-ui'; import { VBEN_DOC_URL, VBEN_GITHUB_URL } from '@vben/constants'; @@ -65,6 +66,7 @@ const notifications = ref([ }, ]); +const router = useRouter(); const userStore = useUserStore(); const authStore = useAuthStore(); const accessStore = useAccessStore(); @@ -74,6 +76,13 @@ const showDot = computed(() => ); const menus = computed(() => [ + { + handler: () => { + router.push({ name: 'Profile' }); + }, + icon: 'lucide:user', + text: $t('page.auth.profile'), + }, { handler: () => { openWindow(VBEN_DOC_URL, { diff --git a/playground/src/locales/langs/en-US/page.json b/playground/src/locales/langs/en-US/page.json index 50f19dc44be..32e323c2177 100644 --- a/playground/src/locales/langs/en-US/page.json +++ b/playground/src/locales/langs/en-US/page.json @@ -6,7 +6,8 @@ "qrcodeLogin": "Qr Code Login", "forgetPassword": "Forget Password", "sendingCode": "SMS Code is sending...", - "codeSentTo": "Code has been sent to {0}" + "codeSentTo": "Code has been sent to {0}", + "profile": "Profile" }, "dashboard": { "title": "Dashboard", diff --git a/playground/src/locales/langs/zh-CN/page.json b/playground/src/locales/langs/zh-CN/page.json index 666db5b7b82..437068c9025 100644 --- a/playground/src/locales/langs/zh-CN/page.json +++ b/playground/src/locales/langs/zh-CN/page.json @@ -6,7 +6,8 @@ "qrcodeLogin": "二维码登录", "forgetPassword": "忘记密码", "sendingCode": "正在发送验证码", - "codeSentTo": "验证码已发送至{0}" + "codeSentTo": "验证码已发送至{0}", + "profile": "个人中心" }, "dashboard": { "title": "概览", diff --git a/playground/src/router/routes/modules/vben.ts b/playground/src/router/routes/modules/vben.ts index 1c177798077..6b621e9e039 100644 --- a/playground/src/router/routes/modules/vben.ts +++ b/playground/src/router/routes/modules/vben.ts @@ -101,6 +101,16 @@ const routes: RouteRecordRaw[] = [ name: 'VbenAbout', path: '/vben-admin/about', }, + { + name: 'Profile', + path: '/profile', + component: () => import('#/views/_core/profile/index.vue'), + meta: { + icon: 'lucide:user', + hideInMenu: true, + title: $t('page.auth.profile'), + }, + }, ]; export default routes; diff --git a/playground/src/views/_core/profile/base-setting.vue b/playground/src/views/_core/profile/base-setting.vue new file mode 100644 index 00000000000..aa8a4c260d0 --- /dev/null +++ b/playground/src/views/_core/profile/base-setting.vue @@ -0,0 +1,65 @@ + + diff --git a/playground/src/views/_core/profile/index.vue b/playground/src/views/_core/profile/index.vue new file mode 100644 index 00000000000..8740894e3a7 --- /dev/null +++ b/playground/src/views/_core/profile/index.vue @@ -0,0 +1,49 @@ + + diff --git a/playground/src/views/_core/profile/notification-setting.vue b/playground/src/views/_core/profile/notification-setting.vue new file mode 100644 index 00000000000..324a4b393dc --- /dev/null +++ b/playground/src/views/_core/profile/notification-setting.vue @@ -0,0 +1,31 @@ + + diff --git a/playground/src/views/_core/profile/password-setting.vue b/playground/src/views/_core/profile/password-setting.vue new file mode 100644 index 00000000000..b246bc37e38 --- /dev/null +++ b/playground/src/views/_core/profile/password-setting.vue @@ -0,0 +1,66 @@ + + diff --git a/playground/src/views/_core/profile/security-setting.vue b/playground/src/views/_core/profile/security-setting.vue new file mode 100644 index 00000000000..be30db58e43 --- /dev/null +++ b/playground/src/views/_core/profile/security-setting.vue @@ -0,0 +1,43 @@ + +