smart-admin-web 10.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +78 -0
- package/dist/App.vue.d.ts +3 -0
- package/dist/App.vue.js +54 -0
- package/dist/App.vue.js.map +1 -0
- package/dist/App2.vue.js +5 -0
- package/dist/App2.vue.js.map +1 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
- package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/dist/api/client.d.ts +29 -0
- package/dist/api/client.js +139 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/index.d.ts +672 -0
- package/dist/api/index.js +638 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/reauthGate.d.ts +16 -0
- package/dist/api/reauthGate.js +21 -0
- package/dist/api/reauthGate.js.map +1 -0
- package/dist/api/schema.d.ts +10230 -0
- package/dist/assets/icons/ph-subset.json.js +16 -0
- package/dist/assets/icons/ph-subset.json.js.map +1 -0
- package/dist/assets/oauth/dingtalk.svg.js +5 -0
- package/dist/assets/oauth/dingtalk.svg.js.map +1 -0
- package/dist/assets/oauth/gitee.svg.js +5 -0
- package/dist/assets/oauth/gitee.svg.js.map +1 -0
- package/dist/assets/oauth/github.svg.js +5 -0
- package/dist/assets/oauth/github.svg.js.map +1 -0
- package/dist/assets/oauth/qq.svg.js +5 -0
- package/dist/assets/oauth/qq.svg.js.map +1 -0
- package/dist/assets/oauth/wechat.svg.js +5 -0
- package/dist/assets/oauth/wechat.svg.js.map +1 -0
- package/dist/assets/oauth/wecom.svg.js +5 -0
- package/dist/assets/oauth/wecom.svg.js.map +1 -0
- package/dist/assets/svg/star.svg.js +6 -0
- package/dist/assets/svg/star.svg.js.map +1 -0
- package/dist/components/ApiSelect/index.vue.d.ts +22 -0
- package/dist/components/ApiSelect/index.vue.js +50 -0
- package/dist/components/ApiSelect/index.vue.js.map +1 -0
- package/dist/components/ApiSelect/index2.vue.js +5 -0
- package/dist/components/ApiSelect/index2.vue.js.map +1 -0
- package/dist/components/AppIcon.vue.d.ts +7 -0
- package/dist/components/AppIcon.vue.js +33 -0
- package/dist/components/AppIcon.vue.js.map +1 -0
- package/dist/components/AppIcon2.vue.js +5 -0
- package/dist/components/AppIcon2.vue.js.map +1 -0
- package/dist/components/Chart/BarChart.vue.d.ts +13 -0
- package/dist/components/Chart/BarChart.vue.js +27 -0
- package/dist/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/components/Chart/BarChart2.vue.js +5 -0
- package/dist/components/Chart/BarChart2.vue.js.map +1 -0
- package/dist/components/Chart/LineChart.vue.d.ts +15 -0
- package/dist/components/Chart/LineChart.vue.js +33 -0
- package/dist/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/components/Chart/LineChart2.vue.js +5 -0
- package/dist/components/Chart/LineChart2.vue.js.map +1 -0
- package/dist/components/Chart/PieChart.vue.d.ts +14 -0
- package/dist/components/Chart/PieChart.vue.js +31 -0
- package/dist/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/components/Chart/PieChart2.vue.js +5 -0
- package/dist/components/Chart/PieChart2.vue.js.map +1 -0
- package/dist/components/Chart/echarts.d.ts +57 -0
- package/dist/components/Chart/echarts.js +47 -0
- package/dist/components/Chart/echarts.js.map +1 -0
- package/dist/components/Chart/index.vue.d.ts +12 -0
- package/dist/components/Chart/index.vue.js +8 -0
- package/dist/components/Chart/index.vue.js.map +1 -0
- package/dist/components/Chart/index2.vue.js +27 -0
- package/dist/components/Chart/index2.vue.js.map +1 -0
- package/dist/components/CodeBlock/index.vue.d.ts +17 -0
- package/dist/components/CodeBlock/index.vue.js +8 -0
- package/dist/components/CodeBlock/index.vue.js.map +1 -0
- package/dist/components/CodeBlock/index2.vue.js +48 -0
- package/dist/components/CodeBlock/index2.vue.js.map +1 -0
- package/dist/components/CronEditor/index.vue.d.ts +15 -0
- package/dist/components/CronEditor/index.vue.js +8 -0
- package/dist/components/CronEditor/index.vue.js.map +1 -0
- package/dist/components/CronEditor/index2.vue.js +528 -0
- package/dist/components/CronEditor/index2.vue.js.map +1 -0
- package/dist/components/DetailPage/index.vue.d.ts +26 -0
- package/dist/components/DetailPage/index.vue.js +8 -0
- package/dist/components/DetailPage/index.vue.js.map +1 -0
- package/dist/components/DetailPage/index2.vue.js +51 -0
- package/dist/components/DetailPage/index2.vue.js.map +1 -0
- package/dist/components/DictCheckbox/index.vue.d.ts +6 -0
- package/dist/components/DictCheckbox/index.vue.js +43 -0
- package/dist/components/DictCheckbox/index.vue.js.map +1 -0
- package/dist/components/DictCheckbox/index2.vue.js +5 -0
- package/dist/components/DictCheckbox/index2.vue.js.map +1 -0
- package/dist/components/DictRadio/index.vue.d.ts +6 -0
- package/dist/components/DictRadio/index.vue.js +38 -0
- package/dist/components/DictRadio/index.vue.js.map +1 -0
- package/dist/components/DictRadio/index2.vue.js +5 -0
- package/dist/components/DictRadio/index2.vue.js.map +1 -0
- package/dist/components/DictSelect/index.vue.d.ts +6 -0
- package/dist/components/DictSelect/index.vue.js +37 -0
- package/dist/components/DictSelect/index.vue.js.map +1 -0
- package/dist/components/DictSelect/index2.vue.js +5 -0
- package/dist/components/DictSelect/index2.vue.js.map +1 -0
- package/dist/components/DictTag/index.vue.d.ts +10 -0
- package/dist/components/DictTag/index.vue.js +48 -0
- package/dist/components/DictTag/index.vue.js.map +1 -0
- package/dist/components/DictTag/index2.vue.js +5 -0
- package/dist/components/DictTag/index2.vue.js.map +1 -0
- package/dist/components/ErrorBoundary/index.vue.d.ts +13 -0
- package/dist/components/ErrorBoundary/index.vue.js +8 -0
- package/dist/components/ErrorBoundary/index.vue.js.map +1 -0
- package/dist/components/ErrorBoundary/index2.vue.js +61 -0
- package/dist/components/ErrorBoundary/index2.vue.js.map +1 -0
- package/dist/components/ExportColumnsModal/index.vue.d.ts +19 -0
- package/dist/components/ExportColumnsModal/index.vue.js +8 -0
- package/dist/components/ExportColumnsModal/index.vue.js.map +1 -0
- package/dist/components/ExportColumnsModal/index2.vue.js +121 -0
- package/dist/components/ExportColumnsModal/index2.vue.js.map +1 -0
- package/dist/components/FileUpload/index.vue.d.ts +24 -0
- package/dist/components/FileUpload/index.vue.js +42 -0
- package/dist/components/FileUpload/index.vue.js.map +1 -0
- package/dist/components/FileUpload/index2.vue.js +5 -0
- package/dist/components/FileUpload/index2.vue.js.map +1 -0
- package/dist/components/FormContainer/index.vue.d.ts +51 -0
- package/dist/components/FormContainer/index.vue.js +160 -0
- package/dist/components/FormContainer/index.vue.js.map +1 -0
- package/dist/components/FormContainer/index3.vue.js +6 -0
- package/dist/components/FormContainer/index3.vue.js.map +1 -0
- package/dist/components/IconPicker/index.vue.d.ts +18 -0
- package/dist/components/IconPicker/index.vue.js +43 -0
- package/dist/components/IconPicker/index.vue.js.map +1 -0
- package/dist/components/IconPicker/index2.vue.js +5 -0
- package/dist/components/IconPicker/index2.vue.js.map +1 -0
- package/dist/components/ImportWizard/index.vue.d.ts +39 -0
- package/dist/components/ImportWizard/index.vue.js +8 -0
- package/dist/components/ImportWizard/index.vue.js.map +1 -0
- package/dist/components/ImportWizard/index2.vue.js +634 -0
- package/dist/components/ImportWizard/index2.vue.js.map +1 -0
- package/dist/components/JsonEditor/index.vue.d.ts +12 -0
- package/dist/components/JsonEditor/index.vue.js +87 -0
- package/dist/components/JsonEditor/index.vue.js.map +1 -0
- package/dist/components/JsonEditor/index2.vue.js +5 -0
- package/dist/components/JsonEditor/index2.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/MarkdownView.vue.d.ts +6 -0
- package/dist/components/MarkdownEditor/MarkdownView.vue.js +33 -0
- package/dist/components/MarkdownEditor/MarkdownView.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/MarkdownView2.vue.js +5 -0
- package/dist/components/MarkdownEditor/MarkdownView2.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/index.vue.d.ts +10 -0
- package/dist/components/MarkdownEditor/index.vue.js +35 -0
- package/dist/components/MarkdownEditor/index.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/index2.vue.js +5 -0
- package/dist/components/MarkdownEditor/index2.vue.js.map +1 -0
- package/dist/components/MenuSearch.vue.d.ts +10 -0
- package/dist/components/MenuSearch.vue.js +8 -0
- package/dist/components/MenuSearch.vue.js.map +1 -0
- package/dist/components/MenuSearch2.vue.js +121 -0
- package/dist/components/MenuSearch2.vue.js.map +1 -0
- package/dist/components/OrgTreeSelect/index.vue.d.ts +6 -0
- package/dist/components/OrgTreeSelect/index.vue.js +42 -0
- package/dist/components/OrgTreeSelect/index.vue.js.map +1 -0
- package/dist/components/OrgTreeSelect/index2.vue.js +5 -0
- package/dist/components/OrgTreeSelect/index2.vue.js.map +1 -0
- package/dist/components/PasswordStrength/index.vue.d.ts +6 -0
- package/dist/components/PasswordStrength/index.vue.js +8 -0
- package/dist/components/PasswordStrength/index.vue.js.map +1 -0
- package/dist/components/PasswordStrength/index2.vue.js +91 -0
- package/dist/components/PasswordStrength/index2.vue.js.map +1 -0
- package/dist/components/ReauthModal.vue.d.ts +3 -0
- package/dist/components/ReauthModal.vue.js +8 -0
- package/dist/components/ReauthModal.vue.js.map +1 -0
- package/dist/components/ReauthModal2.vue.js +139 -0
- package/dist/components/ReauthModal2.vue.js.map +1 -0
- package/dist/components/RoleSelect/index.vue.d.ts +8 -0
- package/dist/components/RoleSelect/index.vue.js +26 -0
- package/dist/components/RoleSelect/index.vue.js.map +1 -0
- package/dist/components/RoleSelect/index2.vue.js +5 -0
- package/dist/components/RoleSelect/index2.vue.js.map +1 -0
- package/dist/components/SelectTable/index.vue.d.ts +76 -0
- package/dist/components/SelectTable/index.vue.js +8 -0
- package/dist/components/SelectTable/index.vue.js.map +1 -0
- package/dist/components/SelectTable/index2.vue.js +256 -0
- package/dist/components/SelectTable/index2.vue.js.map +1 -0
- package/dist/components/SmartLogo.vue.d.ts +8 -0
- package/dist/components/SmartLogo.vue.js +8 -0
- package/dist/components/SmartLogo.vue.js.map +1 -0
- package/dist/components/SmartLogo2.vue.js +74 -0
- package/dist/components/SmartLogo2.vue.js.map +1 -0
- package/dist/components/StatusSwitch/index.vue.d.ts +21 -0
- package/dist/components/StatusSwitch/index.vue.js +45 -0
- package/dist/components/StatusSwitch/index.vue.js.map +1 -0
- package/dist/components/StatusSwitch/index2.vue.js +5 -0
- package/dist/components/StatusSwitch/index2.vue.js.map +1 -0
- package/dist/components/TableZoomButton/index.vue.d.ts +13 -0
- package/dist/components/TableZoomButton/index.vue.js +42 -0
- package/dist/components/TableZoomButton/index.vue.js.map +1 -0
- package/dist/components/TableZoomButton/index2.vue.js +5 -0
- package/dist/components/TableZoomButton/index2.vue.js.map +1 -0
- package/dist/components/UserPicker/index.vue.d.ts +13 -0
- package/dist/components/UserPicker/index.vue.js +8 -0
- package/dist/components/UserPicker/index.vue.js.map +1 -0
- package/dist/components/UserPicker/index2.vue.js +214 -0
- package/dist/components/UserPicker/index2.vue.js.map +1 -0
- package/dist/components/UserSelect/index.vue.d.ts +9 -0
- package/dist/components/UserSelect/index.vue.js +32 -0
- package/dist/components/UserSelect/index.vue.js.map +1 -0
- package/dist/components/UserSelect/index2.vue.js +5 -0
- package/dist/components/UserSelect/index2.vue.js.map +1 -0
- package/dist/components/oauth/BrandIcon.vue.d.ts +12 -0
- package/dist/components/oauth/BrandIcon.vue.js +8 -0
- package/dist/components/oauth/BrandIcon.vue.js.map +1 -0
- package/dist/components/oauth/BrandIcon2.vue.js +95 -0
- package/dist/components/oauth/BrandIcon2.vue.js.map +1 -0
- package/dist/composables/authMenuRoute.d.ts +32 -0
- package/dist/composables/authMenuRoute.js +37 -0
- package/dist/composables/authMenuRoute.js.map +1 -0
- package/dist/composables/clearClientCache.d.ts +10 -0
- package/dist/composables/clearClientCache.js +17 -0
- package/dist/composables/clearClientCache.js.map +1 -0
- package/dist/composables/useAuthMenu.d.ts +3 -0
- package/dist/composables/useAuthMenu.js +61 -0
- package/dist/composables/useAuthMenu.js.map +1 -0
- package/dist/composables/useBatchDelete.d.ts +18 -0
- package/dist/composables/useBatchDelete.js +21 -0
- package/dist/composables/useBatchDelete.js.map +1 -0
- package/dist/composables/useCompactScreen.d.ts +12 -0
- package/dist/composables/useCompactScreen.js +17 -0
- package/dist/composables/useCompactScreen.js.map +1 -0
- package/dist/composables/useConfirm.d.ts +18 -0
- package/dist/composables/useConfirm.js +61 -0
- package/dist/composables/useConfirm.js.map +1 -0
- package/dist/composables/useFullscreenToggle.d.ts +11 -0
- package/dist/composables/useFullscreenToggle.js +64 -0
- package/dist/composables/useFullscreenToggle.js.map +1 -0
- package/dist/composables/useHeaderTools.d.ts +31 -0
- package/dist/composables/useHeaderTools.js +15 -0
- package/dist/composables/useHeaderTools.js.map +1 -0
- package/dist/composables/useLayoutMenu.d.ts +17 -0
- package/dist/composables/useLayoutMenu.js +93 -0
- package/dist/composables/useLayoutMenu.js.map +1 -0
- package/dist/composables/useMenuBadge.d.ts +11 -0
- package/dist/composables/useMenuBadge.js +17 -0
- package/dist/composables/useMenuBadge.js.map +1 -0
- package/dist/composables/useMenuFlat.d.ts +8 -0
- package/dist/composables/useMenuFlat.js +29 -0
- package/dist/composables/useMenuFlat.js.map +1 -0
- package/dist/composables/useModule.d.ts +16 -0
- package/dist/composables/useModule.js +44 -0
- package/dist/composables/useModule.js.map +1 -0
- package/dist/composables/useNoticeAction.d.ts +8 -0
- package/dist/composables/useNoticeAction.js +79 -0
- package/dist/composables/useNoticeAction.js.map +1 -0
- package/dist/composables/usePageTitle.d.ts +1 -0
- package/dist/composables/usePageTitle.js +20 -0
- package/dist/composables/usePageTitle.js.map +1 -0
- package/dist/composables/useRealtime.d.ts +31 -0
- package/dist/composables/useRealtime.js +59 -0
- package/dist/composables/useRealtime.js.map +1 -0
- package/dist/composables/useSite.d.ts +24 -0
- package/dist/composables/useSite.js +27 -0
- package/dist/composables/useSite.js.map +1 -0
- package/dist/composables/useTabTitle.d.ts +1 -0
- package/dist/composables/useTabTitle.js +10 -0
- package/dist/composables/useTabTitle.js.map +1 -0
- package/dist/composables/useTableRowSort.d.ts +20 -0
- package/dist/composables/useTableRowSort.js +59 -0
- package/dist/composables/useTableRowSort.js.map +1 -0
- package/dist/composables/useTableZoom.d.ts +5 -0
- package/dist/composables/useTableZoom.js +30 -0
- package/dist/composables/useTableZoom.js.map +1 -0
- package/dist/composables/useTheme.d.ts +13 -0
- package/dist/composables/useTheme.js +30 -0
- package/dist/composables/useTheme.js.map +1 -0
- package/dist/composables/useVisualViewportHeight.d.ts +3 -0
- package/dist/composables/useVisualViewportHeight.js +16 -0
- package/dist/composables/useVisualViewportHeight.js.map +1 -0
- package/dist/createSmartAdmin.d.ts +56 -0
- package/dist/createSmartAdmin.js +76 -0
- package/dist/createSmartAdmin.js.map +1 -0
- package/dist/directives/auth.d.ts +16 -0
- package/dist/directives/auth.js +19 -0
- package/dist/directives/auth.js.map +1 -0
- package/dist/env.d.ts +10 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.js +273 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/AppHeader.vue.d.ts +12 -0
- package/dist/layouts/AppHeader.vue.js +8 -0
- package/dist/layouts/AppHeader.vue.js.map +1 -0
- package/dist/layouts/AppHeader2.vue.js +352 -0
- package/dist/layouts/AppHeader2.vue.js.map +1 -0
- package/dist/layouts/LayoutModeCards.vue.d.ts +3 -0
- package/dist/layouts/LayoutModeCards.vue.js +8 -0
- package/dist/layouts/LayoutModeCards.vue.js.map +1 -0
- package/dist/layouts/LayoutModeCards2.vue.js +67 -0
- package/dist/layouts/LayoutModeCards2.vue.js.map +1 -0
- package/dist/layouts/NoticeBell.vue.d.ts +3 -0
- package/dist/layouts/NoticeBell.vue.js +8 -0
- package/dist/layouts/NoticeBell.vue.js.map +1 -0
- package/dist/layouts/NoticeBell2.vue.js +292 -0
- package/dist/layouts/NoticeBell2.vue.js.map +1 -0
- package/dist/layouts/PersonalLayout.vue.d.ts +3 -0
- package/dist/layouts/PersonalLayout.vue.js +8 -0
- package/dist/layouts/PersonalLayout.vue.js.map +1 -0
- package/dist/layouts/PersonalLayout2.vue.js +65 -0
- package/dist/layouts/PersonalLayout2.vue.js.map +1 -0
- package/dist/layouts/SettingRow.vue.d.ts +16 -0
- package/dist/layouts/SettingRow.vue.js +8 -0
- package/dist/layouts/SettingRow.vue.js.map +1 -0
- package/dist/layouts/SettingRow2.vue.js +23 -0
- package/dist/layouts/SettingRow2.vue.js.map +1 -0
- package/dist/layouts/SettingsDrawer.vue.d.ts +10 -0
- package/dist/layouts/SettingsDrawer.vue.js +8 -0
- package/dist/layouts/SettingsDrawer.vue.js.map +1 -0
- package/dist/layouts/SettingsDrawer2.vue.js +380 -0
- package/dist/layouts/SettingsDrawer2.vue.js.map +1 -0
- package/dist/layouts/TabsBar.vue.d.ts +3 -0
- package/dist/layouts/TabsBar.vue.js +8 -0
- package/dist/layouts/TabsBar.vue.js.map +1 -0
- package/dist/layouts/TabsBar2.vue.js +132 -0
- package/dist/layouts/TabsBar2.vue.js.map +1 -0
- package/dist/layouts/components/SideNav.vue.d.ts +15 -0
- package/dist/layouts/components/SideNav.vue.js +8 -0
- package/dist/layouts/components/SideNav.vue.js.map +1 -0
- package/dist/layouts/components/SideNav2.vue.js +49 -0
- package/dist/layouts/components/SideNav2.vue.js.map +1 -0
- package/dist/layouts/default.vue.d.ts +3 -0
- package/dist/layouts/default.vue.js +8 -0
- package/dist/layouts/default.vue.js.map +1 -0
- package/dist/layouts/default2.vue.js +213 -0
- package/dist/layouts/default2.vue.js.map +1 -0
- package/dist/lib/chunkReload.d.ts +9 -0
- package/dist/lib/chunkReload.js +24 -0
- package/dist/lib/chunkReload.js.map +1 -0
- package/dist/lib/icons.d.ts +2 -0
- package/dist/lib/icons.js +39 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/loadingBar.d.ts +7 -0
- package/dist/lib/loadingBar.js +18 -0
- package/dist/lib/loadingBar.js.map +1 -0
- package/dist/lib/markdown.d.ts +8 -0
- package/dist/lib/markdown.js +16 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/markdownLinks.d.ts +26 -0
- package/dist/lib/markdownLinks.js +21 -0
- package/dist/lib/markdownLinks.js.map +1 -0
- package/dist/lib/noticeActions.d.ts +13 -0
- package/dist/lib/noticeActions.js +16 -0
- package/dist/lib/noticeActions.js.map +1 -0
- package/dist/lib/runtime.d.ts +21 -0
- package/dist/lib/runtime.js +13 -0
- package/dist/lib/runtime.js.map +1 -0
- package/dist/locales/en-US.d.ts +1358 -0
- package/dist/locales/en-US.js +1362 -0
- package/dist/locales/en-US.js.map +1 -0
- package/dist/locales/index.d.ts +30 -0
- package/dist/locales/index.js +46 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/locales/menuTitle.d.ts +8 -0
- package/dist/locales/menuTitle.js +19 -0
- package/dist/locales/menuTitle.js.map +1 -0
- package/dist/locales/zh-CN.d.ts +1358 -0
- package/dist/locales/zh-CN.js +1368 -0
- package/dist/locales/zh-CN.js.map +1 -0
- package/dist/router/bootFailure.d.ts +8 -0
- package/dist/router/bootFailure.js +11 -0
- package/dist/router/bootFailure.js.map +1 -0
- package/dist/router/detailRoutes.d.ts +2 -0
- package/dist/router/detailRoutes.js +19 -0
- package/dist/router/detailRoutes.js.map +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.js +58 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/namedPage.d.ts +13 -0
- package/dist/router/namedPage.js +12 -0
- package/dist/router/namedPage.js.map +1 -0
- package/dist/router/routes.d.ts +2 -0
- package/dist/router/routes.js +121 -0
- package/dist/router/routes.js.map +1 -0
- package/dist/router/viewRegistry.d.ts +18 -0
- package/dist/router/viewRegistry.js +26 -0
- package/dist/router/viewRegistry.js.map +1 -0
- package/dist/stores/app.d.ts +83 -0
- package/dist/stores/app.js +82 -0
- package/dist/stores/app.js.map +1 -0
- package/dist/stores/auth.d.ts +106 -0
- package/dist/stores/auth.js +59 -0
- package/dist/stores/auth.js.map +1 -0
- package/dist/stores/dict.d.ts +11 -0
- package/dist/stores/dict.js +36 -0
- package/dist/stores/dict.js.map +1 -0
- package/dist/stores/tabs.d.ts +53 -0
- package/dist/stores/tabs.js +88 -0
- package/dist/stores/tabs.js.map +1 -0
- package/dist/stores/user.d.ts +64 -0
- package/dist/stores/user.js +64 -0
- package/dist/stores/user.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/theme/accents.d.ts +2 -0
- package/dist/theme/accents.js +5 -0
- package/dist/theme/accents.js.map +1 -0
- package/dist/theme/mix.d.ts +26 -0
- package/dist/theme/mix.js +43 -0
- package/dist/theme/mix.js.map +1 -0
- package/dist/theme/naive-theme.d.ts +9 -0
- package/dist/theme/naive-theme.js +89 -0
- package/dist/theme/naive-theme.js.map +1 -0
- package/dist/types/api.d.ts +714 -0
- package/dist/types/api.js +15 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/menu.d.ts +67 -0
- package/dist/types/menu.js +26 -0
- package/dist/types/menu.js.map +1 -0
- package/dist/utils/chunkUpload.d.ts +6 -0
- package/dist/utils/chunkUpload.js +35 -0
- package/dist/utils/chunkUpload.js.map +1 -0
- package/dist/utils/download.d.ts +8 -0
- package/dist/utils/download.js +8 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/error.d.ts +14 -0
- package/dist/utils/error.js +50 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/format.d.ts +20 -0
- package/dist/utils/format.js +19 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/importDup.d.ts +17 -0
- package/dist/utils/importDup.js +18 -0
- package/dist/utils/importDup.js.map +1 -0
- package/dist/utils/oauthBrand.d.ts +100 -0
- package/dist/utils/oauthBrand.js +97 -0
- package/dist/utils/oauthBrand.js.map +1 -0
- package/dist/utils/tree.d.ts +33 -0
- package/dist/utils/tree.js +47 -0
- package/dist/utils/tree.js.map +1 -0
- package/dist/utils/ua.d.ts +7 -0
- package/dist/utils/ua.js +33 -0
- package/dist/utils/ua.js.map +1 -0
- package/dist/utils/url.d.ts +16 -0
- package/dist/utils/url.js +13 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/views/dashboard/biz.vue.d.ts +3 -0
- package/dist/views/dashboard/biz.vue.js +8 -0
- package/dist/views/dashboard/biz.vue.js.map +1 -0
- package/dist/views/dashboard/biz2.vue.js +136 -0
- package/dist/views/dashboard/biz2.vue.js.map +1 -0
- package/dist/views/dashboard/workbench.vue.d.ts +3 -0
- package/dist/views/dashboard/workbench.vue.js +8 -0
- package/dist/views/dashboard/workbench.vue.js.map +1 -0
- package/dist/views/dashboard/workbench2.vue.js +195 -0
- package/dist/views/dashboard/workbench2.vue.js.map +1 -0
- package/dist/views/embed/iframe.vue.d.ts +3 -0
- package/dist/views/embed/iframe.vue.js +8 -0
- package/dist/views/embed/iframe.vue.js.map +1 -0
- package/dist/views/embed/iframe2.vue.js +21 -0
- package/dist/views/embed/iframe2.vue.js.map +1 -0
- package/dist/views/error/404.vue.d.ts +3 -0
- package/dist/views/error/404.vue.js +8 -0
- package/dist/views/error/404.vue.js.map +1 -0
- package/dist/views/error/4042.vue.js +31 -0
- package/dist/views/error/4042.vue.js.map +1 -0
- package/dist/views/error/BootError.vue.d.ts +3 -0
- package/dist/views/error/BootError.vue.js +8 -0
- package/dist/views/error/BootError.vue.js.map +1 -0
- package/dist/views/error/BootError2.vue.js +57 -0
- package/dist/views/error/BootError2.vue.js.map +1 -0
- package/dist/views/error/MissingRoute.vue.d.ts +3 -0
- package/dist/views/error/MissingRoute.vue.js +8 -0
- package/dist/views/error/MissingRoute.vue.js.map +1 -0
- package/dist/views/error/MissingRoute2.vue.js +23 -0
- package/dist/views/error/MissingRoute2.vue.js.map +1 -0
- package/dist/views/login/LoginForm.vue.d.ts +12 -0
- package/dist/views/login/LoginForm.vue.js +8 -0
- package/dist/views/login/LoginForm.vue.js.map +1 -0
- package/dist/views/login/LoginForm2.vue.js +642 -0
- package/dist/views/login/LoginForm2.vue.js.map +1 -0
- package/dist/views/login/index.vue.d.ts +3 -0
- package/dist/views/login/index.vue.js +8 -0
- package/dist/views/login/index.vue.js.map +1 -0
- package/dist/views/login/index2.vue.js +79 -0
- package/dist/views/login/index2.vue.js.map +1 -0
- package/dist/views/login/skins/AuroraGlass.vue.d.ts +3 -0
- package/dist/views/login/skins/AuroraGlass.vue.js +8 -0
- package/dist/views/login/skins/AuroraGlass.vue.js.map +1 -0
- package/dist/views/login/skins/AuroraGlass2.vue.js +80 -0
- package/dist/views/login/skins/AuroraGlass2.vue.js.map +1 -0
- package/dist/views/login/skins/SplitPanel.vue.d.ts +3 -0
- package/dist/views/login/skins/SplitPanel.vue.js +8 -0
- package/dist/views/login/skins/SplitPanel.vue.js.map +1 -0
- package/dist/views/login/skins/SplitPanel2.vue.js +85 -0
- package/dist/views/login/skins/SplitPanel2.vue.js.map +1 -0
- package/dist/views/login/skins/Spotlight.vue.d.ts +3 -0
- package/dist/views/login/skins/Spotlight.vue.js +8 -0
- package/dist/views/login/skins/Spotlight.vue.js.map +1 -0
- package/dist/views/login/skins/Spotlight2.vue.js +36 -0
- package/dist/views/login/skins/Spotlight2.vue.js.map +1 -0
- package/dist/views/login/skins.d.ts +8 -0
- package/dist/views/login/skins.js +13 -0
- package/dist/views/login/skins.js.map +1 -0
- package/dist/views/mfa/bindComplete.d.ts +7 -0
- package/dist/views/mfa/bindComplete.js +8 -0
- package/dist/views/mfa/bindComplete.js.map +1 -0
- package/dist/views/mfa/index.vue.d.ts +3 -0
- package/dist/views/mfa/index.vue.js +8 -0
- package/dist/views/mfa/index.vue.js.map +1 -0
- package/dist/views/mfa/index2.vue.js +425 -0
- package/dist/views/mfa/index2.vue.js.map +1 -0
- package/dist/views/module/index.vue.d.ts +3 -0
- package/dist/views/module/index.vue.js +8 -0
- package/dist/views/module/index.vue.js.map +1 -0
- package/dist/views/module/index2.vue.js +142 -0
- package/dist/views/module/index2.vue.js.map +1 -0
- package/dist/views/oauth/callback.vue.d.ts +3 -0
- package/dist/views/oauth/callback.vue.js +8 -0
- package/dist/views/oauth/callback.vue.js.map +1 -0
- package/dist/views/oauth/callback2.vue.js +86 -0
- package/dist/views/oauth/callback2.vue.js.map +1 -0
- package/dist/views/personal/bindings.vue.d.ts +3 -0
- package/dist/views/personal/bindings.vue.js +8 -0
- package/dist/views/personal/bindings.vue.js.map +1 -0
- package/dist/views/personal/bindings2.vue.js +220 -0
- package/dist/views/personal/bindings2.vue.js.map +1 -0
- package/dist/views/personal/notice.vue.d.ts +3 -0
- package/dist/views/personal/notice.vue.js +5 -0
- package/dist/views/personal/notice.vue.js.map +1 -0
- package/dist/views/personal/notice2.vue.js +163 -0
- package/dist/views/personal/notice2.vue.js.map +1 -0
- package/dist/views/personal/password.vue.d.ts +3 -0
- package/dist/views/personal/password.vue.js +5 -0
- package/dist/views/personal/password.vue.js.map +1 -0
- package/dist/views/personal/password2.vue.js +147 -0
- package/dist/views/personal/password2.vue.js.map +1 -0
- package/dist/views/personal/profile.vue.d.ts +3 -0
- package/dist/views/personal/profile.vue.js +8 -0
- package/dist/views/personal/profile.vue.js.map +1 -0
- package/dist/views/personal/profile2.vue.js +264 -0
- package/dist/views/personal/profile2.vue.js.map +1 -0
- package/dist/views/personal/security.vue.d.ts +3 -0
- package/dist/views/personal/security.vue.js +8 -0
- package/dist/views/personal/security.vue.js.map +1 -0
- package/dist/views/personal/security2.vue.js +82 -0
- package/dist/views/personal/security2.vue.js.map +1 -0
- package/dist/views/personal/sessions.vue.d.ts +3 -0
- package/dist/views/personal/sessions.vue.js +8 -0
- package/dist/views/personal/sessions.vue.js.map +1 -0
- package/dist/views/personal/sessions2.vue.js +101 -0
- package/dist/views/personal/sessions2.vue.js.map +1 -0
- package/dist/views/system/cache/index.vue.d.ts +3 -0
- package/dist/views/system/cache/index.vue.js +8 -0
- package/dist/views/system/cache/index.vue.js.map +1 -0
- package/dist/views/system/cache/index2.vue.js +113 -0
- package/dist/views/system/cache/index2.vue.js.map +1 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.d.ts +16 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.js +5 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -0
- package/dist/views/system/config/components/ConfigFormModal2.vue.js +177 -0
- package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -0
- package/dist/views/system/config/components/ExternalAuthConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js +8 -0
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +218 -0
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/GroupExtraConfig.vue.d.ts +9 -0
- package/dist/views/system/config/components/GroupExtraConfig.vue.js +8 -0
- package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js +108 -0
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/HighSensConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/HighSensConfig.vue.js +5 -0
- package/dist/views/system/config/components/HighSensConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/HighSensConfig2.vue.js +134 -0
- package/dist/views/system/config/components/HighSensConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/JobConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/JobConfig.vue.js +5 -0
- package/dist/views/system/config/components/JobConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/JobConfig2.vue.js +116 -0
- package/dist/views/system/config/components/JobConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/OtherConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/OtherConfig.vue.js +5 -0
- package/dist/views/system/config/components/OtherConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/OtherConfig2.vue.js +121 -0
- package/dist/views/system/config/components/OtherConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/SecurityConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/SecurityConfig.vue.js +8 -0
- package/dist/views/system/config/components/SecurityConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/SecurityConfig2.vue.js +456 -0
- package/dist/views/system/config/components/SecurityConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/SysBaseConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/SysBaseConfig.vue.js +5 -0
- package/dist/views/system/config/components/SysBaseConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/SysBaseConfig2.vue.js +107 -0
- package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/UploadConfig.vue.js +5 -0
- package/dist/views/system/config/components/UploadConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadConfig2.vue.js +135 -0
- package/dist/views/system/config/components/UploadConfig2.vue.js.map +1 -0
- package/dist/views/system/config/groups.d.ts +9 -0
- package/dist/views/system/config/groups.js +18 -0
- package/dist/views/system/config/groups.js.map +1 -0
- package/dist/views/system/config/index.vue.d.ts +3 -0
- package/dist/views/system/config/index.vue.js +5 -0
- package/dist/views/system/config/index.vue.js.map +1 -0
- package/dist/views/system/config/index2.vue.js +127 -0
- package/dist/views/system/config/index2.vue.js.map +1 -0
- package/dist/views/system/dict/index.vue.d.ts +3 -0
- package/dist/views/system/dict/index.vue.js +8 -0
- package/dist/views/system/dict/index.vue.js.map +1 -0
- package/dist/views/system/dict/index2.vue.js +560 -0
- package/dist/views/system/dict/index2.vue.js.map +1 -0
- package/dist/views/system/file/index.vue.d.ts +3 -0
- package/dist/views/system/file/index.vue.js +5 -0
- package/dist/views/system/file/index.vue.js.map +1 -0
- package/dist/views/system/file/index2.vue.js +186 -0
- package/dist/views/system/file/index2.vue.js.map +1 -0
- package/dist/views/system/job/index.vue.d.ts +3 -0
- package/dist/views/system/job/index.vue.js +8 -0
- package/dist/views/system/job/index.vue.js.map +1 -0
- package/dist/views/system/job/index2.vue.js +1167 -0
- package/dist/views/system/job/index2.vue.js.map +1 -0
- package/dist/views/system/job-log/index.vue.d.ts +3 -0
- package/dist/views/system/job-log/index.vue.js +8 -0
- package/dist/views/system/job-log/index.vue.js.map +1 -0
- package/dist/views/system/job-log/index2.vue.js +411 -0
- package/dist/views/system/job-log/index2.vue.js.map +1 -0
- package/dist/views/system/job-monitor/index.vue.d.ts +3 -0
- package/dist/views/system/job-monitor/index.vue.js +8 -0
- package/dist/views/system/job-monitor/index.vue.js.map +1 -0
- package/dist/views/system/job-monitor/index2.vue.js +253 -0
- package/dist/views/system/job-monitor/index2.vue.js.map +1 -0
- package/dist/views/system/log/exception/index.vue.d.ts +3 -0
- package/dist/views/system/log/exception/index.vue.js +8 -0
- package/dist/views/system/log/exception/index.vue.js.map +1 -0
- package/dist/views/system/log/exception/index2.vue.js +216 -0
- package/dist/views/system/log/exception/index2.vue.js.map +1 -0
- package/dist/views/system/log/login/index.vue.d.ts +3 -0
- package/dist/views/system/log/login/index.vue.js +5 -0
- package/dist/views/system/log/login/index.vue.js.map +1 -0
- package/dist/views/system/log/login/index2.vue.js +113 -0
- package/dist/views/system/log/login/index2.vue.js.map +1 -0
- package/dist/views/system/log/op/index.vue.d.ts +3 -0
- package/dist/views/system/log/op/index.vue.js +8 -0
- package/dist/views/system/log/op/index.vue.js.map +1 -0
- package/dist/views/system/log/op/index2.vue.js +332 -0
- package/dist/views/system/log/op/index2.vue.js.map +1 -0
- package/dist/views/system/menu/components/ButtonManager.vue.d.ts +21 -0
- package/dist/views/system/menu/components/ButtonManager.vue.js +8 -0
- package/dist/views/system/menu/components/ButtonManager.vue.js.map +1 -0
- package/dist/views/system/menu/components/ButtonManager2.vue.js +498 -0
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -0
- package/dist/views/system/menu/components/MenuFormModal.vue.d.ts +22 -0
- package/dist/views/system/menu/components/MenuFormModal.vue.js +8 -0
- package/dist/views/system/menu/components/MenuFormModal.vue.js.map +1 -0
- package/dist/views/system/menu/components/MenuFormModal2.vue.js +259 -0
- package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -0
- package/dist/views/system/menu/index.vue.d.ts +3 -0
- package/dist/views/system/menu/index.vue.js +8 -0
- package/dist/views/system/menu/index.vue.js.map +1 -0
- package/dist/views/system/menu/index2.vue.js +391 -0
- package/dist/views/system/menu/index2.vue.js.map +1 -0
- package/dist/views/system/module/index.vue.d.ts +3 -0
- package/dist/views/system/module/index.vue.js +8 -0
- package/dist/views/system/module/index.vue.js.map +1 -0
- package/dist/views/system/module/index2.vue.js +344 -0
- package/dist/views/system/module/index2.vue.js.map +1 -0
- package/dist/views/system/monitor/index.vue.d.ts +3 -0
- package/dist/views/system/monitor/index.vue.js +8 -0
- package/dist/views/system/monitor/index.vue.js.map +1 -0
- package/dist/views/system/monitor/index2.vue.js +184 -0
- package/dist/views/system/monitor/index2.vue.js.map +1 -0
- package/dist/views/system/notice/index.vue.d.ts +3 -0
- package/dist/views/system/notice/index.vue.js +8 -0
- package/dist/views/system/notice/index.vue.js.map +1 -0
- package/dist/views/system/notice/index2.vue.js +401 -0
- package/dist/views/system/notice/index2.vue.js.map +1 -0
- package/dist/views/system/org/index.vue.d.ts +3 -0
- package/dist/views/system/org/index.vue.js +8 -0
- package/dist/views/system/org/index.vue.js.map +1 -0
- package/dist/views/system/org/index2.vue.js +397 -0
- package/dist/views/system/org/index2.vue.js.map +1 -0
- package/dist/views/system/position/index.vue.d.ts +3 -0
- package/dist/views/system/position/index.vue.js +5 -0
- package/dist/views/system/position/index.vue.js.map +1 -0
- package/dist/views/system/position/index2.vue.js +211 -0
- package/dist/views/system/position/index2.vue.js.map +1 -0
- package/dist/views/system/recycle/index.vue.d.ts +3 -0
- package/dist/views/system/recycle/index.vue.js +8 -0
- package/dist/views/system/recycle/index.vue.js.map +1 -0
- package/dist/views/system/recycle/index2.vue.js +121 -0
- package/dist/views/system/recycle/index2.vue.js.map +1 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +18 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.js +8 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.js.map +1 -0
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +212 -0
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -0
- package/dist/views/system/role/components/grantMenuGroups.d.ts +31 -0
- package/dist/views/system/role/components/grantMenuGroups.js +76 -0
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -0
- package/dist/views/system/role/index.vue.d.ts +3 -0
- package/dist/views/system/role/index.vue.js +5 -0
- package/dist/views/system/role/index.vue.js.map +1 -0
- package/dist/views/system/role/index2.vue.js +476 -0
- package/dist/views/system/role/index2.vue.js.map +1 -0
- package/dist/views/system/session/index.vue.d.ts +3 -0
- package/dist/views/system/session/index.vue.js +5 -0
- package/dist/views/system/session/index.vue.js.map +1 -0
- package/dist/views/system/session/index2.vue.js +80 -0
- package/dist/views/system/session/index2.vue.js.map +1 -0
- package/dist/views/system/user/components/ResetPasswordModal.vue.d.ts +10 -0
- package/dist/views/system/user/components/ResetPasswordModal.vue.js +8 -0
- package/dist/views/system/user/components/ResetPasswordModal.vue.js.map +1 -0
- package/dist/views/system/user/components/ResetPasswordModal2.vue.js +111 -0
- package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserFormModal.vue.d.ts +30 -0
- package/dist/views/system/user/components/UserFormModal.vue.js +8 -0
- package/dist/views/system/user/components/UserFormModal.vue.js.map +1 -0
- package/dist/views/system/user/components/UserFormModal2.vue.js +415 -0
- package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -0
- package/dist/views/system/user/index.vue.d.ts +3 -0
- package/dist/views/system/user/index.vue.js +8 -0
- package/dist/views/system/user/index.vue.js.map +1 -0
- package/dist/views/system/user/index2.vue.js +427 -0
- package/dist/views/system/user/index2.vue.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { defineComponent as N, reactive as x, ref as P, openBlock as g, createBlock as h, unref as e, withCtx as t, createTextVNode as v, toDisplayString as y, createCommentVNode as R, createVNode as a, withKeys as q } from "vue";
|
|
2
|
+
import { useRouter as C } from "vue-router";
|
|
3
|
+
import { useMessage as A, NCard as I, NAlert as S, NForm as U, NFormItem as u, NInput as w, NButton as V } from "naive-ui";
|
|
4
|
+
import { useI18n as B } from "vue-i18n";
|
|
5
|
+
import E from "../../components/PasswordStrength/index.vue.js";
|
|
6
|
+
import { personalApi as F, authApi as K } from "../../api/index.js";
|
|
7
|
+
import { beginVoluntaryLogout as D } from "../../composables/useRealtime.js";
|
|
8
|
+
import { useUserStore as H } from "../../stores/user.js";
|
|
9
|
+
import { useAuthStore as L } from "../../stores/auth.js";
|
|
10
|
+
import { resetRouter as M } from "../../router/index.js";
|
|
11
|
+
import { translateError as T } from "../../utils/error.js";
|
|
12
|
+
const re = /* @__PURE__ */ N({
|
|
13
|
+
__name: "password",
|
|
14
|
+
setup(j) {
|
|
15
|
+
const { t: r } = B(), i = A(), b = C(), m = H(), _ = L(), o = x({ oldPassword: "", newPassword: "", confirmPassword: "" }), d = P(!1), p = P(null), k = {
|
|
16
|
+
oldPassword: {
|
|
17
|
+
required: !0,
|
|
18
|
+
message: () => r("changePassword.oldRequired"),
|
|
19
|
+
trigger: ["input", "blur"]
|
|
20
|
+
},
|
|
21
|
+
newPassword: {
|
|
22
|
+
required: !0,
|
|
23
|
+
message: () => r("changePassword.newRequired"),
|
|
24
|
+
trigger: ["input", "blur"]
|
|
25
|
+
},
|
|
26
|
+
confirmPassword: {
|
|
27
|
+
required: !0,
|
|
28
|
+
// 两次不一致必须自己写 validator:naive 没有内置的"等于另一字段"规则
|
|
29
|
+
validator: (l, s) => s ? s !== o.newPassword ? new Error(r("changePassword.mismatch")) : !0 : new Error(r("changePassword.confirmRequired")),
|
|
30
|
+
trigger: ["input", "blur"]
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
async function c() {
|
|
34
|
+
var l;
|
|
35
|
+
await ((l = p.value) == null ? void 0 : l.validate()), d.value = !0;
|
|
36
|
+
try {
|
|
37
|
+
await F.updatePassword({
|
|
38
|
+
oldPassword: o.oldPassword,
|
|
39
|
+
newPassword: o.newPassword
|
|
40
|
+
}), i.success(r("changePassword.changed")), await D();
|
|
41
|
+
try {
|
|
42
|
+
await K.logout();
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
45
|
+
M(), _.reset(), m.clear(), b.replace("/login");
|
|
46
|
+
} catch (s) {
|
|
47
|
+
i.error(T(s));
|
|
48
|
+
} finally {
|
|
49
|
+
d.value = !1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return (l, s) => (g(), h(e(I), {
|
|
53
|
+
bordered: !0,
|
|
54
|
+
title: e(r)("changePassword.title"),
|
|
55
|
+
style: { "max-width": "460px" }
|
|
56
|
+
}, {
|
|
57
|
+
default: t(() => {
|
|
58
|
+
var f;
|
|
59
|
+
return [
|
|
60
|
+
(f = e(m).userInfo) != null && f.mustChangePassword ? (g(), h(e(S), {
|
|
61
|
+
key: 0,
|
|
62
|
+
type: "warning",
|
|
63
|
+
style: { "margin-bottom": "16px" }
|
|
64
|
+
}, {
|
|
65
|
+
default: t(() => [
|
|
66
|
+
v(y(e(r)("changePassword.forcedHint")), 1)
|
|
67
|
+
]),
|
|
68
|
+
_: 1
|
|
69
|
+
})) : R("", !0),
|
|
70
|
+
a(e(U), {
|
|
71
|
+
ref_key: "formRef",
|
|
72
|
+
ref: p,
|
|
73
|
+
model: o,
|
|
74
|
+
rules: k,
|
|
75
|
+
"label-placement": "top"
|
|
76
|
+
}, {
|
|
77
|
+
default: t(() => [
|
|
78
|
+
a(e(u), {
|
|
79
|
+
label: e(r)("changePassword.oldPassword"),
|
|
80
|
+
path: "oldPassword"
|
|
81
|
+
}, {
|
|
82
|
+
default: t(() => [
|
|
83
|
+
a(e(w), {
|
|
84
|
+
value: o.oldPassword,
|
|
85
|
+
"onUpdate:value": s[0] || (s[0] = (n) => o.oldPassword = n),
|
|
86
|
+
type: "password",
|
|
87
|
+
"show-password-on": "click"
|
|
88
|
+
}, null, 8, ["value"])
|
|
89
|
+
]),
|
|
90
|
+
_: 1
|
|
91
|
+
}, 8, ["label"]),
|
|
92
|
+
a(e(u), {
|
|
93
|
+
label: e(r)("changePassword.newPassword"),
|
|
94
|
+
path: "newPassword"
|
|
95
|
+
}, {
|
|
96
|
+
default: t(() => [
|
|
97
|
+
a(e(w), {
|
|
98
|
+
value: o.newPassword,
|
|
99
|
+
"onUpdate:value": s[1] || (s[1] = (n) => o.newPassword = n),
|
|
100
|
+
type: "password",
|
|
101
|
+
"show-password-on": "click"
|
|
102
|
+
}, null, 8, ["value"])
|
|
103
|
+
]),
|
|
104
|
+
_: 1
|
|
105
|
+
}, 8, ["label"]),
|
|
106
|
+
a(E, {
|
|
107
|
+
value: o.newPassword
|
|
108
|
+
}, null, 8, ["value"]),
|
|
109
|
+
a(e(u), {
|
|
110
|
+
label: e(r)("changePassword.confirmPassword"),
|
|
111
|
+
path: "confirmPassword"
|
|
112
|
+
}, {
|
|
113
|
+
default: t(() => [
|
|
114
|
+
a(e(w), {
|
|
115
|
+
value: o.confirmPassword,
|
|
116
|
+
"onUpdate:value": s[2] || (s[2] = (n) => o.confirmPassword = n),
|
|
117
|
+
type: "password",
|
|
118
|
+
"show-password-on": "click",
|
|
119
|
+
onKeyup: q(c, ["enter"])
|
|
120
|
+
}, null, 8, ["value"])
|
|
121
|
+
]),
|
|
122
|
+
_: 1
|
|
123
|
+
}, 8, ["label"]),
|
|
124
|
+
a(e(V), {
|
|
125
|
+
type: "primary",
|
|
126
|
+
block: "",
|
|
127
|
+
loading: d.value,
|
|
128
|
+
onClick: c
|
|
129
|
+
}, {
|
|
130
|
+
default: t(() => [
|
|
131
|
+
v(y(e(r)("common.submit")), 1)
|
|
132
|
+
]),
|
|
133
|
+
_: 1
|
|
134
|
+
}, 8, ["loading"])
|
|
135
|
+
]),
|
|
136
|
+
_: 1
|
|
137
|
+
}, 8, ["model"])
|
|
138
|
+
];
|
|
139
|
+
}),
|
|
140
|
+
_: 1
|
|
141
|
+
}, 8, ["title"]));
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
export {
|
|
145
|
+
re as default
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=password2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password2.vue.js","sources":["../../../src/views/personal/password.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport {\n NCard,\n NForm,\n NFormItem,\n NInput,\n NButton,\n NAlert,\n useMessage,\n type FormInst,\n type FormRules,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport PasswordStrength from '#/components/PasswordStrength/index.vue'\nimport { personalApi, authApi } from '#/api'\nimport { beginVoluntaryLogout } from '#/composables/useRealtime'\nimport { useUserStore } from '#/stores/user'\nimport { useAuthStore } from '#/stores/auth'\nimport { resetRouter } from '#/router'\nimport { translateError } from '#/utils/error'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst router = useRouter()\nconst user = useUserStore()\nconst auth = useAuthStore()\n\nconst model = reactive({ oldPassword: '', newPassword: '', confirmPassword: '' })\nconst saving = ref(false)\nconst formRef = ref<FormInst | null>(null)\n\n// 校验落在表单项上(全站一致),不用 toast —— toast 飘在角落、不指向出错的那一栏,且会被后续消息挤掉。\n// ponytail: 密码复杂度不进 rules。PasswordStrength 已在输入时逐条实时显示策略清单,后端也强制(弱口令返 passwordTooWeak),\n// 再抄一份到 rules 就是第三处真源,策略一改三处都要跟。\nconst rules: FormRules = {\n oldPassword: {\n required: true,\n message: () => t('changePassword.oldRequired'),\n trigger: ['input', 'blur'],\n },\n newPassword: {\n required: true,\n message: () => t('changePassword.newRequired'),\n trigger: ['input', 'blur'],\n },\n confirmPassword: {\n required: true,\n // 两次不一致必须自己写 validator:naive 没有内置的\"等于另一字段\"规则\n validator: (_rule, value: string) =>\n !value\n ? new Error(t('changePassword.confirmRequired'))\n : value !== model.newPassword\n ? new Error(t('changePassword.mismatch'))\n : true,\n trigger: ['input', 'blur'],\n },\n}\n\nasync function submit() {\n // validate() 必须留在 try 之外:校验失败是 reject,落进下面的 catch 会被 translateError 翻成一条\n // 不知所云的错误 toast —— 而红字已经打在表单项上了(参照 system/user/index.vue 的 save())。\n await formRef.value?.validate()\n\n saving.value = true\n try {\n await personalApi.updatePassword({\n oldPassword: model.oldPassword,\n newPassword: model.newPassword,\n })\n message.success(t('changePassword.changed'))\n // 改密后强制重新登录(自愿路径:先断实时,避免 force-logout 误弹「被强制下线」)\n await beginVoluntaryLogout()\n try {\n await authApi.logout()\n } catch {\n /* 尽力而为 */\n }\n resetRouter()\n auth.reset()\n user.clear()\n router.replace('/login')\n } catch (e) {\n message.error(translateError(e))\n } finally {\n saving.value = false\n }\n}\n</script>\n\n<template>\n <n-card :bordered=\"true\" :title=\"t('changePassword.title')\" style=\"max-width: 460px\">\n <n-alert v-if=\"user.userInfo?.mustChangePassword\" type=\"warning\" style=\"margin-bottom: 16px\">\n {{ t('changePassword.forcedHint') }}\n </n-alert>\n <n-form ref=\"formRef\" :model=\"model\" :rules=\"rules\" label-placement=\"top\">\n <n-form-item :label=\"t('changePassword.oldPassword')\" path=\"oldPassword\">\n <n-input v-model:value=\"model.oldPassword\" type=\"password\" show-password-on=\"click\" />\n </n-form-item>\n <n-form-item :label=\"t('changePassword.newPassword')\" path=\"newPassword\">\n <n-input v-model:value=\"model.newPassword\" type=\"password\" show-password-on=\"click\" />\n </n-form-item>\n <PasswordStrength :value=\"model.newPassword\" />\n <n-form-item :label=\"t('changePassword.confirmPassword')\" path=\"confirmPassword\">\n <n-input\n v-model:value=\"model.confirmPassword\"\n type=\"password\"\n show-password-on=\"click\"\n @keyup.enter=\"submit\"\n />\n </n-form-item>\n <!-- 不用 :disabled 做第二重必填:必填已经是 rules 的事,禁用按钮反而让人不知道缺什么 -->\n <n-button type=\"primary\" block :loading=\"saving\" @click=\"submit\">\n {{ t('common.submit') }}\n </n-button>\n </n-form>\n </n-card>\n</template>\n"],"names":["t","useI18n","message","useMessage","router","useRouter","user","useUserStore","auth","useAuthStore","model","reactive","saving","ref","formRef","rules","_rule","value","submit","_a","personalApi","beginVoluntaryLogout","authApi","resetRouter","e","translateError","_createBlock","_unref","NCard","NAlert","_createVNode","NForm","NFormItem","NInput","_cache","$event","PasswordStrength","NButton"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { defineComponent as x, ref as s, reactive as C, onMounted as $, openBlock as k, createBlock as B, unref as e, withCtx as t, createVNode as l, createElementVNode as V, createElementBlock as z, Fragment as A, createTextVNode as m, toDisplayString as f, createCommentVNode as E } from "vue";
|
|
2
|
+
import { useMessage as F, NCard as S, NSpin as M, NForm as R, NFormItem as u, NAvatar as q, NButton as y, NInput as d } from "naive-ui";
|
|
3
|
+
import { useI18n as D } from "vue-i18n";
|
|
4
|
+
import { personalApi as N } from "../../api/index.js";
|
|
5
|
+
import { useUserStore as L } from "../../stores/user.js";
|
|
6
|
+
import { translateError as U } from "../../utils/error.js";
|
|
7
|
+
import P from "../../components/DictSelect/index.vue.js";
|
|
8
|
+
import T from "../../components/FileUpload/index.vue.js";
|
|
9
|
+
import j from "../../components/AppIcon.vue.js";
|
|
10
|
+
const G = { class: "avatar-field" }, ae = /* @__PURE__ */ x({
|
|
11
|
+
__name: "profile",
|
|
12
|
+
setup(H) {
|
|
13
|
+
const { t: r } = D(), v = F(), c = L(), b = s(!0), g = s(!1), p = s(!1), h = s(null), a = C({
|
|
14
|
+
account: "",
|
|
15
|
+
name: "",
|
|
16
|
+
nickname: "",
|
|
17
|
+
phone: "",
|
|
18
|
+
email: "",
|
|
19
|
+
gender: null,
|
|
20
|
+
avatar: null,
|
|
21
|
+
org: "",
|
|
22
|
+
position: ""
|
|
23
|
+
}), w = {
|
|
24
|
+
phone: {
|
|
25
|
+
validator: (n, o) => !o || /^1[3-9]\d{9}$/.test(o),
|
|
26
|
+
message: () => r("profile.phoneInvalid"),
|
|
27
|
+
trigger: ["input", "blur"]
|
|
28
|
+
},
|
|
29
|
+
email: {
|
|
30
|
+
validator: (n, o) => !o || /^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(o),
|
|
31
|
+
message: () => r("profile.emailInvalid"),
|
|
32
|
+
trigger: ["input", "blur"]
|
|
33
|
+
}
|
|
34
|
+
}, _ = (n) => n.trim().charAt(0).toUpperCase() || "?";
|
|
35
|
+
$(async () => {
|
|
36
|
+
try {
|
|
37
|
+
const n = await N.profile();
|
|
38
|
+
a.account = n.account, a.name = n.name, a.nickname = n.nickname ?? "", a.phone = n.phone ?? "", a.email = n.email ?? "", a.gender = n.gender ?? null, a.avatar = n.avatar ?? null, a.org = n.orgName ?? "—", a.position = n.positionName ?? "—";
|
|
39
|
+
} catch (n) {
|
|
40
|
+
v.error(U(n));
|
|
41
|
+
} finally {
|
|
42
|
+
b.value = !1;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
async function I() {
|
|
46
|
+
var n;
|
|
47
|
+
try {
|
|
48
|
+
await ((n = h.value) == null ? void 0 : n.validate());
|
|
49
|
+
} catch {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
g.value = !0;
|
|
53
|
+
try {
|
|
54
|
+
await N.updateProfile({
|
|
55
|
+
name: a.name,
|
|
56
|
+
nickname: a.nickname || null,
|
|
57
|
+
phone: a.phone || null,
|
|
58
|
+
email: a.email || null,
|
|
59
|
+
gender: a.gender,
|
|
60
|
+
avatar: a.avatar
|
|
61
|
+
}), c.userInfo && (c.userInfo.name = a.name, c.userInfo.avatar = a.avatar), v.success(r("profile.saved"));
|
|
62
|
+
} catch (o) {
|
|
63
|
+
v.error(U(o));
|
|
64
|
+
} finally {
|
|
65
|
+
g.value = !1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return (n, o) => (k(), B(e(S), {
|
|
69
|
+
bordered: !0,
|
|
70
|
+
title: e(r)("profile.title"),
|
|
71
|
+
style: { "max-width": "560px" }
|
|
72
|
+
}, {
|
|
73
|
+
default: t(() => [
|
|
74
|
+
l(e(M), { show: b.value }, {
|
|
75
|
+
default: t(() => [
|
|
76
|
+
l(e(R), {
|
|
77
|
+
ref_key: "formRef",
|
|
78
|
+
ref: h,
|
|
79
|
+
model: a,
|
|
80
|
+
rules: w,
|
|
81
|
+
"label-placement": "left",
|
|
82
|
+
"label-width": 80
|
|
83
|
+
}, {
|
|
84
|
+
default: t(() => [
|
|
85
|
+
l(e(u), {
|
|
86
|
+
label: e(r)("profile.avatar")
|
|
87
|
+
}, {
|
|
88
|
+
default: t(() => [
|
|
89
|
+
V("div", G, [
|
|
90
|
+
l(e(q), {
|
|
91
|
+
round: "",
|
|
92
|
+
size: 48,
|
|
93
|
+
style: { "flex-shrink": "0" },
|
|
94
|
+
src: a.avatar || void 0
|
|
95
|
+
}, {
|
|
96
|
+
fallback: t(() => [
|
|
97
|
+
m(f(_(a.name)), 1)
|
|
98
|
+
]),
|
|
99
|
+
default: t(() => [
|
|
100
|
+
a.avatar ? E("", !0) : (k(), z(A, { key: 0 }, [
|
|
101
|
+
m(f(_(a.name)), 1)
|
|
102
|
+
], 64))
|
|
103
|
+
]),
|
|
104
|
+
_: 1
|
|
105
|
+
}, 8, ["src"]),
|
|
106
|
+
l(T, {
|
|
107
|
+
accept: "image/*",
|
|
108
|
+
"show-file-list": !1,
|
|
109
|
+
onLoadingChange: o[0] || (o[0] = (i) => p.value = i),
|
|
110
|
+
onUploaded: o[1] || (o[1] = (i) => a.avatar = i.viewUrl ?? null)
|
|
111
|
+
}, {
|
|
112
|
+
default: t(() => [
|
|
113
|
+
l(e(y), {
|
|
114
|
+
size: "small",
|
|
115
|
+
loading: p.value,
|
|
116
|
+
disabled: p.value
|
|
117
|
+
}, {
|
|
118
|
+
icon: t(() => [
|
|
119
|
+
l(j, {
|
|
120
|
+
icon: "ph:upload-simple",
|
|
121
|
+
size: 14
|
|
122
|
+
})
|
|
123
|
+
]),
|
|
124
|
+
default: t(() => [
|
|
125
|
+
m(" " + f(p.value ? e(r)("profile.avatarUploading") : e(r)("profile.avatar")), 1)
|
|
126
|
+
]),
|
|
127
|
+
_: 1
|
|
128
|
+
}, 8, ["loading", "disabled"])
|
|
129
|
+
]),
|
|
130
|
+
_: 1
|
|
131
|
+
})
|
|
132
|
+
])
|
|
133
|
+
]),
|
|
134
|
+
_: 1
|
|
135
|
+
}, 8, ["label"]),
|
|
136
|
+
l(e(u), {
|
|
137
|
+
label: e(r)("profile.account")
|
|
138
|
+
}, {
|
|
139
|
+
default: t(() => [
|
|
140
|
+
l(e(d), {
|
|
141
|
+
value: a.account,
|
|
142
|
+
disabled: ""
|
|
143
|
+
}, null, 8, ["value"])
|
|
144
|
+
]),
|
|
145
|
+
_: 1
|
|
146
|
+
}, 8, ["label"]),
|
|
147
|
+
l(e(u), {
|
|
148
|
+
label: e(r)("profile.name"),
|
|
149
|
+
required: ""
|
|
150
|
+
}, {
|
|
151
|
+
default: t(() => [
|
|
152
|
+
l(e(d), {
|
|
153
|
+
value: a.name,
|
|
154
|
+
"onUpdate:value": o[2] || (o[2] = (i) => a.name = i),
|
|
155
|
+
placeholder: e(r)("profile.name")
|
|
156
|
+
}, null, 8, ["value", "placeholder"])
|
|
157
|
+
]),
|
|
158
|
+
_: 1
|
|
159
|
+
}, 8, ["label"]),
|
|
160
|
+
l(e(u), {
|
|
161
|
+
label: e(r)("profile.nickname")
|
|
162
|
+
}, {
|
|
163
|
+
default: t(() => [
|
|
164
|
+
l(e(d), {
|
|
165
|
+
value: a.nickname,
|
|
166
|
+
"onUpdate:value": o[3] || (o[3] = (i) => a.nickname = i),
|
|
167
|
+
placeholder: e(r)("profile.nickname")
|
|
168
|
+
}, null, 8, ["value", "placeholder"])
|
|
169
|
+
]),
|
|
170
|
+
_: 1
|
|
171
|
+
}, 8, ["label"]),
|
|
172
|
+
l(e(u), {
|
|
173
|
+
label: e(r)("profile.gender")
|
|
174
|
+
}, {
|
|
175
|
+
default: t(() => [
|
|
176
|
+
l(P, {
|
|
177
|
+
value: a.gender,
|
|
178
|
+
"onUpdate:value": o[4] || (o[4] = (i) => a.gender = i),
|
|
179
|
+
"type-code": "gender",
|
|
180
|
+
clearable: "",
|
|
181
|
+
placeholder: e(r)("profile.gender")
|
|
182
|
+
}, null, 8, ["value", "placeholder"])
|
|
183
|
+
]),
|
|
184
|
+
_: 1
|
|
185
|
+
}, 8, ["label"]),
|
|
186
|
+
l(e(u), {
|
|
187
|
+
label: e(r)("profile.phone"),
|
|
188
|
+
path: "phone"
|
|
189
|
+
}, {
|
|
190
|
+
default: t(() => [
|
|
191
|
+
l(e(d), {
|
|
192
|
+
value: a.phone,
|
|
193
|
+
"onUpdate:value": o[5] || (o[5] = (i) => a.phone = i),
|
|
194
|
+
placeholder: e(r)("profile.phone")
|
|
195
|
+
}, null, 8, ["value", "placeholder"])
|
|
196
|
+
]),
|
|
197
|
+
_: 1
|
|
198
|
+
}, 8, ["label"]),
|
|
199
|
+
l(e(u), {
|
|
200
|
+
label: e(r)("profile.email"),
|
|
201
|
+
path: "email"
|
|
202
|
+
}, {
|
|
203
|
+
default: t(() => [
|
|
204
|
+
l(e(d), {
|
|
205
|
+
value: a.email,
|
|
206
|
+
"onUpdate:value": o[6] || (o[6] = (i) => a.email = i),
|
|
207
|
+
placeholder: e(r)("profile.email")
|
|
208
|
+
}, null, 8, ["value", "placeholder"])
|
|
209
|
+
]),
|
|
210
|
+
_: 1
|
|
211
|
+
}, 8, ["label"]),
|
|
212
|
+
l(e(u), {
|
|
213
|
+
label: e(r)("profile.org")
|
|
214
|
+
}, {
|
|
215
|
+
default: t(() => [
|
|
216
|
+
l(e(d), {
|
|
217
|
+
value: a.org,
|
|
218
|
+
disabled: ""
|
|
219
|
+
}, null, 8, ["value"])
|
|
220
|
+
]),
|
|
221
|
+
_: 1
|
|
222
|
+
}, 8, ["label"]),
|
|
223
|
+
l(e(u), {
|
|
224
|
+
label: e(r)("profile.position")
|
|
225
|
+
}, {
|
|
226
|
+
default: t(() => [
|
|
227
|
+
l(e(d), {
|
|
228
|
+
value: a.position,
|
|
229
|
+
disabled: ""
|
|
230
|
+
}, null, 8, ["value"])
|
|
231
|
+
]),
|
|
232
|
+
_: 1
|
|
233
|
+
}, 8, ["label"]),
|
|
234
|
+
l(e(u), { label: " " }, {
|
|
235
|
+
default: t(() => [
|
|
236
|
+
l(e(y), {
|
|
237
|
+
type: "primary",
|
|
238
|
+
loading: g.value,
|
|
239
|
+
disabled: !a.name.trim(),
|
|
240
|
+
onClick: I
|
|
241
|
+
}, {
|
|
242
|
+
default: t(() => [
|
|
243
|
+
m(f(e(r)("common.save")), 1)
|
|
244
|
+
]),
|
|
245
|
+
_: 1
|
|
246
|
+
}, 8, ["loading", "disabled"])
|
|
247
|
+
]),
|
|
248
|
+
_: 1
|
|
249
|
+
})
|
|
250
|
+
]),
|
|
251
|
+
_: 1
|
|
252
|
+
}, 8, ["model"])
|
|
253
|
+
]),
|
|
254
|
+
_: 1
|
|
255
|
+
}, 8, ["show"])
|
|
256
|
+
]),
|
|
257
|
+
_: 1
|
|
258
|
+
}, 8, ["title"]));
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
export {
|
|
262
|
+
ae as default
|
|
263
|
+
};
|
|
264
|
+
//# sourceMappingURL=profile2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile2.vue.js","sources":["../../../src/views/personal/profile.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 个人资料:自己能改的字段全在这(姓名/昵称/性别/手机/邮箱/头像);机构/职位由管理员维护,只读展示。\n// 提交是全量替换语义(后端 UpdateProfileInput):整表单一把梭,别做单字段 PATCH。\n// 手机/邮箱直接改不做二次验证——内核无短信/邮件通道,管理员本可在用户管理任改,操作日志留痕(后端注释同款理由)。\nimport { onMounted, reactive, ref } from 'vue'\nimport {\n NCard,\n NForm,\n NFormItem,\n NInput,\n NButton,\n NSpin,\n NAvatar,\n useMessage,\n type FormInst,\n type FormRules,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { personalApi } from '#/api'\nimport { useUserStore } from '#/stores/user'\nimport { translateError } from '#/utils/error'\nimport DictSelect from '#/components/DictSelect/index.vue'\nimport FileUpload from '#/components/FileUpload/index.vue'\nimport AppIcon from '#/components/AppIcon.vue'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst user = useUserStore()\n\nconst loading = ref(true)\nconst saving = ref(false)\nconst avatarUploading = ref(false)\nconst formRef = ref<FormInst | null>(null)\nconst model = reactive({\n account: '',\n name: '',\n nickname: '',\n phone: '',\n email: '',\n gender: null as string | null,\n avatar: null as string | null,\n org: '',\n position: '',\n})\n\n// 手机/邮箱选填,填了才校验格式(与管理端 user 页同规则;后端存自由字符串)\nconst rules: FormRules = {\n phone: {\n validator: (_r, v: string) => !v || /^1[3-9]\\d{9}$/.test(v),\n message: () => t('profile.phoneInvalid'),\n trigger: ['input', 'blur'],\n },\n email: {\n validator: (_r, v: string) => !v || /^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/.test(v),\n message: () => t('profile.emailInvalid'),\n trigger: ['input', 'blur'],\n },\n}\n\nconst initial = (name: string) => name.trim().charAt(0).toUpperCase() || '?'\n\nonMounted(async () => {\n try {\n const p = await personalApi.profile()\n model.account = p.account\n model.name = p.name\n model.nickname = p.nickname ?? ''\n model.phone = p.phone ?? ''\n model.email = p.email ?? ''\n model.gender = p.gender ?? null\n model.avatar = p.avatar ?? null\n // 展示名称而非 Id:雪花主键是 14 位数字,甩给用户看没有任何意义。\n // 名称由 /personal/profile 一并返回(该端点是 [ActiveSession],人人可读);机构/职位被删则回落占位符。\n model.org = p.orgName ?? '—'\n model.position = p.positionName ?? '—'\n } catch (e) {\n message.error(translateError(e))\n } finally {\n loading.value = false\n }\n})\n\nasync function save() {\n try {\n await formRef.value?.validate()\n } catch {\n return // 校验失败:表单项已就地标红,不另叠 toast\n }\n saving.value = true\n try {\n await personalApi.updateProfile({\n name: model.name,\n nickname: model.nickname || null,\n phone: model.phone || null,\n email: model.email || null,\n gender: model.gender,\n avatar: model.avatar,\n })\n if (user.userInfo) {\n user.userInfo.name = model.name\n user.userInfo.avatar = model.avatar // 顶栏头像即时同步,不等下次 enterInitial\n }\n message.success(t('profile.saved'))\n } catch (e) {\n message.error(translateError(e))\n } finally {\n saving.value = false\n }\n}\n</script>\n\n<template>\n <n-card :bordered=\"true\" :title=\"t('profile.title')\" style=\"max-width: 560px\">\n <n-spin :show=\"loading\">\n <n-form ref=\"formRef\" :model=\"model\" :rules=\"rules\" label-placement=\"left\" :label-width=\"80\">\n <n-form-item :label=\"t('profile.avatar')\">\n <div class=\"avatar-field\">\n <n-avatar round :size=\"48\" style=\"flex-shrink: 0\" :src=\"model.avatar || undefined\">\n <template #fallback>{{ initial(model.name) }}</template>\n <template v-if=\"!model.avatar\">{{ initial(model.name) }}</template>\n </n-avatar>\n <FileUpload\n accept=\"image/*\"\n :show-file-list=\"false\"\n @loading-change=\"v => (avatarUploading = v)\"\n @uploaded=\"o => (model.avatar = o.viewUrl ?? null)\"\n >\n <n-button size=\"small\" :loading=\"avatarUploading\" :disabled=\"avatarUploading\">\n <template #icon><AppIcon icon=\"ph:upload-simple\" :size=\"14\" /></template>\n {{ avatarUploading ? t('profile.avatarUploading') : t('profile.avatar') }}\n </n-button>\n </FileUpload>\n </div>\n </n-form-item>\n <n-form-item :label=\"t('profile.account')\">\n <n-input :value=\"model.account\" disabled />\n </n-form-item>\n <n-form-item :label=\"t('profile.name')\" required>\n <n-input v-model:value=\"model.name\" :placeholder=\"t('profile.name')\" />\n </n-form-item>\n <n-form-item :label=\"t('profile.nickname')\">\n <n-input v-model:value=\"model.nickname\" :placeholder=\"t('profile.nickname')\" />\n </n-form-item>\n <n-form-item :label=\"t('profile.gender')\">\n <DictSelect\n v-model:value=\"model.gender\"\n type-code=\"gender\"\n clearable\n :placeholder=\"t('profile.gender')\"\n />\n </n-form-item>\n <n-form-item :label=\"t('profile.phone')\" path=\"phone\">\n <n-input v-model:value=\"model.phone\" :placeholder=\"t('profile.phone')\" />\n </n-form-item>\n <n-form-item :label=\"t('profile.email')\" path=\"email\">\n <n-input v-model:value=\"model.email\" :placeholder=\"t('profile.email')\" />\n </n-form-item>\n <n-form-item :label=\"t('profile.org')\">\n <n-input :value=\"model.org\" disabled />\n </n-form-item>\n <n-form-item :label=\"t('profile.position')\">\n <n-input :value=\"model.position\" disabled />\n </n-form-item>\n <n-form-item :label=\"' '\">\n <n-button type=\"primary\" :loading=\"saving\" :disabled=\"!model.name.trim()\" @click=\"save\">\n {{ t('common.save') }}\n </n-button>\n </n-form-item>\n </n-form>\n </n-spin>\n </n-card>\n</template>\n\n<style scoped>\n.avatar-field {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n</style>\n"],"names":["t","useI18n","message","useMessage","user","useUserStore","loading","ref","saving","avatarUploading","formRef","model","reactive","rules","_r","v","initial","name","onMounted","p","personalApi","e","translateError","save","_a","_createBlock","_unref","NCard","_createVNode","NSpin","NForm","NFormItem","_createElementVNode","_hoisted_1","NAvatar","_createElementBlock","_Fragment","FileUpload","_cache","o","NButton","AppIcon","_createTextVNode","_toDisplayString","NInput","$event","DictSelect"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineComponent as v, computed as x, openBlock as p, createBlock as l, unref as e, withCtx as o, createVNode as a, createTextVNode as i, toDisplayString as n, createCommentVNode as N, createElementVNode as d } from "vue";
|
|
2
|
+
import { useRouter as b } from "vue-router";
|
|
3
|
+
import { NCard as g, NAlert as m, NSpace as C, NButton as y } from "naive-ui";
|
|
4
|
+
import { useI18n as k } from "vue-i18n";
|
|
5
|
+
import { useUserStore as w } from "../../stores/user.js";
|
|
6
|
+
import { useAuthStore as A } from "../../stores/auth.js";
|
|
7
|
+
const B = { class: "sec-desc" }, V = { class: "sec-note" }, $ = /* @__PURE__ */ v({
|
|
8
|
+
__name: "security",
|
|
9
|
+
setup(q) {
|
|
10
|
+
const { t } = k(), f = b(), _ = w(), S = A(), h = x(() => S.hasPerm("GET:/api/v1/sys/config/page"));
|
|
11
|
+
function u(c) {
|
|
12
|
+
var s;
|
|
13
|
+
const r = (s = _.userInfo) == null ? void 0 : s.account;
|
|
14
|
+
f.push({
|
|
15
|
+
path: "/mfa/bind",
|
|
16
|
+
query: {
|
|
17
|
+
...r ? { account: r } : {},
|
|
18
|
+
...c === "recovery" ? { mode: "recovery" } : {}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return (c, r) => (p(), l(e(g), {
|
|
23
|
+
bordered: !0,
|
|
24
|
+
title: e(t)("personalSecurity.title"),
|
|
25
|
+
style: { "max-width": "560px" }
|
|
26
|
+
}, {
|
|
27
|
+
default: o(() => [
|
|
28
|
+
a(e(m), {
|
|
29
|
+
type: "info",
|
|
30
|
+
bordered: !1,
|
|
31
|
+
style: { "margin-bottom": "16px" }
|
|
32
|
+
}, {
|
|
33
|
+
default: o(() => [
|
|
34
|
+
i(n(e(t)("personalSecurity.hint")), 1)
|
|
35
|
+
]),
|
|
36
|
+
_: 1
|
|
37
|
+
}),
|
|
38
|
+
h.value ? (p(), l(e(m), {
|
|
39
|
+
key: 0,
|
|
40
|
+
type: "warning",
|
|
41
|
+
bordered: !1,
|
|
42
|
+
style: { "margin-bottom": "16px" }
|
|
43
|
+
}, {
|
|
44
|
+
default: o(() => [
|
|
45
|
+
i(n(e(t)("personalSecurity.adminHint")), 1)
|
|
46
|
+
]),
|
|
47
|
+
_: 1
|
|
48
|
+
})) : N("", !0),
|
|
49
|
+
d("p", B, n(e(t)("personalSecurity.bindDesc")), 1),
|
|
50
|
+
a(e(C), null, {
|
|
51
|
+
default: o(() => [
|
|
52
|
+
a(e(y), {
|
|
53
|
+
type: "primary",
|
|
54
|
+
onClick: r[0] || (r[0] = (s) => u())
|
|
55
|
+
}, {
|
|
56
|
+
default: o(() => [
|
|
57
|
+
i(n(e(t)("personalSecurity.setupAuthenticator")), 1)
|
|
58
|
+
]),
|
|
59
|
+
_: 1
|
|
60
|
+
}),
|
|
61
|
+
a(e(y), {
|
|
62
|
+
quaternary: "",
|
|
63
|
+
onClick: r[1] || (r[1] = (s) => u("recovery"))
|
|
64
|
+
}, {
|
|
65
|
+
default: o(() => [
|
|
66
|
+
i(n(e(t)("personalSecurity.useRecovery")), 1)
|
|
67
|
+
]),
|
|
68
|
+
_: 1
|
|
69
|
+
})
|
|
70
|
+
]),
|
|
71
|
+
_: 1
|
|
72
|
+
}),
|
|
73
|
+
d("p", V, n(e(t)("personalSecurity.note")), 1)
|
|
74
|
+
]),
|
|
75
|
+
_: 1
|
|
76
|
+
}, 8, ["title"]));
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
export {
|
|
80
|
+
$ as default
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=security2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security2.vue.js","sources":["../../../src/views/personal/security.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 个人安全:TOTP 自助绑定/恢复入口(ADR 0006)。不进业务菜单,顶栏用户下拉进入。\n// 管理员配置路径类文案(系统配置/安全策略)只给能进配置的人看,普通用户不暴露运维指引。\nimport { computed } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { NCard, NButton, NAlert, NSpace } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { useUserStore } from '#/stores/user'\nimport { useAuthStore } from '#/stores/auth'\n\nconst { t } = useI18n()\nconst router = useRouter()\nconst user = useUserStore()\nconst auth = useAuthStore()\n\n// hasPerm 对超管恒 true;普通用户须具备系统配置读权限才看运维提示。\nconst showAdminHint = computed(() => auth.hasPerm('GET:/api/v1/sys/config/page'))\n\nfunction goBind(mode?: 'recovery') {\n const account = user.userInfo?.account\n router.push({\n path: '/mfa/bind',\n query: {\n ...(account ? { account } : {}),\n ...(mode === 'recovery' ? { mode: 'recovery' } : {}),\n },\n })\n}\n</script>\n\n<template>\n <n-card :bordered=\"true\" :title=\"t('personalSecurity.title')\" style=\"max-width: 560px\">\n <n-alert type=\"info\" :bordered=\"false\" style=\"margin-bottom: 16px\">\n {{ t('personalSecurity.hint') }}\n </n-alert>\n <n-alert v-if=\"showAdminHint\" type=\"warning\" :bordered=\"false\" style=\"margin-bottom: 16px\">\n {{ t('personalSecurity.adminHint') }}\n </n-alert>\n <p class=\"sec-desc\">{{ t('personalSecurity.bindDesc') }}</p>\n <n-space>\n <n-button type=\"primary\" @click=\"goBind()\">\n {{ t('personalSecurity.setupAuthenticator') }}\n </n-button>\n <n-button quaternary @click=\"goBind('recovery')\">\n {{ t('personalSecurity.useRecovery') }}\n </n-button>\n </n-space>\n <p class=\"sec-note\">{{ t('personalSecurity.note') }}</p>\n </n-card>\n</template>\n\n<style scoped>\n.sec-desc {\n margin: 0 0 16px;\n color: var(--color-text-2, #666);\n line-height: 1.5;\n}\n.sec-note {\n margin: 20px 0 0;\n font-size: 12px;\n color: var(--color-text-3, #999);\n line-height: 1.5;\n}\n</style>\n"],"names":["useI18n","router","useRouter","user","useUserStore","auth","useAuthStore","showAdminHint","computed","goBind","mode","account","_a","_createBlock","_unref","NCard","_createVNode","NAlert","_createElementVNode","_hoisted_1","_toDisplayString","NSpace","NButton","_hoisted_2"],"mappings":";;;;;;;;;AAUA,UAAM,EAAE,EAAA,IAAMA,EAAA,GACRC,IAASC,EAAA,GACTC,IAAOC,EAAA,GACPC,IAAOC,EAAA,GAGPC,IAAgBC,EAAS,MAAMH,EAAK,QAAQ,6BAA6B,CAAC;AAEhF,aAASI,EAAOC,GAAmB;;AACjC,YAAMC,KAAUC,IAAAT,EAAK,aAAL,gBAAAS,EAAe;AAC/B,MAAAX,EAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,UACL,GAAIU,IAAU,EAAE,SAAAA,EAAA,IAAY,CAAA;AAAA,UAC5B,GAAID,MAAS,aAAa,EAAE,MAAM,WAAA,IAAe,CAAA;AAAA,QAAC;AAAA,MACpD,CACD;AAAA,IACH;2BAIEG,EAiBSC,EAAAC,CAAA,GAAA;AAAA,MAjBA,UAAU;AAAA,MAAO,OAAOD,EAAA,CAAA,EAAC,wBAAA;AAAA,MAA4B,OAAA,EAAA,aAAA,QAAA;AAAA,IAAA;iBAC5D,MAEU;AAAA,QAFVE,EAEUF,EAAAG,CAAA,GAAA;AAAA,UAFD,MAAK;AAAA,UAAQ,UAAU;AAAA,UAAO,OAAA,EAAA,iBAAA,OAAA;AAAA,QAAA;qBACrC,MAAgC;AAAA,gBAA7BH,EAAA,CAAA,EAAC,uBAAA,CAAA,GAAA,CAAA;AAAA,UAAA;;;QAESP,EAAA,cAAfM,EAEUC,EAAAG,CAAA,GAAA;AAAA;UAFoB,MAAK;AAAA,UAAW,UAAU;AAAA,UAAO,OAAA,EAAA,iBAAA,OAAA;AAAA,QAAA;qBAC7D,MAAqC;AAAA,gBAAlCH,EAAA,CAAA,EAAC,4BAAA,CAAA,GAAA,CAAA;AAAA,UAAA;;;QAENI,EAA4D,KAA5DC,GAA4DC,EAArCN,EAAA,CAAA,EAAC,2BAAA,CAAA,GAAA,CAAA;AAAA,QACxBE,EAOUF,EAAAO,CAAA,GAAA,MAAA;AAAA,qBANR,MAEW;AAAA,YAFXL,EAEWF,EAAAQ,CAAA,GAAA;AAAA,cAFD,MAAK;AAAA,cAAW,gCAAOb,EAAA;AAAA,YAAM;yBACrC,MAA8C;AAAA,oBAA3CK,EAAA,CAAA,EAAC,qCAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;YAENE,EAEWF,EAAAQ,CAAA,GAAA;AAAA,cAFD,YAAA;AAAA,cAAY,gCAAOb,EAAM,UAAA;AAAA,YAAA;yBACjC,MAAuC;AAAA,oBAApCK,EAAA,CAAA,EAAC,8BAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;;;;QAGRI,EAAwD,KAAxDK,GAAwDH,EAAjCN,EAAA,CAAA,EAAC,uBAAA,CAAA,GAAA,CAAA;AAAA,MAAA;;;;;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|