@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.
- package/es/assets/locales/en.ts +1 -1
- package/es/components/container/index.d.ts +4 -3
- package/es/components/container/index.js +24 -22
- package/es/components/container/src/slot-container.d.ts +5 -3
- package/es/components/curd/index.js +261 -229
- package/es/components/curd/src/components/Curd.d.ts +126 -331
- package/es/components/curd/src/props.d.ts +14 -15
- package/es/components/drawer/index.d.ts +3 -5
- package/es/components/drawer/index.js +55 -54
- package/es/components/drawer/src/components/DrawerHeader.d.ts +1 -3
- package/es/components/drawer/src/index.d.ts +4 -7
- package/es/components/form/index.d.ts +213 -361
- package/es/components/form/index.js +210 -163
- package/es/components/form/index.less +206 -8
- package/es/components/form/src/components/FormButtons.d.ts +3 -3
- package/es/components/form/src/components/FormItem.d.ts +152 -304
- package/es/components/form/src/components/formIcon.d.ts +4 -4
- package/es/components/form/src/components/formInputUseDialog.d.ts +3 -3
- package/es/components/form/src/enums/index.d.ts +1 -1
- package/es/components/form/src/index.d.ts +199 -347
- package/es/components/form/src/props.d.ts +8 -12
- package/es/components/form/src/types/form.type.d.ts +2 -2
- package/es/components/icons/index.d.ts +496 -2
- package/es/components/icons/index.less +5 -0
- package/es/components/icons/src/pick-icon.d.ts +5 -5
- package/es/components/modal/index.js +76 -74
- package/es/components/modal/index.less +10 -0
- package/es/components/modal/src/components/Modal.d.ts +108 -215
- package/es/components/modal/src/components/ModalFooter.d.ts +3 -3
- package/es/components/modal/src/index.d.ts +116 -223
- package/es/components/source/hooks/useSource.d.ts +14 -0
- package/es/components/source/index.js +66 -27
- package/es/components/source/types/source.type.d.ts +4 -8
- package/es/components/table/index.js +452 -820
- package/es/components/table/index.less +50 -14
- package/es/components/table/src/components/TableAction.d.ts +1 -1
- package/es/components/table/src/components/TableHeader.d.ts +109 -216
- package/es/components/table/src/components/TableRender.d.ts +13 -9
- package/es/components/table/src/components/tableSetting/Download.d.ts +107 -214
- package/es/components/table/src/components/tableSetting/DownloadCtrl.d.ts +107 -214
- package/es/components/table/src/components/tableSetting/index.d.ts +107 -214
- package/es/components/table/src/hooks/useDataSource.d.ts +1 -2
- package/es/components/table/src/hooks/usePagination.d.ts +3 -118
- package/es/components/table/src/index.d.ts +99 -435
- package/es/components/table/src/props.d.ts +19 -74
- package/es/components/table/src/types/actions.type.d.ts +1 -2
- package/es/components/table/src/types/table.type.d.ts +13 -8
- package/es/index.d.ts +1 -1
- package/es/index.js +2 -3240
- package/es/theme/index.js +688 -453
- package/es/theme/index.less +150 -0
- package/es/theme/src/components/header/components/logo.d.ts +0 -1
- package/es/theme/src/components/header/components/notify.d.ts +4 -3
- package/es/theme/src/components/header/components/setting-theme.d.ts +2 -1
- package/es/theme/src/components/header/components/user-info.d.ts +4 -3
- package/es/theme/src/components/header/helper/menu-tree.d.ts +1 -0
- package/es/theme/src/components/header/index.d.ts +8 -7
- package/es/theme/src/components/header/multiple-header.d.ts +22 -25
- package/es/theme/src/components/sider/components/drag-bar.d.ts +1 -1
- package/es/theme/src/components/sider/components/sider-trigger.d.ts +0 -1
- package/es/theme/src/components/sider/index.d.ts +147 -3
- package/es/theme/src/components/sider/mix-sider.d.ts +146 -0
- package/es/theme/src/enums/theme.enum.d.ts +2 -1
- package/es/theme/src/hooks/useMenu.d.ts +4 -2
- package/es/theme/src/index.d.ts +166 -23
- package/es/theme/src/stores/theme.store.d.ts +3 -0
- package/es/theme/src/types/theme.type.d.ts +2 -1
- package/package.json +3 -4
- package/vite.config.ts +0 -27
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, useAppStore, useSlots
|
|
2
|
-
import { toRaw as toRaw$1, unref
|
|
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
|
|
5
|
-
import
|
|
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,
|
|
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,
|
|
151
|
-
updateIndex =
|
|
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
|
|
193
|
+
const index = this.tabList.findIndex((item) => item.path === path);
|
|
168
194
|
let page;
|
|
169
|
-
if (
|
|
195
|
+
if (index === 0) {
|
|
170
196
|
if (this.tabList.length !== 1) {
|
|
171
|
-
page = this.tabList[
|
|
197
|
+
page = this.tabList[index + 1];
|
|
172
198
|
}
|
|
173
199
|
} else {
|
|
174
|
-
page = this.tabList[
|
|
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
|
|
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
|
|
190
|
-
if (
|
|
191
|
-
const leftTabs = this.tabList.slice(0,
|
|
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
|
|
205
|
-
if (
|
|
206
|
-
const rightTabs = this.tabList.slice(
|
|
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
|
|
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
|
|
264
|
-
const getIsSidebarType = computed
|
|
265
|
-
const getMenuFixed = computed
|
|
266
|
-
const getShowMenu = computed
|
|
267
|
-
const getShowSidebar = computed
|
|
268
|
-
return unref
|
|
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
|
|
271
|
-
const getMenuTheme = computed
|
|
272
|
-
const getTrigger = computed
|
|
273
|
-
const getCanDrag = computed
|
|
274
|
-
const getIsMixMode = computed
|
|
275
|
-
return unref
|
|
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
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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
|
|
324
|
+
collapsed: !unref(getCollapsed)
|
|
289
325
|
}
|
|
290
326
|
});
|
|
291
|
-
const getMiniWidthNumber = computed
|
|
292
|
-
const getRealWidth = computed
|
|
293
|
-
return unref
|
|
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
|
|
296
|
-
const width = unref
|
|
297
|
-
return `calc(100% - ${unref
|
|
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
|
-
|
|
391
|
+
getIsMixSidebar
|
|
354
392
|
} = useMenu();
|
|
355
393
|
const { getShowMultipleTab } = useMultipleTab();
|
|
356
|
-
const getHeaderTheme = computed
|
|
357
|
-
const getFixed = computed
|
|
358
|
-
const getShowHeaderLogo = computed
|
|
359
|
-
const getShowSearch = computed
|
|
360
|
-
const getShowHeaderTrigger = computed
|
|
361
|
-
if (unref
|
|
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
|
|
402
|
+
return unref(getTrigger);
|
|
365
403
|
});
|
|
366
|
-
const getShowBreadCrumb = computed
|
|
367
|
-
const getShowBread = computed
|
|
368
|
-
() => unref
|
|
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
|
|
371
|
-
const getShowNotice = computed
|
|
372
|
-
const getShowFullScreen = computed
|
|
373
|
-
const getShowLocale = computed
|
|
374
|
-
const getShowSettingTheme = computed
|
|
375
|
-
const getShowFullHeaderRef = computed
|
|
376
|
-
return !unref
|
|
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
|
|
416
|
+
const getHeaderHeight = computed(() => {
|
|
379
417
|
let height = 0;
|
|
380
418
|
height += HEADER_HEIGHT;
|
|
381
|
-
if (unref
|
|
419
|
+
if (unref(getShowMultipleTab) && !unref(getSplit)) {
|
|
382
420
|
height += TABS_HEIGHT;
|
|
383
421
|
}
|
|
384
422
|
return height;
|
|
385
423
|
});
|
|
386
|
-
const getTabsHeight = computed
|
|
387
|
-
const getShowInsetHeaderRef = computed
|
|
388
|
-
return unref
|
|
424
|
+
const getTabsHeight = computed(() => TABS_HEIGHT);
|
|
425
|
+
const getShowInsetHeaderRef = computed(() => {
|
|
426
|
+
return unref(getIsSidebarType) || unref(getIsTopMenu) || unref(getIsMixSidebar);
|
|
389
427
|
});
|
|
390
|
-
const getShowBackToTop = computed
|
|
391
|
-
const getIsZH = computed
|
|
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
|
|
398
|
-
const getShowUiSize = computed
|
|
399
|
-
const getShowLogo = computed
|
|
400
|
-
const getShowLoginOut = computed
|
|
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
|
|
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
|
|
553
|
-
const
|
|
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
|
|
572
|
-
const
|
|
573
|
-
const
|
|
574
|
-
const _sfc_main$
|
|
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(
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
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(
|
|
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",
|
|
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
|
-
|
|
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
|
|
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$
|
|
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
|
|
823
|
+
const { record, column, index } = props2;
|
|
796
824
|
if (isFunction(compProps)) {
|
|
797
|
-
compProps = compProps({ text: val, record, column, index
|
|
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
|
|
892
|
+
createVNode(unref(CellComponent), mergeProps({ ref: "elRef" }, unref(getComponentProps), {
|
|
865
893
|
component: _ctx.column?.editComponent,
|
|
866
|
-
popoverVisible: unref
|
|
867
|
-
rule: unref
|
|
868
|
-
ruleMessage:
|
|
869
|
-
class: unref
|
|
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
|
|
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$
|
|
934
|
+
return h(_sfc_main$j, {
|
|
907
935
|
value,
|
|
908
936
|
record,
|
|
909
937
|
column,
|
|
910
|
-
index
|
|
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
|
|
974
|
+
const { showIndexColumn, indexColumnProps, isTreeTable } = unref(propsRef);
|
|
947
975
|
let pushIndexColumns = false;
|
|
948
|
-
if (unref
|
|
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
|
|
992
|
+
width: unref(getIsZH) ? 50 : 70,
|
|
965
993
|
title: t("NUMBER"),
|
|
966
994
|
align: "center",
|
|
967
|
-
customRender: ({ index
|
|
968
|
-
const getPagination = unref
|
|
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 `${
|
|
1000
|
+
return `${index + 1}`;
|
|
973
1001
|
}
|
|
974
1002
|
const { current = 1, pageSize = defaultPageSize } = getPagination;
|
|
975
|
-
return ((current < 1 ? 1 : current) - 1) * pageSize +
|
|
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
|
-
{
|
|
988
|
-
{
|
|
989
|
-
] } = unref
|
|
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 :
|
|
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 *
|
|
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
|
|
1008
|
-
return h(
|
|
1009
|
-
_sfc_main$
|
|
1035
|
+
customRender: ({ record, index }) => {
|
|
1036
|
+
return h$1(
|
|
1037
|
+
_sfc_main$k,
|
|
1010
1038
|
omit({
|
|
1011
1039
|
...columnObj,
|
|
1012
1040
|
record,
|
|
1013
|
-
index
|
|
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
|
|
1045
|
-
let cacheColumns = unref
|
|
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
|
|
1048
|
-
const { ellipsis } = unref
|
|
1049
|
-
columns.forEach((it,
|
|
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
|
|
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
|
-
|
|
1112
|
+
useDebounceFn(addResize, 100);
|
|
1084
1113
|
function addResize() {
|
|
1085
|
-
const { resizable, minWidth = 50, maxWidth = 700 } = unref
|
|
1086
|
-
let els = unref
|
|
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
|
|
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
|
|
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
|
|
1195
|
+
() => unref(propsRef).columns,
|
|
1167
1196
|
(columns) => {
|
|
1168
1197
|
columnsRef.value = columns;
|
|
1169
1198
|
cacheColumns = columns.filter((it) => !it.flag) ?? [];
|
|
1170
|
-
nextTick(() =>
|
|
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,
|
|
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
|
|
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,
|
|
1266
|
+
emits("row-click", record, index, e);
|
|
1238
1267
|
},
|
|
1239
1268
|
onDblclick: (event) => {
|
|
1240
|
-
emits("row-dbClick", record,
|
|
1269
|
+
emits("row-dbClick", record, index, event);
|
|
1241
1270
|
},
|
|
1242
1271
|
onContextmenu: (event) => {
|
|
1243
|
-
emits("row-contextmenu", record,
|
|
1272
|
+
emits("row-contextmenu", record, index, event);
|
|
1244
1273
|
},
|
|
1245
1274
|
onMouseenter: (event) => {
|
|
1246
|
-
emits("row-mouseenter", record,
|
|
1275
|
+
emits("row-mouseenter", record, index, event);
|
|
1247
1276
|
},
|
|
1248
1277
|
onMouseleave: (event) => {
|
|
1249
|
-
emits("row-mouseleave", record,
|
|
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
|
|
1263
|
-
watch
|
|
1264
|
-
() => unref
|
|
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
|
|
1273
|
-
return unref
|
|
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
|
|
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
|
|
1325
|
+
filter: toRaw$1(unref(params.filterInfo)),
|
|
1297
1326
|
showBtnLoading: false
|
|
1298
1327
|
});
|
|
1299
1328
|
}
|
|
1300
|
-
const { defSort, onTableChange } = unref
|
|
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
|
|
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
|
|
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
|
|
1374
|
+
const instance = getCurrentInstance();
|
|
1397
1375
|
const emit = instance?.emit;
|
|
1398
|
-
const innerState = reactive
|
|
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
|
|
1405
|
-
emit?.(changeEvent, val, ...toRaw$1(unref
|
|
1382
|
+
nextTick(() => {
|
|
1383
|
+
emit?.(changeEvent, val, ...toRaw$1(unref(emitData)) || []);
|
|
1406
1384
|
});
|
|
1407
1385
|
};
|
|
1408
|
-
watchEffect
|
|
1386
|
+
watchEffect(() => {
|
|
1409
1387
|
innerState.value = props2[key];
|
|
1410
1388
|
});
|
|
1411
|
-
const state = computed
|
|
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
|
|
1420
|
-
emit?.(changeEvent, value, ...toRaw$1(unref
|
|
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$
|
|
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
|
|
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
|
|
1454
|
-
value: unref
|
|
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
|
|
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$
|
|
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
|
|
1483
|
-
const bindProps = computed
|
|
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
|
|
1484
|
+
createVNode(unref(Input), normalizeProps(guardReactiveProps(unref(bindProps))), null, 16)
|
|
1507
1485
|
]),
|
|
1508
|
-
unref
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
2011
|
-
const _component_ACol = Col
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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$
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2563
|
-
const thumb = ref
|
|
2174
|
+
const instance = getCurrentInstance();
|
|
2175
|
+
const thumb = ref();
|
|
2564
2176
|
const wrap = inject("scroll-bar-wrap", {});
|
|
2565
|
-
const bar = computed
|
|
2177
|
+
const bar = computed(() => {
|
|
2566
2178
|
return BAR_MAP[props2.vertical ? "vertical" : "horizontal"];
|
|
2567
2179
|
});
|
|
2568
|
-
const barStore = ref
|
|
2569
|
-
const cursorDown = ref
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2723
|
-
move:
|
|
2724
|
-
size:
|
|
2334
|
+
createVNode(unref(Bar), {
|
|
2335
|
+
move: moveX.value,
|
|
2336
|
+
size: sizeWidth.value
|
|
2725
2337
|
}, null, 8, ["move", "size"]),
|
|
2726
|
-
createVNode(unref
|
|
2338
|
+
createVNode(unref(Bar), {
|
|
2727
2339
|
vertical: "",
|
|
2728
|
-
move:
|
|
2729
|
-
size:
|
|
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
|
|
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
|
-
|
|
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(
|
|
2763
|
-
|
|
2764
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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",
|
|
2903
|
-
{ t: "\u5173\u95ED",
|
|
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$
|
|
2538
|
+
createVNode(_sfc_main$g, {
|
|
2925
2539
|
mode: "dialog",
|
|
2926
|
-
buttonList: unref
|
|
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
|
|
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(
|
|
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
|
|
3055
|
-
tip: unref
|
|
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
|
|
3060
|
-
fullScreen: unref
|
|
2673
|
+
useWrapper: unref(getBindValue).useWrapper,
|
|
2674
|
+
fullScreen: unref(fullScreenRef),
|
|
3061
2675
|
ref_key: "modalWrapperRef",
|
|
3062
2676
|
ref: modalWrapperRef,
|
|
3063
|
-
minHeight: unref
|
|
3064
|
-
height: unref
|
|
3065
|
-
visible:
|
|
3066
|
-
modalFooterHeight: unref
|
|
3067
|
-
}, unref
|
|
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
|
|
3084
|
-
fullScreen: unref
|
|
2697
|
+
canFullscreen: unref(getBindValue).canFullscreen,
|
|
2698
|
+
fullScreen: unref(fullScreenRef),
|
|
3085
2699
|
onCancel: handleCancel,
|
|
3086
|
-
onFullscreen: unref
|
|
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
|
|
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:
|
|
3103
|
-
showSave: unref
|
|
3104
|
-
showCancel: unref
|
|
3105
|
-
okText: unref
|
|
3106
|
-
cancelText: unref
|
|
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
|
|
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
|
|
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
|
|
2797
|
+
const _component_ACol = Col;
|
|
3185
2798
|
const _component_ARow = Row;
|
|
3186
|
-
return openBlock(), createBlock(unref
|
|
3187
|
-
onRegister: unref
|
|
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:
|
|
3194
|
-
"onUpdate:checked": _cache[0] || (_cache[0] = ($event) =>
|
|
3195
|
-
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
|
|
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(
|
|
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("
|
|
3233
|
-
|
|
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
|
-
|
|
3237
|
-
|
|
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
|
|
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
|
|
2892
|
+
getPopupContainer: unref(getPopupContainer)
|
|
3269
2893
|
}, {
|
|
3270
2894
|
overlay: withCtx(() => [
|
|
3271
2895
|
createVNode(_component_AMenu, { onClick: handleTitleClick }, {
|
|
3272
2896
|
default: withCtx(() => [
|
|
3273
|
-
|
|
2897
|
+
unref(showCurrentDownload) ? (openBlock(), createBlock(_component_AMenuItem, { key: "current" }, {
|
|
3274
2898
|
default: withCtx(() => [
|
|
3275
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
2899
|
+
createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_CURRENT_PAGE")), 1)
|
|
3276
2900
|
]),
|
|
3277
2901
|
_: 1
|
|
3278
2902
|
})) : createCommentVNode("", true),
|
|
3279
|
-
|
|
2903
|
+
unref(showSelectedDownload) ? (openBlock(), createBlock(_component_AMenuItem, { key: "select" }, {
|
|
3280
2904
|
default: withCtx(() => [
|
|
3281
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
2905
|
+
createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_SELECT_COLUMN")), 1)
|
|
3282
2906
|
]),
|
|
3283
2907
|
_: 1
|
|
3284
2908
|
})) : createCommentVNode("", true),
|
|
3285
|
-
|
|
2909
|
+
unref(showBackDownload) ? (openBlock(), createBlock(_component_AMenuItem, { key: "all" }, {
|
|
3286
2910
|
default: withCtx(() => [
|
|
3287
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
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
|
|
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
|
|
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
|
|
3450
|
-
if (
|
|
3451
|
-
columns[
|
|
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
|
|
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
|
|
3514
|
-
checked:
|
|
3515
|
-
"onUpdate:checked": _cache[0] || (_cache[0] = ($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
|
|
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:
|
|
3525
|
-
"onUpdate:checked": _cache[1] || (_cache[1] = ($event) =>
|
|
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
|
|
3153
|
+
createTextVNode(toDisplayString(unref(t)("INDEX")), 1)
|
|
3530
3154
|
]),
|
|
3531
3155
|
_: 1
|
|
3532
3156
|
}, 8, ["checked"]),
|
|
3533
3157
|
createVNode(_component_ACheckbox, {
|
|
3534
|
-
checked:
|
|
3535
|
-
"onUpdate:checked": _cache[2] || (_cache[2] = ($event) =>
|
|
3158
|
+
checked: checkSelect.value,
|
|
3159
|
+
"onUpdate:checked": _cache[2] || (_cache[2] = ($event) => checkSelect.value = $event),
|
|
3536
3160
|
onChange: handleSelectCheckChange,
|
|
3537
|
-
disabled: !unref
|
|
3161
|
+
disabled: !unref(defaultRowSelection)
|
|
3538
3162
|
}, {
|
|
3539
3163
|
default: withCtx(() => [
|
|
3540
|
-
createTextVNode(toDisplayString(unref
|
|
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
|
|
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:
|
|
3558
|
-
"onUpdate:value": _cache[3] || (_cache[3] = ($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(
|
|
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
|
|
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: !
|
|
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
|
|
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: !
|
|
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
|
|
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
|
|
3668
|
-
unref
|
|
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
|
|
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
|
|
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
|
|
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",
|
|
3727
|
-
{ t: "\u5220\u9664",
|
|
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
|
|
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 {
|
|
3787
|
-
|
|
3409
|
+
const { appConf } = useAppStore();
|
|
3410
|
+
let { pagination } = unref(props2);
|
|
3411
|
+
if (isBoolean(pagination) && !pagination) {
|
|
3788
3412
|
return false;
|
|
3789
3413
|
}
|
|
3790
|
-
|
|
3791
|
-
|
|
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
|
-
|
|
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,
|
|
3671
|
+
function getRowClassName(record, index) {
|
|
4042
3672
|
const { striped, rowClassName } = unref(propsRef);
|
|
4043
3673
|
const classNames = [];
|
|
4044
3674
|
if (striped) {
|
|
4045
|
-
classNames.push(
|
|
3675
|
+
classNames.push(index % 2 === 1 ? "table-striped" : "");
|
|
4046
3676
|
}
|
|
4047
3677
|
if (rowClassName && isFunction(rowClassName)) {
|
|
4048
|
-
classNames.push(rowClassName(record,
|
|
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 =
|
|
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
|
|
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,
|
|
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
|
-
|
|
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 =
|
|
4252
|
-
const _sfc_main = /* @__PURE__ */ defineComponent
|
|
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
|
|
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
|
|
4382
|
-
rowClassName: unref
|
|
4383
|
-
onChange: unref
|
|
4010
|
+
}, unref(getBind), {
|
|
4011
|
+
rowClassName: unref(getRowClassName),
|
|
4012
|
+
onChange: unref(handleTableChange)
|
|
4384
4013
|
}), createSlots({
|
|
4385
|
-
bodyCell: withCtx(({ column, record, index
|
|
4386
|
-
_ctx.$slots.bodyCell ? renderSlot(_ctx.$slots, "bodyCell", normalizeProps(mergeProps({ key: 0 }, { column, record, index
|
|
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
|
|
4020
|
+
index
|
|
4392
4021
|
}, null, 8, ["column", "record", "index"])) : createCommentVNode("", true)
|
|
4393
4022
|
]),
|
|
4394
4023
|
emptyText: withCtx(() => [
|
|
4395
|
-
|
|
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
|
}, [
|