vxe-table 4.14.0-beta.0 → 4.14.0-beta.1
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/grid/src/grid.js +100 -76
- package/es/style.css +1 -1
- package/es/table/module/keyboard/hook.js +2 -2
- package/es/table/src/table.js +1 -1
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +113 -80
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +119 -86
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/hook.js +2 -2
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/table.js +1 -1
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +107 -82
- package/packages/table/module/keyboard/hook.ts +2 -2
- package/packages/table/src/table.ts +1 -1
- package/packages/ui/index.ts +1 -1
- /package/es/{iconfont.1750770364548.ttf → iconfont.1750910518778.ttf} +0 -0
- /package/es/{iconfont.1750770364548.woff → iconfont.1750910518778.woff} +0 -0
- /package/es/{iconfont.1750770364548.woff2 → iconfont.1750910518778.woff2} +0 -0
- /package/lib/{iconfont.1750770364548.ttf → iconfont.1750910518778.ttf} +0 -0
- /package/lib/{iconfont.1750770364548.woff → iconfont.1750910518778.woff} +0 -0
- /package/lib/{iconfont.1750770364548.woff2 → iconfont.1750910518778.woff2} +0 -0
package/es/ui/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { getFuncText } from './src/utils';
|
|
3
|
-
export const version = "4.14.0-beta.
|
|
3
|
+
export const version = "4.14.0-beta.1";
|
|
4
4
|
VxeUI.version = version;
|
|
5
5
|
VxeUI.tableVersion = version;
|
|
6
6
|
VxeUI.setConfig({
|
|
@@ -252,7 +252,7 @@ VxeUI.setConfig({
|
|
|
252
252
|
autoLoad: true,
|
|
253
253
|
showResponseMsg: true,
|
|
254
254
|
showActiveMsg: true,
|
|
255
|
-
|
|
255
|
+
response: {
|
|
256
256
|
list: null,
|
|
257
257
|
result: 'result',
|
|
258
258
|
total: 'page.total',
|
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -112,11 +112,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
112
112
|
});
|
|
113
113
|
const computeIsRespMsg = (0, _vue.computed)(() => {
|
|
114
114
|
const proxyOpts = computeProxyOpts.value;
|
|
115
|
-
return _xeUtils.default.isBoolean(proxyOpts.message) ? proxyOpts.message : proxyOpts.showResponseMsg;
|
|
115
|
+
return !!(_xeUtils.default.isBoolean(proxyOpts.message) ? proxyOpts.message : proxyOpts.showResponseMsg);
|
|
116
116
|
});
|
|
117
117
|
const computeIsActiveMsg = (0, _vue.computed)(() => {
|
|
118
118
|
const proxyOpts = computeProxyOpts.value;
|
|
119
|
-
return proxyOpts.showActiveMsg;
|
|
119
|
+
return !!proxyOpts.showActiveMsg;
|
|
120
120
|
});
|
|
121
121
|
const computePagerOpts = (0, _vue.computed)(() => {
|
|
122
122
|
return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig);
|
|
@@ -414,12 +414,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
414
414
|
reactData.sortData = params.sortList;
|
|
415
415
|
if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts)) {
|
|
416
416
|
reactData.tablePage.currentPage = 1;
|
|
417
|
-
|
|
418
|
-
|
|
417
|
+
$xeGrid.commitProxy('query').then(rest => {
|
|
418
|
+
$xeGrid.dispatchEvent('proxy-query', rest, params.$event);
|
|
419
419
|
});
|
|
420
420
|
}
|
|
421
421
|
}
|
|
422
|
-
|
|
422
|
+
$xeGrid.dispatchEvent('sort-change', params, params.$event);
|
|
423
423
|
};
|
|
424
424
|
const filterChangeEvent = params => {
|
|
425
425
|
const $xeTable = refTable.value;
|
|
@@ -436,12 +436,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
436
436
|
reactData.filterData = params.filterList;
|
|
437
437
|
if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts)) {
|
|
438
438
|
reactData.tablePage.currentPage = 1;
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
$xeGrid.commitProxy('query').then(rest => {
|
|
440
|
+
$xeGrid.dispatchEvent('proxy-query', rest, params.$event);
|
|
441
441
|
});
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
|
-
|
|
444
|
+
$xeGrid.dispatchEvent('filter-change', params, params.$event);
|
|
445
445
|
};
|
|
446
446
|
const submitFormEvent = params => {
|
|
447
447
|
const {
|
|
@@ -452,15 +452,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
452
452
|
return;
|
|
453
453
|
}
|
|
454
454
|
if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts)) {
|
|
455
|
-
|
|
456
|
-
|
|
455
|
+
$xeGrid.commitProxy('reload').then(rest => {
|
|
456
|
+
$xeGrid.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), {
|
|
457
457
|
isReload: true
|
|
458
458
|
}), params.$event);
|
|
459
459
|
});
|
|
460
460
|
}
|
|
461
|
-
|
|
461
|
+
$xeGrid.dispatchEvent('form-submit', params, params.$event);
|
|
462
462
|
};
|
|
463
463
|
const resetFormEvent = params => {
|
|
464
|
+
const $xeTable = refTable.value;
|
|
464
465
|
const {
|
|
465
466
|
proxyConfig
|
|
466
467
|
} = props;
|
|
@@ -468,26 +469,25 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
468
469
|
$event
|
|
469
470
|
} = params;
|
|
470
471
|
const proxyOpts = computeProxyOpts.value;
|
|
471
|
-
const $xeTable = refTable.value;
|
|
472
472
|
if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts)) {
|
|
473
473
|
$xeTable.clearScroll();
|
|
474
|
-
|
|
475
|
-
|
|
474
|
+
$xeGrid.commitProxy('reload').then(rest => {
|
|
475
|
+
$xeGrid.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), {
|
|
476
476
|
isReload: true
|
|
477
477
|
}), $event);
|
|
478
478
|
});
|
|
479
479
|
}
|
|
480
|
-
|
|
480
|
+
$xeGrid.dispatchEvent('form-reset', params, $event);
|
|
481
481
|
};
|
|
482
482
|
const submitInvalidEvent = params => {
|
|
483
|
-
|
|
483
|
+
$xeGrid.dispatchEvent('form-submit-invalid', params, params.$event);
|
|
484
484
|
};
|
|
485
485
|
const collapseEvent = params => {
|
|
486
486
|
const {
|
|
487
487
|
$event
|
|
488
488
|
} = params;
|
|
489
|
-
|
|
490
|
-
|
|
489
|
+
$xeGrid.dispatchEvent('form-toggle-collapse', params, $event);
|
|
490
|
+
$xeGrid.dispatchEvent('form-collapse', params, $event);
|
|
491
491
|
};
|
|
492
492
|
const handleZoom = isMax => {
|
|
493
493
|
const {
|
|
@@ -499,8 +499,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
499
499
|
reactData.tZindex = (0, _utils.nextZIndex)();
|
|
500
500
|
}
|
|
501
501
|
}
|
|
502
|
-
return (0, _vue.nextTick)().then(() =>
|
|
503
|
-
setTimeout(() =>
|
|
502
|
+
return (0, _vue.nextTick)().then(() => $xeGrid.recalculate(true)).then(() => {
|
|
503
|
+
setTimeout(() => $xeGrid.recalculate(true), 15);
|
|
504
504
|
return reactData.isZMax;
|
|
505
505
|
});
|
|
506
506
|
};
|
|
@@ -663,12 +663,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
663
663
|
* 渲染表格顶部区域
|
|
664
664
|
*/
|
|
665
665
|
const renderTop = () => {
|
|
666
|
-
|
|
666
|
+
const topSlot = slots.top;
|
|
667
|
+
if (topSlot) {
|
|
667
668
|
return (0, _vue.h)('div', {
|
|
668
669
|
ref: refTopWrapper,
|
|
669
670
|
key: 'top',
|
|
670
671
|
class: 'vxe-grid--top-wrapper'
|
|
671
|
-
},
|
|
672
|
+
}, topSlot({
|
|
672
673
|
$grid: $xeGrid
|
|
673
674
|
}));
|
|
674
675
|
}
|
|
@@ -838,6 +839,36 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
838
839
|
const type = _xeUtils.default.camelCase(`on-${name}`);
|
|
839
840
|
tableCompEvents[type] = (...args) => emit(name, ...args);
|
|
840
841
|
});
|
|
842
|
+
const getDefaultFormData = () => {
|
|
843
|
+
const formOpts = computeFormOpts.value;
|
|
844
|
+
if (formOpts.items) {
|
|
845
|
+
const fData = {};
|
|
846
|
+
formOpts.items.forEach(item => {
|
|
847
|
+
const {
|
|
848
|
+
field,
|
|
849
|
+
itemRender
|
|
850
|
+
} = item;
|
|
851
|
+
if (field) {
|
|
852
|
+
let itemValue = null;
|
|
853
|
+
if (itemRender) {
|
|
854
|
+
const {
|
|
855
|
+
defaultValue
|
|
856
|
+
} = itemRender;
|
|
857
|
+
if (_xeUtils.default.isFunction(defaultValue)) {
|
|
858
|
+
itemValue = defaultValue({
|
|
859
|
+
item
|
|
860
|
+
});
|
|
861
|
+
} else if (!_xeUtils.default.isUndefined(defaultValue)) {
|
|
862
|
+
itemValue = defaultValue;
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
fData[field] = itemValue;
|
|
866
|
+
}
|
|
867
|
+
});
|
|
868
|
+
return fData;
|
|
869
|
+
}
|
|
870
|
+
return {};
|
|
871
|
+
};
|
|
841
872
|
const initProxy = () => {
|
|
842
873
|
const {
|
|
843
874
|
proxyConfig,
|
|
@@ -850,38 +881,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
850
881
|
const formOpts = computeFormOpts.value;
|
|
851
882
|
if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts)) {
|
|
852
883
|
if (formConfig && (0, _utils.isEnableConf)(formOpts) && proxyOpts.form && formOpts.items) {
|
|
853
|
-
|
|
854
|
-
formOpts.items.forEach(item => {
|
|
855
|
-
const {
|
|
856
|
-
field,
|
|
857
|
-
itemRender
|
|
858
|
-
} = item;
|
|
859
|
-
if (field) {
|
|
860
|
-
let itemValue = null;
|
|
861
|
-
if (itemRender) {
|
|
862
|
-
const {
|
|
863
|
-
defaultValue
|
|
864
|
-
} = itemRender;
|
|
865
|
-
if (_xeUtils.default.isFunction(defaultValue)) {
|
|
866
|
-
itemValue = defaultValue({
|
|
867
|
-
item
|
|
868
|
-
});
|
|
869
|
-
} else if (!_xeUtils.default.isUndefined(defaultValue)) {
|
|
870
|
-
itemValue = defaultValue;
|
|
871
|
-
}
|
|
872
|
-
}
|
|
873
|
-
fData[field] = itemValue;
|
|
874
|
-
}
|
|
875
|
-
});
|
|
876
|
-
reactData.formData = fData;
|
|
884
|
+
reactData.formData = getDefaultFormData();
|
|
877
885
|
}
|
|
878
886
|
if (!proxyInited) {
|
|
879
887
|
reactData.proxyInited = true;
|
|
880
888
|
if (proxyOpts.autoLoad !== false) {
|
|
881
|
-
(0, _vue.nextTick)().then(() => gridMethods.commitProxy('
|
|
889
|
+
(0, _vue.nextTick)().then(() => gridMethods.commitProxy('initial')).then(rest => {
|
|
882
890
|
gridMethods.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), {
|
|
883
891
|
isInited: true
|
|
884
|
-
}), new Event('
|
|
892
|
+
}), new Event('initial'));
|
|
885
893
|
});
|
|
886
894
|
}
|
|
887
895
|
}
|
|
@@ -891,7 +899,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
891
899
|
const zoomOpts = computeZoomOpts.value;
|
|
892
900
|
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
|
|
893
901
|
if (isEsc && reactData.isZMax && zoomOpts.escRestore !== false) {
|
|
894
|
-
|
|
902
|
+
$xeGrid.triggerZoomEvent(evnt);
|
|
895
903
|
}
|
|
896
904
|
};
|
|
897
905
|
const dispatchEvent = (type, params, evnt) => {
|
|
@@ -910,6 +918,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
910
918
|
*/
|
|
911
919
|
commitProxy(proxyTarget, ...args) {
|
|
912
920
|
const {
|
|
921
|
+
proxyConfig,
|
|
913
922
|
toolbarConfig,
|
|
914
923
|
pagerConfig,
|
|
915
924
|
editRules,
|
|
@@ -934,7 +943,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
934
943
|
} = proxyOpts;
|
|
935
944
|
const resConfigs = proxyOpts.response || proxyOpts.props || {};
|
|
936
945
|
const $xeTable = refTable.value;
|
|
937
|
-
|
|
946
|
+
let formData = getFormData();
|
|
938
947
|
let button = null;
|
|
939
948
|
let code = null;
|
|
940
949
|
if (_xeUtils.default.isString(proxyTarget)) {
|
|
@@ -983,7 +992,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
983
992
|
break;
|
|
984
993
|
case 'reset_custom':
|
|
985
994
|
return $xeTable.resetCustom(true);
|
|
986
|
-
case '
|
|
995
|
+
case 'initial':
|
|
987
996
|
case 'reload':
|
|
988
997
|
case 'query':
|
|
989
998
|
{
|
|
@@ -991,7 +1000,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
991
1000
|
const querySuccessMethods = ajax.querySuccess;
|
|
992
1001
|
const queryErrorMethods = ajax.queryError;
|
|
993
1002
|
if (ajaxMethods) {
|
|
994
|
-
const isInited = code === '
|
|
1003
|
+
const isInited = code === 'initial';
|
|
995
1004
|
const isReload = code === 'reload';
|
|
996
1005
|
if (!isInited && reactData.tableLoading) {
|
|
997
1006
|
return (0, _vue.nextTick)();
|
|
@@ -1001,6 +1010,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1001
1010
|
let pageParams = {};
|
|
1002
1011
|
if (pagerConfig) {
|
|
1003
1012
|
if (isInited || isReload) {
|
|
1013
|
+
// 重置分页
|
|
1004
1014
|
tablePage.currentPage = 1;
|
|
1005
1015
|
}
|
|
1006
1016
|
if ((0, _utils.isEnableConf)(pagerOpts)) {
|
|
@@ -1008,28 +1018,51 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1008
1018
|
}
|
|
1009
1019
|
}
|
|
1010
1020
|
if (isInited) {
|
|
1011
|
-
|
|
1021
|
+
// 重置代理表单数据
|
|
1022
|
+
if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts) && proxyOpts.form) {
|
|
1023
|
+
formData = getDefaultFormData();
|
|
1024
|
+
reactData.formData = formData;
|
|
1025
|
+
}
|
|
1012
1026
|
if ($xeTable) {
|
|
1027
|
+
const {
|
|
1028
|
+
internalData: tableInternalData
|
|
1029
|
+
} = $xeTable;
|
|
1030
|
+
const {
|
|
1031
|
+
tableFullColumn,
|
|
1032
|
+
fullColumnFieldData
|
|
1033
|
+
} = tableInternalData;
|
|
1013
1034
|
const {
|
|
1014
1035
|
computeSortOpts
|
|
1015
1036
|
} = $xeTable.getComputeMaps();
|
|
1016
1037
|
const sortOpts = computeSortOpts.value;
|
|
1017
|
-
defaultSort = sortOpts.defaultSort;
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
if (defaultSort) {
|
|
1021
|
-
if (!_xeUtils.default.isArray(defaultSort)) {
|
|
1022
|
-
defaultSort = [defaultSort];
|
|
1023
|
-
}
|
|
1024
|
-
sortList = defaultSort.map(item => {
|
|
1025
|
-
return {
|
|
1026
|
-
field: item.field,
|
|
1027
|
-
property: item.field,
|
|
1028
|
-
order: item.order
|
|
1029
|
-
};
|
|
1038
|
+
let defaultSort = sortOpts.defaultSort;
|
|
1039
|
+
tableFullColumn.forEach(column => {
|
|
1040
|
+
column.order = null;
|
|
1030
1041
|
});
|
|
1031
|
-
|
|
1032
|
-
|
|
1042
|
+
// 如果使用默认排序
|
|
1043
|
+
if (defaultSort) {
|
|
1044
|
+
if (!_xeUtils.default.isArray(defaultSort)) {
|
|
1045
|
+
defaultSort = [defaultSort];
|
|
1046
|
+
}
|
|
1047
|
+
sortList = defaultSort.map(item => {
|
|
1048
|
+
const {
|
|
1049
|
+
field,
|
|
1050
|
+
order
|
|
1051
|
+
} = item;
|
|
1052
|
+
const colRest = fullColumnFieldData[field];
|
|
1053
|
+
if (colRest) {
|
|
1054
|
+
const column = colRest.column;
|
|
1055
|
+
if (column) {
|
|
1056
|
+
column.order = order;
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
return {
|
|
1060
|
+
field,
|
|
1061
|
+
property: field,
|
|
1062
|
+
order
|
|
1063
|
+
};
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1033
1066
|
filterList = $xeTable.getCheckedFilters();
|
|
1034
1067
|
}
|
|
1035
1068
|
} else {
|
|
@@ -1445,31 +1478,31 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1445
1478
|
const {
|
|
1446
1479
|
code
|
|
1447
1480
|
} = params;
|
|
1448
|
-
return
|
|
1481
|
+
return $xeGrid.commitProxy(params, evnt).then(rest => {
|
|
1449
1482
|
if (code && rest && rest.status && ['query', 'reload', 'delete', 'save'].includes(code)) {
|
|
1450
|
-
|
|
1483
|
+
$xeGrid.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code}` : 'proxy-query', Object.assign(Object.assign({}, rest), {
|
|
1451
1484
|
isReload: code === 'reload'
|
|
1452
1485
|
}), evnt);
|
|
1453
1486
|
}
|
|
1454
1487
|
});
|
|
1455
1488
|
},
|
|
1456
1489
|
triggerToolbarBtnEvent(button, evnt) {
|
|
1457
|
-
|
|
1458
|
-
|
|
1490
|
+
$xeGrid.triggerToolbarCommitEvent(button, evnt);
|
|
1491
|
+
$xeGrid.dispatchEvent('toolbar-button-click', {
|
|
1459
1492
|
code: button.code,
|
|
1460
1493
|
button
|
|
1461
1494
|
}, evnt);
|
|
1462
1495
|
},
|
|
1463
1496
|
triggerToolbarTolEvent(tool, evnt) {
|
|
1464
|
-
|
|
1465
|
-
|
|
1497
|
+
$xeGrid.triggerToolbarCommitEvent(tool, evnt);
|
|
1498
|
+
$xeGrid.dispatchEvent('toolbar-tool-click', {
|
|
1466
1499
|
code: tool.code,
|
|
1467
1500
|
tool
|
|
1468
1501
|
}, evnt);
|
|
1469
1502
|
},
|
|
1470
1503
|
triggerZoomEvent(evnt) {
|
|
1471
|
-
|
|
1472
|
-
|
|
1504
|
+
$xeGrid.zoom();
|
|
1505
|
+
$xeGrid.dispatchEvent('zoom', {
|
|
1473
1506
|
type: reactData.isZMax ? 'max' : 'revert'
|
|
1474
1507
|
}, evnt);
|
|
1475
1508
|
}
|
|
@@ -1541,6 +1574,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1541
1574
|
const {
|
|
1542
1575
|
columns
|
|
1543
1576
|
} = props;
|
|
1577
|
+
const proxyOpts = computeProxyOpts.value;
|
|
1544
1578
|
if (props.formConfig) {
|
|
1545
1579
|
if (!VxeUIFormComponent) {
|
|
1546
1580
|
(0, _log.errLog)('vxe.error.reqComp', ['vxe-form']);
|
|
@@ -1552,14 +1586,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1552
1586
|
}
|
|
1553
1587
|
}
|
|
1554
1588
|
// const { data, columns, proxyConfig } = props
|
|
1555
|
-
// const proxyOpts = computeProxyOpts.value
|
|
1556
1589
|
// const formOpts = computeFormOpts.value
|
|
1557
1590
|
// if (isEnableConf(proxyConfig) && (data || (proxyOpts.form && formOpts.data))) {
|
|
1558
1591
|
// errLog('vxe.error.errConflicts', ['grid.data', 'grid.proxy-config'])
|
|
1559
1592
|
// }
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1593
|
+
if (proxyOpts.props) {
|
|
1594
|
+
(0, _log.warnLog)('vxe.error.delProp', ['proxy-config.props', 'proxy-config.response']);
|
|
1595
|
+
}
|
|
1563
1596
|
if (columns && columns.length) {
|
|
1564
1597
|
$xeGrid.loadColumn(columns);
|
|
1565
1598
|
}
|
package/lib/grid/src/grid.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(S,e){let t,{slots:u,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),i=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(S).computeSize,T=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),s=(0,_vue.ref)(),j=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),m=(0,_vue.ref)(),v=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=j.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=j.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),S.proxyConfig))),A=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,S.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,S.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,S.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,S.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=S,{isZMax:o,tZindex:r}=T,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),P=(0,_vue.computed)(()=>{let t={},o=S;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=S,{isZMax:i,tableLoading:l,tablePage:n}=T,s=P.value,u=q.value,d=F.value,g=Object.assign({},s);return i&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=o||l,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),r&&(g.editConfig=Object.assign({},r)),g}),U=(0,_vue.computed)(()=>{var e=S.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var Z=(0,_vue.computed)(()=>F.value.currentPage),K=(0,_vue.computed)(()=>F.value.pageSize),H=(0,_vue.computed)(()=>F.value.total);let G={refElem:s,refTable:j,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:q,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:E,props:S,context:e,reactData:T,getRefMaps:()=>G,getComputeMaps:()=>N},b=()=>{var e=L.value;S.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=j.value,t=d.value;e&&t&&e.connect(t)})},B=()=>{var e=S.proxyConfig,t=T.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=e=>{var t=T.tablePage,o=S.pagerConfig,r=F.value;o&&(0,_utils.isEnableConf)(r)&&(e?r[e]&&(t[e]=_xeUtils.default.toNumber(r[e])):({currentPage:o,pageSize:e,total:r}=r,o&&(t.currentPage=o),e&&(t.pageSize=e),r&&(t.pageSize=r)))},z=(e,t)=>{var o=q.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):r)||getI18n(t)},Q=(e,t,o)=>{var r=M.value,a=D.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},W=e=>{var t=S.proxyConfig,o=T.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,V.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,r)})},Y=t=>{var e=j.value,o=S.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(T.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("sort-change",t,t.$event)},J=t=>{var e=j.value,o=S.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(T.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("filter-change",t,t.$event)},X=t=>{var e=S.proxyConfig,o=q.value;T.tableLoading||(e&&(0,_utils.isEnableConf)(o)&&$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),$.dispatchEvent("form-submit",t,t.$event))},ee=e=>{var t=S.proxyConfig;let o=e.$event;var r=q.value,a=j.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),$.dispatchEvent("form-reset",e,o)},te=e=>{$.dispatchEvent("form-submit-invalid",e,e.$event)},oe=e=>{var t=e.$event;$.dispatchEvent("form-toggle-collapse",e,t),$.dispatchEvent("form-collapse",e,t)},re=e=>{var t=T.isZMax;return(e?!t:t)&&(T.isZMax=!t,T.tZindex<(0,_utils.getLastZIndex)())&&(T.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),T.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},ae=e=>{let o={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?o[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o},ie=()=>{var{formConfig:e,proxyConfig:o}=S,r=T.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||u.form){let e=[];if(u.form)e=u.form({$grid:V});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:V,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:n},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:X,onReset:ee,onSubmitInvalid:te,onCollapse:oe}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},le=()=>{var t,o,r,a,i,l,n=S.toolbarConfig,s=L.value;if(n&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:V}):(n={},(l=s.slots)&&(t=h(l,"buttons"),o=h(l,"buttonPrefix"),r=h(l,"buttonSuffix"),a=h(l,"tools"),i=h(l,"toolPrefix"),l=h(l,"toolSuffix"),t&&(n.buttons=t),o&&(n.buttonPrefix=o),r&&(n.buttonSuffix=r),a&&(n.tools=a),i&&(n.toolPrefix=i),l)&&(n.toolSuffix=l),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),n))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},ne=()=>u.top?(0,_vue.h)("div",{ref:v,key:"top",class:"vxe-grid--top-wrapper"},u.top({$grid:V})):renderEmptyElement(V),se=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ue=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},de=()=>{var e=S.proxyConfig,t=k.value,o=q.value,r=Object.assign({},me),a=u.empty,i=u.loading,l=u.rowDragIcon||u["row-drag-icon"],n=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Y),o.filter)&&(r.onFilterChange=J),{});return a&&(e.empty=a),i&&(e.loading=i),l&&(e.rowDragIcon=l),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:j},t),r),e)])},ge=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:V})):renderEmptyElement(V),ce=()=>{var{proxyConfig:e,pagerConfig:t}=S,o=q.value,r=F.value,a=u.pager;return t&&(0,_utils.isEnableConf)(r)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[i?(0,_vue.h)(i,Object.assign(Object.assign(Object.assign({ref:g},r),e&&(0,_utils.isEnableConf)(o)?T.tablePage:{}),{onPageChange:W}),ae(r.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(ie());break;case"Toolbar":t.push(le());break;case"Top":t.push(ne());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[se(),de(),ue()]));break;case"Bottom":t.push(ge());break;case"Pager":t.push(ce());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},me={},ve=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);me[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=S,o=T.proxyInited,r=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),a[o]=e}}),T.formData=a}o||!(T.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>$.commitProxy("_init")).then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),pe=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let $={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:V},t))},getEl(){return s.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=S,n=T.tablePage,m=M.value,v=A.value;var o=q.value;let s=F.value;var r=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=j.value;var R=B();let E=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,E=r?r.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,k=M.value,O=j.value,(P=O.getCheckboxRecords()).length?(O.togglePendingRow(P),D.clearCheckboxRow()):k&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return Q(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let i=h.querySuccess,r=h.queryError;if(O){var I,P="_init"===w,k="reload"===w;if(!P&&T.tableLoading)return(0,_vue.nextTick)();let t=[],o=[],e={};if(l&&((P||k)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),P){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(k?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let a={code:w,button:E,isInited:P,isReload:k,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return T.sortData=t,T.filterData=o,T.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var o,r;return T.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(s)?(r=C.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"page.total"))||0,n.total=_xeUtils.default.toNumber(r),o=C.result,t=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"result"))||[],o=Math.max(Math.ceil(r/n.pageSize),1),n.currentPage>o&&(n.currentPage=o)):(r=C.list,t=(r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),i&&i(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(T.tableLoading=!1,r&&r(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let o={$grid:V,code:w,button:E,body:U,form:R,options:r};if(e.length)return Q(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((f||r)(o,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):$.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,l={$grid:V,code:w,button:E,body:t,form:R,options:n},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(T.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(T.tableLoading=!1,y.clearPendingRow(),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):$.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?$.revert():$.maximize()},isMaximized(){return T.isZMax},maximize(){return re(!0)},revert(){return re()},getFormData:B,getFormItems(e){var t=x.value,o=S.formConfig,r=t.items;let a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=j.value;return S.proxyConfig?(e=T.sortData,{data:t?t.getFullData():[],filter:T.filterData,form:B(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y={extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,o,r,a,i,l=T.isZMax,n=s.value;return n?(e=c.value,t=m.value,o=v.value,r=p.value,a=f.value,i=n.parentElement,(!l&&i?(0,_dom.getPaddingTopBottomSize)(i):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(T.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-y.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let o=e.code;return $.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&$.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){$.zoom(),$.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}},R=(Object.assign(V,D,$,y,{loadColumn(e){var t=j.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return V.clearAll(),V.loadColumn(e)}}),(0,_vue.ref)(0));(0,_vue.watch)(()=>S.columns?S.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>S.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>V.loadColumn(S.columns||[]))}),(0,_vue.watch)(()=>S.toolbarConfig,()=>{b()}),(0,_vue.watch)(Z,()=>{_("currentPage")}),(0,_vue.watch)(K,()=>{_("pageSize")}),(0,_vue.watch)(H,()=>{_("total")}),(0,_vue.watch)(()=>S.proxyConfig,()=>{ve()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.columns;S.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),S.pagerConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),ve()}),globalEvents.on(V,"keydown",pe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!S.animat,"is--round":S.round,"is--maximize":T.isZMax,"is--loading":S.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(T,e){let t,{slots:u,emit:o}=e;var R=_xeUtils.default.uniqueId();let i=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),E=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],w=useFns.useSize(T).computeSize,j=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),s=(0,_vue.ref)(),D=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),m=(0,_vue.ref)(),v=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=D.value;if(t&&t[r])return t[r](...e)}}),t};let q=r(tableComponentMethodKeys),M=(tableComponentMethodKeys.forEach(r=>{q[r]=(...e)=>{var t=D.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),K=(0,_vue.computed)(()=>{var e=M.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),F=(0,_vue.computed)(()=>!!M.value.showActiveMsg),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),O=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),P=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:r,editConfig:o,proxyConfig:a}=T,{isZMax:l,tableLoading:i,tablePage:n}=j,s=P.value,u=M.value,d=L.value,g=Object.assign({},s);return l&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=r||i,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(g.editConfig=Object.assign({},o)),g}),k=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||E).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var U=(0,_vue.computed)(()=>L.value.currentPage),S=(0,_vue.computed)(()=>L.value.pageSize),H=(0,_vue.computed)(()=>L.value.total);let G={refElem:s,refTable:D,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:M,computePagerOpts:L,computeFormOpts:x,computeToolbarOpts:V,computeZoomOpts:a},B={xID:R,props:T,context:e,reactData:j,getRefMaps:()=>G,getComputeMaps:()=>N},b=()=>{var e=V.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=D.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,r=M.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},_=e=>{var t=j.tablePage,r=T.pagerConfig,o=L.value;r&&(0,_utils.isEnableConf)(o)&&(e?o[e]&&(t[e]=_xeUtils.default.toNumber(o[e])):({currentPage:r,pageSize:e,total:o}=o,r&&(t.currentPage=r),e&&(t.pageSize=e),o&&(t.pageSize=o)))},$=(e,t)=>{var r=M.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:B}):_xeUtils.default.get(e,r):o)||getI18n(t)},A=(e,t,r)=>{var o=F.value,a=q.getCheckboxRecords();if(o)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},Q=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var i=M.value;r.currentPage=a,r.pageSize=l,B.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(i)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,o)})},W=t=>{var e=D.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=M.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("sort-change",t,t.$event)},Y=t=>{var e=D.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=M.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("filter-change",t,t.$event)},J=t=>{var e=T.proxyConfig,r=M.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),B.dispatchEvent("form-submit",t,t.$event))},X=e=>{var t=D.value,r=T.proxyConfig;let o=e.$event;var a=M.value;r&&(0,_utils.isEnableConf)(a)&&(t.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),B.dispatchEvent("form-reset",e,o)},ee=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},te=e=>{var t=e.$event;B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},re=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>B.recalculate(!0)).then(()=>(setTimeout(()=>B.recalculate(!0),15),j.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?r[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},ae=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:B});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:B,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),i&&e.push((0,_vue.h)(i,Object.assign(Object.assign({ref:n},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:J,onReset:X,onSubmitInvalid:ee,onCollapse:te}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(B)},le=()=>{var t,r,o,a,l,i,n=T.toolbarConfig,s=V.value;if(n&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:B}):(n={},(i=s.slots)&&(t=h(i,"buttons"),r=h(i,"buttonPrefix"),o=h(i,"buttonSuffix"),a=h(i,"tools"),l=h(i,"toolPrefix"),i=h(i,"toolSuffix"),t&&(n.buttons=t),r&&(n.buttonPrefix=r),o&&(n.buttonSuffix=o),a&&(n.tools=a),l&&(n.toolPrefix=l),i)&&(n.toolSuffix=i),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),n))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(B)},ie=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:v,key:"top",class:"vxe-grid--top-wrapper"},e({$grid:B})):renderEmptyElement(B)},ne=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:B})):renderEmptyElement(B)},se=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:B})):renderEmptyElement(B)},ue=()=>{var e=T.proxyConfig,t=I.value,r=M.value,o=Object.assign({},ce),a=u.empty,l=u.loading,i=u.rowDragIcon||u["row-drag-icon"],n=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=W),r.filter)&&(o.onFilterChange=Y),{});return a&&(e.empty=a),l&&(e.loading=l),i&&(e.rowDragIcon=i),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:D},t),o),e)])},de=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:B})):renderEmptyElement(B),ge=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=M.value,o=L.value,a=u.pager;return t&&(0,_utils.isEnableConf)(o)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:B}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:Q}),oe(o.slots)):renderEmptyElement(B)]):renderEmptyElement(B)},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(ae());break;case"Toolbar":t.push(le());break;case"Top":t.push(ie());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ne(),ue(),se()]));break;case"Bottom":t.push(de());break;case"Pager":t.push(ge());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ce={},me=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ce[e]=(...e)=>o(t,...e)}),()=>{var e=x.value;if(e.items){let a={};return e.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),a}return{}}),ve=()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=M.value,a=x.value;e&&(0,_utils.isEnableConf)(o)&&(t&&(0,_utils.isEnableConf)(a)&&o.form&&a.items&&(j.formData=me()),r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>Z.commitProxy("initial")).then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},pe=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&B.triggerZoomEvent(e)};let Z={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:B},t))},getEl(){return s.value},commitProxy(t,...d){let{proxyConfig:o,toolbarConfig:e,pagerConfig:n,editRules:g,validConfig:c}=T,s=j.tablePage,m=F.value,v=K.value;var u=M.value;let p=L.value;var r,a=V.value;let{beforeQuery:f,afterQuery:x,beforeDelete:i,afterDelete:b,beforeSave:_,afterSave:h,ajax:C={}}=u,y=u.response||u.props||{},R=D.value,E=z(),w=null,O=null;O=_xeUtils.default.isString(t)?(r=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,w=a?a.item:null,t):(w=t).code;var l=w?w.params:null;switch(O){case"insert":return R.insert({});case"insert_edit":return R.insert({}).then(({row:e})=>R.setEditRow(e));case"insert_actived":return R.insert({}).then(({row:e})=>R.setEditRow(e));case"mark_cancel":U=O,k=F.value,P=D.value,(I=P.getCheckboxRecords()).length?(P.togglePendingRow(I),q.clearCheckboxRow()):k&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:U,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return A(O,"vxe.grid.removeSelectRecord",()=>R.removeCheckboxRow());case"import":R.importData(l);break;case"open_import":R.openImport(l);break;case"export":R.exportData(l);break;case"open_export":R.openExport(l);break;case"reset_custom":return R.resetCustom(!0);case"initial":case"reload":case"query":{var P=C.query;let i=C.querySuccess,t=C.queryError;if(P){var I="initial"===O,k="reload"===O;if(!I&&j.tableLoading)return(0,_vue.nextTick)();let r=[],a=[],e={};if(n&&((I||k)&&(s.currentPage=1),(0,_utils.isEnableConf)(p))&&(e=Object.assign({},s)),I){if(o&&(0,_utils.isEnableConf)(u)&&u.form&&(E=me(),j.formData=E),R){var U=R.internalData;let{tableFullColumn:e,fullColumnFieldData:o}=U;var S=R.getComputeMaps().computeSortOpts;let t=S.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),r=t.map(e=>{var{field:e,order:t}=e,r=o[e];return r&&(r=r.column)&&(r.order=t),{field:e,property:e,order:t}})),a=R.getCheckedFilters()}}else R&&(k?R.clearAll():(r=R.getSortColumns(),a=R.getCheckedFilters()));let l={code:O,button:w,isInited:I,isReload:k,$grid:B,page:e,sort:r.length?r[0]:{},sorts:r,filters:a,form:E,options:P};return j.sortData=r,j.filterData=a,j.tableLoading=!0,Promise.resolve((f||P)(l,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(n&&(0,_utils.isEnableConf)(p)?(o=y.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:B}):_xeUtils.default.get(e,o||"page.total"))||0,s.total=_xeUtils.default.toNumber(o),r=y.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:B}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/s.pageSize),1),s.currentPage>r&&(s.currentPage=r)):(o=y.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:B}):_xeUtils.default.get(e,o):e)||[])),R?R.loadData(t):(0,_vue.nextTick)(()=>{R&&R.loadData(t)}),x&&x(l,...d),i&&i(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=C.delete,a=C.deleteSuccess,l=C.deleteError;if(o){let e=q.getCheckboxRecords(),t=e.filter(e=>!R.isInsertByRow(e));S={removeRecords:t};let r={$grid:B,code:O,button:w,body:S,form:E,options:o};if(e.length)return A(O,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((i||o)(r,...d)).then(e=>(j.tableLoading=!1,R.setPendingRow(t,!1),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),b?b(r,...d):Z.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):R.remove(e));m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=C.save,s=C.saveSuccess,u=C.saveError;if(n){let t=R.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,i={$grid:B,code:O,button:w,body:t,form:E,options:n},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===R.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===R.findRowIndexOf(l,e))),Promise.resolve());return(e=g?R[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((_||n)(i,...d)).then(e=>(j.tableLoading=!1,R.clearPendingRow(),v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),h?h(i,...d):Z.commitProxy("query"),s&&s(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1}))):void(m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var S=commands.get(O);S&&((S=S.tableCommandMethod||S.commandMethod)?S({code:O,button:w,$grid:B,$table:R},...d):(0,_log.errLog)("vxe.error.notCommands",[O]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?Z.revert():Z.maximize()},isMaximized(){return j.isZMax},maximize(){return re(!0)},revert(){return re()},getFormData:z,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=D.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},fe={extendTableMethods:r,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,r,o,a,l,i=j.isZMax,n=s.value;return n?(e=c.value,t=m.value,r=v.value,o=p.value,a=f.value,l=n.parentElement,(!i&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-fe.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return B.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&B.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){B.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){B.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){B.zoom(),B.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}},y=(Object.assign(B,q,Z,fe,{loadColumn(e){var t=D.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return B.clearAll(),B.loadColumn(e)}}),(0,_vue.ref)(0));(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>T.columns,()=>{y.value++}),(0,_vue.watch)(y,()=>{(0,_vue.nextTick)(()=>B.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{b()}),(0,_vue.watch)(U,()=>{_("currentPage")}),(0,_vue.watch)(S,()=>{_("pageSize")}),(0,_vue.watch)(H,()=>{_("total")}),(0,_vue.watch)(()=>T.proxyConfig,()=>{ve()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(B))&&_xeUtils.default.isObject(e)&&Object.assign(B,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns,t=M.value;T.formConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),e&&e.length&&B.loadColumn(e),b(),ve()}),globalEvents.on(B,"keydown",pe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(B,"keydown")});return B.renderVN=()=>{var e=w.value,t=O.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":T.loading||j.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=k.value,o=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(B),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(B)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(r))]})())},(0,_vue.provide)("$xeGrid",B),B},render(){return this.renderVN()}});
|