smart-admin-web 10.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +78 -0
- package/dist/App.vue.d.ts +3 -0
- package/dist/App.vue.js +54 -0
- package/dist/App.vue.js.map +1 -0
- package/dist/App2.vue.js +5 -0
- package/dist/App2.vue.js.map +1 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
- package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/dist/api/client.d.ts +29 -0
- package/dist/api/client.js +139 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/index.d.ts +672 -0
- package/dist/api/index.js +638 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/reauthGate.d.ts +16 -0
- package/dist/api/reauthGate.js +21 -0
- package/dist/api/reauthGate.js.map +1 -0
- package/dist/api/schema.d.ts +10230 -0
- package/dist/assets/icons/ph-subset.json.js +16 -0
- package/dist/assets/icons/ph-subset.json.js.map +1 -0
- package/dist/assets/oauth/dingtalk.svg.js +5 -0
- package/dist/assets/oauth/dingtalk.svg.js.map +1 -0
- package/dist/assets/oauth/gitee.svg.js +5 -0
- package/dist/assets/oauth/gitee.svg.js.map +1 -0
- package/dist/assets/oauth/github.svg.js +5 -0
- package/dist/assets/oauth/github.svg.js.map +1 -0
- package/dist/assets/oauth/qq.svg.js +5 -0
- package/dist/assets/oauth/qq.svg.js.map +1 -0
- package/dist/assets/oauth/wechat.svg.js +5 -0
- package/dist/assets/oauth/wechat.svg.js.map +1 -0
- package/dist/assets/oauth/wecom.svg.js +5 -0
- package/dist/assets/oauth/wecom.svg.js.map +1 -0
- package/dist/assets/svg/star.svg.js +6 -0
- package/dist/assets/svg/star.svg.js.map +1 -0
- package/dist/components/ApiSelect/index.vue.d.ts +22 -0
- package/dist/components/ApiSelect/index.vue.js +50 -0
- package/dist/components/ApiSelect/index.vue.js.map +1 -0
- package/dist/components/ApiSelect/index2.vue.js +5 -0
- package/dist/components/ApiSelect/index2.vue.js.map +1 -0
- package/dist/components/AppIcon.vue.d.ts +7 -0
- package/dist/components/AppIcon.vue.js +33 -0
- package/dist/components/AppIcon.vue.js.map +1 -0
- package/dist/components/AppIcon2.vue.js +5 -0
- package/dist/components/AppIcon2.vue.js.map +1 -0
- package/dist/components/Chart/BarChart.vue.d.ts +13 -0
- package/dist/components/Chart/BarChart.vue.js +27 -0
- package/dist/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/components/Chart/BarChart2.vue.js +5 -0
- package/dist/components/Chart/BarChart2.vue.js.map +1 -0
- package/dist/components/Chart/LineChart.vue.d.ts +15 -0
- package/dist/components/Chart/LineChart.vue.js +33 -0
- package/dist/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/components/Chart/LineChart2.vue.js +5 -0
- package/dist/components/Chart/LineChart2.vue.js.map +1 -0
- package/dist/components/Chart/PieChart.vue.d.ts +14 -0
- package/dist/components/Chart/PieChart.vue.js +31 -0
- package/dist/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/components/Chart/PieChart2.vue.js +5 -0
- package/dist/components/Chart/PieChart2.vue.js.map +1 -0
- package/dist/components/Chart/echarts.d.ts +57 -0
- package/dist/components/Chart/echarts.js +47 -0
- package/dist/components/Chart/echarts.js.map +1 -0
- package/dist/components/Chart/index.vue.d.ts +12 -0
- package/dist/components/Chart/index.vue.js +8 -0
- package/dist/components/Chart/index.vue.js.map +1 -0
- package/dist/components/Chart/index2.vue.js +27 -0
- package/dist/components/Chart/index2.vue.js.map +1 -0
- package/dist/components/CodeBlock/index.vue.d.ts +17 -0
- package/dist/components/CodeBlock/index.vue.js +8 -0
- package/dist/components/CodeBlock/index.vue.js.map +1 -0
- package/dist/components/CodeBlock/index2.vue.js +48 -0
- package/dist/components/CodeBlock/index2.vue.js.map +1 -0
- package/dist/components/CronEditor/index.vue.d.ts +15 -0
- package/dist/components/CronEditor/index.vue.js +8 -0
- package/dist/components/CronEditor/index.vue.js.map +1 -0
- package/dist/components/CronEditor/index2.vue.js +528 -0
- package/dist/components/CronEditor/index2.vue.js.map +1 -0
- package/dist/components/DetailPage/index.vue.d.ts +26 -0
- package/dist/components/DetailPage/index.vue.js +8 -0
- package/dist/components/DetailPage/index.vue.js.map +1 -0
- package/dist/components/DetailPage/index2.vue.js +51 -0
- package/dist/components/DetailPage/index2.vue.js.map +1 -0
- package/dist/components/DictCheckbox/index.vue.d.ts +6 -0
- package/dist/components/DictCheckbox/index.vue.js +43 -0
- package/dist/components/DictCheckbox/index.vue.js.map +1 -0
- package/dist/components/DictCheckbox/index2.vue.js +5 -0
- package/dist/components/DictCheckbox/index2.vue.js.map +1 -0
- package/dist/components/DictRadio/index.vue.d.ts +6 -0
- package/dist/components/DictRadio/index.vue.js +38 -0
- package/dist/components/DictRadio/index.vue.js.map +1 -0
- package/dist/components/DictRadio/index2.vue.js +5 -0
- package/dist/components/DictRadio/index2.vue.js.map +1 -0
- package/dist/components/DictSelect/index.vue.d.ts +6 -0
- package/dist/components/DictSelect/index.vue.js +37 -0
- package/dist/components/DictSelect/index.vue.js.map +1 -0
- package/dist/components/DictSelect/index2.vue.js +5 -0
- package/dist/components/DictSelect/index2.vue.js.map +1 -0
- package/dist/components/DictTag/index.vue.d.ts +10 -0
- package/dist/components/DictTag/index.vue.js +48 -0
- package/dist/components/DictTag/index.vue.js.map +1 -0
- package/dist/components/DictTag/index2.vue.js +5 -0
- package/dist/components/DictTag/index2.vue.js.map +1 -0
- package/dist/components/ErrorBoundary/index.vue.d.ts +13 -0
- package/dist/components/ErrorBoundary/index.vue.js +8 -0
- package/dist/components/ErrorBoundary/index.vue.js.map +1 -0
- package/dist/components/ErrorBoundary/index2.vue.js +61 -0
- package/dist/components/ErrorBoundary/index2.vue.js.map +1 -0
- package/dist/components/ExportColumnsModal/index.vue.d.ts +19 -0
- package/dist/components/ExportColumnsModal/index.vue.js +8 -0
- package/dist/components/ExportColumnsModal/index.vue.js.map +1 -0
- package/dist/components/ExportColumnsModal/index2.vue.js +121 -0
- package/dist/components/ExportColumnsModal/index2.vue.js.map +1 -0
- package/dist/components/FileUpload/index.vue.d.ts +24 -0
- package/dist/components/FileUpload/index.vue.js +42 -0
- package/dist/components/FileUpload/index.vue.js.map +1 -0
- package/dist/components/FileUpload/index2.vue.js +5 -0
- package/dist/components/FileUpload/index2.vue.js.map +1 -0
- package/dist/components/FormContainer/index.vue.d.ts +51 -0
- package/dist/components/FormContainer/index.vue.js +160 -0
- package/dist/components/FormContainer/index.vue.js.map +1 -0
- package/dist/components/FormContainer/index3.vue.js +6 -0
- package/dist/components/FormContainer/index3.vue.js.map +1 -0
- package/dist/components/IconPicker/index.vue.d.ts +18 -0
- package/dist/components/IconPicker/index.vue.js +43 -0
- package/dist/components/IconPicker/index.vue.js.map +1 -0
- package/dist/components/IconPicker/index2.vue.js +5 -0
- package/dist/components/IconPicker/index2.vue.js.map +1 -0
- package/dist/components/ImportWizard/index.vue.d.ts +39 -0
- package/dist/components/ImportWizard/index.vue.js +8 -0
- package/dist/components/ImportWizard/index.vue.js.map +1 -0
- package/dist/components/ImportWizard/index2.vue.js +634 -0
- package/dist/components/ImportWizard/index2.vue.js.map +1 -0
- package/dist/components/JsonEditor/index.vue.d.ts +12 -0
- package/dist/components/JsonEditor/index.vue.js +87 -0
- package/dist/components/JsonEditor/index.vue.js.map +1 -0
- package/dist/components/JsonEditor/index2.vue.js +5 -0
- package/dist/components/JsonEditor/index2.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/MarkdownView.vue.d.ts +6 -0
- package/dist/components/MarkdownEditor/MarkdownView.vue.js +33 -0
- package/dist/components/MarkdownEditor/MarkdownView.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/MarkdownView2.vue.js +5 -0
- package/dist/components/MarkdownEditor/MarkdownView2.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/index.vue.d.ts +10 -0
- package/dist/components/MarkdownEditor/index.vue.js +35 -0
- package/dist/components/MarkdownEditor/index.vue.js.map +1 -0
- package/dist/components/MarkdownEditor/index2.vue.js +5 -0
- package/dist/components/MarkdownEditor/index2.vue.js.map +1 -0
- package/dist/components/MenuSearch.vue.d.ts +10 -0
- package/dist/components/MenuSearch.vue.js +8 -0
- package/dist/components/MenuSearch.vue.js.map +1 -0
- package/dist/components/MenuSearch2.vue.js +121 -0
- package/dist/components/MenuSearch2.vue.js.map +1 -0
- package/dist/components/OrgTreeSelect/index.vue.d.ts +6 -0
- package/dist/components/OrgTreeSelect/index.vue.js +42 -0
- package/dist/components/OrgTreeSelect/index.vue.js.map +1 -0
- package/dist/components/OrgTreeSelect/index2.vue.js +5 -0
- package/dist/components/OrgTreeSelect/index2.vue.js.map +1 -0
- package/dist/components/PasswordStrength/index.vue.d.ts +6 -0
- package/dist/components/PasswordStrength/index.vue.js +8 -0
- package/dist/components/PasswordStrength/index.vue.js.map +1 -0
- package/dist/components/PasswordStrength/index2.vue.js +91 -0
- package/dist/components/PasswordStrength/index2.vue.js.map +1 -0
- package/dist/components/ReauthModal.vue.d.ts +3 -0
- package/dist/components/ReauthModal.vue.js +8 -0
- package/dist/components/ReauthModal.vue.js.map +1 -0
- package/dist/components/ReauthModal2.vue.js +139 -0
- package/dist/components/ReauthModal2.vue.js.map +1 -0
- package/dist/components/RoleSelect/index.vue.d.ts +8 -0
- package/dist/components/RoleSelect/index.vue.js +26 -0
- package/dist/components/RoleSelect/index.vue.js.map +1 -0
- package/dist/components/RoleSelect/index2.vue.js +5 -0
- package/dist/components/RoleSelect/index2.vue.js.map +1 -0
- package/dist/components/SelectTable/index.vue.d.ts +76 -0
- package/dist/components/SelectTable/index.vue.js +8 -0
- package/dist/components/SelectTable/index.vue.js.map +1 -0
- package/dist/components/SelectTable/index2.vue.js +256 -0
- package/dist/components/SelectTable/index2.vue.js.map +1 -0
- package/dist/components/SmartLogo.vue.d.ts +8 -0
- package/dist/components/SmartLogo.vue.js +8 -0
- package/dist/components/SmartLogo.vue.js.map +1 -0
- package/dist/components/SmartLogo2.vue.js +74 -0
- package/dist/components/SmartLogo2.vue.js.map +1 -0
- package/dist/components/StatusSwitch/index.vue.d.ts +21 -0
- package/dist/components/StatusSwitch/index.vue.js +45 -0
- package/dist/components/StatusSwitch/index.vue.js.map +1 -0
- package/dist/components/StatusSwitch/index2.vue.js +5 -0
- package/dist/components/StatusSwitch/index2.vue.js.map +1 -0
- package/dist/components/TableZoomButton/index.vue.d.ts +13 -0
- package/dist/components/TableZoomButton/index.vue.js +42 -0
- package/dist/components/TableZoomButton/index.vue.js.map +1 -0
- package/dist/components/TableZoomButton/index2.vue.js +5 -0
- package/dist/components/TableZoomButton/index2.vue.js.map +1 -0
- package/dist/components/UserPicker/index.vue.d.ts +13 -0
- package/dist/components/UserPicker/index.vue.js +8 -0
- package/dist/components/UserPicker/index.vue.js.map +1 -0
- package/dist/components/UserPicker/index2.vue.js +214 -0
- package/dist/components/UserPicker/index2.vue.js.map +1 -0
- package/dist/components/UserSelect/index.vue.d.ts +9 -0
- package/dist/components/UserSelect/index.vue.js +32 -0
- package/dist/components/UserSelect/index.vue.js.map +1 -0
- package/dist/components/UserSelect/index2.vue.js +5 -0
- package/dist/components/UserSelect/index2.vue.js.map +1 -0
- package/dist/components/oauth/BrandIcon.vue.d.ts +12 -0
- package/dist/components/oauth/BrandIcon.vue.js +8 -0
- package/dist/components/oauth/BrandIcon.vue.js.map +1 -0
- package/dist/components/oauth/BrandIcon2.vue.js +95 -0
- package/dist/components/oauth/BrandIcon2.vue.js.map +1 -0
- package/dist/composables/authMenuRoute.d.ts +32 -0
- package/dist/composables/authMenuRoute.js +37 -0
- package/dist/composables/authMenuRoute.js.map +1 -0
- package/dist/composables/clearClientCache.d.ts +10 -0
- package/dist/composables/clearClientCache.js +17 -0
- package/dist/composables/clearClientCache.js.map +1 -0
- package/dist/composables/useAuthMenu.d.ts +3 -0
- package/dist/composables/useAuthMenu.js +61 -0
- package/dist/composables/useAuthMenu.js.map +1 -0
- package/dist/composables/useBatchDelete.d.ts +18 -0
- package/dist/composables/useBatchDelete.js +21 -0
- package/dist/composables/useBatchDelete.js.map +1 -0
- package/dist/composables/useCompactScreen.d.ts +12 -0
- package/dist/composables/useCompactScreen.js +17 -0
- package/dist/composables/useCompactScreen.js.map +1 -0
- package/dist/composables/useConfirm.d.ts +18 -0
- package/dist/composables/useConfirm.js +61 -0
- package/dist/composables/useConfirm.js.map +1 -0
- package/dist/composables/useFullscreenToggle.d.ts +11 -0
- package/dist/composables/useFullscreenToggle.js +64 -0
- package/dist/composables/useFullscreenToggle.js.map +1 -0
- package/dist/composables/useHeaderTools.d.ts +31 -0
- package/dist/composables/useHeaderTools.js +15 -0
- package/dist/composables/useHeaderTools.js.map +1 -0
- package/dist/composables/useLayoutMenu.d.ts +17 -0
- package/dist/composables/useLayoutMenu.js +93 -0
- package/dist/composables/useLayoutMenu.js.map +1 -0
- package/dist/composables/useMenuBadge.d.ts +11 -0
- package/dist/composables/useMenuBadge.js +17 -0
- package/dist/composables/useMenuBadge.js.map +1 -0
- package/dist/composables/useMenuFlat.d.ts +8 -0
- package/dist/composables/useMenuFlat.js +29 -0
- package/dist/composables/useMenuFlat.js.map +1 -0
- package/dist/composables/useModule.d.ts +16 -0
- package/dist/composables/useModule.js +44 -0
- package/dist/composables/useModule.js.map +1 -0
- package/dist/composables/useNoticeAction.d.ts +8 -0
- package/dist/composables/useNoticeAction.js +79 -0
- package/dist/composables/useNoticeAction.js.map +1 -0
- package/dist/composables/usePageTitle.d.ts +1 -0
- package/dist/composables/usePageTitle.js +20 -0
- package/dist/composables/usePageTitle.js.map +1 -0
- package/dist/composables/useRealtime.d.ts +31 -0
- package/dist/composables/useRealtime.js +59 -0
- package/dist/composables/useRealtime.js.map +1 -0
- package/dist/composables/useSite.d.ts +24 -0
- package/dist/composables/useSite.js +27 -0
- package/dist/composables/useSite.js.map +1 -0
- package/dist/composables/useTabTitle.d.ts +1 -0
- package/dist/composables/useTabTitle.js +10 -0
- package/dist/composables/useTabTitle.js.map +1 -0
- package/dist/composables/useTableRowSort.d.ts +20 -0
- package/dist/composables/useTableRowSort.js +59 -0
- package/dist/composables/useTableRowSort.js.map +1 -0
- package/dist/composables/useTableZoom.d.ts +5 -0
- package/dist/composables/useTableZoom.js +30 -0
- package/dist/composables/useTableZoom.js.map +1 -0
- package/dist/composables/useTheme.d.ts +13 -0
- package/dist/composables/useTheme.js +30 -0
- package/dist/composables/useTheme.js.map +1 -0
- package/dist/composables/useVisualViewportHeight.d.ts +3 -0
- package/dist/composables/useVisualViewportHeight.js +16 -0
- package/dist/composables/useVisualViewportHeight.js.map +1 -0
- package/dist/createSmartAdmin.d.ts +56 -0
- package/dist/createSmartAdmin.js +76 -0
- package/dist/createSmartAdmin.js.map +1 -0
- package/dist/directives/auth.d.ts +16 -0
- package/dist/directives/auth.js +19 -0
- package/dist/directives/auth.js.map +1 -0
- package/dist/env.d.ts +10 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.js +273 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/AppHeader.vue.d.ts +12 -0
- package/dist/layouts/AppHeader.vue.js +8 -0
- package/dist/layouts/AppHeader.vue.js.map +1 -0
- package/dist/layouts/AppHeader2.vue.js +352 -0
- package/dist/layouts/AppHeader2.vue.js.map +1 -0
- package/dist/layouts/LayoutModeCards.vue.d.ts +3 -0
- package/dist/layouts/LayoutModeCards.vue.js +8 -0
- package/dist/layouts/LayoutModeCards.vue.js.map +1 -0
- package/dist/layouts/LayoutModeCards2.vue.js +67 -0
- package/dist/layouts/LayoutModeCards2.vue.js.map +1 -0
- package/dist/layouts/NoticeBell.vue.d.ts +3 -0
- package/dist/layouts/NoticeBell.vue.js +8 -0
- package/dist/layouts/NoticeBell.vue.js.map +1 -0
- package/dist/layouts/NoticeBell2.vue.js +292 -0
- package/dist/layouts/NoticeBell2.vue.js.map +1 -0
- package/dist/layouts/PersonalLayout.vue.d.ts +3 -0
- package/dist/layouts/PersonalLayout.vue.js +8 -0
- package/dist/layouts/PersonalLayout.vue.js.map +1 -0
- package/dist/layouts/PersonalLayout2.vue.js +65 -0
- package/dist/layouts/PersonalLayout2.vue.js.map +1 -0
- package/dist/layouts/SettingRow.vue.d.ts +16 -0
- package/dist/layouts/SettingRow.vue.js +8 -0
- package/dist/layouts/SettingRow.vue.js.map +1 -0
- package/dist/layouts/SettingRow2.vue.js +23 -0
- package/dist/layouts/SettingRow2.vue.js.map +1 -0
- package/dist/layouts/SettingsDrawer.vue.d.ts +10 -0
- package/dist/layouts/SettingsDrawer.vue.js +8 -0
- package/dist/layouts/SettingsDrawer.vue.js.map +1 -0
- package/dist/layouts/SettingsDrawer2.vue.js +380 -0
- package/dist/layouts/SettingsDrawer2.vue.js.map +1 -0
- package/dist/layouts/TabsBar.vue.d.ts +3 -0
- package/dist/layouts/TabsBar.vue.js +8 -0
- package/dist/layouts/TabsBar.vue.js.map +1 -0
- package/dist/layouts/TabsBar2.vue.js +132 -0
- package/dist/layouts/TabsBar2.vue.js.map +1 -0
- package/dist/layouts/components/SideNav.vue.d.ts +15 -0
- package/dist/layouts/components/SideNav.vue.js +8 -0
- package/dist/layouts/components/SideNav.vue.js.map +1 -0
- package/dist/layouts/components/SideNav2.vue.js +49 -0
- package/dist/layouts/components/SideNav2.vue.js.map +1 -0
- package/dist/layouts/default.vue.d.ts +3 -0
- package/dist/layouts/default.vue.js +8 -0
- package/dist/layouts/default.vue.js.map +1 -0
- package/dist/layouts/default2.vue.js +213 -0
- package/dist/layouts/default2.vue.js.map +1 -0
- package/dist/lib/chunkReload.d.ts +9 -0
- package/dist/lib/chunkReload.js +24 -0
- package/dist/lib/chunkReload.js.map +1 -0
- package/dist/lib/icons.d.ts +2 -0
- package/dist/lib/icons.js +39 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/loadingBar.d.ts +7 -0
- package/dist/lib/loadingBar.js +18 -0
- package/dist/lib/loadingBar.js.map +1 -0
- package/dist/lib/markdown.d.ts +8 -0
- package/dist/lib/markdown.js +16 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/markdownLinks.d.ts +26 -0
- package/dist/lib/markdownLinks.js +21 -0
- package/dist/lib/markdownLinks.js.map +1 -0
- package/dist/lib/noticeActions.d.ts +13 -0
- package/dist/lib/noticeActions.js +16 -0
- package/dist/lib/noticeActions.js.map +1 -0
- package/dist/lib/runtime.d.ts +21 -0
- package/dist/lib/runtime.js +13 -0
- package/dist/lib/runtime.js.map +1 -0
- package/dist/locales/en-US.d.ts +1358 -0
- package/dist/locales/en-US.js +1362 -0
- package/dist/locales/en-US.js.map +1 -0
- package/dist/locales/index.d.ts +30 -0
- package/dist/locales/index.js +46 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/locales/menuTitle.d.ts +8 -0
- package/dist/locales/menuTitle.js +19 -0
- package/dist/locales/menuTitle.js.map +1 -0
- package/dist/locales/zh-CN.d.ts +1358 -0
- package/dist/locales/zh-CN.js +1368 -0
- package/dist/locales/zh-CN.js.map +1 -0
- package/dist/router/bootFailure.d.ts +8 -0
- package/dist/router/bootFailure.js +11 -0
- package/dist/router/bootFailure.js.map +1 -0
- package/dist/router/detailRoutes.d.ts +2 -0
- package/dist/router/detailRoutes.js +19 -0
- package/dist/router/detailRoutes.js.map +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.js +58 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/namedPage.d.ts +13 -0
- package/dist/router/namedPage.js +12 -0
- package/dist/router/namedPage.js.map +1 -0
- package/dist/router/routes.d.ts +2 -0
- package/dist/router/routes.js +121 -0
- package/dist/router/routes.js.map +1 -0
- package/dist/router/viewRegistry.d.ts +18 -0
- package/dist/router/viewRegistry.js +26 -0
- package/dist/router/viewRegistry.js.map +1 -0
- package/dist/stores/app.d.ts +83 -0
- package/dist/stores/app.js +82 -0
- package/dist/stores/app.js.map +1 -0
- package/dist/stores/auth.d.ts +106 -0
- package/dist/stores/auth.js +59 -0
- package/dist/stores/auth.js.map +1 -0
- package/dist/stores/dict.d.ts +11 -0
- package/dist/stores/dict.js +36 -0
- package/dist/stores/dict.js.map +1 -0
- package/dist/stores/tabs.d.ts +53 -0
- package/dist/stores/tabs.js +88 -0
- package/dist/stores/tabs.js.map +1 -0
- package/dist/stores/user.d.ts +64 -0
- package/dist/stores/user.js +64 -0
- package/dist/stores/user.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/theme/accents.d.ts +2 -0
- package/dist/theme/accents.js +5 -0
- package/dist/theme/accents.js.map +1 -0
- package/dist/theme/mix.d.ts +26 -0
- package/dist/theme/mix.js +43 -0
- package/dist/theme/mix.js.map +1 -0
- package/dist/theme/naive-theme.d.ts +9 -0
- package/dist/theme/naive-theme.js +89 -0
- package/dist/theme/naive-theme.js.map +1 -0
- package/dist/types/api.d.ts +714 -0
- package/dist/types/api.js +15 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/menu.d.ts +67 -0
- package/dist/types/menu.js +26 -0
- package/dist/types/menu.js.map +1 -0
- package/dist/utils/chunkUpload.d.ts +6 -0
- package/dist/utils/chunkUpload.js +35 -0
- package/dist/utils/chunkUpload.js.map +1 -0
- package/dist/utils/download.d.ts +8 -0
- package/dist/utils/download.js +8 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/error.d.ts +14 -0
- package/dist/utils/error.js +50 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/format.d.ts +20 -0
- package/dist/utils/format.js +19 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/importDup.d.ts +17 -0
- package/dist/utils/importDup.js +18 -0
- package/dist/utils/importDup.js.map +1 -0
- package/dist/utils/oauthBrand.d.ts +100 -0
- package/dist/utils/oauthBrand.js +97 -0
- package/dist/utils/oauthBrand.js.map +1 -0
- package/dist/utils/tree.d.ts +33 -0
- package/dist/utils/tree.js +47 -0
- package/dist/utils/tree.js.map +1 -0
- package/dist/utils/ua.d.ts +7 -0
- package/dist/utils/ua.js +33 -0
- package/dist/utils/ua.js.map +1 -0
- package/dist/utils/url.d.ts +16 -0
- package/dist/utils/url.js +13 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/views/dashboard/biz.vue.d.ts +3 -0
- package/dist/views/dashboard/biz.vue.js +8 -0
- package/dist/views/dashboard/biz.vue.js.map +1 -0
- package/dist/views/dashboard/biz2.vue.js +136 -0
- package/dist/views/dashboard/biz2.vue.js.map +1 -0
- package/dist/views/dashboard/workbench.vue.d.ts +3 -0
- package/dist/views/dashboard/workbench.vue.js +8 -0
- package/dist/views/dashboard/workbench.vue.js.map +1 -0
- package/dist/views/dashboard/workbench2.vue.js +195 -0
- package/dist/views/dashboard/workbench2.vue.js.map +1 -0
- package/dist/views/embed/iframe.vue.d.ts +3 -0
- package/dist/views/embed/iframe.vue.js +8 -0
- package/dist/views/embed/iframe.vue.js.map +1 -0
- package/dist/views/embed/iframe2.vue.js +21 -0
- package/dist/views/embed/iframe2.vue.js.map +1 -0
- package/dist/views/error/404.vue.d.ts +3 -0
- package/dist/views/error/404.vue.js +8 -0
- package/dist/views/error/404.vue.js.map +1 -0
- package/dist/views/error/4042.vue.js +31 -0
- package/dist/views/error/4042.vue.js.map +1 -0
- package/dist/views/error/BootError.vue.d.ts +3 -0
- package/dist/views/error/BootError.vue.js +8 -0
- package/dist/views/error/BootError.vue.js.map +1 -0
- package/dist/views/error/BootError2.vue.js +57 -0
- package/dist/views/error/BootError2.vue.js.map +1 -0
- package/dist/views/error/MissingRoute.vue.d.ts +3 -0
- package/dist/views/error/MissingRoute.vue.js +8 -0
- package/dist/views/error/MissingRoute.vue.js.map +1 -0
- package/dist/views/error/MissingRoute2.vue.js +23 -0
- package/dist/views/error/MissingRoute2.vue.js.map +1 -0
- package/dist/views/login/LoginForm.vue.d.ts +12 -0
- package/dist/views/login/LoginForm.vue.js +8 -0
- package/dist/views/login/LoginForm.vue.js.map +1 -0
- package/dist/views/login/LoginForm2.vue.js +642 -0
- package/dist/views/login/LoginForm2.vue.js.map +1 -0
- package/dist/views/login/index.vue.d.ts +3 -0
- package/dist/views/login/index.vue.js +8 -0
- package/dist/views/login/index.vue.js.map +1 -0
- package/dist/views/login/index2.vue.js +79 -0
- package/dist/views/login/index2.vue.js.map +1 -0
- package/dist/views/login/skins/AuroraGlass.vue.d.ts +3 -0
- package/dist/views/login/skins/AuroraGlass.vue.js +8 -0
- package/dist/views/login/skins/AuroraGlass.vue.js.map +1 -0
- package/dist/views/login/skins/AuroraGlass2.vue.js +80 -0
- package/dist/views/login/skins/AuroraGlass2.vue.js.map +1 -0
- package/dist/views/login/skins/SplitPanel.vue.d.ts +3 -0
- package/dist/views/login/skins/SplitPanel.vue.js +8 -0
- package/dist/views/login/skins/SplitPanel.vue.js.map +1 -0
- package/dist/views/login/skins/SplitPanel2.vue.js +85 -0
- package/dist/views/login/skins/SplitPanel2.vue.js.map +1 -0
- package/dist/views/login/skins/Spotlight.vue.d.ts +3 -0
- package/dist/views/login/skins/Spotlight.vue.js +8 -0
- package/dist/views/login/skins/Spotlight.vue.js.map +1 -0
- package/dist/views/login/skins/Spotlight2.vue.js +36 -0
- package/dist/views/login/skins/Spotlight2.vue.js.map +1 -0
- package/dist/views/login/skins.d.ts +8 -0
- package/dist/views/login/skins.js +13 -0
- package/dist/views/login/skins.js.map +1 -0
- package/dist/views/mfa/bindComplete.d.ts +7 -0
- package/dist/views/mfa/bindComplete.js +8 -0
- package/dist/views/mfa/bindComplete.js.map +1 -0
- package/dist/views/mfa/index.vue.d.ts +3 -0
- package/dist/views/mfa/index.vue.js +8 -0
- package/dist/views/mfa/index.vue.js.map +1 -0
- package/dist/views/mfa/index2.vue.js +425 -0
- package/dist/views/mfa/index2.vue.js.map +1 -0
- package/dist/views/module/index.vue.d.ts +3 -0
- package/dist/views/module/index.vue.js +8 -0
- package/dist/views/module/index.vue.js.map +1 -0
- package/dist/views/module/index2.vue.js +142 -0
- package/dist/views/module/index2.vue.js.map +1 -0
- package/dist/views/oauth/callback.vue.d.ts +3 -0
- package/dist/views/oauth/callback.vue.js +8 -0
- package/dist/views/oauth/callback.vue.js.map +1 -0
- package/dist/views/oauth/callback2.vue.js +86 -0
- package/dist/views/oauth/callback2.vue.js.map +1 -0
- package/dist/views/personal/bindings.vue.d.ts +3 -0
- package/dist/views/personal/bindings.vue.js +8 -0
- package/dist/views/personal/bindings.vue.js.map +1 -0
- package/dist/views/personal/bindings2.vue.js +220 -0
- package/dist/views/personal/bindings2.vue.js.map +1 -0
- package/dist/views/personal/notice.vue.d.ts +3 -0
- package/dist/views/personal/notice.vue.js +5 -0
- package/dist/views/personal/notice.vue.js.map +1 -0
- package/dist/views/personal/notice2.vue.js +163 -0
- package/dist/views/personal/notice2.vue.js.map +1 -0
- package/dist/views/personal/password.vue.d.ts +3 -0
- package/dist/views/personal/password.vue.js +5 -0
- package/dist/views/personal/password.vue.js.map +1 -0
- package/dist/views/personal/password2.vue.js +147 -0
- package/dist/views/personal/password2.vue.js.map +1 -0
- package/dist/views/personal/profile.vue.d.ts +3 -0
- package/dist/views/personal/profile.vue.js +8 -0
- package/dist/views/personal/profile.vue.js.map +1 -0
- package/dist/views/personal/profile2.vue.js +264 -0
- package/dist/views/personal/profile2.vue.js.map +1 -0
- package/dist/views/personal/security.vue.d.ts +3 -0
- package/dist/views/personal/security.vue.js +8 -0
- package/dist/views/personal/security.vue.js.map +1 -0
- package/dist/views/personal/security2.vue.js +82 -0
- package/dist/views/personal/security2.vue.js.map +1 -0
- package/dist/views/personal/sessions.vue.d.ts +3 -0
- package/dist/views/personal/sessions.vue.js +8 -0
- package/dist/views/personal/sessions.vue.js.map +1 -0
- package/dist/views/personal/sessions2.vue.js +101 -0
- package/dist/views/personal/sessions2.vue.js.map +1 -0
- package/dist/views/system/cache/index.vue.d.ts +3 -0
- package/dist/views/system/cache/index.vue.js +8 -0
- package/dist/views/system/cache/index.vue.js.map +1 -0
- package/dist/views/system/cache/index2.vue.js +113 -0
- package/dist/views/system/cache/index2.vue.js.map +1 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.d.ts +16 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.js +5 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -0
- package/dist/views/system/config/components/ConfigFormModal2.vue.js +177 -0
- package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -0
- package/dist/views/system/config/components/ExternalAuthConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js +8 -0
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +218 -0
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/GroupExtraConfig.vue.d.ts +9 -0
- package/dist/views/system/config/components/GroupExtraConfig.vue.js +8 -0
- package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js +108 -0
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/HighSensConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/HighSensConfig.vue.js +5 -0
- package/dist/views/system/config/components/HighSensConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/HighSensConfig2.vue.js +134 -0
- package/dist/views/system/config/components/HighSensConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/JobConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/JobConfig.vue.js +5 -0
- package/dist/views/system/config/components/JobConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/JobConfig2.vue.js +116 -0
- package/dist/views/system/config/components/JobConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/OtherConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/OtherConfig.vue.js +5 -0
- package/dist/views/system/config/components/OtherConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/OtherConfig2.vue.js +121 -0
- package/dist/views/system/config/components/OtherConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/SecurityConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/SecurityConfig.vue.js +8 -0
- package/dist/views/system/config/components/SecurityConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/SecurityConfig2.vue.js +456 -0
- package/dist/views/system/config/components/SecurityConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/SysBaseConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/SysBaseConfig.vue.js +5 -0
- package/dist/views/system/config/components/SysBaseConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/SysBaseConfig2.vue.js +107 -0
- package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadConfig.vue.d.ts +3 -0
- package/dist/views/system/config/components/UploadConfig.vue.js +5 -0
- package/dist/views/system/config/components/UploadConfig.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadConfig2.vue.js +135 -0
- package/dist/views/system/config/components/UploadConfig2.vue.js.map +1 -0
- package/dist/views/system/config/groups.d.ts +9 -0
- package/dist/views/system/config/groups.js +18 -0
- package/dist/views/system/config/groups.js.map +1 -0
- package/dist/views/system/config/index.vue.d.ts +3 -0
- package/dist/views/system/config/index.vue.js +5 -0
- package/dist/views/system/config/index.vue.js.map +1 -0
- package/dist/views/system/config/index2.vue.js +127 -0
- package/dist/views/system/config/index2.vue.js.map +1 -0
- package/dist/views/system/dict/index.vue.d.ts +3 -0
- package/dist/views/system/dict/index.vue.js +8 -0
- package/dist/views/system/dict/index.vue.js.map +1 -0
- package/dist/views/system/dict/index2.vue.js +560 -0
- package/dist/views/system/dict/index2.vue.js.map +1 -0
- package/dist/views/system/file/index.vue.d.ts +3 -0
- package/dist/views/system/file/index.vue.js +5 -0
- package/dist/views/system/file/index.vue.js.map +1 -0
- package/dist/views/system/file/index2.vue.js +186 -0
- package/dist/views/system/file/index2.vue.js.map +1 -0
- package/dist/views/system/job/index.vue.d.ts +3 -0
- package/dist/views/system/job/index.vue.js +8 -0
- package/dist/views/system/job/index.vue.js.map +1 -0
- package/dist/views/system/job/index2.vue.js +1167 -0
- package/dist/views/system/job/index2.vue.js.map +1 -0
- package/dist/views/system/job-log/index.vue.d.ts +3 -0
- package/dist/views/system/job-log/index.vue.js +8 -0
- package/dist/views/system/job-log/index.vue.js.map +1 -0
- package/dist/views/system/job-log/index2.vue.js +411 -0
- package/dist/views/system/job-log/index2.vue.js.map +1 -0
- package/dist/views/system/job-monitor/index.vue.d.ts +3 -0
- package/dist/views/system/job-monitor/index.vue.js +8 -0
- package/dist/views/system/job-monitor/index.vue.js.map +1 -0
- package/dist/views/system/job-monitor/index2.vue.js +253 -0
- package/dist/views/system/job-monitor/index2.vue.js.map +1 -0
- package/dist/views/system/log/exception/index.vue.d.ts +3 -0
- package/dist/views/system/log/exception/index.vue.js +8 -0
- package/dist/views/system/log/exception/index.vue.js.map +1 -0
- package/dist/views/system/log/exception/index2.vue.js +216 -0
- package/dist/views/system/log/exception/index2.vue.js.map +1 -0
- package/dist/views/system/log/login/index.vue.d.ts +3 -0
- package/dist/views/system/log/login/index.vue.js +5 -0
- package/dist/views/system/log/login/index.vue.js.map +1 -0
- package/dist/views/system/log/login/index2.vue.js +113 -0
- package/dist/views/system/log/login/index2.vue.js.map +1 -0
- package/dist/views/system/log/op/index.vue.d.ts +3 -0
- package/dist/views/system/log/op/index.vue.js +8 -0
- package/dist/views/system/log/op/index.vue.js.map +1 -0
- package/dist/views/system/log/op/index2.vue.js +332 -0
- package/dist/views/system/log/op/index2.vue.js.map +1 -0
- package/dist/views/system/menu/components/ButtonManager.vue.d.ts +21 -0
- package/dist/views/system/menu/components/ButtonManager.vue.js +8 -0
- package/dist/views/system/menu/components/ButtonManager.vue.js.map +1 -0
- package/dist/views/system/menu/components/ButtonManager2.vue.js +498 -0
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -0
- package/dist/views/system/menu/components/MenuFormModal.vue.d.ts +22 -0
- package/dist/views/system/menu/components/MenuFormModal.vue.js +8 -0
- package/dist/views/system/menu/components/MenuFormModal.vue.js.map +1 -0
- package/dist/views/system/menu/components/MenuFormModal2.vue.js +259 -0
- package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -0
- package/dist/views/system/menu/index.vue.d.ts +3 -0
- package/dist/views/system/menu/index.vue.js +8 -0
- package/dist/views/system/menu/index.vue.js.map +1 -0
- package/dist/views/system/menu/index2.vue.js +391 -0
- package/dist/views/system/menu/index2.vue.js.map +1 -0
- package/dist/views/system/module/index.vue.d.ts +3 -0
- package/dist/views/system/module/index.vue.js +8 -0
- package/dist/views/system/module/index.vue.js.map +1 -0
- package/dist/views/system/module/index2.vue.js +344 -0
- package/dist/views/system/module/index2.vue.js.map +1 -0
- package/dist/views/system/monitor/index.vue.d.ts +3 -0
- package/dist/views/system/monitor/index.vue.js +8 -0
- package/dist/views/system/monitor/index.vue.js.map +1 -0
- package/dist/views/system/monitor/index2.vue.js +184 -0
- package/dist/views/system/monitor/index2.vue.js.map +1 -0
- package/dist/views/system/notice/index.vue.d.ts +3 -0
- package/dist/views/system/notice/index.vue.js +8 -0
- package/dist/views/system/notice/index.vue.js.map +1 -0
- package/dist/views/system/notice/index2.vue.js +401 -0
- package/dist/views/system/notice/index2.vue.js.map +1 -0
- package/dist/views/system/org/index.vue.d.ts +3 -0
- package/dist/views/system/org/index.vue.js +8 -0
- package/dist/views/system/org/index.vue.js.map +1 -0
- package/dist/views/system/org/index2.vue.js +397 -0
- package/dist/views/system/org/index2.vue.js.map +1 -0
- package/dist/views/system/position/index.vue.d.ts +3 -0
- package/dist/views/system/position/index.vue.js +5 -0
- package/dist/views/system/position/index.vue.js.map +1 -0
- package/dist/views/system/position/index2.vue.js +211 -0
- package/dist/views/system/position/index2.vue.js.map +1 -0
- package/dist/views/system/recycle/index.vue.d.ts +3 -0
- package/dist/views/system/recycle/index.vue.js +8 -0
- package/dist/views/system/recycle/index.vue.js.map +1 -0
- package/dist/views/system/recycle/index2.vue.js +121 -0
- package/dist/views/system/recycle/index2.vue.js.map +1 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +18 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.js +8 -0
- package/dist/views/system/role/components/GrantMenuTable.vue.js.map +1 -0
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +212 -0
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -0
- package/dist/views/system/role/components/grantMenuGroups.d.ts +31 -0
- package/dist/views/system/role/components/grantMenuGroups.js +76 -0
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -0
- package/dist/views/system/role/index.vue.d.ts +3 -0
- package/dist/views/system/role/index.vue.js +5 -0
- package/dist/views/system/role/index.vue.js.map +1 -0
- package/dist/views/system/role/index2.vue.js +476 -0
- package/dist/views/system/role/index2.vue.js.map +1 -0
- package/dist/views/system/session/index.vue.d.ts +3 -0
- package/dist/views/system/session/index.vue.js +5 -0
- package/dist/views/system/session/index.vue.js.map +1 -0
- package/dist/views/system/session/index2.vue.js +80 -0
- package/dist/views/system/session/index2.vue.js.map +1 -0
- package/dist/views/system/user/components/ResetPasswordModal.vue.d.ts +10 -0
- package/dist/views/system/user/components/ResetPasswordModal.vue.js +8 -0
- package/dist/views/system/user/components/ResetPasswordModal.vue.js.map +1 -0
- package/dist/views/system/user/components/ResetPasswordModal2.vue.js +111 -0
- package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserFormModal.vue.d.ts +30 -0
- package/dist/views/system/user/components/UserFormModal.vue.js +8 -0
- package/dist/views/system/user/components/UserFormModal.vue.js.map +1 -0
- package/dist/views/system/user/components/UserFormModal2.vue.js +415 -0
- package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -0
- package/dist/views/system/user/index.vue.d.ts +3 -0
- package/dist/views/system/user/index.vue.js +8 -0
- package/dist/views/system/user/index.vue.js.map +1 -0
- package/dist/views/system/user/index2.vue.js +427 -0
- package/dist/views/system/user/index2.vue.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { defineComponent as _, useModel as C, ref as b, reactive as T, computed as F, watch as I, openBlock as y, createElementBlock as E, Fragment as q, createBlock as P, unref as u, withCtx as n, createVNode as i, createCommentVNode as L, normalizeStyle as ee, createElementVNode as le, withKeys as O, renderList as ae, createTextVNode as B, toDisplayString as M, mergeModels as A } from "vue";
|
|
2
|
+
import { useMessage as te, NInput as U, NModal as oe, NButton as x, NDataTable as ue, NSpace as ne } from "naive-ui";
|
|
3
|
+
import { useI18n as ie } from "vue-i18n";
|
|
4
|
+
import V from "../AppIcon.vue.js";
|
|
5
|
+
import { translateError as re } from "../../utils/error.js";
|
|
6
|
+
const se = { class: "select-table" }, ce = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "select-table-search"
|
|
9
|
+
}, pe = /* @__PURE__ */ _({
|
|
10
|
+
__name: "index",
|
|
11
|
+
props: /* @__PURE__ */ A({
|
|
12
|
+
title: {},
|
|
13
|
+
placeholder: { default: "" },
|
|
14
|
+
disabled: { type: Boolean, default: !1 },
|
|
15
|
+
columns: {},
|
|
16
|
+
searchFields: { default: () => [] },
|
|
17
|
+
keywordSearch: { type: Boolean, default: !1 },
|
|
18
|
+
keywordSearchPlaceholder: { default: "" },
|
|
19
|
+
keywordParam: { default: "keyword" },
|
|
20
|
+
fetcher: {},
|
|
21
|
+
rowKey: {},
|
|
22
|
+
label: {},
|
|
23
|
+
multiple: { type: Boolean, default: !1 },
|
|
24
|
+
displaySelected: { type: Boolean, default: !0 },
|
|
25
|
+
triggerVisible: { type: Boolean, default: !0 },
|
|
26
|
+
width: { default: 860 },
|
|
27
|
+
pageSize: { default: 10 },
|
|
28
|
+
paginated: { type: Boolean, default: !0 },
|
|
29
|
+
unpagedSize: { default: 200 }
|
|
30
|
+
}, {
|
|
31
|
+
value: { default: null },
|
|
32
|
+
valueModifiers: {},
|
|
33
|
+
selected: { default: null },
|
|
34
|
+
selectedModifiers: {},
|
|
35
|
+
values: { default: () => [] },
|
|
36
|
+
valuesModifiers: {},
|
|
37
|
+
selecteds: { default: () => [] },
|
|
38
|
+
selectedsModifiers: {}
|
|
39
|
+
}),
|
|
40
|
+
emits: /* @__PURE__ */ A(["confirm"], ["update:value", "update:selected", "update:values", "update:selecteds"]),
|
|
41
|
+
setup(t, { expose: G, emit: H }) {
|
|
42
|
+
const p = C(t, "value"), h = C(t, "selected"), r = C(t, "values"), K = C(t, "selecteds"), R = H, e = t, { t: w } = ie(), J = te(), d = b(!1), N = b(!1), g = b([]), f = b(null), v = T({}), k = b(""), Q = F(
|
|
43
|
+
() => e.multiple ? e.displaySelected ? K.value.map((a) => e.label(a)).join(", ") : "" : h.value ? e.label(h.value) : ""
|
|
44
|
+
), $ = F(
|
|
45
|
+
() => g.value.find((a) => e.rowKey(a) === f.value) ?? null
|
|
46
|
+
), W = F(() => r.value.length > 0), s = T({
|
|
47
|
+
page: 1,
|
|
48
|
+
pageSize: e.pageSize,
|
|
49
|
+
itemCount: 0,
|
|
50
|
+
showSizePicker: !0,
|
|
51
|
+
pageSizes: [10, 20, 50],
|
|
52
|
+
onChange: (a) => {
|
|
53
|
+
s.page = a, z();
|
|
54
|
+
},
|
|
55
|
+
onUpdatePageSize: (a) => {
|
|
56
|
+
s.pageSize = a, s.page = 1, z();
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
I(
|
|
60
|
+
() => e.searchFields,
|
|
61
|
+
(a) => {
|
|
62
|
+
a.forEach((o) => {
|
|
63
|
+
v[o.key] == null && (v[o.key] = "");
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
{ immediate: !0 }
|
|
67
|
+
), I(h, (a) => {
|
|
68
|
+
a && (p.value = e.rowKey(a));
|
|
69
|
+
});
|
|
70
|
+
async function z() {
|
|
71
|
+
N.value = !0;
|
|
72
|
+
try {
|
|
73
|
+
const a = e.keywordSearch ? k.value.trim() ? { [e.keywordParam]: k.value.trim() } : {} : Object.fromEntries(
|
|
74
|
+
e.searchFields.map((l) => {
|
|
75
|
+
var m;
|
|
76
|
+
return [l.key, (m = v[l.key]) == null ? void 0 : m.trim()];
|
|
77
|
+
}).filter((l) => !!l[1])
|
|
78
|
+
), o = await e.fetcher({
|
|
79
|
+
page: e.paginated ? s.page ?? 1 : 1,
|
|
80
|
+
pageSize: e.paginated ? s.pageSize ?? e.pageSize : e.unpagedSize,
|
|
81
|
+
...a
|
|
82
|
+
});
|
|
83
|
+
g.value = o.items, s.itemCount = o.total, g.value.some((l) => e.rowKey(l) === f.value) || (f.value = p.value);
|
|
84
|
+
} catch (a) {
|
|
85
|
+
J.error(re(a));
|
|
86
|
+
} finally {
|
|
87
|
+
N.value = !1;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function j() {
|
|
91
|
+
e.disabled || (f.value = p.value, d.value = !0, z());
|
|
92
|
+
}
|
|
93
|
+
G({ open: j });
|
|
94
|
+
function S() {
|
|
95
|
+
s.page = 1, z();
|
|
96
|
+
}
|
|
97
|
+
function X() {
|
|
98
|
+
if (e.keywordSearch) {
|
|
99
|
+
k.value = "", S();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
e.searchFields.forEach((a) => {
|
|
103
|
+
v[a.key] = "";
|
|
104
|
+
}), S();
|
|
105
|
+
}
|
|
106
|
+
function Y(a) {
|
|
107
|
+
r.value = a;
|
|
108
|
+
}
|
|
109
|
+
function D(a = $.value) {
|
|
110
|
+
if (e.multiple) {
|
|
111
|
+
const o = new Map(g.value.map((c) => [e.rowKey(c), c])), l = K.value.filter(
|
|
112
|
+
(c) => r.value.includes(e.rowKey(c)) && !o.has(e.rowKey(c))
|
|
113
|
+
), m = r.value.map((c) => o.get(c)).filter(Boolean);
|
|
114
|
+
K.value = [...l, ...m], R("confirm"), d.value = !1;
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
a && (p.value = e.rowKey(a), h.value = a, R("confirm"), d.value = !1);
|
|
118
|
+
}
|
|
119
|
+
function Z() {
|
|
120
|
+
e.multiple ? (r.value = [], K.value = []) : (p.value = null, h.value = null);
|
|
121
|
+
}
|
|
122
|
+
return (a, o) => (y(), E(q, null, [
|
|
123
|
+
t.triggerVisible ? (y(), P(u(U), {
|
|
124
|
+
key: 0,
|
|
125
|
+
value: Q.value,
|
|
126
|
+
placeholder: t.placeholder || t.title,
|
|
127
|
+
disabled: t.disabled,
|
|
128
|
+
readonly: "",
|
|
129
|
+
clearable: "",
|
|
130
|
+
onClick: j,
|
|
131
|
+
onClear: Z
|
|
132
|
+
}, {
|
|
133
|
+
suffix: n(() => [
|
|
134
|
+
i(V, {
|
|
135
|
+
icon: "ph:magnifying-glass",
|
|
136
|
+
size: 16
|
|
137
|
+
})
|
|
138
|
+
]),
|
|
139
|
+
_: 1
|
|
140
|
+
}, 8, ["value", "placeholder", "disabled"])) : L("", !0),
|
|
141
|
+
i(u(oe), {
|
|
142
|
+
show: d.value,
|
|
143
|
+
"onUpdate:show": o[4] || (o[4] = (l) => d.value = l),
|
|
144
|
+
preset: "card",
|
|
145
|
+
title: t.title,
|
|
146
|
+
style: ee({ width: `${t.width}px` }),
|
|
147
|
+
"mask-closable": !1
|
|
148
|
+
}, {
|
|
149
|
+
footer: n(() => [
|
|
150
|
+
i(u(ne), { justify: "end" }, {
|
|
151
|
+
default: n(() => [
|
|
152
|
+
i(u(x), {
|
|
153
|
+
onClick: o[2] || (o[2] = (l) => d.value = !1)
|
|
154
|
+
}, {
|
|
155
|
+
default: n(() => [
|
|
156
|
+
B(M(u(w)("common.cancel")), 1)
|
|
157
|
+
]),
|
|
158
|
+
_: 1
|
|
159
|
+
}),
|
|
160
|
+
i(u(x), {
|
|
161
|
+
type: "primary",
|
|
162
|
+
disabled: e.multiple ? !W.value : !$.value,
|
|
163
|
+
onClick: o[3] || (o[3] = (l) => D())
|
|
164
|
+
}, {
|
|
165
|
+
default: n(() => [
|
|
166
|
+
B(M(u(w)("common.confirm")), 1)
|
|
167
|
+
]),
|
|
168
|
+
_: 1
|
|
169
|
+
}, 8, ["disabled"])
|
|
170
|
+
]),
|
|
171
|
+
_: 1
|
|
172
|
+
})
|
|
173
|
+
]),
|
|
174
|
+
default: n(() => [
|
|
175
|
+
le("div", se, [
|
|
176
|
+
t.keywordSearch || t.searchFields.length ? (y(), E("div", ce, [
|
|
177
|
+
t.keywordSearch ? (y(), P(u(U), {
|
|
178
|
+
key: 0,
|
|
179
|
+
value: k.value,
|
|
180
|
+
"onUpdate:value": o[0] || (o[0] = (l) => k.value = l),
|
|
181
|
+
class: "keyword-input",
|
|
182
|
+
clearable: "",
|
|
183
|
+
placeholder: t.keywordSearchPlaceholder || u(w)("common.search"),
|
|
184
|
+
onKeyup: O(S, ["enter"])
|
|
185
|
+
}, null, 8, ["value", "placeholder"])) : (y(!0), E(q, { key: 1 }, ae(t.searchFields, (l) => (y(), P(u(U), {
|
|
186
|
+
key: l.key,
|
|
187
|
+
value: v[l.key],
|
|
188
|
+
"onUpdate:value": (m) => v[l.key] = m,
|
|
189
|
+
clearable: "",
|
|
190
|
+
placeholder: l.placeholder || l.label,
|
|
191
|
+
onKeyup: O(S, ["enter"])
|
|
192
|
+
}, null, 8, ["value", "onUpdate:value", "placeholder"]))), 128)),
|
|
193
|
+
i(u(x), {
|
|
194
|
+
type: "primary",
|
|
195
|
+
onClick: S
|
|
196
|
+
}, {
|
|
197
|
+
icon: n(() => [
|
|
198
|
+
i(V, {
|
|
199
|
+
icon: "ph:magnifying-glass",
|
|
200
|
+
size: 16
|
|
201
|
+
})
|
|
202
|
+
]),
|
|
203
|
+
default: n(() => [
|
|
204
|
+
B(" " + M(u(w)("common.search")), 1)
|
|
205
|
+
]),
|
|
206
|
+
_: 1
|
|
207
|
+
}),
|
|
208
|
+
i(u(x), { onClick: X }, {
|
|
209
|
+
icon: n(() => [
|
|
210
|
+
i(V, {
|
|
211
|
+
icon: "ph:arrow-counter-clockwise",
|
|
212
|
+
size: 16
|
|
213
|
+
})
|
|
214
|
+
]),
|
|
215
|
+
default: n(() => [
|
|
216
|
+
B(" " + M(u(w)("common.reset")), 1)
|
|
217
|
+
]),
|
|
218
|
+
_: 1
|
|
219
|
+
})
|
|
220
|
+
])) : L("", !0),
|
|
221
|
+
i(u(ue), {
|
|
222
|
+
class: "select-table-grid",
|
|
223
|
+
columns: t.columns,
|
|
224
|
+
data: g.value,
|
|
225
|
+
loading: N.value,
|
|
226
|
+
"row-key": t.rowKey,
|
|
227
|
+
"checked-row-keys": e.multiple ? r.value : void 0,
|
|
228
|
+
"onUpdate:checkedRowKeys": o[1] || (o[1] = (l) => {
|
|
229
|
+
e.multiple && Y(l);
|
|
230
|
+
}),
|
|
231
|
+
"row-props": (l) => ({
|
|
232
|
+
style: "cursor: pointer",
|
|
233
|
+
onClick: () => {
|
|
234
|
+
e.multiple || (f.value = t.rowKey(l));
|
|
235
|
+
},
|
|
236
|
+
onDblclick: () => {
|
|
237
|
+
e.multiple && !r.value.includes(t.rowKey(l)) && (r.value = [...r.value, t.rowKey(l)]), D(l);
|
|
238
|
+
}
|
|
239
|
+
}),
|
|
240
|
+
"row-class-name": (l) => t.rowKey(l) === f.value ? "select-table-row-selected" : "",
|
|
241
|
+
pagination: t.paginated ? s : !1,
|
|
242
|
+
"max-height": 430,
|
|
243
|
+
size: "small",
|
|
244
|
+
remote: ""
|
|
245
|
+
}, null, 8, ["columns", "data", "loading", "row-key", "checked-row-keys", "row-props", "row-class-name", "pagination"])
|
|
246
|
+
])
|
|
247
|
+
]),
|
|
248
|
+
_: 1
|
|
249
|
+
}, 8, ["show", "title", "style"])
|
|
250
|
+
], 64));
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
export {
|
|
254
|
+
pe as default
|
|
255
|
+
};
|
|
256
|
+
//# sourceMappingURL=index2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.vue.js","sources":["../../../src/components/SelectTable/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, ref, watch } from 'vue'\nimport {\n NButton,\n NDataTable,\n NInput,\n NModal,\n NSpace,\n useMessage,\n type DataTableColumns,\n type PaginationProps,\n} from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport AppIcon from '#/components/AppIcon.vue'\nimport { translateError } from '#/utils/error'\n\ntype RowKey = string | number\ntype SelectTableRow = any\ntype PageResult = { items: SelectTableRow[]; total: number }\n\ninterface SelectTableSearchField {\n key: string\n label: string\n placeholder?: string\n}\n\nconst value = defineModel<any | null>('value', { default: null })\nconst selected = defineModel<SelectTableRow | null>('selected', { default: null })\nconst values = defineModel<RowKey[]>('values', { default: () => [] })\nconst selecteds = defineModel<SelectTableRow[]>('selecteds', { default: () => [] })\nconst emit = defineEmits<{ confirm: [] }>()\n\nconst props = withDefaults(\n defineProps<{\n title: string\n placeholder?: string\n disabled?: boolean\n columns: DataTableColumns<SelectTableRow>\n searchFields?: SelectTableSearchField[]\n keywordSearch?: boolean\n keywordSearchPlaceholder?: string\n keywordParam?: string\n fetcher: (\n params: { page: number; pageSize: number } & Record<string, unknown>,\n ) => Promise<PageResult>\n rowKey: (row: SelectTableRow) => RowKey\n label: (row: SelectTableRow) => string\n multiple?: boolean\n displaySelected?: boolean\n triggerVisible?: boolean\n width?: number\n pageSize?: number\n /** false = 不分页:一次取 unpagedSize 条,表体内滚动。数据量小的档案(岗位、字典项…)这样翻找更快 */\n paginated?: boolean\n /** 不分页时单次拉取的上限,超过它的数据仍需靠查询框收窄 */\n unpagedSize?: number\n }>(),\n {\n placeholder: '',\n disabled: false,\n searchFields: () => [],\n keywordSearch: false,\n keywordSearchPlaceholder: '',\n keywordParam: 'keyword',\n width: 860,\n pageSize: 10,\n multiple: false,\n displaySelected: true,\n triggerVisible: true,\n paginated: true,\n unpagedSize: 200,\n },\n)\n\nconst { t } = useI18n()\nconst message = useMessage()\nconst show = ref(false)\nconst loading = ref(false)\nconst rows = ref<SelectTableRow[]>([])\nconst selectedKey = ref<RowKey | null>(null)\nconst query = reactive<Record<string, string>>({})\nconst keyword = ref('')\n\nconst displayText = computed(() =>\n props.multiple\n ? props.displaySelected\n ? selecteds.value.map(row => props.label(row)).join(', ')\n : ''\n : selected.value\n ? props.label(selected.value)\n : '',\n)\nconst currentRow = computed(\n () => rows.value.find(row => props.rowKey(row) === selectedKey.value) ?? null,\n)\nconst hasMultipleSelection = computed(() => values.value.length > 0)\n\nconst pagination = reactive<PaginationProps>({\n page: 1,\n pageSize: props.pageSize,\n itemCount: 0,\n showSizePicker: true,\n pageSizes: [10, 20, 50],\n onChange: page => {\n pagination.page = page\n void load()\n },\n onUpdatePageSize: pageSize => {\n pagination.pageSize = pageSize\n pagination.page = 1\n void load()\n },\n})\n\nwatch(\n () => props.searchFields,\n fields => {\n fields.forEach(field => {\n if (query[field.key] == null) query[field.key] = ''\n })\n },\n { immediate: true },\n)\n\nwatch(selected, next => {\n if (next) value.value = props.rowKey(next)\n})\n\nasync function load() {\n loading.value = true\n try {\n const filters = props.keywordSearch\n ? keyword.value.trim()\n ? { [props.keywordParam]: keyword.value.trim() }\n : {}\n : Object.fromEntries(\n props.searchFields\n .map(field => [field.key, query[field.key]?.trim()])\n .filter((entry): entry is [string, string] => Boolean(entry[1])),\n )\n const page = await props.fetcher({\n page: props.paginated ? (pagination.page ?? 1) : 1,\n pageSize: props.paginated ? (pagination.pageSize ?? props.pageSize) : props.unpagedSize,\n ...filters,\n })\n rows.value = page.items\n pagination.itemCount = page.total\n if (!rows.value.some(row => props.rowKey(row) === selectedKey.value))\n selectedKey.value = value.value\n } catch (e) {\n message.error(translateError(e))\n } finally {\n loading.value = false\n }\n}\n\nfunction open() {\n if (props.disabled) return\n selectedKey.value = value.value\n show.value = true\n void load()\n}\n\ndefineExpose({ open })\n\nfunction search() {\n pagination.page = 1\n void load()\n}\n\nfunction reset() {\n if (props.keywordSearch) {\n keyword.value = ''\n search()\n return\n }\n props.searchFields.forEach(field => {\n query[field.key] = ''\n })\n search()\n}\n\nfunction updateCheckedKeys(keys: RowKey[]) {\n values.value = keys\n}\n\nfunction confirm(row = currentRow.value) {\n if (props.multiple) {\n const currentRows = new Map(rows.value.map(item => [props.rowKey(item), item]))\n const preservedRows = selecteds.value.filter(\n item => values.value.includes(props.rowKey(item)) && !currentRows.has(props.rowKey(item)),\n )\n const pickedRows = values.value.map(key => currentRows.get(key)).filter(Boolean)\n selecteds.value = [...preservedRows, ...pickedRows]\n emit('confirm')\n show.value = false\n return\n }\n if (!row) return\n value.value = props.rowKey(row)\n selected.value = row\n emit('confirm')\n show.value = false\n}\n\nfunction clear() {\n if (props.multiple) {\n values.value = []\n selecteds.value = []\n } else {\n value.value = null\n selected.value = null\n }\n}\n</script>\n\n<template>\n <n-input\n v-if=\"triggerVisible\"\n :value=\"displayText\"\n :placeholder=\"placeholder || title\"\n :disabled=\"disabled\"\n readonly\n clearable\n @click=\"open\"\n @clear=\"clear\"\n >\n <template #suffix>\n <AppIcon icon=\"ph:magnifying-glass\" :size=\"16\" />\n </template>\n </n-input>\n\n <n-modal\n v-model:show=\"show\"\n preset=\"card\"\n :title=\"title\"\n :style=\"{ width: `${width}px` }\"\n :mask-closable=\"false\"\n >\n <div class=\"select-table\">\n <!-- 用普通 flex 容器而不是 n-space:查询框要吃掉整行剩余宽度(占位文案可能很长),\n n-space 会把每个子项包一层内容宽度的 div,撑不开。 -->\n <div v-if=\"keywordSearch || searchFields.length\" class=\"select-table-search\">\n <n-input\n v-if=\"keywordSearch\"\n v-model:value=\"keyword\"\n class=\"keyword-input\"\n clearable\n :placeholder=\"keywordSearchPlaceholder || t('common.search')\"\n @keyup.enter=\"search\"\n />\n <template v-else>\n <n-input\n v-for=\"field in searchFields\"\n :key=\"field.key\"\n v-model:value=\"query[field.key]\"\n clearable\n :placeholder=\"field.placeholder || field.label\"\n @keyup.enter=\"search\"\n />\n </template>\n <n-button type=\"primary\" @click=\"search\">\n <template #icon><AppIcon icon=\"ph:magnifying-glass\" :size=\"16\" /></template>\n {{ t('common.search') }}\n </n-button>\n <n-button @click=\"reset\">\n <template #icon><AppIcon icon=\"ph:arrow-counter-clockwise\" :size=\"16\" /></template>\n {{ t('common.reset') }}\n </n-button>\n </div>\n\n <n-data-table\n class=\"select-table-grid\"\n :columns=\"columns\"\n :data=\"rows\"\n :loading=\"loading\"\n :row-key=\"rowKey\"\n :checked-row-keys=\"props.multiple ? values : undefined\"\n @update:checked-row-keys=\"\n keys => {\n if (props.multiple) updateCheckedKeys(keys as RowKey[])\n }\n \"\n :row-props=\"\n (row: SelectTableRow) => ({\n style: 'cursor: pointer',\n onClick: () => {\n if (!props.multiple) selectedKey = rowKey(row)\n },\n onDblclick: () => {\n if (props.multiple && !values.includes(rowKey(row))) values = [...values, rowKey(row)]\n confirm(row)\n },\n })\n \"\n :row-class-name=\"\n (row: SelectTableRow) => (rowKey(row) === selectedKey ? 'select-table-row-selected' : '')\n \"\n :pagination=\"paginated ? pagination : false\"\n :max-height=\"430\"\n size=\"small\"\n remote\n />\n </div>\n\n <template #footer>\n <n-space justify=\"end\">\n <n-button @click=\"show = false\">{{ t('common.cancel') }}</n-button>\n <n-button\n type=\"primary\"\n :disabled=\"props.multiple ? !hasMultipleSelection : !currentRow\"\n @click=\"confirm()\"\n >\n {{ t('common.confirm') }}\n </n-button>\n </n-space>\n </template>\n </n-modal>\n</template>\n\n<style scoped>\n.select-table {\n height: 520px;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.select-table-search {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n}\n/* 多字段模式:每个框放得下「编号」这类字段名占位 */\n.select-table-search :deep(.n-input) {\n flex: 0 1 200px;\n}\n/* 单框模糊查询:占位文案是「请输入编号或名称」这种整句,英文更长,\n 所以让它吃掉整行剩余宽度,而不是写死一个迟早不够用的像素值。 */\n.select-table-search .keyword-input {\n flex: 1 1 320px;\n min-width: 260px;\n}\n.select-table-search :deep(.n-button) {\n flex: none;\n}\n.select-table-grid {\n flex: 1;\n min-height: 0;\n}\n:deep(.select-table-row-selected td) {\n background-color: var(--table-selected-bg);\n}\n</style>\n"],"names":["value","_useModel","__props","selected","values","selecteds","emit","__emit","props","t","useI18n","message","useMessage","show","ref","loading","rows","selectedKey","query","reactive","keyword","displayText","computed","row","currentRow","hasMultipleSelection","pagination","page","load","pageSize","watch","fields","field","next","filters","_a","entry","e","translateError","open","__expose","search","reset","updateCheckedKeys","keys","confirm","currentRows","item","preservedRows","pickedRows","key","clear","_createBlock","_unref","NInput","_createVNode","AppIcon","NModal","$event","NSpace","NButton","_createElementVNode","_hoisted_1","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","_createTextVNode","NDataTable","_cache"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
size?: number;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
5
|
+
size: number;
|
|
6
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartLogo.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { defineComponent as y, computed as o, openBlock as s, createElementBlock as n, unref as f, normalizeStyle as h, createBlock as k, resolveDynamicComponent as x, createStaticVNode as u, createElementVNode as e, createCommentVNode as _ } from "vue";
|
|
2
|
+
import { useAppStore as F } from "../stores/app.js";
|
|
3
|
+
import { useSite as E } from "../composables/useSite.js";
|
|
4
|
+
import { runtime as w } from "../lib/runtime.js";
|
|
5
|
+
const D = ["src", "alt"], z = ["width", "height"], L = ["fill"], S = {
|
|
6
|
+
key: 0,
|
|
7
|
+
width: "120",
|
|
8
|
+
height: "120",
|
|
9
|
+
rx: "27",
|
|
10
|
+
fill: "url(#sa-logo-glow)"
|
|
11
|
+
}, C = ["stroke"], G = ["stroke"], M = ["fill"], b = ["fill"], j = /* @__PURE__ */ y({
|
|
12
|
+
__name: "SmartLogo",
|
|
13
|
+
props: {
|
|
14
|
+
size: { default: 28 }
|
|
15
|
+
},
|
|
16
|
+
setup(g) {
|
|
17
|
+
const a = g, l = F(), { site: c } = E(), t = w.brand.logo, d = o(() => c.logo || (typeof t == "string" ? t : "")), p = o(
|
|
18
|
+
() => !c.logo && t && typeof t != "string" ? t : null
|
|
19
|
+
), m = o(() => l.isDark ? "#0F1222" : "url(#sa-logo-tile)"), i = o(() => l.isDark ? "url(#sa-logo-mark)" : "#FFFFFF"), v = o(() => l.isDark ? "#22D3EE" : "#A5F3FC");
|
|
20
|
+
return (B, r) => d.value ? (s(), n("img", {
|
|
21
|
+
key: 0,
|
|
22
|
+
src: d.value,
|
|
23
|
+
style: h({ height: `${a.size}px` }),
|
|
24
|
+
alt: f(c).title,
|
|
25
|
+
class: "site-logo"
|
|
26
|
+
}, null, 12, D)) : p.value ? (s(), k(x(p.value), {
|
|
27
|
+
key: 1,
|
|
28
|
+
size: a.size
|
|
29
|
+
}, null, 8, ["size"])) : (s(), n("svg", {
|
|
30
|
+
key: 2,
|
|
31
|
+
width: a.size,
|
|
32
|
+
height: a.size,
|
|
33
|
+
viewBox: "0 0 120 120",
|
|
34
|
+
role: "img",
|
|
35
|
+
"aria-label": "SmartAdmin"
|
|
36
|
+
}, [
|
|
37
|
+
r[1] || (r[1] = u('<defs data-v-88ac0194><linearGradient id="sa-logo-tile" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="120" y2="120" data-v-88ac0194><stop offset="0" stop-color="#7C83FF" data-v-88ac0194></stop><stop offset="1" stop-color="#4B52E6" data-v-88ac0194></stop></linearGradient><linearGradient id="sa-logo-mark" x1="0" y1="0" x2="1" y2="1" data-v-88ac0194><stop offset="0" stop-color="#646CFF" data-v-88ac0194></stop><stop offset="1" stop-color="#22D3EE" data-v-88ac0194></stop></linearGradient><radialGradient id="sa-logo-glow" cx="0.5" cy="0.45" r="0.55" data-v-88ac0194><stop offset="0" stop-color="#22D3EE" stop-opacity="0.26" data-v-88ac0194></stop><stop offset="1" stop-color="#22D3EE" stop-opacity="0" data-v-88ac0194></stop></radialGradient></defs>', 1)),
|
|
38
|
+
e("rect", {
|
|
39
|
+
width: "120",
|
|
40
|
+
height: "120",
|
|
41
|
+
rx: "27",
|
|
42
|
+
fill: m.value
|
|
43
|
+
}, null, 8, L),
|
|
44
|
+
f(l).isDark ? (s(), n("rect", S)) : _("", !0),
|
|
45
|
+
e("polygon", {
|
|
46
|
+
points: "60,20 94.6,40 94.6,80 60,100 25.4,80 25.4,40",
|
|
47
|
+
fill: "none",
|
|
48
|
+
stroke: i.value,
|
|
49
|
+
"stroke-width": "11",
|
|
50
|
+
"stroke-linejoin": "round"
|
|
51
|
+
}, null, 8, C),
|
|
52
|
+
e("path", {
|
|
53
|
+
d: "M60 60L60 39M60 60L78.2 49.5M60 60L78.2 70.5M60 60L60 81M60 60L41.8 70.5M60 60L41.8 49.5",
|
|
54
|
+
fill: "none",
|
|
55
|
+
stroke: i.value,
|
|
56
|
+
"stroke-width": "3.5",
|
|
57
|
+
"stroke-linecap": "round"
|
|
58
|
+
}, null, 8, G),
|
|
59
|
+
e("g", { fill: i.value }, [...r[0] || (r[0] = [
|
|
60
|
+
u('<circle cx="60" cy="39" r="5" data-v-88ac0194></circle><circle cx="78.2" cy="49.5" r="5" data-v-88ac0194></circle><circle cx="78.2" cy="70.5" r="5" data-v-88ac0194></circle><circle cx="60" cy="81" r="5" data-v-88ac0194></circle><circle cx="41.8" cy="70.5" r="5" data-v-88ac0194></circle><circle cx="41.8" cy="49.5" r="5" data-v-88ac0194></circle>', 6)
|
|
61
|
+
])], 8, M),
|
|
62
|
+
e("circle", {
|
|
63
|
+
cx: "60",
|
|
64
|
+
cy: "60",
|
|
65
|
+
r: "8.5",
|
|
66
|
+
fill: v.value
|
|
67
|
+
}, null, 8, b)
|
|
68
|
+
], 8, z));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
export {
|
|
72
|
+
j as default
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=SmartLogo2.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartLogo2.vue.js","sources":["../../src/components/SmartLogo.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 站点徽标,侧栏/顶栏/登录页/应用选择页共用,品牌只在这一处生效。取值顺序:\n// 1) 后台「站点 logo」配置(sys.site.logo)有图片地址 → <img>;\n// 2) createSmartAdmin({ brand: { logo } }) 传的组件或图片地址(sys.site.logo 为空时使用);\n// 3) 内置 SmartAdmin 矢量标(Neural Hex:装甲六边形壳 + 7 节点神经网络,中心点亮)。内联 SVG、固定品牌配色\n// (不随 accent 变——品牌身份固定 #646CFF);明暗两版切换,与模板 public/smart-logo.svg、smart-logo-dark.svg 是同一几何,改图形要三处同步。\nimport { computed } from 'vue'\nimport { useAppStore } from '#/stores/app'\nimport { useSite } from '#/composables/useSite'\nimport { runtime } from '#/lib/runtime'\n\nconst props = withDefaults(defineProps<{ size?: number }>(), { size: 28 })\nconst app = useAppStore()\nconst { site } = useSite()\n\nconst brandLogo = runtime.brand.logo\nconst imgSrc = computed(() => site.logo || (typeof brandLogo === 'string' ? brandLogo : ''))\nconst brandComponent = computed(() =>\n !site.logo && brandLogo && typeof brandLogo !== 'string' ? brandLogo : null,\n)\n\n// 浅色:靛蓝渐变底 + 白色图形 + 浅青核心;深色:近黑底(带青色微光)+ 靛蓝→青渐变图形 + 青色核心\nconst bg = computed(() => (app.isDark ? '#0F1222' : 'url(#sa-logo-tile)'))\nconst stroke = computed(() => (app.isDark ? 'url(#sa-logo-mark)' : '#FFFFFF'))\nconst core = computed(() => (app.isDark ? '#22D3EE' : '#A5F3FC'))\n</script>\n\n<template>\n <!-- 配置的 logo 可能是横版:定高、宽度随比例,容器窄时被 max-width 收住 -->\n <img\n v-if=\"imgSrc\"\n :src=\"imgSrc\"\n :style=\"{ height: `${props.size}px` }\"\n :alt=\"site.title\"\n class=\"site-logo\"\n />\n <component :is=\"brandComponent\" v-else-if=\"brandComponent\" :size=\"props.size\" />\n <svg\n v-else\n :width=\"props.size\"\n :height=\"props.size\"\n viewBox=\"0 0 120 120\"\n role=\"img\"\n aria-label=\"SmartAdmin\"\n >\n <defs>\n <linearGradient\n id=\"sa-logo-tile\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"0\"\n y1=\"0\"\n x2=\"120\"\n y2=\"120\"\n >\n <stop offset=\"0\" stop-color=\"#7C83FF\" />\n <stop offset=\"1\" stop-color=\"#4B52E6\" />\n </linearGradient>\n <linearGradient id=\"sa-logo-mark\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0\" stop-color=\"#646CFF\" />\n <stop offset=\"1\" stop-color=\"#22D3EE\" />\n </linearGradient>\n <radialGradient id=\"sa-logo-glow\" cx=\"0.5\" cy=\"0.45\" r=\"0.55\">\n <stop offset=\"0\" stop-color=\"#22D3EE\" stop-opacity=\"0.26\" />\n <stop offset=\"1\" stop-color=\"#22D3EE\" stop-opacity=\"0\" />\n </radialGradient>\n </defs>\n <rect width=\"120\" height=\"120\" rx=\"27\" :fill=\"bg\" />\n <rect v-if=\"app.isDark\" width=\"120\" height=\"120\" rx=\"27\" fill=\"url(#sa-logo-glow)\" />\n <polygon\n points=\"60,20 94.6,40 94.6,80 60,100 25.4,80 25.4,40\"\n fill=\"none\"\n :stroke=\"stroke\"\n stroke-width=\"11\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M60 60L60 39M60 60L78.2 49.5M60 60L78.2 70.5M60 60L60 81M60 60L41.8 70.5M60 60L41.8 49.5\"\n fill=\"none\"\n :stroke=\"stroke\"\n stroke-width=\"3.5\"\n stroke-linecap=\"round\"\n />\n <g :fill=\"stroke\">\n <circle cx=\"60\" cy=\"39\" r=\"5\" />\n <circle cx=\"78.2\" cy=\"49.5\" r=\"5\" />\n <circle cx=\"78.2\" cy=\"70.5\" r=\"5\" />\n <circle cx=\"60\" cy=\"81\" r=\"5\" />\n <circle cx=\"41.8\" cy=\"70.5\" r=\"5\" />\n <circle cx=\"41.8\" cy=\"49.5\" r=\"5\" />\n </g>\n <circle cx=\"60\" cy=\"60\" r=\"8.5\" :fill=\"core\" />\n </svg>\n</template>\n\n<style scoped>\n.site-logo {\n display: block;\n width: auto;\n max-width: 100%;\n object-fit: contain;\n}\n</style>\n"],"names":["props","__props","app","useAppStore","site","useSite","brandLogo","runtime","imgSrc","computed","brandComponent","bg","stroke","core","_createElementBlock","_normalizeStyle","_unref","_openBlock","_createBlock","_resolveDynamicComponent","_createElementVNode","_hoisted_4","_cache"],"mappings":";;;;;;;;;;;;;;;;AAWA,UAAMA,IAAQC,GACRC,IAAMC,EAAA,GACN,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEXC,IAAYC,EAAQ,MAAM,MAC1BC,IAASC,EAAS,MAAML,EAAK,SAAS,OAAOE,KAAc,WAAWA,IAAY,GAAG,GACrFI,IAAiBD;AAAA,MAAS,MAC9B,CAACL,EAAK,QAAQE,KAAa,OAAOA,KAAc,WAAWA,IAAY;AAAA,IAAA,GAInEK,IAAKF,EAAS,MAAOP,EAAI,SAAS,YAAY,oBAAqB,GACnEU,IAASH,EAAS,MAAOP,EAAI,SAAS,uBAAuB,SAAU,GACvEW,IAAOJ,EAAS,MAAOP,EAAI,SAAS,YAAY,SAAU;qBAMtDM,EAAA,cADRM,EAME,OAAA;AAAA;MAJC,KAAKN,EAAA;AAAA,MACL,OAAKO,EAAA,EAAA,QAAA,GAAef,EAAM,IAAI,MAAA;AAAA,MAC9B,KAAKgB,EAAAZ,CAAA,EAAK;AAAA,MACX,OAAM;AAAA,IAAA,mBAEmCM,EAAA,SAA3CO,EAAA,GAAAC,EAAgFC,EAAhET,EAAA,KAAc,GAAA;AAAA;MAA8B,MAAMV,EAAM;AAAA,IAAA,+BACxEc,EAsDM,OAAA;AAAA;MApDH,OAAOd,EAAM;AAAA,MACb,QAAQA,EAAM;AAAA,MACf,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,cAAW;AAAA,IAAA;;MAuBXoB,EAAoD,QAAA;AAAA,QAA9C,OAAM;AAAA,QAAM,QAAO;AAAA,QAAM,IAAG;AAAA,QAAM,MAAMT,EAAA;AAAA,MAAA;MAClCK,EAAAd,CAAA,EAAI,UAAhBe,EAAA,GAAAH,EAAqF,QAArFO,CAAqF;MACrFD,EAME,WAAA;AAAA,QALA,QAAO;AAAA,QACP,MAAK;AAAA,QACJ,QAAQR,EAAA;AAAA,QACT,gBAAa;AAAA,QACb,mBAAgB;AAAA,MAAA;MAElBQ,EAME,QAAA;AAAA,QALA,GAAE;AAAA,QACF,MAAK;AAAA,QACJ,QAAQR,EAAA;AAAA,QACT,gBAAa;AAAA,QACb,kBAAe;AAAA,MAAA;MAEjBQ,EAOI,KAAA,EAPA,MAAMR,EAAA,MAAA,GAAM,CAAA,GAAAU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA;;MAQhBF,EAA+C,UAAA;AAAA,QAAvC,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAO,MAAMP,EAAA;AAAA,MAAA;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
value: boolean;
|
|
3
|
+
/** 更新请求;resolve 即成功 */
|
|
4
|
+
request: (next: boolean) => Promise<unknown>;
|
|
5
|
+
/** 提供则切换前先 dialog 二次确认;函数形态按目标态出文案,返回空值(null/'')则本次跳过确认 */
|
|
6
|
+
confirm?: string | ((next: boolean) => string | null | undefined);
|
|
7
|
+
/** 无权限等场景由业务置灰(行内比移除 DOM 更合适) */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
size?: 'small' | 'medium';
|
|
10
|
+
/** false = 成功不弹 toast */
|
|
11
|
+
successMsg?: string | false;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
14
|
+
"update:value": (v: boolean) => any;
|
|
15
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
+
"onUpdate:value"?: ((v: boolean) => any) | undefined;
|
|
17
|
+
}>, {
|
|
18
|
+
size: "small" | "medium";
|
|
19
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { defineComponent as f, ref as m, openBlock as d, createBlock as p, unref as v } from "vue";
|
|
2
|
+
import { useMessage as g, NSwitch as y } from "naive-ui";
|
|
3
|
+
import { useI18n as B } from "vue-i18n";
|
|
4
|
+
import { useConfirm as b } from "../../composables/useConfirm.js";
|
|
5
|
+
import { translateError as z } from "../../utils/error.js";
|
|
6
|
+
const C = /* @__PURE__ */ f({
|
|
7
|
+
__name: "index",
|
|
8
|
+
props: {
|
|
9
|
+
value: { type: Boolean },
|
|
10
|
+
request: {},
|
|
11
|
+
confirm: {},
|
|
12
|
+
disabled: { type: Boolean },
|
|
13
|
+
size: { default: "small" },
|
|
14
|
+
successMsg: { type: [String, Boolean] }
|
|
15
|
+
},
|
|
16
|
+
emits: ["update:value"],
|
|
17
|
+
setup(a, { emit: c }) {
|
|
18
|
+
const e = a, i = c, { t: r } = B(), { ask: l } = b(), n = g(), o = m(!1);
|
|
19
|
+
async function u(t) {
|
|
20
|
+
if (e.confirm) {
|
|
21
|
+
const s = typeof e.confirm == "function" ? e.confirm(t) : e.confirm;
|
|
22
|
+
if (s && !await l({ content: s })) return;
|
|
23
|
+
}
|
|
24
|
+
o.value = !0;
|
|
25
|
+
try {
|
|
26
|
+
await e.request(t), i("update:value", t), e.successMsg !== !1 && n.success(e.successMsg ?? r("common.success"));
|
|
27
|
+
} catch (s) {
|
|
28
|
+
n.error(z(s));
|
|
29
|
+
} finally {
|
|
30
|
+
o.value = !1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return (t, s) => (d(), p(v(y), {
|
|
34
|
+
value: a.value,
|
|
35
|
+
loading: o.value,
|
|
36
|
+
disabled: a.disabled || o.value,
|
|
37
|
+
size: a.size,
|
|
38
|
+
"onUpdate:value": u
|
|
39
|
+
}, null, 8, ["value", "loading", "disabled", "size"]));
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
export {
|
|
43
|
+
C as default
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=index.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":["../../../src/components/StatusSwitch/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 表格行内启停开关:悲观更新——点击不先翻转,请求成功才 emit;失败不 emit = UI 保持原值即回滚,\n// 没有「闪一下又弹回」的错误视觉;loading 期间 n-switch 自锁防连点。\n// 后端无独立启停端点 → request 由业务传全量 update(行数据转 Input 后改 enabled)。\nimport { ref } from 'vue'\nimport { NSwitch, useMessage } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { useConfirm } from '#/composables/useConfirm'\nimport { translateError } from '#/utils/error'\n\nconst props = withDefaults(\n defineProps<{\n value: boolean\n /** 更新请求;resolve 即成功 */\n request: (next: boolean) => Promise<unknown>\n /** 提供则切换前先 dialog 二次确认;函数形态按目标态出文案,返回空值(null/'')则本次跳过确认 */\n confirm?: string | ((next: boolean) => string | null | undefined)\n /** 无权限等场景由业务置灰(行内比移除 DOM 更合适) */\n disabled?: boolean\n size?: 'small' | 'medium'\n /** false = 成功不弹 toast */\n successMsg?: string | false\n }>(),\n { size: 'small' },\n)\nconst emit = defineEmits<{ (e: 'update:value', v: boolean): void }>()\n\nconst { t } = useI18n()\nconst { ask } = useConfirm() // h() 渲染进表格列也在 App.vue Provider 树内,inject 可用\nconst message = useMessage()\nconst loading = ref(false)\n\nasync function onUpdate(next: boolean) {\n if (props.confirm) {\n const content = typeof props.confirm === 'function' ? props.confirm(next) : props.confirm\n if (content && !(await ask({ content }))) return\n }\n loading.value = true\n try {\n await props.request(next)\n emit('update:value', next)\n if (props.successMsg !== false) message.success(props.successMsg ?? t('common.success'))\n } catch (e) {\n message.error(translateError(e)) // 不 emit → 值从未变过,零成本回滚\n } finally {\n loading.value = false\n }\n}\n</script>\n\n<template>\n <n-switch\n :value=\"value\"\n :loading=\"loading\"\n :disabled=\"disabled || loading\"\n :size=\"size\"\n @update:value=\"onUpdate\"\n />\n</template>\n"],"names":["props","__props","emit","__emit","t","useI18n","ask","useConfirm","message","useMessage","loading","ref","onUpdate","next","content","e","translateError","_createBlock","_unref","NSwitch"],"mappings":";;;;;;;;;;;;;;;;;AAUA,UAAMA,IAAQC,GAeRC,IAAOC,GAEP,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACR,EAAE,KAAAC,EAAA,IAAQC,EAAA,GACVC,IAAUC,EAAA,GACVC,IAAUC,EAAI,EAAK;AAEzB,mBAAeC,EAASC,GAAe;AACrC,UAAIb,EAAM,SAAS;AACjB,cAAMc,IAAU,OAAOd,EAAM,WAAY,aAAaA,EAAM,QAAQa,CAAI,IAAIb,EAAM;AAClF,YAAIc,KAAW,CAAE,MAAMR,EAAI,EAAE,SAAAQ,EAAA,CAAS,EAAI;AAAA,MAC5C;AACA,MAAAJ,EAAQ,QAAQ;AAChB,UAAI;AACF,cAAMV,EAAM,QAAQa,CAAI,GACxBX,EAAK,gBAAgBW,CAAI,GACrBb,EAAM,eAAe,MAAOQ,EAAQ,QAAQR,EAAM,cAAcI,EAAE,gBAAgB,CAAC;AAAA,MACzF,SAASW,GAAG;AACV,QAAAP,EAAQ,MAAMQ,EAAeD,CAAC,CAAC;AAAA,MACjC,UAAA;AACE,QAAAL,EAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;2BAIEO,EAMEC,EAAAC,CAAA,GAAA;AAAA,MALC,OAAOlB,EAAA;AAAA,MACP,SAASS,EAAA;AAAA,MACT,UAAUT,EAAA,YAAYS,EAAA;AAAA,MACtB,MAAMT,EAAA;AAAA,MACN,kBAAcW;AAAA,IAAA;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
zoomed: boolean;
|
|
3
|
+
size?: 'tiny' | 'small' | 'medium' | 'large';
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
6
|
+
toggle: () => any;
|
|
7
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onToggle?: (() => any) | undefined;
|
|
9
|
+
}>, {
|
|
10
|
+
size: "tiny" | "small" | "medium" | "large";
|
|
11
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { defineComponent as a, openBlock as m, createBlock as c, unref as e, withCtx as i, createTextVNode as u, toDisplayString as d, createVNode as r } from "vue";
|
|
2
|
+
import { NTooltip as s, NButton as z } from "naive-ui";
|
|
3
|
+
import { useI18n as f } from "vue-i18n";
|
|
4
|
+
import p from "../AppIcon.vue.js";
|
|
5
|
+
const N = /* @__PURE__ */ a({
|
|
6
|
+
__name: "index",
|
|
7
|
+
props: {
|
|
8
|
+
zoomed: { type: Boolean },
|
|
9
|
+
size: { default: "small" }
|
|
10
|
+
},
|
|
11
|
+
emits: ["toggle"],
|
|
12
|
+
setup(o) {
|
|
13
|
+
const { t } = f();
|
|
14
|
+
return (l, n) => (m(), c(e(s), null, {
|
|
15
|
+
trigger: i(() => [
|
|
16
|
+
r(e(z), {
|
|
17
|
+
size: o.size,
|
|
18
|
+
circle: "",
|
|
19
|
+
quaternary: "",
|
|
20
|
+
type: o.zoomed ? "primary" : "default",
|
|
21
|
+
"aria-label": o.zoomed ? e(t)("table.zoomExit") : e(t)("table.zoom"),
|
|
22
|
+
onClick: n[0] || (n[0] = (g) => l.$emit("toggle"))
|
|
23
|
+
}, {
|
|
24
|
+
icon: i(() => [
|
|
25
|
+
r(p, {
|
|
26
|
+
icon: o.zoomed ? "ph:corners-in" : "ph:corners-out"
|
|
27
|
+
}, null, 8, ["icon"])
|
|
28
|
+
]),
|
|
29
|
+
_: 1
|
|
30
|
+
}, 8, ["size", "type", "aria-label"])
|
|
31
|
+
]),
|
|
32
|
+
default: i(() => [
|
|
33
|
+
u(" " + d(o.zoomed ? e(t)("table.zoomExit") : e(t)("table.zoom")), 1)
|
|
34
|
+
]),
|
|
35
|
+
_: 1
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
export {
|
|
40
|
+
N as default
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=index.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":["../../../src/components/TableZoomButton/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 表格「放大 / 还原」按钮。与 SmartTable 工具栏自带的刷新 / 密度 / 列设置同形态(circle quaternary + tooltip),\n// 放大态换收起图标并染主色 —— 不要写成带文字的 secondary 按钮,那在工具栏里一眼就是外来户。\n//\n// 状态由调用方的 useTableZoom() 持有(一块表一份实例),这里只负责外观与触发。\n// 按钮必须和表格一起进 Teleport 容器:留在 n-card 的 #header-extra 里,放大后会被遮罩盖住,\n// 还原按钮点不到,只能按 Esc。用法见 skills/create-page-variant.md 变体五。\nimport { NButton, NTooltip } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport AppIcon from '#/components/AppIcon.vue'\n\nwithDefaults(defineProps<{ zoomed: boolean; size?: 'tiny' | 'small' | 'medium' | 'large' }>(), {\n size: 'small',\n})\ndefineEmits<{ toggle: [] }>()\n\nconst { t } = useI18n()\n</script>\n\n<template>\n <n-tooltip>\n <template #trigger>\n <n-button\n :size=\"size\"\n circle\n quaternary\n :type=\"zoomed ? 'primary' : 'default'\"\n :aria-label=\"zoomed ? t('table.zoomExit') : t('table.zoom')\"\n @click=\"$emit('toggle')\"\n >\n <template #icon>\n <AppIcon :icon=\"zoomed ? 'ph:corners-in' : 'ph:corners-out'\" />\n </template>\n </n-button>\n </template>\n {{ zoomed ? t('table.zoomExit') : t('table.zoom') }}\n </n-tooltip>\n</template>\n"],"names":["useI18n","_createBlock","_unref","NTooltip","_createVNode","NButton","__props","$emit","AppIcon","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;AAgBA,UAAM,EAAE,EAAA,IAAMA,EAAA;2BAIZC,EAgBYC,EAAAC,CAAA,GAAA,MAAA;AAAA,MAfC,WACT,MAWW;AAAA,QAXXC,EAWWF,EAAAG,CAAA,GAAA;AAAA,UAVR,MAAMC,EAAA;AAAA,UACP,QAAA;AAAA,UACA,YAAA;AAAA,UACC,MAAMA,EAAA,SAAM,YAAA;AAAA,UACZ,cAAYA,EAAA,SAASJ,EAAA,CAAA,sBAAsBA,EAAA,CAAA,EAAC,YAAA;AAAA,UAC5C,gCAAOK,EAAAA,MAAK,QAAA;AAAA,QAAA;UAEF,QACT,MAA+D;AAAA,YAA/DH,EAA+DI,GAAA;AAAA,cAArD,MAAMF,EAAA,SAAM,kBAAA;AAAA,YAAA;;;;;iBAGjB,MACX;AAAA,QADWG,EAAA,MACXC,EAAGJ,EAAA,SAASJ,EAAA,CAAA,sBAAsBA,EAAA,CAAA,EAAC,YAAA,CAAA,GAAA,CAAA;AAAA,MAAA;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
excludeIds?: number[];
|
|
3
|
+
};
|
|
4
|
+
declare function open(ids?: number[]): Promise<void>;
|
|
5
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {
|
|
6
|
+
open: typeof open;
|
|
7
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
8
|
+
confirm: (ids: number[]) => any;
|
|
9
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
+
onConfirm?: ((ids: number[]) => any) | undefined;
|
|
11
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|