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,50 +1,67 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useMessage as
|
|
3
|
-
import { useI18n as
|
|
4
|
-
import { SmartTable as
|
|
1
|
+
import { defineComponent as F, ref as f, h, openBlock as v, createElementBlock as A, createVNode as a, unref as o, withCtx as r, createTextVNode as R, toDisplayString as N, createSlots as I, Fragment as L, renderList as V, createBlock as H } from "vue";
|
|
2
|
+
import { useMessage as O, NTag as x, NButton as w, NModal as $, NSpace as D } from "naive-ui";
|
|
3
|
+
import { useI18n as j } from "vue-i18n";
|
|
4
|
+
import { SmartTable as q } from "smart-naive-table";
|
|
5
5
|
import G from "../../components/AppIcon.vue.js";
|
|
6
|
-
import
|
|
7
|
-
import { useConfirm as
|
|
8
|
-
import { useNoticeAction as
|
|
9
|
-
import { noticeApi as
|
|
10
|
-
import { NoticeType as
|
|
11
|
-
import { translateError as
|
|
12
|
-
import { fmtDateTime as
|
|
13
|
-
|
|
6
|
+
import U from "../../components/MarkdownEditor/MarkdownView.vue.js";
|
|
7
|
+
import { useConfirm as W } from "../../composables/useConfirm.js";
|
|
8
|
+
import { useNoticeAction as J } from "../../composables/useNoticeAction.js";
|
|
9
|
+
import { noticeApi as g } from "../../api/index.js";
|
|
10
|
+
import { NoticeType as l } from "../../types/api.js";
|
|
11
|
+
import { translateError as z } from "../../utils/error.js";
|
|
12
|
+
import { fmtDateTime as K } from "../../utils/format.js";
|
|
13
|
+
import { TABLE_MIN_ROW_HEIGHT as P, TABLE_TOOLBAR as Q } from "../../utils/tableToolbar.js";
|
|
14
|
+
import X from "../../components/TableTotal/index.vue.js";
|
|
15
|
+
import { createClientFilterFetcher as Y, deriveHeaderFilters as Z, passthroughFilterSerializer as ee } from "../../utils/tableFilter.js";
|
|
16
|
+
const te = { class: "fill-page" }, ge = /* @__PURE__ */ F({
|
|
14
17
|
__name: "notice",
|
|
15
|
-
setup(
|
|
16
|
-
const { t } =
|
|
18
|
+
setup(oe) {
|
|
19
|
+
const { t } = j(), b = O(), { run: C } = W(), d = J(), y = f(), M = Y(g.mine, ["title", "type", "isRead"]), k = [
|
|
17
20
|
{ type: "index", title: () => t("common.rowNo"), width: 64, align: "center" },
|
|
18
21
|
{
|
|
19
22
|
key: "isRead",
|
|
20
23
|
title: () => t("notice.status"),
|
|
21
24
|
width: 80,
|
|
25
|
+
search: {},
|
|
26
|
+
// 布尔值走下拉;render 仍负责标签样式(render 优先于 options)
|
|
27
|
+
options: [
|
|
28
|
+
{ label: () => t("notice.read"), value: !0 },
|
|
29
|
+
{ label: () => t("notice.unread"), value: !1 }
|
|
30
|
+
],
|
|
22
31
|
render: (e) => h(
|
|
23
|
-
|
|
32
|
+
x,
|
|
24
33
|
{ size: "small", type: e.isRead ? "default" : "success", bordered: !1 },
|
|
25
34
|
() => e.isRead ? t("notice.read") : t("notice.unread")
|
|
26
35
|
)
|
|
27
36
|
},
|
|
28
|
-
{ key: "title", title: () => t("notice.noticeTitle") },
|
|
37
|
+
{ key: "title", title: () => t("notice.noticeTitle"), search: {} },
|
|
29
38
|
{
|
|
30
39
|
key: "type",
|
|
31
40
|
title: () => t("notice.type"),
|
|
32
41
|
width: 90,
|
|
42
|
+
search: {},
|
|
43
|
+
options: [
|
|
44
|
+
{ label: () => t("notice.typeNotice"), value: l.Notice },
|
|
45
|
+
{ label: () => t("notice.typeAnnouncement"), value: l.Announcement },
|
|
46
|
+
{ label: () => t("notice.typeMessage"), value: l.Message }
|
|
47
|
+
],
|
|
48
|
+
// 三种类型各有各的文案与颜色(与系统通知管理页一致)。必须三类分开渲染:
|
|
49
|
+
// 若「消息」被显示成「通知」,选筛选下拉里的「消息」就会筛出界面上写着「通知」的行。
|
|
33
50
|
render: (e) => h(
|
|
34
|
-
|
|
51
|
+
x,
|
|
35
52
|
{
|
|
36
53
|
size: "small",
|
|
37
|
-
type: e.type ===
|
|
54
|
+
type: e.type === l.Announcement ? "warning" : e.type === l.Message ? "success" : "info",
|
|
38
55
|
bordered: !1
|
|
39
56
|
},
|
|
40
|
-
() => e.type ===
|
|
57
|
+
() => e.type === l.Announcement ? t("notice.typeAnnouncement") : e.type === l.Message ? t("notice.typeMessage") : t("notice.typeNotice")
|
|
41
58
|
)
|
|
42
59
|
},
|
|
43
60
|
{
|
|
44
61
|
key: "publishTime",
|
|
45
62
|
title: () => t("notice.publishTime"),
|
|
46
63
|
width: 170,
|
|
47
|
-
render: (e) =>
|
|
64
|
+
render: (e) => K(e.publishTime)
|
|
48
65
|
},
|
|
49
66
|
{
|
|
50
67
|
key: "op",
|
|
@@ -53,96 +70,106 @@ const P = { class: "fill-page" }, ce = /* @__PURE__ */ E({
|
|
|
53
70
|
fixed: "right",
|
|
54
71
|
hideInSetting: !0,
|
|
55
72
|
render: (e) => h(
|
|
56
|
-
|
|
57
|
-
{ size: "small", quaternary: !0, type: "primary", onClick: () =>
|
|
73
|
+
w,
|
|
74
|
+
{ size: "small", quaternary: !0, type: "primary", onClick: () => B(e) },
|
|
58
75
|
() => t("notice.view")
|
|
59
76
|
)
|
|
60
77
|
}
|
|
61
|
-
]
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
];
|
|
79
|
+
Z(k);
|
|
80
|
+
const u = f(!1), s = f(null);
|
|
81
|
+
async function B(e) {
|
|
82
|
+
var n;
|
|
83
|
+
if (s.value = e, u.value = !0, !e.isRead)
|
|
65
84
|
try {
|
|
66
|
-
await
|
|
67
|
-
} catch (
|
|
68
|
-
|
|
85
|
+
await g.markRead(e.id), await ((n = y.value) == null ? void 0 : n.refresh());
|
|
86
|
+
} catch (m) {
|
|
87
|
+
b.error(z(m));
|
|
69
88
|
}
|
|
70
89
|
}
|
|
71
|
-
const
|
|
72
|
-
async function
|
|
73
|
-
|
|
90
|
+
const c = f(null);
|
|
91
|
+
async function E(e, n) {
|
|
92
|
+
c.value = n;
|
|
74
93
|
try {
|
|
75
|
-
await
|
|
94
|
+
await d.run(e) && (u.value = !1);
|
|
76
95
|
} finally {
|
|
77
|
-
|
|
96
|
+
c.value = null;
|
|
78
97
|
}
|
|
79
98
|
}
|
|
80
|
-
async function
|
|
99
|
+
async function S() {
|
|
81
100
|
var e;
|
|
82
|
-
await C(() =>
|
|
101
|
+
await C(() => g.markAllRead(), t("notice.allRead")) && await ((e = y.value) == null ? void 0 : e.refresh());
|
|
83
102
|
}
|
|
84
|
-
return (e,
|
|
85
|
-
var
|
|
86
|
-
return
|
|
87
|
-
|
|
88
|
-
"default-page-size": 100,
|
|
103
|
+
return (e, n) => {
|
|
104
|
+
var m, _, T;
|
|
105
|
+
return v(), A("div", te, [
|
|
106
|
+
a(o(q), {
|
|
89
107
|
ref_key: "tableRef",
|
|
90
|
-
ref:
|
|
91
|
-
columns:
|
|
92
|
-
fetcher:
|
|
93
|
-
|
|
94
|
-
|
|
108
|
+
ref: y,
|
|
109
|
+
columns: k,
|
|
110
|
+
fetcher: o(M),
|
|
111
|
+
toolbar: o(Q),
|
|
112
|
+
search: { container: "table" },
|
|
113
|
+
"filter-serializer": o(ee),
|
|
114
|
+
"fill-height": "",
|
|
115
|
+
"min-row-height": o(P),
|
|
116
|
+
"card-on-narrow": "",
|
|
95
117
|
"storage-key": "personal-notice",
|
|
96
|
-
onError:
|
|
118
|
+
onError: n[0] || (n[0] = (i) => o(b).error(o(z)(i)))
|
|
97
119
|
}, {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
120
|
+
"pagination-prefix": r(({ itemCount: i }) => [
|
|
121
|
+
a(X, { count: i }, null, 8, ["count"])
|
|
122
|
+
]),
|
|
123
|
+
"toolbar-right": r(() => [
|
|
124
|
+
a(o(w), { onClick: S }, {
|
|
125
|
+
icon: r(() => [
|
|
126
|
+
a(G, {
|
|
102
127
|
icon: "ph:checks",
|
|
103
128
|
size: 16
|
|
104
129
|
})
|
|
105
130
|
]),
|
|
106
|
-
default:
|
|
107
|
-
R(" " +
|
|
131
|
+
default: r(() => [
|
|
132
|
+
R(" " + N(o(t)("app.notice.markAllRead")), 1)
|
|
108
133
|
]),
|
|
109
134
|
_: 1
|
|
110
135
|
})
|
|
111
136
|
]),
|
|
112
137
|
_: 1
|
|
113
|
-
}, 8, ["fetcher"]),
|
|
114
|
-
|
|
115
|
-
show:
|
|
116
|
-
"onUpdate:show":
|
|
138
|
+
}, 8, ["fetcher", "toolbar", "filter-serializer", "min-row-height"]),
|
|
139
|
+
a(o($), {
|
|
140
|
+
show: u.value,
|
|
141
|
+
"onUpdate:show": n[1] || (n[1] = (i) => u.value = i),
|
|
117
142
|
preset: "card",
|
|
118
|
-
|
|
143
|
+
bordered: !1,
|
|
144
|
+
segmented: { content: !0, footer: "soft" },
|
|
145
|
+
title: ((m = s.value) == null ? void 0 : m.title) || o(t)("notice.detailTitle"),
|
|
119
146
|
style: { width: "720px", "max-width": "92vw" }
|
|
120
|
-
},
|
|
121
|
-
default:
|
|
122
|
-
var
|
|
147
|
+
}, I({
|
|
148
|
+
default: r(() => {
|
|
149
|
+
var i;
|
|
123
150
|
return [
|
|
124
|
-
|
|
125
|
-
value: (
|
|
151
|
+
a(U, {
|
|
152
|
+
value: (i = s.value) == null ? void 0 : i.content
|
|
126
153
|
}, null, 8, ["value"])
|
|
127
154
|
];
|
|
128
155
|
}),
|
|
129
156
|
_: 2
|
|
130
157
|
}, [
|
|
131
|
-
(
|
|
158
|
+
(T = (_ = s.value) == null ? void 0 : _.actions) != null && T.length ? {
|
|
132
159
|
name: "footer",
|
|
133
|
-
fn:
|
|
134
|
-
|
|
135
|
-
default:
|
|
136
|
-
(
|
|
137
|
-
key:
|
|
160
|
+
fn: r(() => [
|
|
161
|
+
a(o(D), { justify: "end" }, {
|
|
162
|
+
default: r(() => [
|
|
163
|
+
(v(!0), A(L, null, V(s.value.actions, (i, p) => (v(), H(o(w), {
|
|
164
|
+
key: p,
|
|
138
165
|
size: "small",
|
|
139
|
-
type:
|
|
140
|
-
loading:
|
|
141
|
-
disabled:
|
|
142
|
-
onClick: (
|
|
166
|
+
type: o(d).buttonType(i),
|
|
167
|
+
loading: c.value === p,
|
|
168
|
+
disabled: c.value !== null && c.value !== p,
|
|
169
|
+
onClick: (ie) => E(i, p)
|
|
143
170
|
}, {
|
|
144
|
-
default:
|
|
145
|
-
R(
|
|
171
|
+
default: r(() => [
|
|
172
|
+
R(N(o(d).label(i)), 1)
|
|
146
173
|
]),
|
|
147
174
|
_: 2
|
|
148
175
|
}, 1032, ["type", "loading", "disabled", "onClick"]))), 128))
|
|
@@ -158,6 +185,6 @@ const P = { class: "fill-page" }, ce = /* @__PURE__ */ E({
|
|
|
158
185
|
}
|
|
159
186
|
});
|
|
160
187
|
export {
|
|
161
|
-
|
|
188
|
+
ge as default
|
|
162
189
|
};
|
|
163
190
|
//# sourceMappingURL=notice2.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notice2.vue.js","sources":["../../../src/views/personal/notice.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 我的通知(个人页,非管理端):列出发给自己的通知并读正文、标记已读。\n// 走 [ActiveSession] 的 notice/mine —— 任何登录用户可调,故本页注册为静态路由,不进菜单/权限系统。\n// 正文随列表一起返回(NoticeMineItem.content),点\"查看\"不另发请求。\n// 通知带动作列表时,正文弹层底部渲染成按钮(useNoticeAction),与顶栏铃铛同一套行为。\nimport { h, ref } from 'vue'\nimport { NButton, NModal, NSpace, NTag, useMessage } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { SmartTable, type SmartTableColumn, type SmartTableInst } from 'smart-naive-table'\nimport AppIcon from '#/components/AppIcon.vue'\nimport MarkdownView from '#/components/MarkdownEditor/MarkdownView.vue'\nimport { useConfirm } from '#/composables/useConfirm'\nimport { useNoticeAction } from '#/composables/useNoticeAction'\nimport { noticeApi } from '#/api'\nimport { NoticeType, type NoticeAction, type NoticeMineItem } from '#/types/api'\nimport { translateError } from '#/utils/error'\nimport { fmtDateTime } from '#/utils/format'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst { run } = useConfirm()\nconst noticeAction = useNoticeAction()\nconst tableRef = ref<SmartTableInst<NoticeMineItem>>()\n\nconst columns: SmartTableColumn<NoticeMineItem>[] = [\n { type: 'index', title: () => t('common.rowNo'), width: 64, align: 'center' },\n {\n key: 'isRead',\n title: () => t('notice.status'),\n width: 80,\n render: r =>\n h(NTag, { size: 'small', type: r.isRead ? 'default' : 'success', bordered: false }, () =>\n r.isRead ? t('notice.read') : t('notice.unread'),\n ),\n },\n { key: 'title', title: () => t('notice.noticeTitle') },\n {\n key: 'type',\n title: () => t('notice.type'),\n width: 90,\n render: r =>\n h(\n NTag,\n {\n size: 'small',\n type: r.type === NoticeType.Announcement ? 'warning' : 'info',\n bordered: false,\n },\n () =>\n r.type === NoticeType.Announcement\n ? t('notice.typeAnnouncement')\n : t('notice.typeNotice'),\n ),\n },\n {\n key: 'publishTime',\n title: () => t('notice.publishTime'),\n width: 170,\n render: r => fmtDateTime(r.publishTime),\n },\n {\n key: 'op',\n title: () => t('common.operation'),\n width: 80,\n fixed: 'right',\n hideInSetting: true,\n render: r =>\n h(\n NButton,\n { size: 'small', quaternary: true, type: 'primary', onClick: () => openView(r) },\n () => t('notice.view'),\n ),\n },\n]\n\n// ── 查看正文(行里已带 content,不发请求)+ 顺手标记已读 ──\nconst showView = ref(false)\nconst viewRow = ref<NoticeMineItem | null>(null)\nasync function openView(r: NoticeMineItem) {\n viewRow.value = r\n showView.value = true\n if (r.isRead) return\n try {\n await noticeApi.markRead(r.id)\n await tableRef.value?.refresh() // 顶栏未读角标由其自身的 30s 轮询自愈\n } catch (e) {\n message.error(translateError(e))\n }\n}\n\nconst running = ref<number | null>(null)\nasync function onAction(a: NoticeAction, index: number) {\n running.value = index\n try {\n if (await noticeAction.run(a)) showView.value = false\n } finally {\n running.value = null\n }\n}\n\nasync function markAll() {\n if (await run(() => noticeApi.markAllRead(), t('notice.allRead'))) await tableRef.value?.refresh()\n}\n</script>\n\n<template>\n <!-- .fill-page:高度链在 styles/layout.css,卡片吃满内容区,滚动只发生在表体里。 -->\n <div class=\"fill-page\">\n <SmartTable\n :default-page-size=\"100\"\n ref=\"tableRef\"\n :columns=\"columns\"\n :fetcher=\"noticeApi.mine\"\n flex-height\n virtual-scroll\n storage-key=\"personal-notice\"\n @error=\"e => message.error(translateError(e))\"\n >\n <template #toolbar>\n <n-button @click=\"markAll\">\n <template #icon><AppIcon icon=\"ph:checks\" :size=\"16\" /></template>\n {{ t('app.notice.markAllRead') }}\n </n-button>\n </template>\n </SmartTable>\n\n <n-modal\n v-model:show=\"showView\"\n preset=\"card\"\n :title=\"viewRow?.title || t('notice.detailTitle')\"\n style=\"width: 720px; max-width: 92vw\"\n >\n <MarkdownView :value=\"viewRow?.content\" />\n <template v-if=\"viewRow?.actions?.length\" #footer>\n <n-space justify=\"end\">\n <n-button\n v-for=\"(a, i) in viewRow.actions\"\n :key=\"i\"\n size=\"small\"\n :type=\"noticeAction.buttonType(a)\"\n :loading=\"running === i\"\n :disabled=\"running !== null && running !== i\"\n @click=\"onAction(a, i)\"\n >\n {{ noticeAction.label(a) }}\n </n-button>\n </n-space>\n </template>\n </n-modal>\n </div>\n</template>\n"],"names":["useI18n","message","useMessage","run","useConfirm","noticeAction","useNoticeAction","tableRef","ref","columns","r","NTag","NoticeType","fmtDateTime","NButton","openView","showView","viewRow","noticeApi","_a","e","translateError","running","onAction","a","index","markAll","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","SmartTable","_cache","AppIcon","_createTextVNode","NModal","$event","MarkdownView","_c","_b","NSpace","_Fragment","i","_createBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notice2.vue.js","sources":["../../../src/views/personal/notice.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 我的通知(个人页,非管理端):列出发给自己的通知并读正文、标记已读。\n// 走 [ActiveSession] 的 notice/mine —— 任何登录用户可调,故本页注册为静态路由,不进菜单/权限系统。\n// 正文随列表一起返回(NoticeMineItem.content),点\"查看\"不另发请求。\n// 通知带动作列表时,正文弹层底部渲染成按钮(useNoticeAction),与顶栏铃铛同一套行为。\nimport { h, ref } from 'vue'\nimport { NButton, NModal, NSpace, NTag, useMessage } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { SmartTable, type SmartTableColumn, type SmartTableInst } from 'smart-naive-table'\nimport AppIcon from '#/components/AppIcon.vue'\nimport MarkdownView from '#/components/MarkdownEditor/MarkdownView.vue'\nimport { useConfirm } from '#/composables/useConfirm'\nimport { useNoticeAction } from '#/composables/useNoticeAction'\nimport { noticeApi } from '#/api'\nimport { NoticeType, type NoticeAction, type NoticeMineItem } from '#/types/api'\nimport { translateError } from '#/utils/error'\nimport { fmtDateTime } from '#/utils/format'\nimport { TABLE_MIN_ROW_HEIGHT, TABLE_TOOLBAR } from '#/utils/tableToolbar'\nimport TableTotal from '#/components/TableTotal/index.vue'\nimport {\n createClientFilterFetcher,\n passthroughFilterSerializer,\n deriveHeaderFilters,\n} from '#/utils/tableFilter'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst { run } = useConfirm()\nconst noticeAction = useNoticeAction()\nconst tableRef = ref<SmartTableInst<NoticeMineItem>>()\n// 后端没有过滤能力,搜索由前端求值;fields 要与下面声明了 search 的列 key 一致\nconst fetcher = createClientFilterFetcher(noticeApi.mine, ['title', 'type', 'isRead'])\n\nconst columns: SmartTableColumn<NoticeMineItem>[] = [\n { type: 'index', title: () => t('common.rowNo'), width: 64, align: 'center' },\n {\n key: 'isRead',\n title: () => t('notice.status'),\n width: 80,\n search: {},\n // 布尔值走下拉;render 仍负责标签样式(render 优先于 options)\n options: [\n { label: () => t('notice.read'), value: true },\n { label: () => t('notice.unread'), value: false },\n ],\n render: r =>\n h(NTag, { size: 'small', type: r.isRead ? 'default' : 'success', bordered: false }, () =>\n r.isRead ? t('notice.read') : t('notice.unread'),\n ),\n },\n { key: 'title', title: () => t('notice.noticeTitle'), search: {} },\n {\n key: 'type',\n title: () => t('notice.type'),\n width: 90,\n search: {},\n options: [\n { label: () => t('notice.typeNotice'), value: NoticeType.Notice },\n { label: () => t('notice.typeAnnouncement'), value: NoticeType.Announcement },\n { label: () => t('notice.typeMessage'), value: NoticeType.Message },\n ],\n // 三种类型各有各的文案与颜色(与系统通知管理页一致)。必须三类分开渲染:\n // 若「消息」被显示成「通知」,选筛选下拉里的「消息」就会筛出界面上写着「通知」的行。\n render: r =>\n h(\n NTag,\n {\n size: 'small',\n type:\n r.type === NoticeType.Announcement\n ? 'warning'\n : r.type === NoticeType.Message\n ? 'success'\n : 'info',\n bordered: false,\n },\n () =>\n r.type === NoticeType.Announcement\n ? t('notice.typeAnnouncement')\n : r.type === NoticeType.Message\n ? t('notice.typeMessage')\n : t('notice.typeNotice'),\n ),\n },\n {\n key: 'publishTime',\n title: () => t('notice.publishTime'),\n width: 170,\n render: r => fmtDateTime(r.publishTime),\n },\n {\n key: 'op',\n title: () => t('common.operation'),\n width: 80,\n fixed: 'right',\n hideInSetting: true,\n render: r =>\n h(\n NButton,\n { size: 'small', quaternary: true, type: 'primary', onClick: () => openView(r) },\n () => t('notice.view'),\n ),\n },\n]\nderiveHeaderFilters(columns)\n\n// ── 查看正文(行里已带 content,不发请求)+ 顺手标记已读 ──\nconst showView = ref(false)\nconst viewRow = ref<NoticeMineItem | null>(null)\nasync function openView(r: NoticeMineItem) {\n viewRow.value = r\n showView.value = true\n if (r.isRead) return\n try {\n await noticeApi.markRead(r.id)\n await tableRef.value?.refresh() // 顶栏未读角标由其自身的 30s 轮询自愈\n } catch (e) {\n message.error(translateError(e))\n }\n}\n\nconst running = ref<number | null>(null)\nasync function onAction(a: NoticeAction, index: number) {\n running.value = index\n try {\n if (await noticeAction.run(a)) showView.value = false\n } finally {\n running.value = null\n }\n}\n\nasync function markAll() {\n if (await run(() => noticeApi.markAllRead(), t('notice.allRead'))) await tableRef.value?.refresh()\n}\n</script>\n\n<template>\n <!-- .fill-page:高度链在 styles/layout.css,卡片吃满内容区,滚动只发生在表体里。 -->\n <div class=\"fill-page\">\n <SmartTable\n ref=\"tableRef\"\n :columns=\"columns\"\n :fetcher=\"fetcher\"\n :toolbar=\"TABLE_TOOLBAR\"\n :search=\"{ container: 'table' }\"\n :filter-serializer=\"passthroughFilterSerializer\"\n fill-height\n :min-row-height=\"TABLE_MIN_ROW_HEIGHT\"\n card-on-narrow\n storage-key=\"personal-notice\"\n @error=\"e => message.error(translateError(e))\"\n >\n <template #pagination-prefix=\"{ itemCount }\">\n <TableTotal :count=\"itemCount\" />\n </template>\n <template #toolbar-right>\n <n-button @click=\"markAll\">\n <template #icon><AppIcon icon=\"ph:checks\" :size=\"16\" /></template>\n {{ t('app.notice.markAllRead') }}\n </n-button>\n </template>\n </SmartTable>\n\n <n-modal\n v-model:show=\"showView\"\n preset=\"card\"\n :bordered=\"false\"\n :segmented=\"{ content: true, footer: 'soft' }\"\n :title=\"viewRow?.title || t('notice.detailTitle')\"\n style=\"width: 720px; max-width: 92vw\"\n >\n <MarkdownView :value=\"viewRow?.content\" />\n <template v-if=\"viewRow?.actions?.length\" #footer>\n <n-space justify=\"end\">\n <n-button\n v-for=\"(a, i) in viewRow.actions\"\n :key=\"i\"\n size=\"small\"\n :type=\"noticeAction.buttonType(a)\"\n :loading=\"running === i\"\n :disabled=\"running !== null && running !== i\"\n @click=\"onAction(a, i)\"\n >\n {{ noticeAction.label(a) }}\n </n-button>\n </n-space>\n </template>\n </n-modal>\n </div>\n</template>\n"],"names":["useI18n","message","useMessage","run","useConfirm","noticeAction","useNoticeAction","tableRef","ref","fetcher","createClientFilterFetcher","noticeApi","columns","r","NTag","NoticeType","fmtDateTime","NButton","openView","deriveHeaderFilters","showView","viewRow","_a","e","translateError","running","onAction","a","index","markAll","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","SmartTable","TABLE_TOOLBAR","passthroughFilterSerializer","TABLE_MIN_ROW_HEIGHT","_cache","_withCtx","itemCount","TableTotal","AppIcon","_createTextVNode","NModal","$event","MarkdownView","_c","_b","NSpace","_Fragment","i","_createBlock"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as R, reactive as k, ref as P, openBlock as g, createBlock as h, unref as e, withCtx as t, createTextVNode as y, toDisplayString as v, createCommentVNode as q, createVNode as s, withKeys as N } from "vue";
|
|
2
2
|
import { useRouter as C } from "vue-router";
|
|
3
|
-
import { useMessage as A, NCard as I, NAlert as S, NForm as U, NFormItem as u, NInput as
|
|
3
|
+
import { useMessage as A, NCard as I, NAlert as S, NForm as U, NFormItem as u, NInput as i, NButton as V } from "naive-ui";
|
|
4
4
|
import { useI18n as B } from "vue-i18n";
|
|
5
5
|
import E from "../../components/PasswordStrength/index.vue.js";
|
|
6
6
|
import { personalApi as F, authApi as K } from "../../api/index.js";
|
|
@@ -9,10 +9,10 @@ import { useUserStore as H } from "../../stores/user.js";
|
|
|
9
9
|
import { useAuthStore as L } from "../../stores/auth.js";
|
|
10
10
|
import { resetRouter as M } from "../../router/index.js";
|
|
11
11
|
import { translateError as T } from "../../utils/error.js";
|
|
12
|
-
const re = /* @__PURE__ */
|
|
12
|
+
const re = /* @__PURE__ */ R({
|
|
13
13
|
__name: "password",
|
|
14
14
|
setup(j) {
|
|
15
|
-
const { t: r } = B(),
|
|
15
|
+
const { t: r } = B(), w = A(), b = C(), c = H(), _ = L(), o = k({ oldPassword: "", newPassword: "", confirmPassword: "" }), n = P(!1), p = P(null), x = {
|
|
16
16
|
oldPassword: {
|
|
17
17
|
required: !0,
|
|
18
18
|
message: () => r("changePassword.oldRequired"),
|
|
@@ -26,109 +26,116 @@ const re = /* @__PURE__ */ N({
|
|
|
26
26
|
confirmPassword: {
|
|
27
27
|
required: !0,
|
|
28
28
|
// 两次不一致必须自己写 validator:naive 没有内置的"等于另一字段"规则
|
|
29
|
-
validator: (
|
|
29
|
+
validator: (d, a) => a ? a !== o.newPassword ? new Error(r("changePassword.mismatch")) : !0 : new Error(r("changePassword.confirmRequired")),
|
|
30
30
|
trigger: ["input", "blur"]
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
-
async function
|
|
34
|
-
var
|
|
35
|
-
await ((
|
|
33
|
+
async function m() {
|
|
34
|
+
var d;
|
|
35
|
+
await ((d = p.value) == null ? void 0 : d.validate()), n.value = !0;
|
|
36
36
|
try {
|
|
37
37
|
await F.updatePassword({
|
|
38
38
|
oldPassword: o.oldPassword,
|
|
39
39
|
newPassword: o.newPassword
|
|
40
|
-
}),
|
|
40
|
+
}), w.success(r("changePassword.changed")), await D();
|
|
41
41
|
try {
|
|
42
42
|
await K.logout();
|
|
43
43
|
} catch {
|
|
44
44
|
}
|
|
45
|
-
M(), _.reset(),
|
|
46
|
-
} catch (
|
|
47
|
-
|
|
45
|
+
M(), _.reset(), c.clear(), b.replace("/login");
|
|
46
|
+
} catch (a) {
|
|
47
|
+
w.error(T(a));
|
|
48
48
|
} finally {
|
|
49
|
-
|
|
49
|
+
n.value = !1;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
return (
|
|
52
|
+
return (d, a) => (g(), h(e(I), {
|
|
53
|
+
class: "a-card",
|
|
53
54
|
bordered: !0,
|
|
54
55
|
title: e(r)("changePassword.title"),
|
|
55
|
-
style:
|
|
56
|
+
"content-style": "padding: 20px 24px",
|
|
57
|
+
style: { "max-width": "460px", width: "100%" }
|
|
56
58
|
}, {
|
|
57
59
|
default: t(() => {
|
|
58
60
|
var f;
|
|
59
61
|
return [
|
|
60
|
-
(f = e(
|
|
62
|
+
(f = e(c).userInfo) != null && f.mustChangePassword ? (g(), h(e(S), {
|
|
61
63
|
key: 0,
|
|
62
64
|
type: "warning",
|
|
65
|
+
bordered: !1,
|
|
63
66
|
style: { "margin-bottom": "16px" }
|
|
64
67
|
}, {
|
|
65
68
|
default: t(() => [
|
|
66
|
-
v(
|
|
69
|
+
y(v(e(r)("changePassword.forcedHint")), 1)
|
|
67
70
|
]),
|
|
68
71
|
_: 1
|
|
69
|
-
})) :
|
|
70
|
-
|
|
72
|
+
})) : q("", !0),
|
|
73
|
+
s(e(U), {
|
|
71
74
|
ref_key: "formRef",
|
|
72
75
|
ref: p,
|
|
73
76
|
model: o,
|
|
74
|
-
rules:
|
|
77
|
+
rules: x,
|
|
75
78
|
"label-placement": "top"
|
|
76
79
|
}, {
|
|
77
80
|
default: t(() => [
|
|
78
|
-
|
|
81
|
+
s(e(u), {
|
|
79
82
|
label: e(r)("changePassword.oldPassword"),
|
|
80
83
|
path: "oldPassword"
|
|
81
84
|
}, {
|
|
82
85
|
default: t(() => [
|
|
83
|
-
|
|
86
|
+
s(e(i), {
|
|
84
87
|
value: o.oldPassword,
|
|
85
|
-
"onUpdate:value":
|
|
88
|
+
"onUpdate:value": a[0] || (a[0] = (l) => o.oldPassword = l),
|
|
86
89
|
type: "password",
|
|
87
|
-
"show-password-on": "click"
|
|
88
|
-
|
|
90
|
+
"show-password-on": "click",
|
|
91
|
+
placeholder: e(r)("changePassword.oldRequired")
|
|
92
|
+
}, null, 8, ["value", "placeholder"])
|
|
89
93
|
]),
|
|
90
94
|
_: 1
|
|
91
95
|
}, 8, ["label"]),
|
|
92
|
-
|
|
96
|
+
s(e(u), {
|
|
93
97
|
label: e(r)("changePassword.newPassword"),
|
|
94
98
|
path: "newPassword"
|
|
95
99
|
}, {
|
|
96
100
|
default: t(() => [
|
|
97
|
-
|
|
101
|
+
s(e(i), {
|
|
98
102
|
value: o.newPassword,
|
|
99
|
-
"onUpdate:value":
|
|
103
|
+
"onUpdate:value": a[1] || (a[1] = (l) => o.newPassword = l),
|
|
100
104
|
type: "password",
|
|
101
|
-
"show-password-on": "click"
|
|
102
|
-
|
|
105
|
+
"show-password-on": "click",
|
|
106
|
+
placeholder: e(r)("changePassword.newRequired")
|
|
107
|
+
}, null, 8, ["value", "placeholder"])
|
|
103
108
|
]),
|
|
104
109
|
_: 1
|
|
105
110
|
}, 8, ["label"]),
|
|
106
|
-
|
|
111
|
+
s(E, {
|
|
107
112
|
value: o.newPassword
|
|
108
113
|
}, null, 8, ["value"]),
|
|
109
|
-
|
|
114
|
+
s(e(u), {
|
|
110
115
|
label: e(r)("changePassword.confirmPassword"),
|
|
111
116
|
path: "confirmPassword"
|
|
112
117
|
}, {
|
|
113
118
|
default: t(() => [
|
|
114
|
-
|
|
119
|
+
s(e(i), {
|
|
115
120
|
value: o.confirmPassword,
|
|
116
|
-
"onUpdate:value":
|
|
121
|
+
"onUpdate:value": a[2] || (a[2] = (l) => o.confirmPassword = l),
|
|
117
122
|
type: "password",
|
|
118
123
|
"show-password-on": "click",
|
|
119
|
-
|
|
120
|
-
|
|
124
|
+
placeholder: e(r)("changePassword.confirmRequired"),
|
|
125
|
+
onKeyup: N(m, ["enter"])
|
|
126
|
+
}, null, 8, ["value", "placeholder"])
|
|
121
127
|
]),
|
|
122
128
|
_: 1
|
|
123
129
|
}, 8, ["label"]),
|
|
124
|
-
|
|
130
|
+
s(e(V), {
|
|
125
131
|
type: "primary",
|
|
126
132
|
block: "",
|
|
127
|
-
|
|
128
|
-
|
|
133
|
+
style: { "margin-top": "8px" },
|
|
134
|
+
loading: n.value,
|
|
135
|
+
onClick: m
|
|
129
136
|
}, {
|
|
130
137
|
default: t(() => [
|
|
131
|
-
v(
|
|
138
|
+
y(v(e(r)("common.submit")), 1)
|
|
132
139
|
]),
|
|
133
140
|
_: 1
|
|
134
141
|
}, 8, ["loading"])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password2.vue.js","sources":["../../../src/views/personal/password.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport {\n NCard,\n NForm,\n NFormItem,\n NInput,\n NButton,\n NAlert,\n useMessage,\n type FormInst,\n type FormRules,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport PasswordStrength from '#/components/PasswordStrength/index.vue'\nimport { personalApi, authApi } from '#/api'\nimport { beginVoluntaryLogout } from '#/composables/useRealtime'\nimport { useUserStore } from '#/stores/user'\nimport { useAuthStore } from '#/stores/auth'\nimport { resetRouter } from '#/router'\nimport { translateError } from '#/utils/error'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst router = useRouter()\nconst user = useUserStore()\nconst auth = useAuthStore()\n\nconst model = reactive({ oldPassword: '', newPassword: '', confirmPassword: '' })\nconst saving = ref(false)\nconst formRef = ref<FormInst | null>(null)\n\n// 校验落在表单项上(全站一致),不用 toast —— toast 飘在角落、不指向出错的那一栏,且会被后续消息挤掉。\n// ponytail: 密码复杂度不进 rules。PasswordStrength 已在输入时逐条实时显示策略清单,后端也强制(弱口令返 passwordTooWeak),\n// 再抄一份到 rules 就是第三处真源,策略一改三处都要跟。\nconst rules: FormRules = {\n oldPassword: {\n required: true,\n message: () => t('changePassword.oldRequired'),\n trigger: ['input', 'blur'],\n },\n newPassword: {\n required: true,\n message: () => t('changePassword.newRequired'),\n trigger: ['input', 'blur'],\n },\n confirmPassword: {\n required: true,\n // 两次不一致必须自己写 validator:naive 没有内置的\"等于另一字段\"规则\n validator: (_rule, value: string) =>\n !value\n ? new Error(t('changePassword.confirmRequired'))\n : value !== model.newPassword\n ? new Error(t('changePassword.mismatch'))\n : true,\n trigger: ['input', 'blur'],\n },\n}\n\nasync function submit() {\n // validate() 必须留在 try 之外:校验失败是 reject,落进下面的 catch 会被 translateError 翻成一条\n // 不知所云的错误 toast —— 而红字已经打在表单项上了(参照 system/user/index.vue 的 save())。\n await formRef.value?.validate()\n\n saving.value = true\n try {\n await personalApi.updatePassword({\n oldPassword: model.oldPassword,\n newPassword: model.newPassword,\n })\n message.success(t('changePassword.changed'))\n // 改密后强制重新登录(自愿路径:先断实时,避免 force-logout 误弹「被强制下线」)\n await beginVoluntaryLogout()\n try {\n await authApi.logout()\n } catch {\n /* 尽力而为 */\n }\n resetRouter()\n auth.reset()\n user.clear()\n router.replace('/login')\n } catch (e) {\n message.error(translateError(e))\n } finally {\n saving.value = false\n }\n}\n</script>\n\n<template>\n <n-card
|
|
1
|
+
{"version":3,"file":"password2.vue.js","sources":["../../../src/views/personal/password.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport {\n NCard,\n NForm,\n NFormItem,\n NInput,\n NButton,\n NAlert,\n useMessage,\n type FormInst,\n type FormRules,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport PasswordStrength from '#/components/PasswordStrength/index.vue'\nimport { personalApi, authApi } from '#/api'\nimport { beginVoluntaryLogout } from '#/composables/useRealtime'\nimport { useUserStore } from '#/stores/user'\nimport { useAuthStore } from '#/stores/auth'\nimport { resetRouter } from '#/router'\nimport { translateError } from '#/utils/error'\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst router = useRouter()\nconst user = useUserStore()\nconst auth = useAuthStore()\n\nconst model = reactive({ oldPassword: '', newPassword: '', confirmPassword: '' })\nconst saving = ref(false)\nconst formRef = ref<FormInst | null>(null)\n\n// 校验落在表单项上(全站一致),不用 toast —— toast 飘在角落、不指向出错的那一栏,且会被后续消息挤掉。\n// ponytail: 密码复杂度不进 rules。PasswordStrength 已在输入时逐条实时显示策略清单,后端也强制(弱口令返 passwordTooWeak),\n// 再抄一份到 rules 就是第三处真源,策略一改三处都要跟。\nconst rules: FormRules = {\n oldPassword: {\n required: true,\n message: () => t('changePassword.oldRequired'),\n trigger: ['input', 'blur'],\n },\n newPassword: {\n required: true,\n message: () => t('changePassword.newRequired'),\n trigger: ['input', 'blur'],\n },\n confirmPassword: {\n required: true,\n // 两次不一致必须自己写 validator:naive 没有内置的\"等于另一字段\"规则\n validator: (_rule, value: string) =>\n !value\n ? new Error(t('changePassword.confirmRequired'))\n : value !== model.newPassword\n ? new Error(t('changePassword.mismatch'))\n : true,\n trigger: ['input', 'blur'],\n },\n}\n\nasync function submit() {\n // validate() 必须留在 try 之外:校验失败是 reject,落进下面的 catch 会被 translateError 翻成一条\n // 不知所云的错误 toast —— 而红字已经打在表单项上了(参照 system/user/index.vue 的 save())。\n await formRef.value?.validate()\n\n saving.value = true\n try {\n await personalApi.updatePassword({\n oldPassword: model.oldPassword,\n newPassword: model.newPassword,\n })\n message.success(t('changePassword.changed'))\n // 改密后强制重新登录(自愿路径:先断实时,避免 force-logout 误弹「被强制下线」)\n await beginVoluntaryLogout()\n try {\n await authApi.logout()\n } catch {\n /* 尽力而为 */\n }\n resetRouter()\n auth.reset()\n user.clear()\n router.replace('/login')\n } catch (e) {\n message.error(translateError(e))\n } finally {\n saving.value = false\n }\n}\n</script>\n\n<template>\n <n-card\n class=\"a-card\"\n :bordered=\"true\"\n :title=\"t('changePassword.title')\"\n content-style=\"padding: 20px 24px\"\n style=\"max-width: 460px; width: 100%\"\n >\n <n-alert\n v-if=\"user.userInfo?.mustChangePassword\"\n type=\"warning\"\n :bordered=\"false\"\n style=\"margin-bottom: 16px\"\n >\n {{ t('changePassword.forcedHint') }}\n </n-alert>\n <n-form ref=\"formRef\" :model=\"model\" :rules=\"rules\" label-placement=\"top\">\n <n-form-item :label=\"t('changePassword.oldPassword')\" path=\"oldPassword\">\n <n-input\n v-model:value=\"model.oldPassword\"\n type=\"password\"\n show-password-on=\"click\"\n :placeholder=\"t('changePassword.oldRequired')\"\n />\n </n-form-item>\n <n-form-item :label=\"t('changePassword.newPassword')\" path=\"newPassword\">\n <n-input\n v-model:value=\"model.newPassword\"\n type=\"password\"\n show-password-on=\"click\"\n :placeholder=\"t('changePassword.newRequired')\"\n />\n </n-form-item>\n <PasswordStrength :value=\"model.newPassword\" />\n <n-form-item :label=\"t('changePassword.confirmPassword')\" path=\"confirmPassword\">\n <n-input\n v-model:value=\"model.confirmPassword\"\n type=\"password\"\n show-password-on=\"click\"\n :placeholder=\"t('changePassword.confirmRequired')\"\n @keyup.enter=\"submit\"\n />\n </n-form-item>\n <!-- 不用 :disabled 做第二重必填:必填已经是 rules 的事,禁用按钮反而让人不知道缺什么 -->\n <n-button type=\"primary\" block style=\"margin-top: 8px\" :loading=\"saving\" @click=\"submit\">\n {{ t('common.submit') }}\n </n-button>\n </n-form>\n </n-card>\n</template>\n"],"names":["t","useI18n","message","useMessage","router","useRouter","user","useUserStore","auth","useAuthStore","model","reactive","saving","ref","formRef","rules","_rule","value","submit","_a","personalApi","beginVoluntaryLogout","authApi","resetRouter","e","translateError","_createBlock","_unref","NCard","NAlert","_createVNode","NForm","NFormItem","NInput","_cache","$event","PasswordStrength","NButton"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import o from "./profile2.vue.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import r from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-c19f2341"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
m as default
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=profile.vue.js.map
|