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,427 @@
|
|
|
1
|
+
import { defineComponent as J, ref as s, computed as Q, onMounted as X, watch as Y, resolveDirective as Z, openBlock as f, createElementBlock as ee, Fragment as re, createElementVNode as A, createVNode as i, unref as a, withCtx as n, toDisplayString as v, createBlock as h, createTextVNode as k, createCommentVNode as te, withDirectives as x, h as m } from "vue";
|
|
2
|
+
import { useRoute as oe } from "vue-router";
|
|
3
|
+
import { useMessage as ae, NCard as le, NButton as p, NTree as se, NAvatar as ie, NTag as ne, NSpace as ue, NPopconfirm as me, NDropdown as de } from "naive-ui";
|
|
4
|
+
import { useI18n as pe } from "vue-i18n";
|
|
5
|
+
import { SmartTable as ce } from "smart-naive-table";
|
|
6
|
+
import E from "../../../components/AppIcon.vue.js";
|
|
7
|
+
import fe from "../../../components/StatusSwitch/index.vue.js";
|
|
8
|
+
import ve from "../../../components/DictTag/index.vue.js";
|
|
9
|
+
import ye from "../../../components/ImportWizard/index.vue.js";
|
|
10
|
+
import ge from "../../../components/ExportColumnsModal/index.vue.js";
|
|
11
|
+
import he from "./components/UserFormModal.vue.js";
|
|
12
|
+
import ke from "./components/ResetPasswordModal.vue.js";
|
|
13
|
+
import { useConfirm as be } from "../../../composables/useConfirm.js";
|
|
14
|
+
import { useBatchDelete as we } from "../../../composables/useBatchDelete.js";
|
|
15
|
+
import { userApi as u, positionApi as xe, roleApi as Ee, orgApi as Ne, mfaApi as Se } from "../../../api/index.js";
|
|
16
|
+
import { useAuthStore as Te } from "../../../stores/auth.js";
|
|
17
|
+
import { translateError as U } from "../../../utils/error.js";
|
|
18
|
+
import { triggerBlobDownload as Ce } from "../../../utils/download.js";
|
|
19
|
+
import { buildTree as Pe } from "../../../utils/tree.js";
|
|
20
|
+
const Ie = { class: "user-layout side-page" }, Ae = { class: "org-filter-head" }, ze = { class: "org-filter-title" }, Ye = /* @__PURE__ */ J({
|
|
21
|
+
__name: "index",
|
|
22
|
+
setup(Me) {
|
|
23
|
+
const { t } = pe(), N = ae(), { run: _, confirm: $ } = be(), y = Te(), d = s(), {
|
|
24
|
+
checkedKeys: z,
|
|
25
|
+
hasSelection: B,
|
|
26
|
+
run: F
|
|
27
|
+
} = we({
|
|
28
|
+
remove: u.batchRemove,
|
|
29
|
+
refresh: () => {
|
|
30
|
+
var e;
|
|
31
|
+
return (e = d.value) == null ? void 0 : e.refresh();
|
|
32
|
+
},
|
|
33
|
+
successMsg: t("user.deleted")
|
|
34
|
+
}), S = s(null), T = s(null), b = s(!1);
|
|
35
|
+
async function q(e) {
|
|
36
|
+
var r;
|
|
37
|
+
b.value = !0;
|
|
38
|
+
try {
|
|
39
|
+
await $({
|
|
40
|
+
content: t("user.clearMfaConfirm", { name: e.name }),
|
|
41
|
+
action: () => Se.clear({ userId: e.id }),
|
|
42
|
+
successMsg: t("user.mfaCleared")
|
|
43
|
+
}) && ((r = d.value) == null || r.refresh());
|
|
44
|
+
} finally {
|
|
45
|
+
b.value = !1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const M = s([]), C = s([]), R = s([]), O = s([]), c = s(null), V = Q(
|
|
49
|
+
() => c.value == null ? {} : { orgId: c.value }
|
|
50
|
+
);
|
|
51
|
+
function G(e) {
|
|
52
|
+
c.value = e.length ? Number(e[0]) : null;
|
|
53
|
+
}
|
|
54
|
+
X(async () => {
|
|
55
|
+
try {
|
|
56
|
+
const { items: e } = await xe.page({ page: 1, pageSize: 200 });
|
|
57
|
+
M.value = e.map((r) => ({ label: r.name, value: r.id }));
|
|
58
|
+
} catch {
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const { items: e } = await Ee.page({ page: 1, pageSize: 200 });
|
|
62
|
+
C.value = e.map((r) => ({ label: r.name, value: r.id }));
|
|
63
|
+
} catch {
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const { items: e } = await u.page({ page: 1, pageSize: 200 });
|
|
67
|
+
R.value = e.map((r) => ({ label: `${r.name}(${r.account})`, value: r.id }));
|
|
68
|
+
} catch {
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
O.value = Pe(await Ne.list());
|
|
72
|
+
} catch {
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
const K = oe();
|
|
76
|
+
Y(
|
|
77
|
+
[d, () => K.query.roleId],
|
|
78
|
+
([e, r]) => {
|
|
79
|
+
if (!e) return;
|
|
80
|
+
const l = r == null ? void 0 : Number(r);
|
|
81
|
+
e.params.roleId !== l && (e.params.roleId = l, e.search());
|
|
82
|
+
},
|
|
83
|
+
{ immediate: !0 }
|
|
84
|
+
);
|
|
85
|
+
const D = (e) => (e || "?").slice(0, 1), P = s(!1), w = s(!1), I = s(!1), L = [
|
|
86
|
+
{ key: "Account", title: t("userExport.account") },
|
|
87
|
+
{ key: "Name", title: t("userExport.name") },
|
|
88
|
+
{ key: "Nickname", title: t("userExport.nickname") },
|
|
89
|
+
{ key: "Phone", title: t("userExport.phone") },
|
|
90
|
+
{ key: "Email", title: t("userExport.email") },
|
|
91
|
+
{ key: "Gender", title: t("userExport.gender") },
|
|
92
|
+
{ key: "OrgName", title: t("userExport.orgName") },
|
|
93
|
+
{ key: "PositionName", title: t("userExport.positionName") },
|
|
94
|
+
{ key: "DirectorName", title: t("userExport.directorName") },
|
|
95
|
+
{ key: "Enabled", title: t("userExport.enabled") },
|
|
96
|
+
{ key: "IsSuperAdmin", title: t("userExport.superAdmin"), defaultSelected: !1 },
|
|
97
|
+
{ key: "CreateTime", title: t("userExport.createTime") }
|
|
98
|
+
], j = {
|
|
99
|
+
downloadTemplate: () => u.importTemplate(),
|
|
100
|
+
preview: (e, r) => u.importPreview(e, r),
|
|
101
|
+
validate: (e) => u.importValidate(e),
|
|
102
|
+
commit: (e, r) => u.importCommit(e, r),
|
|
103
|
+
errorReport: (e) => u.importErrorReport(e)
|
|
104
|
+
};
|
|
105
|
+
async function W(e) {
|
|
106
|
+
var l;
|
|
107
|
+
const r = ((l = d.value) == null ? void 0 : l.params) ?? {};
|
|
108
|
+
I.value = !0;
|
|
109
|
+
try {
|
|
110
|
+
const o = await u.export({
|
|
111
|
+
account: r.account || void 0,
|
|
112
|
+
name: r.name || void 0,
|
|
113
|
+
orgId: r.orgId != null ? Number(r.orgId) : void 0,
|
|
114
|
+
roleId: r.roleId != null ? Number(r.roleId) : void 0,
|
|
115
|
+
sortField: r.sortField || void 0,
|
|
116
|
+
sortOrder: r.sortOrder || void 0,
|
|
117
|
+
columns: e.join(",")
|
|
118
|
+
});
|
|
119
|
+
Ce(o, t("userExport.fileName")), w.value = !1, N.success(t("export.done"));
|
|
120
|
+
} catch (o) {
|
|
121
|
+
N.error(U(o));
|
|
122
|
+
} finally {
|
|
123
|
+
I.value = !1;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const H = [
|
|
127
|
+
{ type: "index", title: () => t("common.rowNo"), width: 64, align: "center" },
|
|
128
|
+
// 超管行禁勾:批量删除同样不可含超管(后端也会整体拒绝)
|
|
129
|
+
{ type: "selection", disabled: (e) => e.isSuperAdmin },
|
|
130
|
+
{
|
|
131
|
+
key: "avatar",
|
|
132
|
+
title: () => t("user.avatar"),
|
|
133
|
+
width: 64,
|
|
134
|
+
align: "center",
|
|
135
|
+
hideInSetting: !1,
|
|
136
|
+
render: (e) => m(
|
|
137
|
+
ie,
|
|
138
|
+
{ round: !0, size: "small", src: e.avatar || void 0 },
|
|
139
|
+
e.avatar ? { fallback: () => D(e.name) } : { default: () => D(e.name) }
|
|
140
|
+
)
|
|
141
|
+
},
|
|
142
|
+
{ key: "account", title: () => t("user.account"), search: !0, sorter: !0 },
|
|
143
|
+
{ key: "name", title: () => t("user.name"), search: !0 },
|
|
144
|
+
{ key: "phone", title: () => t("user.phone"), render: (e) => e.phone || "—" },
|
|
145
|
+
{
|
|
146
|
+
key: "gender",
|
|
147
|
+
title: () => t("user.gender"),
|
|
148
|
+
width: 80,
|
|
149
|
+
hideInTable: !0,
|
|
150
|
+
// 次要列:默认隐藏收窄整表,列设置抽屉可打开
|
|
151
|
+
render: (e) => e.gender ? m(ve, { typeCode: "gender", value: e.gender }) : "—"
|
|
152
|
+
},
|
|
153
|
+
// 只作搜索项,不进表格也不进列设置。options 直接吃编辑表单已拉好的 roleOptions(SmartTable 支持 Ref 选项源),不额外发请求;
|
|
154
|
+
// 列上有 options,搜索控件自动是 select。
|
|
155
|
+
{
|
|
156
|
+
key: "roleId",
|
|
157
|
+
title: () => t("user.roles"),
|
|
158
|
+
hideInTable: !0,
|
|
159
|
+
options: C,
|
|
160
|
+
search: { props: { clearable: !0 } }
|
|
161
|
+
},
|
|
162
|
+
{ key: "orgName", title: () => t("user.org"), render: (e) => e.orgName || "—" },
|
|
163
|
+
{
|
|
164
|
+
key: "positionName",
|
|
165
|
+
title: () => t("user.position"),
|
|
166
|
+
hideInTable: !0,
|
|
167
|
+
render: (e) => e.positionName || "—"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
key: "enabled",
|
|
171
|
+
title: () => t("user.status"),
|
|
172
|
+
width: 90,
|
|
173
|
+
render: (e) => m(fe, {
|
|
174
|
+
value: e.enabled,
|
|
175
|
+
// 超管不可停用(防自锁 —— 停了就没法从 UI 恢复;后端也保护);无启停权限亦置灰。
|
|
176
|
+
disabled: e.isSuperAdmin || !y.hasPerm("PUT:/api/v1/sys/user/{id}/enabled"),
|
|
177
|
+
confirm: (r) => r ? null : t("user.disableConfirm", { name: e.name }),
|
|
178
|
+
request: (r) => u.setEnabled(e.id, r),
|
|
179
|
+
"onUpdate:value": (r) => {
|
|
180
|
+
e.enabled = r;
|
|
181
|
+
}
|
|
182
|
+
})
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
key: "isSuperAdmin",
|
|
186
|
+
title: () => t("user.superAdmin"),
|
|
187
|
+
width: 90,
|
|
188
|
+
render: (e) => e.isSuperAdmin ? m(ne, { type: "warning", size: "small", bordered: !1 }, () => t("user.superAdmin")) : "—"
|
|
189
|
+
},
|
|
190
|
+
{ key: "createTime", title: () => t("user.createTime"), format: "datetime", sorter: !0 },
|
|
191
|
+
// 操作:编辑/删除外露;重置密码、解绑验证器进「更多」(放操作列末尾)。
|
|
192
|
+
// width 须够「编辑+删除+更多」单行;wrap:false 禁止 NSpace 默认换行(否则「更多」掉到删除下一行)。
|
|
193
|
+
{
|
|
194
|
+
key: "op",
|
|
195
|
+
title: () => t("common.operation"),
|
|
196
|
+
width: 200,
|
|
197
|
+
fixed: "right",
|
|
198
|
+
// 钉右:横向滚动时操作列始终可见
|
|
199
|
+
hideInSetting: !0,
|
|
200
|
+
render: (e) => {
|
|
201
|
+
const r = [
|
|
202
|
+
y.hasPerm("PUT:/api/v1/sys/user/{id}/password") ? { key: "resetPassword", label: t("user.resetPassword") } : null,
|
|
203
|
+
e.totpEnabled && y.hasPerm("POST:/api/v1/sys/mfa/clear") ? { key: "clearMfa", label: t("user.clearMfa"), disabled: b.value } : null
|
|
204
|
+
].filter(Boolean);
|
|
205
|
+
return m(ue, { size: 4, wrap: !1, wrapItem: !1 }, () => [
|
|
206
|
+
y.hasPerm("PUT:/api/v1/sys/user/{id}") ? m(
|
|
207
|
+
p,
|
|
208
|
+
{
|
|
209
|
+
size: "small",
|
|
210
|
+
quaternary: !0,
|
|
211
|
+
type: "primary",
|
|
212
|
+
onClick: () => {
|
|
213
|
+
var l;
|
|
214
|
+
return (l = S.value) == null ? void 0 : l.openEdit(e);
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
() => t("common.edit")
|
|
218
|
+
) : null,
|
|
219
|
+
e.isSuperAdmin || !y.hasPerm("DELETE:/api/v1/sys/user/{id}") ? null : m(
|
|
220
|
+
me,
|
|
221
|
+
{
|
|
222
|
+
onPositiveClick: () => _(() => u.remove(e.id), t("user.deleted")).then((l) => {
|
|
223
|
+
var o;
|
|
224
|
+
l && ((o = d.value) == null || o.refresh());
|
|
225
|
+
})
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
trigger: () => m(
|
|
229
|
+
p,
|
|
230
|
+
{ size: "small", quaternary: !0, type: "error" },
|
|
231
|
+
() => t("common.delete")
|
|
232
|
+
),
|
|
233
|
+
default: () => t("user.deleteConfirm", { name: e.name })
|
|
234
|
+
}
|
|
235
|
+
),
|
|
236
|
+
r.length ? m(
|
|
237
|
+
de,
|
|
238
|
+
{
|
|
239
|
+
trigger: "click",
|
|
240
|
+
options: r,
|
|
241
|
+
onSelect: (l) => {
|
|
242
|
+
var o;
|
|
243
|
+
l === "resetPassword" ? (o = T.value) == null || o.openReset(e) : l === "clearMfa" && q(e);
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
() => m(
|
|
247
|
+
p,
|
|
248
|
+
{ size: "small", quaternary: !0, loading: b.value },
|
|
249
|
+
() => t("common.more")
|
|
250
|
+
)
|
|
251
|
+
) : null
|
|
252
|
+
]);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
];
|
|
256
|
+
return (e, r) => {
|
|
257
|
+
const l = Z("auth");
|
|
258
|
+
return f(), ee(re, null, [
|
|
259
|
+
A("div", Ie, [
|
|
260
|
+
i(a(le), {
|
|
261
|
+
class: "org-filter fill-card",
|
|
262
|
+
bordered: !1,
|
|
263
|
+
size: "small"
|
|
264
|
+
}, {
|
|
265
|
+
default: n(() => [
|
|
266
|
+
A("div", Ae, [
|
|
267
|
+
A("span", ze, v(a(t)("user.org")), 1),
|
|
268
|
+
c.value != null ? (f(), h(a(p), {
|
|
269
|
+
key: 0,
|
|
270
|
+
text: "",
|
|
271
|
+
size: "tiny",
|
|
272
|
+
type: "primary",
|
|
273
|
+
onClick: r[0] || (r[0] = (o) => c.value = null)
|
|
274
|
+
}, {
|
|
275
|
+
default: n(() => [
|
|
276
|
+
k(v(a(t)("user.allOrgs")), 1)
|
|
277
|
+
]),
|
|
278
|
+
_: 1
|
|
279
|
+
})) : te("", !0)
|
|
280
|
+
]),
|
|
281
|
+
i(a(se), {
|
|
282
|
+
"block-line": "",
|
|
283
|
+
selectable: "",
|
|
284
|
+
data: O.value,
|
|
285
|
+
"key-field": "id",
|
|
286
|
+
"label-field": "name",
|
|
287
|
+
"children-field": "children",
|
|
288
|
+
"selected-keys": c.value == null ? [] : [c.value],
|
|
289
|
+
"onUpdate:selectedKeys": G
|
|
290
|
+
}, null, 8, ["data", "selected-keys"])
|
|
291
|
+
]),
|
|
292
|
+
_: 1
|
|
293
|
+
}),
|
|
294
|
+
i(a(ce), {
|
|
295
|
+
"default-page-size": 100,
|
|
296
|
+
ref_key: "tableRef",
|
|
297
|
+
ref: d,
|
|
298
|
+
columns: H,
|
|
299
|
+
fetcher: a(u).page,
|
|
300
|
+
params: V.value,
|
|
301
|
+
"flex-height": "",
|
|
302
|
+
"virtual-scroll": "",
|
|
303
|
+
"storage-key": "sys-user",
|
|
304
|
+
"checked-row-keys": a(z),
|
|
305
|
+
"onUpdate:checkedRowKeys": r[4] || (r[4] = (o) => z.value = o),
|
|
306
|
+
onError: r[5] || (r[5] = (o) => a(N).error(a(U)(o)))
|
|
307
|
+
}, {
|
|
308
|
+
toolbar: n(() => [
|
|
309
|
+
x((f(), h(a(p), {
|
|
310
|
+
type: "primary",
|
|
311
|
+
onClick: r[1] || (r[1] = (o) => {
|
|
312
|
+
var g;
|
|
313
|
+
return (g = S.value) == null ? void 0 : g.openAdd();
|
|
314
|
+
})
|
|
315
|
+
}, {
|
|
316
|
+
icon: n(() => [
|
|
317
|
+
i(E, {
|
|
318
|
+
icon: "ph:plus",
|
|
319
|
+
size: 16
|
|
320
|
+
})
|
|
321
|
+
]),
|
|
322
|
+
default: n(() => [
|
|
323
|
+
k(" " + v(a(t)("common.add")), 1)
|
|
324
|
+
]),
|
|
325
|
+
_: 1
|
|
326
|
+
})), [
|
|
327
|
+
[l, "POST:/api/v1/sys/user"]
|
|
328
|
+
]),
|
|
329
|
+
x((f(), h(a(p), {
|
|
330
|
+
type: "error",
|
|
331
|
+
disabled: !a(B),
|
|
332
|
+
onClick: a(F)
|
|
333
|
+
}, {
|
|
334
|
+
icon: n(() => [
|
|
335
|
+
i(E, {
|
|
336
|
+
icon: "ph:trash",
|
|
337
|
+
size: 16
|
|
338
|
+
})
|
|
339
|
+
]),
|
|
340
|
+
default: n(() => [
|
|
341
|
+
k(" " + v(a(t)("common.batchDelete")), 1)
|
|
342
|
+
]),
|
|
343
|
+
_: 1
|
|
344
|
+
}, 8, ["disabled", "onClick"])), [
|
|
345
|
+
[l, "POST:/api/v1/sys/user/batch-delete"]
|
|
346
|
+
]),
|
|
347
|
+
x((f(), h(a(p), {
|
|
348
|
+
onClick: r[2] || (r[2] = (o) => P.value = !0)
|
|
349
|
+
}, {
|
|
350
|
+
icon: n(() => [
|
|
351
|
+
i(E, {
|
|
352
|
+
icon: "ph:upload-simple",
|
|
353
|
+
size: 16
|
|
354
|
+
})
|
|
355
|
+
]),
|
|
356
|
+
default: n(() => [
|
|
357
|
+
k(" " + v(a(t)("import.button")), 1)
|
|
358
|
+
]),
|
|
359
|
+
_: 1
|
|
360
|
+
})), [
|
|
361
|
+
[l, "POST:/api/v1/sys/user/import/preview"]
|
|
362
|
+
]),
|
|
363
|
+
x((f(), h(a(p), {
|
|
364
|
+
onClick: r[3] || (r[3] = (o) => w.value = !0)
|
|
365
|
+
}, {
|
|
366
|
+
icon: n(() => [
|
|
367
|
+
i(E, {
|
|
368
|
+
icon: "ph:download-simple",
|
|
369
|
+
size: 16
|
|
370
|
+
})
|
|
371
|
+
]),
|
|
372
|
+
default: n(() => [
|
|
373
|
+
k(" " + v(a(t)("export.button")), 1)
|
|
374
|
+
]),
|
|
375
|
+
_: 1
|
|
376
|
+
})), [
|
|
377
|
+
[l, "GET:/api/v1/sys/user/export"]
|
|
378
|
+
])
|
|
379
|
+
]),
|
|
380
|
+
_: 1
|
|
381
|
+
}, 8, ["fetcher", "params", "checked-row-keys"])
|
|
382
|
+
]),
|
|
383
|
+
i(he, {
|
|
384
|
+
ref_key: "userFormRef",
|
|
385
|
+
ref: S,
|
|
386
|
+
"position-options": M.value,
|
|
387
|
+
"role-options": C.value,
|
|
388
|
+
"director-options": R.value,
|
|
389
|
+
onSaved: r[6] || (r[6] = () => {
|
|
390
|
+
var o;
|
|
391
|
+
return (o = d.value) == null ? void 0 : o.refresh();
|
|
392
|
+
}),
|
|
393
|
+
onPasswordGenerated: r[7] || (r[7] = (o) => {
|
|
394
|
+
var g;
|
|
395
|
+
return (g = T.value) == null ? void 0 : g.showResult(o, !0);
|
|
396
|
+
})
|
|
397
|
+
}, null, 8, ["position-options", "role-options", "director-options"]),
|
|
398
|
+
i(ke, {
|
|
399
|
+
ref_key: "resetModalRef",
|
|
400
|
+
ref: T
|
|
401
|
+
}, null, 512),
|
|
402
|
+
i(ye, {
|
|
403
|
+
show: P.value,
|
|
404
|
+
"onUpdate:show": r[8] || (r[8] = (o) => P.value = o),
|
|
405
|
+
api: j,
|
|
406
|
+
"template-file-name": a(t)("userExport.importTemplateName"),
|
|
407
|
+
"error-report-file-name": a(t)("userExport.errorReportName"),
|
|
408
|
+
onDone: r[9] || (r[9] = () => {
|
|
409
|
+
var o;
|
|
410
|
+
return (o = d.value) == null ? void 0 : o.refresh();
|
|
411
|
+
})
|
|
412
|
+
}, null, 8, ["show", "template-file-name", "error-report-file-name"]),
|
|
413
|
+
i(ge, {
|
|
414
|
+
show: w.value,
|
|
415
|
+
"onUpdate:show": r[10] || (r[10] = (o) => w.value = o),
|
|
416
|
+
columns: L,
|
|
417
|
+
loading: I.value,
|
|
418
|
+
onConfirm: W
|
|
419
|
+
}, null, 8, ["show", "loading"])
|
|
420
|
+
], 64);
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
export {
|
|
425
|
+
Ye as default
|
|
426
|
+
};
|
|
427
|
+
//# sourceMappingURL=index2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.vue.js","sources":["../../../../src/views/system/user/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 用户管理(写侧)= SmartTable(列表/搜索/分页)+ UserFormModal(新增/编辑)+ ResetPasswordModal(重置/初始口令展示)+ 专用启停端点。\n// 超管行(isSuperAdmin)删除/停用置灰防自锁;启停走专用 setEnabled(非全量 update)。\n// 导入导出:ImportWizard 四步向导 + ExportColumnsModal 选列导出(带当前筛选)。\nimport { computed, h, onMounted, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport {\n NButton,\n NCard,\n NTree,\n NSpace,\n NTag,\n NAvatar,\n NPopconfirm,\n NDropdown,\n useMessage,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { SmartTable, type SmartTableColumn, type SmartTableInst } from 'smart-naive-table'\nimport AppIcon from '#/components/AppIcon.vue'\nimport StatusSwitch from '#/components/StatusSwitch/index.vue'\nimport DictTag from '#/components/DictTag/index.vue'\nimport ImportWizard, { type ImportWizardApi } from '#/components/ImportWizard/index.vue'\nimport ExportColumnsModal from '#/components/ExportColumnsModal/index.vue'\nimport UserFormModal from './components/UserFormModal.vue'\nimport ResetPasswordModal from './components/ResetPasswordModal.vue'\nimport { useConfirm } from '#/composables/useConfirm'\nimport { useBatchDelete } from '#/composables/useBatchDelete'\nimport { mfaApi, userApi, positionApi, roleApi, orgApi } from '#/api'\nimport { useAuthStore } from '#/stores/auth'\nimport { translateError } from '#/utils/error'\nimport { triggerBlobDownload } from '#/utils/download'\nimport { buildTree, type Tree } from '#/utils/tree'\nimport type { ExportColumnDef, SysOrg, UserItem } from '#/types/api'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst { run, confirm } = useConfirm()\nconst authStore = useAuthStore()\nconst tableRef = ref<SmartTableInst<UserItem>>()\nconst {\n checkedKeys,\n hasSelection,\n run: batchDelete,\n} = useBatchDelete({\n remove: userApi.batchRemove,\n refresh: () => tableRef.value?.refresh(),\n successMsg: t('user.deleted'),\n})\n\n// 新增/编辑弹窗 + 重置密码弹窗(表单/校验/保存均在各自组件内,父页只传下拉选项 + 收 saved/passwordGenerated)。\nconst userFormRef = ref<InstanceType<typeof UserFormModal> | null>(null)\nconst resetModalRef = ref<InstanceType<typeof ResetPasswordModal> | null>(null)\n\nconst clearMfaLoading = ref(false)\n\nasync function clearUserMfa(user: UserItem) {\n clearMfaLoading.value = true\n try {\n const ok = await confirm({\n content: t('user.clearMfaConfirm', { name: user.name }),\n action: () => mfaApi.clear({ userId: user.id }),\n successMsg: t('user.mfaCleared'),\n })\n if (ok) tableRef.value?.refresh()\n } finally {\n clearMfaLoading.value = false\n }\n}\n\n// 职位/角色/主管下拉:各拉一页足量。ponytail: 200 覆盖绝大多数系统;真超再上分页搜索。\n// roleOptions 一份两用:既喂编辑弹窗,也当列表页「角色」搜索项的选项源(SmartTable 支持 Ref 选项源)。\nconst positionOptions = ref<{ label: string; value: number }[]>([])\nconst roleOptions = ref<{ label: string; value: number }[]>([])\nconst directorOptions = ref<{ label: string; value: number }[]>([])\n// 左侧机构树筛选:选中节点即按其机构过滤用户;params 深监听联动 SmartTable(回第 1 页重查)。\nconst orgTree = ref<Tree<SysOrg>[]>([])\nconst selectedOrgId = ref<number | null>(null)\nconst tableParams = computed(() =>\n selectedOrgId.value == null ? {} : { orgId: selectedOrgId.value },\n)\nfunction onOrgSelect(keys: (string | number)[]) {\n // 再点选中项 → 取消选中 → 恢复全部\n selectedOrgId.value = keys.length ? Number(keys[0]) : null\n}\nonMounted(async () => {\n try {\n const { items } = await positionApi.page({ page: 1, pageSize: 200 })\n positionOptions.value = items.map(p => ({ label: p.name, value: p.id }))\n } catch {\n // 静默:职位是配角,不打断列表\n }\n try {\n const { items } = await roleApi.page({ page: 1, pageSize: 200 })\n roleOptions.value = items.map(r => ({ label: r.name, value: r.id }))\n } catch {\n // 静默:角色下拉拉取失败不打断列表\n }\n try {\n // 主管候选就是用户自身;拉一页足量作下拉源(允许把某用户选为自己主管,后台系统无害,不加环检)\n const { items } = await userApi.page({ page: 1, pageSize: 200 })\n directorOptions.value = items.map(u => ({ label: `${u.name}(${u.account})`, value: u.id }))\n } catch {\n // 静默:主管下拉是配角,拉取失败不打断列表\n }\n try {\n orgTree.value = buildTree(await orgApi.list())\n } catch {\n // 静默:机构树是筛选辅助,拉取失败不打断列表\n }\n})\n\n// 角色反查:角色页「查看用户」跳这里并带 ?roleId=。\n// 必须 watch 而非 onMounted:标签页按 path 做主键且页面被 keep-alive,本页标签已开着时再跳一次只换 query,\n// 组件实例被复用、onMounted 不会再触发。\n// 同时把 tableRef 一起纳入监听源:immediate 在 setup 期求值,那时表格实例还没挂上(ref 为空),\n// 只听 query 的话冷启动这一路会静默失效——实例就绪时这条 watch 会再触发一次,把筛选补上。\nconst route = useRoute()\nwatch(\n [tableRef, () => route.query.roleId],\n ([inst, roleId]) => {\n if (!inst) return\n const next = roleId == null ? undefined : Number(roleId)\n if (inst.params.roleId === next) return // 防抖:实例就绪与 query 变化可能各触发一次\n inst.params.roleId = next\n inst.search() // 回第 1 页重查\n },\n { immediate: true },\n)\n\n// 头像首字母兜底。NAvatar 的规矩:default 插槽一有内容就渲染它、彻底无视 src(见 naive Avatar.render)。\n// 所以有头像时 default 必须留空让 <img> 出来,首字母只放 #fallback(图挂了/链过期才兜底);无头像才用 default 当文字头像。\nconst initial = (name?: string | null) => (name || '?').slice(0, 1)\n\n// ── 导入 / 导出 ──\nconst importShow = ref(false)\nconst exportShow = ref(false)\nconst exporting = ref(false)\n\n/** 与后端 UserExportProfile.Columns 对齐(前端无列清单端点,照档案硬编码)。 */\nconst userExportColumns: ExportColumnDef[] = [\n { key: 'Account', title: t('userExport.account') },\n { key: 'Name', title: t('userExport.name') },\n { key: 'Nickname', title: t('userExport.nickname') },\n { key: 'Phone', title: t('userExport.phone') },\n { key: 'Email', title: t('userExport.email') },\n { key: 'Gender', title: t('userExport.gender') },\n { key: 'OrgName', title: t('userExport.orgName') },\n { key: 'PositionName', title: t('userExport.positionName') },\n { key: 'DirectorName', title: t('userExport.directorName') },\n { key: 'Enabled', title: t('userExport.enabled') },\n { key: 'IsSuperAdmin', title: t('userExport.superAdmin'), defaultSelected: false },\n { key: 'CreateTime', title: t('userExport.createTime') },\n]\n\nconst userImportApi: ImportWizardApi = {\n downloadTemplate: () => userApi.importTemplate(),\n preview: (file, mapping) => userApi.importPreview(file, mapping),\n validate: rows => userApi.importValidate(rows),\n commit: (rows, strategy) => userApi.importCommit(rows, strategy),\n errorReport: rows => userApi.importErrorReport(rows),\n}\n\n/** 导出:带当前 SmartTable 筛选(含左侧机构树 orgId)+ 选中列。 */\nasync function onExport(keys: string[]) {\n const p = tableRef.value?.params ?? {}\n exporting.value = true\n try {\n const blob = await userApi.export({\n account: p.account || undefined,\n name: p.name || undefined,\n orgId: p.orgId != null ? Number(p.orgId) : undefined,\n roleId: p.roleId != null ? Number(p.roleId) : undefined,\n sortField: p.sortField || undefined,\n sortOrder: p.sortOrder || undefined,\n columns: keys.join(','),\n })\n triggerBlobDownload(blob, t('userExport.fileName'))\n exportShow.value = false\n message.success(t('export.done'))\n } catch (e) {\n message.error(translateError(e))\n } finally {\n exporting.value = false\n }\n}\n\nconst columns: SmartTableColumn<UserItem>[] = [\n { type: 'index', title: () => t('common.rowNo'), width: 64, align: 'center' },\n // 超管行禁勾:批量删除同样不可含超管(后端也会整体拒绝)\n { type: 'selection', disabled: (r: UserItem) => r.isSuperAdmin },\n {\n key: 'avatar',\n title: () => t('user.avatar'),\n width: 64,\n align: 'center',\n hideInSetting: false,\n render: r =>\n h(\n NAvatar,\n { round: true, size: 'small', src: r.avatar || undefined },\n r.avatar ? { fallback: () => initial(r.name) } : { default: () => initial(r.name) },\n ),\n },\n { key: 'account', title: () => t('user.account'), search: true, sorter: true },\n { key: 'name', title: () => t('user.name'), search: true },\n { key: 'phone', title: () => t('user.phone'), render: r => r.phone || '—' },\n {\n key: 'gender',\n title: () => t('user.gender'),\n width: 80,\n hideInTable: true, // 次要列:默认隐藏收窄整表,列设置抽屉可打开\n render: r => (r.gender ? h(DictTag, { typeCode: 'gender', value: r.gender }) : '—'),\n },\n // 只作搜索项,不进表格也不进列设置。options 直接吃编辑表单已拉好的 roleOptions(SmartTable 支持 Ref 选项源),不额外发请求;\n // 列上有 options,搜索控件自动是 select。\n {\n key: 'roleId',\n title: () => t('user.roles'),\n hideInTable: true,\n options: roleOptions,\n search: { props: { clearable: true } },\n },\n { key: 'orgName', title: () => t('user.org'), render: r => r.orgName || '—' },\n {\n key: 'positionName',\n title: () => t('user.position'),\n hideInTable: true,\n render: r => r.positionName || '—',\n },\n {\n key: 'enabled',\n title: () => t('user.status'),\n width: 90,\n render: r =>\n h(StatusSwitch, {\n value: r.enabled,\n // 超管不可停用(防自锁 —— 停了就没法从 UI 恢复;后端也保护);无启停权限亦置灰。\n disabled: r.isSuperAdmin || !authStore.hasPerm('PUT:/api/v1/sys/user/{id}/enabled'),\n confirm: (next: boolean) => (next ? null : t('user.disableConfirm', { name: r.name })),\n request: (next: boolean) => userApi.setEnabled(r.id, next),\n 'onUpdate:value': (v: boolean) => {\n r.enabled = v\n },\n }),\n },\n {\n key: 'isSuperAdmin',\n title: () => t('user.superAdmin'),\n width: 90,\n render: r =>\n r.isSuperAdmin\n ? h(NTag, { type: 'warning', size: 'small', bordered: false }, () => t('user.superAdmin'))\n : '—',\n },\n { key: 'createTime', title: () => t('user.createTime'), format: 'datetime', sorter: true },\n // 操作:编辑/删除外露;重置密码、解绑验证器进「更多」(放操作列末尾)。\n // width 须够「编辑+删除+更多」单行;wrap:false 禁止 NSpace 默认换行(否则「更多」掉到删除下一行)。\n {\n key: 'op',\n title: () => t('common.operation'),\n width: 200,\n fixed: 'right', // 钉右:横向滚动时操作列始终可见\n hideInSetting: true,\n render: r => {\n const moreOptions = [\n authStore.hasPerm('PUT:/api/v1/sys/user/{id}/password')\n ? { key: 'resetPassword', label: t('user.resetPassword') }\n : null,\n r.totpEnabled && authStore.hasPerm('POST:/api/v1/sys/mfa/clear')\n ? { key: 'clearMfa', label: t('user.clearMfa'), disabled: clearMfaLoading.value }\n : null,\n ].filter(Boolean) as { key: string; label: string; disabled?: boolean }[]\n return h(NSpace, { size: 4, wrap: false, wrapItem: false }, () => [\n authStore.hasPerm('PUT:/api/v1/sys/user/{id}')\n ? h(\n NButton,\n {\n size: 'small',\n quaternary: true,\n type: 'primary',\n onClick: () => userFormRef.value?.openEdit(r),\n },\n () => t('common.edit'),\n )\n : null,\n r.isSuperAdmin || !authStore.hasPerm('DELETE:/api/v1/sys/user/{id}')\n ? null\n : h(\n NPopconfirm,\n {\n onPositiveClick: () =>\n run(() => userApi.remove(r.id), t('user.deleted')).then(ok => {\n if (ok) tableRef.value?.refresh()\n }),\n },\n {\n trigger: () =>\n h(NButton, { size: 'small', quaternary: true, type: 'error' }, () =>\n t('common.delete'),\n ),\n default: () => t('user.deleteConfirm', { name: r.name }),\n },\n ),\n moreOptions.length\n ? h(\n NDropdown,\n {\n trigger: 'click',\n options: moreOptions,\n onSelect: (key: string) => {\n if (key === 'resetPassword') resetModalRef.value?.openReset(r)\n else if (key === 'clearMfa') void clearUserMfa(r)\n },\n },\n () =>\n h(\n NButton,\n { size: 'small', quaternary: true, loading: clearMfaLoading.value },\n () => t('common.more'),\n ),\n )\n : null,\n ])\n },\n },\n]\n</script>\n\n<template>\n <!-- 「左分组栏 + 右列表」= styles/layout.css 里的形状 3:.side-page 负责 display/gap/拉伸/整屏高度。 -->\n <div class=\"user-layout side-page\">\n <!-- 左侧机构树筛选 -->\n <n-card class=\"org-filter fill-card\" :bordered=\"false\" size=\"small\">\n <div class=\"org-filter-head\">\n <span class=\"org-filter-title\">{{ t('user.org') }}</span>\n <n-button\n v-if=\"selectedOrgId != null\"\n text\n size=\"tiny\"\n type=\"primary\"\n @click=\"selectedOrgId = null\"\n >\n {{ t('user.allOrgs') }}\n </n-button>\n </div>\n <n-tree\n block-line\n selectable\n :data=\"orgTree\"\n key-field=\"id\"\n label-field=\"name\"\n children-field=\"children\"\n :selected-keys=\"selectedOrgId == null ? [] : [selectedOrgId]\"\n @update:selected-keys=\"onOrgSelect\"\n />\n </n-card>\n\n <SmartTable\n :default-page-size=\"100\"\n ref=\"tableRef\"\n :columns=\"columns\"\n :fetcher=\"userApi.page\"\n :params=\"tableParams\"\n flex-height\n virtual-scroll\n storage-key=\"sys-user\"\n :checked-row-keys=\"checkedKeys\"\n @update:checked-row-keys=\"(keys: (string | number)[]) => (checkedKeys = keys)\"\n @error=\"e => message.error(translateError(e))\"\n >\n <template #toolbar>\n <n-button v-auth=\"'POST:/api/v1/sys/user'\" type=\"primary\" @click=\"userFormRef?.openAdd()\">\n <template #icon><AppIcon icon=\"ph:plus\" :size=\"16\" /></template>\n {{ t('common.add') }}\n </n-button>\n <n-button\n v-auth=\"'POST:/api/v1/sys/user/batch-delete'\"\n type=\"error\"\n :disabled=\"!hasSelection\"\n @click=\"batchDelete\"\n >\n <template #icon><AppIcon icon=\"ph:trash\" :size=\"16\" /></template>\n {{ t('common.batchDelete') }}\n </n-button>\n <!-- 权限码一字不差:导入入口 = preview;导出 = export -->\n <n-button v-auth=\"'POST:/api/v1/sys/user/import/preview'\" @click=\"importShow = true\">\n <template #icon><AppIcon icon=\"ph:upload-simple\" :size=\"16\" /></template>\n {{ t('import.button') }}\n </n-button>\n <n-button v-auth=\"'GET:/api/v1/sys/user/export'\" @click=\"exportShow = true\">\n <template #icon><AppIcon icon=\"ph:download-simple\" :size=\"16\" /></template>\n {{ t('export.button') }}\n </n-button>\n </template>\n </SmartTable>\n </div>\n\n <UserFormModal\n ref=\"userFormRef\"\n :position-options=\"positionOptions\"\n :role-options=\"roleOptions\"\n :director-options=\"directorOptions\"\n @saved=\"() => tableRef?.refresh()\"\n @password-generated=\"p => resetModalRef?.showResult(p, true)\"\n />\n\n <ResetPasswordModal ref=\"resetModalRef\" />\n\n <ImportWizard\n v-model:show=\"importShow\"\n :api=\"userImportApi\"\n :template-file-name=\"t('userExport.importTemplateName')\"\n :error-report-file-name=\"t('userExport.errorReportName')\"\n @done=\"() => tableRef?.refresh()\"\n />\n\n <ExportColumnsModal\n v-model:show=\"exportShow\"\n :columns=\"userExportColumns\"\n :loading=\"exporting\"\n @confirm=\"onExport\"\n />\n</template>\n\n<style scoped>\n/* 左树 + 右表:display / gap / 拉伸 / 整屏高度都在 styles/layout.css 的 .side-page,这里只定侧栏宽度。 */\n.org-filter {\n flex: 0 0 200px;\n}\n/* 整页定高,侧栏不跟着内容长高:树吃满卡片剩余高度,自己竖向滚动。 */\n.org-filter :deep(.n-tree) {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n.org-filter-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n.org-filter-title {\n font-weight: 600;\n font-size: var(--font-size-sm, 13px);\n}\n</style>\n"],"names":["useI18n","message","useMessage","run","confirm","useConfirm","authStore","useAuthStore","tableRef","ref","checkedKeys","hasSelection","batchDelete","useBatchDelete","userApi","_a","userFormRef","resetModalRef","clearMfaLoading","clearUserMfa","user","mfaApi","positionOptions","roleOptions","directorOptions","orgTree","selectedOrgId","tableParams","computed","onOrgSelect","keys","onMounted","items","positionApi","p","roleApi","u","buildTree","orgApi","route","useRoute","watch","inst","roleId","next","initial","name","importShow","exportShow","exporting","userExportColumns","userImportApi","file","mapping","rows","strategy","onExport","blob","triggerBlobDownload","e","translateError","columns","r","h","NAvatar","DictTag","StatusSwitch","v","NTag","moreOptions","NSpace","NButton","NPopconfirm","ok","NDropdown","key","_createElementVNode","_hoisted_1","_createVNode","_unref","NCard","_hoisted_2","_hoisted_3","_toDisplayString","_createBlock","NTree","SmartTable","_cache","$event","AppIcon","_createTextVNode","UserFormModal","ResetPasswordModal","ImportWizard","ExportColumnsModal"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "smart-admin-web",
|
|
3
|
+
"version": "10.5.0",
|
|
4
|
+
"description": "SmartAdmin 前端内核:布局、路由、鉴权、内置系统页与共享组件,配合 SmartAdmin NuGet 包使用",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"smartadmin",
|
|
7
|
+
"admin",
|
|
8
|
+
"rbac",
|
|
9
|
+
"vue3",
|
|
10
|
+
"naive-ui"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://smartcode-x.github.io/SmartAdmin/",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/SmartCode-X/SmartAdmin/issues"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/SmartCode-X/SmartAdmin.git",
|
|
19
|
+
"directory": "web/packages/admin"
|
|
20
|
+
},
|
|
21
|
+
"license": "Apache-2.0",
|
|
22
|
+
"type": "module",
|
|
23
|
+
"sideEffects": [
|
|
24
|
+
"**/*.css"
|
|
25
|
+
],
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"main": "./dist/index.js",
|
|
30
|
+
"module": "./dist/index.js",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"import": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./style.css": "./dist/style.css",
|
|
38
|
+
"./package.json": "./package.json"
|
|
39
|
+
},
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=22.12"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "vue-tsc --noEmit && vite build",
|
|
45
|
+
"prepack": "npm run build",
|
|
46
|
+
"typecheck": "vue-tsc --noEmit",
|
|
47
|
+
"test": "vitest run",
|
|
48
|
+
"test:watch": "vitest",
|
|
49
|
+
"gen:api": "node scripts/gen-api.mjs",
|
|
50
|
+
"gen:icons": "node scripts/gen-icon-subset.mjs"
|
|
51
|
+
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@iconify/vue": "^5.0.1",
|
|
54
|
+
"@vueuse/core": "^14.4.0",
|
|
55
|
+
"naive-ui": "^2.45.3",
|
|
56
|
+
"pinia": "^4.0.3",
|
|
57
|
+
"smart-naive-icon": "^2.0.0",
|
|
58
|
+
"smart-naive-table": "^2.0.0",
|
|
59
|
+
"vue": "^3.5.42",
|
|
60
|
+
"vue-i18n": "^11.4.10",
|
|
61
|
+
"vue-router": "^4.5.0"
|
|
62
|
+
},
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"@iconify-json/ant-design": "^1.2.9",
|
|
65
|
+
"@iconify-json/ep": "^1.2.4",
|
|
66
|
+
"@iconify-json/lucide": "^1.2.129",
|
|
67
|
+
"@iconify-json/ph": "^1.2.2",
|
|
68
|
+
"@microsoft/signalr": "^10.0.11",
|
|
69
|
+
"echarts": "^6.1.0",
|
|
70
|
+
"highlight.js": "^11.12.0",
|
|
71
|
+
"md-editor-v3": "^6.5.6",
|
|
72
|
+
"openapi-fetch": "^0.17.0",
|
|
73
|
+
"pinia-plugin-persistedstate": "^4.2.0",
|
|
74
|
+
"sortablejs": "^1.15.7",
|
|
75
|
+
"vue-echarts": "^8.2.0"
|
|
76
|
+
},
|
|
77
|
+
"devDependencies": {
|
|
78
|
+
"@iconify/utils": "^3.1.7",
|
|
79
|
+
"@iconify/vue": "^5.0.1",
|
|
80
|
+
"@types/node": "^22.13.0",
|
|
81
|
+
"@types/sortablejs": "^1.15.9",
|
|
82
|
+
"@vitejs/plugin-vue": "^6.0.8",
|
|
83
|
+
"@vueuse/core": "^14.4.0",
|
|
84
|
+
"happy-dom": "^20.13.2",
|
|
85
|
+
"naive-ui": "^2.45.3",
|
|
86
|
+
"openapi-typescript": "^7.6.1",
|
|
87
|
+
"pinia": "^4.0.3",
|
|
88
|
+
"smart-naive-icon": "^2.0.0",
|
|
89
|
+
"smart-naive-table": "^2.0.0",
|
|
90
|
+
"typescript": "^5.7.3",
|
|
91
|
+
"vite": "^6.0.11",
|
|
92
|
+
"vite-plugin-dts": "^5.1.0",
|
|
93
|
+
"vitest": "^4.1.10",
|
|
94
|
+
"vue": "^3.5.42",
|
|
95
|
+
"vue-i18n": "^11.4.10",
|
|
96
|
+
"vue-router": "^4.5.0",
|
|
97
|
+
"vue-tsc": "^3.3.11"
|
|
98
|
+
}
|
|
99
|
+
}
|