@done-coding/admin-core 0.8.3-alpha.0 → 0.9.1-alpha.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.
Files changed (127) hide show
  1. package/docs/nested-config-paradigm.md +80 -0
  2. package/es/bridge/config-hook.mjs +37 -0
  3. package/es/bridge/index.mjs +157 -62
  4. package/es/bridge/plugin.mjs +29 -0
  5. package/es/bridge/theme.mjs +65 -0
  6. package/es/components/app-layout/AppBody.vue.mjs +1 -1
  7. package/es/components/app-layout/AppBody.vue2.mjs +47 -49
  8. package/es/components/app-layout/AppBreadcrumb.vue.mjs +1 -1
  9. package/es/components/app-layout/AppBreadcrumb.vue2.mjs +35 -41
  10. package/es/components/app-layout/AppFooter.vue.mjs +2 -2
  11. package/es/components/app-layout/AppFooter.vue2.mjs +8 -8
  12. package/es/components/app-layout/AppHeader.vue.mjs +1 -1
  13. package/es/components/app-layout/AppHeader.vue2.mjs +60 -69
  14. package/es/components/app-layout/AppLayout.vue.mjs +2 -2
  15. package/es/components/app-layout/AppLayout.vue2.mjs +95 -93
  16. package/es/components/app-layout/AppSidebar.vue.mjs +2 -2
  17. package/es/components/app-layout/AppSidebar.vue2.mjs +79 -82
  18. package/es/components/app-layout/AppTheme.vue.mjs +7 -0
  19. package/es/components/app-layout/AppTheme.vue2.mjs +38 -0
  20. package/es/components/data-view/DataListView.vue.mjs +2 -2
  21. package/es/components/data-view/DataListView.vue2.mjs +36 -36
  22. package/es/components/display/ActionConfirm.vue2.mjs +16 -16
  23. package/es/components/display/HeightProvider.vue.mjs +10 -10
  24. package/es/components/display/TabsHeader.vue.mjs +4 -4
  25. package/es/components/display/TabsHeader.vue2.mjs +34 -34
  26. package/es/components/display/TabsMain.vue.mjs +40 -39
  27. package/es/components/display/TabsRefineFlow.vue.mjs +30 -28
  28. package/es/components/form/FormItem.vue.mjs +1 -1
  29. package/es/components/form/FormItem.vue2.mjs +75 -81
  30. package/es/components/form/FormItemNestForm.vue.mjs +7 -0
  31. package/es/components/form/FormItemNestForm.vue2.mjs +49 -0
  32. package/es/components/form/FormItemNestFormList.vue.mjs +7 -0
  33. package/es/components/form/FormItemNestFormList.vue2.mjs +137 -0
  34. package/es/components/form/FormMain.vue.mjs +5 -147
  35. package/es/components/form/FormMain.vue2.mjs +160 -2
  36. package/es/components/form/FormRadioGroup.vue.mjs +42 -49
  37. package/es/components/form/FormSearch.vue.mjs +2 -2
  38. package/es/components/form/FormSearch.vue2.mjs +122 -128
  39. package/es/components/form/FormSelect.vue.mjs +34 -40
  40. package/es/components/form/FormSubmitBtn.vue.mjs +23 -28
  41. package/es/components/form/FormSubmitPanel.vue.mjs +2 -2
  42. package/es/components/form/FormSubmitPanel.vue2.mjs +29 -28
  43. package/es/components/form/FormTree.vue.mjs +16 -21
  44. package/es/components/form/FormVerifyCode.vue.mjs +37 -43
  45. package/es/components/form/FormVerifyImage.vue.mjs +2 -2
  46. package/es/components/form/FormVerifyImage.vue2.mjs +36 -41
  47. package/es/components/form/nest-form-item-list.mjs +71 -0
  48. package/es/components/form/nest-form-item.mjs +42 -0
  49. package/es/components/form/nest-registry.mjs +7 -0
  50. package/es/components/form/use-nest-form-list.mjs +22 -0
  51. package/es/components/form/use-nest-form.mjs +34 -0
  52. package/es/components/form/use-nest-layout-scale.mjs +14 -0
  53. package/es/components/form/utils.mjs +77 -61
  54. package/es/components/list-page/ListPage.vue.mjs +2 -2
  55. package/es/components/list-page/ListPage.vue2.mjs +134 -139
  56. package/es/components/menu/MenuItemSub.vue.mjs +41 -48
  57. package/es/components/menu/MenuTree.vue.mjs +58 -65
  58. package/es/components/misc/AutoRefresh.vue.mjs +2 -2
  59. package/es/components/misc/AutoRefresh.vue2.mjs +44 -51
  60. package/es/components/misc/AutoRefreshGroup.vue.mjs +2 -2
  61. package/es/components/misc/AutoRefreshGroup.vue2.mjs +37 -43
  62. package/es/components/modal/ConfirmModal.vue.mjs +3 -4
  63. package/es/components/modal/ConfirmModal.vue2.mjs +83 -111
  64. package/es/components/modal/DetailModal.vue.mjs +38 -41
  65. package/es/components/panel/PanelEditSwitch.vue.mjs +1 -1
  66. package/es/components/panel/PanelEditSwitch.vue2.mjs +50 -55
  67. package/es/components/panel/PanelItemNestForm.vue.mjs +7 -0
  68. package/es/components/panel/PanelItemNestForm.vue2.mjs +69 -0
  69. package/es/components/panel/PanelItemNestPanel.vue.mjs +34 -0
  70. package/es/components/panel/PanelItemNestPanel.vue2.mjs +4 -0
  71. package/es/components/panel/PanelMain.vue.mjs +1 -1
  72. package/es/components/panel/PanelMain.vue2.mjs +72 -72
  73. package/es/components/panel/nest-panel-form.mjs +53 -0
  74. package/es/components/panel/nest-panel-item.mjs +25 -0
  75. package/es/components/table/TableMain.vue.mjs +2 -2
  76. package/es/components/table/TableMain.vue2.mjs +221 -229
  77. package/es/components/table/TableToolbar.vue.mjs +2 -2
  78. package/es/components/table/TableToolbar.vue2.mjs +115 -126
  79. package/es/hooks/use-admin-theme-apply.mjs +84 -0
  80. package/es/hooks/use-admin-viewport-apply.mjs +27 -0
  81. package/es/index.mjs +190 -153
  82. package/es/inject/key.mjs +15 -6
  83. package/es/store/app.mjs +75 -84
  84. package/es/style.css +1 -1
  85. package/es/utils/theme-scale.mjs +37 -0
  86. package/package.json +2 -4
  87. package/types/bridge/config-hook.d.ts +91 -0
  88. package/types/bridge/index.d.ts +108 -8
  89. package/types/bridge/plugin.d.ts +39 -0
  90. package/types/bridge/theme.d.ts +85 -0
  91. package/types/components/app-layout/AppTheme.vue.d.ts +2 -0
  92. package/types/components/app-layout/types.d.ts +1 -1
  93. package/types/components/form/FormItem.vue.d.ts +12 -12
  94. package/types/components/form/FormItemNestForm.vue.d.ts +36 -0
  95. package/types/components/form/FormItemNestFormList.vue.d.ts +63 -0
  96. package/types/components/form/FormMain.vue.d.ts +2 -2
  97. package/types/components/form/FormSearch.vue.d.ts +2 -2
  98. package/types/components/form/FormTree.vue.d.ts +50 -50
  99. package/types/components/form/index.d.ts +9 -1
  100. package/types/components/form/nest-form-item-list.d.ts +63 -0
  101. package/types/components/form/nest-form-item.d.ts +36 -0
  102. package/types/components/form/nest-registry.d.ts +22 -0
  103. package/types/components/form/types.d.ts +2 -0
  104. package/types/components/form/use-nest-form-list.d.ts +20 -0
  105. package/types/components/form/use-nest-form.d.ts +26 -0
  106. package/types/components/form/use-nest-layout-scale.d.ts +17 -0
  107. package/types/components/form/utils.d.ts +26 -1
  108. package/types/components/menu/MenuTree.vue.d.ts +10 -10
  109. package/types/components/modal/ModalShelf.vue.d.ts +1 -1
  110. package/types/components/panel/PanelItemNestForm.vue.d.ts +35 -0
  111. package/types/components/panel/PanelItemNestPanel.vue.d.ts +22 -0
  112. package/types/components/panel/index.d.ts +5 -1
  113. package/types/components/panel/nest-panel-form.d.ts +38 -0
  114. package/types/components/panel/nest-panel-item.d.ts +28 -0
  115. package/types/components/panel/types.d.ts +2 -0
  116. package/types/components/table/TableMain.vue.d.ts +3 -3
  117. package/types/hooks/activated.d.ts +2 -2
  118. package/types/hooks/feel-size.d.ts +1 -1
  119. package/types/hooks/index.d.ts +2 -0
  120. package/types/hooks/menus-dispatch.d.ts +5 -5
  121. package/types/hooks/use-admin-theme-apply.d.ts +17 -0
  122. package/types/hooks/use-admin-viewport-apply.d.ts +15 -0
  123. package/types/hooks/use-breakpoint.d.ts +1 -1
  124. package/types/inject/key.d.ts +46 -1
  125. package/types/store/app.d.ts +138 -59
  126. package/types/utils/index.d.ts +1 -0
  127. package/types/utils/theme-scale.d.ts +35 -0
package/es/index.mjs CHANGED
@@ -1,160 +1,197 @@
1
- import { createAdminBridge as r } from "./bridge/index.mjs";
1
+ import { createAdminBridge as t } from "./bridge/index.mjs";
2
2
  import { default as a } from "./components/display/ActionBtn.vue.mjs";
3
- import { default as m } from "./components/display/ActionBtnGroup.vue.mjs";
4
- import { default as u } from "./components/display/BooleanTag.vue.mjs";
3
+ import { default as f } from "./components/display/ActionBtnGroup.vue.mjs";
4
+ import { default as s } from "./components/display/BooleanTag.vue.mjs";
5
5
  import { default as l } from "./components/modal/DetailModal.vue.mjs";
6
- import { default as d } from "./components/form/FormMain.vue.mjs";
7
- import { default as n } from "./components/form/FormRadioGroup.vue.mjs";
8
- import { default as c } from "./components/form/FormSelect.vue.mjs";
9
- import { default as E } from "./components/form/FormSubmitBtn.vue.mjs";
10
- import { default as P } from "./components/form/FormTree.vue.mjs";
11
- import { default as g } from "./components/form/FormVerifyCode.vue.mjs";
12
- import { default as L } from "./components/display/HeightProvider.vue.mjs";
13
- import { default as F } from "./components/menu/MenuItemSub.vue.mjs";
14
- import { default as O } from "./components/menu/MenuTree.vue.mjs";
15
- import { default as h } from "./components/modal/ModalPorter.vue.mjs";
16
- import { default as B } from "./components/modal/ModalShelf.vue.mjs";
17
- import { default as y } from "./components/panel/PanelItem.vue.mjs";
18
- import { default as U } from "./components/misc/SelectModule.vue.mjs";
19
- import { default as N } from "./components/display/TabsMain.vue.mjs";
20
- import { default as Y } from "./components/misc/TriggerAutoImport.vue.mjs";
21
- import { default as K } from "./components/display/WatchSize.vue.mjs";
22
- import { APP_API_LIST_MODEL_KEY_CONFIG as k } from "./config/list-model.mjs";
23
- import { APP_LAYOUT_APP_STORE_KEY as z, APP_LAYOUT_BRIDGE_KEY as X, APP_LAYOUT_USER_STORE_KEY as j, BODY_CONTENT_VIEWPORT_HEIGHT as Q, TABS_MAIN_VISUAL_LEVEL as q, getModalShelfInjectionKey as J } from "./inject/key.mjs";
24
- import { default as $ } from "./components/display/ActionConfirm.vue.mjs";
25
- import { default as oe } from "./components/app-layout/AppBody.vue.mjs";
26
- import { default as te } from "./components/app-layout/AppBreadcrumb.vue.mjs";
27
- import { default as fe } from "./components/app-layout/AppFooter.vue.mjs";
28
- import { default as pe } from "./components/app-layout/AppHeader.vue.mjs";
29
- import { default as se } from "./components/app-layout/AppLayout.vue.mjs";
30
- import { default as xe } from "./components/app-layout/AppPage.vue.mjs";
31
- import { default as ie } from "./components/app-layout/AppSidebar.vue.mjs";
32
- import { default as Ae } from "./components/misc/AutoRefresh.vue.mjs";
33
- import { default as _e } from "./components/misc/AutoRefreshGroup.vue.mjs";
34
- import { default as Se } from "./components/modal/ConfirmModal.vue.mjs";
35
- import { EXPORT_MAX_LIMIT as Te, OPERATE_COLUMN_PROP as ge, exportCSV as Me, pickExportColumns as Le } from "./utils/export.mjs";
36
- import { FORM_CONFIG_SELECT_ALL_VALUE as Fe, getConfirmPasswordRule as Ie, passwordRule as Oe, setFormComponentType as Ce } from "./helpers/form.mjs";
37
- import { FORM_ITEM_CHANGE_LOADING as De, generateFormData as Be, getBlurSubmit as be, getChangeSubmit as ye, getDatePickerShortcuts as Ge, getEnterSubmit as Ue, getPlaceholder as Ve, getVModelSugar as Ne, parseFormData as we, resolveFormLayout as Ye, setInputComponent as ve, setSelectComponent as Ke, stringifyFormData as He, swiftFormItemConfig as ke } from "./components/form/utils.mjs";
38
- import { default as ze } from "./components/form/FormSearch.vue.mjs";
39
- import { default as je } from "./components/form/FormSubmitPanel.vue.mjs";
40
- import { default as qe } from "./components/form/FormVerifyImage.vue.mjs";
41
- import { default as Ze } from "./components/list-page/ListPage.vue.mjs";
42
- import { default as eo } from "./components/panel/PanelEditSwitch.vue.mjs";
43
- import { default as ro } from "./components/panel/PanelMain.vue.mjs";
44
- import { ROUTE_MODULE_LEVEL as ao, TabsMainReplaceQueryKey as fo } from "./config/route.mjs";
45
- import { default as po } from "./components/table/TableMain.vue.mjs";
46
- import { checkLogin as so } from "./router/guard/login.mjs";
47
- import { checkPermission as xo } from "./router/guard/permission.mjs";
48
- import { countAll as no, createListApi as Ao, fetchListAll as co } from "./helpers/list-helper.mjs";
49
- import { createAppStore as Eo } from "./store/app.mjs";
50
- import { createGenerateRouteMetaRawTree as Po } from "./bridge/route.mjs";
51
- import { createGuard as go } from "./router/guard/index.mjs";
52
- import { createRoutePermissionStore as Lo } from "./store/router-permission.mjs";
53
- import { createStorageWithNamespace as Fo } from "./bridge/storage.mjs";
54
- import { createUseState as Oo } from "./bridge/state.mjs";
55
- import { createUserStore as ho } from "./store/user.mjs";
56
- import { flatRouteMetaResolveRaw as Bo, getRoutePermissionKey as bo } from "./utils/router.mjs";
57
- import { getId as Go } from "./utils/id.mjs";
58
- import { timeCountDown as Vo } from "./utils/time.mjs";
59
- import { useActivated as wo, useActivatedEvent as Yo, useActivatedExec as vo } from "./hooks/activated.mjs";
60
- import { useBreakpoint as Ho } from "./hooks/use-breakpoint.mjs";
61
- import { useChannelViewportHeight as Wo } from "./hooks/use-channel-viewport-height.mjs";
62
- import { useFeelSize as Xo } from "./hooks/feel-size.mjs";
63
- import { useMenusDataDispatch as Qo } from "./hooks/menus-dispatch.mjs";
64
- import { useTimeout as Jo } from "./hooks/timeout.mjs";
6
+ import { default as d } from "./components/form/FormRadioGroup.vue.mjs";
7
+ import { default as n } from "./components/form/FormSelect.vue.mjs";
8
+ import { default as _ } from "./components/form/FormSubmitBtn.vue.mjs";
9
+ import { default as E } from "./components/form/FormTree.vue.mjs";
10
+ import { default as T } from "./components/form/FormVerifyCode.vue.mjs";
11
+ import { default as F } from "./components/display/HeightProvider.vue.mjs";
12
+ import { default as L } from "./components/menu/MenuItemSub.vue.mjs";
13
+ import { default as R } from "./components/menu/MenuTree.vue.mjs";
14
+ import { default as O } from "./components/modal/ModalPorter.vue.mjs";
15
+ import { default as N } from "./components/modal/ModalShelf.vue.mjs";
16
+ import { default as D } from "./components/panel/PanelItem.vue.mjs";
17
+ import { default as Y } from "./components/panel/PanelItemNestPanel.vue.mjs";
18
+ import { default as G } from "./components/misc/SelectModule.vue.mjs";
19
+ import { default as b } from "./components/display/TabsMain.vue.mjs";
20
+ import { default as K } from "./components/misc/TriggerAutoImport.vue.mjs";
21
+ import { default as w } from "./components/display/WatchSize.vue.mjs";
22
+ import { ADMIN_BRIDGE_KEY as k, APP_LAYOUT_APP_STORE_KEY as W, APP_LAYOUT_BRIDGE_KEY as z, APP_LAYOUT_USER_STORE_KEY as X, BODY_CONTENT_VIEWPORT_HEIGHT as j, FORM_NEST_REGISTRY_KEY as Q, NEST_LAYOUT_SCALE_KEY as q, TABS_MAIN_VISUAL_LEVEL as J, getModalShelfInjectionKey as Z } from "./inject/key.mjs";
23
+ import { APP_API_LIST_MODEL_KEY_CONFIG as ee } from "./config/list-model.mjs";
24
+ import { default as te } from "./components/display/ActionConfirm.vue.mjs";
25
+ import { default as ae } from "./components/app-layout/AppBody.vue.mjs";
26
+ import { default as fe } from "./components/app-layout/AppBreadcrumb.vue.mjs";
27
+ import { default as se } from "./components/app-layout/AppFooter.vue.mjs";
28
+ import { default as le } from "./components/app-layout/AppHeader.vue.mjs";
29
+ import { default as de } from "./components/app-layout/AppLayout.vue.mjs";
30
+ import { default as ne } from "./components/app-layout/AppPage.vue.mjs";
31
+ import { default as _e } from "./components/app-layout/AppSidebar.vue.mjs";
32
+ import { default as Ee } from "./components/misc/AutoRefresh.vue.mjs";
33
+ import { default as Te } from "./components/misc/AutoRefreshGroup.vue.mjs";
34
+ import { default as Fe } from "./components/modal/ConfirmModal.vue.mjs";
35
+ import { EXPORT_MAX_LIMIT as Le, OPERATE_COLUMN_PROP as Me, exportCSV as Re, pickExportColumns as ge } from "./utils/export.mjs";
36
+ import { FORM_CONFIG_SELECT_ALL_VALUE as he, getConfirmPasswordRule as Ne, passwordRule as Ce, setFormComponentType as De } from "./helpers/form.mjs";
37
+ import { FORM_ITEM_CHANGE_LOADING as Ye, NEST_LAYOUT_TIERS as Be, ceilToTier as Ge, generateFormData as Ue, getBlurSubmit as be, getChangeSubmit as Ve, getDatePickerShortcuts as Ke, getEnterSubmit as ve, getPlaceholder as we, getVModelSugar as He, parseFormData as ke, resolveFormLayout as We, resolveLayoutSpan as ze, setInputComponent as Xe, setSelectComponent as je, stringifyFormData as Qe, swiftFormItemConfig as qe } from "./components/form/utils.mjs";
38
+ import { default as Ze } from "./components/form/FormItemNestForm.vue.mjs";
39
+ import { default as eo } from "./components/form/FormItemNestFormList.vue.mjs";
40
+ import { default as to } from "./components/form/FormMain.vue.mjs";
41
+ import { default as ao } from "./components/form/FormSearch.vue.mjs";
42
+ import { default as fo } from "./components/form/FormSubmitPanel.vue.mjs";
43
+ import { default as so } from "./components/form/FormVerifyImage.vue.mjs";
44
+ import { default as lo } from "./components/list-page/ListPage.vue.mjs";
45
+ import { default as io } from "./components/panel/PanelEditSwitch.vue.mjs";
46
+ import { default as Ao } from "./components/panel/PanelItemNestForm.vue.mjs";
47
+ import { default as co } from "./components/panel/PanelMain.vue.mjs";
48
+ import { ROUTE_MODULE_LEVEL as So, TabsMainReplaceQueryKey as To } from "./config/route.mjs";
49
+ import { default as Fo } from "./components/table/TableMain.vue.mjs";
50
+ import { checkLogin as Lo } from "./router/guard/login.mjs";
51
+ import { checkPermission as Ro } from "./router/guard/permission.mjs";
52
+ import { countAll as Oo, createListApi as ho, fetchListAll as No } from "./helpers/list-helper.mjs";
53
+ import { createAppStore as Do } from "./store/app.mjs";
54
+ import { createGenerateRouteMetaRawTree as Yo } from "./bridge/route.mjs";
55
+ import { createGuard as Go } from "./router/guard/index.mjs";
56
+ import { createNestFormExposeMap as bo } from "./components/form/nest-registry.mjs";
57
+ import { createRoutePermissionStore as Ko } from "./store/router-permission.mjs";
58
+ import { createStorageWithNamespace as wo } from "./bridge/storage.mjs";
59
+ import { createUseState as ko } from "./bridge/state.mjs";
60
+ import { createUserStore as zo } from "./store/user.mjs";
61
+ import { flatRouteMetaResolveRaw as jo, getRoutePermissionKey as Qo } from "./utils/router.mjs";
62
+ import { getId as Jo } from "./utils/id.mjs";
63
+ import { nestFormItem as $o } from "./components/form/nest-form-item.mjs";
64
+ import { nestFormItemList as ot } from "./components/form/nest-form-item-list.mjs";
65
+ import { nestPanelForm as rt } from "./components/panel/nest-panel-form.mjs";
66
+ import { nestPanelItem as mt } from "./components/panel/nest-panel-item.mjs";
67
+ import { themeScaleDerive as pt, themeScaleMix as st } from "./utils/theme-scale.mjs";
68
+ import { timeCountDown as lt } from "./utils/time.mjs";
69
+ import { useActivated as dt, useActivatedEvent as it, useActivatedExec as nt } from "./hooks/activated.mjs";
70
+ import { useAdminThemeApply as _t } from "./hooks/use-admin-theme-apply.mjs";
71
+ import { useAdminViewportApply as Et } from "./hooks/use-admin-viewport-apply.mjs";
72
+ import { useBreakpoint as Tt } from "./hooks/use-breakpoint.mjs";
73
+ import { useChannelViewportHeight as Ft } from "./hooks/use-channel-viewport-height.mjs";
74
+ import { useFeelSize as Lt } from "./hooks/feel-size.mjs";
75
+ import { useMenusDataDispatch as Rt } from "./hooks/menus-dispatch.mjs";
76
+ import { useNestForm as Ot } from "./components/form/use-nest-form.mjs";
77
+ import { useNestFormList as Nt } from "./components/form/use-nest-form-list.mjs";
78
+ import { useNestLayoutScale as Dt } from "./components/form/use-nest-layout-scale.mjs";
79
+ import { useTimeout as Yt } from "./hooks/timeout.mjs";
65
80
  export {
66
- k as APP_API_LIST_MODEL_KEY_CONFIG,
67
- z as APP_LAYOUT_APP_STORE_KEY,
68
- X as APP_LAYOUT_BRIDGE_KEY,
69
- j as APP_LAYOUT_USER_STORE_KEY,
81
+ k as ADMIN_BRIDGE_KEY,
82
+ ee as APP_API_LIST_MODEL_KEY_CONFIG,
83
+ W as APP_LAYOUT_APP_STORE_KEY,
84
+ z as APP_LAYOUT_BRIDGE_KEY,
85
+ X as APP_LAYOUT_USER_STORE_KEY,
70
86
  a as ActionBtn,
71
- m as ActionBtnGroup,
72
- $ as ActionConfirm,
73
- oe as AppBody,
74
- te as AppBreadcrumb,
75
- fe as AppFooter,
76
- pe as AppHeader,
77
- se as AppLayout,
78
- xe as AppPage,
79
- ie as AppSidebar,
80
- Ae as AutoRefresh,
81
- _e as AutoRefreshGroup,
82
- Q as BODY_CONTENT_VIEWPORT_HEIGHT,
83
- u as BooleanTag,
84
- Se as ConfirmModal,
87
+ f as ActionBtnGroup,
88
+ te as ActionConfirm,
89
+ ae as AppBody,
90
+ fe as AppBreadcrumb,
91
+ se as AppFooter,
92
+ le as AppHeader,
93
+ de as AppLayout,
94
+ ne as AppPage,
95
+ _e as AppSidebar,
96
+ Ee as AutoRefresh,
97
+ Te as AutoRefreshGroup,
98
+ j as BODY_CONTENT_VIEWPORT_HEIGHT,
99
+ s as BooleanTag,
100
+ Fe as ConfirmModal,
85
101
  l as DetailModal,
86
- Te as EXPORT_MAX_LIMIT,
87
- Fe as FORM_CONFIG_SELECT_ALL_VALUE,
88
- De as FORM_ITEM_CHANGE_LOADING,
89
- d as FormMain,
90
- n as FormRadioGroup,
91
- ze as FormSearch,
92
- c as FormSelect,
93
- E as FormSubmitBtn,
94
- je as FormSubmitPanel,
95
- P as FormTree,
96
- g as FormVerifyCode,
97
- qe as FormVerifyImage,
98
- L as HeightProvider,
99
- Ze as ListPage,
100
- F as MenuItemSub,
101
- O as MenuTree,
102
- h as ModalPorter,
103
- B as ModalShelf,
104
- ge as OPERATE_COLUMN_PROP,
105
- eo as PanelEditSwitch,
106
- y as PanelItem,
107
- ro as PanelMain,
108
- ao as ROUTE_MODULE_LEVEL,
109
- U as SelectModule,
110
- q as TABS_MAIN_VISUAL_LEVEL,
111
- po as TableMain,
112
- N as TabsMain,
113
- fo as TabsMainReplaceQueryKey,
114
- Y as TriggerAutoImport,
115
- K as WatchSize,
116
- so as checkLogin,
117
- xo as checkPermission,
118
- no as countAll,
119
- r as createAdminBridge,
120
- Eo as createAppStore,
121
- Po as createGenerateRouteMetaRawTree,
122
- go as createGuard,
123
- Ao as createListApi,
124
- Lo as createRoutePermissionStore,
125
- Fo as createStorageWithNamespace,
126
- Oo as createUseState,
127
- ho as createUserStore,
128
- Me as exportCSV,
129
- co as fetchListAll,
130
- Bo as flatRouteMetaResolveRaw,
131
- Be as generateFormData,
102
+ Le as EXPORT_MAX_LIMIT,
103
+ he as FORM_CONFIG_SELECT_ALL_VALUE,
104
+ Ye as FORM_ITEM_CHANGE_LOADING,
105
+ Q as FORM_NEST_REGISTRY_KEY,
106
+ Ze as FormItemNestForm,
107
+ eo as FormItemNestFormList,
108
+ to as FormMain,
109
+ d as FormRadioGroup,
110
+ ao as FormSearch,
111
+ n as FormSelect,
112
+ _ as FormSubmitBtn,
113
+ fo as FormSubmitPanel,
114
+ E as FormTree,
115
+ T as FormVerifyCode,
116
+ so as FormVerifyImage,
117
+ F as HeightProvider,
118
+ lo as ListPage,
119
+ L as MenuItemSub,
120
+ R as MenuTree,
121
+ O as ModalPorter,
122
+ N as ModalShelf,
123
+ q as NEST_LAYOUT_SCALE_KEY,
124
+ Be as NEST_LAYOUT_TIERS,
125
+ Me as OPERATE_COLUMN_PROP,
126
+ io as PanelEditSwitch,
127
+ D as PanelItem,
128
+ Ao as PanelItemNestForm,
129
+ Y as PanelItemNestPanel,
130
+ co as PanelMain,
131
+ So as ROUTE_MODULE_LEVEL,
132
+ G as SelectModule,
133
+ J as TABS_MAIN_VISUAL_LEVEL,
134
+ Fo as TableMain,
135
+ b as TabsMain,
136
+ To as TabsMainReplaceQueryKey,
137
+ K as TriggerAutoImport,
138
+ w as WatchSize,
139
+ Ge as ceilToTier,
140
+ Lo as checkLogin,
141
+ Ro as checkPermission,
142
+ Oo as countAll,
143
+ t as createAdminBridge,
144
+ Do as createAppStore,
145
+ Yo as createGenerateRouteMetaRawTree,
146
+ Go as createGuard,
147
+ ho as createListApi,
148
+ bo as createNestFormExposeMap,
149
+ Ko as createRoutePermissionStore,
150
+ wo as createStorageWithNamespace,
151
+ ko as createUseState,
152
+ zo as createUserStore,
153
+ Re as exportCSV,
154
+ No as fetchListAll,
155
+ jo as flatRouteMetaResolveRaw,
156
+ Ue as generateFormData,
132
157
  be as getBlurSubmit,
133
- ye as getChangeSubmit,
134
- Ie as getConfirmPasswordRule,
135
- Ge as getDatePickerShortcuts,
136
- Ue as getEnterSubmit,
137
- Go as getId,
138
- J as getModalShelfInjectionKey,
139
- Ve as getPlaceholder,
140
- bo as getRoutePermissionKey,
141
- Ne as getVModelSugar,
142
- we as parseFormData,
143
- Oe as passwordRule,
144
- Le as pickExportColumns,
145
- Ye as resolveFormLayout,
146
- Ce as setFormComponentType,
147
- ve as setInputComponent,
148
- Ke as setSelectComponent,
149
- He as stringifyFormData,
150
- ke as swiftFormItemConfig,
151
- Vo as timeCountDown,
152
- wo as useActivated,
153
- Yo as useActivatedEvent,
154
- vo as useActivatedExec,
155
- Ho as useBreakpoint,
156
- Wo as useChannelViewportHeight,
157
- Xo as useFeelSize,
158
- Qo as useMenusDataDispatch,
159
- Jo as useTimeout
158
+ Ve as getChangeSubmit,
159
+ Ne as getConfirmPasswordRule,
160
+ Ke as getDatePickerShortcuts,
161
+ ve as getEnterSubmit,
162
+ Jo as getId,
163
+ Z as getModalShelfInjectionKey,
164
+ we as getPlaceholder,
165
+ Qo as getRoutePermissionKey,
166
+ He as getVModelSugar,
167
+ $o as nestFormItem,
168
+ ot as nestFormItemList,
169
+ rt as nestPanelForm,
170
+ mt as nestPanelItem,
171
+ ke as parseFormData,
172
+ Ce as passwordRule,
173
+ ge as pickExportColumns,
174
+ We as resolveFormLayout,
175
+ ze as resolveLayoutSpan,
176
+ De as setFormComponentType,
177
+ Xe as setInputComponent,
178
+ je as setSelectComponent,
179
+ Qe as stringifyFormData,
180
+ qe as swiftFormItemConfig,
181
+ pt as themeScaleDerive,
182
+ st as themeScaleMix,
183
+ lt as timeCountDown,
184
+ dt as useActivated,
185
+ it as useActivatedEvent,
186
+ nt as useActivatedExec,
187
+ _t as useAdminThemeApply,
188
+ Et as useAdminViewportApply,
189
+ Tt as useBreakpoint,
190
+ Ft as useChannelViewportHeight,
191
+ Lt as useFeelSize,
192
+ Rt as useMenusDataDispatch,
193
+ Ot as useNestForm,
194
+ Nt as useNestFormList,
195
+ Dt as useNestLayoutScale,
196
+ Yt as useTimeout
160
197
  };
package/es/inject/key.mjs CHANGED
@@ -6,18 +6,27 @@ function o(_) {
6
6
  }
7
7
  const A = Symbol.for(
8
8
  "TABS_MAIN_VISUAL_LEVEL"
9
- ), T = Symbol.for(
9
+ ), S = Symbol.for(
10
10
  "APP_LAYOUT_APP_STORE_KEY"
11
- ), P = Symbol.for(
11
+ ), T = Symbol.for(
12
12
  "APP_LAYOUT_USER_STORE_KEY"
13
- ), S = Symbol.for(
13
+ ), Y = Symbol.for(
14
14
  "APP_LAYOUT_BRIDGE_KEY"
15
+ ), O = Symbol.for(
16
+ "ADMIN_BRIDGE_KEY"
17
+ ), I = Symbol.for(
18
+ "DC_ADMIN_FORM_NEST_REGISTRY"
19
+ ), L = Symbol.for(
20
+ "DC_ADMIN_NEST_LAYOUT_SCALE"
15
21
  );
16
22
  export {
17
- T as APP_LAYOUT_APP_STORE_KEY,
18
- S as APP_LAYOUT_BRIDGE_KEY,
19
- P as APP_LAYOUT_USER_STORE_KEY,
23
+ O as ADMIN_BRIDGE_KEY,
24
+ S as APP_LAYOUT_APP_STORE_KEY,
25
+ Y as APP_LAYOUT_BRIDGE_KEY,
26
+ T as APP_LAYOUT_USER_STORE_KEY,
20
27
  E as BODY_CONTENT_VIEWPORT_HEIGHT,
28
+ I as FORM_NEST_REGISTRY_KEY,
29
+ L as NEST_LAYOUT_SCALE_KEY,
21
30
  A as TABS_MAIN_VISUAL_LEVEL,
22
31
  o as getModalShelfInjectionKey
23
32
  };
package/es/store/app.mjs CHANGED
@@ -1,103 +1,94 @@
1
- import { defineStore as k } from "pinia";
2
- import { useRoute as R } from "vue-router";
3
- import { ref as n, computed as t, watch as U } from "vue";
4
- function M(b) {
5
- const { bridge: o } = b;
6
- return k("APP", () => {
7
- const a = o.APP_LAYOUT_HEADER_CONFIG.height, d = o.APP_LAYOUT_FOOTER_CONFIG.height, P = n(o.APP_BASE_INFO.name), s = n(!1), T = n(!1), c = n(!1), i = n(!1), S = t(() => c.value ? o.APP_LAYOUT_SIDEBAR_CONFIG.collapseWidth : o.APP_LAYOUT_SIDEBAR_CONFIG.width), C = R(), r = t(
8
- () => s.value ? o.APP_THEME_CONFIG.dark : o.APP_THEME_CONFIG.light
9
- ), h = t(() => C.meta), l = t(() => h.value.layout), E = t(() => h.value.keepAlive), m = t(
1
+ import { defineStore as f } from "pinia";
2
+ import { useRoute as $ } from "vue-router";
3
+ import { computed as e, ref as u } from "vue";
4
+ function D(g) {
5
+ const { bridge: t } = g;
6
+ return f("APP", () => {
7
+ const P = e(() => t.APP_LAYOUT_HEADER_CONFIG.height), O = e(() => t.APP_LAYOUT_FOOTER_CONFIG.height), b = e(() => t.APP_BASE_INFO.name), T = u(!1), d = u(!1), n = u(!1), m = e(() => d.value ? t.APP_LAYOUT_SIDEBAR_CONFIG.collapseWidth : t.APP_LAYOUT_SIDEBAR_CONFIG.width), C = $(), a = e(() => t.themeColors.value), i = e(() => C.meta), l = e(() => i.value.layout), I = e(() => i.value.keepAlive), h = e(
10
8
  () => {
11
- var e;
12
- return ((e = l.value) == null ? void 0 : e.header) ?? o.APP_ROUTER_META_DEFAULT_CONFIG.showHeader;
9
+ var o;
10
+ return ((o = l.value) == null ? void 0 : o.header) ?? t.APP_ROUTER_META_DEFAULT_CONFIG.showHeader;
13
11
  }
14
- ), g = t(
12
+ ), c = e(
15
13
  () => {
16
- var e;
17
- return ((e = l.value) == null ? void 0 : e.footer) ?? o.APP_ROUTER_META_DEFAULT_CONFIG.showFooter;
14
+ var o;
15
+ return ((o = l.value) == null ? void 0 : o.footer) ?? t.APP_ROUTER_META_DEFAULT_CONFIG.showFooter;
18
16
  }
19
- ), v = t(
17
+ ), _ = e(
20
18
  () => {
21
- var e;
22
- return (((e = l.value) == null ? void 0 : e.sidebar) ?? o.APP_ROUTER_META_DEFAULT_CONFIG.showSidebar) && i.value;
19
+ var o;
20
+ return (((o = l.value) == null ? void 0 : o.sidebar) ?? t.APP_ROUTER_META_DEFAULT_CONFIG.showSidebar) && n.value;
23
21
  }
24
- ), O = t(
22
+ ), E = e(
25
23
  () => {
26
- var e;
27
- return ((e = l.value) == null ? void 0 : e.breadcrumb) ?? o.APP_ROUTER_META_DEFAULT_CONFIG.showBreadcrumb;
24
+ var o;
25
+ return ((o = l.value) == null ? void 0 : o.breadcrumb) ?? t.APP_ROUTER_META_DEFAULT_CONFIG.showBreadcrumb;
28
26
  }
29
- ), _ = t(
27
+ ), v = e(
30
28
  () => {
31
- var e;
32
- return ((e = l.value) == null ? void 0 : e.bodyShimPadding) ?? o.APP_LAYOUT_BODY_CONFIG.shimPadding;
29
+ var o;
30
+ return ((o = l.value) == null ? void 0 : o.bodyShimPadding) ?? t.APP_LAYOUT_BODY_CONFIG.shimPadding;
33
31
  }
34
- ), u = t(() => ({
35
- height: `${m.value ? a : 0}px`,
36
- backgroundColor: r.value.bodyColor,
37
- color: r.value.baseColor
38
- })), p = t(() => ({
39
- height: `${g.value ? d : 0}px`,
40
- backgroundColor: r.value.bodyColor
41
- })), A = t(() => ({
42
- width: `${v.value ? S.value : 0}px`,
43
- paddingTop: u.value.height,
44
- backgroundColor: r.value.bodyColor,
45
- color: r.value.baseColor
46
- })), I = t(() => ({
47
- paddingLeft: A.value.width,
48
- paddingTop: u.value.height,
49
- backgroundColor: r.value.bodyColor
50
- })), F = t(() => ({
51
- minHeight: `calc(100vh - ${u.value.height} - ${p.value.height})`,
52
- padding: `${_.value}px`
53
- })), f = (e) => {
54
- c.value = e;
55
- }, y = (e) => {
56
- i.value = e;
57
- }, N = (e) => {
58
- s.value = e;
32
+ ), r = e(() => ({
33
+ top: `${t.APP_LAYOUT_VIEWPORT_CONFIG.paddingTop}px`,
34
+ right: `${t.APP_LAYOUT_VIEWPORT_CONFIG.paddingRight}px`,
35
+ bottom: `${t.APP_LAYOUT_VIEWPORT_CONFIG.paddingBottom}px`,
36
+ left: `${t.APP_LAYOUT_VIEWPORT_CONFIG.paddingLeft}px`
37
+ })), s = e(() => ({
38
+ height: `${h.value ? P.value : 0}px`,
39
+ backgroundColor: a.value.bodyColor,
40
+ color: a.value.baseColor
41
+ })), p = e(() => ({
42
+ height: `${c.value ? O.value : 0}px`,
43
+ backgroundColor: a.value.bodyColor
44
+ })), A = e(() => ({
45
+ width: `${_.value ? m.value : 0}px`,
46
+ paddingTop: s.value.height,
47
+ backgroundColor: a.value.bodyColor,
48
+ color: a.value.baseColor
49
+ })), F = e(() => ({
50
+ // viewport 边框:原扣 sidebar 宽 / header 高基础上,经 calc 再叠加左 / 上 viewport
51
+ // 边距;右 / 下原无 padding,本期新增直取 viewport 右 / 下边距,给 footer + 内容右下留白。
52
+ paddingLeft: `calc(${A.value.width} + ${r.value.left})`,
53
+ paddingTop: `calc(${s.value.height} + ${r.value.top})`,
54
+ paddingRight: r.value.right,
55
+ paddingBottom: r.value.bottom,
56
+ backgroundColor: a.value.bodyColor
57
+ })), S = e(() => ({
58
+ // 视口可用高再减去上 / 下 viewport 边框边距(套框后内容区相应变矮)。
59
+ minHeight: `calc(100vh - ${s.value.height} - ${p.value.height} - ${r.value.top} - ${r.value.bottom})`,
60
+ padding: `${v.value}px`
61
+ })), R = (o) => {
62
+ d.value = o;
63
+ }, L = (o) => {
64
+ n.value = o;
65
+ }, U = (o) => {
66
+ t.theme.setDark(o);
59
67
  };
60
- return U(
61
- s,
62
- () => {
63
- const e = document.documentElement.className;
64
- s.value ? document.documentElement.className = `${e} dark`.trim() : document.documentElement.className = e.replace(/\bdark\b/g, "").trim();
65
- },
66
- {
67
- immediate: !0
68
- }
69
- ), {
70
- name: P,
71
- isDarkTheme: t(() => s.value),
72
- theme: r,
68
+ return {
69
+ name: b,
70
+ isDarkTheme: e(() => t.themeIsDark.value),
71
+ theme: a,
73
72
  extractLevel1ToHeader: T,
74
- showHeader: m,
75
- showFooter: g,
76
- showSidebar: v,
77
- showBreadcrumb: O,
78
- keepAlive: E,
79
- headerStyle: u,
73
+ showHeader: h,
74
+ showFooter: c,
75
+ showSidebar: _,
76
+ showBreadcrumb: E,
77
+ keepAlive: I,
78
+ headerStyle: s,
80
79
  footerStyle: p,
81
80
  sidebarStyle: A,
82
- bodyStyle: I,
83
- bodyShimPadding: _,
84
- bodyShimStyle: F,
85
- sidebarIsCollapse: t(() => c.value),
86
- changeSidebarCollapseStatus: f,
87
- changeSidebarHasMenusStatus: y,
88
- changeIsDarkTheme: N
81
+ bodyStyle: F,
82
+ bodyShimPadding: v,
83
+ bodyShimStyle: S,
84
+ viewportPadding: r,
85
+ sidebarIsCollapse: e(() => d.value),
86
+ changeSidebarCollapseStatus: R,
87
+ changeSidebarHasMenusStatus: L,
88
+ changeIsDarkTheme: U
89
89
  };
90
- }, {
91
- persist: {
92
- storage: {
93
- getItem: (a) => o.getStorage().getItem(a),
94
- setItem: (a, d) => o.getStorage().setItem(a, d),
95
- removeItem: (a) => o.getStorage().removeItem(a)
96
- },
97
- pick: ["isDarkTheme"]
98
- }
99
90
  });
100
91
  }
101
92
  export {
102
- M as createAppStore
93
+ D as createAppStore
103
94
  };
package/es/style.css CHANGED
@@ -1 +1 @@
1
- .confirm-dialog .content[data-v-8a29e4c8]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 200px)}.confirm-dialog .btn[data-v-8a29e4c8]{width:150px;height:40px;border-radius:4px}.confirm-dialog .main[data-v-8a29e4c8]{position:relative;text-align:center}.confirm-dialog .main .close-box[data-v-8a29e4c8]{position:absolute;top:0;right:0;cursor:pointer;z-index:2}.confirm-dialog .main .shim[data-v-8a29e4c8]{position:relative;z-index:1}.confirm-dialog .main .shim .title[data-v-8a29e4c8]{font-size:18px;font-weight:500}.confirm-dialog .main .shim .content[data-v-8a29e4c8]{font-size:16px;margin-top:15px}.confirm-dialog .main .shim .footer[data-v-8a29e4c8]{display:flex;justify-content:center;align-items:center;padding-top:5px}.confirm-dialog .main .shim .footer>.btn[data-v-8a29e4c8]:not(:last-child){margin-right:30px}.confirm-dialog .main .shim .footer[reverse=true][data-v-8a29e4c8]{flex-direction:row-reverse}.confirm-dialog .main .shim .footer[reverse=true]>.btn[data-v-8a29e4c8]:not(:last-child){margin-right:0;margin-left:30px}.confirm-dialog .el-dialog__header,.confirm-dialog .el-dialog__body{padding:0;background-color:transparent}.action-confirm__title[data-v-88119b35]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-88119b35]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-88119b35]{display:flex;justify-content:flex-end;gap:8px}.form-item-tip[data-v-0dd66b41]{text-align:left;line-height:1.5;font-size:12px}.form-item-label-hide[data-v-0dd66b41] .el-form-item__label-wrap{display:none}.form-submit-panel[data-v-450cc756]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-450cc756]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-450cc756]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-450cc756]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-450cc756]{background-color:var(--el-bg-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-450cc756],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-450cc756]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-450cc756]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-450cc756]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-450cc756]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-450cc756]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-450cc756]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-450cc756]{padding:0}.panel-edit-switch[data-v-7bb14fd1]{position:relative}.panel-edit-switch:hover .panel-edit-switch-edit-btn[data-v-7bb14fd1]{display:block}.panel-edit-switch-edit-btn[data-v-7bb14fd1]{position:absolute;top:0;right:0;z-index:1;display:none}.panel-edit-switch-actions[data-v-7bb14fd1]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.form-search_show[data-v-d240f220]{margin-bottom:10px}.form-search .btn-box[data-v-d240f220]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.form-search .btn-box-expand-icon[data-v-d240f220]{margin-right:2px}.form-search[data-v-d240f220] .el-col{padding-left:14px}.form-verify-image[data-v-a4baf877] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-a4baf877]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--el-border-radius-base));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-a4baf877]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-d6937179]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-d6937179]{border:none;background:transparent;cursor:pointer;color:var(--el-text-color-regular);transition:background .2s,color .2s,box-shadow .2s}.tabs-main-bar-indicator[data-v-d6937179]{position:absolute;left:0;background:var(--el-color-primary);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-d6937179]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-d6937179]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-d6937179],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-d6937179]{font-size:12px}.tabs-main-bar--variant-card[data-v-d6937179]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-d6937179]{position:relative;padding:8px 20px;line-height:1.4;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-d6937179]:hover:not(.tabs-main-bar-item_active){color:var(--el-color-primary)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-d6937179]{color:var(--el-color-primary);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-d6937179]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-d6937179]:after{content:"";position:absolute;bottom:0;width:100vw;height:1px;background:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-d6937179]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-d6937179]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-d6937179]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-d6937179]{color:var(--el-color-primary)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-d6937179]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-d6937179]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-d6937179]{color:var(--el-color-primary)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-d6937179]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-d6937179]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-d6937179]{color:var(--el-color-primary);font-weight:600}.app-breadcrumb[data-v-2f677890]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-265945fd]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-265945fd]{width:100%;--app-viewport-max-height: var(--ba2eb370)}.app-footer[data-v-393d9768]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:-5px 0 5px #0000001a}.app-footer-shim[data-v-393d9768]{width:100%;height:100%;padding:0 20px}.app-header[data-v-ef3cc8a6]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;position:fixed;left:0;top:0;width:100%;box-shadow:5px 0 5px #0000001a;z-index:1}.app-header-module[data-v-ef3cc8a6]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-ef3cc8a6]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%;color:var(--v3dfae5bc)}.app-header-module-item[data-v-ef3cc8a6]:hover,.app-header-module-item_active[data-v-ef3cc8a6]{color:var(--v158cd0d2)}.app-header-module-item_active[data-v-ef3cc8a6]{position:relative}.app-header-module-item_active[data-v-ef3cc8a6]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--v158cd0d2);transform:translate(-50%)}.app-header-shim[data-v-ef3cc8a6]{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;font-weight:700}.app-header-module-item__icon[data-v-ef3cc8a6]{margin-right:8px}.app-header-userInfo[data-v-ef3cc8a6]{padding-left:80px}.app-header-userInfo__theme-switch[data-v-ef3cc8a6]{margin-right:12px}.app-sidebar[data-v-37ff5e0c]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;position:fixed;left:0;top:0;height:100%;box-shadow:0 5px 5px #0000001a;overflow:visible;z-index:var(--ce9ef212)}.app-sidebar-top[data-v-37ff5e0c]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-37ff5e0c]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-37ff5e0c]{position:absolute;left:0;right:0;top:var(--v309db2c2);bottom:var(--v2189b8a1);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-sidebar-toggle[data-v-37ff5e0c]{position:absolute;left:100%;top:50%;transform:translate(-50%,-50%);cursor:pointer;width:22px;height:22px;border-radius:50%;background-color:var(--v65908f82);color:var(--v42a24063);border:1px solid var(--v42a24063);box-shadow:0 1px 2px #0000000f;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;isolation:isolate;transition:color .3s,border-color .3s,box-shadow .3s}.app-sidebar-toggle[data-v-37ff5e0c]:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background-color:var(--v42a24063);opacity:.18;z-index:-1;pointer-events:none;transition:opacity .3s,inset .3s}.app-sidebar-toggle[data-v-37ff5e0c]:active,.app-sidebar-toggle[data-v-37ff5e0c]:focus,.app-sidebar-toggle[data-v-37ff5e0c]:hover{box-shadow:0 2px 6px #0000001f}.app-sidebar-toggle[data-v-37ff5e0c]:active:before,.app-sidebar-toggle[data-v-37ff5e0c]:focus:before,.app-sidebar-toggle[data-v-37ff5e0c]:hover:before{opacity:.32;top:-5px;right:-5px;bottom:-5px;left:-5px}.app-sidebar-toggle-icon[data-v-37ff5e0c]{transition:transform .3s}.app-layout[data-v-6924f8b7]{position:relative}.app-layout_noLogin[data-v-6924f8b7] .app-body,.app-layout_noLogin[data-v-6924f8b7] .app-sidebar,.app-layout_noLogin[data-v-6924f8b7] .app-header,.app-layout_noLogin[data-v-6924f8b7] .app-footer{transition:none!important}.app-page-shim[data-v-fda19616]{--app-viewport-max-height: var(--v54888f0e)}[data-v-1f8a1089] .auto-refresh-label{display:flex;font-size:13px;color:var(--el-text-color-regular);margin-bottom:8px}.auto-refresh-group-icon--rotating[data-v-9cac8b09]{animation:auto-refresh-rotating-9cac8b09 1s linear infinite}@keyframes auto-refresh-rotating-9cac8b09{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.table-toolbar[data-v-22ae8fa7]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-22ae8fa7],.table-toolbar-right[data-v-22ae8fa7]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-22ae8fa7]{--el-switch-off-color: var(--el-color-primary);--el-switch-on-color: var(--el-color-warning)}.data-list-view[data-v-da38bea6]{width:100%}.data-list-view-empty[data-v-da38bea6]{display:flex;justify-content:center;align-items:center;width:100%;min-height:60px}.table-main-pagination[data-v-05684b89]{margin-top:10px;display:flex;justify-content:flex-end}.list-page[data-v-d70424b6]{min-height:var(--v9299b0d4)}.list-page-header[data-v-d70424b6],.list-page-operation[data-v-d70424b6]{margin-bottom:10px}.list-page[data-v-d70424b6] .el-loading-mask{left:-10px;top:-10px;right:-10px;bottom:-10px}.panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-25951dc8]{margin-bottom:var(--v39ccf6bc)}
1
+ .confirm-modal[data-v-26598cb2] .el-dialog__header{margin-right:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.confirm-modal__title[data-v-26598cb2]{font-size:16px;font-weight:600;line-height:24px;color:var(--el-text-color-primary);text-align:left}.confirm-modal[data-v-26598cb2] .el-dialog__body{padding:20px}.confirm-modal__content[data-v-26598cb2]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 200px);font-size:14px;line-height:22px;color:var(--el-text-color-regular);text-align:left;word-break:break-word}.confirm-modal[data-v-26598cb2] .el-dialog__footer{padding:12px 20px;border-top:1px solid var(--el-border-color-lighter)}.confirm-modal__footer[data-v-26598cb2]{display:flex;justify-content:flex-end;align-items:center;gap:8px}.confirm-modal__footer[data-v-26598cb2] .el-button{min-width:72px}.confirm-modal__footer[reverse=true][data-v-26598cb2]{flex-direction:row-reverse}.action-confirm__title[data-v-88119b35]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-88119b35]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-88119b35]{display:flex;justify-content:flex-end;gap:8px}.form-item-tip[data-v-8b508d64]{text-align:left;line-height:1.5;font-size:12px}.form-item-label-hide[data-v-8b508d64] .el-form-item__label-wrap{display:none}[data-v-8ad14c45] .el-row>.el-col>.el-form-item{margin-bottom:18px}.form-submit-panel[data-v-93bc9096]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-93bc9096]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-93bc9096]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-93bc9096]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-93bc9096]{background-color:var(--admin-core-body-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-93bc9096],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-93bc9096]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--admin-core-radius, var(--el-border-radius-base));border-bottom-right-radius:var(--admin-core-radius, var(--el-border-radius-base))}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-93bc9096]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-93bc9096]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-93bc9096]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-93bc9096]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--admin-core-radius, var(--el-border-radius-base));border-top-right-radius:var(--admin-core-radius, var(--el-border-radius-base))}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-93bc9096]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-93bc9096]{padding:0}.panel-edit-switch[data-v-65f056ab]{position:relative}.panel-edit-switch:hover .panel-edit-switch-edit-btn[data-v-65f056ab]{display:block}.panel-edit-switch-edit-btn[data-v-65f056ab]{position:absolute;top:0;right:0;z-index:1;display:none}.panel-edit-switch-actions[data-v-65f056ab]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-9c14b584]{margin-bottom:var(--v5b714e11)}.form-search_show[data-v-9a9f48af]{margin-bottom:10px}.form-search .btn-box[data-v-9a9f48af]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.form-search .btn-box-expand-icon[data-v-9a9f48af]{margin-right:2px}.form-verify-image[data-v-669b7ad9] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-669b7ad9]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--admin-core-radius, var(--el-border-radius-base)));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-669b7ad9]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-3faa57f5]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-3faa57f5]{border:none;background:transparent;cursor:pointer;color:var(--el-text-color-regular);transition:background .2s,color .2s,box-shadow .2s}.tabs-main-bar-indicator[data-v-3faa57f5]{position:absolute;left:0;background:var(--admin-core-primary-color);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-3faa57f5]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-3faa57f5]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-3faa57f5],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-3faa57f5]{font-size:12px}.tabs-main-bar--variant-card[data-v-3faa57f5]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-3faa57f5]{position:relative;padding:8px 20px;line-height:1.4;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-3faa57f5]:hover:not(.tabs-main-bar-item_active){color:var(--admin-core-primary-color)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]:after{content:"";position:absolute;bottom:0;width:100vw;height:1px;background:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-3faa57f5]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-3faa57f5]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-3faa57f5]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-3faa57f5]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-3faa57f5]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-3faa57f5]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-3faa57f5]{color:var(--admin-core-primary-color);font-weight:600}.app-breadcrumb[data-v-9bbe0b05]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-ae442089]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-ae442089]{width:100%;--app-viewport-max-height: var(--ae6fc168)}.app-footer[data-v-bba5d0e4]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:-5px 0 5px #0000001a}.app-footer-shim[data-v-bba5d0e4]{width:100%;height:100%;padding:0 20px}.app-theme[data-v-1f068b22]{display:inline-flex;align-items:center;gap:12px;margin-right:12px}.app-theme__style-select[data-v-1f068b22]{width:120px}.app-header[data-v-b47543cd]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;position:fixed;left:var(--ae6f6fe0);top:var(--v4782742c);right:var(--v70971b33);box-shadow:5px 0 5px #0000001a;z-index:1}.app-header-module[data-v-b47543cd]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-b47543cd]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%;color:var(--fcf1a792)}.app-header-module-item[data-v-b47543cd]:hover,.app-header-module-item_active[data-v-b47543cd]{color:var(--d3910988)}.app-header-module-item_active[data-v-b47543cd]{position:relative}.app-header-module-item_active[data-v-b47543cd]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--d3910988);transform:translate(-50%)}.app-header-shim[data-v-b47543cd]{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;font-weight:700}.app-header-module-item__icon[data-v-b47543cd]{margin-right:8px}.app-header-userInfo[data-v-b47543cd]{padding-left:80px}.app-sidebar[data-v-2499f12e]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;position:fixed;left:var(--f2149ac0);top:var(--v6fb5779c);bottom:var(--e0532af8);box-shadow:0 5px 5px #0000001a;overflow:visible;z-index:var(--v36eef49e)}.app-sidebar-top[data-v-2499f12e]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-2499f12e]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-2499f12e]{position:absolute;left:0;right:0;top:var(--v7a209d86);bottom:var(--v0a70f74c);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-sidebar-toggle[data-v-2499f12e]{position:absolute;left:100%;top:50%;transform:translate(-50%,-50%);cursor:pointer;width:22px;height:22px;border-radius:50%;background-color:var(--v1ffafb76);color:var(--v738d1dcc);border:1px solid var(--v738d1dcc);box-shadow:0 1px 2px #0000000f;display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;isolation:isolate;transition:color .3s,border-color .3s,box-shadow .3s}.app-sidebar-toggle[data-v-2499f12e]:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background-color:var(--v738d1dcc);opacity:.18;z-index:-1;pointer-events:none;transition:opacity .3s,inset .3s}.app-sidebar-toggle[data-v-2499f12e]:active,.app-sidebar-toggle[data-v-2499f12e]:focus,.app-sidebar-toggle[data-v-2499f12e]:hover{box-shadow:0 2px 6px #0000001f}.app-sidebar-toggle[data-v-2499f12e]:active:before,.app-sidebar-toggle[data-v-2499f12e]:focus:before,.app-sidebar-toggle[data-v-2499f12e]:hover:before{opacity:.32;top:-5px;right:-5px;bottom:-5px;left:-5px}.app-sidebar-toggle-icon[data-v-2499f12e]{transition:transform .3s}.app-layout[data-v-7aeee1b9]{position:relative}.app-layout_noLogin[data-v-7aeee1b9] .app-body,.app-layout_noLogin[data-v-7aeee1b9] .app-sidebar,.app-layout_noLogin[data-v-7aeee1b9] .app-header,.app-layout_noLogin[data-v-7aeee1b9] .app-footer{transition:none!important}.app-page-shim[data-v-fda19616]{--app-viewport-max-height: var(--v54888f0e)}[data-v-64f355fe] .auto-refresh-label{display:flex;font-size:13px;color:var(--el-text-color-regular);margin-bottom:8px}.auto-refresh-group-icon--rotating[data-v-e608ff06]{animation:auto-refresh-rotating-e608ff06 1s linear infinite}@keyframes auto-refresh-rotating-e608ff06{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-item-nest-form[data-v-9c251e76],.form-item-nest-form-list[data-v-f424fc36]{padding:16px;border:1px solid var(--admin-core-border-color);border-radius:8px;box-shadow:var(--admin-core-shadow)}.form-item-nest-form-list-row[data-v-f424fc36]{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.form-item-nest-form-list-row-body[data-v-f424fc36]{flex:1;min-width:0;padding:12px 16px;border:1px solid var(--el-border-color-lighter);border-radius:6px;box-shadow:var(--el-box-shadow-lighter)}.table-toolbar[data-v-6f2937e1]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-6f2937e1],.table-toolbar-right[data-v-6f2937e1]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-6f2937e1]{--el-switch-off-color: var(--admin-core-primary-color);--el-switch-on-color: var(--admin-core-warning-color)}.data-list-view[data-v-708af83f]{width:100%}.data-list-view-empty[data-v-708af83f]{display:flex;justify-content:center;align-items:center;width:100%;min-height:60px}.table-main-pagination[data-v-132febbc]{margin-top:10px;display:flex;justify-content:flex-end}.list-page[data-v-fc41e3d4]{min-height:var(--c6e708aa)}.list-page-header[data-v-fc41e3d4],.list-page-operation[data-v-fc41e3d4]{margin-bottom:10px}.list-page[data-v-fc41e3d4] .el-loading-mask{left:-10px;top:-10px;right:-10px;bottom:-10px}.panel-item-nest-form-actions[data-v-3af1d77a]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}