@dt-frames/ui 2.0.2 → 2.0.3
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/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 +304 -282
- 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 +2 -4
- package/es/components/drawer/index.js +64 -63
- package/es/components/drawer/src/components/DrawerHeader.d.ts +1 -3
- package/es/components/drawer/src/index.d.ts +2 -4
- package/es/components/form/index.d.ts +196 -344
- package/es/components/form/index.js +140 -139
- package/es/components/form/src/components/FormButtons.d.ts +3 -3
- package/es/components/form/src/components/FormItem.d.ts +156 -304
- package/es/components/form/src/components/formIcon.d.ts +10 -10
- package/es/components/form/src/components/formInputUseDialog.d.ts +5 -5
- package/es/components/form/src/index.d.ts +186 -334
- package/es/components/form/src/props.d.ts +7 -7
- package/es/components/form/src/types/form.type.d.ts +1 -1
- package/es/components/icons/index.d.ts +496 -2
- package/es/components/icons/src/pick-icon.d.ts +5 -5
- package/es/components/modal/index.js +87 -86
- package/es/components/modal/src/components/Modal.d.ts +108 -215
- package/es/components/modal/src/index.d.ts +107 -214
- package/es/components/source/index.js +1 -0
- package/es/components/table/index.js +357 -788
- package/es/components/table/index.less +9 -0
- 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 +79 -425
- package/es/components/table/src/props.d.ts +11 -70
- package/es/components/table/src/types/actions.type.d.ts +1 -2
- package/es/components/table/src/types/table.type.d.ts +9 -3
- package/es/index.d.ts +1 -1
- package/es/index.js +2 -3240
- package/es/theme/index.js +406 -393
- 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/size.d.ts +5 -5
- package/es/theme/src/components/header/components/user-info.d.ts +4 -3
- package/es/theme/src/components/header/index.d.ts +13 -12
- package/es/theme/src/components/header/multiple-header.d.ts +26 -28
- package/es/theme/src/hooks/useMenu.d.ts +1 -1
- package/es/theme/src/index.d.ts +27 -28
- package/es/theme/src/types/theme.type.d.ts +1 -1
- package/package.json +3 -2
- package/vite.config.ts +0 -27
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, useAppStore, useSlots as useSlots$1, error, http, useApp, getDynamicProps, isBoolean, isFunction, getPopupContainer, useI18n, isNumber, isArray, isObject, isString,
|
|
2
|
-
import { toRaw as toRaw$1, unref as
|
|
1
|
+
import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, useAppStore, useSlots as useSlots$1, error, http, useApp, getDynamicProps, isBoolean, isFunction, getPopupContainer, useI18n, isNumber, isArray, isObject, isString, dispatchResize, useTimeoutFn, off, on, windowResizeFn, useMessage, isNullAndUnDef, getDictValueByCode, formatNumber, isVnode } from "@dt-frames/core";
|
|
2
|
+
import { toRaw as toRaw$1, unref, computed as computed$1, ref as ref$1, 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 as getCurrentInstance$1, reactive, readonly, watchEffect, isRef, normalizeProps, guardReactiveProps, toRefs, isVNode, onMounted as onMounted$1, resolveDynamicComponent, renderSlot, createSlots, useSlots as useSlots$2 } 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/col/style";
|
|
8
14
|
import "ant-design-vue/es/form/style";
|
|
9
15
|
import "ant-design-vue/es/button/style";
|
|
16
|
+
import "ant-design-vue/es/spin/style";
|
|
17
|
+
import "ant-design-vue/es/row/style";
|
|
18
|
+
import "ant-design-vue/es/divider/style";
|
|
10
19
|
import "ant-design-vue/es/checkbox/style";
|
|
11
20
|
import "ant-design-vue/es/popover/style";
|
|
12
21
|
import Sortablejs from "sortablejs";
|
|
@@ -147,8 +156,8 @@ defineStore({
|
|
|
147
156
|
return;
|
|
148
157
|
}
|
|
149
158
|
let updateIndex = -1;
|
|
150
|
-
const tabHasExits = this.tabList.some((tab,
|
|
151
|
-
updateIndex =
|
|
159
|
+
const tabHasExits = this.tabList.some((tab, index) => {
|
|
160
|
+
updateIndex = index;
|
|
152
161
|
return (tab.fullPath || tab.path) === (fullPath || path);
|
|
153
162
|
});
|
|
154
163
|
if (tabHasExits) {
|
|
@@ -164,14 +173,14 @@ defineStore({
|
|
|
164
173
|
},
|
|
165
174
|
closeTab(path, router) {
|
|
166
175
|
const go = useGo(router);
|
|
167
|
-
const
|
|
176
|
+
const index = this.tabList.findIndex((item) => item.path === path);
|
|
168
177
|
let page;
|
|
169
|
-
if (
|
|
178
|
+
if (index === 0) {
|
|
170
179
|
if (this.tabList.length !== 1) {
|
|
171
|
-
page = this.tabList[
|
|
180
|
+
page = this.tabList[index + 1];
|
|
172
181
|
}
|
|
173
182
|
} else {
|
|
174
|
-
page = this.tabList[
|
|
183
|
+
page = this.tabList[index - 1];
|
|
175
184
|
}
|
|
176
185
|
this.bulkCloseTabs([path]);
|
|
177
186
|
this.updateCacheTab();
|
|
@@ -180,15 +189,15 @@ defineStore({
|
|
|
180
189
|
closeAllTab(currentRoute, router) {
|
|
181
190
|
const go = useGo(router);
|
|
182
191
|
let filterTabList = this.tabList.filter((item) => item?.meta?.affix ?? false);
|
|
183
|
-
const route = filterTabList.length > 0 ? filterTabList[filterTabList.length - 1] : unref
|
|
192
|
+
const route = filterTabList.length > 0 ? filterTabList[filterTabList.length - 1] : unref(currentRoute);
|
|
184
193
|
this.tabList = [route];
|
|
185
194
|
this.updateCacheTab();
|
|
186
195
|
go(route.path);
|
|
187
196
|
},
|
|
188
197
|
closeLeftTabs(path) {
|
|
189
|
-
const
|
|
190
|
-
if (
|
|
191
|
-
const leftTabs = this.tabList.slice(0,
|
|
198
|
+
const index = this.tabList.findIndex((item) => item.path === path);
|
|
199
|
+
if (index > 0) {
|
|
200
|
+
const leftTabs = this.tabList.slice(0, index);
|
|
192
201
|
const pathList = [];
|
|
193
202
|
for (const item of leftTabs) {
|
|
194
203
|
const affix = item?.meta?.affix ?? false;
|
|
@@ -201,9 +210,9 @@ defineStore({
|
|
|
201
210
|
this.updateCacheTab();
|
|
202
211
|
},
|
|
203
212
|
closeRightTabs(path) {
|
|
204
|
-
const
|
|
205
|
-
if (
|
|
206
|
-
const rightTabs = this.tabList.slice(
|
|
213
|
+
const index = this.tabList.findIndex((item) => item.path === path);
|
|
214
|
+
if (index >= 0 && index < this.tabList.length - 1) {
|
|
215
|
+
const rightTabs = this.tabList.slice(index + 1, this.tabList.length);
|
|
207
216
|
const pathList = [];
|
|
208
217
|
for (const item of rightTabs) {
|
|
209
218
|
const affix = item?.meta?.affix ?? false;
|
|
@@ -243,7 +252,7 @@ defineStore({
|
|
|
243
252
|
this.cacheTabList = cacheMap;
|
|
244
253
|
},
|
|
245
254
|
async refreshPage(router) {
|
|
246
|
-
const findTab = this.getCachedTabList.find((item) => item === unref
|
|
255
|
+
const findTab = this.getCachedTabList.find((item) => item === unref(router.currentRoute).name);
|
|
247
256
|
if (findTab) {
|
|
248
257
|
this.cacheTabList.delete(findTab.toString());
|
|
249
258
|
}
|
|
@@ -265,36 +274,36 @@ function useMenu() {
|
|
|
265
274
|
const getMenuFixed = computed$1(() => getMenuConf.fixed);
|
|
266
275
|
const getShowMenu = computed$1(() => getMenuConf.show);
|
|
267
276
|
const getShowSidebar = computed$1(() => {
|
|
268
|
-
return unref
|
|
277
|
+
return unref(getSplit) || unref(getShowMenu) && unref(getMenuMode) !== MenuMode.HORIZONTAL;
|
|
269
278
|
});
|
|
270
279
|
const getMenuHidden = computed$1(() => getMenuConf.hidden);
|
|
271
280
|
const getMenuTheme = computed$1(() => getMenuConf.theme);
|
|
272
281
|
const getTrigger = computed$1(() => getMenuConf.trigger);
|
|
273
282
|
const getCanDrag = computed$1(() => getMenuConf.canDrag);
|
|
274
283
|
const getIsMixMode = computed$1(() => {
|
|
275
|
-
return unref
|
|
284
|
+
return unref(getMenuMode) === MenuMode.INLINE && unref(getMenuType) === MenuType.MIX;
|
|
276
285
|
});
|
|
277
|
-
const getMenuWidth = computed$1(() => unref
|
|
286
|
+
const getMenuWidth = computed$1(() => unref(getIsMixMode) ? Number(getMenuConf.menuWidth) - 40 : getMenuConf.menuWidth);
|
|
278
287
|
const getLogoWidth = computed$1(() => getMenuConf.menuWidth);
|
|
279
288
|
const getMenuType = computed$1(() => getMenuConf.type);
|
|
280
|
-
const getIsTopMenu = computed$1(() => unref
|
|
289
|
+
const getIsTopMenu = computed$1(() => unref(getMenuType) === MenuType.TOP_MENU);
|
|
281
290
|
const getMenuMode = computed$1(() => getMenuConf.mode);
|
|
282
291
|
const getSplit = computed$1(() => getMenuConf.split);
|
|
283
292
|
const getCollapsed = computed$1(() => getMenuConf.collapsed);
|
|
284
|
-
const getIsHorizontal = computed$1(() => unref
|
|
293
|
+
const getIsHorizontal = computed$1(() => unref(getMenuMode) === MenuMode.HORIZONTAL);
|
|
285
294
|
const setThemeStore = (conf = {}) => setThemeConf(conf);
|
|
286
295
|
const toggleCollapsed = () => setThemeStore({
|
|
287
296
|
menuOptions: {
|
|
288
|
-
collapsed: !unref
|
|
297
|
+
collapsed: !unref(getCollapsed)
|
|
289
298
|
}
|
|
290
299
|
});
|
|
291
300
|
const getMiniWidthNumber = computed$1(() => getMenuConf.collapsedShowTitle ? 80 : 48);
|
|
292
301
|
const getRealWidth = computed$1(() => {
|
|
293
|
-
return unref
|
|
302
|
+
return unref(getCollapsed) ? unref(getMiniWidthNumber) : unref(getMenuWidth);
|
|
294
303
|
});
|
|
295
304
|
const getCalcContentWidth = computed$1(() => {
|
|
296
|
-
const width = unref
|
|
297
|
-
return `calc(100% - ${unref
|
|
305
|
+
const width = unref(getIsTopMenu) || !unref(getShowMenu) || unref(getSplit) && unref(getMenuHidden) ? 0 : unref(getRealWidth);
|
|
306
|
+
return `calc(100% - ${unref(width)}px)`;
|
|
298
307
|
});
|
|
299
308
|
return {
|
|
300
309
|
getCollapsedShowTitle,
|
|
@@ -324,11 +333,11 @@ function useMenu() {
|
|
|
324
333
|
}
|
|
325
334
|
function useMultipleTab() {
|
|
326
335
|
const { getRouteReuseConf } = useThemeStore();
|
|
327
|
-
const getShowMultipleTab = computed(() => getRouteReuseConf.show);
|
|
328
|
-
const getShowQuick = computed(() => getRouteReuseConf.showQuick);
|
|
329
|
-
const getShowRedo = computed(() => getRouteReuseConf.showRedo);
|
|
330
|
-
const getCanCache = computed(() => getRouteReuseConf.cache);
|
|
331
|
-
const getCanDrag = computed(() => getRouteReuseConf.canDrag);
|
|
336
|
+
const getShowMultipleTab = computed$1(() => getRouteReuseConf.show);
|
|
337
|
+
const getShowQuick = computed$1(() => getRouteReuseConf.showQuick);
|
|
338
|
+
const getShowRedo = computed$1(() => getRouteReuseConf.showRedo);
|
|
339
|
+
const getCanCache = computed$1(() => getRouteReuseConf.cache);
|
|
340
|
+
const getCanDrag = computed$1(() => getRouteReuseConf.canDrag);
|
|
332
341
|
return {
|
|
333
342
|
getShowMultipleTab,
|
|
334
343
|
getShowQuick,
|
|
@@ -355,37 +364,37 @@ function useHeader() {
|
|
|
355
364
|
const { getShowMultipleTab } = useMultipleTab();
|
|
356
365
|
const getHeaderTheme = computed$1(() => getHeaderConf.theme);
|
|
357
366
|
const getFixed = computed$1(() => getHeaderConf.fixed);
|
|
358
|
-
const getShowHeaderLogo = computed$1(() => unref
|
|
367
|
+
const getShowHeaderLogo = computed$1(() => unref(getShowLogo) && !unref(getIsSidebarType));
|
|
359
368
|
const getShowSearch = computed$1(() => getHeaderConf.showSearch);
|
|
360
369
|
const getShowHeaderTrigger = computed$1(() => {
|
|
361
|
-
if (unref
|
|
370
|
+
if (unref(getMenuType) === MenuType.TOP_MENU || !unref(getShowMenu) || unref(getMenuHidden)) {
|
|
362
371
|
return false;
|
|
363
372
|
}
|
|
364
|
-
return unref
|
|
373
|
+
return unref(getTrigger);
|
|
365
374
|
});
|
|
366
375
|
const getShowBreadCrumb = computed$1(() => getHeaderConf.showBreadCrumb);
|
|
367
376
|
const getShowBread = computed$1(
|
|
368
|
-
() => unref
|
|
377
|
+
() => unref(getMenuMode) !== MenuMode.HORIZONTAL && !unref(getSplit) && unref(getShowBreadCrumb)
|
|
369
378
|
);
|
|
370
|
-
const getShowTopMenu = computed$1(() => unref
|
|
379
|
+
const getShowTopMenu = computed$1(() => unref(getMenuMode) === MenuMode.HORIZONTAL || unref(getSplit));
|
|
371
380
|
const getShowNotice = computed$1(() => getHeaderConf.showNotice);
|
|
372
381
|
const getShowFullScreen = computed$1(() => getHeaderConf.showFullScreen);
|
|
373
382
|
const getShowLocale = computed$1(() => getHeaderConf.showLocaleSwitch);
|
|
374
383
|
const getShowSettingTheme = computed$1(() => getHeaderConf.showSettingTheme);
|
|
375
384
|
const getShowFullHeaderRef = computed$1(() => {
|
|
376
|
-
return !unref
|
|
385
|
+
return !unref(getIsSidebarType) && !unref(getIsTopMenu);
|
|
377
386
|
});
|
|
378
387
|
const getHeaderHeight = computed$1(() => {
|
|
379
388
|
let height = 0;
|
|
380
389
|
height += HEADER_HEIGHT;
|
|
381
|
-
if (unref
|
|
390
|
+
if (unref(getShowMultipleTab) && !unref(getSplit)) {
|
|
382
391
|
height += TABS_HEIGHT;
|
|
383
392
|
}
|
|
384
393
|
return height;
|
|
385
394
|
});
|
|
386
395
|
const getTabsHeight = computed$1(() => TABS_HEIGHT);
|
|
387
396
|
const getShowInsetHeaderRef = computed$1(() => {
|
|
388
|
-
return unref
|
|
397
|
+
return unref(getIsSidebarType) || unref(getIsTopMenu);
|
|
389
398
|
});
|
|
390
399
|
const getShowBackToTop = computed$1(() => getHeaderConf.showBackToTop);
|
|
391
400
|
const getIsZH = computed$1(() => {
|
|
@@ -469,7 +478,7 @@ function useHeaderCode(code, changeColumns) {
|
|
|
469
478
|
let rows = [];
|
|
470
479
|
data.forEach((it) => {
|
|
471
480
|
let obj = {
|
|
472
|
-
title: unref
|
|
481
|
+
title: unref(getIsZH) ? it.cloumnName : it.cloumnEngName,
|
|
473
482
|
dataIndex: it.cloumnCode,
|
|
474
483
|
sorter: it.ifOrder,
|
|
475
484
|
align: getAlign(it.textAlign),
|
|
@@ -488,8 +497,8 @@ function useHeaderCode(code, changeColumns) {
|
|
|
488
497
|
getColumns();
|
|
489
498
|
}
|
|
490
499
|
function useTable(props2) {
|
|
491
|
-
const tableRef = ref(null);
|
|
492
|
-
const loadedRef = ref(false);
|
|
500
|
+
const tableRef = ref$1(null);
|
|
501
|
+
const loadedRef = ref$1(false);
|
|
493
502
|
let stopWatch;
|
|
494
503
|
function registerTable(instance) {
|
|
495
504
|
const { isProd } = useApp();
|
|
@@ -549,21 +558,7 @@ function useTable(props2) {
|
|
|
549
558
|
};
|
|
550
559
|
return [registerTable, methods];
|
|
551
560
|
}
|
|
552
|
-
const _default = "";
|
|
553
|
-
const index$e = "";
|
|
554
|
-
const index$d = "";
|
|
555
|
-
const index$c = "";
|
|
556
|
-
const index$b = "";
|
|
557
|
-
const index$a = "";
|
|
558
|
-
const index$9 = "";
|
|
559
|
-
const index$8 = "";
|
|
560
|
-
const index$7 = "";
|
|
561
|
-
const index$6 = "";
|
|
562
|
-
const index$5 = "";
|
|
563
|
-
const index$4 = "";
|
|
564
|
-
const index$3 = "";
|
|
565
561
|
const _imports_0 = "data:image/png;base64,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";
|
|
566
|
-
const index$2 = "";
|
|
567
562
|
const _hoisted_1$b = {
|
|
568
563
|
key: 0,
|
|
569
564
|
class: "dt-table-action-btn"
|
|
@@ -571,7 +566,7 @@ const _hoisted_1$b = {
|
|
|
571
566
|
const _hoisted_2$3 = ["onClick"];
|
|
572
567
|
const _hoisted_3$3 = /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-settings dt-table-action-dropdown cursor-pointer" }, null, -1);
|
|
573
568
|
const _hoisted_4$3 = { class: "text-13 opacity-80" };
|
|
574
|
-
const _sfc_main$
|
|
569
|
+
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
575
570
|
__name: "TableAction",
|
|
576
571
|
props: {
|
|
577
572
|
fixed: {
|
|
@@ -602,7 +597,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
|
|
|
602
597
|
},
|
|
603
598
|
setup(__props) {
|
|
604
599
|
const props2 = __props;
|
|
605
|
-
const actionBtns = ref([]);
|
|
600
|
+
const actionBtns = ref$1([]);
|
|
606
601
|
function handleAction(it) {
|
|
607
602
|
if (isFunction(it.onClick)) {
|
|
608
603
|
it.onClick({
|
|
@@ -635,7 +630,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
|
|
|
635
630
|
const _component_AMenu = Menu;
|
|
636
631
|
const _component_ADropdown = Dropdown;
|
|
637
632
|
const _directive_auth = resolveDirective("auth");
|
|
638
|
-
return props2.expand ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(
|
|
633
|
+
return props2.expand ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(actionBtns.value, (item) => {
|
|
639
634
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
640
635
|
item.ifShow ? withDirectives((openBlock(), createElementBlock("span", _hoisted_1$b, [
|
|
641
636
|
createVNode(_component_ATooltip, { placement: "bottom" }, {
|
|
@@ -665,7 +660,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
|
|
|
665
660
|
overlay: withCtx(() => [
|
|
666
661
|
createVNode(_component_AMenu, { class: "dt-action-select flex flex-col" }, {
|
|
667
662
|
default: withCtx(() => [
|
|
668
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
663
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(actionBtns.value, (item) => {
|
|
669
664
|
return withDirectives((openBlock(), createElementBlock("span", null, [
|
|
670
665
|
item.ifShow ? (openBlock(), createBlock(_component_AMenuItem, {
|
|
671
666
|
key: 0,
|
|
@@ -700,7 +695,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
|
|
|
700
695
|
});
|
|
701
696
|
const tableKey = Symbol("dt-page");
|
|
702
697
|
function createTableInstance(instance) {
|
|
703
|
-
provide
|
|
698
|
+
provide(tableKey, instance);
|
|
704
699
|
}
|
|
705
700
|
function getTableInstance() {
|
|
706
701
|
return inject(tableKey);
|
|
@@ -722,10 +717,10 @@ const CellComponent = ({
|
|
|
722
717
|
getPopupContainer: getPopupContainer2
|
|
723
718
|
}, { attrs }) => {
|
|
724
719
|
const Comp = componentMap$1.get(component);
|
|
725
|
-
const DefaultComp = h(Comp, attrs);
|
|
720
|
+
const DefaultComp = h$1(Comp, attrs);
|
|
726
721
|
if (!rule)
|
|
727
722
|
return DefaultComp;
|
|
728
|
-
return h(
|
|
723
|
+
return h$1(
|
|
729
724
|
Popover,
|
|
730
725
|
{
|
|
731
726
|
overlayClassName: "edit-cell-rule-popover",
|
|
@@ -753,7 +748,7 @@ const basicProps$1 = {
|
|
|
753
748
|
index: Number
|
|
754
749
|
};
|
|
755
750
|
const _hoisted_1$a = { class: "editable-cell" };
|
|
756
|
-
const _sfc_main$
|
|
751
|
+
const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
757
752
|
__name: "EditTableCell",
|
|
758
753
|
props: basicProps$1,
|
|
759
754
|
setup(__props) {
|
|
@@ -762,18 +757,18 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
|
|
|
762
757
|
const { t } = useI18n("UI");
|
|
763
758
|
const { editRule, align = "left" } = props2.column;
|
|
764
759
|
const table = getTableInstance();
|
|
765
|
-
const ruleMessage = ref("");
|
|
766
|
-
const ruleVisible = ref(false);
|
|
767
|
-
const optionsRef = ref([]);
|
|
768
|
-
const currentValueRef = ref(props2.value);
|
|
769
|
-
const getComponent = computed(() => props2.column?.editComponent || "Input");
|
|
770
|
-
const getRuleVisible = computed(() => {
|
|
760
|
+
const ruleMessage = ref$1("");
|
|
761
|
+
const ruleVisible = ref$1(false);
|
|
762
|
+
const optionsRef = ref$1([]);
|
|
763
|
+
const currentValueRef = ref$1(props2.value);
|
|
764
|
+
const getComponent = computed$1(() => props2.column?.editComponent || "Input");
|
|
765
|
+
const getRuleVisible = computed$1(() => {
|
|
771
766
|
return unref(ruleMessage) && unref(ruleVisible);
|
|
772
767
|
});
|
|
773
|
-
const getWrapperClass = computed(() => {
|
|
768
|
+
const getWrapperClass = computed$1(() => {
|
|
774
769
|
return `edit-cell-align-${align}`;
|
|
775
770
|
});
|
|
776
|
-
const getIsCheckComp = computed(() => {
|
|
771
|
+
const getIsCheckComp = computed$1(() => {
|
|
777
772
|
const component = unref(getComponent);
|
|
778
773
|
return ["Checkbox", "Switch"].includes(component);
|
|
779
774
|
});
|
|
@@ -786,15 +781,15 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
|
|
|
786
781
|
const setTableValue = () => {
|
|
787
782
|
props2.record[props2.column.dataIndex] = unref(currentValueRef);
|
|
788
783
|
};
|
|
789
|
-
const getComponentProps = computed(() => {
|
|
784
|
+
const getComponentProps = computed$1(() => {
|
|
790
785
|
const isCheckValue = unref(getIsCheckComp);
|
|
791
786
|
const valueField = isCheckValue ? "checked" : "value";
|
|
792
787
|
const val = unref(currentValueRef);
|
|
793
788
|
const value = isCheckValue ? isNumber(val) && isBoolean(val) ? val : !!val : val;
|
|
794
789
|
let compProps = props2.column?.editComponentProps ?? {};
|
|
795
|
-
const { record, column, index
|
|
790
|
+
const { record, column, index } = props2;
|
|
796
791
|
if (isFunction(compProps)) {
|
|
797
|
-
compProps = compProps({ text: val, record, column, index
|
|
792
|
+
compProps = compProps({ text: val, record, column, index }) ?? {};
|
|
798
793
|
}
|
|
799
794
|
if (unref(getComponent) === "InputNumber") {
|
|
800
795
|
compProps = {
|
|
@@ -861,12 +856,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
|
|
|
861
856
|
}
|
|
862
857
|
return (_ctx, _cache) => {
|
|
863
858
|
return openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
864
|
-
createVNode(unref
|
|
859
|
+
createVNode(unref(CellComponent), mergeProps({ ref: "elRef" }, unref(getComponentProps), {
|
|
865
860
|
component: _ctx.column?.editComponent,
|
|
866
|
-
popoverVisible: unref
|
|
867
|
-
rule: unref
|
|
868
|
-
ruleMessage:
|
|
869
|
-
class: unref
|
|
861
|
+
popoverVisible: unref(getRuleVisible),
|
|
862
|
+
rule: unref(editRule),
|
|
863
|
+
ruleMessage: ruleMessage.value,
|
|
864
|
+
class: unref(getWrapperClass),
|
|
870
865
|
onChange: handleChange,
|
|
871
866
|
onOptionsChange: handleOptionsChange
|
|
872
867
|
}), null, 16, ["component", "popoverVisible", "rule", "ruleMessage", "class"])
|
|
@@ -875,7 +870,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
|
|
|
875
870
|
}
|
|
876
871
|
});
|
|
877
872
|
function renderEditCell(column) {
|
|
878
|
-
return ({ text: value, record, index
|
|
873
|
+
return ({ text: value, record, index }) => {
|
|
879
874
|
record.onValid = async () => {
|
|
880
875
|
if (isArray(record?.validCbs)) {
|
|
881
876
|
const validFns = (record?.validCbs || []).map((fn) => fn());
|
|
@@ -903,11 +898,11 @@ function renderEditCell(column) {
|
|
|
903
898
|
}
|
|
904
899
|
return true;
|
|
905
900
|
};
|
|
906
|
-
return h(_sfc_main$
|
|
901
|
+
return h(_sfc_main$j, {
|
|
907
902
|
value,
|
|
908
903
|
record,
|
|
909
904
|
column,
|
|
910
|
-
index
|
|
905
|
+
index
|
|
911
906
|
});
|
|
912
907
|
};
|
|
913
908
|
}
|
|
@@ -943,9 +938,9 @@ function handleChildren(children, ellipsis) {
|
|
|
943
938
|
function handleIndexColumn(propsRef, getPaginationRef, columns) {
|
|
944
939
|
const { getIsZH } = useHeader();
|
|
945
940
|
const { t } = useI18n("UI");
|
|
946
|
-
const { showIndexColumn, indexColumnProps, isTreeTable } = unref
|
|
941
|
+
const { showIndexColumn, indexColumnProps, isTreeTable } = unref(propsRef);
|
|
947
942
|
let pushIndexColumns = false;
|
|
948
|
-
if (unref
|
|
943
|
+
if (unref(isTreeTable)) {
|
|
949
944
|
return;
|
|
950
945
|
}
|
|
951
946
|
columns.forEach(() => {
|
|
@@ -961,18 +956,18 @@ function handleIndexColumn(propsRef, getPaginationRef, columns) {
|
|
|
961
956
|
const isFixedLeft = columns.some((item) => item.fixed === "left");
|
|
962
957
|
columns.unshift({
|
|
963
958
|
flag: INDEX_FLAG,
|
|
964
|
-
width: unref
|
|
959
|
+
width: unref(getIsZH) ? 50 : 70,
|
|
965
960
|
title: t("NUMBER"),
|
|
966
961
|
align: "center",
|
|
967
|
-
customRender: ({ index
|
|
968
|
-
const getPagination = unref
|
|
962
|
+
customRender: ({ index }) => {
|
|
963
|
+
const getPagination = unref(getPaginationRef);
|
|
969
964
|
const { appConf } = useAppStore();
|
|
970
965
|
const { defaultPageSize } = appConf.ui.table;
|
|
971
966
|
if (isBoolean(getPagination)) {
|
|
972
|
-
return `${
|
|
967
|
+
return `${index + 1}`;
|
|
973
968
|
}
|
|
974
969
|
const { current = 1, pageSize = defaultPageSize } = getPagination;
|
|
975
|
-
return ((current < 1 ? 1 : current) - 1) * pageSize +
|
|
970
|
+
return ((current < 1 ? 1 : current) - 1) * pageSize + index + 1;
|
|
976
971
|
},
|
|
977
972
|
...isFixedLeft ? {
|
|
978
973
|
fixed: "left"
|
|
@@ -984,9 +979,9 @@ function handleActionColumn(propsRef, columns) {
|
|
|
984
979
|
const { getIsZH } = useHeader();
|
|
985
980
|
const { t } = useI18n("UI");
|
|
986
981
|
const { operations = [
|
|
987
|
-
{ name: t("EDIT"), icon: "mdi:text-box-edit-outline", onClick: unref
|
|
988
|
-
{ name: t("DELETE"), icon: "mdi:delete-outline", onClick: unref
|
|
989
|
-
] } = unref
|
|
982
|
+
{ name: t("EDIT"), icon: "mdi:text-box-edit-outline", onClick: unref(propsRef).onUpdate },
|
|
983
|
+
{ name: t("DELETE"), icon: "mdi:delete-outline", onClick: unref(propsRef).onDelete }
|
|
984
|
+
] } = unref(propsRef);
|
|
990
985
|
if (!operations || isObject(operations) && !operations?.btns || isArray(operations) && !operations)
|
|
991
986
|
return;
|
|
992
987
|
const hasIndex = columns.findIndex((column) => column.flag === ACTION_COLUMN);
|
|
@@ -998,19 +993,19 @@ function handleActionColumn(propsRef, columns) {
|
|
|
998
993
|
title: t("ACTIONS"),
|
|
999
994
|
align: "center",
|
|
1000
995
|
expand,
|
|
1001
|
-
width: `${expand ? column.btns.length * 30 + 40 : unref
|
|
996
|
+
width: `${expand ? column.btns.length * 30 + 40 : unref(getIsZH) ? 70 : 90}px`,
|
|
1002
997
|
...column,
|
|
1003
998
|
flag: ACTION_COLUMN
|
|
1004
999
|
};
|
|
1005
1000
|
columns.push({
|
|
1006
1001
|
...columnObj,
|
|
1007
|
-
customRender: ({ record, index
|
|
1008
|
-
return h(
|
|
1009
|
-
_sfc_main$
|
|
1002
|
+
customRender: ({ record, index }) => {
|
|
1003
|
+
return h$1(
|
|
1004
|
+
_sfc_main$k,
|
|
1010
1005
|
omit({
|
|
1011
1006
|
...columnObj,
|
|
1012
1007
|
record,
|
|
1013
|
-
index
|
|
1008
|
+
index
|
|
1014
1009
|
}, "align")
|
|
1015
1010
|
);
|
|
1016
1011
|
}
|
|
@@ -1041,12 +1036,12 @@ function sortFixedColumn(columns) {
|
|
|
1041
1036
|
];
|
|
1042
1037
|
}
|
|
1043
1038
|
function useColumns(propsRef, getPaginationRef, tableElRef) {
|
|
1044
|
-
const columnsRef = ref(unref
|
|
1045
|
-
let cacheColumns = unref
|
|
1046
|
-
const getColumnsRef = computed(() => {
|
|
1047
|
-
const columns = cloneDeep(unref
|
|
1048
|
-
const { ellipsis } = unref
|
|
1049
|
-
columns.forEach((it,
|
|
1039
|
+
const columnsRef = ref(unref(propsRef).columns);
|
|
1040
|
+
let cacheColumns = unref(propsRef).columns;
|
|
1041
|
+
const getColumnsRef = computed$1(() => {
|
|
1042
|
+
const columns = cloneDeep(unref(columnsRef));
|
|
1043
|
+
const { ellipsis } = unref(propsRef);
|
|
1044
|
+
columns.forEach((it, index) => {
|
|
1050
1045
|
it.class = it.class ?? "";
|
|
1051
1046
|
if (!it.class.split(" ").includes("__column")) {
|
|
1052
1047
|
it.class = `${it.class} __column`;
|
|
@@ -1066,8 +1061,8 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
|
|
|
1066
1061
|
handleActionColumn(propsRef, columns);
|
|
1067
1062
|
return columns;
|
|
1068
1063
|
});
|
|
1069
|
-
const getViewColumns = computed(() => {
|
|
1070
|
-
const viewColumns = sortFixedColumn(unref
|
|
1064
|
+
const getViewColumns = computed$1(() => {
|
|
1065
|
+
const viewColumns = sortFixedColumn(unref(getColumnsRef));
|
|
1071
1066
|
const columns = cloneDeep(viewColumns);
|
|
1072
1067
|
return columns.filter((column) => isIfShow(column)).map((column) => {
|
|
1073
1068
|
if (column.edit) {
|
|
@@ -1080,10 +1075,10 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
|
|
|
1080
1075
|
const ifShow = column.show;
|
|
1081
1076
|
return isBoolean(ifShow) ? ifShow : isFunction(ifShow) ? ifShow(column) : true;
|
|
1082
1077
|
}
|
|
1083
|
-
|
|
1078
|
+
useDebounceFn(addResize, 100);
|
|
1084
1079
|
function addResize() {
|
|
1085
|
-
const { resizable, minWidth = 50, maxWidth = 700 } = unref
|
|
1086
|
-
let els = unref
|
|
1080
|
+
const { resizable, minWidth = 50, maxWidth = 700 } = unref(propsRef);
|
|
1081
|
+
let els = unref(tableElRef)?.$el.querySelectorAll(".__column"), allWidth = 0, columnAllWidth = 0, noWidthNum = 0, avgWidth = 0;
|
|
1087
1082
|
for (let i = 0; i < els?.length; i++) {
|
|
1088
1083
|
allWidth += els[i].offsetWidth ?? 0;
|
|
1089
1084
|
}
|
|
@@ -1108,7 +1103,7 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
|
|
|
1108
1103
|
}
|
|
1109
1104
|
function getColumns(opt) {
|
|
1110
1105
|
const { ignoreIndex, ignoreAction, sort } = opt || {};
|
|
1111
|
-
let columns = toRaw
|
|
1106
|
+
let columns = toRaw$1(unref(getColumnsRef));
|
|
1112
1107
|
if (ignoreIndex) {
|
|
1113
1108
|
columns = columns.filter((it) => it.flag !== INDEX_FLAG);
|
|
1114
1109
|
}
|
|
@@ -1163,11 +1158,11 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
|
|
|
1163
1158
|
return cacheColumns;
|
|
1164
1159
|
}
|
|
1165
1160
|
watch(
|
|
1166
|
-
() => unref
|
|
1161
|
+
() => unref(propsRef).columns,
|
|
1167
1162
|
(columns) => {
|
|
1168
1163
|
columnsRef.value = columns;
|
|
1169
1164
|
cacheColumns = columns.filter((it) => !it.flag) ?? [];
|
|
1170
|
-
nextTick(() =>
|
|
1165
|
+
nextTick(() => addResize());
|
|
1171
1166
|
}
|
|
1172
1167
|
);
|
|
1173
1168
|
return {
|
|
@@ -1180,12 +1175,12 @@ function useColumns(propsRef, getPaginationRef, tableElRef) {
|
|
|
1180
1175
|
};
|
|
1181
1176
|
}
|
|
1182
1177
|
function useCustomRow(propsRef, { setSelectedRowKeys, getSelectedRowKeys, clearSelectedRowKeys, emits }) {
|
|
1183
|
-
const customRow = (record,
|
|
1178
|
+
const customRow = (record, index) => {
|
|
1184
1179
|
return {
|
|
1185
1180
|
onClick: (e) => {
|
|
1186
1181
|
e?.stopPropagation();
|
|
1187
1182
|
function handleClick() {
|
|
1188
|
-
const { rowSelection, rowKey, clickToSelectRow } = unref
|
|
1183
|
+
const { rowSelection, rowKey, clickToSelectRow } = unref(propsRef);
|
|
1189
1184
|
if (!rowSelection || !clickToSelectRow)
|
|
1190
1185
|
return;
|
|
1191
1186
|
const keys = getSelectedRowKeys();
|
|
@@ -1234,19 +1229,19 @@ function useCustomRow(propsRef, { setSelectedRowKeys, getSelectedRowKeys, clearS
|
|
|
1234
1229
|
}
|
|
1235
1230
|
}
|
|
1236
1231
|
handleClick();
|
|
1237
|
-
emits("row-click", record,
|
|
1232
|
+
emits("row-click", record, index, e);
|
|
1238
1233
|
},
|
|
1239
1234
|
onDblclick: (event) => {
|
|
1240
|
-
emits("row-dbClick", record,
|
|
1235
|
+
emits("row-dbClick", record, index, event);
|
|
1241
1236
|
},
|
|
1242
1237
|
onContextmenu: (event) => {
|
|
1243
|
-
emits("row-contextmenu", record,
|
|
1238
|
+
emits("row-contextmenu", record, index, event);
|
|
1244
1239
|
},
|
|
1245
1240
|
onMouseenter: (event) => {
|
|
1246
|
-
emits("row-mouseenter", record,
|
|
1241
|
+
emits("row-mouseenter", record, index, event);
|
|
1247
1242
|
},
|
|
1248
1243
|
onMouseleave: (event) => {
|
|
1249
|
-
emits("row-mouseleave", record,
|
|
1244
|
+
emits("row-mouseleave", record, index, event);
|
|
1250
1245
|
}
|
|
1251
1246
|
};
|
|
1252
1247
|
};
|
|
@@ -1260,8 +1255,8 @@ function useDataSource(propsRef, {
|
|
|
1260
1255
|
clearSelectedRowKeys
|
|
1261
1256
|
}) {
|
|
1262
1257
|
const dataSourceRef = ref$1([]);
|
|
1263
|
-
watch
|
|
1264
|
-
() => unref
|
|
1258
|
+
watch(
|
|
1259
|
+
() => unref(propsRef).dataSource,
|
|
1265
1260
|
(dataSource) => {
|
|
1266
1261
|
dataSource && (dataSourceRef.value = dataSource);
|
|
1267
1262
|
},
|
|
@@ -1270,10 +1265,10 @@ function useDataSource(propsRef, {
|
|
|
1270
1265
|
}
|
|
1271
1266
|
);
|
|
1272
1267
|
const getDataSourceRef = computed$1(() => {
|
|
1273
|
-
return unref
|
|
1268
|
+
return unref(dataSourceRef);
|
|
1274
1269
|
});
|
|
1275
1270
|
function handleTableChange(pagination, filters, sorter) {
|
|
1276
|
-
const { sortFn, filterFn, onTableChange: onTableChange2, clearSelectOnPageChange } = unref
|
|
1271
|
+
const { sortFn, filterFn, onTableChange: onTableChange2, clearSelectOnPageChange } = unref(propsRef);
|
|
1277
1272
|
const { appConf: appConf2 } = useAppStore();
|
|
1278
1273
|
const { current = 1, pageSize = appConf2.ui.table.defaultPageSize } = pagination;
|
|
1279
1274
|
if (clearSelectOnPageChange) {
|
|
@@ -1293,11 +1288,11 @@ function useDataSource(propsRef, {
|
|
|
1293
1288
|
pageSize
|
|
1294
1289
|
},
|
|
1295
1290
|
sort: sorter,
|
|
1296
|
-
filter: toRaw$1(unref
|
|
1291
|
+
filter: toRaw$1(unref(params.filterInfo)),
|
|
1297
1292
|
showBtnLoading: false
|
|
1298
1293
|
});
|
|
1299
1294
|
}
|
|
1300
|
-
const { defSort, onTableChange } = unref
|
|
1295
|
+
const { defSort, onTableChange } = unref(propsRef);
|
|
1301
1296
|
const { appConf } = useAppStore();
|
|
1302
1297
|
onTableChange({
|
|
1303
1298
|
pagination: {
|
|
@@ -1320,11 +1315,11 @@ function useDataSource(propsRef, {
|
|
|
1320
1315
|
function findTableDataRecord(rowKey) {
|
|
1321
1316
|
if (!dataSourceRef.value || dataSourceRef.value.length == 0 || !rowKey)
|
|
1322
1317
|
return;
|
|
1323
|
-
const { childrenColumnName = "children" } = unref
|
|
1318
|
+
const { childrenColumnName = "children" } = unref(propsRef);
|
|
1324
1319
|
const findRow = (array) => {
|
|
1325
1320
|
let ret;
|
|
1326
1321
|
array.some(function iter(r) {
|
|
1327
|
-
if (Reflect.has(r, unref
|
|
1322
|
+
if (Reflect.has(r, unref(propsRef).rowKey) && r[unref(propsRef).rowKey] === rowKey) {
|
|
1328
1323
|
ret = r;
|
|
1329
1324
|
return true;
|
|
1330
1325
|
}
|
|
@@ -1341,71 +1336,20 @@ function useDataSource(propsRef, {
|
|
|
1341
1336
|
findTableDataRecord
|
|
1342
1337
|
};
|
|
1343
1338
|
}
|
|
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
1339
|
function useFormValue(props2, key = "value", changeEvent = "change", emitData) {
|
|
1396
1340
|
const instance = getCurrentInstance$1();
|
|
1397
1341
|
const emit = instance?.emit;
|
|
1398
|
-
const innerState = reactive
|
|
1342
|
+
const innerState = reactive({
|
|
1399
1343
|
value: props2[key]
|
|
1400
1344
|
});
|
|
1401
1345
|
const defaultState = readonly(innerState);
|
|
1402
1346
|
const setState = (val) => {
|
|
1403
1347
|
innerState.value = val;
|
|
1404
|
-
nextTick
|
|
1405
|
-
emit?.(changeEvent, val, ...toRaw$1(unref
|
|
1348
|
+
nextTick(() => {
|
|
1349
|
+
emit?.(changeEvent, val, ...toRaw$1(unref(emitData)) || []);
|
|
1406
1350
|
});
|
|
1407
1351
|
};
|
|
1408
|
-
watchEffect
|
|
1352
|
+
watchEffect(() => {
|
|
1409
1353
|
innerState.value = props2[key];
|
|
1410
1354
|
});
|
|
1411
1355
|
const state = computed$1({
|
|
@@ -1416,14 +1360,14 @@ function useFormValue(props2, key = "value", changeEvent = "change", emitData) {
|
|
|
1416
1360
|
if (isEqual(value, defaultState.value))
|
|
1417
1361
|
return;
|
|
1418
1362
|
innerState.value = value;
|
|
1419
|
-
nextTick
|
|
1420
|
-
emit?.(changeEvent, value, ...toRaw$1(unref
|
|
1363
|
+
nextTick(() => {
|
|
1364
|
+
emit?.(changeEvent, value, ...toRaw$1(unref(emitData)) || []);
|
|
1421
1365
|
});
|
|
1422
1366
|
}
|
|
1423
1367
|
});
|
|
1424
1368
|
return [state, setState, defaultState];
|
|
1425
1369
|
}
|
|
1426
|
-
const _sfc_main$
|
|
1370
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
1427
1371
|
__name: "radioButton",
|
|
1428
1372
|
props: {
|
|
1429
1373
|
value: {
|
|
@@ -1450,13 +1394,13 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
|
|
|
1450
1394
|
return (_ctx, _cache) => {
|
|
1451
1395
|
const _component_ARadioButton = RadioButton;
|
|
1452
1396
|
const _component_ARadioGroup = RadioGroup;
|
|
1453
|
-
return openBlock(), createBlock(_component_ARadioGroup, mergeProps(unref
|
|
1454
|
-
value: unref
|
|
1397
|
+
return openBlock(), createBlock(_component_ARadioGroup, mergeProps(unref(attrs), {
|
|
1398
|
+
value: unref(state),
|
|
1455
1399
|
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(state) ? state.value = $event : null),
|
|
1456
1400
|
"button-style": "solid"
|
|
1457
1401
|
}), {
|
|
1458
1402
|
default: withCtx(() => [
|
|
1459
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(unref
|
|
1403
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(getOptions), (item) => {
|
|
1460
1404
|
return openBlock(), createBlock(_component_ARadioButton, {
|
|
1461
1405
|
key: `${item.value}`,
|
|
1462
1406
|
value: item.value,
|
|
@@ -1475,11 +1419,11 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
|
|
|
1475
1419
|
}
|
|
1476
1420
|
});
|
|
1477
1421
|
const _hoisted_1$9 = { class: "input-with-dialog" };
|
|
1478
|
-
const _sfc_main$
|
|
1422
|
+
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
1479
1423
|
__name: "formInputUseDialog",
|
|
1480
1424
|
setup(__props) {
|
|
1481
1425
|
const { t } = useI18n("UI");
|
|
1482
|
-
const attrs = useAttrs
|
|
1426
|
+
const attrs = useAttrs();
|
|
1483
1427
|
const bindProps = computed$1(() => {
|
|
1484
1428
|
return {
|
|
1485
1429
|
...omit(attrs, [
|
|
@@ -1503,9 +1447,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
|
|
|
1503
1447
|
return (_ctx, _cache) => {
|
|
1504
1448
|
return openBlock(), createElementBlock("div", _hoisted_1$9, [
|
|
1505
1449
|
createElementVNode("div", { onClick: onClickInput }, [
|
|
1506
|
-
createVNode(unref
|
|
1450
|
+
createVNode(unref(Input), normalizeProps(guardReactiveProps(unref(bindProps))), null, 16)
|
|
1507
1451
|
]),
|
|
1508
|
-
unref
|
|
1452
|
+
unref(attrs).formValues?.schema?.linkProps?.length ? (openBlock(), createElementBlock("i", {
|
|
1509
1453
|
key: 0,
|
|
1510
1454
|
class: "i mdi:close-circle",
|
|
1511
1455
|
onClick: clearProps
|
|
@@ -1516,7 +1460,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
|
|
|
1516
1460
|
});
|
|
1517
1461
|
const components = {
|
|
1518
1462
|
Input,
|
|
1519
|
-
InputWithDialog: _sfc_main$
|
|
1463
|
+
InputWithDialog: _sfc_main$h,
|
|
1520
1464
|
InputTextArea: Input.TextArea,
|
|
1521
1465
|
InputSearch: Input.Search,
|
|
1522
1466
|
InputGroup: Input.Group,
|
|
@@ -1525,7 +1469,7 @@ const components = {
|
|
|
1525
1469
|
TreeSelect,
|
|
1526
1470
|
Radio,
|
|
1527
1471
|
RadioGroup: Radio.Group,
|
|
1528
|
-
RadioButtonGroup: _sfc_main$
|
|
1472
|
+
RadioButtonGroup: _sfc_main$i,
|
|
1529
1473
|
Checkbox,
|
|
1530
1474
|
CheckboxGroup: Checkbox.Group,
|
|
1531
1475
|
AutoComplete,
|
|
@@ -1545,372 +1489,6 @@ const componentMap = /* @__PURE__ */ new Map();
|
|
|
1545
1489
|
for (let item in components) {
|
|
1546
1490
|
componentMap.set(item, components[item]);
|
|
1547
1491
|
}
|
|
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
1492
|
const _hoisted_1$8 = {
|
|
1915
1493
|
key: 0,
|
|
1916
1494
|
className: "preIcon pr-1"
|
|
@@ -1924,7 +1502,7 @@ const _hoisted_4$2 = /* @__PURE__ */ createElementVNode("i", { class: "text-2xl
|
|
|
1924
1502
|
const _hoisted_5$1 = [
|
|
1925
1503
|
_hoisted_4$2
|
|
1926
1504
|
];
|
|
1927
|
-
const _sfc_main$
|
|
1505
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
1928
1506
|
__name: "FormButtons",
|
|
1929
1507
|
props: {
|
|
1930
1508
|
mode: {
|
|
@@ -1956,12 +1534,12 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
1956
1534
|
setup(__props, { emit: emits }) {
|
|
1957
1535
|
const props2 = __props;
|
|
1958
1536
|
const { t } = useI18n();
|
|
1959
|
-
const advancedRef = ref(props2.isAdvanced);
|
|
1537
|
+
const advancedRef = ref$1(props2.isAdvanced);
|
|
1960
1538
|
let key = 0;
|
|
1961
|
-
const showAdvanceRef = computed(() => {
|
|
1539
|
+
const showAdvanceRef = computed$1(() => {
|
|
1962
1540
|
return props2.mode === "search" ? props2.showAdvancedButton : false;
|
|
1963
1541
|
});
|
|
1964
|
-
const colOpt = computed(() => {
|
|
1542
|
+
const colOpt = computed$1(() => {
|
|
1965
1543
|
let style = {
|
|
1966
1544
|
textAlign: "right"
|
|
1967
1545
|
};
|
|
@@ -1972,7 +1550,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
1972
1550
|
}
|
|
1973
1551
|
return { style };
|
|
1974
1552
|
});
|
|
1975
|
-
const getAdvanceClass = computed(() => {
|
|
1553
|
+
const getAdvanceClass = computed$1(() => {
|
|
1976
1554
|
return [
|
|
1977
1555
|
"basic-arrow",
|
|
1978
1556
|
{ "basic-arrow--active": !advancedRef.value }
|
|
@@ -2007,11 +1585,11 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
2007
1585
|
);
|
|
2008
1586
|
return (_ctx, _cache) => {
|
|
2009
1587
|
const _component_AButton = Button;
|
|
2010
|
-
const _component_AFormItem = FormItem
|
|
2011
|
-
const _component_ACol = Col
|
|
1588
|
+
const _component_AFormItem = FormItem;
|
|
1589
|
+
const _component_ACol = Col;
|
|
2012
1590
|
const _directive_icon = resolveDirective("icon");
|
|
2013
1591
|
const _directive_auth = resolveDirective("auth");
|
|
2014
|
-
return __props.show ? (openBlock(), createBlock(_component_ACol, normalizeProps(mergeProps({ key: 0 }, unref
|
|
1592
|
+
return __props.show ? (openBlock(), createBlock(_component_ACol, normalizeProps(mergeProps({ key: 0 }, unref(colOpt))), {
|
|
2015
1593
|
default: withCtx(() => [
|
|
2016
1594
|
createVNode(_component_AFormItem, {
|
|
2017
1595
|
class: "dt-form-btns",
|
|
@@ -2025,9 +1603,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
2025
1603
|
(button.show === void 0 ? true : button.show) ? withDirectives((openBlock(), createBlock(_component_AButton, {
|
|
2026
1604
|
type: button.type,
|
|
2027
1605
|
class: normalizeClass(button.class),
|
|
2028
|
-
loading: button.loading,
|
|
1606
|
+
loading: button.loading?.value,
|
|
2029
1607
|
disabled: button.disabled,
|
|
2030
|
-
key: unref
|
|
1608
|
+
key: unref(key),
|
|
2031
1609
|
onClick: ($event) => handleBtnClick(button)
|
|
2032
1610
|
}, {
|
|
2033
1611
|
icon: withCtx(() => [
|
|
@@ -2036,7 +1614,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
2036
1614
|
]) : createCommentVNode("", true)
|
|
2037
1615
|
]),
|
|
2038
1616
|
default: withCtx(() => [
|
|
2039
|
-
createTextVNode(" " + toDisplayString(unref
|
|
1617
|
+
createTextVNode(" " + toDisplayString(unref(t)(button.name)) + " ", 1),
|
|
2040
1618
|
button.postIcon ? withDirectives((openBlock(), createElementBlock("span", _hoisted_2$2, null, 512)), [
|
|
2041
1619
|
[_directive_icon, button.postIcon]
|
|
2042
1620
|
]) : createCommentVNode("", true)
|
|
@@ -2047,16 +1625,16 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
2047
1625
|
]) : createCommentVNode("", true)
|
|
2048
1626
|
], 64);
|
|
2049
1627
|
}), 256)),
|
|
2050
|
-
unref
|
|
1628
|
+
unref(showAdvanceRef) ? (openBlock(), createBlock(_component_AButton, {
|
|
2051
1629
|
key: 0,
|
|
2052
1630
|
type: "link",
|
|
2053
1631
|
class: "advanced",
|
|
2054
1632
|
onClick: toggleAdvanced
|
|
2055
1633
|
}, {
|
|
2056
1634
|
default: withCtx(() => [
|
|
2057
|
-
createElementVNode("span", _hoisted_3$2, toDisplayString(
|
|
1635
|
+
createElementVNode("span", _hoisted_3$2, toDisplayString(advancedRef.value ? unref(t)("UI.ADVANCED") : unref(t)("UI.EXPAND")), 1),
|
|
2058
1636
|
createElementVNode("span", {
|
|
2059
|
-
class: normalizeClass(unref
|
|
1637
|
+
class: normalizeClass(unref(getAdvanceClass))
|
|
2060
1638
|
}, _hoisted_5$1, 2)
|
|
2061
1639
|
]),
|
|
2062
1640
|
_: 1
|
|
@@ -2071,12 +1649,12 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
|
|
|
2071
1649
|
}
|
|
2072
1650
|
});
|
|
2073
1651
|
const _hoisted_1$7 = { key: 0 };
|
|
2074
|
-
const _sfc_main$
|
|
1652
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
2075
1653
|
__name: "Fullscreen",
|
|
2076
1654
|
setup(__props) {
|
|
2077
1655
|
const { t } = useI18n("UI");
|
|
2078
1656
|
const table = getTableInstance();
|
|
2079
|
-
const wrapEl = ref(null);
|
|
1657
|
+
const wrapEl = ref$1(null);
|
|
2080
1658
|
const { toggle, isFullscreen } = useFullscreen(wrapEl);
|
|
2081
1659
|
watch(
|
|
2082
1660
|
() => table.tableElRef.value,
|
|
@@ -2097,15 +1675,15 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent$1({
|
|
|
2097
1675
|
const _component_ATooltip = Tooltip;
|
|
2098
1676
|
return openBlock(), createBlock(_component_ATooltip, { placement: "top" }, {
|
|
2099
1677
|
title: withCtx(() => [
|
|
2100
|
-
!unref
|
|
1678
|
+
!unref(isFullscreen) ? (openBlock(), createElementBlock("span", _hoisted_1$7, toDisplayString(unref(t)("FULLSCREEN")), 1)) : createCommentVNode("", true)
|
|
2101
1679
|
]),
|
|
2102
1680
|
default: withCtx(() => [
|
|
2103
1681
|
createElementVNode("span", {
|
|
2104
1682
|
class: "flex",
|
|
2105
|
-
onClick: _cache[0] || (_cache[0] = (...args) => unref
|
|
1683
|
+
onClick: _cache[0] || (_cache[0] = (...args) => unref(toggle) && unref(toggle)(...args))
|
|
2106
1684
|
}, [
|
|
2107
1685
|
createElementVNode("i", {
|
|
2108
|
-
class: normalizeClass(["i w-7 leading-7 text-center cursor-pointer", unref
|
|
1686
|
+
class: normalizeClass(["i w-7 leading-7 text-center cursor-pointer", unref(isFullscreen) ? "ic:baseline-fullscreen-exit" : "ic:baseline-fullscreen"])
|
|
2109
1687
|
}, null, 2)
|
|
2110
1688
|
])
|
|
2111
1689
|
]),
|
|
@@ -2118,9 +1696,9 @@ const orgDialogProp = reactive({});
|
|
|
2118
1696
|
const cbTransfer = reactive({});
|
|
2119
1697
|
const dataTransfer = reactive({});
|
|
2120
1698
|
function useModalOut() {
|
|
2121
|
-
const modal = ref(null);
|
|
2122
|
-
const loaded = ref(true);
|
|
2123
|
-
const uid = ref(null);
|
|
1699
|
+
const modal = ref$1(null);
|
|
1700
|
+
const loaded = ref$1(true);
|
|
1701
|
+
const uid = ref$1(null);
|
|
2124
1702
|
const { isProd } = useApp();
|
|
2125
1703
|
function register(modalMethod, uuid) {
|
|
2126
1704
|
if (!getCurrentInstance()) {
|
|
@@ -2178,9 +1756,9 @@ function useModalOut() {
|
|
|
2178
1756
|
return [register, methods];
|
|
2179
1757
|
}
|
|
2180
1758
|
function useModal(props2, setModalData) {
|
|
2181
|
-
const modalInstanceRef = ref(null);
|
|
1759
|
+
const modalInstanceRef = ref$1(null);
|
|
2182
1760
|
const currentInstance = getCurrentInstance();
|
|
2183
|
-
const uidRef = ref(null);
|
|
1761
|
+
const uidRef = ref$1(null);
|
|
2184
1762
|
const { isProd } = useApp();
|
|
2185
1763
|
const getInstance = () => {
|
|
2186
1764
|
const instance = unref(modalInstanceRef);
|
|
@@ -2384,7 +1962,7 @@ function useDragMove(context) {
|
|
|
2384
1962
|
function _isSlot(s) {
|
|
2385
1963
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
2386
1964
|
}
|
|
2387
|
-
const
|
|
1965
|
+
const _sfc_main$e = {
|
|
2388
1966
|
name: "Modal",
|
|
2389
1967
|
inheritAttrs: false,
|
|
2390
1968
|
props: basicProps,
|
|
@@ -2418,13 +1996,13 @@ const Modal = defineComponent({
|
|
|
2418
1996
|
};
|
|
2419
1997
|
if (!propsData?.visible)
|
|
2420
1998
|
return null;
|
|
2421
|
-
return createVNode(Modal
|
|
1999
|
+
return createVNode(Modal, propsData, _isSlot(_slot = extendSlots(slots)) ? _slot : {
|
|
2422
2000
|
default: () => [_slot]
|
|
2423
2001
|
});
|
|
2424
2002
|
};
|
|
2425
2003
|
}
|
|
2426
|
-
}
|
|
2427
|
-
const _sfc_main$d = /* @__PURE__ */ defineComponent
|
|
2004
|
+
};
|
|
2005
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
2428
2006
|
__name: "CloseIcon",
|
|
2429
2007
|
props: {
|
|
2430
2008
|
canFullscreen: { type: Boolean, default: true },
|
|
@@ -2434,7 +2012,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
|
|
|
2434
2012
|
setup(__props, { emit }) {
|
|
2435
2013
|
const props2 = __props;
|
|
2436
2014
|
const { t } = useI18n("UI");
|
|
2437
|
-
const getClass = computed(() => {
|
|
2015
|
+
const getClass = computed$1(() => {
|
|
2438
2016
|
return [
|
|
2439
2017
|
"dt-basic-modal-close",
|
|
2440
2018
|
`dt-basic-modal-close--custom`,
|
|
@@ -2454,12 +2032,12 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
|
|
|
2454
2032
|
return (_ctx, _cache) => {
|
|
2455
2033
|
const _component_ATooltip = Tooltip;
|
|
2456
2034
|
return openBlock(), createElementBlock("div", {
|
|
2457
|
-
class: normalizeClass(["flex h-14 items-center justify-center", unref
|
|
2035
|
+
class: normalizeClass(["flex h-14 items-center justify-center", unref(getClass)])
|
|
2458
2036
|
}, [
|
|
2459
2037
|
__props.canFullscreen ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
2460
2038
|
__props.fullScreen ? (openBlock(), createBlock(_component_ATooltip, {
|
|
2461
2039
|
key: 0,
|
|
2462
|
-
title: unref
|
|
2040
|
+
title: unref(t)("EXIT_FULLSCREEN"),
|
|
2463
2041
|
placement: "bottom"
|
|
2464
2042
|
}, {
|
|
2465
2043
|
default: withCtx(() => [
|
|
@@ -2471,7 +2049,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
|
|
|
2471
2049
|
_: 1
|
|
2472
2050
|
}, 8, ["title"])) : (openBlock(), createBlock(_component_ATooltip, {
|
|
2473
2051
|
key: 1,
|
|
2474
|
-
title: unref
|
|
2052
|
+
title: unref(t)("FULLSCREEN"),
|
|
2475
2053
|
placement: "bottom"
|
|
2476
2054
|
}, {
|
|
2477
2055
|
default: withCtx(() => [
|
|
@@ -2551,7 +2129,7 @@ function removeResizeListener(element, fn) {
|
|
|
2551
2129
|
element.__ro__.disconnect();
|
|
2552
2130
|
}
|
|
2553
2131
|
}
|
|
2554
|
-
const Bar = defineComponent
|
|
2132
|
+
const Bar = defineComponent({
|
|
2555
2133
|
name: "Bar",
|
|
2556
2134
|
props: {
|
|
2557
2135
|
vertical: Boolean,
|
|
@@ -2607,7 +2185,7 @@ const Bar = defineComponent$1({
|
|
|
2607
2185
|
off(document, "mousemove", mouseMoveDocumentHandler);
|
|
2608
2186
|
document.onselectstart = null;
|
|
2609
2187
|
}
|
|
2610
|
-
onUnmounted
|
|
2188
|
+
onUnmounted(() => {
|
|
2611
2189
|
off(document, "mouseup", mouseUpDocumentHandler);
|
|
2612
2190
|
});
|
|
2613
2191
|
return () => h$1(
|
|
@@ -2630,7 +2208,7 @@ const Bar = defineComponent$1({
|
|
|
2630
2208
|
}
|
|
2631
2209
|
});
|
|
2632
2210
|
const _hoisted_1$6 = { class: "scrollbar relative h-full overflow-hidden" };
|
|
2633
|
-
const _sfc_main$c = /* @__PURE__ */ defineComponent
|
|
2211
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
2634
2212
|
__name: "scroll-bar",
|
|
2635
2213
|
props: {
|
|
2636
2214
|
wrapClass: {
|
|
@@ -2654,14 +2232,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
|
|
|
2654
2232
|
},
|
|
2655
2233
|
setup(__props) {
|
|
2656
2234
|
const props2 = __props;
|
|
2657
|
-
const sizeWidth = ref("0");
|
|
2658
|
-
const sizeHeight = ref("0");
|
|
2659
|
-
const moveX = ref(0);
|
|
2660
|
-
const moveY = ref(0);
|
|
2661
|
-
const wrap = ref();
|
|
2662
|
-
const resize = ref();
|
|
2235
|
+
const sizeWidth = ref$1("0");
|
|
2236
|
+
const sizeHeight = ref$1("0");
|
|
2237
|
+
const moveX = ref$1(0);
|
|
2238
|
+
const moveY = ref$1(0);
|
|
2239
|
+
const wrap = ref$1();
|
|
2240
|
+
const resize = ref$1();
|
|
2663
2241
|
provide("scroll-bar-wrap", wrap);
|
|
2664
|
-
const style = computed(() => {
|
|
2242
|
+
const style = computed$1(() => {
|
|
2665
2243
|
let rsStyle = {};
|
|
2666
2244
|
if (Array.isArray(props2.wrapStyle)) {
|
|
2667
2245
|
props2.wrapStyle.forEach((it) => {
|
|
@@ -2683,7 +2261,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
|
|
|
2683
2261
|
sizeHeight.value = heightPercentage < 100 ? heightPercentage + "%" : "";
|
|
2684
2262
|
sizeWidth.value = widthPercentage < 100 ? widthPercentage + "%" : "";
|
|
2685
2263
|
};
|
|
2686
|
-
onMounted(() => {
|
|
2264
|
+
onMounted$1(() => {
|
|
2687
2265
|
nextTick(update);
|
|
2688
2266
|
if (!props2.noresize) {
|
|
2689
2267
|
addResizeListener(unref(resize), update);
|
|
@@ -2704,7 +2282,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
|
|
|
2704
2282
|
ref_key: "wrap",
|
|
2705
2283
|
ref: wrap,
|
|
2706
2284
|
class: normalizeClass([[__props.wrapClass, "scrollbar__wrap--hidden-default"], "h-full overflow-auto"]),
|
|
2707
|
-
style: normalizeStyle(unref
|
|
2285
|
+
style: normalizeStyle(unref(style)),
|
|
2708
2286
|
onScroll: handleScroll
|
|
2709
2287
|
}, [
|
|
2710
2288
|
(openBlock(), createBlock(resolveDynamicComponent(__props.tag), {
|
|
@@ -2719,20 +2297,20 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
|
|
|
2719
2297
|
_: 3
|
|
2720
2298
|
}, 8, ["class", "style"]))
|
|
2721
2299
|
], 38),
|
|
2722
|
-
createVNode(unref
|
|
2723
|
-
move:
|
|
2724
|
-
size:
|
|
2300
|
+
createVNode(unref(Bar), {
|
|
2301
|
+
move: moveX.value,
|
|
2302
|
+
size: sizeWidth.value
|
|
2725
2303
|
}, null, 8, ["move", "size"]),
|
|
2726
|
-
createVNode(unref
|
|
2304
|
+
createVNode(unref(Bar), {
|
|
2727
2305
|
vertical: "",
|
|
2728
|
-
move:
|
|
2729
|
-
size:
|
|
2306
|
+
move: moveY.value,
|
|
2307
|
+
size: sizeHeight.value
|
|
2730
2308
|
}, null, 8, ["move", "size"])
|
|
2731
2309
|
]);
|
|
2732
2310
|
};
|
|
2733
2311
|
}
|
|
2734
2312
|
});
|
|
2735
|
-
const _sfc_main$b = /* @__PURE__ */ defineComponent
|
|
2313
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
2736
2314
|
__name: "scroll-container",
|
|
2737
2315
|
setup(__props) {
|
|
2738
2316
|
const scrollbarRef = ref(null);
|
|
@@ -2749,8 +2327,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent$1({
|
|
|
2749
2327
|
};
|
|
2750
2328
|
}
|
|
2751
2329
|
});
|
|
2752
|
-
const _sfc_main$a = defineComponent({
|
|
2753
|
-
|
|
2330
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
2331
|
+
__name: "slot-container",
|
|
2754
2332
|
props: {
|
|
2755
2333
|
template: {
|
|
2756
2334
|
type: Function
|
|
@@ -2759,9 +2337,11 @@ const _sfc_main$a = defineComponent({
|
|
|
2759
2337
|
type: Object
|
|
2760
2338
|
}
|
|
2761
2339
|
},
|
|
2762
|
-
setup(
|
|
2763
|
-
|
|
2764
|
-
|
|
2340
|
+
setup(__props) {
|
|
2341
|
+
const props2 = __props;
|
|
2342
|
+
const Container = h("div", [props2.template(props2.data)]);
|
|
2343
|
+
return (_ctx, _cache) => {
|
|
2344
|
+
return openBlock(), createBlock(unref(Container));
|
|
2765
2345
|
};
|
|
2766
2346
|
}
|
|
2767
2347
|
});
|
|
@@ -2773,7 +2353,7 @@ const withInstall = (comp) => {
|
|
|
2773
2353
|
};
|
|
2774
2354
|
const DtScrollContainer = withInstall(_sfc_main$b);
|
|
2775
2355
|
withInstall(_sfc_main$a);
|
|
2776
|
-
const _sfc_main$9 = /* @__PURE__ */ defineComponent
|
|
2356
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
2777
2357
|
__name: "ModalWrap",
|
|
2778
2358
|
props: {
|
|
2779
2359
|
useWrapper: { type: Boolean, default: true },
|
|
@@ -2787,12 +2367,12 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
|
|
|
2787
2367
|
emits: ["ext-height", "height-change"],
|
|
2788
2368
|
setup(__props, { emit: emits }) {
|
|
2789
2369
|
const props2 = __props;
|
|
2790
|
-
const wrapperRef = ref(null);
|
|
2791
|
-
const wrapRef = ref(null);
|
|
2792
|
-
const realHeightRef = ref(0);
|
|
2793
|
-
const minRealHeightRef = ref(0);
|
|
2370
|
+
const wrapperRef = ref$1(null);
|
|
2371
|
+
const wrapRef = ref$1(null);
|
|
2372
|
+
const realHeightRef = ref$1(0);
|
|
2373
|
+
const minRealHeightRef = ref$1(0);
|
|
2794
2374
|
let realHeight = 0;
|
|
2795
|
-
const wrapStyle = computed(() => {
|
|
2375
|
+
const wrapStyle = computed$1(() => {
|
|
2796
2376
|
return {
|
|
2797
2377
|
minHeight: `${props2.minHeight}px`,
|
|
2798
2378
|
[props2.fullScreen ? "height" : "maxHeight"]: `${unref(realHeightRef)}px`
|
|
@@ -2861,7 +2441,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
|
|
|
2861
2441
|
}
|
|
2862
2442
|
);
|
|
2863
2443
|
return (_ctx, _cache) => {
|
|
2864
|
-
return openBlock(), createBlock(unref
|
|
2444
|
+
return openBlock(), createBlock(unref(DtScrollContainer), {
|
|
2865
2445
|
ref_key: "wrapperRef",
|
|
2866
2446
|
ref: wrapperRef
|
|
2867
2447
|
}, {
|
|
@@ -2869,7 +2449,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
|
|
|
2869
2449
|
createElementVNode("div", {
|
|
2870
2450
|
ref_key: "wrapRef",
|
|
2871
2451
|
ref: wrapRef,
|
|
2872
|
-
style: normalizeStyle(unref
|
|
2452
|
+
style: normalizeStyle(unref(wrapStyle))
|
|
2873
2453
|
}, [
|
|
2874
2454
|
renderSlot(_ctx.$slots, "default")
|
|
2875
2455
|
], 4)
|
|
@@ -2879,7 +2459,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
|
|
|
2879
2459
|
};
|
|
2880
2460
|
}
|
|
2881
2461
|
});
|
|
2882
|
-
const _sfc_main$8 = /* @__PURE__ */ defineComponent
|
|
2462
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
2883
2463
|
__name: "ModalFooter",
|
|
2884
2464
|
props: {
|
|
2885
2465
|
buttons: Object,
|
|
@@ -2921,9 +2501,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
|
|
|
2921
2501
|
return (_ctx, _cache) => {
|
|
2922
2502
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
2923
2503
|
renderSlot(_ctx.$slots, "appendFooter"),
|
|
2924
|
-
createVNode(_sfc_main$
|
|
2504
|
+
createVNode(_sfc_main$g, {
|
|
2925
2505
|
mode: "dialog",
|
|
2926
|
-
buttonList: unref
|
|
2506
|
+
buttonList: unref(buttonList),
|
|
2927
2507
|
onHandleMethod: _cache[0] || (_cache[0] = ($event) => handleMethod($event))
|
|
2928
2508
|
}, null, 8, ["buttonList"])
|
|
2929
2509
|
], 64);
|
|
@@ -2931,8 +2511,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
|
|
|
2931
2511
|
}
|
|
2932
2512
|
});
|
|
2933
2513
|
function useFullScreen(wrapClassName) {
|
|
2934
|
-
const fullScreenRef = ref(false);
|
|
2935
|
-
const getWrapClassName = computed(() => {
|
|
2514
|
+
const fullScreenRef = ref$1(false);
|
|
2515
|
+
const getWrapClassName = computed$1(() => {
|
|
2936
2516
|
const clsName = unref(wrapClassName) || "";
|
|
2937
2517
|
const cls = unref(fullScreenRef) ? `fullscreen-modal ${clsName} ` : unref(clsName);
|
|
2938
2518
|
return `dt-modal ${cls}`;
|
|
@@ -2948,23 +2528,23 @@ function useFullScreen(wrapClassName) {
|
|
|
2948
2528
|
toggleFullScreen
|
|
2949
2529
|
};
|
|
2950
2530
|
}
|
|
2951
|
-
const _sfc_main$7 = /* @__PURE__ */ defineComponent
|
|
2531
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
2952
2532
|
__name: "index",
|
|
2953
2533
|
props: basicProps,
|
|
2954
2534
|
emits: ["visible-change", "height-change", "cancel", "save", "register", "update:visible"],
|
|
2955
2535
|
setup(__props, { emit: emits }) {
|
|
2956
2536
|
const props2 = __props;
|
|
2957
|
-
const visibleRef = ref(false);
|
|
2958
|
-
const propsRef = ref();
|
|
2959
|
-
const modalWrapperRef = ref(null);
|
|
2960
|
-
const { getWrapClassName, toggleFullScreen, fullScreenRef } = useFullScreen(computed(() => unref(propsRef)?.wrapClassName));
|
|
2961
|
-
const getMergeProps = computed(() => {
|
|
2537
|
+
const visibleRef = ref$1(false);
|
|
2538
|
+
const propsRef = ref$1();
|
|
2539
|
+
const modalWrapperRef = ref$1(null);
|
|
2540
|
+
const { getWrapClassName, toggleFullScreen, fullScreenRef } = useFullScreen(computed$1(() => unref(propsRef)?.wrapClassName));
|
|
2541
|
+
const getMergeProps = computed$1(() => {
|
|
2962
2542
|
return {
|
|
2963
2543
|
...props2,
|
|
2964
2544
|
...unref(propsRef)
|
|
2965
2545
|
};
|
|
2966
2546
|
});
|
|
2967
|
-
const getBindValue = computed(() => {
|
|
2547
|
+
const getBindValue = computed$1(() => {
|
|
2968
2548
|
const bindValue = {
|
|
2969
2549
|
...unref(getMergeProps),
|
|
2970
2550
|
...unref(propsRef),
|
|
@@ -2977,12 +2557,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
2977
2557
|
}
|
|
2978
2558
|
return omit(bindValue, omitArr);
|
|
2979
2559
|
});
|
|
2980
|
-
const getWrapperHeight = computed(() => {
|
|
2560
|
+
const getWrapperHeight = computed$1(() => {
|
|
2981
2561
|
if (unref(fullScreenRef))
|
|
2982
2562
|
return void 0;
|
|
2983
2563
|
return unref(getBindValue).height;
|
|
2984
2564
|
});
|
|
2985
|
-
const modalFooterHeight = computed(() => {
|
|
2565
|
+
const modalFooterHeight = computed$1(() => {
|
|
2986
2566
|
if (isArray(props2.footer)) {
|
|
2987
2567
|
return (unref(propsRef)?.footer).length ? 0 : void 0;
|
|
2988
2568
|
}
|
|
@@ -3048,23 +2628,23 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
3048
2628
|
});
|
|
3049
2629
|
return (_ctx, _cache) => {
|
|
3050
2630
|
const _component_ASpin = Spin;
|
|
3051
|
-
return openBlock(), createBlock(
|
|
2631
|
+
return openBlock(), createBlock(_sfc_main$e, mergeProps(unref(getBindValue), { onCancel: handleCancel }), createSlots({
|
|
3052
2632
|
default: withCtx(() => [
|
|
3053
2633
|
createVNode(_component_ASpin, {
|
|
3054
|
-
spinning: unref
|
|
3055
|
-
tip: unref
|
|
2634
|
+
spinning: unref(getBindValue).loading,
|
|
2635
|
+
tip: unref(getBindValue).loadingTip
|
|
3056
2636
|
}, {
|
|
3057
2637
|
default: withCtx(() => [
|
|
3058
2638
|
createVNode(_sfc_main$9, mergeProps({
|
|
3059
|
-
useWrapper: unref
|
|
3060
|
-
fullScreen: unref
|
|
2639
|
+
useWrapper: unref(getBindValue).useWrapper,
|
|
2640
|
+
fullScreen: unref(fullScreenRef),
|
|
3061
2641
|
ref_key: "modalWrapperRef",
|
|
3062
2642
|
ref: modalWrapperRef,
|
|
3063
|
-
minHeight: unref
|
|
3064
|
-
height: unref
|
|
3065
|
-
visible:
|
|
3066
|
-
modalFooterHeight: unref
|
|
3067
|
-
}, unref
|
|
2643
|
+
minHeight: unref(getBindValue).minHeight,
|
|
2644
|
+
height: unref(getWrapperHeight),
|
|
2645
|
+
visible: visibleRef.value,
|
|
2646
|
+
modalFooterHeight: unref(modalFooterHeight)
|
|
2647
|
+
}, unref(omit)(unref(getBindValue).wrapperProps, "visible", "height", "modalFooterHeight"), { onHeightChange: handleHeightChange }), {
|
|
3068
2648
|
default: withCtx(() => [
|
|
3069
2649
|
renderSlot(_ctx.$slots, "default")
|
|
3070
2650
|
]),
|
|
@@ -3080,10 +2660,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
3080
2660
|
name: "closeIcon",
|
|
3081
2661
|
fn: withCtx(() => [
|
|
3082
2662
|
createVNode(_sfc_main$d, {
|
|
3083
|
-
canFullscreen: unref
|
|
3084
|
-
fullScreen: unref
|
|
2663
|
+
canFullscreen: unref(getBindValue).canFullscreen,
|
|
2664
|
+
fullScreen: unref(fullScreenRef),
|
|
3085
2665
|
onCancel: handleCancel,
|
|
3086
|
-
onFullscreen: unref
|
|
2666
|
+
onFullscreen: unref(toggleFullScreen)
|
|
3087
2667
|
}, null, 8, ["canFullscreen", "fullScreen", "onFullscreen"])
|
|
3088
2668
|
]),
|
|
3089
2669
|
key: "0"
|
|
@@ -3091,7 +2671,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
3091
2671
|
!_ctx.$slots.title ? {
|
|
3092
2672
|
name: "title",
|
|
3093
2673
|
fn: withCtx(() => [
|
|
3094
|
-
createTextVNode(toDisplayString(unref
|
|
2674
|
+
createTextVNode(toDisplayString(unref(getMergeProps).title), 1)
|
|
3095
2675
|
]),
|
|
3096
2676
|
key: "1"
|
|
3097
2677
|
} : void 0,
|
|
@@ -3099,11 +2679,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
3099
2679
|
name: "footer",
|
|
3100
2680
|
fn: withCtx(() => [
|
|
3101
2681
|
createVNode(_sfc_main$8, {
|
|
3102
|
-
buttons:
|
|
3103
|
-
showSave: unref
|
|
3104
|
-
showCancel: unref
|
|
3105
|
-
okText: unref
|
|
3106
|
-
cancelText: unref
|
|
2682
|
+
buttons: propsRef.value?.footer,
|
|
2683
|
+
showSave: unref(getBindValue).showOkBtn,
|
|
2684
|
+
showCancel: unref(getBindValue).showCancelBtn,
|
|
2685
|
+
okText: unref(getBindValue).okText,
|
|
2686
|
+
cancelText: unref(getBindValue).cancelText,
|
|
3107
2687
|
onHandleSave: handleSave,
|
|
3108
2688
|
onHandleCancel: handleCancel
|
|
3109
2689
|
}, createSlots({ _: 2 }, [
|
|
@@ -3119,7 +2699,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
3119
2699
|
]),
|
|
3120
2700
|
key: "2"
|
|
3121
2701
|
} : void 0,
|
|
3122
|
-
renderList(Object.keys(unref
|
|
2702
|
+
renderList(Object.keys(unref(omit)(_ctx.$slots, "default")), (item) => {
|
|
3123
2703
|
return {
|
|
3124
2704
|
name: item,
|
|
3125
2705
|
fn: withCtx((data) => [
|
|
@@ -3131,9 +2711,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
|
|
|
3131
2711
|
};
|
|
3132
2712
|
}
|
|
3133
2713
|
});
|
|
3134
|
-
const index = "";
|
|
3135
2714
|
const _hoisted_1$5 = { class: "column-select" };
|
|
3136
|
-
const _sfc_main$6 = /* @__PURE__ */ defineComponent
|
|
2715
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
3137
2716
|
__name: "DownloadCtrl",
|
|
3138
2717
|
setup(__props) {
|
|
3139
2718
|
const { t } = useI18n("UI");
|
|
@@ -3142,7 +2721,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
|
|
|
3142
2721
|
indeterminate: false,
|
|
3143
2722
|
checkAll: false
|
|
3144
2723
|
});
|
|
3145
|
-
const modalData = ref([]);
|
|
2724
|
+
const modalData = ref$1([]);
|
|
3146
2725
|
const onCheckAllChange = (e) => {
|
|
3147
2726
|
modalData.value?.map((it) => it.show = e.target.checked);
|
|
3148
2727
|
};
|
|
@@ -3181,29 +2760,29 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
|
|
|
3181
2760
|
return (_ctx, _cache) => {
|
|
3182
2761
|
const _component_ACheckbox = Checkbox$1;
|
|
3183
2762
|
const _component_ADivider = Divider$1;
|
|
3184
|
-
const _component_ACol = Col
|
|
2763
|
+
const _component_ACol = Col;
|
|
3185
2764
|
const _component_ARow = Row;
|
|
3186
|
-
return openBlock(), createBlock(unref
|
|
3187
|
-
onRegister: unref
|
|
2765
|
+
return openBlock(), createBlock(unref(_sfc_main$7), {
|
|
2766
|
+
onRegister: unref(registerDialog),
|
|
3188
2767
|
onSave: save
|
|
3189
2768
|
}, {
|
|
3190
2769
|
default: withCtx(() => [
|
|
3191
2770
|
createElementVNode("div", _hoisted_1$5, [
|
|
3192
2771
|
createVNode(_component_ACheckbox, {
|
|
3193
|
-
checked:
|
|
3194
|
-
"onUpdate:checked": _cache[0] || (_cache[0] = ($event) =>
|
|
3195
|
-
indeterminate:
|
|
2772
|
+
checked: state.checkAll,
|
|
2773
|
+
"onUpdate:checked": _cache[0] || (_cache[0] = ($event) => state.checkAll = $event),
|
|
2774
|
+
indeterminate: state.indeterminate,
|
|
3196
2775
|
onChange: onCheckAllChange
|
|
3197
2776
|
}, {
|
|
3198
2777
|
default: withCtx(() => [
|
|
3199
|
-
createTextVNode(toDisplayString(unref
|
|
2778
|
+
createTextVNode(toDisplayString(unref(t)("SELECT_ALL")), 1)
|
|
3200
2779
|
]),
|
|
3201
2780
|
_: 1
|
|
3202
2781
|
}, 8, ["checked", "indeterminate"]),
|
|
3203
2782
|
createVNode(_component_ADivider, { dashed: "" }),
|
|
3204
2783
|
createVNode(_component_ARow, null, {
|
|
3205
2784
|
default: withCtx(() => [
|
|
3206
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
2785
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(modalData.value, (it, index) => {
|
|
3207
2786
|
return openBlock(), createBlock(_component_ACol, { span: 8 }, {
|
|
3208
2787
|
default: withCtx(() => [
|
|
3209
2788
|
createVNode(_component_ACheckbox, {
|
|
@@ -3230,7 +2809,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
|
|
|
3230
2809
|
}
|
|
3231
2810
|
});
|
|
3232
2811
|
const _hoisted_1$4 = /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-download w-7 leading-7 text-center cursor-pointer" }, null, -1);
|
|
3233
|
-
const _sfc_main$5 = /* @__PURE__ */ defineComponent
|
|
2812
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
3234
2813
|
__name: "Download",
|
|
3235
2814
|
props: {
|
|
3236
2815
|
onlyBackDowonload: Boolean,
|
|
@@ -3259,32 +2838,32 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
|
|
|
3259
2838
|
const _component_ATooltip = Tooltip;
|
|
3260
2839
|
return openBlock(), createBlock(_component_ATooltip, { placement: "top" }, {
|
|
3261
2840
|
title: withCtx(() => [
|
|
3262
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
2841
|
+
createElementVNode("span", null, toDisplayString(unref(t)("EXPORT")), 1)
|
|
3263
2842
|
]),
|
|
3264
2843
|
default: withCtx(() => [
|
|
3265
2844
|
createVNode(_component_ADropdown, {
|
|
3266
2845
|
placement: "bottom",
|
|
3267
2846
|
trigger: ["click"],
|
|
3268
|
-
getPopupContainer: unref
|
|
2847
|
+
getPopupContainer: unref(getPopupContainer)
|
|
3269
2848
|
}, {
|
|
3270
2849
|
overlay: withCtx(() => [
|
|
3271
2850
|
createVNode(_component_AMenu, { onClick: handleTitleClick }, {
|
|
3272
2851
|
default: withCtx(() => [
|
|
3273
2852
|
!__props.onlyBackDowonload ? (openBlock(), createBlock(_component_AMenuItem, { key: "current" }, {
|
|
3274
2853
|
default: withCtx(() => [
|
|
3275
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
2854
|
+
createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_CURRENT_PAGE")), 1)
|
|
3276
2855
|
]),
|
|
3277
2856
|
_: 1
|
|
3278
2857
|
})) : createCommentVNode("", true),
|
|
3279
2858
|
!__props.onlyBackDowonload ? (openBlock(), createBlock(_component_AMenuItem, { key: "select" }, {
|
|
3280
2859
|
default: withCtx(() => [
|
|
3281
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
2860
|
+
createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_SELECT_COLUMN")), 1)
|
|
3282
2861
|
]),
|
|
3283
2862
|
_: 1
|
|
3284
2863
|
})) : createCommentVNode("", true),
|
|
3285
2864
|
!__props.onlyFrontDownload ? (openBlock(), createBlock(_component_AMenuItem, { key: "all" }, {
|
|
3286
2865
|
default: withCtx(() => [
|
|
3287
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
2866
|
+
createElementVNode("span", null, toDisplayString(unref(t)("EXPORT_ALL")), 1)
|
|
3288
2867
|
]),
|
|
3289
2868
|
_: 1
|
|
3290
2869
|
})) : createCommentVNode("", true)
|
|
@@ -3297,7 +2876,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
|
|
|
3297
2876
|
]),
|
|
3298
2877
|
_: 1
|
|
3299
2878
|
}, 8, ["getPopupContainer"]),
|
|
3300
|
-
createVNode(_sfc_main$6, { onRegister: unref
|
|
2879
|
+
createVNode(_sfc_main$6, { onRegister: unref(registerDialog) }, null, 8, ["onRegister"])
|
|
3301
2880
|
]),
|
|
3302
2881
|
_: 1
|
|
3303
2882
|
});
|
|
@@ -3308,7 +2887,7 @@ const _hoisted_1$3 = /* @__PURE__ */ createElementVNode("i", { class: "i ant-des
|
|
|
3308
2887
|
const _hoisted_2$1 = ["onClick"];
|
|
3309
2888
|
const _hoisted_3$1 = ["onClick"];
|
|
3310
2889
|
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
|
|
2890
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
3312
2891
|
__name: "Column",
|
|
3313
2892
|
emits: [
|
|
3314
2893
|
"columns-change"
|
|
@@ -3320,13 +2899,13 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3320
2899
|
const table = getTableInstance();
|
|
3321
2900
|
const defaultRowSelection = omit(table.getRowSelection(), "selectedRowKeys");
|
|
3322
2901
|
let inited = false;
|
|
3323
|
-
const cachePlainOptions = ref([]);
|
|
3324
|
-
const plainOptions = ref([]);
|
|
3325
|
-
const plainSortOptions = ref([]);
|
|
3326
|
-
const columnListRef = ref(null);
|
|
3327
|
-
const checkIndex = ref(false);
|
|
3328
|
-
const checkSelect = ref(false);
|
|
3329
|
-
const getValues = computed(() => {
|
|
2902
|
+
const cachePlainOptions = ref$1([]);
|
|
2903
|
+
const plainOptions = ref$1([]);
|
|
2904
|
+
const plainSortOptions = ref$1([]);
|
|
2905
|
+
const columnListRef = ref$1(null);
|
|
2906
|
+
const checkIndex = ref$1(false);
|
|
2907
|
+
const checkSelect = ref$1(false);
|
|
2908
|
+
const getValues = computed$1(() => {
|
|
3330
2909
|
return unref(table?.getBind);
|
|
3331
2910
|
});
|
|
3332
2911
|
let sortable;
|
|
@@ -3336,7 +2915,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3336
2915
|
checkedList: [],
|
|
3337
2916
|
defaultCheckList: []
|
|
3338
2917
|
});
|
|
3339
|
-
const indeterminate = computed(() => {
|
|
2918
|
+
const indeterminate = computed$1(() => {
|
|
3340
2919
|
let len = plainOptions.value.length;
|
|
3341
2920
|
let checkedLen = state.checkedList.length;
|
|
3342
2921
|
unref(checkIndex) && checkedLen--;
|
|
@@ -3446,9 +3025,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3446
3025
|
return;
|
|
3447
3026
|
const columns = getColumns();
|
|
3448
3027
|
const isFixed = item.fixed === fixed ? false : fixed;
|
|
3449
|
-
const
|
|
3450
|
-
if (
|
|
3451
|
-
columns[
|
|
3028
|
+
const index = columns.findIndex((col) => col.dataIndex === item.dataIndex);
|
|
3029
|
+
if (index !== -1) {
|
|
3030
|
+
columns[index].fixed = isFixed;
|
|
3452
3031
|
}
|
|
3453
3032
|
item.fixed = isFixed;
|
|
3454
3033
|
if (isFixed && !item.width) {
|
|
@@ -3495,7 +3074,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3495
3074
|
const _component_APopover = Popover$1;
|
|
3496
3075
|
return openBlock(), createBlock(_component_ATooltip, { placement: "top" }, {
|
|
3497
3076
|
title: withCtx(() => [
|
|
3498
|
-
createElementVNode("span", null, toDisplayString(unref
|
|
3077
|
+
createElementVNode("span", null, toDisplayString(unref(t)("COLUMN_CONTROL")), 1)
|
|
3499
3078
|
]),
|
|
3500
3079
|
default: withCtx(() => [
|
|
3501
3080
|
createVNode(_component_APopover, {
|
|
@@ -3510,34 +3089,34 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3510
3089
|
class: normalizeClass(`${prefixCls}__popover-title flex`)
|
|
3511
3090
|
}, [
|
|
3512
3091
|
createVNode(_component_ACheckbox, {
|
|
3513
|
-
indeterminate: unref
|
|
3514
|
-
checked:
|
|
3515
|
-
"onUpdate:checked": _cache[0] || (_cache[0] = ($event) =>
|
|
3092
|
+
indeterminate: unref(indeterminate),
|
|
3093
|
+
checked: state.checkAll,
|
|
3094
|
+
"onUpdate:checked": _cache[0] || (_cache[0] = ($event) => state.checkAll = $event),
|
|
3516
3095
|
onChange: onCheckAllChange
|
|
3517
3096
|
}, {
|
|
3518
3097
|
default: withCtx(() => [
|
|
3519
|
-
createTextVNode(toDisplayString(unref
|
|
3098
|
+
createTextVNode(toDisplayString(unref(t)("COLUMN_SHOW")), 1)
|
|
3520
3099
|
]),
|
|
3521
3100
|
_: 1
|
|
3522
3101
|
}, 8, ["indeterminate", "checked"]),
|
|
3523
3102
|
createVNode(_component_ACheckbox, {
|
|
3524
|
-
checked:
|
|
3525
|
-
"onUpdate:checked": _cache[1] || (_cache[1] = ($event) =>
|
|
3103
|
+
checked: checkIndex.value,
|
|
3104
|
+
"onUpdate:checked": _cache[1] || (_cache[1] = ($event) => checkIndex.value = $event),
|
|
3526
3105
|
onChange: handleIndexCheckChange
|
|
3527
3106
|
}, {
|
|
3528
3107
|
default: withCtx(() => [
|
|
3529
|
-
createTextVNode(toDisplayString(unref
|
|
3108
|
+
createTextVNode(toDisplayString(unref(t)("INDEX")), 1)
|
|
3530
3109
|
]),
|
|
3531
3110
|
_: 1
|
|
3532
3111
|
}, 8, ["checked"]),
|
|
3533
3112
|
createVNode(_component_ACheckbox, {
|
|
3534
|
-
checked:
|
|
3535
|
-
"onUpdate:checked": _cache[2] || (_cache[2] = ($event) =>
|
|
3113
|
+
checked: checkSelect.value,
|
|
3114
|
+
"onUpdate:checked": _cache[2] || (_cache[2] = ($event) => checkSelect.value = $event),
|
|
3536
3115
|
onChange: handleSelectCheckChange,
|
|
3537
|
-
disabled: !unref
|
|
3116
|
+
disabled: !unref(defaultRowSelection)
|
|
3538
3117
|
}, {
|
|
3539
3118
|
default: withCtx(() => [
|
|
3540
|
-
createTextVNode(toDisplayString(unref
|
|
3119
|
+
createTextVNode(toDisplayString(unref(t)("CHECKBOX")), 1)
|
|
3541
3120
|
]),
|
|
3542
3121
|
_: 1
|
|
3543
3122
|
}, 8, ["checked", "disabled"]),
|
|
@@ -3546,7 +3125,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3546
3125
|
onClick: reset
|
|
3547
3126
|
}, {
|
|
3548
3127
|
default: withCtx(() => [
|
|
3549
|
-
createTextVNode(toDisplayString(unref
|
|
3128
|
+
createTextVNode(toDisplayString(unref(t)("RESET")), 1)
|
|
3550
3129
|
]),
|
|
3551
3130
|
_: 1
|
|
3552
3131
|
})
|
|
@@ -3554,14 +3133,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3554
3133
|
]),
|
|
3555
3134
|
content: withCtx(() => [
|
|
3556
3135
|
createVNode(_component_ACheckboxGroup, {
|
|
3557
|
-
value:
|
|
3558
|
-
"onUpdate:value": _cache[3] || (_cache[3] = ($event) =>
|
|
3136
|
+
value: state.checkedList,
|
|
3137
|
+
"onUpdate:value": _cache[3] || (_cache[3] = ($event) => state.checkedList = $event),
|
|
3559
3138
|
onChange,
|
|
3560
3139
|
ref_key: "columnListRef",
|
|
3561
3140
|
ref: columnListRef
|
|
3562
3141
|
}, {
|
|
3563
3142
|
default: withCtx(() => [
|
|
3564
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
3143
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(plainOptions.value, (item) => {
|
|
3565
3144
|
return openBlock(), createElementBlock("div", {
|
|
3566
3145
|
key: item.value,
|
|
3567
3146
|
class: normalizeClass(`${prefixCls}__check-item flex pt-1 pr-4 pb-2 items-center`)
|
|
@@ -3581,12 +3160,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3581
3160
|
getPopupContainer: getPopupContainer$1
|
|
3582
3161
|
}, {
|
|
3583
3162
|
title: withCtx(() => [
|
|
3584
|
-
createTextVNode(toDisplayString(unref
|
|
3163
|
+
createTextVNode(toDisplayString(unref(t)("FIXED_TO_LEFT")), 1)
|
|
3585
3164
|
]),
|
|
3586
3165
|
default: withCtx(() => [
|
|
3587
3166
|
createElementVNode("span", {
|
|
3588
3167
|
class: normalizeClass({
|
|
3589
|
-
disabled: !
|
|
3168
|
+
disabled: !state.checkedList.includes(item.value),
|
|
3590
3169
|
active: item.fixed === "left"
|
|
3591
3170
|
})
|
|
3592
3171
|
}, [
|
|
@@ -3605,12 +3184,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3605
3184
|
getPopupContainer: getPopupContainer$1
|
|
3606
3185
|
}, {
|
|
3607
3186
|
title: withCtx(() => [
|
|
3608
|
-
createTextVNode(toDisplayString(unref
|
|
3187
|
+
createTextVNode(toDisplayString(unref(t)("FIXED_TO_RIGHT")), 1)
|
|
3609
3188
|
]),
|
|
3610
3189
|
default: withCtx(() => [
|
|
3611
3190
|
createElementVNode("span", {
|
|
3612
3191
|
class: normalizeClass({
|
|
3613
|
-
disabled: !
|
|
3192
|
+
disabled: !state.checkedList.includes(item.value),
|
|
3614
3193
|
active: item.fixed === "right"
|
|
3615
3194
|
})
|
|
3616
3195
|
}, [
|
|
@@ -3640,7 +3219,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
|
|
|
3640
3219
|
}
|
|
3641
3220
|
});
|
|
3642
3221
|
const _hoisted_1$2 = { class: "flex dt-table-setting" };
|
|
3643
|
-
const _sfc_main$3 = /* @__PURE__ */ defineComponent
|
|
3222
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
3644
3223
|
__name: "index",
|
|
3645
3224
|
props: {
|
|
3646
3225
|
setting: {
|
|
@@ -3651,7 +3230,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent$1({
|
|
|
3651
3230
|
emits: ["columns-change"],
|
|
3652
3231
|
setup(__props, { emit: emits }) {
|
|
3653
3232
|
const props2 = __props;
|
|
3654
|
-
const getSetting = computed(() => {
|
|
3233
|
+
const getSetting = computed$1(() => {
|
|
3655
3234
|
return {
|
|
3656
3235
|
download: true,
|
|
3657
3236
|
setting: true,
|
|
@@ -3664,12 +3243,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent$1({
|
|
|
3664
3243
|
}
|
|
3665
3244
|
return (_ctx, _cache) => {
|
|
3666
3245
|
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
|
3667
|
-
unref
|
|
3668
|
-
unref
|
|
3246
|
+
unref(getSetting).download ? (openBlock(), createBlock(_sfc_main$5, normalizeProps(mergeProps({ key: 0 }, unref(getSetting))), null, 16)) : createCommentVNode("", true),
|
|
3247
|
+
unref(getSetting).setting ? (openBlock(), createBlock(_sfc_main$4, {
|
|
3669
3248
|
key: 1,
|
|
3670
3249
|
onColumnsChange: handleColumnChange
|
|
3671
3250
|
})) : createCommentVNode("", true),
|
|
3672
|
-
unref
|
|
3251
|
+
unref(getSetting).fullscreen ? (openBlock(), createBlock(_sfc_main$f, { key: 2 })) : createCommentVNode("", true)
|
|
3673
3252
|
]);
|
|
3674
3253
|
};
|
|
3675
3254
|
}
|
|
@@ -3682,7 +3261,7 @@ const _hoisted_5 = {
|
|
|
3682
3261
|
key: 0,
|
|
3683
3262
|
class: "border dt-table-header-top text-12 bg-gray-100 mt-1 py-1 px-3 border-dashed"
|
|
3684
3263
|
};
|
|
3685
|
-
const _sfc_main$2 = /* @__PURE__ */ defineComponent
|
|
3264
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
3686
3265
|
__name: "TableHeader",
|
|
3687
3266
|
props: {
|
|
3688
3267
|
tableSetting: {
|
|
@@ -3690,7 +3269,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
|
|
|
3690
3269
|
},
|
|
3691
3270
|
toolbar: {
|
|
3692
3271
|
type: Array,
|
|
3693
|
-
default: []
|
|
3272
|
+
default: () => []
|
|
3694
3273
|
}
|
|
3695
3274
|
},
|
|
3696
3275
|
setup(__props) {
|
|
@@ -3705,7 +3284,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
|
|
|
3705
3284
|
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
3706
3285
|
createElementVNode("div", _hoisted_2, [
|
|
3707
3286
|
createElementVNode("div", _hoisted_3, [
|
|
3708
|
-
unref
|
|
3287
|
+
unref(getActionsProps)?.buttonList.length ? (openBlock(), createBlock(unref(_sfc_main$g), normalizeProps(mergeProps({ key: 0 }, unref(getActionsProps))), null, 16)) : createCommentVNode("", true),
|
|
3709
3288
|
renderSlot(_ctx.$slots, "toolbar")
|
|
3710
3289
|
]),
|
|
3711
3290
|
__props.tableSetting ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
@@ -3730,7 +3309,7 @@ function useTableHeader(propsRef, slots, handlers) {
|
|
|
3730
3309
|
const { getSlot } = useSlots$1();
|
|
3731
3310
|
const hideTitle = (!toolbar || !toolbar.filter((it) => it.show ?? true).length) && !slots.toolbar && !slots.headerTop && !tableSetting;
|
|
3732
3311
|
return {
|
|
3733
|
-
title: hideTitle ? null : () => h(
|
|
3312
|
+
title: hideTitle ? null : () => h$1(
|
|
3734
3313
|
_sfc_main$2,
|
|
3735
3314
|
{
|
|
3736
3315
|
tableSetting,
|
|
@@ -3753,7 +3332,7 @@ function useTableHeader(propsRef, slots, handlers) {
|
|
|
3753
3332
|
};
|
|
3754
3333
|
}
|
|
3755
3334
|
function useLoading(props2) {
|
|
3756
|
-
const getLoading = ref(false);
|
|
3335
|
+
const getLoading = ref$1(false);
|
|
3757
3336
|
watch(
|
|
3758
3337
|
() => unref(props2)?.loading,
|
|
3759
3338
|
(v) => getLoading.value = v
|
|
@@ -3768,8 +3347,7 @@ function useLoading(props2) {
|
|
|
3768
3347
|
}
|
|
3769
3348
|
function usePagination(props2) {
|
|
3770
3349
|
const { t } = useI18n("UI");
|
|
3771
|
-
const paginationRef = ref();
|
|
3772
|
-
const showPagination = ref(true);
|
|
3350
|
+
const paginationRef = ref$1();
|
|
3773
3351
|
const { getUiSize } = useHeader();
|
|
3774
3352
|
watch(
|
|
3775
3353
|
() => unref(props2).pagination,
|
|
@@ -3782,13 +3360,22 @@ function usePagination(props2) {
|
|
|
3782
3360
|
}
|
|
3783
3361
|
}
|
|
3784
3362
|
);
|
|
3785
|
-
const getPaginationInfo = computed(() => {
|
|
3786
|
-
const {
|
|
3787
|
-
|
|
3363
|
+
const getPaginationInfo = computed$1(() => {
|
|
3364
|
+
const { appConf } = useAppStore();
|
|
3365
|
+
let { pagination } = unref(props2);
|
|
3366
|
+
if (isBoolean(pagination) && !pagination) {
|
|
3788
3367
|
return false;
|
|
3789
3368
|
}
|
|
3790
|
-
|
|
3791
|
-
|
|
3369
|
+
if (!pagination) {
|
|
3370
|
+
pagination = {
|
|
3371
|
+
pageSize: appConf.ui.table.defaultPageSize,
|
|
3372
|
+
current: 1
|
|
3373
|
+
};
|
|
3374
|
+
}
|
|
3375
|
+
const { defaultPageSize, pageSizeOptions } = {
|
|
3376
|
+
...appConf.ui.table,
|
|
3377
|
+
...pagination
|
|
3378
|
+
};
|
|
3792
3379
|
return {
|
|
3793
3380
|
current: 1,
|
|
3794
3381
|
pageSize: defaultPageSize,
|
|
@@ -3812,18 +3399,10 @@ function usePagination(props2) {
|
|
|
3812
3399
|
function getPagination() {
|
|
3813
3400
|
return unref(getPaginationInfo);
|
|
3814
3401
|
}
|
|
3815
|
-
function getShowPagination() {
|
|
3816
|
-
return unref(showPagination);
|
|
3817
|
-
}
|
|
3818
|
-
function setShowPagination(flag) {
|
|
3819
|
-
showPagination.value = flag;
|
|
3820
|
-
}
|
|
3821
3402
|
return {
|
|
3822
3403
|
getPaginationInfo,
|
|
3823
3404
|
setPagination,
|
|
3824
|
-
getPagination
|
|
3825
|
-
getShowPagination,
|
|
3826
|
-
setShowPagination
|
|
3405
|
+
getPagination
|
|
3827
3406
|
};
|
|
3828
3407
|
}
|
|
3829
3408
|
const DEFAULT_CONFIG = {
|
|
@@ -3832,14 +3411,14 @@ const DEFAULT_CONFIG = {
|
|
|
3832
3411
|
pid: "pid"
|
|
3833
3412
|
};
|
|
3834
3413
|
function useRowSelection(propsRef, emit) {
|
|
3835
|
-
const selectedRowKeysRef = ref([]);
|
|
3836
|
-
const selectedRowRef = ref([]);
|
|
3837
|
-
const getRowSelectionRef = computed(() => {
|
|
3414
|
+
const selectedRowKeysRef = ref$1([]);
|
|
3415
|
+
const selectedRowRef = ref$1([]);
|
|
3416
|
+
const getRowSelectionRef = computed$1(() => {
|
|
3838
3417
|
const { rowSelection, showCheckboxColumn } = unref(propsRef);
|
|
3839
3418
|
if (!rowSelection && !showCheckboxColumn)
|
|
3840
3419
|
return null;
|
|
3841
3420
|
if (isBoolean(showCheckboxColumn)) {
|
|
3842
|
-
if (showCheckboxColumn) {
|
|
3421
|
+
if (showCheckboxColumn && rowSelection) {
|
|
3843
3422
|
rowSelection.type = "checkbox";
|
|
3844
3423
|
} else {
|
|
3845
3424
|
return null;
|
|
@@ -3862,7 +3441,7 @@ function useRowSelection(propsRef, emit) {
|
|
|
3862
3441
|
function setSelectedRowKeys(rowKeys) {
|
|
3863
3442
|
selectedRowKeysRef.value = rowKeys;
|
|
3864
3443
|
const allSelectedRows = findeNodeAll(
|
|
3865
|
-
toRaw(unref(propsRef).dataSource).concat(toRaw(unref(selectedRowRef))),
|
|
3444
|
+
toRaw$1(unref(propsRef).dataSource).concat(toRaw$1(unref(selectedRowRef))),
|
|
3866
3445
|
(item) => rowKeys.includes(item[unref(propsRef).rowKey]),
|
|
3867
3446
|
{
|
|
3868
3447
|
children: propsRef.value.childrenColumnName ?? "children"
|
|
@@ -3922,12 +3501,12 @@ function useRowSelection(propsRef, emit) {
|
|
|
3922
3501
|
};
|
|
3923
3502
|
}
|
|
3924
3503
|
function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
|
|
3925
|
-
const tableHeightRef = ref(0), filterSource = ref([]);
|
|
3926
|
-
ref(null);
|
|
3504
|
+
const tableHeightRef = ref$1(0), filterSource = ref$1([]);
|
|
3505
|
+
ref$1(null);
|
|
3927
3506
|
let footerEl, bodyEl;
|
|
3928
3507
|
const debounceRedoHeight = useDebounceFn(redoHeight, 100);
|
|
3929
3508
|
windowResizeFn(calcTableHeight, 280);
|
|
3930
|
-
const getCanResize = computed(() => {
|
|
3509
|
+
const getCanResize = computed$1(() => {
|
|
3931
3510
|
const { canResize, scroll } = unref(propsRef);
|
|
3932
3511
|
return canResize && !(scroll || {}).y;
|
|
3933
3512
|
});
|
|
@@ -4004,7 +3583,7 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
|
|
|
4004
3583
|
bodyEl.style.height = `${height}px`;
|
|
4005
3584
|
filterSource.value = unref(propsRef)?.dataSource;
|
|
4006
3585
|
}
|
|
4007
|
-
const getScrollX = computed(() => {
|
|
3586
|
+
const getScrollX = computed$1(() => {
|
|
4008
3587
|
let width = 0;
|
|
4009
3588
|
if (unref(rowSelectionRef)) {
|
|
4010
3589
|
width += 32;
|
|
@@ -4018,7 +3597,7 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
|
|
|
4018
3597
|
const tableWidth = table?.$el?.offsetWidth ?? 0;
|
|
4019
3598
|
return tableWidth > width ? "100%" : width;
|
|
4020
3599
|
});
|
|
4021
|
-
const getScrollRef = computed(() => {
|
|
3600
|
+
const getScrollRef = computed$1(() => {
|
|
4022
3601
|
const tableHeight = unref(tableHeightRef);
|
|
4023
3602
|
const { canResize, scroll } = unref(propsRef);
|
|
4024
3603
|
return {
|
|
@@ -4028,7 +3607,7 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
|
|
|
4028
3607
|
...scroll
|
|
4029
3608
|
};
|
|
4030
3609
|
});
|
|
4031
|
-
onMounted(() => {
|
|
3610
|
+
onMounted$1(() => {
|
|
4032
3611
|
calcTableHeight();
|
|
4033
3612
|
nextTick(() => debounceRedoHeight());
|
|
4034
3613
|
});
|
|
@@ -4038,14 +3617,14 @@ function useTableScroll(propsRef, tableElRef, columnsRef, rowSelectionRef) {
|
|
|
4038
3617
|
};
|
|
4039
3618
|
}
|
|
4040
3619
|
function useRows(propsRef) {
|
|
4041
|
-
function getRowClassName(record,
|
|
3620
|
+
function getRowClassName(record, index) {
|
|
4042
3621
|
const { striped, rowClassName } = unref(propsRef);
|
|
4043
3622
|
const classNames = [];
|
|
4044
3623
|
if (striped) {
|
|
4045
|
-
classNames.push(
|
|
3624
|
+
classNames.push(index % 2 === 1 ? "table-striped" : "");
|
|
4046
3625
|
}
|
|
4047
3626
|
if (rowClassName && isFunction(rowClassName)) {
|
|
4048
|
-
classNames.push(rowClassName(record,
|
|
3627
|
+
classNames.push(rowClassName(record, index));
|
|
4049
3628
|
}
|
|
4050
3629
|
return classNames.join(" ");
|
|
4051
3630
|
}
|
|
@@ -4058,11 +3637,11 @@ const props = {
|
|
|
4058
3637
|
record: Object,
|
|
4059
3638
|
index: Number
|
|
4060
3639
|
};
|
|
4061
|
-
const _sfc_main$1 =
|
|
3640
|
+
const _sfc_main$1 = {
|
|
4062
3641
|
name: "TableRender",
|
|
4063
3642
|
props,
|
|
4064
3643
|
setup(props2, {}) {
|
|
4065
|
-
let renderText = ref(null);
|
|
3644
|
+
let renderText = ref$1(null);
|
|
4066
3645
|
watch(() => [props2.record, props2.column], (v) => {
|
|
4067
3646
|
if (v) {
|
|
4068
3647
|
renderCell();
|
|
@@ -4075,7 +3654,7 @@ const _sfc_main$1 = defineComponent({
|
|
|
4075
3654
|
const {
|
|
4076
3655
|
column,
|
|
4077
3656
|
record,
|
|
4078
|
-
index
|
|
3657
|
+
index
|
|
4079
3658
|
} = props2;
|
|
4080
3659
|
const {
|
|
4081
3660
|
render,
|
|
@@ -4117,7 +3696,7 @@ const _sfc_main$1 = defineComponent({
|
|
|
4117
3696
|
});
|
|
4118
3697
|
}
|
|
4119
3698
|
} else if (isFunction(render)) {
|
|
4120
|
-
let afterRenderData = render(record,
|
|
3699
|
+
let afterRenderData = render(record, index, text);
|
|
4121
3700
|
if (afterRenderData.__v_isRef) {
|
|
4122
3701
|
renderText = afterRenderData;
|
|
4123
3702
|
} else if (afterRenderData["setup"]) {
|
|
@@ -4134,7 +3713,7 @@ const _sfc_main$1 = defineComponent({
|
|
|
4134
3713
|
}
|
|
4135
3714
|
return () => createVNode("span", null, [unref(renderText)]);
|
|
4136
3715
|
}
|
|
4137
|
-
}
|
|
3716
|
+
};
|
|
4138
3717
|
const DEFAULT_SORT_FN = (sortInfo) => {
|
|
4139
3718
|
const { field, order } = sortInfo;
|
|
4140
3719
|
return field && order ? { field, order } : {};
|
|
@@ -4163,7 +3742,7 @@ const TableProps = {
|
|
|
4163
3742
|
},
|
|
4164
3743
|
columnCode: { type: String, default: "" },
|
|
4165
3744
|
columns: { type: [Array], default: () => [] },
|
|
4166
|
-
slotsTemplate: { type: Object, default: {} },
|
|
3745
|
+
slotsTemplate: { type: Object, default: () => ({}) },
|
|
4167
3746
|
showIndexColumn: { type: Boolean, default: false },
|
|
4168
3747
|
showCheckboxColumn: { type: Boolean, default: true },
|
|
4169
3748
|
expandMethodIcon: { type: Boolean, default: false },
|
|
@@ -4173,10 +3752,7 @@ const TableProps = {
|
|
|
4173
3752
|
canResize: { type: Boolean, default: true },
|
|
4174
3753
|
pagination: {
|
|
4175
3754
|
type: [Object, Boolean],
|
|
4176
|
-
default:
|
|
4177
|
-
pageSize: 20,
|
|
4178
|
-
current: 1
|
|
4179
|
-
}
|
|
3755
|
+
default: null
|
|
4180
3756
|
},
|
|
4181
3757
|
loading: { type: Boolean, default: false },
|
|
4182
3758
|
rowClassName: { type: Function },
|
|
@@ -4186,13 +3762,11 @@ const TableProps = {
|
|
|
4186
3762
|
},
|
|
4187
3763
|
onTableChange: {
|
|
4188
3764
|
type: Function,
|
|
4189
|
-
default: () => {
|
|
4190
|
-
}
|
|
3765
|
+
default: () => ({})
|
|
4191
3766
|
},
|
|
4192
3767
|
onDownload: {
|
|
4193
3768
|
type: Function,
|
|
4194
|
-
default: (excelData) => {
|
|
4195
|
-
}
|
|
3769
|
+
default: (excelData) => ({})
|
|
4196
3770
|
},
|
|
4197
3771
|
rowSelection: {
|
|
4198
3772
|
type: Object,
|
|
@@ -4203,8 +3777,7 @@ const TableProps = {
|
|
|
4203
3777
|
},
|
|
4204
3778
|
customRow: {
|
|
4205
3779
|
type: Function,
|
|
4206
|
-
default: () => {
|
|
4207
|
-
}
|
|
3780
|
+
default: () => ({})
|
|
4208
3781
|
},
|
|
4209
3782
|
childrenColumnName: {
|
|
4210
3783
|
type: String,
|
|
@@ -4229,27 +3802,23 @@ const TableProps = {
|
|
|
4229
3802
|
},
|
|
4230
3803
|
onAdd: {
|
|
4231
3804
|
type: Function,
|
|
4232
|
-
default: (params) => {
|
|
4233
|
-
}
|
|
3805
|
+
default: (params) => ({})
|
|
4234
3806
|
},
|
|
4235
3807
|
onUpdate: {
|
|
4236
3808
|
type: Function,
|
|
4237
|
-
default: (params) => {
|
|
4238
|
-
}
|
|
3809
|
+
default: (params) => ({})
|
|
4239
3810
|
},
|
|
4240
3811
|
onDelete: {
|
|
4241
3812
|
type: Function,
|
|
4242
|
-
default: (params) => {
|
|
4243
|
-
}
|
|
3813
|
+
default: (params) => ({})
|
|
4244
3814
|
},
|
|
4245
3815
|
onDeletes: {
|
|
4246
3816
|
type: Function,
|
|
4247
|
-
default: (params) => {
|
|
4248
|
-
}
|
|
3817
|
+
default: (params) => ({})
|
|
4249
3818
|
}
|
|
4250
3819
|
};
|
|
4251
3820
|
const _hoisted_1 = /* @__PURE__ */ createElementVNode("img", { src: _imports_0 }, null, -1);
|
|
4252
|
-
const _sfc_main = /* @__PURE__ */ defineComponent
|
|
3821
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4253
3822
|
__name: "index",
|
|
4254
3823
|
props: TableProps,
|
|
4255
3824
|
emits: [
|
|
@@ -4265,15 +3834,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
|
|
|
4265
3834
|
],
|
|
4266
3835
|
setup(__props, { emit: emits }) {
|
|
4267
3836
|
const props2 = __props;
|
|
4268
|
-
const tableElRef = ref(null);
|
|
3837
|
+
const tableElRef = ref$1(null);
|
|
4269
3838
|
const attrs = useAttrs();
|
|
4270
|
-
const slots = useSlots();
|
|
4271
|
-
const innerPropsRef = ref();
|
|
4272
|
-
const getProps = computed(() => {
|
|
3839
|
+
const slots = useSlots$2();
|
|
3840
|
+
const innerPropsRef = ref$1();
|
|
3841
|
+
const getProps = computed$1(() => {
|
|
4273
3842
|
return { ...props2, ...unref(innerPropsRef) };
|
|
4274
3843
|
});
|
|
4275
3844
|
const { getRowClassName } = useRows(getProps);
|
|
4276
|
-
const tableCls = computed(() => {
|
|
3845
|
+
const tableCls = computed$1(() => {
|
|
4277
3846
|
return [
|
|
4278
3847
|
"dt-table",
|
|
4279
3848
|
"box-border",
|
|
@@ -4281,7 +3850,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
|
|
|
4281
3850
|
];
|
|
4282
3851
|
});
|
|
4283
3852
|
const { getLoading, setLoading } = useLoading(getProps);
|
|
4284
|
-
const { getPaginationInfo, setPagination, getPagination
|
|
3853
|
+
const { getPaginationInfo, setPagination, getPagination } = usePagination(getProps);
|
|
4285
3854
|
const {
|
|
4286
3855
|
getViewColumns,
|
|
4287
3856
|
getColumnsRef,
|
|
@@ -4315,7 +3884,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
|
|
|
4315
3884
|
clearSelectedRowKeys
|
|
4316
3885
|
}
|
|
4317
3886
|
);
|
|
4318
|
-
const getBind = computed(() => {
|
|
3887
|
+
const getBind = computed$1(() => {
|
|
4319
3888
|
return {
|
|
4320
3889
|
...attrs,
|
|
4321
3890
|
...unref(getProps),
|
|
@@ -4378,17 +3947,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
|
|
|
4378
3947
|
return openBlock(), createBlock(_component_ATable, mergeProps({
|
|
4379
3948
|
ref_key: "tableElRef",
|
|
4380
3949
|
ref: tableElRef
|
|
4381
|
-
}, unref
|
|
4382
|
-
rowClassName: unref
|
|
4383
|
-
onChange: unref
|
|
3950
|
+
}, unref(getBind), {
|
|
3951
|
+
rowClassName: unref(getRowClassName),
|
|
3952
|
+
onChange: unref(handleTableChange)
|
|
4384
3953
|
}), createSlots({
|
|
4385
|
-
bodyCell: withCtx(({ column, record, index
|
|
4386
|
-
_ctx.$slots.bodyCell ? renderSlot(_ctx.$slots, "bodyCell", normalizeProps(mergeProps({ key: 0 }, { column, record, index
|
|
3954
|
+
bodyCell: withCtx(({ column, record, index }) => [
|
|
3955
|
+
_ctx.$slots.bodyCell ? renderSlot(_ctx.$slots, "bodyCell", normalizeProps(mergeProps({ key: 0 }, { column, record, index }))) : createCommentVNode("", true),
|
|
4387
3956
|
column?.render && !_ctx.$slots.bodyCell ? (openBlock(), createBlock(_sfc_main$1, {
|
|
4388
3957
|
key: 1,
|
|
4389
3958
|
column,
|
|
4390
3959
|
record,
|
|
4391
|
-
index
|
|
3960
|
+
index
|
|
4392
3961
|
}, null, 8, ["column", "record", "index"])) : createCommentVNode("", true)
|
|
4393
3962
|
]),
|
|
4394
3963
|
emptyText: withCtx(() => [
|