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,292 @@
|
|
|
1
|
+
import { defineComponent as W, ref as u, openBlock as l, createElementBlock as d, Fragment as R, createVNode as n, unref as e, withCtx as o, createElementVNode as m, toDisplayString as c, createTextVNode as p, renderList as I, normalizeClass as L, createCommentVNode as T, createBlock as S, createSlots as X } from "vue";
|
|
2
|
+
import { useRouter as Y } from "vue-router";
|
|
3
|
+
import { useMessage as Z, NPopover as ee, NButton as k, NSpin as te, NScrollbar as ae, NEmpty as oe, NTag as ne, NEllipsis as ie, NText as U, NBadge as le, NModal as se, NSpace as ce } from "naive-ui";
|
|
4
|
+
import { Icon as N } from "@iconify/vue";
|
|
5
|
+
import { useIntervalFn as re } from "@vueuse/core";
|
|
6
|
+
import { useI18n as ue } from "vue-i18n";
|
|
7
|
+
import { noticeApi as b } from "../api/index.js";
|
|
8
|
+
import { noticeBus as de } from "../composables/useRealtime.js";
|
|
9
|
+
import { useNoticeAction as pe } from "../composables/useNoticeAction.js";
|
|
10
|
+
import { NoticeType as x } from "../types/api.js";
|
|
11
|
+
import me from "../components/MarkdownEditor/MarkdownView.vue.js";
|
|
12
|
+
import { translateError as D } from "../utils/error.js";
|
|
13
|
+
import { fmtDateTime as fe } from "../utils/format.js";
|
|
14
|
+
const he = { class: "notice-panel" }, ve = { class: "notice-head" }, ye = { class: "notice-title" }, _e = {
|
|
15
|
+
key: 0,
|
|
16
|
+
class: "notice-empty"
|
|
17
|
+
}, we = {
|
|
18
|
+
key: 1,
|
|
19
|
+
class: "notice-list"
|
|
20
|
+
}, ge = ["onClick"], ke = {
|
|
21
|
+
key: 0,
|
|
22
|
+
class: "dot"
|
|
23
|
+
}, Ne = { class: "notice-body" }, be = { class: "line1" }, xe = { class: "notice-foot" }, De = /* @__PURE__ */ W({
|
|
24
|
+
__name: "NoticeBell",
|
|
25
|
+
setup(Ae) {
|
|
26
|
+
const { t: s } = ue(), F = Y(), z = Z(), A = pe(), y = u(0), _ = u([]), C = u(!1), w = u(!1);
|
|
27
|
+
async function f() {
|
|
28
|
+
try {
|
|
29
|
+
y.value = await b.unreadCount();
|
|
30
|
+
} catch {
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function B() {
|
|
34
|
+
C.value = !0;
|
|
35
|
+
try {
|
|
36
|
+
const { items: t } = await b.mine({ page: 1, pageSize: 10 });
|
|
37
|
+
_.value = t;
|
|
38
|
+
} catch {
|
|
39
|
+
_.value = [];
|
|
40
|
+
} finally {
|
|
41
|
+
C.value = !1;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function P(t) {
|
|
45
|
+
t && B();
|
|
46
|
+
}
|
|
47
|
+
const g = u(!1), h = u(null);
|
|
48
|
+
async function j(t) {
|
|
49
|
+
if (!t.isRead)
|
|
50
|
+
try {
|
|
51
|
+
await b.markRead(t.id), t.isRead = !0, await f();
|
|
52
|
+
} catch (i) {
|
|
53
|
+
z.error(D(i));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function q(t) {
|
|
57
|
+
h.value = t, g.value = !0, await j(t);
|
|
58
|
+
}
|
|
59
|
+
const v = u(null);
|
|
60
|
+
async function G(t, i) {
|
|
61
|
+
v.value = i;
|
|
62
|
+
try {
|
|
63
|
+
await A.run(t) && (g.value = !1, w.value = !1);
|
|
64
|
+
} finally {
|
|
65
|
+
v.value = null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async function H() {
|
|
69
|
+
try {
|
|
70
|
+
await b.markAllRead(), await Promise.all([f(), B()]);
|
|
71
|
+
} catch (t) {
|
|
72
|
+
z.error(D(t));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function J() {
|
|
76
|
+
w.value = !1, F.push("/personal/notice");
|
|
77
|
+
}
|
|
78
|
+
const K = (t) => t === x.Announcement ? "warning" : t === x.Message ? "success" : "info", O = (t) => t === x.Announcement ? s("notice.typeAnnouncement") : t === x.Message ? s("notice.typeMessage") : s("notice.typeNotice");
|
|
79
|
+
function E(t) {
|
|
80
|
+
if (!t) return "";
|
|
81
|
+
const i = t.replace(/!\[[^\]]*\]\([^)]*\)/g, "").replace(/\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/[#>*_`~-]/g, "").replace(/\s+/g, " ").trim();
|
|
82
|
+
return i.length > 60 ? i.slice(0, 60) + "…" : i;
|
|
83
|
+
}
|
|
84
|
+
return de.on(() => {
|
|
85
|
+
f();
|
|
86
|
+
}), re(f, 3e4), f(), (t, i) => {
|
|
87
|
+
var M, V, $;
|
|
88
|
+
return l(), d(R, null, [
|
|
89
|
+
n(e(ee), {
|
|
90
|
+
show: w.value,
|
|
91
|
+
"onUpdate:show": [
|
|
92
|
+
i[0] || (i[0] = (a) => w.value = a),
|
|
93
|
+
P
|
|
94
|
+
],
|
|
95
|
+
trigger: "click",
|
|
96
|
+
placement: "bottom-end",
|
|
97
|
+
"show-arrow": !1,
|
|
98
|
+
style: { padding: "0" }
|
|
99
|
+
}, {
|
|
100
|
+
trigger: o(() => [
|
|
101
|
+
n(e(le), {
|
|
102
|
+
value: y.value,
|
|
103
|
+
max: 99,
|
|
104
|
+
show: y.value > 0
|
|
105
|
+
}, {
|
|
106
|
+
default: o(() => [
|
|
107
|
+
n(e(k), {
|
|
108
|
+
quaternary: "",
|
|
109
|
+
circle: "",
|
|
110
|
+
"aria-label": e(s)("app.notice.title")
|
|
111
|
+
}, {
|
|
112
|
+
default: o(() => [
|
|
113
|
+
n(e(N), {
|
|
114
|
+
icon: "ph:bell",
|
|
115
|
+
width: 18
|
|
116
|
+
})
|
|
117
|
+
]),
|
|
118
|
+
_: 1
|
|
119
|
+
}, 8, ["aria-label"])
|
|
120
|
+
]),
|
|
121
|
+
_: 1
|
|
122
|
+
}, 8, ["value", "show"])
|
|
123
|
+
]),
|
|
124
|
+
default: o(() => [
|
|
125
|
+
m("div", he, [
|
|
126
|
+
m("div", ve, [
|
|
127
|
+
m("span", ye, c(e(s)("app.notice.title")), 1),
|
|
128
|
+
n(e(k), {
|
|
129
|
+
text: "",
|
|
130
|
+
size: "tiny",
|
|
131
|
+
disabled: y.value === 0,
|
|
132
|
+
onClick: H
|
|
133
|
+
}, {
|
|
134
|
+
icon: o(() => [
|
|
135
|
+
n(e(N), {
|
|
136
|
+
icon: "ph:checks",
|
|
137
|
+
width: 15
|
|
138
|
+
})
|
|
139
|
+
]),
|
|
140
|
+
default: o(() => [
|
|
141
|
+
p(" " + c(e(s)("app.notice.markAllRead")), 1)
|
|
142
|
+
]),
|
|
143
|
+
_: 1
|
|
144
|
+
}, 8, ["disabled"])
|
|
145
|
+
]),
|
|
146
|
+
n(e(te), { show: C.value }, {
|
|
147
|
+
default: o(() => [
|
|
148
|
+
n(e(ae), { style: { "max-height": "360px" } }, {
|
|
149
|
+
default: o(() => [
|
|
150
|
+
_.value.length === 0 ? (l(), d("div", _e, [
|
|
151
|
+
n(e(oe), {
|
|
152
|
+
description: e(s)("app.notice.empty"),
|
|
153
|
+
size: "small"
|
|
154
|
+
}, null, 8, ["description"])
|
|
155
|
+
])) : (l(), d("ul", we, [
|
|
156
|
+
(l(!0), d(R, null, I(_.value, (a) => {
|
|
157
|
+
var r;
|
|
158
|
+
return l(), d("li", {
|
|
159
|
+
key: a.id,
|
|
160
|
+
class: L(["notice-item", a.isRead ? "read" : "unread"]),
|
|
161
|
+
onClick: (Q) => q(a)
|
|
162
|
+
}, [
|
|
163
|
+
a.isRead ? T("", !0) : (l(), d("span", ke)),
|
|
164
|
+
m("div", Ne, [
|
|
165
|
+
m("div", be, [
|
|
166
|
+
n(e(ne), {
|
|
167
|
+
type: K(a.type),
|
|
168
|
+
size: "tiny",
|
|
169
|
+
bordered: !1,
|
|
170
|
+
round: ""
|
|
171
|
+
}, {
|
|
172
|
+
default: o(() => [
|
|
173
|
+
p(c(O(a.type)), 1)
|
|
174
|
+
]),
|
|
175
|
+
_: 2
|
|
176
|
+
}, 1032, ["type"]),
|
|
177
|
+
n(e(ie), {
|
|
178
|
+
class: L(["item-title", { unread: !a.isRead }])
|
|
179
|
+
}, {
|
|
180
|
+
default: o(() => [
|
|
181
|
+
p(c(a.title), 1)
|
|
182
|
+
]),
|
|
183
|
+
_: 2
|
|
184
|
+
}, 1032, ["class"]),
|
|
185
|
+
(r = a.actions) != null && r.length ? (l(), S(e(N), {
|
|
186
|
+
key: 0,
|
|
187
|
+
icon: "ph:lightning",
|
|
188
|
+
width: 13,
|
|
189
|
+
class: "item-actions-mark"
|
|
190
|
+
})) : T("", !0)
|
|
191
|
+
]),
|
|
192
|
+
E(a.content) ? (l(), S(e(U), {
|
|
193
|
+
key: 0,
|
|
194
|
+
depth: "3",
|
|
195
|
+
class: "item-snippet"
|
|
196
|
+
}, {
|
|
197
|
+
default: o(() => [
|
|
198
|
+
p(c(E(a.content)), 1)
|
|
199
|
+
]),
|
|
200
|
+
_: 2
|
|
201
|
+
}, 1024)) : T("", !0),
|
|
202
|
+
n(e(U), {
|
|
203
|
+
depth: "3",
|
|
204
|
+
class: "item-time"
|
|
205
|
+
}, {
|
|
206
|
+
default: o(() => [
|
|
207
|
+
p(c(e(fe)(a.publishTime, { seconds: !1 })), 1)
|
|
208
|
+
]),
|
|
209
|
+
_: 2
|
|
210
|
+
}, 1024)
|
|
211
|
+
])
|
|
212
|
+
], 10, ge);
|
|
213
|
+
}), 128))
|
|
214
|
+
]))
|
|
215
|
+
]),
|
|
216
|
+
_: 1
|
|
217
|
+
})
|
|
218
|
+
]),
|
|
219
|
+
_: 1
|
|
220
|
+
}, 8, ["show"]),
|
|
221
|
+
m("div", xe, [
|
|
222
|
+
n(e(k), {
|
|
223
|
+
text: "",
|
|
224
|
+
size: "small",
|
|
225
|
+
onClick: J
|
|
226
|
+
}, {
|
|
227
|
+
icon: o(() => [
|
|
228
|
+
n(e(N), {
|
|
229
|
+
icon: "ph:arrow-right",
|
|
230
|
+
width: 14
|
|
231
|
+
})
|
|
232
|
+
]),
|
|
233
|
+
default: o(() => [
|
|
234
|
+
p(c(e(s)("app.notice.viewAll")) + " ", 1)
|
|
235
|
+
]),
|
|
236
|
+
_: 1
|
|
237
|
+
})
|
|
238
|
+
])
|
|
239
|
+
])
|
|
240
|
+
]),
|
|
241
|
+
_: 1
|
|
242
|
+
}, 8, ["show"]),
|
|
243
|
+
n(e(se), {
|
|
244
|
+
show: g.value,
|
|
245
|
+
"onUpdate:show": i[1] || (i[1] = (a) => g.value = a),
|
|
246
|
+
preset: "card",
|
|
247
|
+
title: ((M = h.value) == null ? void 0 : M.title) || e(s)("notice.detailTitle"),
|
|
248
|
+
style: { width: "640px", "max-width": "92vw" }
|
|
249
|
+
}, X({
|
|
250
|
+
default: o(() => {
|
|
251
|
+
var a;
|
|
252
|
+
return [
|
|
253
|
+
n(me, {
|
|
254
|
+
value: (a = h.value) == null ? void 0 : a.content
|
|
255
|
+
}, null, 8, ["value"])
|
|
256
|
+
];
|
|
257
|
+
}),
|
|
258
|
+
_: 2
|
|
259
|
+
}, [
|
|
260
|
+
($ = (V = h.value) == null ? void 0 : V.actions) != null && $.length ? {
|
|
261
|
+
name: "footer",
|
|
262
|
+
fn: o(() => [
|
|
263
|
+
n(e(ce), { justify: "end" }, {
|
|
264
|
+
default: o(() => [
|
|
265
|
+
(l(!0), d(R, null, I(h.value.actions, (a, r) => (l(), S(e(k), {
|
|
266
|
+
key: r,
|
|
267
|
+
size: "small",
|
|
268
|
+
type: e(A).buttonType(a),
|
|
269
|
+
loading: v.value === r,
|
|
270
|
+
disabled: v.value !== null && v.value !== r,
|
|
271
|
+
onClick: (Q) => G(a, r)
|
|
272
|
+
}, {
|
|
273
|
+
default: o(() => [
|
|
274
|
+
p(c(e(A).label(a)), 1)
|
|
275
|
+
]),
|
|
276
|
+
_: 2
|
|
277
|
+
}, 1032, ["type", "loading", "disabled", "onClick"]))), 128))
|
|
278
|
+
]),
|
|
279
|
+
_: 1
|
|
280
|
+
})
|
|
281
|
+
]),
|
|
282
|
+
key: "0"
|
|
283
|
+
} : void 0
|
|
284
|
+
]), 1032, ["show", "title"])
|
|
285
|
+
], 64);
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
export {
|
|
290
|
+
De as default
|
|
291
|
+
};
|
|
292
|
+
//# sourceMappingURL=NoticeBell2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoticeBell2.vue.js","sources":["../../src/layouts/NoticeBell.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 顶栏消息通知铃铛。富面板(n-popover):无页签单列表 + 正文弹层。\n// 未读=圆点+加粗+淡主色底,已读=整行变淡;\"读没读\"是过滤器不是分类,不做成页签(筛选在个人通知页)。\n// 未读数每 30s 轮询;面板展开时拉取列表。\n// 通知带动作列表时,正文弹层底部渲染成按钮(useNoticeAction):铃铛里直接\"办\",不必先跳到目标页面找按钮。\nimport { ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport {\n NPopover,\n NBadge,\n NButton,\n NTag,\n NEllipsis,\n NScrollbar,\n NSpace,\n NText,\n NEmpty,\n NModal,\n NSpin,\n useMessage,\n} from 'naive-ui'\nimport { Icon } from '@iconify/vue'\nimport { useIntervalFn } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\nimport { noticeApi } from '#/api'\nimport { noticeBus } from '#/composables/useRealtime'\nimport { useNoticeAction } from '#/composables/useNoticeAction'\nimport { NoticeType, type NoticeAction, type NoticeMineItem } from '#/types/api'\nimport MarkdownView from '#/components/MarkdownEditor/MarkdownView.vue'\nimport { translateError } from '#/utils/error'\nimport { fmtDateTime } from '#/utils/format'\n\nconst { t } = useI18n()\nconst router = useRouter()\nconst message = useMessage()\nconst noticeAction = useNoticeAction()\n\nconst unread = ref(0)\nconst items = ref<NoticeMineItem[]>([])\nconst loading = ref(false)\nconst panelShow = ref(false)\n\nasync function fetchUnread() {\n try {\n unread.value = await noticeApi.unreadCount()\n } catch {\n /* 轮询失败静默,下次自愈 */\n }\n}\n// 无页签单列表:恒拉最近一页混排,未读靠条目样式强调;筛选能力在\"查看全部\"的个人通知页。\nasync function fetchList() {\n loading.value = true\n try {\n const { items: list } = await noticeApi.mine({ page: 1, pageSize: 10 })\n items.value = list\n } catch {\n items.value = []\n } finally {\n loading.value = false\n }\n}\nfunction onShow(show: boolean) {\n if (show) fetchList()\n}\n\n// 正文弹层:内容随列表取回,直接渲染(Markdown,不能纯文本直出);点条目即标记已读。\nconst showNotice = ref(false)\nconst viewNotice = ref<NoticeMineItem | null>(null)\nasync function markRead(item: NoticeMineItem) {\n if (item.isRead) return\n try {\n await noticeApi.markRead(item.id)\n item.isRead = true\n await fetchUnread()\n } catch (e) {\n message.error(translateError(e))\n }\n}\nasync function openNotice(item: NoticeMineItem) {\n viewNotice.value = item\n showNotice.value = true\n await markRead(item)\n}\n// 动作:成功后关掉弹层与面板(页面跳转时尤其要关,否则面板盖在新页面上)。\nconst running = ref<number | null>(null)\nasync function onAction(a: NoticeAction, index: number) {\n running.value = index\n try {\n if (await noticeAction.run(a)) {\n showNotice.value = false\n panelShow.value = false\n }\n } finally {\n running.value = null\n }\n}\nasync function markAllRead() {\n try {\n await noticeApi.markAllRead()\n await Promise.all([fetchUnread(), fetchList()])\n } catch (e) {\n message.error(translateError(e))\n }\n}\nfunction viewAll() {\n panelShow.value = false\n router.push('/personal/notice')\n}\n\n// 类型 → 标签色/文案。新增类型在此补一行即可。\nconst tagType = (ty: NoticeType) =>\n ty === NoticeType.Announcement ? 'warning' : ty === NoticeType.Message ? 'success' : 'info'\nconst typeLabel = (ty: NoticeType) =>\n ty === NoticeType.Announcement\n ? t('notice.typeAnnouncement')\n : ty === NoticeType.Message\n ? t('notice.typeMessage')\n : t('notice.typeNotice')\n\n// 正文摘要:去掉常见 Markdown 记号,压空白,截断。ponytail: 正则够用,要精准渲染再引 md 解析。\nfunction snippet(md?: string | null) {\n if (!md) return ''\n const s = md\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '') // 图片\n .replace(/\\[([^\\]]*)\\]\\([^)]*\\)/g, '$1') // 链接留文字\n .replace(/[#>*_`~-]/g, '') // 记号\n .replace(/\\s+/g, ' ')\n .trim()\n return s.length > 60 ? s.slice(0, 60) + '…' : s\n}\n\n// 双腿:实时推送到达即刷新未读(SignalR 开启时,即时);30s 轮询兜底(实时关闭/连接掉线时)。\n// VueUse 的 useEventBus.on 在组件卸载时自动退订。\nnoticeBus.on(() => {\n fetchUnread()\n})\nuseIntervalFn(fetchUnread, 30000)\nfetchUnread()\n</script>\n\n<template>\n <n-popover\n v-model:show=\"panelShow\"\n trigger=\"click\"\n placement=\"bottom-end\"\n :show-arrow=\"false\"\n style=\"padding: 0\"\n @update:show=\"onShow\"\n >\n <template #trigger>\n <n-badge :value=\"unread\" :max=\"99\" :show=\"unread > 0\">\n <n-button quaternary circle :aria-label=\"t('app.notice.title')\">\n <Icon icon=\"ph:bell\" :width=\"18\" />\n </n-button>\n </n-badge>\n </template>\n\n <div class=\"notice-panel\">\n <div class=\"notice-head\">\n <span class=\"notice-title\">{{ t('app.notice.title') }}</span>\n <n-button text size=\"tiny\" :disabled=\"unread === 0\" @click=\"markAllRead\">\n <template #icon><Icon icon=\"ph:checks\" :width=\"15\" /></template>\n {{ t('app.notice.markAllRead') }}\n </n-button>\n </div>\n\n <n-spin :show=\"loading\">\n <n-scrollbar style=\"max-height: 360px\">\n <div v-if=\"items.length === 0\" class=\"notice-empty\">\n <n-empty :description=\"t('app.notice.empty')\" size=\"small\" />\n </div>\n <ul v-else class=\"notice-list\">\n <li\n v-for=\"n in items\"\n :key=\"n.id\"\n :class=\"['notice-item', n.isRead ? 'read' : 'unread']\"\n @click=\"openNotice(n)\"\n >\n <span v-if=\"!n.isRead\" class=\"dot\" />\n <div class=\"notice-body\">\n <div class=\"line1\">\n <n-tag :type=\"tagType(n.type)\" size=\"tiny\" :bordered=\"false\" round>\n {{ typeLabel(n.type) }}\n </n-tag>\n <n-ellipsis class=\"item-title\" :class=\"{ unread: !n.isRead }\">\n {{ n.title }}\n </n-ellipsis>\n <Icon\n v-if=\"n.actions?.length\"\n icon=\"ph:lightning\"\n :width=\"13\"\n class=\"item-actions-mark\"\n />\n </div>\n <n-text v-if=\"snippet(n.content)\" depth=\"3\" class=\"item-snippet\">\n {{ snippet(n.content) }}\n </n-text>\n <n-text depth=\"3\" class=\"item-time\">\n {{ fmtDateTime(n.publishTime, { seconds: false }) }}\n </n-text>\n </div>\n </li>\n </ul>\n </n-scrollbar>\n </n-spin>\n\n <div class=\"notice-foot\">\n <n-button text size=\"small\" @click=\"viewAll\">\n {{ t('app.notice.viewAll') }}\n <template #icon><Icon icon=\"ph:arrow-right\" :width=\"14\" /></template>\n </n-button>\n </div>\n </div>\n </n-popover>\n\n <n-modal\n v-model:show=\"showNotice\"\n preset=\"card\"\n :title=\"viewNotice?.title || t('notice.detailTitle')\"\n style=\"width: 640px; max-width: 92vw\"\n >\n <MarkdownView :value=\"viewNotice?.content\" />\n <template v-if=\"viewNotice?.actions?.length\" #footer>\n <n-space justify=\"end\">\n <n-button\n v-for=\"(a, i) in viewNotice.actions\"\n :key=\"i\"\n size=\"small\"\n :type=\"noticeAction.buttonType(a)\"\n :loading=\"running === i\"\n :disabled=\"running !== null && running !== i\"\n @click=\"onAction(a, i)\"\n >\n {{ noticeAction.label(a) }}\n </n-button>\n </n-space>\n </template>\n </n-modal>\n</template>\n\n<style scoped>\n.notice-panel {\n width: 360px;\n max-width: 92vw;\n}\n.notice-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px 4px;\n}\n.notice-title {\n font-weight: 600;\n font-size: var(--font-size-md);\n}\n.notice-empty {\n padding: 32px 0;\n}\n.notice-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.notice-item {\n position: relative;\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n border-top: 1px solid var(--n-divider-color, rgba(128, 128, 128, 0.15));\n transition: background-color 0.2s;\n}\n.notice-item:hover {\n background-color: rgba(128, 128, 128, 0.08);\n}\n/* 未读:整行淡主色底(明暗主题都成立);已读:整行变淡 */\n.notice-item.unread {\n background-color: color-mix(in srgb, var(--color-primary) 4%, transparent);\n}\n.notice-item.unread:hover {\n background-color: color-mix(in srgb, var(--color-primary) 9%, transparent);\n}\n.notice-item.read {\n opacity: 0.55;\n}\n.dot {\n position: absolute;\n left: 6px;\n top: 18px;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--color-primary, #d03050);\n}\n.notice-body {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.line1 {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n.item-title {\n flex: 1;\n min-width: 0;\n font-size: var(--font-size-sm);\n}\n.item-title.unread {\n font-weight: 600;\n}\n.item-actions-mark {\n flex-shrink: 0;\n color: var(--color-primary, #d03050);\n}\n.item-snippet {\n font-size: 12px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n.item-time {\n font-size: 11px;\n}\n.notice-foot {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--n-divider-color, rgba(128, 128, 128, 0.15));\n}\n</style>\n"],"names":["t","useI18n","router","useRouter","message","useMessage","noticeAction","useNoticeAction","unread","ref","items","loading","panelShow","fetchUnread","noticeApi","fetchList","list","onShow","show","showNotice","viewNotice","markRead","item","e","translateError","openNotice","running","onAction","a","index","markAllRead","viewAll","tagType","ty","NoticeType","typeLabel","snippet","md","s","noticeBus","useIntervalFn","_createVNode","_unref","NPopover","$event","NBadge","NButton","Icon","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_toDisplayString","_createTextVNode","NSpin","NScrollbar","_openBlock","_createElementBlock","_hoisted_4","NEmpty","_hoisted_5","_Fragment","_renderList","n","_normalizeClass","_hoisted_7","_hoisted_8","_hoisted_9","NTag","NEllipsis","_a","_createBlock","NText","fmtDateTime","_hoisted_10","NModal","MarkdownView","_c","_b","NSpace","i"],"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,8 @@
|
|
|
1
|
+
import o from "./PersonalLayout2.vue.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import t from "../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-45e1c4ea"]]);
|
|
5
|
+
export {
|
|
6
|
+
m as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=PersonalLayout.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonalLayout.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { defineComponent as K, computed as l, resolveComponent as C, openBlock as u, createElementBlock as p, normalizeClass as N, unref as n, createVNode as m, createCommentVNode as k, createElementVNode as f } from "vue";
|
|
2
|
+
import { useRoute as g, useRouter as V } from "vue-router";
|
|
3
|
+
import { NMenu as R, NSelect as B } from "naive-ui";
|
|
4
|
+
import { useBreakpoints as I, breakpointsTailwind as U } from "@vueuse/core";
|
|
5
|
+
import { useI18n as E } from "vue-i18n";
|
|
6
|
+
import { useUserStore as M } from "../stores/user.js";
|
|
7
|
+
const P = {
|
|
8
|
+
key: 0,
|
|
9
|
+
class: "personal-sider"
|
|
10
|
+
}, S = { class: "personal-main" }, z = {
|
|
11
|
+
key: 0,
|
|
12
|
+
class: "personal-mobile-nav"
|
|
13
|
+
}, L = { class: "personal-content" }, F = /* @__PURE__ */ K({
|
|
14
|
+
__name: "PersonalLayout",
|
|
15
|
+
setup(O) {
|
|
16
|
+
const { t: b } = E(), a = g(), _ = V(), h = M(), r = I(U).smaller("md"), c = [
|
|
17
|
+
{ key: "/personal/profile", labelKey: "menu.profile" },
|
|
18
|
+
{ key: "/personal/password", labelKey: "menu.password" },
|
|
19
|
+
{ key: "/personal/security", labelKey: "menu.security" },
|
|
20
|
+
{ key: "/personal/sessions", labelKey: "menu.sessions" },
|
|
21
|
+
{ key: "/personal/bindings", labelKey: "menu.bindings" }
|
|
22
|
+
], w = l(() => {
|
|
23
|
+
var e;
|
|
24
|
+
return !!((e = h.userInfo) != null && e.mustChangePassword);
|
|
25
|
+
}), i = l(() => (w.value ? c.filter((o) => o.key === "/personal/password") : [...c]).map((o) => ({ key: o.key, label: b(o.labelKey) }))), d = l(() => {
|
|
26
|
+
var o;
|
|
27
|
+
const e = i.value.find((t) => a.path === t.key || a.path.startsWith(t.key + "/"));
|
|
28
|
+
return (e == null ? void 0 : e.key) ?? ((o = i.value[0]) == null ? void 0 : o.key) ?? "/personal/profile";
|
|
29
|
+
}), y = l(() => i.value.map((e) => ({ key: e.key, label: e.label })));
|
|
30
|
+
function v(e) {
|
|
31
|
+
e !== a.path && _.push(e);
|
|
32
|
+
}
|
|
33
|
+
return (e, o) => {
|
|
34
|
+
const t = C("RouterView");
|
|
35
|
+
return u(), p("div", {
|
|
36
|
+
class: N(["personal-layout", { "is-mobile": n(r) }])
|
|
37
|
+
}, [
|
|
38
|
+
n(r) ? k("", !0) : (u(), p("aside", P, [
|
|
39
|
+
m(n(R), {
|
|
40
|
+
value: d.value,
|
|
41
|
+
options: y.value,
|
|
42
|
+
indent: 18,
|
|
43
|
+
"onUpdate:value": o[0] || (o[0] = (s) => v(s))
|
|
44
|
+
}, null, 8, ["value", "options"])
|
|
45
|
+
])),
|
|
46
|
+
f("div", S, [
|
|
47
|
+
n(r) ? (u(), p("div", z, [
|
|
48
|
+
m(n(B), {
|
|
49
|
+
value: d.value,
|
|
50
|
+
options: y.value.map((s) => ({ label: s.label, value: s.key })),
|
|
51
|
+
"onUpdate:value": o[1] || (o[1] = (s) => v(s))
|
|
52
|
+
}, null, 8, ["value", "options"])
|
|
53
|
+
])) : k("", !0),
|
|
54
|
+
f("div", L, [
|
|
55
|
+
m(t)
|
|
56
|
+
])
|
|
57
|
+
])
|
|
58
|
+
], 2);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
export {
|
|
63
|
+
F as default
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=PersonalLayout2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonalLayout2.vue.js","sources":["../../src/layouts/PersonalLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 个人中心二级壳:主布局内容区内左侧子导航 + 右侧 RouterView。\n// 路径仍为 /personal/*;强制改密时只露出「修改密码」导航项。\nimport { computed } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { NMenu, NSelect } from 'naive-ui'\nimport { useBreakpoints, breakpointsTailwind } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\nimport { useUserStore } from '#/stores/user'\n\nconst { t } = useI18n()\nconst route = useRoute()\nconst router = useRouter()\nconst user = useUserStore()\nconst isMobile = useBreakpoints(breakpointsTailwind).smaller('md')\n\nconst allNav = [\n { key: '/personal/profile', labelKey: 'menu.profile' },\n { key: '/personal/password', labelKey: 'menu.password' },\n { key: '/personal/security', labelKey: 'menu.security' },\n { key: '/personal/sessions', labelKey: 'menu.sessions' },\n { key: '/personal/bindings', labelKey: 'menu.bindings' },\n] as const\n\nconst mustChange = computed(() => !!user.userInfo?.mustChangePassword)\n\nconst navItems = computed(() => {\n const list = mustChange.value ? allNav.filter(x => x.key === '/personal/password') : [...allNav]\n return list.map(x => ({ key: x.key, label: t(x.labelKey) }))\n})\n\nconst activeKey = computed(() => {\n const hit = navItems.value.find(x => route.path === x.key || route.path.startsWith(x.key + '/'))\n return hit?.key ?? navItems.value[0]?.key ?? '/personal/profile'\n})\n\nconst menuOptions = computed(() => navItems.value.map(x => ({ key: x.key, label: x.label })))\n\nfunction go(key: string) {\n if (key !== route.path) void router.push(key)\n}\n</script>\n\n<template>\n <div class=\"personal-layout\" :class=\"{ 'is-mobile': isMobile }\">\n <aside v-if=\"!isMobile\" class=\"personal-sider\">\n <n-menu\n :value=\"activeKey\"\n :options=\"menuOptions\"\n :indent=\"18\"\n @update:value=\"(k: string) => go(k)\"\n />\n </aside>\n <div class=\"personal-main\">\n <div v-if=\"isMobile\" class=\"personal-mobile-nav\">\n <n-select\n :value=\"activeKey\"\n :options=\"menuOptions.map(o => ({ label: o.label, value: o.key }))\"\n @update:value=\"(k: string) => go(k)\"\n />\n </div>\n <div class=\"personal-content\">\n <RouterView />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.personal-layout {\n display: flex;\n gap: 16px;\n align-items: stretch;\n min-height: 100%;\n}\n.personal-sider {\n width: 200px;\n flex-shrink: 0;\n background: var(--color-bg-container, #fff);\n border: 1px solid var(--color-border, #e5e7eb);\n border-radius: 8px;\n padding: 8px 0 12px;\n}\n.personal-main {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.personal-mobile-nav {\n max-width: 360px;\n}\n.personal-content {\n min-width: 0;\n}\n.personal-layout.is-mobile {\n flex-direction: column;\n}\n</style>\n"],"names":["t","useI18n","route","useRoute","router","useRouter","user","useUserStore","isMobile","useBreakpoints","breakpointsTailwind","allNav","mustChange","computed","_a","navItems","x","activeKey","hit","menuOptions","go","key","_createElementBlock","_normalizeClass","_unref","_openBlock","_hoisted_1","_createVNode","NMenu","_cache","k","_createElementVNode","_hoisted_2","_hoisted_3","NSelect","o","_hoisted_4","_component_RouterView"],"mappings":";;;;;;;;;;;;;;;AAUA,UAAM,EAAE,GAAAA,EAAA,IAAMC,EAAA,GACRC,IAAQC,EAAA,GACRC,IAASC,EAAA,GACTC,IAAOC,EAAA,GACPC,IAAWC,EAAeC,CAAmB,EAAE,QAAQ,IAAI,GAE3DC,IAAS;AAAA,MACb,EAAE,KAAK,qBAAqB,UAAU,eAAA;AAAA,MACtC,EAAE,KAAK,sBAAsB,UAAU,gBAAA;AAAA,MACvC,EAAE,KAAK,sBAAsB,UAAU,gBAAA;AAAA,MACvC,EAAE,KAAK,sBAAsB,UAAU,gBAAA;AAAA,MACvC,EAAE,KAAK,sBAAsB,UAAU,gBAAA;AAAA,IAAgB,GAGnDC,IAAaC,EAAS,MAAA;;AAAM,cAAC,GAACC,IAAAR,EAAK,aAAL,QAAAQ,EAAe;AAAA,KAAkB,GAE/DC,IAAWF,EAAS,OACXD,EAAW,QAAQD,EAAO,OAAO,CAAAK,MAAKA,EAAE,QAAQ,oBAAoB,IAAI,CAAC,GAAGL,CAAM,GACnF,IAAI,CAAAK,OAAM,EAAE,KAAKA,EAAE,KAAK,OAAOhB,EAAEgB,EAAE,QAAQ,EAAA,EAAI,CAC5D,GAEKC,IAAYJ,EAAS,MAAM;;AAC/B,YAAMK,IAAMH,EAAS,MAAM,KAAK,OAAKb,EAAM,SAASc,EAAE,OAAOd,EAAM,KAAK,WAAWc,EAAE,MAAM,GAAG,CAAC;AAC/F,cAAOE,KAAA,gBAAAA,EAAK,UAAOJ,IAAAC,EAAS,MAAM,CAAC,MAAhB,gBAAAD,EAAmB,QAAO;AAAA,IAC/C,CAAC,GAEKK,IAAcN,EAAS,MAAME,EAAS,MAAM,IAAI,CAAAC,OAAM,EAAE,KAAKA,EAAE,KAAK,OAAOA,EAAE,MAAA,EAAQ,CAAC;AAE5F,aAASI,EAAGC,GAAa;AACvB,MAAIA,MAAQnB,EAAM,QAAWE,EAAO,KAAKiB,CAAG;AAAA,IAC9C;;;kBAIEC,EAqBM,OAAA;AAAA,QArBD,OAAKC,EAAA,CAAC,mBAAiB,EAAA,aAAwBC,EAAAhB,CAAA,GAAQ,CAAA;AAAA,MAAA;QAC5CgB,EAAAhB,CAAA,iBAAdiB,KAAAH,EAOQ,SAPRI,GAOQ;AAAA,UANNC,EAKEH,EAAAI,CAAA,GAAA;AAAA,YAJC,OAAOX,EAAA;AAAA,YACP,SAASE,EAAA;AAAA,YACT,QAAQ;AAAA,YACR,kBAAYU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,MAAcV,EAAGU,CAAC;AAAA,UAAA;;QAGtCC,EAWM,OAXNC,GAWM;AAAA,UAVOR,EAAAhB,CAAA,KAAXiB,KAAAH,EAMM,OANNW,GAMM;AAAA,YALJN,EAIEH,EAAAU,CAAA,GAAA;AAAA,cAHC,OAAOjB,EAAA;AAAA,cACP,SAASE,EAAA,MAAY,IAAI,CAAAgB,OAAC,EAAA,OAAcA,EAAE,OAAK,OAASA,EAAE,IAAA,EAAG;AAAA,cAC7D,kBAAYN,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,MAAcV,EAAGU,CAAC;AAAA,YAAA;;UAGtCC,EAEM,OAFNK,GAEM;AAAA,YADJT,EAAcU,CAAA;AAAA,UAAA;;;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label: string;
|
|
3
|
+
};
|
|
4
|
+
declare var __VLS_1: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_1) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defineComponent as o, openBlock as a, createElementBlock as s, createElementVNode as t, toDisplayString as n, renderSlot as r } from "vue";
|
|
2
|
+
const c = ["aria-label"], i = { class: "lbl" }, d = { class: "ctl" }, m = /* @__PURE__ */ o({
|
|
3
|
+
__name: "SettingRow",
|
|
4
|
+
props: {
|
|
5
|
+
label: {}
|
|
6
|
+
},
|
|
7
|
+
setup(e) {
|
|
8
|
+
return (l, _) => (a(), s("div", {
|
|
9
|
+
class: "row",
|
|
10
|
+
role: "group",
|
|
11
|
+
"aria-label": e.label
|
|
12
|
+
}, [
|
|
13
|
+
t("span", i, n(e.label), 1),
|
|
14
|
+
t("div", d, [
|
|
15
|
+
r(l.$slots, "default", {}, void 0, !0)
|
|
16
|
+
])
|
|
17
|
+
], 8, c));
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
export {
|
|
21
|
+
m as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=SettingRow2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow2.vue.js","sources":["../../src/layouts/SettingRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 设置项行:左标签 + 右控件槽。槽内是 Naive 自绘控件(n-switch/n-select),无法用原生 <label for> 绑定,\n// 故给整行 role=\"group\" + aria-label,让读屏聚焦控件时能读到这项设置名(可见 span 仍留给视觉)。\ndefineProps<{ label: string }>()\n</script>\n\n<template>\n <div class=\"row\" role=\"group\" :aria-label=\"label\">\n <span class=\"lbl\">{{ label }}</span>\n <div class=\"ctl\"><slot /></div>\n </div>\n</template>\n\n<style scoped>\n.row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n min-height: 40px;\n}\n.lbl {\n color: var(--color-text-secondary);\n font-size: var(--font-size-sm);\n white-space: nowrap;\n}\n.ctl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n</style>\n"],"names":["_createElementBlock","__props","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","_renderSlot","_ctx"],"mappings":";;;;;;;2BAOEA,EAGM,OAAA;AAAA,MAHD,OAAM;AAAA,MAAM,MAAK;AAAA,MAAS,cAAYC,EAAA;AAAA,IAAA;MACzCC,EAAoC,QAApCC,GAAoCC,EAAfH,EAAA,KAAK,GAAA,CAAA;AAAA,MAC1BC,EAA+B,OAA/BG,GAA+B;AAAA,QAAdC,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,MAAA;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type __VLS_ModelProps = {
|
|
2
|
+
'show'?: boolean;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
5
|
+
"update:show": (value: boolean) => any;
|
|
6
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
7
|
+
"onUpdate:show"?: ((value: boolean) => any) | undefined;
|
|
8
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import t from "./SettingsDrawer2.vue.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import o from "../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const f = /* @__PURE__ */ o(t, [["__scopeId", "data-v-adecf714"]]);
|
|
5
|
+
export {
|
|
6
|
+
f as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=SettingsDrawer.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsDrawer.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|