smart-admin-web 10.14.0 → 10.20.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/README.md +6 -6
- package/dist/api/index.d.ts +41 -2
- package/dist/api/index.js +36 -15
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +418 -6
- package/dist/assets/icons/ph-subset.json.js +7 -7
- package/dist/assets/smart-logo.svg.js +5 -0
- package/dist/assets/smart-logo.svg.js.map +1 -0
- package/dist/components/AppIcon.vue.js +9 -9
- package/dist/components/AppIcon.vue.js.map +1 -1
- package/dist/components/AppWatermark.vue.d.ts +14 -0
- package/dist/components/AppWatermark.vue.js +38 -0
- package/dist/components/AppWatermark.vue.js.map +1 -0
- package/dist/components/AppWatermark2.vue.js +5 -0
- package/dist/components/AppWatermark2.vue.js.map +1 -0
- package/dist/components/Chart/PieChart.vue.d.ts +1 -1
- package/dist/components/Chart/echarts.js +15 -20
- package/dist/components/Chart/echarts.js.map +1 -1
- package/dist/components/CronEditor/index.vue.js +1 -1
- package/dist/components/CronEditor/index2.vue.js +2 -1
- package/dist/components/CronEditor/index2.vue.js.map +1 -1
- package/dist/components/DetailPage/index.vue.js +2 -2
- package/dist/components/DetailPage/index2.vue.js.map +1 -1
- package/dist/components/DictTag/index.vue.js.map +1 -1
- package/dist/components/ErrorBoundary/index.vue.js +2 -2
- package/dist/components/ErrorBoundary/index2.vue.js +1 -1
- package/dist/components/ErrorBoundary/index2.vue.js.map +1 -1
- package/dist/components/FormContainer/index.vue.js +91 -56
- package/dist/components/FormContainer/index.vue.js.map +1 -1
- package/dist/components/ImportWizard/index.vue.js +1 -1
- package/dist/components/ImportWizard/index2.vue.js +44 -41
- package/dist/components/ImportWizard/index2.vue.js.map +1 -1
- package/dist/components/MenuSearch.vue.js +2 -2
- package/dist/components/MenuSearch2.vue.js +19 -18
- package/dist/components/MenuSearch2.vue.js.map +1 -1
- package/dist/components/PasswordStrength/index.vue.js +2 -2
- package/dist/components/PasswordStrength/index2.vue.js +20 -18
- package/dist/components/PasswordStrength/index2.vue.js.map +1 -1
- package/dist/components/SmartLogo.vue.d.ts +3 -0
- package/dist/components/SmartLogo.vue.js +1 -1
- package/dist/components/SmartLogo2.vue.js +22 -64
- package/dist/components/SmartLogo2.vue.js.map +1 -1
- package/dist/{views/system/config/components/GroupExtraConfig.vue.d.ts → components/TableTotal/index.vue.d.ts} +1 -4
- package/dist/components/{SelectTable → TableTotal}/index.vue.js +1 -1
- package/dist/components/TableTotal/index2.vue.js +16 -0
- package/dist/components/TableTotal/index2.vue.js.map +1 -0
- package/dist/components/TableZoomButton/index.vue.js.map +1 -1
- package/dist/components/UserPicker/index.vue.js +2 -2
- package/dist/components/UserPicker/index2.vue.js +176 -117
- package/dist/components/UserPicker/index2.vue.js.map +1 -1
- package/dist/composables/useBatchDelete.js.map +1 -1
- package/dist/composables/useLayoutMenu.js +17 -16
- package/dist/composables/useLayoutMenu.js.map +1 -1
- package/dist/composables/useLoginHero.d.ts +2 -0
- package/dist/composables/useLoginHero.js +22 -0
- package/dist/composables/useLoginHero.js.map +1 -0
- package/dist/composables/useModule.js +39 -29
- package/dist/composables/useModule.js.map +1 -1
- package/dist/composables/usePageTitle.js +16 -14
- package/dist/composables/usePageTitle.js.map +1 -1
- package/dist/composables/useShellBreakpoint.d.ts +19 -0
- package/dist/composables/useShellBreakpoint.js +37 -0
- package/dist/composables/useShellBreakpoint.js.map +1 -0
- package/dist/composables/useSite.d.ts +20 -0
- package/dist/composables/useSite.js +18 -13
- package/dist/composables/useSite.js.map +1 -1
- package/dist/composables/useTabTitle.js.map +1 -1
- package/dist/composables/useTableTitle.d.ts +6 -0
- package/dist/composables/useTableTitle.js +11 -0
- package/dist/composables/useTableTitle.js.map +1 -0
- package/dist/composables/useTableZoom.d.ts +5 -0
- package/dist/composables/useTableZoom.js.map +1 -1
- package/dist/composables/useTheme.d.ts +2 -2
- package/dist/composables/useTheme.js +23 -20
- package/dist/composables/useTheme.js.map +1 -1
- package/dist/createSmartAdmin.d.ts +12 -2
- package/dist/createSmartAdmin.js +72 -60
- package/dist/createSmartAdmin.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +223 -208
- package/dist/index.js.map +1 -1
- package/dist/layouts/AccentPicker.vue.js +8 -0
- package/dist/layouts/AccentPicker.vue.js.map +1 -0
- package/dist/layouts/AccentPicker2.vue.js +131 -0
- package/dist/layouts/AccentPicker2.vue.js.map +1 -0
- package/dist/layouts/AppHeader.vue.d.ts +8 -1
- package/dist/layouts/AppHeader.vue.js +2 -2
- package/dist/layouts/AppHeader2.vue.js +317 -235
- package/dist/layouts/AppHeader2.vue.js.map +1 -1
- package/dist/layouts/NoticeBell.vue.js +2 -2
- package/dist/layouts/NoticeBell2.vue.js +1 -1
- package/dist/layouts/NoticeBell2.vue.js.map +1 -1
- package/dist/layouts/PersonalLayout.vue.js +2 -2
- package/dist/layouts/PersonalLayout2.vue.js +69 -47
- package/dist/layouts/PersonalLayout2.vue.js.map +1 -1
- package/dist/layouts/SettingsDrawer.vue.js +3 -3
- package/dist/layouts/SettingsDrawer2.vue.js +261 -325
- package/dist/layouts/SettingsDrawer2.vue.js.map +1 -1
- package/dist/layouts/TabsBar.vue.js +2 -2
- package/dist/layouts/TabsBar2.vue.js +97 -69
- package/dist/layouts/TabsBar2.vue.js.map +1 -1
- package/dist/layouts/components/SideNav.vue.d.ts +3 -0
- package/dist/layouts/components/SideNav.vue.js +1 -1
- package/dist/layouts/components/SideNav2.vue.js +54 -26
- package/dist/layouts/components/SideNav2.vue.js.map +1 -1
- package/dist/layouts/default.vue.js +1 -1
- package/dist/layouts/default2.vue.js +170 -140
- package/dist/layouts/default2.vue.js.map +1 -1
- package/dist/lib/favicon.d.ts +1 -0
- package/dist/lib/favicon.js +12 -0
- package/dist/lib/favicon.js.map +1 -0
- package/dist/lib/loginHero.d.ts +16 -0
- package/dist/lib/loginHero.js +33 -0
- package/dist/lib/loginHero.js.map +1 -0
- package/dist/lib/logoCrop.d.ts +25 -0
- package/dist/lib/logoCrop.js +22 -0
- package/dist/lib/logoCrop.js.map +1 -0
- package/dist/lib/runtime.d.ts +2 -0
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/runtime.js.map +1 -1
- package/dist/lib/securityRules.d.ts +26 -0
- package/dist/lib/securityRules.js +86 -0
- package/dist/lib/securityRules.js.map +1 -0
- package/dist/lib/watermark.d.ts +110 -0
- package/dist/lib/watermark.js +151 -0
- package/dist/lib/watermark.js.map +1 -0
- package/dist/locales/en-US.d.ts +462 -42
- package/dist/locales/en-US.js +491 -78
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/kernelMenuTitles.d.ts +1 -0
- package/dist/locales/kernelMenuTitles.js +128 -0
- package/dist/locales/kernelMenuTitles.js.map +1 -0
- package/dist/locales/menuTitle.d.ts +3 -0
- package/dist/locales/menuTitle.js +14 -12
- package/dist/locales/menuTitle.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +462 -42
- package/dist/locales/zh-CN.js +490 -81
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/index.js +41 -32
- package/dist/router/index.js.map +1 -1
- package/dist/router/namedPage.d.ts +4 -0
- package/dist/router/namedPage.js +7 -7
- package/dist/router/namedPage.js.map +1 -1
- package/dist/router/viewRegistry.js +12 -12
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/stores/app.d.ts +0 -12
- package/dist/stores/app.js +11 -12
- package/dist/stores/app.js.map +1 -1
- package/dist/stores/tabs.js.map +1 -1
- package/dist/stores/user.d.ts +10 -0
- package/dist/stores/user.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/accentTokens.d.ts +27 -0
- package/dist/theme/accentTokens.js +54 -0
- package/dist/theme/accentTokens.js.map +1 -0
- package/dist/theme/accents.d.ts +21 -1
- package/dist/theme/accents.js +11 -2
- package/dist/theme/accents.js.map +1 -1
- package/dist/theme/mix.d.ts +58 -7
- package/dist/theme/mix.js +115 -30
- package/dist/theme/mix.js.map +1 -1
- package/dist/theme/naive-theme.d.ts +5 -2
- package/dist/theme/naive-theme.js +405 -75
- package/dist/theme/naive-theme.js.map +1 -1
- package/dist/utils/jwt.d.ts +8 -0
- package/dist/utils/jwt.js +14 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/menuIcon.d.ts +2 -0
- package/dist/utils/menuIcon.js +8 -0
- package/dist/utils/menuIcon.js.map +1 -0
- package/dist/utils/oauthBrand.d.ts +34 -9
- package/dist/utils/oauthBrand.js +70 -74
- package/dist/utils/oauthBrand.js.map +1 -1
- package/dist/utils/tableFilter.d.ts +88 -0
- package/dist/utils/tableFilter.js +116 -0
- package/dist/utils/tableFilter.js.map +1 -0
- package/dist/utils/tableToolbar.d.ts +18 -0
- package/dist/utils/tableToolbar.js +11 -0
- package/dist/utils/tableToolbar.js.map +1 -0
- package/dist/utils/treeFilter.d.ts +20 -0
- package/dist/utils/treeFilter.js +24 -0
- package/dist/utils/treeFilter.js.map +1 -0
- package/dist/views/dashboard/ShortcutPicker.vue.js +1 -1
- package/dist/views/dashboard/ShortcutPicker2.vue.js +73 -48
- package/dist/views/dashboard/ShortcutPicker2.vue.js.map +1 -1
- package/dist/views/dashboard/biz.vue.js +1 -1
- package/dist/views/dashboard/biz2.vue.js +310 -257
- package/dist/views/dashboard/biz2.vue.js.map +1 -1
- package/dist/views/dashboard/workbench.vue.js +2 -2
- package/dist/views/dashboard/workbench2.vue.js +141 -155
- package/dist/views/dashboard/workbench2.vue.js.map +1 -1
- package/dist/views/embed/iframe.vue.js +2 -2
- package/dist/views/embed/iframe2.vue.js +22 -15
- package/dist/views/embed/iframe2.vue.js.map +1 -1
- package/dist/views/error/404.vue.js +2 -2
- package/dist/views/error/4042.vue.js +33 -24
- package/dist/views/error/4042.vue.js.map +1 -1
- package/dist/views/error/BootError.vue.js +1 -1
- package/dist/views/error/BootError2.vue.js +59 -48
- package/dist/views/error/BootError2.vue.js.map +1 -1
- package/dist/views/error/MissingRoute.vue.js +2 -2
- package/dist/views/error/MissingRoute2.vue.js +34 -15
- package/dist/views/error/MissingRoute2.vue.js.map +1 -1
- package/dist/views/login/LoginForm.vue.d.ts +7 -1
- package/dist/views/login/LoginForm.vue.js +2 -2
- package/dist/views/login/LoginForm2.vue.js +580 -488
- package/dist/views/login/LoginForm2.vue.js.map +1 -1
- package/dist/views/login/components/LoginDesk.vue.d.ts +36 -0
- package/dist/views/login/components/LoginDesk.vue.js +9 -0
- package/dist/views/login/components/LoginDesk.vue.js.map +1 -0
- package/dist/views/login/components/LoginDesk2.vue.js +100 -0
- package/dist/views/login/components/LoginDesk2.vue.js.map +1 -0
- package/dist/views/login/components/LoginHeroPanel.vue.d.ts +18 -0
- package/dist/views/login/components/LoginHeroPanel.vue.js +8 -0
- package/dist/views/login/components/LoginHeroPanel.vue.js.map +1 -0
- package/dist/views/login/components/LoginHeroPanel2.vue.js +61 -0
- package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -0
- package/dist/views/login/index.vue.js +1 -1
- package/dist/views/login/index2.vue.js +141 -71
- package/dist/views/login/index2.vue.js.map +1 -1
- package/dist/views/login/layout.d.ts +11 -0
- package/dist/views/login/layout.js +27 -0
- package/dist/views/login/layout.js.map +1 -0
- package/dist/views/mfa/index.vue.js +2 -2
- package/dist/views/mfa/index2.vue.js +367 -321
- package/dist/views/mfa/index2.vue.js.map +1 -1
- package/dist/views/module/index.vue.js +2 -2
- package/dist/views/module/index2.vue.js +132 -99
- package/dist/views/module/index2.vue.js.map +1 -1
- package/dist/views/oauth/callback.vue.js +2 -2
- package/dist/views/oauth/callback2.vue.js +65 -51
- package/dist/views/oauth/callback2.vue.js.map +1 -1
- package/dist/views/personal/bindings.vue.js +2 -2
- package/dist/views/personal/bindings2.vue.js +98 -94
- package/dist/views/personal/bindings2.vue.js.map +1 -1
- package/dist/views/personal/notice2.vue.js +103 -76
- package/dist/views/personal/notice2.vue.js.map +1 -1
- package/dist/views/personal/password2.vue.js +47 -40
- package/dist/views/personal/password2.vue.js.map +1 -1
- package/dist/views/personal/profile.vue.js +3 -3
- package/dist/views/personal/profile2.vue.js +24 -18
- package/dist/views/personal/profile2.vue.js.map +1 -1
- package/dist/views/personal/security.vue.js +2 -2
- package/dist/views/personal/security2.vue.js +65 -53
- package/dist/views/personal/security2.vue.js.map +1 -1
- package/dist/views/personal/sessions.vue.js +2 -2
- package/dist/views/personal/sessions2.vue.js +67 -62
- package/dist/views/personal/sessions2.vue.js.map +1 -1
- package/dist/views/system/ai-model/components/ProviderCard.vue.js +2 -2
- package/dist/views/system/ai-model/components/ProviderCard2.vue.js +142 -130
- package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -1
- package/dist/views/system/ai-model/components/ProviderForm.vue.js +2 -2
- package/dist/views/system/ai-model/components/ProviderForm2.vue.js +71 -70
- package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -1
- package/dist/views/system/ai-model/index.vue.js +2 -2
- package/dist/views/system/ai-model/index2.vue.js +99 -99
- package/dist/views/system/ai-model/index2.vue.js.map +1 -1
- package/dist/views/system/ai-model/presets.d.ts +1 -1
- package/dist/views/system/ai-model/presets.js +18 -18
- package/dist/views/system/ai-model/presets.js.map +1 -1
- package/dist/views/system/ai-usage/index.vue.js +2 -2
- package/dist/views/system/ai-usage/index2.vue.js +356 -258
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
- package/dist/views/system/api-docs/index.vue.js +5 -2
- package/dist/views/system/api-docs/index.vue.js.map +1 -1
- package/dist/views/system/api-docs/index2.vue.js +92 -42
- package/dist/views/system/api-docs/index2.vue.js.map +1 -1
- package/dist/views/system/cache/index.vue.js +2 -2
- package/dist/views/system/cache/index2.vue.js +74 -80
- package/dist/views/system/cache/index2.vue.js.map +1 -1
- package/dist/views/system/config/components/AdminMock.vue.js +8 -0
- package/dist/views/system/config/components/AdminMock.vue.js.map +1 -0
- package/dist/views/system/config/components/AdminMock2.vue.js +93 -0
- package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -0
- package/dist/views/system/config/components/AdvancedSection.vue.js +8 -0
- package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -0
- package/dist/views/system/config/components/AdvancedSection2.vue.js +163 -0
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/BrandSection.vue.d.ts +7 -0
- package/dist/views/system/config/components/BrandSection.vue.js +8 -0
- package/dist/views/system/config/components/BrandSection.vue.js.map +1 -0
- package/dist/views/system/config/components/BrandSection2.vue.js +266 -0
- package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgGroup.vue.d.ts +18 -0
- package/dist/views/system/config/components/CfgGroup.vue.js +8 -0
- package/dist/views/system/config/components/CfgGroup.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgGroup2.vue.js +22 -0
- package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgRow.vue.d.ts +26 -0
- package/dist/views/system/config/components/CfgRow.vue.js +9 -0
- package/dist/views/system/config/components/CfgRow.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgRow2.vue.js +54 -0
- package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgSegment.vue.d.ts +28 -0
- package/dist/views/system/config/components/CfgSegment.vue.js +8 -0
- package/dist/views/system/config/components/CfgSegment.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgSegment2.vue.js +45 -0
- package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.js +4 -1
- package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -1
- package/dist/views/system/config/components/ConfigFormModal2.vue.js +72 -60
- package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
- package/dist/views/system/config/components/JobSection.vue.js +8 -0
- package/dist/views/system/config/components/JobSection.vue.js.map +1 -0
- package/dist/views/system/config/components/JobSection2.vue.js +140 -0
- package/dist/views/system/config/components/JobSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/LoginMock.vue.d.ts +8 -0
- package/dist/views/system/config/components/LoginMock.vue.js +8 -0
- package/dist/views/system/config/components/LoginMock.vue.js.map +1 -0
- package/dist/views/system/config/components/LoginMock2.vue.js +132 -0
- package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoCropper.vue.d.ts +10 -0
- package/dist/views/system/config/components/LogoCropper.vue.js +8 -0
- package/dist/views/system/config/components/LogoCropper.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoCropper2.vue.js +122 -0
- package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoEditor.vue.js +8 -0
- package/dist/views/system/config/components/LogoEditor.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoEditor2.vue.js +161 -0
- package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -0
- package/dist/views/system/config/components/ProviderSheet.vue.d.ts +17 -0
- package/dist/views/system/config/components/ProviderSheet.vue.js +8 -0
- package/dist/views/system/config/components/ProviderSheet.vue.js.map +1 -0
- package/dist/views/system/config/components/ProviderSheet2.vue.js +343 -0
- package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -0
- package/dist/{layouts/SettingRow.vue.d.ts → views/system/config/components/ScaleToFit.vue.d.ts} +2 -1
- package/dist/views/system/config/components/ScaleToFit.vue.js +8 -0
- package/dist/views/system/config/components/ScaleToFit.vue.js.map +1 -0
- package/dist/views/system/config/components/ScaleToFit2.vue.js +41 -0
- package/dist/views/system/config/components/ScaleToFit2.vue.js.map +1 -0
- package/dist/views/system/config/components/SectionLayout.vue.d.ts +30 -0
- package/dist/views/system/config/components/SectionLayout.vue.js +8 -0
- package/dist/views/system/config/components/SectionLayout.vue.js.map +1 -0
- package/dist/views/system/config/components/SectionLayout2.vue.js +69 -0
- package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -0
- package/dist/views/system/config/components/SecuritySection.vue.js +8 -0
- package/dist/views/system/config/components/SecuritySection.vue.js.map +1 -0
- package/dist/views/system/config/components/SecuritySection2.vue.js +417 -0
- package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -0
- package/dist/views/system/config/components/SensitiveSection.vue.js +8 -0
- package/dist/views/system/config/components/SensitiveSection.vue.js.map +1 -0
- package/dist/views/system/config/components/SensitiveSection2.vue.js +214 -0
- package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/SigninSection.vue.js +8 -0
- package/dist/views/system/config/components/SigninSection.vue.js.map +1 -0
- package/dist/views/system/config/components/SigninSection2.vue.js +201 -0
- package/dist/views/system/config/components/SigninSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadSection.vue.js +8 -0
- package/dist/views/system/config/components/UploadSection.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadSection2.vue.js +176 -0
- package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/WatermarkSection.vue.js +8 -0
- package/dist/views/system/config/components/WatermarkSection.vue.js.map +1 -0
- package/dist/views/system/config/components/WatermarkSection2.vue.js +284 -0
- package/dist/views/system/config/components/WatermarkSection2.vue.js.map +1 -0
- package/dist/views/system/config/draft.d.ts +148 -0
- package/dist/views/system/config/draft.js +170 -0
- package/dist/views/system/config/draft.js.map +1 -0
- package/dist/views/system/config/flash.d.ts +2 -0
- package/dist/views/system/config/flash.js +9 -0
- package/dist/views/system/config/flash.js.map +1 -0
- package/dist/views/system/config/groups.d.ts +38 -7
- package/dist/views/system/config/groups.js +104 -14
- package/dist/views/system/config/groups.js.map +1 -1
- package/dist/views/system/config/index.vue.js +6 -2
- package/dist/views/system/config/index.vue.js.map +1 -1
- package/dist/views/system/config/index2.vue.js +201 -111
- package/dist/views/system/config/index2.vue.js.map +1 -1
- package/dist/views/system/config/layoutMode.d.ts +23 -0
- package/dist/views/system/config/layoutMode.js +28 -0
- package/dist/views/system/config/layoutMode.js.map +1 -0
- package/dist/views/system/config/providerForm.d.ts +33 -0
- package/dist/views/system/config/providerForm.js +63 -0
- package/dist/views/system/config/providerForm.js.map +1 -0
- package/dist/views/system/dict/index.vue.js +2 -2
- package/dist/views/system/dict/index2.vue.js +471 -366
- package/dist/views/system/dict/index2.vue.js.map +1 -1
- package/dist/views/system/file/index2.vue.js +91 -76
- package/dist/views/system/file/index2.vue.js.map +1 -1
- package/dist/views/system/job/index.vue.js +3 -3
- package/dist/views/system/job/index2.vue.js +897 -828
- package/dist/views/system/job/index2.vue.js.map +1 -1
- package/dist/views/system/job-log/components/AttemptTable.vue.d.ts +8 -0
- package/dist/views/system/job-log/components/AttemptTable.vue.js +5 -0
- package/dist/views/system/job-log/components/AttemptTable.vue.js.map +1 -0
- package/dist/views/system/job-log/components/AttemptTable2.vue.js +54 -0
- package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -0
- package/dist/views/system/job-log/index.vue.js +2 -2
- package/dist/views/system/job-log/index2.vue.js +193 -207
- package/dist/views/system/job-log/index2.vue.js.map +1 -1
- package/dist/views/system/job-log/runStatus.d.ts +13 -0
- package/dist/views/system/job-log/runStatus.js +26 -0
- package/dist/views/system/job-log/runStatus.js.map +1 -0
- package/dist/views/system/job-monitor/index.vue.js +2 -2
- package/dist/views/system/job-monitor/index2.vue.js +172 -180
- package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
- package/dist/views/system/log/exception/index.vue.js +2 -2
- package/dist/views/system/log/exception/index2.vue.js +135 -96
- package/dist/views/system/log/exception/index2.vue.js.map +1 -1
- package/dist/views/system/log/login/index2.vue.js +62 -41
- package/dist/views/system/log/login/index2.vue.js.map +1 -1
- package/dist/views/system/log/op/index.vue.js +2 -2
- package/dist/views/system/log/op/index2.vue.js +200 -162
- package/dist/views/system/log/op/index2.vue.js.map +1 -1
- package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
- package/dist/views/system/menu/components/ButtonManager2.vue.js +206 -190
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
- package/dist/views/system/menu/components/MenuFormModal.vue.js +2 -2
- package/dist/views/system/menu/components/MenuFormModal2.vue.js +127 -118
- package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -1
- package/dist/views/system/menu/index.vue.js +1 -1
- package/dist/views/system/menu/index2.vue.js +216 -183
- package/dist/views/system/menu/index2.vue.js.map +1 -1
- package/dist/views/system/module/index.vue.js +1 -1
- package/dist/views/system/module/index2.vue.js +177 -144
- package/dist/views/system/module/index2.vue.js.map +1 -1
- package/dist/views/system/monitor/index.vue.js +2 -2
- package/dist/views/system/monitor/index2.vue.js +134 -149
- package/dist/views/system/monitor/index2.vue.js.map +1 -1
- package/dist/views/system/notice/index.vue.js +1 -1
- package/dist/views/system/notice/index2.vue.js +209 -181
- package/dist/views/system/notice/index2.vue.js.map +1 -1
- package/dist/views/system/org/index.vue.js +1 -1
- package/dist/views/system/org/index2.vue.js +278 -248
- package/dist/views/system/org/index2.vue.js.map +1 -1
- package/dist/views/system/position/index.vue.js +5 -2
- package/dist/views/system/position/index.vue.js.map +1 -1
- package/dist/views/system/position/index2.vue.js +128 -92
- package/dist/views/system/position/index2.vue.js.map +1 -1
- package/dist/views/system/recycle/index.vue.js +2 -2
- package/dist/views/system/recycle/index2.vue.js +90 -67
- package/dist/views/system/recycle/index2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +20 -0
- package/dist/views/system/role/components/GrantMenuSheet.vue.js +8 -0
- package/dist/views/system/role/components/GrantMenuSheet.vue.js.map +1 -0
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js +117 -0
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +6 -4
- package/dist/views/system/role/components/GrantMenuTable.vue.js +2 -2
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +279 -177
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
- package/dist/views/system/role/components/MatchText.vue.d.ts +7 -0
- package/dist/views/system/role/components/MatchText.vue.js +8 -0
- package/dist/views/system/role/components/MatchText.vue.js.map +1 -0
- package/dist/views/system/role/components/MatchText2.vue.js +29 -0
- package/dist/views/system/role/components/MatchText2.vue.js.map +1 -0
- package/dist/views/system/role/components/grantMenuGroups.d.ts +36 -0
- package/dist/views/system/role/components/grantMenuGroups.js +110 -48
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
- package/dist/views/system/role/index.vue.js +5 -2
- package/dist/views/system/role/index.vue.js.map +1 -1
- package/dist/views/system/role/index2.vue.js +181 -165
- package/dist/views/system/role/index2.vue.js.map +1 -1
- package/dist/views/system/session/index2.vue.js +75 -49
- package/dist/views/system/session/index2.vue.js.map +1 -1
- package/dist/views/system/user/components/ResetPasswordModal.vue.js +2 -2
- package/dist/views/system/user/components/ResetPasswordModal2.vue.js +2 -0
- package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -1
- package/dist/views/system/user/components/UserFormModal.vue.js +2 -2
- package/dist/views/system/user/components/UserFormModal2.vue.js +77 -76
- package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -1
- package/dist/views/system/user/index.vue.js +2 -2
- package/dist/views/system/user/index2.vue.js +362 -275
- package/dist/views/system/user/index2.vue.js.map +1 -1
- package/package.json +6 -8
- package/dist/components/SelectTable/index.vue.d.ts +0 -76
- package/dist/components/SelectTable/index2.vue.js +0 -256
- package/dist/components/SelectTable/index2.vue.js.map +0 -1
- package/dist/composables/useTableRowSort.d.ts +0 -20
- package/dist/composables/useTableRowSort.js +0 -59
- package/dist/composables/useTableRowSort.js.map +0 -1
- package/dist/layouts/LayoutModeCards.vue.js +0 -8
- package/dist/layouts/LayoutModeCards.vue.js.map +0 -1
- package/dist/layouts/LayoutModeCards2.vue.js +0 -67
- package/dist/layouts/LayoutModeCards2.vue.js.map +0 -1
- package/dist/layouts/SettingRow.vue.js +0 -8
- package/dist/layouts/SettingRow.vue.js.map +0 -1
- package/dist/layouts/SettingRow2.vue.js +0 -23
- package/dist/layouts/SettingRow2.vue.js.map +0 -1
- package/dist/views/login/skins/AuroraGlass.vue.js +0 -8
- package/dist/views/login/skins/AuroraGlass.vue.js.map +0 -1
- package/dist/views/login/skins/AuroraGlass2.vue.js +0 -80
- package/dist/views/login/skins/AuroraGlass2.vue.js.map +0 -1
- package/dist/views/login/skins/SplitPanel.vue.js +0 -8
- package/dist/views/login/skins/SplitPanel.vue.js.map +0 -1
- package/dist/views/login/skins/SplitPanel2.vue.js +0 -85
- package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
- package/dist/views/login/skins/Spotlight.vue.js +0 -8
- package/dist/views/login/skins/Spotlight.vue.js.map +0 -1
- package/dist/views/login/skins/Spotlight2.vue.js +0 -36
- package/dist/views/login/skins/Spotlight2.vue.js.map +0 -1
- package/dist/views/login/skins.d.ts +0 -8
- package/dist/views/login/skins.js +0 -13
- package/dist/views/login/skins.js.map +0 -1
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js +0 -8
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +0 -218
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/GroupExtraConfig.vue.js +0 -8
- package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js +0 -108
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/HighSensConfig.vue.js +0 -5
- package/dist/views/system/config/components/HighSensConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/HighSensConfig2.vue.js +0 -134
- package/dist/views/system/config/components/HighSensConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/JobConfig.vue.js +0 -5
- package/dist/views/system/config/components/JobConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/JobConfig2.vue.js +0 -116
- package/dist/views/system/config/components/JobConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/OtherConfig.vue.js +0 -5
- package/dist/views/system/config/components/OtherConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/OtherConfig2.vue.js +0 -121
- package/dist/views/system/config/components/OtherConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/SecurityConfig.vue.js +0 -8
- package/dist/views/system/config/components/SecurityConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/SecurityConfig2.vue.js +0 -456
- package/dist/views/system/config/components/SecurityConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/SysBaseConfig.vue.js +0 -5
- package/dist/views/system/config/components/SysBaseConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/SysBaseConfig2.vue.js +0 -107
- package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/UploadConfig.vue.d.ts +0 -3
- package/dist/views/system/config/components/UploadConfig.vue.js +0 -5
- package/dist/views/system/config/components/UploadConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/UploadConfig2.vue.js +0 -135
- package/dist/views/system/config/components/UploadConfig2.vue.js.map +0 -1
- /package/dist/components/{SelectTable → TableTotal}/index.vue.js.map +0 -0
- /package/dist/layouts/{LayoutModeCards.vue.d.ts → AccentPicker.vue.d.ts} +0 -0
- /package/dist/views/{login/skins/AuroraGlass.vue.d.ts → system/config/components/AdminMock.vue.d.ts} +0 -0
- /package/dist/views/{login/skins/SplitPanel.vue.d.ts → system/config/components/AdvancedSection.vue.d.ts} +0 -0
- /package/dist/views/{login/skins/Spotlight.vue.d.ts → system/config/components/JobSection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{ExternalAuthConfig.vue.d.ts → LogoEditor.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{HighSensConfig.vue.d.ts → SecuritySection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{JobConfig.vue.d.ts → SensitiveSection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{OtherConfig.vue.d.ts → SigninSection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{SecurityConfig.vue.d.ts → UploadSection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{SysBaseConfig.vue.d.ts → WatermarkSection.vue.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatchText.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineComponent as u, computed as i, openBlock as c, createElementBlock as l, Fragment as s, createTextVNode as a, toDisplayString as n, createElementVNode as m } from "vue";
|
|
2
|
+
const x = { class: "grant-mark" }, d = /* @__PURE__ */ u({
|
|
3
|
+
__name: "MatchText",
|
|
4
|
+
props: {
|
|
5
|
+
text: {},
|
|
6
|
+
query: {}
|
|
7
|
+
},
|
|
8
|
+
setup(o) {
|
|
9
|
+
const e = o, r = i(() => {
|
|
10
|
+
const t = e.query ? e.text.toLowerCase().indexOf(e.query) : -1;
|
|
11
|
+
return t < 0 ? null : [
|
|
12
|
+
e.text.slice(0, t),
|
|
13
|
+
e.text.slice(t, t + e.query.length),
|
|
14
|
+
e.text.slice(t + e.query.length)
|
|
15
|
+
];
|
|
16
|
+
});
|
|
17
|
+
return (t, p) => r.value ? (c(), l(s, { key: 0 }, [
|
|
18
|
+
a(n(r.value[0]), 1),
|
|
19
|
+
m("mark", x, n(r.value[1]), 1),
|
|
20
|
+
a(n(r.value[2]), 1)
|
|
21
|
+
], 64)) : (c(), l(s, { key: 1 }, [
|
|
22
|
+
a(n(o.text), 1)
|
|
23
|
+
], 64));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
d as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=MatchText2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatchText2.vue.js","sources":["../../../../../src/views/system/role/components/MatchText.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 把 text 里第一处命中 query(小写)的片段包成 <mark>。query 为空或没命中就原样输出。\nimport { computed } from 'vue'\n\nconst props = defineProps<{ text: string; query: string }>()\n\nconst parts = computed(() => {\n const i = props.query ? props.text.toLowerCase().indexOf(props.query) : -1\n if (i < 0) return null\n return [\n props.text.slice(0, i),\n props.text.slice(i, i + props.query.length),\n props.text.slice(i + props.query.length),\n ] as const\n})\n</script>\n\n<template>\n <!-- 必须单行:插值与 <mark> 之间的换行会被 Vue 压成空格,高亮词前后就多出空白 -->\n <!-- prettier-ignore -->\n <template v-if=\"parts\">{{ parts[0] }}<mark class=\"grant-mark\">{{ parts[1] }}</mark>{{ parts[2] }}</template>\n <template v-else>{{ text }}</template>\n</template>\n\n<style scoped>\n.grant-mark {\n background: color-mix(in srgb, var(--warn) 40%, transparent);\n color: inherit;\n border-radius: 3px;\n padding: 0 1px;\n}\n</style>\n"],"names":["props","__props","parts","computed","i","_createElementBlock","_Fragment","_createElementVNode","_hoisted_1","_toDisplayString"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC,GAERC,IAAQC,EAAS,MAAM;AAC3B,YAAMC,IAAIJ,EAAM,QAAQA,EAAM,KAAK,cAAc,QAAQA,EAAM,KAAK,IAAI;AACxE,aAAII,IAAI,IAAU,OACX;AAAA,QACLJ,EAAM,KAAK,MAAM,GAAGI,CAAC;AAAA,QACrBJ,EAAM,KAAK,MAAMI,GAAGA,IAAIJ,EAAM,MAAM,MAAM;AAAA,QAC1CA,EAAM,KAAK,MAAMI,IAAIJ,EAAM,MAAM,MAAM;AAAA,MAAA;AAAA,IAE3C,CAAC;qBAMiBE,EAAA,cAAhBG,EAA4GC,GAAA,EAAA,KAAA,KAAA;AAAA,UAAlFJ,EAAA,MAAK,CAAA,CAAA,GAAA,CAAA;AAAA,MAAMK,EAA8C,QAA9CC,GAA8CC,EAAlBP,EAAA,MAAK,CAAA,CAAA,GAAA,CAAA;AAAA,UAAgBA,EAAA,MAAK,CAAA,CAAA,GAAA,CAAA;AAAA,IAAA,gBAC3FG,EAAsCC,GAAA,EAAA,KAAA,KAAA;AAAA,UAAlBL,EAAA,IAAI,GAAA,CAAA;AAAA,IAAA;;;"}
|
|
@@ -3,12 +3,16 @@ export interface ButtonItem {
|
|
|
3
3
|
id: number;
|
|
4
4
|
title: string;
|
|
5
5
|
checked: boolean;
|
|
6
|
+
/** 权限码(多条以 ; 连接),只作悬停提示,不参与勾选与提交。 */
|
|
7
|
+
permission?: string;
|
|
6
8
|
}
|
|
7
9
|
export interface MenuRow {
|
|
8
10
|
id: number;
|
|
9
11
|
title: string;
|
|
10
12
|
checked: boolean;
|
|
11
13
|
buttons: ButtonItem[];
|
|
14
|
+
/** 页面路由,只作副标题;anchor 行没有。 */
|
|
15
|
+
path?: string;
|
|
12
16
|
/** 无页面权限项行:承载目录直属按钮。id 是所属目录的 id,只作 key,不进 collectChecked。 */
|
|
13
17
|
anchor?: boolean;
|
|
14
18
|
}
|
|
@@ -20,8 +24,40 @@ export interface CatalogGroup {
|
|
|
20
24
|
menus: MenuRow[];
|
|
21
25
|
/** 根级直挂按钮的合成分组(id=0),自身不是可授权节点,不进 collectChecked。 */
|
|
22
26
|
synthetic?: boolean;
|
|
27
|
+
/** 顶级页面(如工作台)自成的一组:界面上不画目录头,直接是一行。 */
|
|
28
|
+
standalone?: boolean;
|
|
23
29
|
}
|
|
30
|
+
/** 一组行的勾选态(全勾 / 半勾)。搜索时目录头按可见行算,落库的目录状态按全部行算。 */
|
|
31
|
+
export declare function menusState(menus: MenuRow[]): {
|
|
32
|
+
checked: boolean;
|
|
33
|
+
indeterminate: boolean;
|
|
34
|
+
};
|
|
24
35
|
export declare function recomputeGroup(group: CatalogGroup): void;
|
|
36
|
+
/** 勾/取消整个目录:其下页面与按钮一并跟随。搜索过滤时 rows 传可见行,不动被过滤掉的行。 */
|
|
37
|
+
export declare function setGroupChecked(group: CatalogGroup, val: boolean, rows?: MenuRow[]): void;
|
|
38
|
+
/** 勾/取消一个页面(或 anchor 行):其按钮一并跟随。 */
|
|
39
|
+
export declare function setMenuChecked(group: CatalogGroup, menu: MenuRow, val: boolean): void;
|
|
40
|
+
/**
|
|
41
|
+
* 勾/取消一个按钮。按钮全勾时顺手把页面勾上;页面已勾时取消单个按钮不回收页面权限
|
|
42
|
+
* (页面权限与按钮权限各自授予)。anchor 行自身不是节点,勾选态就等于「按钮是否全勾」。
|
|
43
|
+
*/
|
|
44
|
+
export declare function setButtonChecked(group: CatalogGroup, menu: MenuRow, button: ButtonItem, val: boolean): void;
|
|
45
|
+
export interface Count {
|
|
46
|
+
on: number;
|
|
47
|
+
total: number;
|
|
48
|
+
}
|
|
49
|
+
export declare function groupCount(group: Pick<CatalogGroup, 'menus'>): Count;
|
|
50
|
+
export declare function menuButtonCount(menu: MenuRow): Count;
|
|
51
|
+
/** 全部分组的授权概况:on / total 含页面与按钮;pages / buttons 是已授权的两类各多少。 */
|
|
52
|
+
export type GrantCounts = Count & {
|
|
53
|
+
pages: number;
|
|
54
|
+
buttons: number;
|
|
55
|
+
};
|
|
56
|
+
/** 授权列表对外汇报的概况:计数 + 相对打开时是否有未保存的改动。 */
|
|
57
|
+
export type GrantSummary = GrantCounts & {
|
|
58
|
+
dirty: boolean;
|
|
59
|
+
};
|
|
60
|
+
export declare function countGrants(groups: CatalogGroup[]): GrantCounts;
|
|
25
61
|
/**
|
|
26
62
|
* 顶层节点 → 分组。顶级页面(如工作台)自成一组;顶级目录一组;根级直挂按钮并进一个合成组。
|
|
27
63
|
* @param anchorTitle 无页面权限项行的显示文案(i18n 由调用方给)
|
|
@@ -1,76 +1,138 @@
|
|
|
1
|
+
import { translateMenuTitle as r } from "../../../../locales/menuTitle.js";
|
|
1
2
|
import { MenuType as u } from "../../../../types/menu.js";
|
|
2
|
-
function
|
|
3
|
-
return
|
|
3
|
+
function f(e, t) {
|
|
4
|
+
return e.filter((n) => n.type === u.Button).map((n) => ({
|
|
5
|
+
id: n.id,
|
|
6
|
+
title: r(n.title),
|
|
7
|
+
checked: t.has(n.id),
|
|
8
|
+
permission: n.permission || void 0
|
|
9
|
+
}));
|
|
4
10
|
}
|
|
5
|
-
function
|
|
11
|
+
function p(e, t, n = "") {
|
|
6
12
|
return {
|
|
7
|
-
id:
|
|
8
|
-
title:
|
|
9
|
-
checked:
|
|
10
|
-
buttons:
|
|
13
|
+
id: e.id,
|
|
14
|
+
title: n + r(e.title, e.path || void 0),
|
|
15
|
+
checked: t.has(e.id),
|
|
16
|
+
buttons: f(e.children, t),
|
|
17
|
+
path: e.path || void 0
|
|
11
18
|
};
|
|
12
19
|
}
|
|
13
|
-
function
|
|
20
|
+
function a(e, t, n, o = "") {
|
|
14
21
|
return {
|
|
15
|
-
id:
|
|
16
|
-
title:
|
|
17
|
-
checked:
|
|
18
|
-
buttons:
|
|
22
|
+
id: e,
|
|
23
|
+
title: o + n,
|
|
24
|
+
checked: t.length > 0 && t.every((c) => c.checked),
|
|
25
|
+
buttons: t,
|
|
19
26
|
anchor: !0
|
|
20
27
|
};
|
|
21
28
|
}
|
|
22
|
-
function
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
for (const s of
|
|
26
|
-
s.type === u.Menu ?
|
|
27
|
-
|
|
29
|
+
function k(e, t, n, o = "") {
|
|
30
|
+
const c = [], i = f(e.children, t);
|
|
31
|
+
i.length && c.push(a(e.id, i, n, o));
|
|
32
|
+
for (const s of e.children)
|
|
33
|
+
s.type === u.Menu ? c.push(p(s, t, o)) : s.type === u.Catalog && c.push(
|
|
34
|
+
...k(
|
|
35
|
+
s,
|
|
36
|
+
t,
|
|
37
|
+
n,
|
|
38
|
+
`${o}${r(s.title)} / `
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
return c;
|
|
42
|
+
}
|
|
43
|
+
function d(e) {
|
|
44
|
+
return e.flatMap((t) => t.anchor ? t.buttons : [t, ...t.buttons]);
|
|
28
45
|
}
|
|
29
|
-
function
|
|
30
|
-
const
|
|
31
|
-
|
|
46
|
+
function m(e) {
|
|
47
|
+
const t = d(e), n = t.filter((o) => o.checked).length;
|
|
48
|
+
return {
|
|
49
|
+
checked: n > 0 && n === t.length,
|
|
50
|
+
indeterminate: n > 0 && n < t.length
|
|
51
|
+
};
|
|
32
52
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
53
|
+
function h(e) {
|
|
54
|
+
Object.assign(e, m(e.menus));
|
|
55
|
+
}
|
|
56
|
+
function y(e, t, n = e.menus) {
|
|
35
57
|
for (const o of n) {
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
o.checked = t;
|
|
59
|
+
for (const c of o.buttons) c.checked = t;
|
|
60
|
+
}
|
|
61
|
+
h(e);
|
|
62
|
+
}
|
|
63
|
+
function C(e, t, n) {
|
|
64
|
+
t.checked = n;
|
|
65
|
+
for (const o of t.buttons) o.checked = n;
|
|
66
|
+
h(e);
|
|
67
|
+
}
|
|
68
|
+
function M(e, t, n, o) {
|
|
69
|
+
n.checked = o;
|
|
70
|
+
const c = t.buttons.length > 0 && t.buttons.every((i) => i.checked);
|
|
71
|
+
(c || t.anchor) && (t.checked = c), h(e);
|
|
72
|
+
}
|
|
73
|
+
function B(e) {
|
|
74
|
+
const t = d(e.menus);
|
|
75
|
+
return { on: t.filter((n) => n.checked).length, total: t.length };
|
|
76
|
+
}
|
|
77
|
+
function w(e) {
|
|
78
|
+
return { on: e.buttons.filter((t) => t.checked).length, total: e.buttons.length };
|
|
79
|
+
}
|
|
80
|
+
function v(e) {
|
|
81
|
+
let t = 0, n = 0, o = 0, c = 0;
|
|
82
|
+
for (const i of e)
|
|
83
|
+
for (const s of d(i.menus))
|
|
84
|
+
n++, s.checked && (t++, "buttons" in s ? o++ : c++);
|
|
85
|
+
return { on: t, total: n, pages: o, buttons: c };
|
|
86
|
+
}
|
|
87
|
+
function G(e, t, n) {
|
|
88
|
+
const o = [];
|
|
89
|
+
for (const i of e) {
|
|
90
|
+
if (i.type === u.Button) continue;
|
|
91
|
+
const s = i.type === u.Menu ? [p(i, t)] : k(i, t, n), l = {
|
|
92
|
+
id: i.id,
|
|
93
|
+
title: r(i.title, i.path || void 0),
|
|
94
|
+
checked: t.has(i.id),
|
|
41
95
|
indeterminate: !1,
|
|
42
|
-
menus: s
|
|
96
|
+
menus: s,
|
|
97
|
+
standalone: i.type === u.Menu
|
|
43
98
|
};
|
|
44
|
-
|
|
99
|
+
h(l), o.push(l);
|
|
45
100
|
}
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
const
|
|
101
|
+
const c = f(e, t);
|
|
102
|
+
if (c.length) {
|
|
103
|
+
const i = {
|
|
49
104
|
id: 0,
|
|
50
|
-
title:
|
|
105
|
+
title: n,
|
|
51
106
|
checked: !1,
|
|
52
107
|
indeterminate: !1,
|
|
53
|
-
menus: [
|
|
108
|
+
menus: [a(0, c, n)],
|
|
54
109
|
synthetic: !0
|
|
55
110
|
};
|
|
56
|
-
|
|
111
|
+
h(i), o.push(i);
|
|
57
112
|
}
|
|
58
|
-
return
|
|
113
|
+
return o;
|
|
59
114
|
}
|
|
60
|
-
function
|
|
61
|
-
const
|
|
62
|
-
for (const
|
|
63
|
-
!
|
|
64
|
-
for (const
|
|
65
|
-
!
|
|
66
|
-
for (const
|
|
115
|
+
function R(e) {
|
|
116
|
+
const t = [];
|
|
117
|
+
for (const n of e) {
|
|
118
|
+
!n.synthetic && (n.checked || n.indeterminate) && t.push(n.id);
|
|
119
|
+
for (const o of n.menus) {
|
|
120
|
+
!o.anchor && o.checked && t.push(o.id);
|
|
121
|
+
for (const c of o.buttons) c.checked && t.push(c.id);
|
|
67
122
|
}
|
|
68
123
|
}
|
|
69
|
-
return
|
|
124
|
+
return t;
|
|
70
125
|
}
|
|
71
126
|
export {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
127
|
+
G as buildGroups,
|
|
128
|
+
R as collectChecked,
|
|
129
|
+
v as countGrants,
|
|
130
|
+
B as groupCount,
|
|
131
|
+
w as menuButtonCount,
|
|
132
|
+
m as menusState,
|
|
133
|
+
h as recomputeGroup,
|
|
134
|
+
M as setButtonChecked,
|
|
135
|
+
y as setGroupChecked,
|
|
136
|
+
C as setMenuChecked
|
|
75
137
|
};
|
|
76
138
|
//# sourceMappingURL=grantMenuGroups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grantMenuGroups.js","sources":["../../../../../src/views/system/role/components/grantMenuGroups.ts"],"sourcesContent":["// 角色授权表格的分组逻辑(纯函数,GrantMenuTable.vue 只管渲染与勾选联动)。\n// 三列:目录 | 页面 | 按钮。按钮正常挂在页面下;直接挂在目录下的按钮是\"无页面权限项\"\n//(只给移动端 / 第三方调的接口,没有对应页面),渲染成该目录组里的一行 anchor 行,否则它们勾不到。\nimport { MenuType, type MenuTreeNode } from '#/types/menu'\n\nexport interface ButtonItem {\n id: number\n title: string\n checked: boolean\n}\nexport interface MenuRow {\n id: number\n title: string\n checked: boolean\n buttons: ButtonItem[]\n /** 无页面权限项行:承载目录直属按钮。id 是所属目录的 id,只作 key,不进 collectChecked。 */\n anchor?: boolean\n}\nexport interface CatalogGroup {\n id: number\n title: string\n checked: boolean\n indeterminate: boolean\n menus: MenuRow[]\n /** 根级直挂按钮的合成分组(id=0),自身不是可授权节点,不进 collectChecked。 */\n synthetic?: boolean\n}\n\nfunction toButtons(nodes: MenuTreeNode[], grantedSet: Set<number>): ButtonItem[] {\n return nodes\n .filter(b => b.type === MenuType.Button)\n .map(b => ({ id: b.id, title: b.title, checked: grantedSet.has(b.id) }))\n}\n\nfunction toMenuRow(m: MenuTreeNode, grantedSet: Set<number>, prefix = ''): MenuRow {\n return {\n id: m.id,\n title: prefix + m.title,\n checked: grantedSet.has(m.id),\n buttons: toButtons(m.children, grantedSet),\n }\n}\n\nfunction anchorRow(\n ownerId: number,\n buttons: ButtonItem[],\n anchorTitle: string,\n prefix = '',\n): MenuRow {\n return {\n id: ownerId,\n title: prefix + anchorTitle,\n checked: buttons.length > 0 && buttons.every(b => b.checked),\n buttons,\n anchor: true,\n }\n}\n\n/**\n * 一个目录的全部行:直属按钮 → anchor 行(有才出);直属页面 → 各一行;嵌套目录 → 递归,标题带上父目录前缀。\n */\nfunction catalogRows(\n node: MenuTreeNode,\n grantedSet: Set<number>,\n anchorTitle: string,\n prefix = '',\n): MenuRow[] {\n const rows: MenuRow[] = []\n const buttons = toButtons(node.children, grantedSet)\n if (buttons.length) rows.push(anchorRow(node.id, buttons, anchorTitle, prefix))\n for (const child of node.children) {\n if (child.type === MenuType.Menu) rows.push(toMenuRow(child, grantedSet, prefix))\n else if (child.type === MenuType.Catalog)\n rows.push(...catalogRows(child, grantedSet, anchorTitle, `${prefix}${child.title} / `))\n }\n return rows\n}\n\nexport function recomputeGroup(group: CatalogGroup) {\n // anchor 行自身不是节点,只数它的按钮\n const items = group.menus.flatMap(m => (m.anchor ? m.buttons : [m, ...m.buttons]))\n const checkedCount = items.filter(x => x.checked).length\n group.checked = checkedCount > 0 && checkedCount === items.length\n group.indeterminate = checkedCount > 0 && checkedCount < items.length\n}\n\n/**\n * 顶层节点 → 分组。顶级页面(如工作台)自成一组;顶级目录一组;根级直挂按钮并进一个合成组。\n * @param anchorTitle 无页面权限项行的显示文案(i18n 由调用方给)\n */\nexport function buildGroups(\n tree: MenuTreeNode[],\n grantedSet: Set<number>,\n anchorTitle: string,\n): CatalogGroup[] {\n const groups: CatalogGroup[] = []\n for (const node of tree) {\n if (node.type === MenuType.Button) continue\n const menus =\n node.type === MenuType.Menu\n ? [toMenuRow(node, grantedSet)]\n : catalogRows(node, grantedSet, anchorTitle)\n const group: CatalogGroup = {\n id: node.id,\n title: node.title,\n checked: grantedSet.has(node.id),\n indeterminate: false,\n menus,\n }\n recomputeGroup(group)\n groups.push(group)\n }\n const rootButtons = toButtons(tree, grantedSet)\n if (rootButtons.length) {\n const group: CatalogGroup = {\n id: 0,\n title: anchorTitle,\n checked: false,\n indeterminate: false,\n menus: [anchorRow(0, rootButtons, anchorTitle)],\n synthetic: true,\n }\n recomputeGroup(group)\n groups.push(group)\n }\n return groups\n}\n\n/** 勾选态 → 要提交的菜单 id:目录(全勾或半勾)、页面、按钮;anchor 行与合成组自身不算节点。 */\nexport function collectChecked(groups: CatalogGroup[]): number[] {\n const ids: number[] = []\n for (const g of groups) {\n if (!g.synthetic && (g.checked || g.indeterminate)) ids.push(g.id)\n for (const m of g.menus) {\n if (!m.anchor && m.checked) ids.push(m.id)\n for (const b of m.buttons) if (b.checked) ids.push(b.id)\n }\n }\n return ids\n}\n"],"names":["toButtons","nodes","grantedSet","b","MenuType","toMenuRow","m","prefix","anchorRow","ownerId","buttons","anchorTitle","catalogRows","node","rows","child","recomputeGroup","group","items","checkedCount","x","buildGroups","tree","groups","menus","rootButtons","collectChecked","ids","g"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grantMenuGroups.js","sources":["../../../../../src/views/system/role/components/grantMenuGroups.ts"],"sourcesContent":["// 角色授权列表的分组与勾选联动逻辑(纯函数,GrantMenuTable.vue 只管渲染)。\n// 三层:目录 → 页面 → 按钮。按钮正常挂在页面下;直接挂在目录下的按钮是\"无页面权限项\"\n//(只给移动端 / 第三方调的接口,没有对应页面),渲染成该目录组里的一行 anchor 行,否则它们勾不到。\nimport { translateMenuTitle } from '#/locales/menuTitle'\nimport { MenuType, type MenuTreeNode } from '#/types/menu'\n\nexport interface ButtonItem {\n id: number\n title: string\n checked: boolean\n /** 权限码(多条以 ; 连接),只作悬停提示,不参与勾选与提交。 */\n permission?: string\n}\nexport interface MenuRow {\n id: number\n title: string\n checked: boolean\n buttons: ButtonItem[]\n /** 页面路由,只作副标题;anchor 行没有。 */\n path?: string\n /** 无页面权限项行:承载目录直属按钮。id 是所属目录的 id,只作 key,不进 collectChecked。 */\n anchor?: boolean\n}\nexport interface CatalogGroup {\n id: number\n title: string\n checked: boolean\n indeterminate: boolean\n menus: MenuRow[]\n /** 根级直挂按钮的合成分组(id=0),自身不是可授权节点,不进 collectChecked。 */\n synthetic?: boolean\n /** 顶级页面(如工作台)自成的一组:界面上不画目录头,直接是一行。 */\n standalone?: boolean\n}\n\nfunction toButtons(nodes: MenuTreeNode[], grantedSet: Set<number>): ButtonItem[] {\n return nodes\n .filter(b => b.type === MenuType.Button)\n .map(b => ({\n id: b.id,\n title: translateMenuTitle(b.title),\n checked: grantedSet.has(b.id),\n permission: b.permission || undefined,\n }))\n}\n\nfunction toMenuRow(m: MenuTreeNode, grantedSet: Set<number>, prefix = ''): MenuRow {\n return {\n id: m.id,\n title: prefix + translateMenuTitle(m.title, m.path || undefined),\n checked: grantedSet.has(m.id),\n buttons: toButtons(m.children, grantedSet),\n path: m.path || undefined,\n }\n}\n\nfunction anchorRow(\n ownerId: number,\n buttons: ButtonItem[],\n anchorTitle: string,\n prefix = '',\n): MenuRow {\n return {\n id: ownerId,\n title: prefix + anchorTitle,\n checked: buttons.length > 0 && buttons.every(b => b.checked),\n buttons,\n anchor: true,\n }\n}\n\n/**\n * 一个目录的全部行:直属按钮 → anchor 行(有才出);直属页面 → 各一行;嵌套目录 → 递归,标题带上父目录前缀。\n */\nfunction catalogRows(\n node: MenuTreeNode,\n grantedSet: Set<number>,\n anchorTitle: string,\n prefix = '',\n): MenuRow[] {\n const rows: MenuRow[] = []\n const buttons = toButtons(node.children, grantedSet)\n if (buttons.length) rows.push(anchorRow(node.id, buttons, anchorTitle, prefix))\n for (const child of node.children) {\n if (child.type === MenuType.Menu) rows.push(toMenuRow(child, grantedSet, prefix))\n else if (child.type === MenuType.Catalog)\n rows.push(\n ...catalogRows(\n child,\n grantedSet,\n anchorTitle,\n `${prefix}${translateMenuTitle(child.title)} / `,\n ),\n )\n }\n return rows\n}\n\n/** 一个目录下的可勾选条目:页面 + 按钮;anchor 行自身不是节点,只数它的按钮。 */\nfunction rowItems(menus: MenuRow[]): (MenuRow | ButtonItem)[] {\n return menus.flatMap(m => (m.anchor ? m.buttons : [m, ...m.buttons]))\n}\n\n/** 一组行的勾选态(全勾 / 半勾)。搜索时目录头按可见行算,落库的目录状态按全部行算。 */\nexport function menusState(menus: MenuRow[]): { checked: boolean; indeterminate: boolean } {\n const items = rowItems(menus)\n const checkedCount = items.filter(x => x.checked).length\n return {\n checked: checkedCount > 0 && checkedCount === items.length,\n indeterminate: checkedCount > 0 && checkedCount < items.length,\n }\n}\n\nexport function recomputeGroup(group: CatalogGroup) {\n Object.assign(group, menusState(group.menus))\n}\n\n// ── 勾选联动 ──\n\n/** 勾/取消整个目录:其下页面与按钮一并跟随。搜索过滤时 rows 传可见行,不动被过滤掉的行。 */\nexport function setGroupChecked(group: CatalogGroup, val: boolean, rows: MenuRow[] = group.menus) {\n for (const m of rows) {\n m.checked = val\n for (const b of m.buttons) b.checked = val\n }\n recomputeGroup(group)\n}\n\n/** 勾/取消一个页面(或 anchor 行):其按钮一并跟随。 */\nexport function setMenuChecked(group: CatalogGroup, menu: MenuRow, val: boolean) {\n menu.checked = val\n for (const b of menu.buttons) b.checked = val\n recomputeGroup(group)\n}\n\n/**\n * 勾/取消一个按钮。按钮全勾时顺手把页面勾上;页面已勾时取消单个按钮不回收页面权限\n * (页面权限与按钮权限各自授予)。anchor 行自身不是节点,勾选态就等于「按钮是否全勾」。\n */\nexport function setButtonChecked(\n group: CatalogGroup,\n menu: MenuRow,\n button: ButtonItem,\n val: boolean,\n) {\n button.checked = val\n const allChecked = menu.buttons.length > 0 && menu.buttons.every(b => b.checked)\n if (allChecked || menu.anchor) menu.checked = allChecked\n recomputeGroup(group)\n}\n\n// ── 计数(仅用于展示) ──\n\nexport interface Count {\n on: number\n total: number\n}\n\nexport function groupCount(group: Pick<CatalogGroup, 'menus'>): Count {\n const items = rowItems(group.menus)\n return { on: items.filter(x => x.checked).length, total: items.length }\n}\n\nexport function menuButtonCount(menu: MenuRow): Count {\n return { on: menu.buttons.filter(b => b.checked).length, total: menu.buttons.length }\n}\n\n/** 全部分组的授权概况:on / total 含页面与按钮;pages / buttons 是已授权的两类各多少。 */\nexport type GrantCounts = Count & { pages: number; buttons: number }\n\n/** 授权列表对外汇报的概况:计数 + 相对打开时是否有未保存的改动。 */\nexport type GrantSummary = GrantCounts & { dirty: boolean }\n\nexport function countGrants(groups: CatalogGroup[]): GrantCounts {\n let on = 0\n let total = 0\n let pages = 0\n let buttons = 0\n for (const g of groups) {\n for (const item of rowItems(g.menus)) {\n total++\n if (!item.checked) continue\n on++\n if ('buttons' in item) pages++\n else buttons++\n }\n }\n return { on, total, pages, buttons }\n}\n\n/**\n * 顶层节点 → 分组。顶级页面(如工作台)自成一组;顶级目录一组;根级直挂按钮并进一个合成组。\n * @param anchorTitle 无页面权限项行的显示文案(i18n 由调用方给)\n */\nexport function buildGroups(\n tree: MenuTreeNode[],\n grantedSet: Set<number>,\n anchorTitle: string,\n): CatalogGroup[] {\n const groups: CatalogGroup[] = []\n for (const node of tree) {\n if (node.type === MenuType.Button) continue\n const menus =\n node.type === MenuType.Menu\n ? [toMenuRow(node, grantedSet)]\n : catalogRows(node, grantedSet, anchorTitle)\n const group: CatalogGroup = {\n id: node.id,\n title: translateMenuTitle(node.title, node.path || undefined),\n checked: grantedSet.has(node.id),\n indeterminate: false,\n menus,\n standalone: node.type === MenuType.Menu,\n }\n recomputeGroup(group)\n groups.push(group)\n }\n const rootButtons = toButtons(tree, grantedSet)\n if (rootButtons.length) {\n const group: CatalogGroup = {\n id: 0,\n title: anchorTitle,\n checked: false,\n indeterminate: false,\n menus: [anchorRow(0, rootButtons, anchorTitle)],\n synthetic: true,\n }\n recomputeGroup(group)\n groups.push(group)\n }\n return groups\n}\n\n/** 勾选态 → 要提交的菜单 id:目录(全勾或半勾)、页面、按钮;anchor 行与合成组自身不算节点。 */\nexport function collectChecked(groups: CatalogGroup[]): number[] {\n const ids: number[] = []\n for (const g of groups) {\n if (!g.synthetic && (g.checked || g.indeterminate)) ids.push(g.id)\n for (const m of g.menus) {\n if (!m.anchor && m.checked) ids.push(m.id)\n for (const b of m.buttons) if (b.checked) ids.push(b.id)\n }\n }\n return ids\n}\n"],"names":["toButtons","nodes","grantedSet","b","MenuType","translateMenuTitle","toMenuRow","m","prefix","anchorRow","ownerId","buttons","anchorTitle","catalogRows","node","rows","child","rowItems","menus","menusState","items","checkedCount","x","recomputeGroup","group","setGroupChecked","val","setMenuChecked","menu","setButtonChecked","button","allChecked","groupCount","menuButtonCount","countGrants","groups","on","total","pages","g","item","buildGroups","tree","rootButtons","collectChecked","ids"],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from "./index2.vue.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import t from "../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-1e28319e"]]);
|
|
2
5
|
export {
|
|
3
|
-
|
|
6
|
+
p as default
|
|
4
7
|
};
|
|
5
8
|
//# sourceMappingURL=index.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|