smart-admin-web 10.15.0 → 10.20.1
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 +1 -1
- package/dist/api/index.d.ts +4 -2
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +39 -5
- package/dist/assets/icons/ph-subset.json.js +5 -5
- 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/TableTotal/index.vue.d.ts +6 -0
- 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/useModule.js +39 -29
- package/dist/composables/useModule.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 +15 -0
- package/dist/composables/useSite.js +16 -14
- 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 +219 -205
- 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 +19 -18
- 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/loginHero.d.ts +2 -2
- package/dist/lib/loginHero.js.map +1 -1
- package/dist/lib/runtime.js +1 -1
- 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 +221 -15
- package/dist/locales/en-US.js +230 -21
- 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 +221 -15
- package/dist/locales/zh-CN.js +238 -28
- 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 +8 -8
- 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 +407 -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.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.js +3 -3
- package/dist/views/login/components/LoginHeroPanel2.vue.js +34 -39
- package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
- 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 +2 -2
- package/dist/views/system/config/components/AdminMock2.vue.js +60 -43
- package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -1
- package/dist/views/system/config/components/AdvancedSection.vue.js +5 -2
- package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -1
- package/dist/views/system/config/components/AdvancedSection2.vue.js +98 -70
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
- package/dist/views/system/config/components/BrandSection.vue.js +2 -2
- package/dist/views/system/config/components/BrandSection2.vue.js +121 -119
- package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -1
- package/dist/views/system/config/components/CfgGroup.vue.js +3 -3
- package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -1
- package/dist/views/system/config/components/CfgRow.vue.js +1 -1
- package/dist/views/system/config/components/CfgRow2.vue.js +24 -23
- package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -1
- package/dist/views/system/config/components/CfgSegment.vue.js +1 -1
- package/dist/views/system/config/components/CfgSegment2.vue.js +16 -15
- package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -1
- package/dist/views/system/config/components/ConfigFormModal.vue.js +2 -2
- package/dist/views/system/config/components/ConfigFormModal2.vue.js +35 -33
- package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
- package/dist/views/system/config/components/JobSection.vue.js +2 -2
- package/dist/views/system/config/components/JobSection2.vue.js +46 -44
- package/dist/views/system/config/components/JobSection2.vue.js.map +1 -1
- package/dist/views/system/config/components/LoginMock.vue.js +3 -3
- package/dist/views/system/config/components/LoginMock2.vue.js +83 -72
- package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -1
- package/dist/views/system/config/components/LogoCropper.vue.js +1 -1
- package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -1
- package/dist/views/system/config/components/LogoEditor.vue.js +2 -2
- package/dist/views/system/config/components/LogoEditor2.vue.js +11 -13
- package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -1
- package/dist/views/system/config/components/ProviderSheet.vue.js +3 -3
- package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -1
- package/dist/views/system/config/components/SectionLayout.vue.d.ts +4 -2
- package/dist/views/system/config/components/SectionLayout.vue.js +2 -2
- package/dist/views/system/config/components/SectionLayout2.vue.js +51 -27
- package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -1
- package/dist/views/system/config/components/SecuritySection.vue.js +2 -2
- package/dist/views/system/config/components/SecuritySection2.vue.js +207 -206
- package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -1
- package/dist/views/system/config/components/SensitiveSection.vue.js +2 -2
- package/dist/views/system/config/components/SensitiveSection2.vue.js +107 -102
- package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -1
- package/dist/views/system/config/components/UploadSection.vue.js +2 -2
- package/dist/views/system/config/components/UploadSection2.vue.js +86 -77
- package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -1
- 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 +2 -2
- package/dist/views/system/config/draft.js.map +1 -1
- package/dist/views/system/config/groups.d.ts +4 -1
- package/dist/views/system/config/groups.js +54 -49
- package/dist/views/system/config/groups.js.map +1 -1
- package/dist/views/system/config/index.vue.js +3 -2
- package/dist/views/system/config/index.vue.js.map +1 -1
- package/dist/views/system/config/index2.vue.js +173 -148
- 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/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 +3 -5
- 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.d.ts +0 -16
- 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.d.ts +0 -3
- 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 -65
- package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
- package/dist/views/login/skins/Spotlight.vue.d.ts +0 -3
- 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/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/WatermarkSection.vue.d.ts} +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export declare const WATERMARK_FIELDS: readonly ["name", "account", "org", "phone", "time", "text"];
|
|
2
|
+
export type WatermarkField = (typeof WATERMARK_FIELDS)[number];
|
|
3
|
+
export declare const WATERMARK_TIME_FORMATS: readonly ["YYYY-MM-DD", "YYYY-MM-DD HH:mm", "YYYY-MM-DD HH:mm:ss", "MM-DD HH:mm"];
|
|
4
|
+
export type WatermarkTimeFormat = (typeof WATERMARK_TIME_FORMATS)[number];
|
|
5
|
+
export type WatermarkLayout = 'single' | 'multi';
|
|
6
|
+
export type WatermarkDensity = 'sparse' | 'normal' | 'dense';
|
|
7
|
+
export interface WatermarkSettings {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
/** 已按 WATERMARK_FIELDS 的固定顺序排好 */
|
|
10
|
+
fields: WatermarkField[];
|
|
11
|
+
/** 内容项含 text 时才印 */
|
|
12
|
+
text: string;
|
|
13
|
+
timeFormat: WatermarkTimeFormat;
|
|
14
|
+
layout: WatermarkLayout;
|
|
15
|
+
/** px,12–28 */
|
|
16
|
+
fontSize: number;
|
|
17
|
+
/** 不透明度百分比,2–30 */
|
|
18
|
+
opacity: number;
|
|
19
|
+
/** 度,-45–45 */
|
|
20
|
+
rotate: number;
|
|
21
|
+
density: WatermarkDensity;
|
|
22
|
+
/** 相邻两行错开半格 */
|
|
23
|
+
cross: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const WATERMARK_LIMITS: {
|
|
26
|
+
readonly fontSize: {
|
|
27
|
+
readonly min: 12;
|
|
28
|
+
readonly max: 28;
|
|
29
|
+
};
|
|
30
|
+
readonly opacity: {
|
|
31
|
+
readonly min: 2;
|
|
32
|
+
readonly max: 30;
|
|
33
|
+
};
|
|
34
|
+
readonly rotate: {
|
|
35
|
+
readonly min: -45;
|
|
36
|
+
readonly max: 45;
|
|
37
|
+
};
|
|
38
|
+
readonly text: 40;
|
|
39
|
+
};
|
|
40
|
+
export declare const DEFAULT_WATERMARK: Readonly<WatermarkSettings>;
|
|
41
|
+
/** 配置键(与后端 ConfigSeed 的 WATERMARK_*_KEY 一一对应)。 */
|
|
42
|
+
export declare const WATERMARK_KEY: {
|
|
43
|
+
readonly enabled: "sys.watermark.enabled";
|
|
44
|
+
readonly fields: "sys.watermark.fields";
|
|
45
|
+
readonly text: "sys.watermark.text";
|
|
46
|
+
readonly timeFormat: "sys.watermark.timeFormat";
|
|
47
|
+
readonly layout: "sys.watermark.layout";
|
|
48
|
+
readonly fontSize: "sys.watermark.fontSize";
|
|
49
|
+
readonly opacity: "sys.watermark.opacity";
|
|
50
|
+
readonly rotate: "sys.watermark.rotate";
|
|
51
|
+
readonly density: "sys.watermark.density";
|
|
52
|
+
readonly cross: "sys.watermark.cross";
|
|
53
|
+
};
|
|
54
|
+
export declare const WATERMARK_KEYS: readonly string[];
|
|
55
|
+
/** 内容项:接受数组或逗号分隔串;丢掉未知项、去重、按固定顺序排。 */
|
|
56
|
+
export declare function normalizeWatermarkFields(raw: unknown): WatermarkField[];
|
|
57
|
+
/** 站点信息里的 watermark 节点(或任何半成品)→ 合法设置。 */
|
|
58
|
+
export declare function normalizeWatermark(raw?: Partial<Record<keyof WatermarkSettings, unknown>> | null): {
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
fields: ("name" | "account" | "phone" | "org" | "time" | "text")[];
|
|
61
|
+
text: string;
|
|
62
|
+
timeFormat: "YYYY-MM-DD" | "YYYY-MM-DD HH:mm" | "YYYY-MM-DD HH:mm:ss" | "MM-DD HH:mm";
|
|
63
|
+
layout: WatermarkLayout;
|
|
64
|
+
fontSize: number;
|
|
65
|
+
opacity: number;
|
|
66
|
+
rotate: number;
|
|
67
|
+
density: WatermarkDensity;
|
|
68
|
+
cross: boolean;
|
|
69
|
+
};
|
|
70
|
+
/** 配置中心草稿(键值全是字符串)→ 合法设置。键不存在 = 沿用默认;空串的 fields = 一项都没勾。 */
|
|
71
|
+
export declare function watermarkFromValues(values: Record<string, string | undefined>): WatermarkSettings;
|
|
72
|
+
/** 用户自己的那部分内容;缺哪项那一项就不印。 */
|
|
73
|
+
export interface WatermarkWho {
|
|
74
|
+
name?: string | null;
|
|
75
|
+
account?: string | null;
|
|
76
|
+
org?: string | null;
|
|
77
|
+
/** 手机号后四位(整号不进浏览器存储) */
|
|
78
|
+
phoneTail?: string | null;
|
|
79
|
+
}
|
|
80
|
+
/** 按格式串格式化时间:只认 YYYY MM DD HH mm ss。 */
|
|
81
|
+
export declare function formatWatermarkTime(format: string, d: Date): string;
|
|
82
|
+
/** 内容项 → 要印出来的几段文字(按固定顺序;值为空的项跳过)。 */
|
|
83
|
+
export declare function watermarkParts(s: WatermarkSettings, who: WatermarkWho, now: Date): string[];
|
|
84
|
+
/** NWatermark 的入参子集。 */
|
|
85
|
+
export interface WatermarkProps {
|
|
86
|
+
content: string;
|
|
87
|
+
cross: boolean;
|
|
88
|
+
fontSize: number;
|
|
89
|
+
lineHeight: number;
|
|
90
|
+
rotate: number;
|
|
91
|
+
width: number;
|
|
92
|
+
height: number;
|
|
93
|
+
xGap: number;
|
|
94
|
+
yGap: number;
|
|
95
|
+
xOffset: number;
|
|
96
|
+
yOffset: number;
|
|
97
|
+
fontColor: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 设置 + 当前用户 + 此刻 → NWatermark 入参;没启用、或没有任何可印的内容时返回 null。
|
|
101
|
+
*
|
|
102
|
+
* NWatermark 的画法是:一格画布 (width + xGap) × (height + yGap),**先把整个画布绕左上角旋转**,
|
|
103
|
+
* 再在旋转后的坐标系里从 (xOffset, yOffset) 起画字。所以倾斜后文字会冲出画布的上沿或左沿被裁掉
|
|
104
|
+
* (负角度向上冲、正角度向左冲),光加间距救不了,必须用 xOffset / yOffset 把旋转后的包围盒平移回画布内:
|
|
105
|
+
* 先算文字块 w × h 旋转后的包围盒,平移量取「让包围盒左上角落在 (0,0)」,再换算回旋转前的坐标系。
|
|
106
|
+
* 一格的大小 = 包围盒 + 疏密档位的间距。
|
|
107
|
+
*
|
|
108
|
+
* 文字块的宽按最长一行估算(汉字一个字号宽,其余 0.58,再放 6% 余量),高多留一点放下降部。
|
|
109
|
+
*/
|
|
110
|
+
export declare function buildWatermarkProps(s: WatermarkSettings, who: WatermarkWho, dark: boolean, now?: Date): WatermarkProps | null;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
const K = ["name", "account", "org", "phone", "time", "text"], _ = [
|
|
2
|
+
"YYYY-MM-DD",
|
|
3
|
+
"YYYY-MM-DD HH:mm",
|
|
4
|
+
"YYYY-MM-DD HH:mm:ss",
|
|
5
|
+
"MM-DD HH:mm"
|
|
6
|
+
], r = {
|
|
7
|
+
fontSize: { min: 12, max: 28 },
|
|
8
|
+
opacity: { min: 2, max: 30 },
|
|
9
|
+
rotate: { min: -45, max: 45 },
|
|
10
|
+
text: 40
|
|
11
|
+
}, F = Object.freeze({
|
|
12
|
+
enabled: !1,
|
|
13
|
+
fields: ["name", "account", "time"],
|
|
14
|
+
text: "",
|
|
15
|
+
timeFormat: "YYYY-MM-DD HH:mm",
|
|
16
|
+
layout: "single",
|
|
17
|
+
fontSize: 14,
|
|
18
|
+
opacity: 8,
|
|
19
|
+
rotate: -20,
|
|
20
|
+
density: "normal",
|
|
21
|
+
cross: !0
|
|
22
|
+
}), H = {
|
|
23
|
+
enabled: "sys.watermark.enabled",
|
|
24
|
+
fields: "sys.watermark.fields",
|
|
25
|
+
text: "sys.watermark.text",
|
|
26
|
+
timeFormat: "sys.watermark.timeFormat",
|
|
27
|
+
layout: "sys.watermark.layout",
|
|
28
|
+
fontSize: "sys.watermark.fontSize",
|
|
29
|
+
opacity: "sys.watermark.opacity",
|
|
30
|
+
rotate: "sys.watermark.rotate",
|
|
31
|
+
density: "sys.watermark.density",
|
|
32
|
+
cross: "sys.watermark.cross"
|
|
33
|
+
}, G = Object.values(H);
|
|
34
|
+
function d(t, e, n, o) {
|
|
35
|
+
const a = typeof t == "number" ? t : Number(t);
|
|
36
|
+
return t === "" || t === null || t === void 0 || !Number.isFinite(a) ? e : Math.min(o, Math.max(n, Math.trunc(a)));
|
|
37
|
+
}
|
|
38
|
+
const p = (t, e, n) => e.includes(t) ? t : n;
|
|
39
|
+
function I(t) {
|
|
40
|
+
const e = Array.isArray(t) ? t.map(String) : typeof t == "string" ? t.split(",").map((n) => n.trim()) : null;
|
|
41
|
+
return e ? K.filter((n) => e.includes(n)) : [...F.fields];
|
|
42
|
+
}
|
|
43
|
+
function O(t) {
|
|
44
|
+
const e = F, n = t ?? {}, o = typeof n.text == "string" ? n.text.trim() : "";
|
|
45
|
+
return {
|
|
46
|
+
enabled: n.enabled === !0,
|
|
47
|
+
fields: n.fields === void 0 ? [...e.fields] : I(n.fields),
|
|
48
|
+
text: o.slice(0, r.text),
|
|
49
|
+
timeFormat: p(n.timeFormat, _, e.timeFormat),
|
|
50
|
+
layout: p(n.layout, ["single", "multi"], e.layout),
|
|
51
|
+
fontSize: d(
|
|
52
|
+
n.fontSize,
|
|
53
|
+
e.fontSize,
|
|
54
|
+
r.fontSize.min,
|
|
55
|
+
r.fontSize.max
|
|
56
|
+
),
|
|
57
|
+
opacity: d(
|
|
58
|
+
n.opacity,
|
|
59
|
+
e.opacity,
|
|
60
|
+
r.opacity.min,
|
|
61
|
+
r.opacity.max
|
|
62
|
+
),
|
|
63
|
+
rotate: d(n.rotate, e.rotate, r.rotate.min, r.rotate.max),
|
|
64
|
+
density: p(n.density, ["sparse", "normal", "dense"], e.density),
|
|
65
|
+
cross: n.cross !== !1
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function L(t) {
|
|
69
|
+
const e = (n) => t[H[n]];
|
|
70
|
+
return O({
|
|
71
|
+
enabled: e("enabled") === "true",
|
|
72
|
+
fields: e("fields"),
|
|
73
|
+
text: e("text"),
|
|
74
|
+
timeFormat: e("timeFormat"),
|
|
75
|
+
layout: e("layout"),
|
|
76
|
+
fontSize: e("fontSize"),
|
|
77
|
+
opacity: e("opacity"),
|
|
78
|
+
rotate: e("rotate"),
|
|
79
|
+
density: e("density"),
|
|
80
|
+
cross: e("cross") !== "false"
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
const m = (t) => String(t).padStart(2, "0");
|
|
84
|
+
function j(t, e) {
|
|
85
|
+
const n = {
|
|
86
|
+
YYYY: String(e.getFullYear()),
|
|
87
|
+
MM: m(e.getMonth() + 1),
|
|
88
|
+
DD: m(e.getDate()),
|
|
89
|
+
HH: m(e.getHours()),
|
|
90
|
+
mm: m(e.getMinutes()),
|
|
91
|
+
ss: m(e.getSeconds())
|
|
92
|
+
};
|
|
93
|
+
return t.replace(/YYYY|MM|DD|HH|mm|ss/g, (o) => n[o]);
|
|
94
|
+
}
|
|
95
|
+
function v(t, e, n) {
|
|
96
|
+
const o = {
|
|
97
|
+
name: e.name,
|
|
98
|
+
account: e.account,
|
|
99
|
+
org: e.org,
|
|
100
|
+
phone: e.phoneTail ? `*${e.phoneTail}` : null,
|
|
101
|
+
time: j(t.timeFormat, n),
|
|
102
|
+
text: t.text
|
|
103
|
+
};
|
|
104
|
+
return t.fields.map((a) => {
|
|
105
|
+
var s;
|
|
106
|
+
return (s = o[a]) == null ? void 0 : s.trim();
|
|
107
|
+
}).filter((a) => !!a);
|
|
108
|
+
}
|
|
109
|
+
const P = { sparse: 120, normal: 64, dense: 24 };
|
|
110
|
+
function $(t, e, n, o = /* @__PURE__ */ new Date()) {
|
|
111
|
+
if (!t.enabled) return null;
|
|
112
|
+
const a = v(t, e, o);
|
|
113
|
+
if (!a.length) return null;
|
|
114
|
+
const s = t.layout === "multi" ? a : [a.join(" · ")], M = Math.round(t.fontSize * 1.4), R = (i) => [...i].reduce((y, E) => y + (E.charCodeAt(0) > 255 ? t.fontSize : t.fontSize * 0.58), 0), c = Math.ceil(Math.max(...s.map(R)) * 1.06), l = M * s.length + Math.ceil(t.fontSize * 0.3), x = t.rotate * Math.PI / 180, u = Math.cos(x), f = Math.sin(x), Y = [
|
|
115
|
+
[0, 0],
|
|
116
|
+
[c, 0],
|
|
117
|
+
[0, l],
|
|
118
|
+
[c, l]
|
|
119
|
+
].map(([i, y]) => [i * u - y * f, i * f + y * u]), h = Y.map((i) => i[0]), S = Y.map((i) => i[1]), g = Math.min(...h), z = Math.min(...S), T = Math.ceil(Math.max(...h) - g), W = Math.ceil(Math.max(...S) - z), b = -g, A = -z, D = P[t.density], k = t.opacity / 100;
|
|
120
|
+
return {
|
|
121
|
+
content: s.join(`
|
|
122
|
+
`),
|
|
123
|
+
cross: t.cross,
|
|
124
|
+
fontSize: t.fontSize,
|
|
125
|
+
lineHeight: M,
|
|
126
|
+
rotate: t.rotate,
|
|
127
|
+
width: c,
|
|
128
|
+
height: l,
|
|
129
|
+
xGap: T - c + D,
|
|
130
|
+
yGap: W - l + D,
|
|
131
|
+
xOffset: b * u + A * f + 0,
|
|
132
|
+
// + 0:不倾斜时把 -0 收成 0
|
|
133
|
+
yOffset: -b * f + A * u + 0,
|
|
134
|
+
fontColor: n ? `rgba(255,255,255,${k})` : `rgba(0,0,0,${k})`
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export {
|
|
138
|
+
F as DEFAULT_WATERMARK,
|
|
139
|
+
K as WATERMARK_FIELDS,
|
|
140
|
+
H as WATERMARK_KEY,
|
|
141
|
+
G as WATERMARK_KEYS,
|
|
142
|
+
r as WATERMARK_LIMITS,
|
|
143
|
+
_ as WATERMARK_TIME_FORMATS,
|
|
144
|
+
$ as buildWatermarkProps,
|
|
145
|
+
j as formatWatermarkTime,
|
|
146
|
+
O as normalizeWatermark,
|
|
147
|
+
I as normalizeWatermarkFields,
|
|
148
|
+
L as watermarkFromValues,
|
|
149
|
+
v as watermarkParts
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=watermark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watermark.js","sources":["../../src/lib/watermark.ts"],"sourcesContent":["// 水印:配置(sys.watermark.*)→ 设置对象 → NWatermark 的入参。\n// 管理员只决定「印哪几项、长什么样」,每个人具体印什么由前端按登录用户拼,所以同一份设置在每台浏览器上内容不同。\n// 取值规则与后端 ConfigService.LoadWatermarkAsync 一致:任何一项缺失、写错或越界都收口成默认值 / 边界,\n// 这样配置中心的草稿预览(读键值表)和线上真水印(读站点信息)走同一套收口。\n\nexport const WATERMARK_FIELDS = ['name', 'account', 'org', 'phone', 'time', 'text'] as const\nexport type WatermarkField = (typeof WATERMARK_FIELDS)[number]\n\nexport const WATERMARK_TIME_FORMATS = [\n 'YYYY-MM-DD',\n 'YYYY-MM-DD HH:mm',\n 'YYYY-MM-DD HH:mm:ss',\n 'MM-DD HH:mm',\n] as const\nexport type WatermarkTimeFormat = (typeof WATERMARK_TIME_FORMATS)[number]\n\nexport type WatermarkLayout = 'single' | 'multi'\nexport type WatermarkDensity = 'sparse' | 'normal' | 'dense'\n\nexport interface WatermarkSettings {\n enabled: boolean\n /** 已按 WATERMARK_FIELDS 的固定顺序排好 */\n fields: WatermarkField[]\n /** 内容项含 text 时才印 */\n text: string\n timeFormat: WatermarkTimeFormat\n layout: WatermarkLayout\n /** px,12–28 */\n fontSize: number\n /** 不透明度百分比,2–30 */\n opacity: number\n /** 度,-45–45 */\n rotate: number\n density: WatermarkDensity\n /** 相邻两行错开半格 */\n cross: boolean\n}\n\nexport const WATERMARK_LIMITS = {\n fontSize: { min: 12, max: 28 },\n opacity: { min: 2, max: 30 },\n rotate: { min: -45, max: 45 },\n text: 40,\n} as const\n\nexport const DEFAULT_WATERMARK: Readonly<WatermarkSettings> = Object.freeze({\n enabled: false,\n fields: ['name', 'account', 'time'] as WatermarkField[],\n text: '',\n timeFormat: 'YYYY-MM-DD HH:mm',\n layout: 'single',\n fontSize: 14,\n opacity: 8,\n rotate: -20,\n density: 'normal',\n cross: true,\n})\n\n/** 配置键(与后端 ConfigSeed 的 WATERMARK_*_KEY 一一对应)。 */\nexport const WATERMARK_KEY = {\n enabled: 'sys.watermark.enabled',\n fields: 'sys.watermark.fields',\n text: 'sys.watermark.text',\n timeFormat: 'sys.watermark.timeFormat',\n layout: 'sys.watermark.layout',\n fontSize: 'sys.watermark.fontSize',\n opacity: 'sys.watermark.opacity',\n rotate: 'sys.watermark.rotate',\n density: 'sys.watermark.density',\n cross: 'sys.watermark.cross',\n} as const\nexport const WATERMARK_KEYS: readonly string[] = Object.values(WATERMARK_KEY)\n\nfunction clampInt(raw: unknown, fallback: number, min: number, max: number) {\n const n = typeof raw === 'number' ? raw : Number(raw)\n if (raw === '' || raw === null || raw === undefined || !Number.isFinite(n)) return fallback\n return Math.min(max, Math.max(min, Math.trunc(n)))\n}\n\nconst oneOf = <T extends string>(v: unknown, all: readonly T[], fallback: T): T =>\n all.includes(v as T) ? (v as T) : fallback\n\n/** 内容项:接受数组或逗号分隔串;丢掉未知项、去重、按固定顺序排。 */\nexport function normalizeWatermarkFields(raw: unknown): WatermarkField[] {\n const list = Array.isArray(raw)\n ? raw.map(String)\n : typeof raw === 'string'\n ? raw.split(',').map(s => s.trim())\n : null\n if (!list) return [...DEFAULT_WATERMARK.fields]\n return WATERMARK_FIELDS.filter(f => list.includes(f))\n}\n\n/** 站点信息里的 watermark 节点(或任何半成品)→ 合法设置。 */\nexport function normalizeWatermark(raw?: Partial<Record<keyof WatermarkSettings, unknown>> | null) {\n const d = DEFAULT_WATERMARK\n const r = raw ?? {}\n const text = typeof r.text === 'string' ? r.text.trim() : ''\n return {\n enabled: r.enabled === true,\n fields: r.fields === undefined ? [...d.fields] : normalizeWatermarkFields(r.fields),\n text: text.slice(0, WATERMARK_LIMITS.text),\n timeFormat: oneOf(r.timeFormat, WATERMARK_TIME_FORMATS, d.timeFormat),\n layout: oneOf(r.layout, ['single', 'multi'] as const, d.layout),\n fontSize: clampInt(\n r.fontSize,\n d.fontSize,\n WATERMARK_LIMITS.fontSize.min,\n WATERMARK_LIMITS.fontSize.max,\n ),\n opacity: clampInt(\n r.opacity,\n d.opacity,\n WATERMARK_LIMITS.opacity.min,\n WATERMARK_LIMITS.opacity.max,\n ),\n rotate: clampInt(r.rotate, d.rotate, WATERMARK_LIMITS.rotate.min, WATERMARK_LIMITS.rotate.max),\n density: oneOf(r.density, ['sparse', 'normal', 'dense'] as const, d.density),\n cross: r.cross !== false,\n } satisfies WatermarkSettings\n}\n\n/** 配置中心草稿(键值全是字符串)→ 合法设置。键不存在 = 沿用默认;空串的 fields = 一项都没勾。 */\nexport function watermarkFromValues(values: Record<string, string | undefined>): WatermarkSettings {\n const v = (k: keyof typeof WATERMARK_KEY) => values[WATERMARK_KEY[k]]\n return normalizeWatermark({\n enabled: v('enabled') === 'true',\n fields: v('fields'),\n text: v('text'),\n timeFormat: v('timeFormat'),\n layout: v('layout'),\n fontSize: v('fontSize'),\n opacity: v('opacity'),\n rotate: v('rotate'),\n density: v('density'),\n cross: v('cross') !== 'false',\n })\n}\n\n/** 用户自己的那部分内容;缺哪项那一项就不印。 */\nexport interface WatermarkWho {\n name?: string | null\n account?: string | null\n org?: string | null\n /** 手机号后四位(整号不进浏览器存储) */\n phoneTail?: string | null\n}\n\nconst pad = (n: number) => String(n).padStart(2, '0')\n\n/** 按格式串格式化时间:只认 YYYY MM DD HH mm ss。 */\nexport function formatWatermarkTime(format: string, d: Date): string {\n const map: Record<string, string> = {\n YYYY: String(d.getFullYear()),\n MM: pad(d.getMonth() + 1),\n DD: pad(d.getDate()),\n HH: pad(d.getHours()),\n mm: pad(d.getMinutes()),\n ss: pad(d.getSeconds()),\n }\n return format.replace(/YYYY|MM|DD|HH|mm|ss/g, t => map[t]!)\n}\n\n/** 内容项 → 要印出来的几段文字(按固定顺序;值为空的项跳过)。 */\nexport function watermarkParts(s: WatermarkSettings, who: WatermarkWho, now: Date): string[] {\n const value: Record<WatermarkField, string | null | undefined> = {\n name: who.name,\n account: who.account,\n org: who.org,\n phone: who.phoneTail ? `*${who.phoneTail}` : null,\n time: formatWatermarkTime(s.timeFormat, now),\n text: s.text,\n }\n return s.fields.map(f => value[f]?.trim()).filter((x): x is string => !!x)\n}\n\n/** NWatermark 的入参子集。 */\nexport interface WatermarkProps {\n content: string\n cross: boolean\n fontSize: number\n lineHeight: number\n rotate: number\n width: number\n height: number\n xGap: number\n yGap: number\n xOffset: number\n yOffset: number\n fontColor: string\n}\n\nconst GAP: Record<WatermarkDensity, number> = { sparse: 120, normal: 64, dense: 24 }\n\n/**\n * 设置 + 当前用户 + 此刻 → NWatermark 入参;没启用、或没有任何可印的内容时返回 null。\n *\n * NWatermark 的画法是:一格画布 (width + xGap) × (height + yGap),**先把整个画布绕左上角旋转**,\n * 再在旋转后的坐标系里从 (xOffset, yOffset) 起画字。所以倾斜后文字会冲出画布的上沿或左沿被裁掉\n * (负角度向上冲、正角度向左冲),光加间距救不了,必须用 xOffset / yOffset 把旋转后的包围盒平移回画布内:\n * 先算文字块 w × h 旋转后的包围盒,平移量取「让包围盒左上角落在 (0,0)」,再换算回旋转前的坐标系。\n * 一格的大小 = 包围盒 + 疏密档位的间距。\n *\n * 文字块的宽按最长一行估算(汉字一个字号宽,其余 0.58,再放 6% 余量),高多留一点放下降部。\n */\nexport function buildWatermarkProps(\n s: WatermarkSettings,\n who: WatermarkWho,\n dark: boolean,\n now: Date = new Date(),\n): WatermarkProps | null {\n if (!s.enabled) return null\n const parts = watermarkParts(s, who, now)\n if (!parts.length) return null\n const lines = s.layout === 'multi' ? parts : [parts.join(' · ')]\n const lineHeight = Math.round(s.fontSize * 1.4)\n const textWidth = (line: string) =>\n [...line].reduce((w, c) => w + (c.charCodeAt(0) > 255 ? s.fontSize : s.fontSize * 0.58), 0)\n const width = Math.ceil(Math.max(...lines.map(textWidth)) * 1.06)\n const height = lineHeight * lines.length + Math.ceil(s.fontSize * 0.3)\n\n const rad = (s.rotate * Math.PI) / 180\n const cos = Math.cos(rad)\n const sin = Math.sin(rad)\n const corners = [\n [0, 0],\n [width, 0],\n [0, height],\n [width, height],\n ].map(([x, y]) => [x! * cos - y! * sin, x! * sin + y! * cos] as const)\n const xs = corners.map(c => c[0])\n const ys = corners.map(c => c[1])\n const minX = Math.min(...xs)\n const minY = Math.min(...ys)\n const boxW = Math.ceil(Math.max(...xs) - minX)\n const boxH = Math.ceil(Math.max(...ys) - minY)\n // 画布坐标系里要平移 (-minX, -minY);画字用的偏移在旋转后的坐标系里,换算 R(-θ)·T\n const tx = -minX\n const ty = -minY\n const gap = GAP[s.density]\n const alpha = s.opacity / 100\n return {\n content: lines.join('\\n'),\n cross: s.cross,\n fontSize: s.fontSize,\n lineHeight,\n rotate: s.rotate,\n width,\n height,\n xGap: boxW - width + gap,\n yGap: boxH - height + gap,\n xOffset: tx * cos + ty * sin + 0, // + 0:不倾斜时把 -0 收成 0\n yOffset: -tx * sin + ty * cos + 0,\n fontColor: dark ? `rgba(255,255,255,${alpha})` : `rgba(0,0,0,${alpha})`,\n }\n}\n"],"names":["WATERMARK_FIELDS","WATERMARK_TIME_FORMATS","WATERMARK_LIMITS","DEFAULT_WATERMARK","WATERMARK_KEY","WATERMARK_KEYS","clampInt","raw","fallback","min","max","n","oneOf","v","all","normalizeWatermarkFields","list","s","f","normalizeWatermark","d","r","text","watermarkFromValues","values","k","pad","formatWatermarkTime","format","map","t","watermarkParts","who","now","value","_a","x","GAP","buildWatermarkProps","dark","parts","lines","lineHeight","textWidth","line","w","c","width","height","rad","cos","sin","corners","xs","ys","minX","minY","boxW","boxH","tx","ty","gap","alpha"],"mappings":"AAKO,MAAMA,IAAmB,CAAC,QAAQ,WAAW,OAAO,SAAS,QAAQ,MAAM,GAGrEC,IAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAyBaC,IAAmB;AAAA,EAC9B,UAAU,EAAE,KAAK,IAAI,KAAK,GAAA;AAAA,EAC1B,SAAS,EAAE,KAAK,GAAG,KAAK,GAAA;AAAA,EACxB,QAAQ,EAAE,KAAK,KAAK,KAAK,GAAA;AAAA,EACzB,MAAM;AACR,GAEaC,IAAiD,OAAO,OAAO;AAAA,EAC1E,SAAS;AAAA,EACT,QAAQ,CAAC,QAAQ,WAAW,MAAM;AAAA,EAClC,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AACT,CAAC,GAGYC,IAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AACT,GACaC,IAAoC,OAAO,OAAOD,CAAa;AAE5E,SAASE,EAASC,GAAcC,GAAkBC,GAAaC,GAAa;AAC1E,QAAMC,IAAI,OAAOJ,KAAQ,WAAWA,IAAM,OAAOA,CAAG;AACpD,SAAIA,MAAQ,MAAMA,MAAQ,QAAQA,MAAQ,UAAa,CAAC,OAAO,SAASI,CAAC,IAAUH,IAC5E,KAAK,IAAIE,GAAK,KAAK,IAAID,GAAK,KAAK,MAAME,CAAC,CAAC,CAAC;AACnD;AAEA,MAAMC,IAAQ,CAAmBC,GAAYC,GAAmBN,MAC9DM,EAAI,SAASD,CAAM,IAAKA,IAAUL;AAG7B,SAASO,EAAyBR,GAAgC;AACvE,QAAMS,IAAO,MAAM,QAAQT,CAAG,IAC1BA,EAAI,IAAI,MAAM,IACd,OAAOA,KAAQ,WACbA,EAAI,MAAM,GAAG,EAAE,IAAI,CAAAU,MAAKA,EAAE,KAAA,CAAM,IAChC;AACN,SAAKD,IACEhB,EAAiB,OAAO,CAAAkB,MAAKF,EAAK,SAASE,CAAC,CAAC,IADlC,CAAC,GAAGf,EAAkB,MAAM;AAEhD;AAGO,SAASgB,EAAmBZ,GAAgE;AACjG,QAAMa,IAAIjB,GACJkB,IAAId,KAAO,CAAA,GACXe,IAAO,OAAOD,EAAE,QAAS,WAAWA,EAAE,KAAK,SAAS;AAC1D,SAAO;AAAA,IACL,SAASA,EAAE,YAAY;AAAA,IACvB,QAAQA,EAAE,WAAW,SAAY,CAAC,GAAGD,EAAE,MAAM,IAAIL,EAAyBM,EAAE,MAAM;AAAA,IAClF,MAAMC,EAAK,MAAM,GAAGpB,EAAiB,IAAI;AAAA,IACzC,YAAYU,EAAMS,EAAE,YAAYpB,GAAwBmB,EAAE,UAAU;AAAA,IACpE,QAAQR,EAAMS,EAAE,QAAQ,CAAC,UAAU,OAAO,GAAYD,EAAE,MAAM;AAAA,IAC9D,UAAUd;AAAA,MACRe,EAAE;AAAA,MACFD,EAAE;AAAA,MACFlB,EAAiB,SAAS;AAAA,MAC1BA,EAAiB,SAAS;AAAA,IAAA;AAAA,IAE5B,SAASI;AAAA,MACPe,EAAE;AAAA,MACFD,EAAE;AAAA,MACFlB,EAAiB,QAAQ;AAAA,MACzBA,EAAiB,QAAQ;AAAA,IAAA;AAAA,IAE3B,QAAQI,EAASe,EAAE,QAAQD,EAAE,QAAQlB,EAAiB,OAAO,KAAKA,EAAiB,OAAO,GAAG;AAAA,IAC7F,SAASU,EAAMS,EAAE,SAAS,CAAC,UAAU,UAAU,OAAO,GAAYD,EAAE,OAAO;AAAA,IAC3E,OAAOC,EAAE,UAAU;AAAA,EAAA;AAEvB;AAGO,SAASE,EAAoBC,GAA+D;AACjG,QAAMX,IAAI,CAACY,MAAkCD,EAAOpB,EAAcqB,CAAC,CAAC;AACpE,SAAON,EAAmB;AAAA,IACxB,SAASN,EAAE,SAAS,MAAM;AAAA,IAC1B,QAAQA,EAAE,QAAQ;AAAA,IAClB,MAAMA,EAAE,MAAM;AAAA,IACd,YAAYA,EAAE,YAAY;AAAA,IAC1B,QAAQA,EAAE,QAAQ;AAAA,IAClB,UAAUA,EAAE,UAAU;AAAA,IACtB,SAASA,EAAE,SAAS;AAAA,IACpB,QAAQA,EAAE,QAAQ;AAAA,IAClB,SAASA,EAAE,SAAS;AAAA,IACpB,OAAOA,EAAE,OAAO,MAAM;AAAA,EAAA,CACvB;AACH;AAWA,MAAMa,IAAM,CAACf,MAAc,OAAOA,CAAC,EAAE,SAAS,GAAG,GAAG;AAG7C,SAASgB,EAAoBC,GAAgBR,GAAiB;AACnE,QAAMS,IAA8B;AAAA,IAClC,MAAM,OAAOT,EAAE,aAAa;AAAA,IAC5B,IAAIM,EAAIN,EAAE,SAAA,IAAa,CAAC;AAAA,IACxB,IAAIM,EAAIN,EAAE,SAAS;AAAA,IACnB,IAAIM,EAAIN,EAAE,UAAU;AAAA,IACpB,IAAIM,EAAIN,EAAE,YAAY;AAAA,IACtB,IAAIM,EAAIN,EAAE,WAAA,CAAY;AAAA,EAAA;AAExB,SAAOQ,EAAO,QAAQ,wBAAwB,CAAAE,MAAKD,EAAIC,CAAC,CAAE;AAC5D;AAGO,SAASC,EAAed,GAAsBe,GAAmBC,GAAqB;AAC3F,QAAMC,IAA2D;AAAA,IAC/D,MAAMF,EAAI;AAAA,IACV,SAASA,EAAI;AAAA,IACb,KAAKA,EAAI;AAAA,IACT,OAAOA,EAAI,YAAY,IAAIA,EAAI,SAAS,KAAK;AAAA,IAC7C,MAAML,EAAoBV,EAAE,YAAYgB,CAAG;AAAA,IAC3C,MAAMhB,EAAE;AAAA,EAAA;AAEV,SAAOA,EAAE,OAAO,IAAI,CAAAC,MAAA;AAxKf,QAAAiB;AAwKoB,YAAAA,IAAAD,EAAMhB,CAAC,MAAP,gBAAAiB,EAAU;AAAA,GAAM,EAAE,OAAO,CAACC,MAAmB,CAAC,CAACA,CAAC;AAC3E;AAkBA,MAAMC,IAAwC,EAAE,QAAQ,KAAK,QAAQ,IAAI,OAAO,GAAA;AAazE,SAASC,EACdrB,GACAe,GACAO,GACAN,IAAY,oBAAI,QACO;AACvB,MAAI,CAAChB,EAAE,QAAS,QAAO;AACvB,QAAMuB,IAAQT,EAAed,GAAGe,GAAKC,CAAG;AACxC,MAAI,CAACO,EAAM,OAAQ,QAAO;AAC1B,QAAMC,IAAQxB,EAAE,WAAW,UAAUuB,IAAQ,CAACA,EAAM,KAAK,KAAK,CAAC,GACzDE,IAAa,KAAK,MAAMzB,EAAE,WAAW,GAAG,GACxC0B,IAAY,CAACC,MACjB,CAAC,GAAGA,CAAI,EAAE,OAAO,CAACC,GAAGC,MAAMD,KAAKC,EAAE,WAAW,CAAC,IAAI,MAAM7B,EAAE,WAAWA,EAAE,WAAW,OAAO,CAAC,GACtF8B,IAAQ,KAAK,KAAK,KAAK,IAAI,GAAGN,EAAM,IAAIE,CAAS,CAAC,IAAI,IAAI,GAC1DK,IAASN,IAAaD,EAAM,SAAS,KAAK,KAAKxB,EAAE,WAAW,GAAG,GAE/DgC,IAAOhC,EAAE,SAAS,KAAK,KAAM,KAC7BiC,IAAM,KAAK,IAAID,CAAG,GAClBE,IAAM,KAAK,IAAIF,CAAG,GAClBG,IAAU;AAAA,IACd,CAAC,GAAG,CAAC;AAAA,IACL,CAACL,GAAO,CAAC;AAAA,IACT,CAAC,GAAGC,CAAM;AAAA,IACV,CAACD,GAAOC,CAAM;AAAA,EAAA,EACd,IAAI,CAAC,CAACZ,GAAG,CAAC,MAAM,CAACA,IAAKc,IAAM,IAAKC,GAAKf,IAAKe,IAAM,IAAKD,CAAG,CAAU,GAC/DG,IAAKD,EAAQ,IAAI,CAAAN,MAAKA,EAAE,CAAC,CAAC,GAC1BQ,IAAKF,EAAQ,IAAI,CAAAN,MAAKA,EAAE,CAAC,CAAC,GAC1BS,IAAO,KAAK,IAAI,GAAGF,CAAE,GACrBG,IAAO,KAAK,IAAI,GAAGF,CAAE,GACrBG,IAAO,KAAK,KAAK,KAAK,IAAI,GAAGJ,CAAE,IAAIE,CAAI,GACvCG,IAAO,KAAK,KAAK,KAAK,IAAI,GAAGJ,CAAE,IAAIE,CAAI,GAEvCG,IAAK,CAACJ,GACNK,IAAK,CAACJ,GACNK,IAAMxB,EAAIpB,EAAE,OAAO,GACnB6C,IAAQ7C,EAAE,UAAU;AAC1B,SAAO;AAAA,IACL,SAASwB,EAAM,KAAK;AAAA,CAAI;AAAA,IACxB,OAAOxB,EAAE;AAAA,IACT,UAAUA,EAAE;AAAA,IACZ,YAAAyB;AAAA,IACA,QAAQzB,EAAE;AAAA,IACV,OAAA8B;AAAA,IACA,QAAAC;AAAA,IACA,MAAMS,IAAOV,IAAQc;AAAA,IACrB,MAAMH,IAAOV,IAASa;AAAA,IACtB,SAASF,IAAKT,IAAMU,IAAKT,IAAM;AAAA;AAAA,IAC/B,SAAS,CAACQ,IAAKR,IAAMS,IAAKV,IAAM;AAAA,IAChC,WAAWX,IAAO,oBAAoBuB,CAAK,MAAM,cAAcA,CAAK;AAAA,EAAA;AAExE;"}
|
package/dist/locales/en-US.d.ts
CHANGED
|
@@ -77,10 +77,12 @@ declare const _default: {
|
|
|
77
77
|
comfortable: string;
|
|
78
78
|
compact: string;
|
|
79
79
|
language: string;
|
|
80
|
-
loginStyle: string;
|
|
81
80
|
collapse: string;
|
|
82
81
|
openMenu: string;
|
|
83
82
|
switchModule: string;
|
|
83
|
+
appearance: string;
|
|
84
|
+
back: string;
|
|
85
|
+
forward: string;
|
|
84
86
|
logout: string;
|
|
85
87
|
personalCenter: string;
|
|
86
88
|
clearCache: string;
|
|
@@ -110,6 +112,17 @@ declare const _default: {
|
|
|
110
112
|
auto: string;
|
|
111
113
|
themeColor: string;
|
|
112
114
|
custom: string;
|
|
115
|
+
accentName: {
|
|
116
|
+
blue: string;
|
|
117
|
+
indigo: string;
|
|
118
|
+
purple: string;
|
|
119
|
+
teal: string;
|
|
120
|
+
green: string;
|
|
121
|
+
graphite: string;
|
|
122
|
+
custom: string;
|
|
123
|
+
};
|
|
124
|
+
accentDemoButton: string;
|
|
125
|
+
accentDemoLink: string;
|
|
113
126
|
layout: string;
|
|
114
127
|
layoutVertical: string;
|
|
115
128
|
layoutVerticalMix: string;
|
|
@@ -118,6 +131,9 @@ declare const _default: {
|
|
|
118
131
|
layoutTopHybridSidebarFirst: string;
|
|
119
132
|
layoutTopHybridHeaderFirst: string;
|
|
120
133
|
interface: string;
|
|
134
|
+
formStyle: string;
|
|
135
|
+
formStyleModal: string;
|
|
136
|
+
formStyleDrawer: string;
|
|
121
137
|
showBreadcrumb: string;
|
|
122
138
|
showTabs: string;
|
|
123
139
|
fixedHeader: string;
|
|
@@ -125,19 +141,17 @@ declare const _default: {
|
|
|
125
141
|
transitionNone: string;
|
|
126
142
|
transitionFade: string;
|
|
127
143
|
transitionFadeSlide: string;
|
|
128
|
-
grayscale: string;
|
|
129
|
-
watermark: string;
|
|
130
|
-
watermarkText: string;
|
|
131
|
-
watermarkPlaceholder: string;
|
|
132
|
-
formStyle: string;
|
|
133
|
-
formStyleModal: string;
|
|
134
|
-
formStyleDrawer: string;
|
|
135
144
|
resetConfirm: string;
|
|
136
145
|
copyConfig: string;
|
|
137
146
|
configCopied: string;
|
|
138
147
|
searchPlaceholder: string;
|
|
139
148
|
searchEmpty: string;
|
|
140
149
|
searchHint: string;
|
|
150
|
+
descBreadcrumb: string;
|
|
151
|
+
descTabs: string;
|
|
152
|
+
descFixedHeader: string;
|
|
153
|
+
descPageTransition: string;
|
|
154
|
+
descCollapse: string;
|
|
141
155
|
};
|
|
142
156
|
tabs: {
|
|
143
157
|
refresh: string;
|
|
@@ -199,9 +213,9 @@ declare const _default: {
|
|
|
199
213
|
ssoDingtalk: string;
|
|
200
214
|
sso: string;
|
|
201
215
|
ssoComingSoon: string;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
216
|
+
layoutLabel: string;
|
|
217
|
+
layoutToSolo: string;
|
|
218
|
+
layoutToSplit: string;
|
|
205
219
|
};
|
|
206
220
|
module: {
|
|
207
221
|
choose: string;
|
|
@@ -226,6 +240,7 @@ declare const _default: {
|
|
|
226
240
|
editTitle: string;
|
|
227
241
|
deleteConfirm: string;
|
|
228
242
|
disableConfirm: string;
|
|
243
|
+
builtinNoDisable: string;
|
|
229
244
|
saved: string;
|
|
230
245
|
deleted: string;
|
|
231
246
|
};
|
|
@@ -284,6 +299,138 @@ declare const _default: {
|
|
|
284
299
|
saved: string;
|
|
285
300
|
deleted: string;
|
|
286
301
|
};
|
|
302
|
+
menuTitle: {
|
|
303
|
+
module: {
|
|
304
|
+
system: string;
|
|
305
|
+
business: string;
|
|
306
|
+
};
|
|
307
|
+
catalog: {
|
|
308
|
+
org: string;
|
|
309
|
+
ops: string;
|
|
310
|
+
schedule: string;
|
|
311
|
+
audit: string;
|
|
312
|
+
ai: string;
|
|
313
|
+
};
|
|
314
|
+
page: {
|
|
315
|
+
workbench: string;
|
|
316
|
+
org: string;
|
|
317
|
+
position: string;
|
|
318
|
+
user: string;
|
|
319
|
+
role: string;
|
|
320
|
+
config: string;
|
|
321
|
+
dict: string;
|
|
322
|
+
menu: string;
|
|
323
|
+
module: string;
|
|
324
|
+
notice: string;
|
|
325
|
+
recycle: string;
|
|
326
|
+
monitor: string;
|
|
327
|
+
cache: string;
|
|
328
|
+
apiDocs: string;
|
|
329
|
+
job: string;
|
|
330
|
+
jobLog: string;
|
|
331
|
+
jobMonitor: string;
|
|
332
|
+
loginLog: string;
|
|
333
|
+
opLog: string;
|
|
334
|
+
exceptionLog: string;
|
|
335
|
+
session: string;
|
|
336
|
+
file: string;
|
|
337
|
+
aiModel: string;
|
|
338
|
+
aiUsage: string;
|
|
339
|
+
};
|
|
340
|
+
button: {
|
|
341
|
+
orgQuery: string;
|
|
342
|
+
orgCreate: string;
|
|
343
|
+
orgUpdate: string;
|
|
344
|
+
orgDelete: string;
|
|
345
|
+
orgCopy: string;
|
|
346
|
+
positionQuery: string;
|
|
347
|
+
positionCreate: string;
|
|
348
|
+
positionUpdate: string;
|
|
349
|
+
positionDelete: string;
|
|
350
|
+
userQuery: string;
|
|
351
|
+
userCreate: string;
|
|
352
|
+
userUpdate: string;
|
|
353
|
+
userDelete: string;
|
|
354
|
+
userResetPassword: string;
|
|
355
|
+
userToggle: string;
|
|
356
|
+
userImport: string;
|
|
357
|
+
userExport: string;
|
|
358
|
+
roleQuery: string;
|
|
359
|
+
roleCreate: string;
|
|
360
|
+
roleUpdate: string;
|
|
361
|
+
roleDelete: string;
|
|
362
|
+
roleGrantMenus: string;
|
|
363
|
+
roleDataScope: string;
|
|
364
|
+
roleGrantUsers: string;
|
|
365
|
+
ping: string;
|
|
366
|
+
configQuery: string;
|
|
367
|
+
configCreate: string;
|
|
368
|
+
configUpdate: string;
|
|
369
|
+
configDelete: string;
|
|
370
|
+
configUploadLogo: string;
|
|
371
|
+
sensitiveQuery: string;
|
|
372
|
+
sensitiveCreate: string;
|
|
373
|
+
sensitiveDelete: string;
|
|
374
|
+
mfaClear: string;
|
|
375
|
+
dictTypeQuery: string;
|
|
376
|
+
dictTypeCreate: string;
|
|
377
|
+
dictTypeUpdate: string;
|
|
378
|
+
dictTypeDelete: string;
|
|
379
|
+
dictItemQuery: string;
|
|
380
|
+
dictItemCreate: string;
|
|
381
|
+
dictItemUpdate: string;
|
|
382
|
+
dictItemDelete: string;
|
|
383
|
+
menuQuery: string;
|
|
384
|
+
menuCreate: string;
|
|
385
|
+
menuUpdate: string;
|
|
386
|
+
menuDelete: string;
|
|
387
|
+
moduleQuery: string;
|
|
388
|
+
moduleCreate: string;
|
|
389
|
+
moduleUpdate: string;
|
|
390
|
+
moduleDelete: string;
|
|
391
|
+
noticeQuery: string;
|
|
392
|
+
noticePublish: string;
|
|
393
|
+
noticeDelete: string;
|
|
394
|
+
recycleQuery: string;
|
|
395
|
+
recyclePurge: string;
|
|
396
|
+
recycleRestore: string;
|
|
397
|
+
monitorQuery: string;
|
|
398
|
+
cacheFlushAuth: string;
|
|
399
|
+
cacheFlushDict: string;
|
|
400
|
+
cacheFlushConfig: string;
|
|
401
|
+
cacheRebuildPortal: string;
|
|
402
|
+
apiDocsView: string;
|
|
403
|
+
jobQuery: string;
|
|
404
|
+
jobCreate: string;
|
|
405
|
+
jobUpdate: string;
|
|
406
|
+
jobDelete: string;
|
|
407
|
+
jobToggle: string;
|
|
408
|
+
jobRun: string;
|
|
409
|
+
jobLogQuery: string;
|
|
410
|
+
jobLogKill: string;
|
|
411
|
+
jobLogClear: string;
|
|
412
|
+
jobMonitorQuery: string;
|
|
413
|
+
loginLogQuery: string;
|
|
414
|
+
loginLogClear: string;
|
|
415
|
+
opLogQuery: string;
|
|
416
|
+
opLogClear: string;
|
|
417
|
+
opLogExport: string;
|
|
418
|
+
exceptionLogQuery: string;
|
|
419
|
+
exceptionLogClear: string;
|
|
420
|
+
sessionQuery: string;
|
|
421
|
+
sessionKick: string;
|
|
422
|
+
fileQuery: string;
|
|
423
|
+
fileUpload: string;
|
|
424
|
+
fileDelete: string;
|
|
425
|
+
fileDownload: string;
|
|
426
|
+
aiProviderQuery: string;
|
|
427
|
+
aiProviderCreate: string;
|
|
428
|
+
aiProviderUpdate: string;
|
|
429
|
+
aiProviderDelete: string;
|
|
430
|
+
aiProviderTest: string;
|
|
431
|
+
aiUsageQuery: string;
|
|
432
|
+
};
|
|
433
|
+
};
|
|
287
434
|
iconPicker: {
|
|
288
435
|
placeholder: string;
|
|
289
436
|
title: string;
|
|
@@ -305,8 +452,11 @@ declare const _default: {
|
|
|
305
452
|
fixedNone: string;
|
|
306
453
|
expand: string;
|
|
307
454
|
collapse: string;
|
|
455
|
+
total: string;
|
|
308
456
|
zoom: string;
|
|
309
457
|
zoomExit: string;
|
|
458
|
+
filterFallback: string;
|
|
459
|
+
filterTruncated: string;
|
|
310
460
|
};
|
|
311
461
|
workbench: {
|
|
312
462
|
welcome: string;
|
|
@@ -352,6 +502,7 @@ declare const _default: {
|
|
|
352
502
|
passwordHint: string;
|
|
353
503
|
org: string;
|
|
354
504
|
allOrgs: string;
|
|
505
|
+
orgFilter: string;
|
|
355
506
|
orgPlaceholder: string;
|
|
356
507
|
position: string;
|
|
357
508
|
positionPlaceholder: string;
|
|
@@ -528,8 +679,9 @@ declare const _default: {
|
|
|
528
679
|
leaveConfirm: string;
|
|
529
680
|
tab: {
|
|
530
681
|
brand: string;
|
|
531
|
-
security: string;
|
|
532
682
|
signin: string;
|
|
683
|
+
security: string;
|
|
684
|
+
watermark: string;
|
|
533
685
|
sensitive: string;
|
|
534
686
|
upload: string;
|
|
535
687
|
job: string;
|
|
@@ -545,6 +697,41 @@ declare const _default: {
|
|
|
545
697
|
copyrightPh: string;
|
|
546
698
|
copyrightUrlHint: string;
|
|
547
699
|
};
|
|
700
|
+
watermark: {
|
|
701
|
+
desc: string;
|
|
702
|
+
groupContent: string;
|
|
703
|
+
groupStyle: string;
|
|
704
|
+
enable: string;
|
|
705
|
+
enableHint: string;
|
|
706
|
+
content: string;
|
|
707
|
+
contentHint: string;
|
|
708
|
+
contentEmpty: string;
|
|
709
|
+
field: {
|
|
710
|
+
name: string;
|
|
711
|
+
account: string;
|
|
712
|
+
org: string;
|
|
713
|
+
phone: string;
|
|
714
|
+
time: string;
|
|
715
|
+
text: string;
|
|
716
|
+
};
|
|
717
|
+
text: string;
|
|
718
|
+
textHint: string;
|
|
719
|
+
textPlaceholder: string;
|
|
720
|
+
timeFormat: string;
|
|
721
|
+
layout: string;
|
|
722
|
+
layoutSingle: string;
|
|
723
|
+
layoutMulti: string;
|
|
724
|
+
fontSize: string;
|
|
725
|
+
opacity: string;
|
|
726
|
+
opacityHint: string;
|
|
727
|
+
rotate: string;
|
|
728
|
+
density: string;
|
|
729
|
+
sparse: string;
|
|
730
|
+
normal: string;
|
|
731
|
+
dense: string;
|
|
732
|
+
cross: string;
|
|
733
|
+
crossHint: string;
|
|
734
|
+
};
|
|
548
735
|
logo: {
|
|
549
736
|
title: string;
|
|
550
737
|
edit: string;
|
|
@@ -572,6 +759,8 @@ declare const _default: {
|
|
|
572
759
|
days: string;
|
|
573
760
|
off: string;
|
|
574
761
|
sep: string;
|
|
762
|
+
expand: string;
|
|
763
|
+
collapse: string;
|
|
575
764
|
req: {
|
|
576
765
|
upper: string;
|
|
577
766
|
lower: string;
|
|
@@ -841,6 +1030,7 @@ declare const _default: {
|
|
|
841
1030
|
};
|
|
842
1031
|
dict: {
|
|
843
1032
|
title: string;
|
|
1033
|
+
typeTitle: string;
|
|
844
1034
|
code: string;
|
|
845
1035
|
name: string;
|
|
846
1036
|
searchName: string;
|
|
@@ -865,6 +1055,9 @@ declare const _default: {
|
|
|
865
1055
|
itemDeleteConfirm: string;
|
|
866
1056
|
itemSaved: string;
|
|
867
1057
|
itemDeleted: string;
|
|
1058
|
+
codeImmutable: string;
|
|
1059
|
+
itemsSheetTitle: string;
|
|
1060
|
+
selectItem: string;
|
|
868
1061
|
};
|
|
869
1062
|
org: {
|
|
870
1063
|
title: string;
|
|
@@ -878,6 +1071,7 @@ declare const _default: {
|
|
|
878
1071
|
parentPlaceholder: string;
|
|
879
1072
|
nameRequired: string;
|
|
880
1073
|
codePlaceholder: string;
|
|
1074
|
+
codeImmutableHint: string;
|
|
881
1075
|
addChild: string;
|
|
882
1076
|
addTitle: string;
|
|
883
1077
|
editTitle: string;
|
|
@@ -1012,6 +1206,7 @@ declare const _default: {
|
|
|
1012
1206
|
name: string;
|
|
1013
1207
|
sort: string;
|
|
1014
1208
|
codePlaceholder: string;
|
|
1209
|
+
codeImmutableHint: string;
|
|
1015
1210
|
nameRequired: string;
|
|
1016
1211
|
addTitle: string;
|
|
1017
1212
|
editTitle: string;
|
|
@@ -1041,10 +1236,17 @@ declare const _default: {
|
|
|
1041
1236
|
deleted: string;
|
|
1042
1237
|
grantMenus: string;
|
|
1043
1238
|
grantSaved: string;
|
|
1044
|
-
catalog: string;
|
|
1045
|
-
menuCol: string;
|
|
1046
|
-
buttonsCol: string;
|
|
1047
1239
|
apiOnlyRow: string;
|
|
1240
|
+
grantSearch: string;
|
|
1241
|
+
grantSearchClear: string;
|
|
1242
|
+
grantSelectAll: string;
|
|
1243
|
+
noButtons: string;
|
|
1244
|
+
grantNoMatch: string;
|
|
1245
|
+
grantNoMatchElsewhere: string;
|
|
1246
|
+
grantNoMenus: string;
|
|
1247
|
+
grantSummary: string;
|
|
1248
|
+
grantSummarySplit: string;
|
|
1249
|
+
grantUnsaved: string;
|
|
1048
1250
|
dataScope: string;
|
|
1049
1251
|
scopeType: string;
|
|
1050
1252
|
customOrgs: string;
|
|
@@ -1229,6 +1431,7 @@ declare const _default: {
|
|
|
1229
1431
|
killed: string;
|
|
1230
1432
|
clear: string;
|
|
1231
1433
|
clearTitle: string;
|
|
1434
|
+
clearRange: string;
|
|
1232
1435
|
clearAll: string;
|
|
1233
1436
|
beforeDays: string;
|
|
1234
1437
|
clearHint: string;
|
|
@@ -1316,6 +1519,7 @@ declare const _default: {
|
|
|
1316
1519
|
enabled: string;
|
|
1317
1520
|
disabled: string;
|
|
1318
1521
|
pendingConfigTip: string;
|
|
1522
|
+
pendingConfig: string;
|
|
1319
1523
|
provider: {
|
|
1320
1524
|
code: string;
|
|
1321
1525
|
codePlaceholder: string;
|
|
@@ -1358,6 +1562,7 @@ declare const _default: {
|
|
|
1358
1562
|
atLeastOne: string;
|
|
1359
1563
|
duplicateName: string;
|
|
1360
1564
|
noDefault: string;
|
|
1565
|
+
defaultUniqueHint: string;
|
|
1361
1566
|
};
|
|
1362
1567
|
test: {
|
|
1363
1568
|
action: string;
|
|
@@ -1711,6 +1916,7 @@ declare const _default: {
|
|
|
1711
1916
|
copyToken: string;
|
|
1712
1917
|
copyTokenHint: string;
|
|
1713
1918
|
tokenCopied: string;
|
|
1919
|
+
tokenWarn: string;
|
|
1714
1920
|
};
|
|
1715
1921
|
userExport: {
|
|
1716
1922
|
account: string;
|