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
|
@@ -1,79 +1,149 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { NTooltip as
|
|
3
|
-
import { Icon as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
1
|
+
import { defineComponent as V, ref as h, computed as z, openBlock as s, createBlock as v, normalizeClass as B, createSlots as E, withCtx as o, createVNode as u, unref as e, createTextVNode as p, toDisplayString as i, Transition as U, createCommentVNode as N, createElementVNode as y, createElementBlock as w, Fragment as D, nextTick as F } from "vue";
|
|
2
|
+
import { NTooltip as x, NButton as C } from "naive-ui";
|
|
3
|
+
import { Icon as I } from "@iconify/vue";
|
|
4
|
+
import { useMediaQuery as Y } from "@vueuse/core";
|
|
5
|
+
import { useI18n as q } from "vue-i18n";
|
|
6
|
+
import { useAppStore as A } from "../../stores/app.js";
|
|
7
|
+
import { useLoginHero as H } from "../../composables/useLoginHero.js";
|
|
8
|
+
import { useSite as M } from "../../composables/useSite.js";
|
|
9
|
+
import $ from "./components/LoginDesk.vue.js";
|
|
10
|
+
import K from "./LoginForm.vue.js";
|
|
11
|
+
import O from "./components/LoginHeroPanel.vue.js";
|
|
12
|
+
import { resolveLoginLayout as P, LAYOUT_KEY as Q } from "./layout.js";
|
|
13
|
+
const j = { class: "lang-text" }, G = { class: "foot" }, J = ["href"], R = {
|
|
14
|
+
key: 0,
|
|
15
|
+
class: "foot-ver"
|
|
16
|
+
}, pe = /* @__PURE__ */ V({
|
|
8
17
|
__name: "index",
|
|
9
|
-
setup(
|
|
10
|
-
const
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
if (
|
|
14
|
-
const
|
|
15
|
-
|
|
18
|
+
setup(W) {
|
|
19
|
+
const g = A(), { t: n } = q(), { site: a, appVersion: _ } = M(), m = H(), S = (/* @__PURE__ */ new Date()).getFullYear(), k = Y("(min-width: 900px)"), d = h(P(window.location.search, localStorage)), t = z(() => d.value === "split" && k.value), b = h(!1), f = h(!1);
|
|
20
|
+
function T(c) {
|
|
21
|
+
var L;
|
|
22
|
+
if (d.value === c) return;
|
|
23
|
+
const l = () => {
|
|
24
|
+
d.value = c;
|
|
25
|
+
try {
|
|
26
|
+
localStorage.setItem(Q, c);
|
|
27
|
+
} catch {
|
|
28
|
+
}
|
|
29
|
+
}, r = document;
|
|
30
|
+
if (!r.startViewTransition || (L = window.matchMedia) != null && L.call(window, "(prefers-reduced-motion: reduce)").matches) {
|
|
31
|
+
l();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
f.value = !0, r.startViewTransition(async () => {
|
|
35
|
+
l(), await F();
|
|
36
|
+
}).finished.finally(() => {
|
|
37
|
+
f.value = !1;
|
|
38
|
+
});
|
|
16
39
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
40
|
+
return (c, l) => (s(), v($, {
|
|
41
|
+
split: t.value,
|
|
42
|
+
leaving: b.value,
|
|
43
|
+
class: B({ switching: f.value }),
|
|
44
|
+
width: 400,
|
|
45
|
+
"content-style": "padding: 26px 26px 22px"
|
|
46
|
+
}, E({
|
|
47
|
+
corner: o(() => [
|
|
48
|
+
e(k) ? (s(), v(e(x), { key: 0 }, {
|
|
49
|
+
trigger: o(() => [
|
|
50
|
+
u(e(C), {
|
|
51
|
+
quaternary: "",
|
|
52
|
+
circle: "",
|
|
53
|
+
"data-testid": "login-layout-toggle",
|
|
54
|
+
"aria-label": e(n)("login.layoutLabel"),
|
|
55
|
+
onClick: l[0] || (l[0] = (r) => T(t.value ? "solo" : "split"))
|
|
56
|
+
}, {
|
|
57
|
+
icon: o(() => [
|
|
58
|
+
u(U, {
|
|
59
|
+
name: "ico",
|
|
60
|
+
mode: "out-in"
|
|
61
|
+
}, {
|
|
62
|
+
default: o(() => [
|
|
63
|
+
(s(), v(e(I), {
|
|
64
|
+
key: t.value ? "solo" : "split",
|
|
65
|
+
icon: t.value ? "ph:rectangle" : "ph:columns",
|
|
66
|
+
width: 18
|
|
67
|
+
}, null, 8, ["icon"]))
|
|
68
|
+
]),
|
|
69
|
+
_: 1
|
|
70
|
+
})
|
|
71
|
+
]),
|
|
72
|
+
_: 1
|
|
73
|
+
}, 8, ["aria-label"])
|
|
74
|
+
]),
|
|
75
|
+
default: o(() => [
|
|
76
|
+
p(" " + i(t.value ? e(n)("login.layoutToSolo") : e(n)("login.layoutToSplit")), 1)
|
|
77
|
+
]),
|
|
78
|
+
_: 1
|
|
79
|
+
})) : N("", !0),
|
|
80
|
+
u(e(x), null, {
|
|
81
|
+
trigger: o(() => [
|
|
82
|
+
u(e(C), {
|
|
83
|
+
quaternary: "",
|
|
84
|
+
circle: "",
|
|
85
|
+
"aria-label": e(n)("app.language"),
|
|
86
|
+
onClick: l[1] || (l[1] = (r) => e(g).setLocale(e(g).locale === "zh-CN" ? "en-US" : "zh-CN"))
|
|
87
|
+
}, {
|
|
88
|
+
default: o(() => [
|
|
89
|
+
y("span", j, i(e(g).locale === "zh-CN" ? "中" : "EN"), 1)
|
|
90
|
+
]),
|
|
91
|
+
_: 1
|
|
92
|
+
}, 8, ["aria-label"])
|
|
93
|
+
]),
|
|
94
|
+
default: o(() => [
|
|
95
|
+
p(" " + i(e(n)("app.language")), 1)
|
|
96
|
+
]),
|
|
97
|
+
_: 1
|
|
98
|
+
})
|
|
99
|
+
]),
|
|
100
|
+
default: o(() => [
|
|
101
|
+
u(K, {
|
|
102
|
+
"show-logo": !t.value,
|
|
103
|
+
"show-title": !t.value,
|
|
104
|
+
"show-greeting": t.value,
|
|
105
|
+
"show-footer": !t.value,
|
|
106
|
+
onLeave: l[2] || (l[2] = (r) => b.value = r)
|
|
107
|
+
}, null, 8, ["show-logo", "show-title", "show-greeting", "show-footer"])
|
|
108
|
+
]),
|
|
109
|
+
_: 2
|
|
110
|
+
}, [
|
|
111
|
+
t.value ? {
|
|
112
|
+
name: "brand",
|
|
113
|
+
fn: o(() => [
|
|
114
|
+
u(O, {
|
|
115
|
+
headline: e(m).headline,
|
|
116
|
+
highlight: e(m).highlight,
|
|
117
|
+
subtitle: e(a).subtitle || e(n)("login.subtitle"),
|
|
118
|
+
features: e(m).features
|
|
119
|
+
}, null, 8, ["headline", "highlight", "subtitle", "features"])
|
|
120
|
+
]),
|
|
121
|
+
key: "0"
|
|
122
|
+
} : void 0,
|
|
123
|
+
t.value ? {
|
|
124
|
+
name: "after",
|
|
125
|
+
fn: o(() => [
|
|
126
|
+
y("p", G, [
|
|
127
|
+
y("span", null, [
|
|
128
|
+
p(" © " + i(e(S)) + " ", 1),
|
|
129
|
+
e(a).copyrightUrl ? (s(), w("a", {
|
|
130
|
+
key: 0,
|
|
131
|
+
href: e(a).copyrightUrl,
|
|
132
|
+
target: "_blank",
|
|
133
|
+
rel: "noopener"
|
|
134
|
+
}, i(e(a).copyright || e(a).title), 9, J)) : (s(), w(D, { key: 1 }, [
|
|
135
|
+
p(i(e(a).copyright || e(a).title), 1)
|
|
136
|
+
], 64))
|
|
51
137
|
]),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
trigger: d(() => [
|
|
59
|
-
r("button", {
|
|
60
|
-
class: "tool-btn tool-lang",
|
|
61
|
-
type: "button",
|
|
62
|
-
"aria-label": t(o)("app.language"),
|
|
63
|
-
onClick: n[1] || (n[1] = (e) => t(l).setLocale(t(l).locale === "zh-CN" ? "en-US" : "zh-CN"))
|
|
64
|
-
}, p(t(l).locale === "zh-CN" ? "中" : "EN"), 9, A)
|
|
65
|
-
]),
|
|
66
|
-
default: d(() => [
|
|
67
|
-
g(" " + p(t(o)("app.language")), 1)
|
|
68
|
-
]),
|
|
69
|
-
_: 1
|
|
70
|
-
})
|
|
71
|
-
])
|
|
72
|
-
])
|
|
73
|
-
]));
|
|
138
|
+
e(_) ? (s(), w("span", R, "v" + i(e(_)), 1)) : N("", !0)
|
|
139
|
+
])
|
|
140
|
+
]),
|
|
141
|
+
key: "1"
|
|
142
|
+
} : void 0
|
|
143
|
+
]), 1032, ["split", "leaving", "class"]));
|
|
74
144
|
}
|
|
75
145
|
});
|
|
76
146
|
export {
|
|
77
|
-
|
|
147
|
+
pe as default
|
|
78
148
|
};
|
|
79
149
|
//# sourceMappingURL=index2.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.vue.js","sources":["../../../src/views/login/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"index2.vue.js","sources":["../../../src/views/login/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 登录页:macOS 锁屏语言的外壳(色场 + 毛玻璃卡,见 components/LoginDesk.vue)+ 表单(LoginForm.vue)。\n// 布局两种:单栏(默认,居中一张卡)/ 双栏(内容区 ≥ 900 才可选:左栏品牌区,右栏卡)。\n// 选择只存浏览器本地(localStorage 'sa-login-layout' = solo | split),不是后台配置;< 900 强制单栏且不显示切换按钮。\n// 兼容皮肤 id(aurora / split / spotlight)的浏览器记忆与 ?skin= 一次性覆盖,\n// 映射到最接近的布局:split → 双栏,aurora / spotlight 是居中一张卡 → 单栏。\nimport { computed, nextTick, ref } from 'vue'\nimport { NButton, NTooltip } from 'naive-ui'\nimport { Icon } from '@iconify/vue'\nimport { useMediaQuery } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n'\nimport { useAppStore } from '#/stores/app'\nimport { useLoginHero } from '#/composables/useLoginHero'\nimport { useSite } from '#/composables/useSite'\nimport LoginDesk from './components/LoginDesk.vue'\nimport LoginForm from './LoginForm.vue'\nimport LoginHeroPanel from './components/LoginHeroPanel.vue'\nimport { LAYOUT_KEY, resolveLoginLayout, type LoginLayout } from './layout'\n\nconst app = useAppStore()\nconst { t } = useI18n()\nconst { site, appVersion } = useSite()\nconst hero = useLoginHero()\nconst year = new Date().getFullYear()\n\nconst wide = useMediaQuery('(min-width: 900px)')\nconst layout = ref<LoginLayout>(resolveLoginLayout(window.location.search, localStorage))\nconst split = computed(() => layout.value === 'split' && wide.value)\n\n// 登录成功后外壳播退场动画(LoginForm 通知)\nconst leaving = ref(false)\n\n// 切换布局时给卡片挂 view-transition-name(见 LoginDesk 的全局样式),让它从居中平滑滑到右栏;\n// 浏览器不支持 View Transitions 或系统开了「减少动态效果」就直接切。\nconst switching = ref(false)\nfunction setLayout(next: LoginLayout) {\n if (layout.value === next) return\n const commit = () => {\n layout.value = next\n try {\n localStorage.setItem(LAYOUT_KEY, next)\n } catch {\n // 无痕窗口 / 站点数据被禁:这次照常切换,只是不记忆\n }\n }\n const doc = document as Document & {\n startViewTransition?: (update: () => Promise<void>) => { finished: Promise<void> }\n }\n if (!doc.startViewTransition || window.matchMedia?.('(prefers-reduced-motion: reduce)').matches) {\n commit()\n return\n }\n switching.value = true\n const transition = doc.startViewTransition(async () => {\n commit()\n await nextTick()\n })\n void transition.finished.finally(() => {\n switching.value = false\n })\n}\n</script>\n\n<template>\n <LoginDesk\n :split=\"split\"\n :leaving=\"leaving\"\n :class=\"{ switching }\"\n :width=\"400\"\n content-style=\"padding: 26px 26px 22px\"\n >\n <!-- 双栏左栏:品牌区(文案可在系统配置里改,空值回退内置文案) -->\n <template v-if=\"split\" #brand>\n <LoginHeroPanel\n :headline=\"hero.headline\"\n :highlight=\"hero.highlight\"\n :subtitle=\"site.subtitle || t('login.subtitle')\"\n :features=\"hero.features\"\n />\n </template>\n\n <!-- 右上角工具栏:布局切换(仅内容区 ≥ 900 才出现)+ 语言;主题切换由外壳贴最右角 -->\n <template #corner>\n <!-- 与语言、主题同款的幽灵圆钮,不抢眼;图标显示「点了会切到的布局」,点击时图标旋转淡出再换成另一个 -->\n <n-tooltip v-if=\"wide\">\n <template #trigger>\n <n-button\n quaternary\n circle\n data-testid=\"login-layout-toggle\"\n :aria-label=\"t('login.layoutLabel')\"\n @click=\"setLayout(split ? 'solo' : 'split')\"\n >\n <template #icon>\n <Transition name=\"ico\" mode=\"out-in\">\n <Icon\n :key=\"split ? 'solo' : 'split'\"\n :icon=\"split ? 'ph:rectangle' : 'ph:columns'\"\n :width=\"18\"\n />\n </Transition>\n </template>\n </n-button>\n </template>\n {{ split ? t('login.layoutToSolo') : t('login.layoutToSplit') }}\n </n-tooltip>\n <n-tooltip>\n <template #trigger>\n <n-button\n quaternary\n circle\n :aria-label=\"t('app.language')\"\n @click=\"app.setLocale(app.locale === 'zh-CN' ? 'en-US' : 'zh-CN')\"\n >\n <span class=\"lang-text\">{{ app.locale === 'zh-CN' ? '中' : 'EN' }}</span>\n </n-button>\n </template>\n {{ t('app.language') }}\n </n-tooltip>\n </template>\n\n <!-- 单栏:卡内顶部 logo + 站点标题 + 「登录」标题 + 页脚;双栏:卡内是问候语,页脚在卡外 -->\n <LoginForm\n :show-logo=\"!split\"\n :show-title=\"!split\"\n :show-greeting=\"split\"\n :show-footer=\"!split\"\n @leave=\"leaving = $event\"\n />\n\n <template v-if=\"split\" #after>\n <p class=\"foot\">\n <span>\n © {{ year }}\n <a v-if=\"site.copyrightUrl\" :href=\"site.copyrightUrl\" target=\"_blank\" rel=\"noopener\">\n {{ site.copyright || site.title }}\n </a>\n <template v-else>{{ site.copyright || site.title }}</template>\n </span>\n <span v-if=\"appVersion\" class=\"foot-ver\">v{{ appVersion }}</span>\n </p>\n </template>\n </LoginDesk>\n</template>\n\n<style scoped>\n/* 布局切换图标:旧图标缩小、微转、淡出,新图标从另一侧转回来;时长很短,不拖手 */\n.ico-enter-active,\n.ico-leave-active {\n transition:\n opacity 0.16s var(--ease),\n transform 0.2s var(--ease);\n}\n.ico-leave-to {\n opacity: 0;\n transform: rotate(-70deg) scale(0.6);\n}\n.ico-enter-from {\n opacity: 0;\n transform: rotate(70deg) scale(0.6);\n}\n.lang-text {\n font-size: 13px;\n font-weight: 600;\n line-height: 1;\n}\n.foot {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n margin: 22px 0 0;\n font-size: 13px;\n color: var(--text-3);\n}\n.foot a {\n color: inherit;\n text-decoration: none;\n}\n.foot a:hover {\n color: var(--signal);\n}\n.foot-ver {\n opacity: 0.75;\n}\n</style>\n"],"names":["app","useAppStore","t","useI18n","site","appVersion","useSite","hero","useLoginHero","year","wide","useMediaQuery","layout","ref","resolveLoginLayout","split","computed","leaving","switching","setLayout","next","commit","LAYOUT_KEY","doc","_a","nextTick","_createBlock","LoginDesk","_unref","NTooltip","_createVNode","NButton","_cache","$event","_Transition","Icon","_createTextVNode","_toDisplayString","_createElementVNode","_hoisted_1","LoginForm","LoginHeroPanel","_hoisted_2","_createElementBlock","_hoisted_3","_Fragment","_openBlock","_hoisted_4"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type LoginLayout = 'solo' | 'split';
|
|
2
|
+
/** 布局的记忆键(值 solo / split)。 */
|
|
3
|
+
export declare const LAYOUT_KEY = "sa-login-layout";
|
|
4
|
+
/** 把布局值或皮肤 id 解析成布局;认不出返回 null。 */
|
|
5
|
+
export declare function parseLoginLayout(value: string | null | undefined): LoginLayout | null;
|
|
6
|
+
/**
|
|
7
|
+
* 决定登录页首次渲染用哪种布局。优先级:
|
|
8
|
+
* ?layout= / ?skin=(一次性,不写记忆)→ localStorage[sa-login-layout] → localStorage[login-skin] → 单栏。
|
|
9
|
+
* storage 读取可能抛(无痕窗口 / 站点数据被禁),一律按「没有记忆」处理。
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveLoginLayout(search: string, storage: Pick<Storage, 'getItem'>): LoginLayout;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const a = "sa-login-layout", c = "login-skin", e = {
|
|
2
|
+
aurora: "solo",
|
|
3
|
+
spotlight: "solo",
|
|
4
|
+
split: "split",
|
|
5
|
+
solo: "solo"
|
|
6
|
+
};
|
|
7
|
+
function t(o) {
|
|
8
|
+
return (o && Object.hasOwn(e, o) ? e[o] : null) ?? null;
|
|
9
|
+
}
|
|
10
|
+
function i(o, l) {
|
|
11
|
+
const n = new URLSearchParams(o), r = t(n.get("layout")) ?? t(n.get("skin"));
|
|
12
|
+
if (r) return r;
|
|
13
|
+
const s = (u) => {
|
|
14
|
+
try {
|
|
15
|
+
return l.getItem(u);
|
|
16
|
+
} catch {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
return t(s(a)) ?? t(s(c)) ?? "solo";
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
a as LAYOUT_KEY,
|
|
24
|
+
t as parseLoginLayout,
|
|
25
|
+
i as resolveLoginLayout
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../../src/views/login/layout.ts"],"sourcesContent":["// 登录页布局的取值与兼容。\n// 布局只存在浏览器本地(不是后台配置项),所以兼容只涉及两处浏览器侧的皮肤 id 格式:\n// · localStorage['login-skin'](皮肤 id 的浏览器记忆)\n// · URL 的 ?skin=(一次性覆盖,便于对比预览;e2e 也靠它进双栏)\n// 皮肤 id → 布局:split 是双栏;aurora / spotlight 是「居中一张卡」→ 单栏。\n\nexport type LoginLayout = 'solo' | 'split'\n\n/** 布局的记忆键(值 solo / split)。 */\nexport const LAYOUT_KEY = 'sa-login-layout'\n/** 皮肤 id 的记忆键(兼容格式),只读不写。 */\nconst LEGACY_SKIN_KEY = 'login-skin'\n\n/** 皮肤 id → 布局('solo' / 'split' 与布局同名,所以布局值也走这张表)。 */\nconst SKIN_TO_LAYOUT: Record<string, LoginLayout> = {\n aurora: 'solo',\n spotlight: 'solo',\n split: 'split',\n solo: 'solo',\n}\n\n/** 把布局值或皮肤 id 解析成布局;认不出返回 null。 */\nexport function parseLoginLayout(value: string | null | undefined): LoginLayout | null {\n return (value && Object.hasOwn(SKIN_TO_LAYOUT, value) ? SKIN_TO_LAYOUT[value] : null) ?? null\n}\n\n/**\n * 决定登录页首次渲染用哪种布局。优先级:\n * ?layout= / ?skin=(一次性,不写记忆)→ localStorage[sa-login-layout] → localStorage[login-skin] → 单栏。\n * storage 读取可能抛(无痕窗口 / 站点数据被禁),一律按「没有记忆」处理。\n */\nexport function resolveLoginLayout(search: string, storage: Pick<Storage, 'getItem'>): LoginLayout {\n const query = new URLSearchParams(search)\n const fromQuery = parseLoginLayout(query.get('layout')) ?? parseLoginLayout(query.get('skin'))\n if (fromQuery) return fromQuery\n const read = (key: string) => {\n try {\n return storage.getItem(key)\n } catch {\n return null\n }\n }\n return parseLoginLayout(read(LAYOUT_KEY)) ?? parseLoginLayout(read(LEGACY_SKIN_KEY)) ?? 'solo'\n}\n"],"names":["LAYOUT_KEY","LEGACY_SKIN_KEY","SKIN_TO_LAYOUT","parseLoginLayout","value","resolveLoginLayout","search","storage","query","fromQuery","read","key"],"mappings":"AASO,MAAMA,IAAa,mBAEpBC,IAAkB,cAGlBC,IAA8C;AAAA,EAClD,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AACR;AAGO,SAASC,EAAiBC,GAAsD;AACrF,UAAQA,KAAS,OAAO,OAAOF,GAAgBE,CAAK,IAAIF,EAAeE,CAAK,IAAI,SAAS;AAC3F;AAOO,SAASC,EAAmBC,GAAgBC,GAAgD;AACjG,QAAMC,IAAQ,IAAI,gBAAgBF,CAAM,GAClCG,IAAYN,EAAiBK,EAAM,IAAI,QAAQ,CAAC,KAAKL,EAAiBK,EAAM,IAAI,MAAM,CAAC;AAC7F,MAAIC,EAAW,QAAOA;AACtB,QAAMC,IAAO,CAACC,MAAgB;AAC5B,QAAI;AACF,aAAOJ,EAAQ,QAAQI,CAAG;AAAA,IAC5B,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAOR,EAAiBO,EAAKV,CAAU,CAAC,KAAKG,EAAiBO,EAAKT,CAAe,CAAC,KAAK;AAC1F;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import o from "./index2.vue.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const
|
|
4
|
+
const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-e94d2959"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
p as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=index.vue.js.map
|