@dt-frames/ui 2.0.2 → 2.0.4

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 (69) hide show
  1. package/es/assets/locales/en.ts +1 -1
  2. package/es/components/container/index.d.ts +4 -3
  3. package/es/components/container/index.js +24 -22
  4. package/es/components/container/src/slot-container.d.ts +5 -3
  5. package/es/components/curd/index.js +261 -229
  6. package/es/components/curd/src/components/Curd.d.ts +126 -331
  7. package/es/components/curd/src/props.d.ts +14 -15
  8. package/es/components/drawer/index.d.ts +3 -5
  9. package/es/components/drawer/index.js +55 -54
  10. package/es/components/drawer/src/components/DrawerHeader.d.ts +1 -3
  11. package/es/components/drawer/src/index.d.ts +4 -7
  12. package/es/components/form/index.d.ts +213 -361
  13. package/es/components/form/index.js +210 -163
  14. package/es/components/form/index.less +206 -8
  15. package/es/components/form/src/components/FormButtons.d.ts +3 -3
  16. package/es/components/form/src/components/FormItem.d.ts +152 -304
  17. package/es/components/form/src/components/formIcon.d.ts +4 -4
  18. package/es/components/form/src/components/formInputUseDialog.d.ts +3 -3
  19. package/es/components/form/src/enums/index.d.ts +1 -1
  20. package/es/components/form/src/index.d.ts +199 -347
  21. package/es/components/form/src/props.d.ts +8 -12
  22. package/es/components/form/src/types/form.type.d.ts +2 -2
  23. package/es/components/icons/index.d.ts +496 -2
  24. package/es/components/icons/index.less +5 -0
  25. package/es/components/icons/src/pick-icon.d.ts +5 -5
  26. package/es/components/modal/index.js +76 -74
  27. package/es/components/modal/index.less +10 -0
  28. package/es/components/modal/src/components/Modal.d.ts +108 -215
  29. package/es/components/modal/src/components/ModalFooter.d.ts +3 -3
  30. package/es/components/modal/src/index.d.ts +116 -223
  31. package/es/components/source/hooks/useSource.d.ts +14 -0
  32. package/es/components/source/index.js +66 -27
  33. package/es/components/source/types/source.type.d.ts +4 -8
  34. package/es/components/table/index.js +452 -820
  35. package/es/components/table/index.less +50 -14
  36. package/es/components/table/src/components/TableAction.d.ts +1 -1
  37. package/es/components/table/src/components/TableHeader.d.ts +109 -216
  38. package/es/components/table/src/components/TableRender.d.ts +13 -9
  39. package/es/components/table/src/components/tableSetting/Download.d.ts +107 -214
  40. package/es/components/table/src/components/tableSetting/DownloadCtrl.d.ts +107 -214
  41. package/es/components/table/src/components/tableSetting/index.d.ts +107 -214
  42. package/es/components/table/src/hooks/useDataSource.d.ts +1 -2
  43. package/es/components/table/src/hooks/usePagination.d.ts +3 -118
  44. package/es/components/table/src/index.d.ts +99 -435
  45. package/es/components/table/src/props.d.ts +19 -74
  46. package/es/components/table/src/types/actions.type.d.ts +1 -2
  47. package/es/components/table/src/types/table.type.d.ts +13 -8
  48. package/es/index.d.ts +1 -1
  49. package/es/index.js +2 -3240
  50. package/es/theme/index.js +688 -453
  51. package/es/theme/index.less +150 -0
  52. package/es/theme/src/components/header/components/logo.d.ts +0 -1
  53. package/es/theme/src/components/header/components/notify.d.ts +4 -3
  54. package/es/theme/src/components/header/components/setting-theme.d.ts +2 -1
  55. package/es/theme/src/components/header/components/user-info.d.ts +4 -3
  56. package/es/theme/src/components/header/helper/menu-tree.d.ts +1 -0
  57. package/es/theme/src/components/header/index.d.ts +8 -7
  58. package/es/theme/src/components/header/multiple-header.d.ts +22 -25
  59. package/es/theme/src/components/sider/components/drag-bar.d.ts +1 -1
  60. package/es/theme/src/components/sider/components/sider-trigger.d.ts +0 -1
  61. package/es/theme/src/components/sider/index.d.ts +147 -3
  62. package/es/theme/src/components/sider/mix-sider.d.ts +146 -0
  63. package/es/theme/src/enums/theme.enum.d.ts +2 -1
  64. package/es/theme/src/hooks/useMenu.d.ts +4 -2
  65. package/es/theme/src/index.d.ts +166 -23
  66. package/es/theme/src/stores/theme.store.d.ts +3 -0
  67. package/es/theme/src/types/theme.type.d.ts +2 -1
  68. package/package.json +3 -4
  69. package/vite.config.ts +0 -27
@@ -1,12 +1,29 @@
1
- import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, useAppStore, useSlots as useSlots$1, error, http, useApp, getDynamicProps, isBoolean, isFunction, getPopupContainer, useI18n, isNumber, isArray, isObject, isString, isNull, dispatchResize, useTimeoutFn, off, on, windowResizeFn, useMessage, isNullAndUnDef, getDictValueByCode, formatNumber, isVnode } from "@dt-frames/core";
2
- import { toRaw as toRaw$1, unref as unref$1, computed as computed$1, defineComponent as defineComponent$1, resolveDirective, openBlock, createElementBlock, Fragment, renderList, withDirectives, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, normalizeClass, normalizeStyle, createCommentVNode, createBlock, provide as provide$1, inject, mergeProps, ref as ref$1, watch as watch$1, getCurrentInstance as getCurrentInstance$1, reactive as reactive$1, readonly, watchEffect as watchEffect$1, nextTick as nextTick$1, isRef, useAttrs as useAttrs$1, normalizeProps, guardReactiveProps, isVNode, onUnmounted as onUnmounted$1, h as h$1, resolveDynamicComponent, renderSlot, createSlots } from "vue";
1
+ import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, useAppStore, useSlots, error, http, useApp, getDynamicProps, isBoolean, isFunction, getPopupContainer, useI18n, isNumber, isArray, isObject, isString, dispatchResize, useTimeoutFn, off, on, windowResizeFn, useMessage, isNullAndUnDef, getDictValueByCode, formatNumber, isVnode } from "@dt-frames/core";
2
+ import { toRaw as toRaw$1, unref, computed, useSlots as useSlots$1, ref, watch, onUnmounted, defineComponent, useAttrs, resolveDirective, openBlock, createElementBlock, Fragment, renderList, withDirectives, createVNode, withCtx, createTextVNode, toDisplayString, createElementVNode, normalizeClass, normalizeStyle, createCommentVNode, createBlock, provide, inject, h as h$1, mergeProps, nextTick, getCurrentInstance, reactive, readonly, watchEffect, isRef, normalizeProps, guardReactiveProps, toRefs, isVNode, onMounted, onBeforeUnmount, resolveDynamicComponent, renderSlot, createSlots } from "vue";
3
3
  import { defineStore } from "pinia";
4
- import { Tooltip, MenuItem, Menu, Dropdown, RadioButton, RadioGroup, Button, FormItem as FormItem$1, Col as Col$1, Spin, Checkbox as Checkbox$1, Divider as Divider$1, Row, CheckboxGroup, Popover as Popover$1, Table } from "ant-design-vue/es";
5
- import { omit, cloneDeep, isEqual, upperFirst } from "lodash-es";
4
+ import { Tooltip, MenuItem, Menu, Dropdown, RadioButton, RadioGroup, Button, FormItem, Col, Spin, Checkbox as Checkbox$1, Divider as Divider$1, Row, CheckboxGroup, Popover as Popover$1, Table } from "ant-design-vue/es";
5
+ import "ant-design-vue/es/table/style";
6
+ import { omit, cloneDeep, isEqual } from "lodash-es";
7
+ import "ant-design-vue/es/dropdown/style";
8
+ import "ant-design-vue/es/menu/style";
9
+ import "ant-design-vue/es/tooltip/style";
6
10
  import { useDebounceFn, useFullscreen, isFunction as isFunction$1 } from "@vueuse/core";
7
- import { Input, InputNumber, Select, TreeSelect, Switch, Checkbox, DatePicker, TimePicker, Popover, Radio, AutoComplete, Cascader, Slider, Rate, Divider, Col, Tooltip as Tooltip$1, Form, FormItem, Modal as Modal$1 } from "ant-design-vue";
11
+ import { Input, InputNumber, Select, TreeSelect, Switch, Checkbox, DatePicker, TimePicker, Popover, Radio, AutoComplete, Cascader, Slider, Rate, Divider, Modal } from "ant-design-vue";
12
+ import "ant-design-vue/es/radio/style";
13
+ import "ant-design-vue/es/cascader/style";
14
+ import "ant-design-vue/es/input-number/style";
15
+ import "ant-design-vue/es/switch/style";
16
+ import "ant-design-vue/es/tree-select/style";
17
+ import "ant-design-vue/es/slider/style";
18
+ import "ant-design-vue/es/rate/style";
19
+ import "ant-design-vue/es/date-picker/style";
20
+ import "ant-design-vue/es/col/style";
8
21
  import "ant-design-vue/es/form/style";
9
22
  import "ant-design-vue/es/button/style";
23
+ import "ant-design-vue/es/spin/style";
24
+ import "ant-design-vue/es/modal/style";
25
+ import "ant-design-vue/es/row/style";
26
+ import "ant-design-vue/es/divider/style";
10
27
  import "ant-design-vue/es/checkbox/style";
11
28
  import "ant-design-vue/es/popover/style";
12
29
  import Sortablejs from "sortablejs";
@@ -20,6 +37,7 @@ var MenuType = /* @__PURE__ */ ((MenuType2) => {
20
37
  MenuType2["SIDE"] = "sidebar";
21
38
  MenuType2["TOP_MENU"] = "top-menu";
22
39
  MenuType2["MIX"] = "mix";
40
+ MenuType2["MIX_SIDEBAR"] = "mix-sidebar";
23
41
  return MenuType2;
24
42
  })(MenuType || {});
25
43
  var MenuMode = /* @__PURE__ */ ((MenuMode2) => {
@@ -71,7 +89,8 @@ const defaultThemeConf = {
71
89
  menuWidth: 240,
72
90
  trigger: true,
73
91
  type: MenuType.SIDE,
74
- mode: MenuMode.INLINE
92
+ mode: MenuMode.INLINE,
93
+ mixSideTrigger: "hover"
75
94
  },
76
95
  footerOptions: {
77
96
  show: false,
@@ -92,7 +111,8 @@ const useThemeStore = defineStore({
92
111
  id: "dt-theme",
93
112
  state: () => ({
94
113
  themeConf: DtCache.getLocal(CacheKey.THEME) ?? defaultThemeConf,
95
- pageLoading: false
114
+ pageLoading: false,
115
+ mixSiderHasSubMenu: false
96
116
  }),
97
117
  getters: {
98
118
  getThemeConf() {
@@ -112,6 +132,9 @@ const useThemeStore = defineStore({
112
132
  },
113
133
  getPageLoading() {
114
134
  return this.pageLoading;
135
+ },
136
+ getMixSiderIsHasMenu() {
137
+ return this.mixSiderHasSubMenu;
115
138
  }
116
139
  },
117
140
  actions: {
@@ -119,6 +142,9 @@ const useThemeStore = defineStore({
119
142
  let newThemeConf = deepMerge(this.themeConf, options);
120
143
  this.themeConf = deepMerge(defaultThemeConf, newThemeConf);
121
144
  DtCache.setLocal(CacheKey.THEME, this.themeConf);
145
+ },
146
+ setMixSiderIsHasMenu(val) {
147
+ this.mixSiderHasSubMenu = val;
122
148
  }
123
149
  }
124
150
  });
@@ -147,8 +173,8 @@ defineStore({
147
173
  return;
148
174
  }
149
175
  let updateIndex = -1;
150
- const tabHasExits = this.tabList.some((tab, index2) => {
151
- updateIndex = index2;
176
+ const tabHasExits = this.tabList.some((tab, index) => {
177
+ updateIndex = index;
152
178
  return (tab.fullPath || tab.path) === (fullPath || path);
153
179
  });
154
180
  if (tabHasExits) {
@@ -164,14 +190,14 @@ defineStore({
164
190
  },
165
191
  closeTab(path, router) {
166
192
  const go = useGo(router);
167
- const index2 = this.tabList.findIndex((item) => item.path === path);
193
+ const index = this.tabList.findIndex((item) => item.path === path);
168
194
  let page;
169
- if (index2 === 0) {
195
+ if (index === 0) {
170
196
  if (this.tabList.length !== 1) {
171
- page = this.tabList[index2 + 1];
197
+ page = this.tabList[index + 1];
172
198
  }
173
199
  } else {
174
- page = this.tabList[index2 - 1];
200
+ page = this.tabList[index - 1];
175
201
  }
176
202
  this.bulkCloseTabs([path]);
177
203
  this.updateCacheTab();
@@ -180,15 +206,15 @@ defineStore({
180
206
  closeAllTab(currentRoute, router) {
181
207
  const go = useGo(router);
182
208
  let filterTabList = this.tabList.filter((item) => item?.meta?.affix ?? false);
183
- const route = filterTabList.length > 0 ? filterTabList[filterTabList.length - 1] : unref$1(currentRoute);
209
+ const route = filterTabList.length > 0 ? filterTabList[filterTabList.length - 1] : unref(currentRoute);
184
210
  this.tabList = [route];
185
211
  this.updateCacheTab();
186
212
  go(route.path);
187
213
  },
188
214
  closeLeftTabs(path) {
189
- const index2 = this.tabList.findIndex((item) => item.path === path);
190
- if (index2 > 0) {
191
- const leftTabs = this.tabList.slice(0, index2);
215
+ const index = this.tabList.findIndex((item) => item.path === path);
216
+ if (index > 0) {
217
+ const leftTabs = this.tabList.slice(0, index);
192
218
  const pathList = [];
193
219
  for (const item of leftTabs) {
194
220
  const affix = item?.meta?.affix ?? false;
@@ -201,9 +227,9 @@ defineStore({
201
227
  this.updateCacheTab();
202
228
  },
203
229
  closeRightTabs(path) {
204
- const index2 = this.tabList.findIndex((item) => item.path === path);
205
- if (index2 >= 0 && index2 < this.tabList.length - 1) {
206
- const rightTabs = this.tabList.slice(index2 + 1, this.tabList.length);
230
+ const index = this.tabList.findIndex((item) => item.path === path);
231
+ if (index >= 0 && index < this.tabList.length - 1) {
232
+ const rightTabs = this.tabList.slice(index + 1, this.tabList.length);
207
233
  const pathList = [];
208
234
  for (const item of rightTabs) {
209
235
  const affix = item?.meta?.affix ?? false;
@@ -243,7 +269,7 @@ defineStore({
243
269
  this.cacheTabList = cacheMap;
244
270
  },
245
271
  async refreshPage(router) {
246
- const findTab = this.getCachedTabList.find((item) => item === unref$1(router.currentRoute).name);
272
+ const findTab = this.getCachedTabList.find((item) => item === unref(router.currentRoute).name);
247
273
  if (findTab) {
248
274
  this.cacheTabList.delete(findTab.toString());
249
275
  }
@@ -260,41 +286,51 @@ defineStore({
260
286
  });
261
287
  function useMenu() {
262
288
  const { getMenuConf, setThemeConf } = useThemeStore();
263
- const getCollapsedShowTitle = computed$1(() => getMenuConf.collapsedShowTitle);
264
- const getIsSidebarType = computed$1(() => getMenuConf.type === MenuType.SIDE);
265
- const getMenuFixed = computed$1(() => getMenuConf.fixed);
266
- const getShowMenu = computed$1(() => getMenuConf.show);
267
- const getShowSidebar = computed$1(() => {
268
- return unref$1(getSplit) || unref$1(getShowMenu) && unref$1(getMenuMode) !== MenuMode.HORIZONTAL;
289
+ const getCollapsedShowTitle = computed(() => getMenuConf.collapsedShowTitle);
290
+ const getIsSidebarType = computed(() => getMenuConf.type === MenuType.SIDE);
291
+ const getMenuFixed = computed(() => getMenuConf.fixed);
292
+ const getShowMenu = computed(() => getMenuConf.show);
293
+ const getShowSidebar = computed(() => {
294
+ return unref(getSplit) || unref(getShowMenu) && unref(getMenuMode) !== MenuMode.HORIZONTAL;
269
295
  });
270
- const getMenuHidden = computed$1(() => getMenuConf.hidden);
271
- const getMenuTheme = computed$1(() => getMenuConf.theme);
272
- const getTrigger = computed$1(() => getMenuConf.trigger);
273
- const getCanDrag = computed$1(() => getMenuConf.canDrag);
274
- const getIsMixMode = computed$1(() => {
275
- return unref$1(getMenuMode) === MenuMode.INLINE && unref$1(getMenuType) === MenuType.MIX;
296
+ const getMenuHidden = computed(() => getMenuConf.hidden);
297
+ const getMenuTheme = computed(() => getMenuConf.theme);
298
+ const getTrigger = computed(() => getMenuConf.trigger);
299
+ const getCanDrag = computed(() => getMenuConf.canDrag);
300
+ const getIsMixMode = computed(() => {
301
+ return unref(getMenuMode) === MenuMode.INLINE && unref(getMenuType) === MenuType.MIX;
276
302
  });
277
- const getMenuWidth = computed$1(() => unref$1(getIsMixMode) ? Number(getMenuConf.menuWidth) - 40 : getMenuConf.menuWidth);
278
- const getLogoWidth = computed$1(() => getMenuConf.menuWidth);
279
- const getMenuType = computed$1(() => getMenuConf.type);
280
- const getIsTopMenu = computed$1(() => unref$1(getMenuType) === MenuType.TOP_MENU);
281
- const getMenuMode = computed$1(() => getMenuConf.mode);
282
- const getSplit = computed$1(() => getMenuConf.split);
283
- const getCollapsed = computed$1(() => getMenuConf.collapsed);
284
- const getIsHorizontal = computed$1(() => unref$1(getMenuMode) === MenuMode.HORIZONTAL);
303
+ const getIsMixSidebar = computed(() => unref(getMenuType) === MenuType.MIX_SIDEBAR);
304
+ const getMenuWidth = computed(() => {
305
+ if (unref(getIsMixMode)) {
306
+ return Number(getMenuConf.menuWidth) - 40;
307
+ } else if (unref(getIsMixSidebar)) {
308
+ return Number(getMenuConf.menuWidth) - 10;
309
+ } else {
310
+ return Number(getMenuConf.menuWidth);
311
+ }
312
+ });
313
+ const getMixSideTrigger = computed(() => getMenuConf.mixSideTrigger);
314
+ const getLogoWidth = computed(() => unref(getIsMixSidebar) ? "80px" : getMenuConf.menuWidth);
315
+ const getMenuType = computed(() => getMenuConf.type);
316
+ const getIsTopMenu = computed(() => unref(getMenuType) === MenuType.TOP_MENU);
317
+ const getMenuMode = computed(() => getMenuConf.mode);
318
+ const getSplit = computed(() => getMenuConf.split);
319
+ const getCollapsed = computed(() => getMenuConf.collapsed);
320
+ const getIsHorizontal = computed(() => unref(getMenuMode) === MenuMode.HORIZONTAL);
285
321
  const setThemeStore = (conf = {}) => setThemeConf(conf);
286
322
  const toggleCollapsed = () => setThemeStore({
287
323
  menuOptions: {
288
- collapsed: !unref$1(getCollapsed)
324
+ collapsed: !unref(getCollapsed)
289
325
  }
290
326
  });
291
- const getMiniWidthNumber = computed$1(() => getMenuConf.collapsedShowTitle ? 80 : 48);
292
- const getRealWidth = computed$1(() => {
293
- return unref$1(getCollapsed) ? unref$1(getMiniWidthNumber) : unref$1(getMenuWidth);
327
+ const getMiniWidthNumber = computed(() => getMenuConf.collapsedShowTitle ? 80 : 48);
328
+ const getRealWidth = computed(() => {
329
+ return unref(getCollapsed) ? unref(getMiniWidthNumber) : unref(getMenuWidth);
294
330
  });
295
- const getCalcContentWidth = computed$1(() => {
296
- const width = unref$1(getIsTopMenu) || !unref$1(getShowMenu) || unref$1(getSplit) && unref$1(getMenuHidden) ? 0 : unref$1(getRealWidth);
297
- return `calc(100% - ${unref$1(width)}px)`;
331
+ const getCalcContentWidth = computed(() => {
332
+ const width = unref(getIsTopMenu) || !unref(getShowMenu) || unref(getSplit) && unref(getMenuHidden) ? 0 : unref(getRealWidth);
333
+ return `calc(100% - ${unref(width)}px)`;
298
334
  });
299
335
  return {
300
336
  getCollapsedShowTitle,
@@ -317,7 +353,9 @@ function useMenu() {
317
353
  getRealWidth,
318
354
  getCalcContentWidth,
319
355
  getIsMixMode,
356
+ getIsMixSidebar,
320
357
  getCanDrag,
358
+ getMixSideTrigger,
321
359
  toggleCollapsed,
322
360
  setThemeStore
323
361
  };
@@ -350,54 +388,54 @@ function useHeader() {
350
388
  getMenuMode,
351
389
  getSplit,
352
390
  getIsTopMenu,
353
- getIsMixMode
391
+ getIsMixSidebar
354
392
  } = useMenu();
355
393
  const { getShowMultipleTab } = useMultipleTab();
356
- const getHeaderTheme = computed$1(() => getHeaderConf.theme);
357
- const getFixed = computed$1(() => getHeaderConf.fixed);
358
- const getShowHeaderLogo = computed$1(() => unref$1(getShowLogo) && !unref$1(getIsSidebarType));
359
- const getShowSearch = computed$1(() => getHeaderConf.showSearch);
360
- const getShowHeaderTrigger = computed$1(() => {
361
- if (unref$1(getMenuType) === MenuType.TOP_MENU || !unref$1(getShowMenu) || unref$1(getMenuHidden)) {
394
+ const getHeaderTheme = computed(() => getHeaderConf.theme);
395
+ const getFixed = computed(() => getHeaderConf.fixed);
396
+ const getShowHeaderLogo = computed(() => unref(getShowLogo) && !unref(getIsSidebarType) && !unref(getIsMixSidebar));
397
+ const getShowSearch = computed(() => getHeaderConf.showSearch);
398
+ const getShowHeaderTrigger = computed(() => {
399
+ if (unref(getMenuType) === MenuType.TOP_MENU || !unref(getShowMenu) || unref(getMenuHidden)) {
362
400
  return false;
363
401
  }
364
- return unref$1(getTrigger);
402
+ return unref(getTrigger);
365
403
  });
366
- const getShowBreadCrumb = computed$1(() => getHeaderConf.showBreadCrumb);
367
- const getShowBread = computed$1(
368
- () => unref$1(getMenuMode) !== MenuMode.HORIZONTAL && !unref$1(getSplit) && unref$1(getShowBreadCrumb)
404
+ const getShowBreadCrumb = computed(() => getHeaderConf.showBreadCrumb);
405
+ const getShowBread = computed(
406
+ () => unref(getMenuMode) !== MenuMode.HORIZONTAL && !unref(getSplit) && unref(getShowBreadCrumb)
369
407
  );
370
- const getShowTopMenu = computed$1(() => unref$1(getMenuMode) === MenuMode.HORIZONTAL || unref$1(getSplit));
371
- const getShowNotice = computed$1(() => getHeaderConf.showNotice);
372
- const getShowFullScreen = computed$1(() => getHeaderConf.showFullScreen);
373
- const getShowLocale = computed$1(() => getHeaderConf.showLocaleSwitch);
374
- const getShowSettingTheme = computed$1(() => getHeaderConf.showSettingTheme);
375
- const getShowFullHeaderRef = computed$1(() => {
376
- return !unref$1(getIsSidebarType) && !unref$1(getIsTopMenu);
408
+ const getShowTopMenu = computed(() => unref(getMenuMode) === MenuMode.HORIZONTAL || unref(getSplit));
409
+ const getShowNotice = computed(() => getHeaderConf.showNotice);
410
+ const getShowFullScreen = computed(() => getHeaderConf.showFullScreen);
411
+ const getShowLocale = computed(() => getHeaderConf.showLocaleSwitch);
412
+ const getShowSettingTheme = computed(() => getHeaderConf.showSettingTheme);
413
+ const getShowFullHeaderRef = computed(() => {
414
+ return !unref(getIsSidebarType) && !unref(getIsMixSidebar) && !unref(getIsTopMenu);
377
415
  });
378
- const getHeaderHeight = computed$1(() => {
416
+ const getHeaderHeight = computed(() => {
379
417
  let height = 0;
380
418
  height += HEADER_HEIGHT;
381
- if (unref$1(getShowMultipleTab) && !unref$1(getSplit)) {
419
+ if (unref(getShowMultipleTab) && !unref(getSplit)) {
382
420
  height += TABS_HEIGHT;
383
421
  }
384
422
  return height;
385
423
  });
386
- const getTabsHeight = computed$1(() => TABS_HEIGHT);
387
- const getShowInsetHeaderRef = computed$1(() => {
388
- return unref$1(getIsSidebarType) || unref$1(getIsTopMenu);
424
+ const getTabsHeight = computed(() => TABS_HEIGHT);
425
+ const getShowInsetHeaderRef = computed(() => {
426
+ return unref(getIsSidebarType) || unref(getIsTopMenu) || unref(getIsMixSidebar);
389
427
  });
390
- const getShowBackToTop = computed$1(() => getHeaderConf.showBackToTop);
391
- const getIsZH = computed$1(() => {
428
+ const getShowBackToTop = computed(() => getHeaderConf.showBackToTop);
429
+ const getIsZH = computed(() => {
392
430
  let local = DtCache.getLocal(CacheKey.LOCALE);
393
431
  if (!local)
394
432
  return true;
395
433
  return local === Language.ZH;
396
434
  });
397
- const getUiSize = computed$1(() => getHeaderConf?.size ?? UiSize.SMALL);
398
- const getShowUiSize = computed$1(() => getHeaderConf?.showSize);
399
- const getShowLogo = computed$1(() => getHeaderConf.showLogo);
400
- const getShowLoginOut = computed$1(() => getHeaderConf.showLoginOut);
435
+ const getUiSize = computed(() => getHeaderConf?.size ?? UiSize.SMALL);
436
+ const getShowUiSize = computed(() => getHeaderConf?.showSize);
437
+ const getShowLogo = computed(() => getHeaderConf.showLogo);
438
+ const getShowLoginOut = computed(() => getHeaderConf.showLoginOut);
401
439
  const loginOutClick = getHeaderConf.logoutClick;
402
440
  return {
403
441
  getHeaderTheme,
@@ -428,8 +466,8 @@ const codeMap = /* @__PURE__ */ new Map();
428
466
  function useHeaderCode(code, changeColumns) {
429
467
  const { appConf } = useAppStore();
430
468
  const { getIsZH } = useHeader();
431
- useSlots$1();
432
469
  useSlots();
470
+ useSlots$1();
433
471
  if (!appConf.pages.queryColumnApi) {
434
472
  error("\u8BF7\u5728init.config.ts\u4E2D\u914D\u7F6EqueryColumnApi\uFF01");
435
473
  return;
@@ -469,9 +507,9 @@ function useHeaderCode(code, changeColumns) {
469
507
  let rows = [];
470
508
  data.forEach((it) => {
471
509
  let obj = {
472
- title: unref$1(getIsZH) ? it.cloumnName : it.cloumnEngName,
510
+ title: unref(getIsZH) ? it.cloumnName : it.cloumnEngName,
473
511
  dataIndex: it.cloumnCode,
474
- sorter: it.ifOrder,
512
+ sorter: Boolean(it.ifOrder),
475
513
  align: getAlign(it.textAlign),
476
514
  show: Boolean(it.ifDisplay),
477
515
  defaultHidden: !Boolean(it.ifDisplay)
@@ -549,29 +587,15 @@ function useTable(props2) {
549
587
  };
550
588
  return [registerTable, methods];
551
589
  }
552
- const _default = "";
553
- const index$e = "";
554
- const index$d = "";
555
- const index$c = "";
556
- const index$b = "";
557
- const index$a = "";
558
- const index$9 = "";
559
- const index$8 = "";
560
- const index$7 = "";
561
- const index$6 = "";
562
- const index$5 = "";
563
- const index$4 = "";
564
- const index$3 = "";
565
- const _imports_0 = "data:image/png;base64,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";
566
- const index$2 = "";
567
- const _hoisted_1$b = {
590
+ const _hoisted_1$b = { key: 0 };
591
+ const _hoisted_2$3 = {
568
592
  key: 0,
569
- class: "dt-table-action-btn"
593
+ class: "dt-table-action-btn w-6 inline-block"
570
594
  };
571
- const _hoisted_2$3 = ["onClick"];
572
- const _hoisted_3$3 = /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-settings dt-table-action-dropdown cursor-pointer" }, null, -1);
573
- const _hoisted_4$3 = { class: "text-13 opacity-80" };
574
- const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
595
+ const _hoisted_3$3 = ["onClick"];
596
+ const _hoisted_4$3 = /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-settings dt-table-action-dropdown cursor-pointer" }, null, -1);
597
+ const _hoisted_5$2 = { class: "text-13 opacity-80" };
598
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
575
599
  __name: "TableAction",
576
600
  props: {
577
601
  fixed: {
@@ -621,7 +645,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
621
645
  actionBtns.value = [...btns].map((it) => {
622
646
  return {
623
647
  ...it,
624
- ifShow: isBoolean(it.show) ? it.show : isFunction(it.show) ? it.show(props2.record) : true
648
+ ifShow: isBoolean(it.show) ? it.show : isFunction(it.show) ? it.show(props2.record) : true,
649
+ icon: () => isFunction(it.icon) ? it.icon(props2.record) : it.icon,
650
+ label: () => isFunction(it.label) ? it.label(props2.record) : it.label
625
651
  };
626
652
  });
627
653
  },
@@ -635,29 +661,31 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
635
661
  const _component_AMenu = Menu;
636
662
  const _component_ADropdown = Dropdown;
637
663
  const _directive_auth = resolveDirective("auth");
638
- return props2.expand ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref$1(actionBtns), (item) => {
639
- return openBlock(), createElementBlock(Fragment, null, [
640
- item.ifShow ? withDirectives((openBlock(), createElementBlock("span", _hoisted_1$b, [
641
- createVNode(_component_ATooltip, { placement: "bottom" }, {
642
- title: withCtx(() => [
643
- createTextVNode(toDisplayString(item.name), 1)
644
- ]),
645
- default: withCtx(() => [
646
- createElementVNode("i", {
647
- class: normalizeClass(["i cursor-pointer", item.icon]),
648
- style: normalizeStyle({
649
- color: item.color
650
- }),
651
- onClick: ($event) => handleAction(item)
652
- }, null, 14, _hoisted_2$3)
653
- ]),
654
- _: 2
655
- }, 1024)
656
- ])), [
657
- [_directive_auth, item.auth]
658
- ]) : createCommentVNode("", true)
659
- ], 64);
660
- }), 256)) : (openBlock(), createBlock(_component_ADropdown, {
664
+ return props2.expand ? (openBlock(), createElementBlock("div", _hoisted_1$b, [
665
+ (openBlock(true), createElementBlock(Fragment, null, renderList(actionBtns.value, (item) => {
666
+ return openBlock(), createElementBlock(Fragment, null, [
667
+ item.ifShow ? withDirectives((openBlock(), createElementBlock("span", _hoisted_2$3, [
668
+ createVNode(_component_ATooltip, { placement: "bottom" }, {
669
+ title: withCtx(() => [
670
+ createTextVNode(toDisplayString(item.label()), 1)
671
+ ]),
672
+ default: withCtx(() => [
673
+ createElementVNode("i", {
674
+ class: normalizeClass(["i cursor-pointer", item.icon()]),
675
+ style: normalizeStyle({
676
+ color: item.color
677
+ }),
678
+ onClick: ($event) => handleAction(item)
679
+ }, null, 14, _hoisted_3$3)
680
+ ]),
681
+ _: 2
682
+ }, 1024)
683
+ ])), [
684
+ [_directive_auth, item.auth]
685
+ ]) : createCommentVNode("", true)
686
+ ], 64);
687
+ }), 256))
688
+ ])) : (openBlock(), createBlock(_component_ADropdown, {
661
689
  key: 1,
662
690
  getPopupContainer: getPopupContainer$1,
663
691
  trigger: ["click"]
@@ -665,7 +693,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
665
693
  overlay: withCtx(() => [
666
694
  createVNode(_component_AMenu, { class: "dt-action-select flex flex-col" }, {
667
695
  default: withCtx(() => [
668
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(actionBtns), (item) => {
696
+ (openBlock(true), createElementBlock(Fragment, null, renderList(actionBtns.value, (item) => {
669
697
  return withDirectives((openBlock(), createElementBlock("span", null, [
670
698
  item.ifShow ? (openBlock(), createBlock(_component_AMenuItem, {
671
699
  key: 0,
@@ -673,12 +701,12 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
673
701
  }, {
674
702
  default: withCtx(() => [
675
703
  createElementVNode("i", {
676
- class: normalizeClass(["i text-base opacity-80 pr-2", item.icon]),
704
+ class: normalizeClass(["i text-base opacity-80 pr-2", item.icon()]),
677
705
  style: normalizeStyle({
678
706
  color: item.color
679
707
  })
680
708
  }, null, 6),
681
- createElementVNode("span", _hoisted_4$3, toDisplayString(item.name), 1)
709
+ createElementVNode("span", _hoisted_5$2, toDisplayString(item.label()), 1)
682
710
  ]),
683
711
  _: 2
684
712
  }, 1032, ["onClick"])) : createCommentVNode("", true)
@@ -691,7 +719,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
691
719
  })
692
720
  ]),
693
721
  default: withCtx(() => [
694
- _hoisted_3$3
722
+ _hoisted_4$3
695
723
  ]),
696
724
  _: 1
697
725
  }));
@@ -700,7 +728,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
700
728
  });
701
729
  const tableKey = Symbol("dt-page");
702
730
  function createTableInstance(instance) {
703
- provide$1(tableKey, instance);
731
+ provide(tableKey, instance);
704
732
  }
705
733
  function getTableInstance() {
706
734
  return inject(tableKey);
@@ -722,10 +750,10 @@ const CellComponent = ({
722
750
  getPopupContainer: getPopupContainer2
723
751
  }, { attrs }) => {
724
752
  const Comp = componentMap$1.get(component);
725
- const DefaultComp = h(Comp, attrs);
753
+ const DefaultComp = h$1(Comp, attrs);
726
754
  if (!rule)
727
755
  return DefaultComp;
728
- return h(
756
+ return h$1(
729
757
  Popover,
730
758
  {
731
759
  overlayClassName: "edit-cell-rule-popover",
@@ -753,7 +781,7 @@ const basicProps$1 = {
753
781
  index: Number
754
782
  };
755
783
  const _hoisted_1$a = { class: "editable-cell" };
756
- const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
784
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
757
785
  __name: "EditTableCell",
758
786
  props: basicProps$1,
759
787
  setup(__props) {
@@ -792,9 +820,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
792
820
  const val = unref(currentValueRef);
793
821
  const value = isCheckValue ? isNumber(val) && isBoolean(val) ? val : !!val : val;
794
822
  let compProps = props2.column?.editComponentProps ?? {};
795
- const { record, column, index: index2 } = props2;
823
+ const { record, column, index } = props2;
796
824
  if (isFunction(compProps)) {
797
- compProps = compProps({ text: val, record, column, index: index2 }) ?? {};
825
+ compProps = compProps({ text: val, record, column, index }) ?? {};
798
826
  }
799
827
  if (unref(getComponent) === "InputNumber") {
800
828
  compProps = {
@@ -861,12 +889,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
861
889
  }
862
890
  return (_ctx, _cache) => {
863
891
  return openBlock(), createElementBlock("div", _hoisted_1$a, [
864
- createVNode(unref$1(CellComponent), mergeProps({ ref: "elRef" }, unref$1(getComponentProps), {
892
+ createVNode(unref(CellComponent), mergeProps({ ref: "elRef" }, unref(getComponentProps), {
865
893
  component: _ctx.column?.editComponent,
866
- popoverVisible: unref$1(getRuleVisible),
867
- rule: unref$1(editRule),
868
- ruleMessage: unref$1(ruleMessage),
869
- class: unref$1(getWrapperClass),
894
+ popoverVisible: unref(getRuleVisible),
895
+ rule: unref(editRule),
896
+ ruleMessage: ruleMessage.value,
897
+ class: unref(getWrapperClass),
870
898
  onChange: handleChange,
871
899
  onOptionsChange: handleOptionsChange
872
900
  }), null, 16, ["component", "popoverVisible", "rule", "ruleMessage", "class"])
@@ -875,7 +903,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
875
903
  }
876
904
  });
877
905
  function renderEditCell(column) {
878
- return ({ text: value, record, index: index2 }) => {
906
+ return ({ text: value, record, index }) => {
879
907
  record.onValid = async () => {
880
908
  if (isArray(record?.validCbs)) {
881
909
  const validFns = (record?.validCbs || []).map((fn) => fn());
@@ -903,11 +931,11 @@ function renderEditCell(column) {
903
931
  }
904
932
  return true;
905
933
  };
906
- return h(_sfc_main$i, {
934
+ return h(_sfc_main$j, {
907
935
  value,
908
936
  record,
909
937
  column,
910
- index: index2
938
+ index
911
939
  });
912
940
  };
913
941
  }
@@ -943,9 +971,9 @@ function handleChildren(children, ellipsis) {
943
971
  function handleIndexColumn(propsRef, getPaginationRef, columns) {
944
972
  const { getIsZH } = useHeader();
945
973
  const { t } = useI18n("UI");
946
- const { showIndexColumn, indexColumnProps, isTreeTable } = unref$1(propsRef);
974
+ const { showIndexColumn, indexColumnProps, isTreeTable } = unref(propsRef);
947
975
  let pushIndexColumns = false;
948
- if (unref$1(isTreeTable)) {
976
+ if (unref(isTreeTable)) {
949
977
  return;
950
978
  }
951
979
  columns.forEach(() => {
@@ -961,18 +989,18 @@ function handleIndexColumn(propsRef, getPaginationRef, columns) {
961
989
  const isFixedLeft = columns.some((item) => item.fixed === "left");
962
990
  columns.unshift({
963
991
  flag: INDEX_FLAG,
964
- width: unref$1(getIsZH) ? 50 : 70,
992
+ width: unref(getIsZH) ? 50 : 70,
965
993
  title: t("NUMBER"),
966
994
  align: "center",
967
- customRender: ({ index: index2 }) => {
968
- const getPagination = unref$1(getPaginationRef);
995
+ customRender: ({ index }) => {
996
+ const getPagination = unref(getPaginationRef);
969
997
  const { appConf } = useAppStore();
970
998
  const { defaultPageSize } = appConf.ui.table;
971
999
  if (isBoolean(getPagination)) {
972
- return `${index2 + 1}`;
1000
+ return `${index + 1}`;
973
1001
  }
974
1002
  const { current = 1, pageSize = defaultPageSize } = getPagination;
975
- return ((current < 1 ? 1 : current) - 1) * pageSize + index2 + 1;
1003
+ return ((current < 1 ? 1 : current) - 1) * pageSize + index + 1;
976
1004
  },
977
1005
  ...isFixedLeft ? {
978
1006
  fixed: "left"
@@ -984,33 +1012,33 @@ function handleActionColumn(propsRef, columns) {
984
1012
  const { getIsZH } = useHeader();
985
1013
  const { t } = useI18n("UI");
986
1014
  const { operations = [
987
- { name: t("EDIT"), icon: "mdi:text-box-edit-outline", onClick: unref$1(propsRef).onUpdate },
988
- { name: t("DELETE"), icon: "mdi:delete-outline", onClick: unref$1(propsRef).onDelete }
989
- ] } = unref$1(propsRef);
1015
+ { label: t("EDIT"), icon: "mdi:text-box-edit-outline", onClick: unref(propsRef).onUpdate },
1016
+ { label: t("DELETE"), icon: "mdi:delete-outline", onClick: unref(propsRef).onDelete }
1017
+ ], expandMethodIcon = false } = unref(propsRef);
990
1018
  if (!operations || isObject(operations) && !operations?.btns || isArray(operations) && !operations)
991
1019
  return;
992
1020
  const hasIndex = columns.findIndex((column) => column.flag === ACTION_COLUMN);
993
1021
  if (hasIndex === -1) {
994
1022
  let column = isObject(operations) ? operations : isArray(operations) ? { btns: operations } : {};
995
- let expand = column.expand ? column.expand : false;
1023
+ let expand = column.expand ? column.expand : expandMethodIcon;
996
1024
  let columnObj = {
997
1025
  fixed: "right",
998
1026
  title: t("ACTIONS"),
999
1027
  align: "center",
1000
1028
  expand,
1001
- width: `${expand ? column.btns.length * 30 + 40 : unref$1(getIsZH) ? 70 : 90}px`,
1029
+ width: `${expand ? column.btns.length * 24 + 40 : unref(getIsZH) ? 70 : 90}px`,
1002
1030
  ...column,
1003
1031
  flag: ACTION_COLUMN
1004
1032
  };
1005
1033
  columns.push({
1006
1034
  ...columnObj,
1007
- customRender: ({ record, index: index2 }) => {
1008
- return h(
1009
- _sfc_main$j,
1035
+ customRender: ({ record, index }) => {
1036
+ return h$1(
1037
+ _sfc_main$k,
1010
1038
  omit({
1011
1039
  ...columnObj,
1012
1040
  record,
1013
- index: index2
1041
+ index
1014
1042
  }, "align")
1015
1043
  );
1016
1044
  }
@@ -1041,18 +1069,19 @@ function sortFixedColumn(columns) {
1041
1069
  ];
1042
1070
  }
1043
1071
  function useColumns(propsRef, getPaginationRef, tableElRef) {
1044
- const columnsRef = ref(unref$1(propsRef).columns);
1045
- let cacheColumns = unref$1(propsRef).columns;
1072
+ const columnsRef = ref(unref(propsRef).columns);
1073
+ let cacheColumns = unref(propsRef).columns;
1074
+ const { appConf } = useAppStore();
1046
1075
  const getColumnsRef = computed(() => {
1047
- const columns = cloneDeep(unref$1(columnsRef));
1048
- const { ellipsis } = unref$1(propsRef);
1049
- columns.forEach((it, index2) => {
1076
+ const columns = cloneDeep(unref(columnsRef));
1077
+ const { ellipsis } = unref(propsRef);
1078
+ columns.forEach((it, index) => {
1050
1079
  it.class = it.class ?? "";
1051
1080
  if (!it.class.split(" ").includes("__column")) {
1052
1081
  it.class = `${it.class} __column`;
1053
1082
  }
1054
1083
  const { customRender, render } = it;
1055
- if (it.sorter) {
1084
+ if (it.sorter && isBoolean(it.sorter) && appConf?.ui?.table?.multipleSorter) {
1056
1085
  it.sorter = {
1057
1086
  multiple: Number(it.sorter)
1058
1087
  };
@@ -1067,7 +1096,7 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
1067
1096
  return columns;
1068
1097
  });
1069
1098
  const getViewColumns = computed(() => {
1070
- const viewColumns = sortFixedColumn(unref$1(getColumnsRef));
1099
+ const viewColumns = sortFixedColumn(unref(getColumnsRef));
1071
1100
  const columns = cloneDeep(viewColumns);
1072
1101
  return columns.filter((column) => isIfShow(column)).map((column) => {
1073
1102
  if (column.edit) {
@@ -1080,10 +1109,10 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
1080
1109
  const ifShow = column.show;
1081
1110
  return isBoolean(ifShow) ? ifShow : isFunction(ifShow) ? ifShow(column) : true;
1082
1111
  }
1083
- const resizeFn = useDebounceFn(addResize, 100);
1112
+ useDebounceFn(addResize, 100);
1084
1113
  function addResize() {
1085
- const { resizable, minWidth = 50, maxWidth = 700 } = unref$1(propsRef);
1086
- let els = unref$1(tableElRef)?.$el.querySelectorAll(".__column"), allWidth = 0, columnAllWidth = 0, noWidthNum = 0, avgWidth = 0;
1114
+ const { resizable, minWidth = 50, maxWidth = 700 } = unref(propsRef);
1115
+ let els = unref(tableElRef)?.$el.querySelectorAll(".__column"), allWidth = 0, columnAllWidth = 0, noWidthNum = 0, avgWidth = 0, scrollBarW = 10;
1087
1116
  for (let i = 0; i < els?.length; i++) {
1088
1117
  allWidth += els[i].offsetWidth ?? 0;
1089
1118
  }
@@ -1096,9 +1125,9 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
1096
1125
  }
1097
1126
  }
1098
1127
  });
1099
- avgWidth = (allWidth - columnAllWidth) / noWidthNum;
1128
+ avgWidth = (allWidth - columnAllWidth - scrollBarW) / noWidthNum;
1100
1129
  columnsRef.value.forEach((it) => {
1101
- it.width = it.width || avgWidth - 1;
1130
+ it.width = it.width || Math.round(avgWidth);
1102
1131
  if (Reflect.has(it, "resizable") ? !!it.resizable : resizable) {
1103
1132
  it.resizable = true;
1104
1133
  it.minWidth = it.minWidth || minWidth;
@@ -1108,7 +1137,7 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
1108
1137
  }
1109
1138
  function getColumns(opt) {
1110
1139
  const { ignoreIndex, ignoreAction, sort } = opt || {};
1111
- let columns = toRaw(unref$1(getColumnsRef));
1140
+ let columns = toRaw$1(unref(getColumnsRef));
1112
1141
  if (ignoreIndex) {
1113
1142
  columns = columns.filter((it) => it.flag !== INDEX_FLAG);
1114
1143
  }
@@ -1163,11 +1192,11 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
1163
1192
  return cacheColumns;
1164
1193
  }
1165
1194
  watch(
1166
- () => unref$1(propsRef).columns,
1195
+ () => unref(propsRef).columns,
1167
1196
  (columns) => {
1168
1197
  columnsRef.value = columns;
1169
1198
  cacheColumns = columns.filter((it) => !it.flag) ?? [];
1170
- nextTick(() => resizeFn());
1199
+ nextTick(() => addResize());
1171
1200
  }
1172
1201
  );
1173
1202
  return {
@@ -1180,12 +1209,12 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
1180
1209
  };
1181
1210
  }
1182
1211
  function useCustomRow(propsRef, { setSelectedRowKeys, getSelectedRowKeys, clearSelectedRowKeys, emits }) {
1183
- const customRow = (record, index2) => {
1212
+ const customRow = (record, index) => {
1184
1213
  return {
1185
1214
  onClick: (e) => {
1186
1215
  e?.stopPropagation();
1187
1216
  function handleClick() {
1188
- const { rowSelection, rowKey, clickToSelectRow } = unref$1(propsRef);
1217
+ const { rowSelection, rowKey, clickToSelectRow } = unref(propsRef);
1189
1218
  if (!rowSelection || !clickToSelectRow)
1190
1219
  return;
1191
1220
  const keys = getSelectedRowKeys();
@@ -1234,19 +1263,19 @@ function useCustomRow(propsRef, { setSelectedRowKeys, getSelectedRowKeys, clearS
1234
1263
  }
1235
1264
  }
1236
1265
  handleClick();
1237
- emits("row-click", record, index2, e);
1266
+ emits("row-click", record, index, e);
1238
1267
  },
1239
1268
  onDblclick: (event) => {
1240
- emits("row-dbClick", record, index2, event);
1269
+ emits("row-dbClick", record, index, event);
1241
1270
  },
1242
1271
  onContextmenu: (event) => {
1243
- emits("row-contextmenu", record, index2, event);
1272
+ emits("row-contextmenu", record, index, event);
1244
1273
  },
1245
1274
  onMouseenter: (event) => {
1246
- emits("row-mouseenter", record, index2, event);
1275
+ emits("row-mouseenter", record, index, event);
1247
1276
  },
1248
1277
  onMouseleave: (event) => {
1249
- emits("row-mouseleave", record, index2, event);
1278
+ emits("row-mouseleave", record, index, event);
1250
1279
  }
1251
1280
  };
1252
1281
  };
@@ -1259,9 +1288,9 @@ function useDataSource(propsRef, {
1259
1288
  setPagination,
1260
1289
  clearSelectedRowKeys
1261
1290
  }) {
1262
- const dataSourceRef = ref$1([]);
1263
- watch$1(
1264
- () => unref$1(propsRef).dataSource,
1291
+ const dataSourceRef = ref([]);
1292
+ watch(
1293
+ () => unref(propsRef).dataSource,
1265
1294
  (dataSource) => {
1266
1295
  dataSource && (dataSourceRef.value = dataSource);
1267
1296
  },
@@ -1269,11 +1298,11 @@ function useDataSource(propsRef, {
1269
1298
  immediate: true
1270
1299
  }
1271
1300
  );
1272
- const getDataSourceRef = computed$1(() => {
1273
- return unref$1(dataSourceRef);
1301
+ const getDataSourceRef = computed(() => {
1302
+ return unref(dataSourceRef);
1274
1303
  });
1275
1304
  function handleTableChange(pagination, filters, sorter) {
1276
- const { sortFn, filterFn, onTableChange: onTableChange2, clearSelectOnPageChange } = unref$1(propsRef);
1305
+ const { sortFn, filterFn, onTableChange: onTableChange2, clearSelectOnPageChange } = unref(propsRef);
1277
1306
  const { appConf: appConf2 } = useAppStore();
1278
1307
  const { current = 1, pageSize = appConf2.ui.table.defaultPageSize } = pagination;
1279
1308
  if (clearSelectOnPageChange) {
@@ -1293,11 +1322,11 @@ function useDataSource(propsRef, {
1293
1322
  pageSize
1294
1323
  },
1295
1324
  sort: sorter,
1296
- filter: toRaw$1(unref$1(params.filterInfo)),
1325
+ filter: toRaw$1(unref(params.filterInfo)),
1297
1326
  showBtnLoading: false
1298
1327
  });
1299
1328
  }
1300
- const { defSort, onTableChange } = unref$1(propsRef);
1329
+ const { defSort, onTableChange } = unref(propsRef);
1301
1330
  const { appConf } = useAppStore();
1302
1331
  onTableChange({
1303
1332
  pagination: {
@@ -1320,11 +1349,11 @@ function useDataSource(propsRef, {
1320
1349
  function findTableDataRecord(rowKey) {
1321
1350
  if (!dataSourceRef.value || dataSourceRef.value.length == 0 || !rowKey)
1322
1351
  return;
1323
- const { childrenColumnName = "children" } = unref$1(propsRef);
1352
+ const { childrenColumnName = "children" } = unref(propsRef);
1324
1353
  const findRow = (array) => {
1325
1354
  let ret;
1326
1355
  array.some(function iter(r) {
1327
- if (Reflect.has(r, unref$1(propsRef).rowKey) && r[unref$1(propsRef).rowKey] === rowKey) {
1356
+ if (Reflect.has(r, unref(propsRef).rowKey) && r[unref(propsRef).rowKey] === rowKey) {
1328
1357
  ret = r;
1329
1358
  return true;
1330
1359
  }
@@ -1341,74 +1370,23 @@ function useDataSource(propsRef, {
1341
1370
  findTableDataRecord
1342
1371
  };
1343
1372
  }
1344
- function useLabelWidth(schemaItemRef, propsRef) {
1345
- const { getIsZH } = useHeader();
1346
- const { appConf } = useAppStore();
1347
- return computed(() => {
1348
- const { labelWidth, enLabelWidth, labelCol = {}, wrapperCol = {} } = unref(schemaItemRef);
1349
- const {
1350
- labelWidth: gLabelWidth,
1351
- enLabelWidth: gEnLabelWidth,
1352
- labelCol: glabelCol = {},
1353
- wrapperCol: gwrapperCol = {},
1354
- layout = appConf.ui.form.layout
1355
- } = unref(propsRef);
1356
- let width = (unref(getIsZH) ? labelWidth ?? gLabelWidth : enLabelWidth ?? gEnLabelWidth) ?? labelWidth ?? gLabelWidth ?? 0;
1357
- const labelcol = { ...glabelCol, ...labelCol };
1358
- const wrapcol = { ...gwrapperCol, ...wrapperCol };
1359
- width = isNumber(width) ? `${width}px` : width;
1360
- return {
1361
- labelCol: {
1362
- style: { width },
1363
- ...labelcol
1364
- },
1365
- wrapperCol: {
1366
- style: { width: layout === "vertical" ? "100%" : `calc(100% - ${width})` },
1367
- ...wrapcol
1368
- }
1369
- };
1370
- });
1371
- }
1372
- const SINGLE_DATA_TYPE = ["DatePicker", "MonthPicker", "WeekPicker", "TimePicker"];
1373
- function createPlaceholder(component) {
1374
- const { t } = useI18n("UI");
1375
- if (component.includes("Input") || component.includes("Complete")) {
1376
- return t("PLEASE_INPUT");
1377
- }
1378
- if (component.includes("Picker") || component.includes("Select") || component.includes("Cascader") || component.includes("Checkbox") || component.includes("Radio") || component.includes("Switch")) {
1379
- return t("PLEASE_SELECT");
1380
- }
1381
- if (component.includes("Icon")) {
1382
- return t("PLEASE_SET_ICON");
1383
- }
1384
- return "";
1385
- }
1386
- function setComponentRuleType(rule, component, valueFormat) {
1387
- if (SINGLE_DATA_TYPE.includes(component)) {
1388
- rule.type = valueFormat ? "string" : "object";
1389
- } else if (["RangePicker", "Upload", "CheckboxGroup", "TimePicker"].includes(component)) {
1390
- rule.type = "array";
1391
- } else if (["InputNumber"].includes(component)) {
1392
- rule.type = "number";
1393
- }
1394
- }
1395
1373
  function useFormValue(props2, key = "value", changeEvent = "change", emitData) {
1396
- const instance = getCurrentInstance$1();
1374
+ const instance = getCurrentInstance();
1397
1375
  const emit = instance?.emit;
1398
- const innerState = reactive$1({
1376
+ const innerState = reactive({
1399
1377
  value: props2[key]
1400
1378
  });
1401
1379
  const defaultState = readonly(innerState);
1402
1380
  const setState = (val) => {
1403
1381
  innerState.value = val;
1404
- nextTick$1(() => {
1405
- emit?.(changeEvent, val, ...toRaw$1(unref$1(emitData)) || []);
1382
+ nextTick(() => {
1383
+ emit?.(changeEvent, val, ...toRaw$1(unref(emitData)) || []);
1406
1384
  });
1407
1385
  };
1408
- watchEffect$1(() => {
1386
+ watchEffect(() => {
1409
1387
  innerState.value = props2[key];
1410
1388
  });
1411
- const state = computed$1({
1389
+ const state = computed({
1412
1390
  get() {
1413
1391
  return innerState.value;
1414
1392
  },
@@ -1416,14 +1394,14 @@ function useFormValue(props2, key = "value", changeEvent = "change", emitData) {
1416
1394
  if (isEqual(value, defaultState.value))
1417
1395
  return;
1418
1396
  innerState.value = value;
1419
- nextTick$1(() => {
1420
- emit?.(changeEvent, value, ...toRaw$1(unref$1(emitData)) || []);
1397
+ nextTick(() => {
1398
+ emit?.(changeEvent, value, ...toRaw$1(unref(emitData)) || []);
1421
1399
  });
1422
1400
  }
1423
1401
  });
1424
1402
  return [state, setState, defaultState];
1425
1403
  }
1426
- const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
1404
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1427
1405
  __name: "radioButton",
1428
1406
  props: {
1429
1407
  value: {
@@ -1438,7 +1416,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
1438
1416
  const props2 = __props;
1439
1417
  const attrs = useAttrs();
1440
1418
  const [state] = useFormValue(props2);
1441
- const getOptions = computed$1(() => {
1419
+ const getOptions = computed(() => {
1442
1420
  const { options } = props2;
1443
1421
  if (!options || options?.length === 0)
1444
1422
  return [];
@@ -1450,13 +1428,13 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
1450
1428
  return (_ctx, _cache) => {
1451
1429
  const _component_ARadioButton = RadioButton;
1452
1430
  const _component_ARadioGroup = RadioGroup;
1453
- return openBlock(), createBlock(_component_ARadioGroup, mergeProps(unref$1(attrs), {
1454
- value: unref$1(state),
1431
+ return openBlock(), createBlock(_component_ARadioGroup, mergeProps(unref(attrs), {
1432
+ value: unref(state),
1455
1433
  "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(state) ? state.value = $event : null),
1456
1434
  "button-style": "solid"
1457
1435
  }), {
1458
1436
  default: withCtx(() => [
1459
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(getOptions), (item) => {
1437
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getOptions), (item) => {
1460
1438
  return openBlock(), createBlock(_component_ARadioButton, {
1461
1439
  key: `${item.value}`,
1462
1440
  value: item.value,
@@ -1475,12 +1453,12 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
1475
1453
  }
1476
1454
  });
1477
1455
  const _hoisted_1$9 = { class: "input-with-dialog" };
1478
- const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
1456
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1479
1457
  __name: "formInputUseDialog",
1480
1458
  setup(__props) {
1481
1459
  const { t } = useI18n("UI");
1482
- const attrs = useAttrs$1();
1483
- const bindProps = computed$1(() => {
1460
+ const attrs = useAttrs();
1461
+ const bindProps = computed(() => {
1484
1462
  return {
1485
1463
  ...omit(attrs, [
1486
1464
  "formValues"
@@ -1503,9 +1481,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
1503
1481
  return (_ctx, _cache) => {
1504
1482
  return openBlock(), createElementBlock("div", _hoisted_1$9, [
1505
1483
  createElementVNode("div", { onClick: onClickInput }, [
1506
- createVNode(unref$1(Input), normalizeProps(guardReactiveProps(unref$1(bindProps))), null, 16)
1484
+ createVNode(unref(Input), normalizeProps(guardReactiveProps(unref(bindProps))), null, 16)
1507
1485
  ]),
1508
- unref$1(attrs).formValues?.schema?.linkProps?.length ? (openBlock(), createElementBlock("i", {
1486
+ unref(attrs).formValues?.schema?.linkProps?.length ? (openBlock(), createElementBlock("i", {
1509
1487
  key: 0,
1510
1488
  class: "i mdi:close-circle",
1511
1489
  onClick: clearProps
@@ -1516,7 +1494,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
1516
1494
  });
1517
1495
  const components = {
1518
1496
  Input,
1519
- InputWithDialog: _sfc_main$g,
1497
+ InputWithDialog: _sfc_main$h,
1520
1498
  InputTextArea: Input.TextArea,
1521
1499
  InputSearch: Input.Search,
1522
1500
  InputGroup: Input.Group,
@@ -1525,7 +1503,7 @@ const components = {
1525
1503
  TreeSelect,
1526
1504
  Radio,
1527
1505
  RadioGroup: Radio.Group,
1528
- RadioButtonGroup: _sfc_main$h,
1506
+ RadioButtonGroup: _sfc_main$i,
1529
1507
  Checkbox,
1530
1508
  CheckboxGroup: Checkbox.Group,
1531
1509
  AutoComplete,
@@ -1545,372 +1523,6 @@ const componentMap = /* @__PURE__ */ new Map();
1545
1523
  for (let item in components) {
1546
1524
  componentMap.set(item, components[item]);
1547
1525
  }
1548
- function _isSlot$1(s) {
1549
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
1550
- }
1551
- defineComponent({
1552
- name: "FormItem",
1553
- inheritAttrs: false,
1554
- props: {
1555
- schema: {
1556
- type: Object,
1557
- default: () => ({})
1558
- },
1559
- formProps: {
1560
- type: Object,
1561
- default: () => ({})
1562
- },
1563
- defaultValues: {
1564
- type: Object,
1565
- default: () => ({})
1566
- },
1567
- formModel: {
1568
- type: Object,
1569
- default: () => ({})
1570
- },
1571
- setFormModel: {
1572
- type: Function
1573
- },
1574
- formActionType: {
1575
- type: Object
1576
- }
1577
- },
1578
- setup(props2, {
1579
- emit,
1580
- slots
1581
- }) {
1582
- const {
1583
- getSlot
1584
- } = useSlots$1();
1585
- const {
1586
- t
1587
- } = useI18n("UI");
1588
- const {
1589
- getUiSize
1590
- } = useHeader();
1591
- const {
1592
- appConf
1593
- } = useAppStore();
1594
- const {
1595
- schema,
1596
- formProps
1597
- } = toRefs(props2);
1598
- const getValues = computed(() => {
1599
- const {
1600
- defaultValues,
1601
- formModel,
1602
- schema: schema2
1603
- } = props2;
1604
- let name = schema2.name;
1605
- return {
1606
- name: isArray(name) ? name.join("-") : name,
1607
- model: formModel,
1608
- schema: schema2,
1609
- values: {
1610
- ...defaultValues,
1611
- ...formModel
1612
- }
1613
- };
1614
- });
1615
- const getShow = computed(() => {
1616
- const {
1617
- show = true,
1618
- isAdvanced = true
1619
- } = props2.schema;
1620
- if (!isAdvanced) {
1621
- return false;
1622
- }
1623
- if (isFunction(show)) {
1624
- return show(unref(getValues).model);
1625
- }
1626
- return show;
1627
- });
1628
- const getComponentProps = computed(() => {
1629
- const {
1630
- schema: schema2
1631
- } = props2;
1632
- let {
1633
- props: cProps = {}
1634
- } = schema2;
1635
- if (isFunction(cProps)) {
1636
- cProps = cProps(unref(getValues).model) ?? {};
1637
- }
1638
- if (schema2.component === "Divider") {
1639
- cProps = Object.assign({
1640
- type: "horizontal"
1641
- }, cProps, {
1642
- orientation: "left"
1643
- });
1644
- }
1645
- return cProps;
1646
- });
1647
- function renderItem() {
1648
- const {
1649
- component,
1650
- slot,
1651
- render,
1652
- name,
1653
- colon = appConf.ui.form.colon,
1654
- suffix,
1655
- prefix
1656
- } = props2.schema;
1657
- const {
1658
- labelCol,
1659
- wrapperCol
1660
- } = unref(useLabelWidth(schema, formProps));
1661
- const getContent = () => {
1662
- const value = unref(getValues);
1663
- let _con = slot ? getSlot(slots, slot, value.model) : render ? render(value.model) : renderFormItem();
1664
- return component === "InputGroup" || component === "Icon" ? createVNode(FormItem, {
1665
- "class": "m-0"
1666
- }, _isSlot$1(_con) ? _con : {
1667
- default: () => [_con]
1668
- }) : _con;
1669
- };
1670
- const getSuffix = () => {
1671
- return isFunction(suffix) ? suffix(unref(getValues).model) : suffix;
1672
- };
1673
- const getPrefix = () => {
1674
- return isFunction(prefix) ? prefix(unref(getValues).model) : prefix;
1675
- };
1676
- return createVNode(Form.Item, {
1677
- "name": isArray(name) ? name.join("-") : name,
1678
- "colon": colon,
1679
- "class": [unref(getUiSize), {
1680
- "suffix-item": !!suffix
1681
- }],
1682
- "label": renderLabel(),
1683
- "rules": handleRules(),
1684
- "labelCol": labelCol,
1685
- "wrapperCol": wrapperCol
1686
- }, {
1687
- default: () => [createVNode("div", {
1688
- "style": "display:flex"
1689
- }, [!!prefix && createVNode("span", {
1690
- "class": "prefix px-2"
1691
- }, [getPrefix()]), createVNode("div", {
1692
- "style": "flex:1; width: 100%;"
1693
- }, [getContent()]), !!suffix && createVNode("span", {
1694
- "class": "suffix px-2"
1695
- }, [getSuffix()])])]
1696
- });
1697
- }
1698
- function renderLabel() {
1699
- const {
1700
- label,
1701
- toolTip,
1702
- subLabel,
1703
- toolTipProps = {}
1704
- } = props2.schema;
1705
- const renderLabel2 = subLabel ? createVNode("span", null, [createTextVNode(" "), label, createTextVNode(" "), createVNode("span", {
1706
- "class": "text-secondary opacity-50"
1707
- }, [createTextVNode("("), subLabel, createTextVNode(")")])]) : label;
1708
- const _toolTip = isFunction(toolTip) ? toolTip(unref(getValues).model) : toolTip;
1709
- const _toolTipProps = {
1710
- title: renderLabel2,
1711
- autoAdjustOverflow: true,
1712
- placement: "top",
1713
- ...toolTipProps
1714
- };
1715
- return _toolTip ? createVNode("span", null, [createVNode(Tooltip$1, _toolTipProps, _isSlot$1(renderLabel2) ? renderLabel2 : {
1716
- default: () => [renderLabel2]
1717
- })]) : renderLabel2;
1718
- }
1719
- function renderFormItem() {
1720
- const {
1721
- schema: schema2,
1722
- formModel,
1723
- formActionType
1724
- } = props2;
1725
- const {
1726
- component,
1727
- name,
1728
- changeEvent = "change",
1729
- valueField,
1730
- renderComponent,
1731
- props: sProps
1732
- } = props2.schema;
1733
- const isCheck = component && ["Switch", "Checkbox"].includes(component);
1734
- const eventKey = `on${upperFirst(changeEvent)}`;
1735
- const _sProps = isFunction(sProps) ? sProps(formModel) : sProps;
1736
- const on2 = {
1737
- [eventKey]: (...args) => {
1738
- const [e] = args;
1739
- const target = e ? e.target : null;
1740
- const value = target ? isCheck ? target.checked : target.value : e;
1741
- if (isString(name)) {
1742
- props2.setFormModel(name, value);
1743
- } else if (isArray(name)) {
1744
- name.map((key) => props2.setFormModel(key, value));
1745
- }
1746
- if (_sProps && _sProps[eventKey])
1747
- _sProps[eventKey](...args, formModel);
1748
- }
1749
- };
1750
- for (let it in _sProps) {
1751
- if (it.startsWith("on") && it !== eventKey) {
1752
- on2[it] = (...args) => {
1753
- _sProps[it](...args, formModel);
1754
- };
1755
- }
1756
- }
1757
- const getDisable = computed(() => {
1758
- const {
1759
- disabled: gDisabled
1760
- } = props2.formProps;
1761
- const {
1762
- disabled
1763
- } = props2.schema;
1764
- const {
1765
- disabled: itemDisabled = false
1766
- } = unref(getComponentProps);
1767
- let _disabled = !!gDisabled || itemDisabled;
1768
- if (isBoolean(disabled))
1769
- _disabled = disabled;
1770
- if (isFunction(disabled))
1771
- _disabled = disabled(unref(getValues).model);
1772
- return _disabled;
1773
- });
1774
- const itemProps = {
1775
- allowClear: _sProps?.allowClear ?? appConf.ui.form.allowClear,
1776
- size: unref(getUiSize) === UiSize.MIDDLE ? "default" : unref(getUiSize),
1777
- ...unref(getComponentProps),
1778
- disabled: unref(getDisable)
1779
- };
1780
- if (component === "Select") {
1781
- {
1782
- itemProps.showSearch = true;
1783
- itemProps.optionFilterProp = "label";
1784
- }
1785
- }
1786
- if (!itemProps.disabled && component !== "RangePicker") {
1787
- itemProps.placeholder = unref(getComponentProps)?.placeholder || createPlaceholder(component);
1788
- }
1789
- if (["DatePicker", "MonthPicker", "RangePicker"].includes(component)) {
1790
- itemProps.defaultValue = props2.formModel[name];
1791
- }
1792
- itemProps.codeName = name;
1793
- itemProps.formValues = unref(getValues);
1794
- if (["Select", "DatePicker", "MonthPicker", "WeekPicker", "RangePicker"].includes(component)) {
1795
- itemProps.dropdownClassName += ` ${unref(getUiSize)}`;
1796
- }
1797
- const bindValue = {
1798
- [valueField || (isCheck ? "checked" : "value")]: props2.formModel[name]
1799
- };
1800
- let compAttr = {
1801
- ...itemProps,
1802
- ...bindValue,
1803
- ...on2
1804
- };
1805
- const Comp = componentMap.get(component);
1806
- if (!renderComponent) {
1807
- return createVNode(Comp, compAttr, null);
1808
- }
1809
- const compSlot = isFunction(renderComponent) ? {
1810
- ...renderComponent(unref(getValues))
1811
- } : {
1812
- default: () => renderComponent
1813
- };
1814
- return createVNode(Comp, compAttr, _isSlot$1(compSlot) ? compSlot : {
1815
- default: () => [compSlot]
1816
- });
1817
- }
1818
- function handleRules() {
1819
- const {
1820
- rules: defaultRules = [],
1821
- component,
1822
- label,
1823
- dynamicRules,
1824
- required
1825
- } = props2.schema;
1826
- if (!component)
1827
- return [];
1828
- if (isFunction(dynamicRules)) {
1829
- return dynamicRules(unref(getValues).model);
1830
- }
1831
- const defaultMsg = createPlaceholder(component) + label;
1832
- let rules = cloneDeep(defaultRules);
1833
- const getRequired = isFunction(required) ? required(unref(getValues).model) : required;
1834
- function validator(rule, value) {
1835
- const msg = rule.message || defaultMsg;
1836
- if (value === void 0 || isNull(value) || Array.isArray(value) && value.length === 0 || typeof value === "string" && value.trim() === "" || typeof value === "object" && Reflect.has(value, "checked") && Reflect.has(value, "halfChecked") && Array.isArray(value.checked) && Array.isArray(value.halfChecked) && value.checked.length === 0 && value.halfChecked.length === 0) {
1837
- return Promise.reject(msg);
1838
- }
1839
- return Promise.resolve();
1840
- }
1841
- if (!rules || !rules.length) {
1842
- let _required = isBoolean(getRequired) ? getRequired : unref(getRequired);
1843
- rules = _required ? [{
1844
- required: _required,
1845
- validator
1846
- }] : [];
1847
- }
1848
- const requiredIndex = rules.findIndex((rule) => Reflect.has(rule, "required") && !Reflect.has(rule, "validator"));
1849
- if (requiredIndex !== -1) {
1850
- const rule = rules[requiredIndex];
1851
- if (!unref(getShow)) {
1852
- rule.required = false;
1853
- }
1854
- if (!Reflect.has(rule, "type")) {
1855
- rule.type = component === "InputNumber" ? "number" : "string";
1856
- }
1857
- rule.message = rule.message || defaultMsg;
1858
- if (component.includes("Input") || component.includes("Textarea")) {
1859
- rule.whitespace = true;
1860
- }
1861
- const valueFormat = unref(getComponentProps)?.valueFormat;
1862
- setComponentRuleType(rule, component, valueFormat);
1863
- }
1864
- const maxIndex = rules.findIndex((val) => val.max);
1865
- if (maxIndex !== -1 && !rules[maxIndex].validator) {
1866
- rules[maxIndex].message = rules[maxIndex].message || `\u6700\u5927\u503C\u4E3A${rules[maxIndex].max}`;
1867
- }
1868
- return rules;
1869
- }
1870
- return () => {
1871
- let _slot2;
1872
- const {
1873
- colSlot,
1874
- renderCol,
1875
- colProps,
1876
- component,
1877
- render,
1878
- slot
1879
- } = props2.schema;
1880
- const {
1881
- colProps: gColProps,
1882
- mode
1883
- } = props2.formProps;
1884
- let _colProps = colProps || gColProps || (mode === "search" ? appConf.ui.form.searchColspan : appConf.ui.form.dialogColspan);
1885
- const values = unref(getValues);
1886
- if (!component) {
1887
- if (!render && !renderCol && !slot) {
1888
- error(t("NEED_RENDER"));
1889
- return;
1890
- }
1891
- }
1892
- if (component === "Divider") {
1893
- let _slot;
1894
- let cprops = unref(getComponentProps);
1895
- const span = cprops?.span ?? 24;
1896
- return createVNode(Col, {
1897
- "span": span
1898
- }, {
1899
- default: () => [createVNode(Divider, cprops, _isSlot$1(_slot = renderLabel()) ? _slot : {
1900
- default: () => [_slot]
1901
- })]
1902
- });
1903
- }
1904
- const getContent = () => {
1905
- return colSlot ? getSlot(slots, colSlot, values) : renderCol ? renderCol(values) : renderItem();
1906
- };
1907
- return unref(getShow) && createVNode(Col, _colProps, _isSlot$1(_slot2 = getContent()) ? _slot2 : {
1908
- default: () => [_slot2]
1909
- });
1910
- };
1911
- }
1912
- });
1913
- const index$1 = "";
1914
1526
  const _hoisted_1$8 = {
1915
1527
  key: 0,
1916
1528
  className: "preIcon pr-1"
@@ -1924,7 +1536,7 @@ const _hoisted_4$2 = /* @__PURE__ */ createElementVNode("i", { class: "text-2xl
1924
1536
  const _hoisted_5$1 = [
1925
1537
  _hoisted_4$2
1926
1538
  ];
1927
- const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
1539
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
1928
1540
  __name: "FormButtons",
1929
1541
  props: {
1930
1542
  mode: {
@@ -2007,11 +1619,11 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
2007
1619
  );
2008
1620
  return (_ctx, _cache) => {
2009
1621
  const _component_AButton = Button;
2010
- const _component_AFormItem = FormItem$1;
2011
- const _component_ACol = Col$1;
1622
+ const _component_AFormItem = FormItem;
1623
+ const _component_ACol = Col;
2012
1624
  const _directive_icon = resolveDirective("icon");
2013
1625
  const _directive_auth = resolveDirective("auth");
2014
- return __props.show ? (openBlock(), createBlock(_component_ACol, normalizeProps(mergeProps({ key: 0 }, unref$1(colOpt))), {
1626
+ return __props.show ? (openBlock(), createBlock(_component_ACol, normalizeProps(mergeProps({ key: 0 }, unref(colOpt))), {
2015
1627
  default: withCtx(() => [
2016
1628
  createVNode(_component_AFormItem, {
2017
1629
  class: "dt-form-btns",
@@ -2023,11 +1635,11 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
2023
1635
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.buttonList, (button) => {
2024
1636
  return openBlock(), createElementBlock(Fragment, null, [
2025
1637
  (button.show === void 0 ? true : button.show) ? withDirectives((openBlock(), createBlock(_component_AButton, {
1638
+ class: normalizeClass(["items-center", button.class]),
2026
1639
  type: button.type,
2027
- class: normalizeClass(button.class),
2028
1640
  loading: button.loading,
2029
1641
  disabled: button.disabled,
2030
- key: unref$1(key),
1642
+ key: unref(key),
2031
1643
  onClick: ($event) => handleBtnClick(button)
2032
1644
  }, {
2033
1645
  icon: withCtx(() => [
@@ -2036,7 +1648,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
2036
1648
  ]) : createCommentVNode("", true)
2037
1649
  ]),
2038
1650
  default: withCtx(() => [
2039
- createTextVNode(" " + toDisplayString(unref$1(t)(button.name)) + " ", 1),
1651
+ createTextVNode(" " + toDisplayString(unref(t)(button.label)) + " ", 1),
2040
1652
  button.postIcon ? withDirectives((openBlock(), createElementBlock("span", _hoisted_2$2, null, 512)), [
2041
1653
  [_directive_icon, button.postIcon]
2042
1654
  ]) : createCommentVNode("", true)
@@ -2047,16 +1659,16 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
2047
1659
  ]) : createCommentVNode("", true)
2048
1660
  ], 64);
2049
1661
  }), 256)),
2050
- unref$1(showAdvanceRef) ? (openBlock(), createBlock(_component_AButton, {
1662
+ unref(showAdvanceRef) ? (openBlock(), createBlock(_component_AButton, {
2051
1663
  key: 0,
2052
1664
  type: "link",
2053
1665
  class: "advanced",
2054
1666
  onClick: toggleAdvanced
2055
1667
  }, {
2056
1668
  default: withCtx(() => [
2057
- createElementVNode("span", _hoisted_3$2, toDisplayString(unref$1(advancedRef) ? unref$1(t)("UI.ADVANCED") : unref$1(t)("UI.EXPAND")), 1),
1669
+ createElementVNode("span", _hoisted_3$2, toDisplayString(advancedRef.value ? unref(t)("UI.ADVANCED") : unref(t)("UI.EXPAND")), 1),
2058
1670
  createElementVNode("span", {
2059
- class: normalizeClass(unref$1(getAdvanceClass))
1671
+ class: normalizeClass(unref(getAdvanceClass))
2060
1672
  }, _hoisted_5$1, 2)
2061
1673
  ]),
2062
1674
  _: 1
@@ -2071,7 +1683,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
2071
1683
  }
2072
1684
  });
2073
1685
  const _hoisted_1$7 = { key: 0 };
2074
- const _sfc_main$e = /* @__PURE__ */ defineComponent$1({
1686
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
2075
1687
  __name: "Fullscreen",
2076
1688
  setup(__props) {
2077
1689
  const { t } = useI18n("UI");
@@ -2097,15 +1709,15 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent$1({
2097
1709
  const _component_ATooltip = Tooltip;
2098
1710
  return openBlock(), createBlock(_component_ATooltip, { placement: "top" }, {
2099
1711
  title: withCtx(() => [
2100
- !unref$1(isFullscreen) ? (openBlock(), createElementBlock("span", _hoisted_1$7, toDisplayString(unref$1(t)("FULLSCREEN")), 1)) : createCommentVNode("", true)
1712
+ !unref(isFullscreen) ? (openBlock(), createElementBlock("span", _hoisted_1$7, toDisplayString(unref(t)("FULLSCREEN")), 1)) : createCommentVNode("", true)
2101
1713
  ]),
2102
1714
  default: withCtx(() => [
2103
1715
  createElementVNode("span", {
2104
1716
  class: "flex",
2105
- onClick: _cache[0] || (_cache[0] = (...args) => unref$1(toggle) && unref$1(toggle)(...args))
1717
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(toggle) && unref(toggle)(...args))
2106
1718
  }, [
2107
1719
  createElementVNode("i", {
2108
- class: normalizeClass(["i w-7 leading-7 text-center cursor-pointer", unref$1(isFullscreen) ? "ic:baseline-fullscreen-exit" : "ic:baseline-fullscreen"])
1720
+ class: normalizeClass(["i w-7 leading-7 text-center cursor-pointer", unref(isFullscreen) ? "ic:baseline-fullscreen-exit" : "ic:baseline-fullscreen"])
2109
1721
  }, null, 2)
2110
1722
  ])
2111
1723
  ]),
@@ -2158,7 +1770,7 @@ function useModalOut() {
2158
1770
  },
2159
1771
  openModal: (params, afterClose) => {
2160
1772
  const id = unref(uid);
2161
- dataTransfer[id] = isObject(params) ? { ...toRaw(params) } : params;
1773
+ dataTransfer[id] = isObject(params) ? { ...toRaw$1(params) } : params;
2162
1774
  getInstance()?.setModalProps({
2163
1775
  footer: [],
2164
1776
  defaultFullscreen: false,
@@ -2196,7 +1808,7 @@ function useModal(props2, setModalData) {
2196
1808
  uidRef.value = uuid;
2197
1809
  modalInstanceRef.value = modalInstance;
2198
1810
  currentInstance?.emit("register", modalInstance, uuid);
2199
- orgDialogProp[uuid] = toRaw(props2);
1811
+ orgDialogProp[uuid] = toRaw$1(props2);
2200
1812
  modalInstance.setModalProps(props2);
2201
1813
  };
2202
1814
  watchEffect(() => {
@@ -2384,7 +1996,7 @@ function useDragMove(context) {
2384
1996
  function _isSlot(s) {
2385
1997
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
2386
1998
  }
2387
- const Modal = defineComponent({
1999
+ const _sfc_main$e = {
2388
2000
  name: "Modal",
2389
2001
  inheritAttrs: false,
2390
2002
  props: basicProps,
@@ -2406,7 +2018,7 @@ const Modal = defineComponent({
2406
2018
  });
2407
2019
  const {
2408
2020
  extendSlots
2409
- } = useSlots$1();
2021
+ } = useSlots();
2410
2022
  const onCancel = (e) => emit("cancel", e);
2411
2023
  return () => {
2412
2024
  let _slot;
@@ -2418,13 +2030,13 @@ const Modal = defineComponent({
2418
2030
  };
2419
2031
  if (!propsData?.visible)
2420
2032
  return null;
2421
- return createVNode(Modal$1, propsData, _isSlot(_slot = extendSlots(slots)) ? _slot : {
2033
+ return createVNode(Modal, propsData, _isSlot(_slot = extendSlots(slots)) ? _slot : {
2422
2034
  default: () => [_slot]
2423
2035
  });
2424
2036
  };
2425
2037
  }
2426
- });
2427
- const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
2038
+ };
2039
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2428
2040
  __name: "CloseIcon",
2429
2041
  props: {
2430
2042
  canFullscreen: { type: Boolean, default: true },
@@ -2454,12 +2066,12 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
2454
2066
  return (_ctx, _cache) => {
2455
2067
  const _component_ATooltip = Tooltip;
2456
2068
  return openBlock(), createElementBlock("div", {
2457
- class: normalizeClass(["flex h-14 items-center justify-center", unref$1(getClass)])
2069
+ class: normalizeClass(["flex h-14 items-center justify-center", unref(getClass)])
2458
2070
  }, [
2459
2071
  __props.canFullscreen ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
2460
2072
  __props.fullScreen ? (openBlock(), createBlock(_component_ATooltip, {
2461
2073
  key: 0,
2462
- title: unref$1(t)("EXIT_FULLSCREEN"),
2074
+ title: unref(t)("EXIT_FULLSCREEN"),
2463
2075
  placement: "bottom"
2464
2076
  }, {
2465
2077
  default: withCtx(() => [
@@ -2471,7 +2083,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
2471
2083
  _: 1
2472
2084
  }, 8, ["title"])) : (openBlock(), createBlock(_component_ATooltip, {
2473
2085
  key: 1,
2474
- title: unref$1(t)("FULLSCREEN"),
2086
+ title: unref(t)("FULLSCREEN"),
2475
2087
  placement: "bottom"
2476
2088
  }, {
2477
2089
  default: withCtx(() => [
@@ -2551,7 +2163,7 @@ function removeResizeListener(element, fn) {
2551
2163
  element.__ro__.disconnect();
2552
2164
  }
2553
2165
  }
2554
- const Bar = defineComponent$1({
2166
+ const Bar = defineComponent({
2555
2167
  name: "Bar",
2556
2168
  props: {
2557
2169
  vertical: Boolean,
@@ -2559,14 +2171,14 @@ const Bar = defineComponent$1({
2559
2171
  move: Number
2560
2172
  },
2561
2173
  setup(props2) {
2562
- const instance = getCurrentInstance$1();
2563
- const thumb = ref$1();
2174
+ const instance = getCurrentInstance();
2175
+ const thumb = ref();
2564
2176
  const wrap = inject("scroll-bar-wrap", {});
2565
- const bar = computed$1(() => {
2177
+ const bar = computed(() => {
2566
2178
  return BAR_MAP[props2.vertical ? "vertical" : "horizontal"];
2567
2179
  });
2568
- const barStore = ref$1({});
2569
- const cursorDown = ref$1();
2180
+ const barStore = ref({});
2181
+ const cursorDown = ref();
2570
2182
  const clickThumbHandler = (e) => {
2571
2183
  if (e.ctrlKey || e.button === 2) {
2572
2184
  return;
@@ -2607,7 +2219,7 @@ const Bar = defineComponent$1({
2607
2219
  off(document, "mousemove", mouseMoveDocumentHandler);
2608
2220
  document.onselectstart = null;
2609
2221
  }
2610
- onUnmounted$1(() => {
2222
+ onUnmounted(() => {
2611
2223
  off(document, "mouseup", mouseUpDocumentHandler);
2612
2224
  });
2613
2225
  return () => h$1(
@@ -2630,7 +2242,7 @@ const Bar = defineComponent$1({
2630
2242
  }
2631
2243
  });
2632
2244
  const _hoisted_1$6 = { class: "scrollbar relative h-full overflow-hidden" };
2633
- const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
2245
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
2634
2246
  __name: "scroll-bar",
2635
2247
  props: {
2636
2248
  wrapClass: {
@@ -2704,7 +2316,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
2704
2316
  ref_key: "wrap",
2705
2317
  ref: wrap,
2706
2318
  class: normalizeClass([[__props.wrapClass, "scrollbar__wrap--hidden-default"], "h-full overflow-auto"]),
2707
- style: normalizeStyle(unref$1(style)),
2319
+ style: normalizeStyle(unref(style)),
2708
2320
  onScroll: handleScroll
2709
2321
  }, [
2710
2322
  (openBlock(), createBlock(resolveDynamicComponent(__props.tag), {
@@ -2719,20 +2331,20 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
2719
2331
  _: 3
2720
2332
  }, 8, ["class", "style"]))
2721
2333
  ], 38),
2722
- createVNode(unref$1(Bar), {
2723
- move: unref$1(moveX),
2724
- size: unref$1(sizeWidth)
2334
+ createVNode(unref(Bar), {
2335
+ move: moveX.value,
2336
+ size: sizeWidth.value
2725
2337
  }, null, 8, ["move", "size"]),
2726
- createVNode(unref$1(Bar), {
2338
+ createVNode(unref(Bar), {
2727
2339
  vertical: "",
2728
- move: unref$1(moveY),
2729
- size: unref$1(sizeHeight)
2340
+ move: moveY.value,
2341
+ size: sizeHeight.value
2730
2342
  }, null, 8, ["move", "size"])
2731
2343
  ]);
2732
2344
  };
2733
2345
  }
2734
2346
  });
2735
- const _sfc_main$b = /* @__PURE__ */ defineComponent$1({
2347
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2736
2348
  __name: "scroll-container",
2737
2349
  setup(__props) {
2738
2350
  const scrollbarRef = ref(null);
@@ -2749,8 +2361,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent$1({
2749
2361
  };
2750
2362
  }
2751
2363
  });
2752
- const _sfc_main$a = defineComponent({
2753
- name: "slot-container",
2364
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2365
+ __name: "slot-container",
2754
2366
  props: {
2755
2367
  template: {
2756
2368
  type: Function
@@ -2759,9 +2371,11 @@ const _sfc_main$a = defineComponent({
2759
2371
  type: Object
2760
2372
  }
2761
2373
  },
2762
- setup(props2) {
2763
- return () => {
2764
- return h("div", [props2.template(props2.data)]);
2374
+ setup(__props) {
2375
+ const props2 = __props;
2376
+ const Container = h$1("div", [props2.template(props2.data)]);
2377
+ return (_ctx, _cache) => {
2378
+ return openBlock(), createBlock(unref(Container));
2765
2379
  };
2766
2380
  }
2767
2381
  });
@@ -2773,7 +2387,7 @@ const withInstall = (comp) => {
2773
2387
  };
2774
2388
  const DtScrollContainer = withInstall(_sfc_main$b);
2775
2389
  withInstall(_sfc_main$a);
2776
- const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
2390
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2777
2391
  __name: "ModalWrap",
2778
2392
  props: {
2779
2393
  useWrapper: { type: Boolean, default: true },
@@ -2806,10 +2420,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
2806
2420
  const wrapperRefDom = unref(wrapperRef);
2807
2421
  if (!wrapperRefDom)
2808
2422
  return;
2809
- const bodyDom = wrapperRefDom.$el.parentElement;
2423
+ const bodyDom = wrapperRefDom.$el.parentElement.parentElement.parentElement;
2810
2424
  if (!bodyDom)
2811
2425
  return;
2812
- bodyDom.style.padding = "0";
2426
+ bodyDom.style.padding = props2.useWrapper ? "24px" : "0";
2813
2427
  await nextTick();
2814
2428
  const modalDom = bodyDom.parentElement && bodyDom.parentElement.parentElement;
2815
2429
  return modalDom;
@@ -2861,7 +2475,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
2861
2475
  }
2862
2476
  );
2863
2477
  return (_ctx, _cache) => {
2864
- return openBlock(), createBlock(unref$1(DtScrollContainer), {
2478
+ return openBlock(), createBlock(unref(DtScrollContainer), {
2865
2479
  ref_key: "wrapperRef",
2866
2480
  ref: wrapperRef
2867
2481
  }, {
@@ -2869,7 +2483,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
2869
2483
  createElementVNode("div", {
2870
2484
  ref_key: "wrapRef",
2871
2485
  ref: wrapRef,
2872
- style: normalizeStyle(unref$1(wrapStyle))
2486
+ style: normalizeStyle(unref(wrapStyle))
2873
2487
  }, [
2874
2488
  renderSlot(_ctx.$slots, "default")
2875
2489
  ], 4)
@@ -2879,7 +2493,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
2879
2493
  };
2880
2494
  }
2881
2495
  });
2882
- const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
2496
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2883
2497
  __name: "ModalFooter",
2884
2498
  props: {
2885
2499
  buttons: Object,
@@ -2895,12 +2509,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
2895
2509
  setup(__props, { emit: emits }) {
2896
2510
  const props2 = __props;
2897
2511
  const { t } = useI18n("UI");
2898
- const buttonList = computed$1(() => {
2512
+ const buttonList = computed(() => {
2899
2513
  if (props2.buttons && props2.buttons.length)
2900
2514
  return props2.buttons;
2901
2515
  let buttonActions = [
2902
- { t: "\u4FDD\u5B58", name: props2.okText || t("SAVE"), preIcon: "mdi:content-save", type: "primary", flag: "OK" },
2903
- { t: "\u5173\u95ED", name: props2.cancelText || t("CLOSE"), preIcon: "mdi:close", flag: "CANCEL" }
2516
+ { t: "\u4FDD\u5B58", label: props2.okText || t("SAVE"), preIcon: "mdi:content-save", type: "primary", flag: "OK" },
2517
+ { t: "\u5173\u95ED", label: props2.cancelText || t("CLOSE"), preIcon: "mdi:close", flag: "CANCEL" }
2904
2518
  ];
2905
2519
  if (!props2.showSave)
2906
2520
  buttonActions = buttonActions.filter((btn) => btn.flag !== "OK");
@@ -2921,9 +2535,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
2921
2535
  return (_ctx, _cache) => {
2922
2536
  return openBlock(), createElementBlock(Fragment, null, [
2923
2537
  renderSlot(_ctx.$slots, "appendFooter"),
2924
- createVNode(_sfc_main$f, {
2538
+ createVNode(_sfc_main$g, {
2925
2539
  mode: "dialog",
2926
- buttonList: unref$1(buttonList),
2540
+ buttonList: unref(buttonList),
2927
2541
  onHandleMethod: _cache[0] || (_cache[0] = ($event) => handleMethod($event))
2928
2542
  }, null, 8, ["buttonList"])
2929
2543
  ], 64);
@@ -2948,7 +2562,7 @@ function useFullScreen(wrapClassName) {
2948
2562
  toggleFullScreen
2949
2563
  };
2950
2564
  }
2951
- const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
2565
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2952
2566
  __name: "index",
2953
2567
  props: basicProps,
2954
2568
  emits: ["visible-change", "height-change", "cancel", "save", "register", "update:visible"],
@@ -3048,23 +2662,23 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
3048
2662
  });
3049
2663
  return (_ctx, _cache) => {
3050
2664
  const _component_ASpin = Spin;
3051
- return openBlock(), createBlock(unref$1(Modal), mergeProps(unref$1(getBindValue), { onCancel: handleCancel }), createSlots({
2665
+ return openBlock(), createBlock(_sfc_main$e, mergeProps(unref(getBindValue), { onCancel: handleCancel }), createSlots({
3052
2666
  default: withCtx(() => [
3053
2667
  createVNode(_component_ASpin, {
3054
- spinning: unref$1(getBindValue).loading,
3055
- tip: unref$1(getBindValue).loadingTip
2668
+ spinning: unref(getBindValue).loading,
2669
+ tip: unref(getBindValue).loadingTip
3056
2670
  }, {
3057
2671
  default: withCtx(() => [
3058
2672
  createVNode(_sfc_main$9, mergeProps({
3059
- useWrapper: unref$1(getBindValue).useWrapper,
3060
- fullScreen: unref$1(fullScreenRef),
2673
+ useWrapper: unref(getBindValue).useWrapper,
2674
+ fullScreen: unref(fullScreenRef),
3061
2675
  ref_key: "modalWrapperRef",
3062
2676
  ref: modalWrapperRef,
3063
- minHeight: unref$1(getBindValue).minHeight,
3064
- height: unref$1(getWrapperHeight),
3065
- visible: unref$1(visibleRef),
3066
- modalFooterHeight: unref$1(modalFooterHeight)
3067
- }, unref$1(omit)(unref$1(getBindValue).wrapperProps, "visible", "height", "modalFooterHeight"), { onHeightChange: handleHeightChange }), {
2677
+ minHeight: unref(getBindValue).minHeight,
2678
+ height: unref(getWrapperHeight),
2679
+ visible: visibleRef.value,
2680
+ modalFooterHeight: unref(modalFooterHeight)
2681
+ }, unref(omit)(unref(getBindValue).wrapperProps, "visible", "height", "modalFooterHeight"), { onHeightChange: handleHeightChange }), {
3068
2682
  default: withCtx(() => [
3069
2683
  renderSlot(_ctx.$slots, "default")
3070
2684
  ]),
@@ -3080,10 +2694,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
3080
2694
  name: "closeIcon",
3081
2695
  fn: withCtx(() => [
3082
2696
  createVNode(_sfc_main$d, {
3083
- canFullscreen: unref$1(getBindValue).canFullscreen,
3084
- fullScreen: unref$1(fullScreenRef),
2697
+ canFullscreen: unref(getBindValue).canFullscreen,
2698
+ fullScreen: unref(fullScreenRef),
3085
2699
  onCancel: handleCancel,
3086
- onFullscreen: unref$1(toggleFullScreen)
2700
+ onFullscreen: unref(toggleFullScreen)
3087
2701
  }, null, 8, ["canFullscreen", "fullScreen", "onFullscreen"])
3088
2702
  ]),
3089
2703
  key: "0"
@@ -3091,7 +2705,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
3091
2705
  !_ctx.$slots.title ? {
3092
2706
  name: "title",
3093
2707
  fn: withCtx(() => [
3094
- createTextVNode(toDisplayString(unref$1(getMergeProps).title), 1)
2708
+ createTextVNode(toDisplayString(unref(getMergeProps).title), 1)
3095
2709
  ]),
3096
2710
  key: "1"
3097
2711
  } : void 0,
@@ -3099,11 +2713,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
3099
2713
  name: "footer",
3100
2714
  fn: withCtx(() => [
3101
2715
  createVNode(_sfc_main$8, {
3102
- buttons: unref$1(propsRef)?.footer,
3103
- showSave: unref$1(getBindValue).showOkBtn,
3104
- showCancel: unref$1(getBindValue).showCancelBtn,
3105
- okText: unref$1(getBindValue).okText,
3106
- cancelText: unref$1(getBindValue).cancelText,
2716
+ buttons: propsRef.value?.footer,
2717
+ showSave: unref(getBindValue).showOkBtn,
2718
+ showCancel: unref(getBindValue).showCancelBtn,
2719
+ okText: unref(getBindValue).okText,
2720
+ cancelText: unref(getBindValue).cancelText,
3107
2721
  onHandleSave: handleSave,
3108
2722
  onHandleCancel: handleCancel
3109
2723
  }, createSlots({ _: 2 }, [
@@ -3119,7 +2733,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
3119
2733
  ]),
3120
2734
  key: "2"
3121
2735
  } : void 0,
3122
- renderList(Object.keys(unref$1(omit)(_ctx.$slots, "default")), (item) => {
2736
+ renderList(Object.keys(unref(omit)(_ctx.$slots, "default")), (item) => {
3123
2737
  return {
3124
2738
  name: item,
3125
2739
  fn: withCtx((data) => [
@@ -3131,9 +2745,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
3131
2745
  };
3132
2746
  }
3133
2747
  });
3134
- const index = "";
3135
2748
  const _hoisted_1$5 = { class: "column-select" };
3136
- const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
2749
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3137
2750
  __name: "DownloadCtrl",
3138
2751
  setup(__props) {
3139
2752
  const { t } = useI18n("UI");
@@ -3181,29 +2794,29 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
3181
2794
  return (_ctx, _cache) => {
3182
2795
  const _component_ACheckbox = Checkbox$1;
3183
2796
  const _component_ADivider = Divider$1;
3184
- const _component_ACol = Col$1;
2797
+ const _component_ACol = Col;
3185
2798
  const _component_ARow = Row;
3186
- return openBlock(), createBlock(unref$1(_sfc_main$7), {
3187
- onRegister: unref$1(registerDialog),
2799
+ return openBlock(), createBlock(unref(_sfc_main$7), {
2800
+ onRegister: unref(registerDialog),
3188
2801
  onSave: save
3189
2802
  }, {
3190
2803
  default: withCtx(() => [
3191
2804
  createElementVNode("div", _hoisted_1$5, [
3192
2805
  createVNode(_component_ACheckbox, {
3193
- checked: unref$1(state).checkAll,
3194
- "onUpdate:checked": _cache[0] || (_cache[0] = ($event) => unref$1(state).checkAll = $event),
3195
- indeterminate: unref$1(state).indeterminate,
2806
+ checked: state.checkAll,
2807
+ "onUpdate:checked": _cache[0] || (_cache[0] = ($event) => state.checkAll = $event),
2808
+ indeterminate: state.indeterminate,
3196
2809
  onChange: onCheckAllChange
3197
2810
  }, {
3198
2811
  default: withCtx(() => [
3199
- createTextVNode(toDisplayString(unref$1(t)("SELECT_ALL")), 1)
2812
+ createTextVNode(toDisplayString(unref(t)("SELECT_ALL")), 1)
3200
2813
  ]),
3201
2814
  _: 1
3202
2815
  }, 8, ["checked", "indeterminate"]),
3203
2816
  createVNode(_component_ADivider, { dashed: "" }),
3204
2817
  createVNode(_component_ARow, null, {
3205
2818
  default: withCtx(() => [
3206
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(modalData), (it, index2) => {
2819
+ (openBlock(true), createElementBlock(Fragment, null, renderList(modalData.value, (it, index) => {
3207
2820
  return openBlock(), createBlock(_component_ACol, { span: 8 }, {
3208
2821
  default: withCtx(() => [
3209
2822
  createVNode(_component_ACheckbox, {
@@ -3229,17 +2842,28 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
3229
2842
  };
3230
2843
  }
3231
2844
  });
3232
- const _hoisted_1$4 = /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-download w-7 leading-7 text-center cursor-pointer" }, null, -1);
3233
- const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
2845
+ const _hoisted_1$4 = /* @__PURE__ */ createElementVNode("span", { class: "flex" }, [
2846
+ /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-download w-7 leading-7 text-center cursor-pointer" })
2847
+ ], -1);
2848
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3234
2849
  __name: "Download",
3235
2850
  props: {
3236
- onlyBackDowonload: Boolean,
3237
- onlyFrontDownload: Boolean
2851
+ download: {
2852
+ type: [Boolean, Object]
2853
+ }
3238
2854
  },
3239
2855
  setup(__props) {
2856
+ const props2 = __props;
3240
2857
  const table = getTableInstance();
3241
2858
  const [registerDialog, { openModal }] = useModalOut();
2859
+ const { appConf } = useAppStore();
3242
2860
  const { t } = useI18n("UI");
2861
+ const isInclude = (type) => {
2862
+ return isBoolean(props2.download) && props2.download && appConf?.ui?.table?.exportTable.includes(type) || isArray(props2.download) && props2.download.includes(type);
2863
+ };
2864
+ const showCurrentDownload = computed(() => isInclude("current"));
2865
+ const showSelectedDownload = computed(() => isInclude("select"));
2866
+ const showBackDownload = computed(() => isInclude("all"));
3243
2867
  function handleTitleClick({ key }) {
3244
2868
  const { onDownload, columns: allColumns, dataSource } = unref(table.getBind);
3245
2869
  const excludesFlag = ["ACTION", "CHECKBOX", "RADIO"];
@@ -3259,32 +2883,32 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
3259
2883
  const _component_ATooltip = Tooltip;
3260
2884
  return openBlock(), createBlock(_component_ATooltip, { placement: "top" }, {
3261
2885
  title: withCtx(() => [
3262
- createElementVNode("span", null, toDisplayString(unref$1(t)("EXPORT")), 1)
2886
+ createElementVNode("span", null, toDisplayString(unref(t)("EXPORT")), 1)
3263
2887
  ]),
3264
2888
  default: withCtx(() => [
3265
2889
  createVNode(_component_ADropdown, {
3266
2890
  placement: "bottom",
3267
2891
  trigger: ["click"],
3268
- getPopupContainer: unref$1(getPopupContainer)
2892
+ getPopupContainer: unref(getPopupContainer)
3269
2893
  }, {
3270
2894
  overlay: withCtx(() => [
3271
2895
  createVNode(_component_AMenu, { onClick: handleTitleClick }, {
3272
2896
  default: withCtx(() => [
3273
- !__props.onlyBackDowonload ? (openBlock(), createBlock(_component_AMenuItem, { key: "current" }, {
2897
+ unref(showCurrentDownload) ? (openBlock(), createBlock(_component_AMenuItem, { key: "current" }, {
3274
2898
  default: withCtx(() => [
3275
- createElementVNode("span", null, toDisplayString(unref$1(t)("EXPORT_CURRENT_PAGE")), 1)
2899
+ createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_CURRENT_PAGE")), 1)
3276
2900
  ]),
3277
2901
  _: 1
3278
2902
  })) : createCommentVNode("", true),
3279
- !__props.onlyBackDowonload ? (openBlock(), createBlock(_component_AMenuItem, { key: "select" }, {
2903
+ unref(showSelectedDownload) ? (openBlock(), createBlock(_component_AMenuItem, { key: "select" }, {
3280
2904
  default: withCtx(() => [
3281
- createElementVNode("span", null, toDisplayString(unref$1(t)("EXPORT_SELECT_COLUMN")), 1)
2905
+ createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_SELECT_COLUMN")), 1)
3282
2906
  ]),
3283
2907
  _: 1
3284
2908
  })) : createCommentVNode("", true),
3285
- !__props.onlyFrontDownload ? (openBlock(), createBlock(_component_AMenuItem, { key: "all" }, {
2909
+ unref(showBackDownload) ? (openBlock(), createBlock(_component_AMenuItem, { key: "all" }, {
3286
2910
  default: withCtx(() => [
3287
- createElementVNode("span", null, toDisplayString(unref$1(t)("EXPORT_ALL")), 1)
2911
+ createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_ALL")), 1)
3288
2912
  ]),
3289
2913
  _: 1
3290
2914
  })) : createCommentVNode("", true)
@@ -3297,7 +2921,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
3297
2921
  ]),
3298
2922
  _: 1
3299
2923
  }, 8, ["getPopupContainer"]),
3300
- createVNode(_sfc_main$6, { onRegister: unref$1(registerDialog) }, null, 8, ["onRegister"])
2924
+ createVNode(_sfc_main$6, { onRegister: unref(registerDialog) }, null, 8, ["onRegister"])
3301
2925
  ]),
3302
2926
  _: 1
3303
2927
  });
@@ -3308,7 +2932,7 @@ const _hoisted_1$3 = /* @__PURE__ */ createElementVNode("i", { class: "i ant-des
3308
2932
  const _hoisted_2$1 = ["onClick"];
3309
2933
  const _hoisted_3$1 = ["onClick"];
3310
2934
  const _hoisted_4$1 = /* @__PURE__ */ createElementVNode("i", { class: "i ant-design:setting-outlined w-7 leading-7 text-center cursor-pointer" }, null, -1);
3311
- const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
2935
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3312
2936
  __name: "Column",
3313
2937
  emits: [
3314
2938
  "columns-change"
@@ -3446,9 +3070,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3446
3070
  return;
3447
3071
  const columns = getColumns();
3448
3072
  const isFixed = item.fixed === fixed ? false : fixed;
3449
- const index2 = columns.findIndex((col) => col.dataIndex === item.dataIndex);
3450
- if (index2 !== -1) {
3451
- columns[index2].fixed = isFixed;
3073
+ const index = columns.findIndex((col) => col.dataIndex === item.dataIndex);
3074
+ if (index !== -1) {
3075
+ columns[index].fixed = isFixed;
3452
3076
  }
3453
3077
  item.fixed = isFixed;
3454
3078
  if (isFixed && !item.width) {
@@ -3495,7 +3119,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3495
3119
  const _component_APopover = Popover$1;
3496
3120
  return openBlock(), createBlock(_component_ATooltip, { placement: "top" }, {
3497
3121
  title: withCtx(() => [
3498
- createElementVNode("span", null, toDisplayString(unref$1(t)("COLUMN_CONTROL")), 1)
3122
+ createElementVNode("span", null, toDisplayString(unref(t)("COLUMN_CONTROL")), 1)
3499
3123
  ]),
3500
3124
  default: withCtx(() => [
3501
3125
  createVNode(_component_APopover, {
@@ -3510,34 +3134,34 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3510
3134
  class: normalizeClass(`${prefixCls}__popover-title flex`)
3511
3135
  }, [
3512
3136
  createVNode(_component_ACheckbox, {
3513
- indeterminate: unref$1(indeterminate),
3514
- checked: unref$1(state).checkAll,
3515
- "onUpdate:checked": _cache[0] || (_cache[0] = ($event) => unref$1(state).checkAll = $event),
3137
+ indeterminate: unref(indeterminate),
3138
+ checked: state.checkAll,
3139
+ "onUpdate:checked": _cache[0] || (_cache[0] = ($event) => state.checkAll = $event),
3516
3140
  onChange: onCheckAllChange
3517
3141
  }, {
3518
3142
  default: withCtx(() => [
3519
- createTextVNode(toDisplayString(unref$1(t)("COLUMN_SHOW")), 1)
3143
+ createTextVNode(toDisplayString(unref(t)("COLUMN_SHOW")), 1)
3520
3144
  ]),
3521
3145
  _: 1
3522
3146
  }, 8, ["indeterminate", "checked"]),
3523
3147
  createVNode(_component_ACheckbox, {
3524
- checked: unref$1(checkIndex),
3525
- "onUpdate:checked": _cache[1] || (_cache[1] = ($event) => isRef(checkIndex) ? checkIndex.value = $event : null),
3148
+ checked: checkIndex.value,
3149
+ "onUpdate:checked": _cache[1] || (_cache[1] = ($event) => checkIndex.value = $event),
3526
3150
  onChange: handleIndexCheckChange
3527
3151
  }, {
3528
3152
  default: withCtx(() => [
3529
- createTextVNode(toDisplayString(unref$1(t)("INDEX")), 1)
3153
+ createTextVNode(toDisplayString(unref(t)("INDEX")), 1)
3530
3154
  ]),
3531
3155
  _: 1
3532
3156
  }, 8, ["checked"]),
3533
3157
  createVNode(_component_ACheckbox, {
3534
- checked: unref$1(checkSelect),
3535
- "onUpdate:checked": _cache[2] || (_cache[2] = ($event) => isRef(checkSelect) ? checkSelect.value = $event : null),
3158
+ checked: checkSelect.value,
3159
+ "onUpdate:checked": _cache[2] || (_cache[2] = ($event) => checkSelect.value = $event),
3536
3160
  onChange: handleSelectCheckChange,
3537
- disabled: !unref$1(defaultRowSelection)
3161
+ disabled: !unref(defaultRowSelection)
3538
3162
  }, {
3539
3163
  default: withCtx(() => [
3540
- createTextVNode(toDisplayString(unref$1(t)("CHECKBOX")), 1)
3164
+ createTextVNode(toDisplayString(unref(t)("CHECKBOX")), 1)
3541
3165
  ]),
3542
3166
  _: 1
3543
3167
  }, 8, ["checked", "disabled"]),
@@ -3546,7 +3170,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3546
3170
  onClick: reset
3547
3171
  }, {
3548
3172
  default: withCtx(() => [
3549
- createTextVNode(toDisplayString(unref$1(t)("RESET")), 1)
3173
+ createTextVNode(toDisplayString(unref(t)("RESET")), 1)
3550
3174
  ]),
3551
3175
  _: 1
3552
3176
  })
@@ -3554,14 +3178,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3554
3178
  ]),
3555
3179
  content: withCtx(() => [
3556
3180
  createVNode(_component_ACheckboxGroup, {
3557
- value: unref$1(state).checkedList,
3558
- "onUpdate:value": _cache[3] || (_cache[3] = ($event) => unref$1(state).checkedList = $event),
3181
+ value: state.checkedList,
3182
+ "onUpdate:value": _cache[3] || (_cache[3] = ($event) => state.checkedList = $event),
3559
3183
  onChange,
3560
3184
  ref_key: "columnListRef",
3561
3185
  ref: columnListRef
3562
3186
  }, {
3563
3187
  default: withCtx(() => [
3564
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(plainOptions), (item) => {
3188
+ (openBlock(true), createElementBlock(Fragment, null, renderList(plainOptions.value, (item) => {
3565
3189
  return openBlock(), createElementBlock("div", {
3566
3190
  key: item.value,
3567
3191
  class: normalizeClass(`${prefixCls}__check-item flex pt-1 pr-4 pb-2 items-center`)
@@ -3581,12 +3205,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3581
3205
  getPopupContainer: getPopupContainer$1
3582
3206
  }, {
3583
3207
  title: withCtx(() => [
3584
- createTextVNode(toDisplayString(unref$1(t)("FIXED_TO_LEFT")), 1)
3208
+ createTextVNode(toDisplayString(unref(t)("FIXED_TO_LEFT")), 1)
3585
3209
  ]),
3586
3210
  default: withCtx(() => [
3587
3211
  createElementVNode("span", {
3588
3212
  class: normalizeClass({
3589
- disabled: !unref$1(state).checkedList.includes(item.value),
3213
+ disabled: !state.checkedList.includes(item.value),
3590
3214
  active: item.fixed === "left"
3591
3215
  })
3592
3216
  }, [
@@ -3605,12 +3229,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3605
3229
  getPopupContainer: getPopupContainer$1
3606
3230
  }, {
3607
3231
  title: withCtx(() => [
3608
- createTextVNode(toDisplayString(unref$1(t)("FIXED_TO_RIGHT")), 1)
3232
+ createTextVNode(toDisplayString(unref(t)("FIXED_TO_RIGHT")), 1)
3609
3233
  ]),
3610
3234
  default: withCtx(() => [
3611
3235
  createElementVNode("span", {
3612
3236
  class: normalizeClass({
3613
- disabled: !unref$1(state).checkedList.includes(item.value),
3237
+ disabled: !state.checkedList.includes(item.value),
3614
3238
  active: item.fixed === "right"
3615
3239
  })
3616
3240
  }, [
@@ -3640,7 +3264,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
3640
3264
  }
3641
3265
  });
3642
3266
  const _hoisted_1$2 = { class: "flex dt-table-setting" };
3643
- const _sfc_main$3 = /* @__PURE__ */ defineComponent$1({
3267
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3644
3268
  __name: "index",
3645
3269
  props: {
3646
3270
  setting: {
@@ -3664,12 +3288,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent$1({
3664
3288
  }
3665
3289
  return (_ctx, _cache) => {
3666
3290
  return openBlock(), createElementBlock("div", _hoisted_1$2, [
3667
- unref$1(getSetting).download ? (openBlock(), createBlock(_sfc_main$5, normalizeProps(mergeProps({ key: 0 }, unref$1(getSetting))), null, 16)) : createCommentVNode("", true),
3668
- unref$1(getSetting).setting ? (openBlock(), createBlock(_sfc_main$4, {
3291
+ unref(getSetting).download ? (openBlock(), createBlock(_sfc_main$5, normalizeProps(mergeProps({ key: 0 }, unref(getSetting))), null, 16)) : createCommentVNode("", true),
3292
+ unref(getSetting).setting ? (openBlock(), createBlock(_sfc_main$4, {
3669
3293
  key: 1,
3670
3294
  onColumnsChange: handleColumnChange
3671
3295
  })) : createCommentVNode("", true),
3672
- unref$1(getSetting).fullscreen ? (openBlock(), createBlock(_sfc_main$e, { key: 2 })) : createCommentVNode("", true)
3296
+ unref(getSetting).fullscreen ? (openBlock(), createBlock(_sfc_main$f, { key: 2 })) : createCommentVNode("", true)
3673
3297
  ]);
3674
3298
  };
3675
3299
  }
@@ -3682,7 +3306,7 @@ const _hoisted_5 = {
3682
3306
  key: 0,
3683
3307
  class: "border dt-table-header-top text-12 bg-gray-100 mt-1 py-1 px-3 border-dashed"
3684
3308
  };
3685
- const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
3309
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3686
3310
  __name: "TableHeader",
3687
3311
  props: {
3688
3312
  tableSetting: {
@@ -3690,7 +3314,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
3690
3314
  },
3691
3315
  toolbar: {
3692
3316
  type: Array,
3693
- default: []
3317
+ default: () => []
3694
3318
  }
3695
3319
  },
3696
3320
  setup(__props) {
@@ -3705,7 +3329,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
3705
3329
  return openBlock(), createElementBlock("div", _hoisted_1$1, [
3706
3330
  createElementVNode("div", _hoisted_2, [
3707
3331
  createElementVNode("div", _hoisted_3, [
3708
- unref$1(getActionsProps)?.buttonList.length ? (openBlock(), createBlock(unref$1(_sfc_main$f), normalizeProps(mergeProps({ key: 0 }, unref$1(getActionsProps))), null, 16)) : createCommentVNode("", true),
3332
+ unref(getActionsProps)?.buttonList.length ? (openBlock(), createBlock(unref(_sfc_main$g), normalizeProps(mergeProps({ key: 0 }, unref(getActionsProps))), null, 16)) : createCommentVNode("", true),
3709
3333
  renderSlot(_ctx.$slots, "toolbar")
3710
3334
  ]),
3711
3335
  __props.tableSetting ? (openBlock(), createElementBlock("div", _hoisted_4, [
@@ -3723,14 +3347,14 @@ function useTableHeader(propsRef, slots, handlers) {
3723
3347
  const { t } = useI18n("UI");
3724
3348
  const getHeaderProps = computed(() => {
3725
3349
  const TABLE_TOOLS = [
3726
- { t: "\u65B0\u589E", name: t("ADD"), preIcon: "mdi:plus", type: "primary", onClick: unref(propsRef).onAdd },
3727
- { t: "\u5220\u9664", name: t("DELETE"), preIcon: "mdi:delete-outline", onClick: unref(propsRef).onDeletes }
3350
+ { t: "\u65B0\u589E", label: t("ADD"), preIcon: "mdi:plus", type: "primary", onClick: unref(propsRef).onAdd },
3351
+ { t: "\u5220\u9664", label: t("DELETE"), preIcon: "mdi:delete-outline", onClick: unref(propsRef).onDeletes }
3728
3352
  ];
3729
3353
  const { tableSetting, toolbar = TABLE_TOOLS } = unref(propsRef);
3730
- const { getSlot } = useSlots$1();
3354
+ const { getSlot } = useSlots();
3731
3355
  const hideTitle = (!toolbar || !toolbar.filter((it) => it.show ?? true).length) && !slots.toolbar && !slots.headerTop && !tableSetting;
3732
3356
  return {
3733
- title: hideTitle ? null : () => h(
3357
+ title: hideTitle ? null : () => h$1(
3734
3358
  _sfc_main$2,
3735
3359
  {
3736
3360
  tableSetting,
@@ -3769,7 +3393,6 @@ function useLoading(props2) {
3769
3393
  function usePagination(props2) {
3770
3394
  const { t } = useI18n("UI");
3771
3395
  const paginationRef = ref();
3772
- const showPagination = ref(true);
3773
3396
  const { getUiSize } = useHeader();
3774
3397
  watch(
3775
3398
  () => unref(props2).pagination,
@@ -3783,12 +3406,21 @@ function usePagination(props2) {
3783
3406
  }
3784
3407
  );
3785
3408
  const getPaginationInfo = computed(() => {
3786
- const { pagination } = unref(props2);
3787
- if (!unref(showPagination) || isBoolean(pagination) && !pagination) {
3409
+ const { appConf } = useAppStore();
3410
+ let { pagination } = unref(props2);
3411
+ if (isBoolean(pagination) && !pagination) {
3788
3412
  return false;
3789
3413
  }
3790
- const { appConf } = useAppStore();
3791
- const { defaultPageSize = pagination.pageSize, pageSizeOptions } = appConf.ui.table;
3414
+ if (!pagination) {
3415
+ pagination = {
3416
+ pageSize: appConf.ui.table.defaultPageSize,
3417
+ current: 1
3418
+ };
3419
+ }
3420
+ const { defaultPageSize, pageSizeOptions } = {
3421
+ ...appConf.ui.table,
3422
+ ...pagination
3423
+ };
3792
3424
  return {
3793
3425
  current: 1,
3794
3426
  pageSize: defaultPageSize,
@@ -3812,18 +3444,10 @@ function usePagination(props2) {
3812
3444
  function getPagination() {
3813
3445
  return unref(getPaginationInfo);
3814
3446
  }
3815
- function getShowPagination() {
3816
- return unref(showPagination);
3817
- }
3818
- function setShowPagination(flag) {
3819
- showPagination.value = flag;
3820
- }
3821
3447
  return {
3822
3448
  getPaginationInfo,
3823
3449
  setPagination,
3824
- getPagination,
3825
- getShowPagination,
3826
- setShowPagination
3450
+ getPagination
3827
3451
  };
3828
3452
  }
3829
3453
  const DEFAULT_CONFIG = {
@@ -3839,7 +3463,7 @@ function useRowSelection(propsRef, emit) {
3839
3463
  if (!rowSelection && !showCheckboxColumn)
3840
3464
  return null;
3841
3465
  if (isBoolean(showCheckboxColumn)) {
3842
- if (showCheckboxColumn) {
3466
+ if (showCheckboxColumn && rowSelection) {
3843
3467
  rowSelection.type = "checkbox";
3844
3468
  } else {
3845
3469
  return null;
@@ -3862,7 +3486,7 @@ function useRowSelection(propsRef, emit) {
3862
3486
  function setSelectedRowKeys(rowKeys) {
3863
3487
  selectedRowKeysRef.value = rowKeys;
3864
3488
  const allSelectedRows = findeNodeAll(
3865
- toRaw(unref(propsRef).dataSource).concat(toRaw(unref(selectedRowRef))),
3489
+ toRaw$1(unref(propsRef).dataSource).concat(toRaw$1(unref(selectedRowRef))),
3866
3490
  (item) => rowKeys.includes(item[unref(propsRef).rowKey]),
3867
3491
  {
3868
3492
  children: propsRef.value.childrenColumnName ?? "children"
@@ -3950,8 +3574,9 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
3950
3574
  async function calcTableHeight() {
3951
3575
  const { pagination, virtual } = unref(propsRef);
3952
3576
  const table = unref(tableElRef);
3577
+ if (!table)
3578
+ return;
3953
3579
  const tableEl = table?.$el;
3954
- const tableData = unref(propsRef).dataSource;
3955
3580
  if (!tableEl)
3956
3581
  return;
3957
3582
  if (!bodyEl) {
@@ -3972,7 +3597,8 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
3972
3597
  !tableEl.classList.contains("hide-scrollbar-x") && tableEl.classList.add("hide-scrollbar-x");
3973
3598
  }
3974
3599
  bodyEl.style.height = "unset";
3975
- if (!unref(getCanResize) || !unref(tableData) || tableData.length === 0)
3600
+ const tableData = unref(propsRef).dataSource;
3601
+ if (!unref(getCanResize) || !unref(tableData))
3976
3602
  return;
3977
3603
  await nextTick();
3978
3604
  let headerHeight = 0, paginationHeight = 2, footerHeight = 0, titleHeight = tableEl.querySelector(".ant-table-title")?.offsetHeight ?? 0, marginHeight = 15;
@@ -3998,10 +3624,14 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
3998
3624
  paginationHeight = -8;
3999
3625
  }
4000
3626
  const tableHeight = table?.$el?.offsetHeight ?? 0;
3627
+ if (tableData.length === 0)
3628
+ paginationHeight = 5;
4001
3629
  let height = tableHeight - paginationHeight - footerHeight - headerHeight - titleHeight - marginHeight;
4002
3630
  height = Math.max(height, 167);
4003
3631
  setHeight(height);
4004
3632
  bodyEl.style.height = `${height}px`;
3633
+ if (tableData.length === 0)
3634
+ return;
4005
3635
  filterSource.value = unref(propsRef)?.dataSource;
4006
3636
  }
4007
3637
  const getScrollX = computed(() => {
@@ -4038,14 +3668,14 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
4038
3668
  };
4039
3669
  }
4040
3670
  function useRows(propsRef) {
4041
- function getRowClassName(record, index2) {
3671
+ function getRowClassName(record, index) {
4042
3672
  const { striped, rowClassName } = unref(propsRef);
4043
3673
  const classNames = [];
4044
3674
  if (striped) {
4045
- classNames.push(index2 % 2 === 1 ? "table-striped" : "");
3675
+ classNames.push(index % 2 === 1 ? "table-striped" : "");
4046
3676
  }
4047
3677
  if (rowClassName && isFunction(rowClassName)) {
4048
- classNames.push(rowClassName(record, index2));
3678
+ classNames.push(rowClassName(record, index));
4049
3679
  }
4050
3680
  return classNames.join(" ");
4051
3681
  }
@@ -4058,7 +3688,7 @@ const props = {
4058
3688
  record: Object,
4059
3689
  index: Number
4060
3690
  };
4061
- const _sfc_main$1 = defineComponent({
3691
+ const _sfc_main$1 = {
4062
3692
  name: "TableRender",
4063
3693
  props,
4064
3694
  setup(props2, {}) {
@@ -4075,7 +3705,7 @@ const _sfc_main$1 = defineComponent({
4075
3705
  const {
4076
3706
  column,
4077
3707
  record,
4078
- index: index2
3708
+ index
4079
3709
  } = props2;
4080
3710
  const {
4081
3711
  render,
@@ -4117,7 +3747,7 @@ const _sfc_main$1 = defineComponent({
4117
3747
  });
4118
3748
  }
4119
3749
  } else if (isFunction(render)) {
4120
- let afterRenderData = render(record, index2, text);
3750
+ let afterRenderData = render(record, index, text);
4121
3751
  if (afterRenderData.__v_isRef) {
4122
3752
  renderText = afterRenderData;
4123
3753
  } else if (afterRenderData["setup"]) {
@@ -4134,16 +3764,16 @@ const _sfc_main$1 = defineComponent({
4134
3764
  }
4135
3765
  return () => createVNode("span", null, [unref(renderText)]);
4136
3766
  }
4137
- });
3767
+ };
4138
3768
  const DEFAULT_SORT_FN = (sortInfo) => {
4139
3769
  const { field, order } = sortInfo;
4140
3770
  return field && order ? { field, order } : {};
4141
3771
  };
4142
3772
  const TableProps = {
3773
+ autoFetch: { type: Boolean, default: false },
4143
3774
  clickToSelectRow: { type: Boolean, default: false },
4144
3775
  tableSetting: { type: [Boolean, Object], default: () => ({}) },
4145
3776
  striped: { type: Boolean, default: true },
4146
- canColDrag: { type: Boolean, default: true },
4147
3777
  clearSelectOnPageChange: { type: Boolean, default: false },
4148
3778
  resizable: { type: Boolean, default: true },
4149
3779
  minWidth: { type: Number },
@@ -4163,7 +3793,7 @@ const TableProps = {
4163
3793
  },
4164
3794
  columnCode: { type: String, default: "" },
4165
3795
  columns: { type: [Array], default: () => [] },
4166
- slotsTemplate: { type: Object, default: {} },
3796
+ slotsTemplate: { type: Object, default: () => ({}) },
4167
3797
  showIndexColumn: { type: Boolean, default: false },
4168
3798
  showCheckboxColumn: { type: Boolean, default: true },
4169
3799
  expandMethodIcon: { type: Boolean, default: false },
@@ -4173,10 +3803,7 @@ const TableProps = {
4173
3803
  canResize: { type: Boolean, default: true },
4174
3804
  pagination: {
4175
3805
  type: [Object, Boolean],
4176
- default: {
4177
- pageSize: 20,
4178
- current: 1
4179
- }
3806
+ default: null
4180
3807
  },
4181
3808
  loading: { type: Boolean, default: false },
4182
3809
  rowClassName: { type: Function },
@@ -4186,13 +3813,11 @@ const TableProps = {
4186
3813
  },
4187
3814
  onTableChange: {
4188
3815
  type: Function,
4189
- default: () => {
4190
- }
3816
+ default: () => ({})
4191
3817
  },
4192
3818
  onDownload: {
4193
3819
  type: Function,
4194
- default: (excelData) => {
4195
- }
3820
+ default: (excelData) => ({})
4196
3821
  },
4197
3822
  rowSelection: {
4198
3823
  type: Object,
@@ -4203,8 +3828,7 @@ const TableProps = {
4203
3828
  },
4204
3829
  customRow: {
4205
3830
  type: Function,
4206
- default: () => {
4207
- }
3831
+ default: () => ({})
4208
3832
  },
4209
3833
  childrenColumnName: {
4210
3834
  type: String,
@@ -4227,29 +3851,30 @@ const TableProps = {
4227
3851
  registerInstance: {
4228
3852
  type: Function
4229
3853
  },
4230
- onAdd: {
3854
+ onSearch: {
4231
3855
  type: Function,
4232
3856
  default: (params) => {
4233
3857
  }
4234
3858
  },
3859
+ onAdd: {
3860
+ type: Function,
3861
+ default: (params) => ({})
3862
+ },
4235
3863
  onUpdate: {
4236
3864
  type: Function,
4237
- default: (params) => {
4238
- }
3865
+ default: (params) => ({})
4239
3866
  },
4240
3867
  onDelete: {
4241
3868
  type: Function,
4242
- default: (params) => {
4243
- }
3869
+ default: (params) => ({})
4244
3870
  },
4245
3871
  onDeletes: {
4246
3872
  type: Function,
4247
- default: (params) => {
4248
- }
3873
+ default: (params) => ({})
4249
3874
  }
4250
3875
  };
4251
- const _hoisted_1 = /* @__PURE__ */ createElementVNode("img", { src: _imports_0 }, null, -1);
4252
- const _sfc_main = /* @__PURE__ */ defineComponent$1({
3876
+ const _hoisted_1 = ["src"];
3877
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4253
3878
  __name: "index",
4254
3879
  props: TableProps,
4255
3880
  emits: [
@@ -4267,7 +3892,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
4267
3892
  const props2 = __props;
4268
3893
  const tableElRef = ref(null);
4269
3894
  const attrs = useAttrs();
4270
- const slots = useSlots();
3895
+ const slots = useSlots$1();
4271
3896
  const innerPropsRef = ref();
4272
3897
  const getProps = computed(() => {
4273
3898
  return { ...props2, ...unref(innerPropsRef) };
@@ -4281,7 +3906,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
4281
3906
  ];
4282
3907
  });
4283
3908
  const { getLoading, setLoading } = useLoading(getProps);
4284
- const { getPaginationInfo, setPagination, getPagination, getShowPagination, setShowPagination } = usePagination(getProps);
3909
+ const { getPaginationInfo, setPagination, getPagination } = usePagination(getProps);
4285
3910
  const {
4286
3911
  getViewColumns,
4287
3912
  getColumnsRef,
@@ -4322,8 +3947,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
4322
3947
  ...unref(getHeaderProps),
4323
3948
  scroll: unref(getScrollRef),
4324
3949
  loading: unref(getLoading),
4325
- dataSource: toRaw(unref(filterSource)),
4326
- pagination: toRaw(unref(getPaginationInfo)),
3950
+ dataSource: toRaw$1(unref(filterSource)),
3951
+ pagination: toRaw$1(unref(getPaginationInfo)),
4327
3952
  rowSelection: unref(getRowSelectionRef),
4328
3953
  rowKey: unref(getProps).rowKey,
4329
3954
  columns: unref(getViewColumns),
@@ -4373,26 +3998,33 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
4373
3998
  if (unref(innerPropsRef)?.registerInstance) {
4374
3999
  unref(innerPropsRef)?.registerInstance(tableAction);
4375
4000
  }
4001
+ onMounted(() => {
4002
+ if (unref(getProps).autoFetch)
4003
+ unref(getProps)?.onSearch({});
4004
+ });
4376
4005
  return (_ctx, _cache) => {
4377
4006
  const _component_ATable = Table;
4378
4007
  return openBlock(), createBlock(_component_ATable, mergeProps({
4379
4008
  ref_key: "tableElRef",
4380
4009
  ref: tableElRef
4381
- }, unref$1(getBind), {
4382
- rowClassName: unref$1(getRowClassName),
4383
- onChange: unref$1(handleTableChange)
4010
+ }, unref(getBind), {
4011
+ rowClassName: unref(getRowClassName),
4012
+ onChange: unref(handleTableChange)
4384
4013
  }), createSlots({
4385
- bodyCell: withCtx(({ column, record, index: index2 }) => [
4386
- _ctx.$slots.bodyCell ? renderSlot(_ctx.$slots, "bodyCell", normalizeProps(mergeProps({ key: 0 }, { column, record, index: index2 }))) : createCommentVNode("", true),
4014
+ bodyCell: withCtx(({ column, record, index }) => [
4015
+ _ctx.$slots.bodyCell ? renderSlot(_ctx.$slots, "bodyCell", normalizeProps(mergeProps({ key: 0 }, { column, record, index }))) : createCommentVNode("", true),
4387
4016
  column?.render && !_ctx.$slots.bodyCell ? (openBlock(), createBlock(_sfc_main$1, {
4388
4017
  key: 1,
4389
4018
  column,
4390
4019
  record,
4391
- index: index2
4020
+ index
4392
4021
  }, null, 8, ["column", "record", "index"])) : createCommentVNode("", true)
4393
4022
  ]),
4394
4023
  emptyText: withCtx(() => [
4395
- _hoisted_1
4024
+ createElementVNode("img", {
4025
+ src: "/node_modules/@dt-frames/ui/es/assets/imgs/table/empty.png",
4026
+ class: "w-72 m-auto my-5"
4027
+ }, null, 8, _hoisted_1)
4396
4028
  ]),
4397
4029
  _: 2
4398
4030
  }, [