vxe-table 4.12.0-beta.7 → 4.12.0-beta.8
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 +4 -1
- package/es/style.css +1 -1
- package/es/table/src/table.js +164 -48
- package/es/table/src/util.js +7 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +4 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +1069 -12132
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/table.js +183 -51
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +9 -1
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +1 -1
- 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 +2 -2
- package/packages/grid/src/grid.ts +4 -1
- package/packages/table/src/table.ts +165 -49
- package/packages/table/src/util.ts +8 -0
- /package/es/{iconfont.1741265552139.ttf → iconfont.1741333670965.ttf} +0 -0
- /package/es/{iconfont.1741265552139.woff → iconfont.1741333670965.woff} +0 -0
- /package/es/{iconfont.1741265552139.woff2 → iconfont.1741333670965.woff2} +0 -0
- /package/lib/{iconfont.1741265552139.ttf → iconfont.1741333670965.ttf} +0 -0
- /package/lib/{iconfont.1741265552139.woff → iconfont.1741333670965.woff} +0 -0
- /package/lib/{iconfont.1741265552139.woff2 → iconfont.1741333670965.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -9,7 +9,7 @@ import TableHeaderComponent from './header';
|
|
|
9
9
|
import TableFooterComponent from './footer';
|
|
10
10
|
import tableProps from './props';
|
|
11
11
|
import tableEmits from './emits';
|
|
12
|
-
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, updateDeepRowKey, updateFastRowKey } from './util';
|
|
12
|
+
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, updateDeepRowKey, updateFastRowKey } from './util';
|
|
13
13
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
14
14
|
import { warnLog, errLog } from '../../ui/src/log';
|
|
15
15
|
import TableCustomPanelComponent from '../module/custom/panel';
|
|
@@ -2238,6 +2238,7 @@ export default defineComponent({
|
|
|
2238
2238
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2239
2239
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
2240
2240
|
const { checkField, reserve, checkMethod } = checkboxOpts;
|
|
2241
|
+
// indeterminateField 仅支持读取
|
|
2241
2242
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
2242
2243
|
const selectRowMaps = {};
|
|
2243
2244
|
/**
|
|
@@ -3438,6 +3439,9 @@ export default defineComponent({
|
|
|
3438
3439
|
};
|
|
3439
3440
|
tableMethods = {
|
|
3440
3441
|
dispatchEvent,
|
|
3442
|
+
getEl() {
|
|
3443
|
+
return refElem.value;
|
|
3444
|
+
},
|
|
3441
3445
|
/**
|
|
3442
3446
|
* 重置表格的一切数据状态
|
|
3443
3447
|
*/
|
|
@@ -3938,18 +3942,20 @@ export default defineComponent({
|
|
|
3938
3942
|
},
|
|
3939
3943
|
/**
|
|
3940
3944
|
* 检查行或列数据是否发生改变
|
|
3941
|
-
* @param {Row}
|
|
3945
|
+
* @param {Row} rowOrId 行对象、行主键
|
|
3942
3946
|
* @param {String} field 字段名
|
|
3943
3947
|
*/
|
|
3944
|
-
isUpdateByRow(
|
|
3948
|
+
isUpdateByRow(rowOrId, field) {
|
|
3945
3949
|
const { keepSource } = props;
|
|
3946
3950
|
const { tableFullColumn, fullDataRowIdData, sourceDataRowIdData } = internalData;
|
|
3947
3951
|
if (keepSource) {
|
|
3948
|
-
const rowid = getRowid($xeTable,
|
|
3952
|
+
const rowid = XEUtils.isString(rowOrId) || XEUtils.isNumber(rowOrId) ? rowOrId : getRowid($xeTable, rowOrId);
|
|
3953
|
+
const rowRest = fullDataRowIdData[rowid];
|
|
3949
3954
|
// 新增的数据不需要检测
|
|
3950
|
-
if (!
|
|
3955
|
+
if (!rowRest) {
|
|
3951
3956
|
return false;
|
|
3952
3957
|
}
|
|
3958
|
+
const row = rowRest.row;
|
|
3953
3959
|
const oRow = sourceDataRowIdData[rowid];
|
|
3954
3960
|
if (oRow) {
|
|
3955
3961
|
if (arguments.length > 1) {
|
|
@@ -4013,6 +4019,94 @@ export default defineComponent({
|
|
|
4013
4019
|
tableColumn: reactData.tableColumn.slice(0)
|
|
4014
4020
|
};
|
|
4015
4021
|
},
|
|
4022
|
+
/**
|
|
4023
|
+
* 移动列到指定列的位置
|
|
4024
|
+
* @param fieldOrColumn
|
|
4025
|
+
* @param targetFieldOrColumn
|
|
4026
|
+
* @param options
|
|
4027
|
+
*/
|
|
4028
|
+
moveColumnTo(fieldOrColumn, targetFieldOrColumn, options) {
|
|
4029
|
+
const { fullColumnIdData, visibleColumn } = internalData;
|
|
4030
|
+
const { dragToChild, dragPos, isCrossDrag } = Object.assign({}, options);
|
|
4031
|
+
const dragCol = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
4032
|
+
let prevDragCol = null;
|
|
4033
|
+
const colRest = dragCol ? fullColumnIdData[dragCol.id] : null;
|
|
4034
|
+
let defPos = 'left';
|
|
4035
|
+
if (XEUtils.isNumber(targetFieldOrColumn)) {
|
|
4036
|
+
if (colRest && targetFieldOrColumn) {
|
|
4037
|
+
let currList = colRest.items;
|
|
4038
|
+
let offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4039
|
+
if (isCrossDrag) {
|
|
4040
|
+
currList = visibleColumn;
|
|
4041
|
+
offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4042
|
+
}
|
|
4043
|
+
if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
|
|
4044
|
+
prevDragCol = currList[offsetIndex];
|
|
4045
|
+
}
|
|
4046
|
+
if (targetFieldOrColumn > 0) {
|
|
4047
|
+
defPos = 'right';
|
|
4048
|
+
}
|
|
4049
|
+
}
|
|
4050
|
+
}
|
|
4051
|
+
else {
|
|
4052
|
+
prevDragCol = handleFieldOrColumn($xeTable, targetFieldOrColumn);
|
|
4053
|
+
const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null;
|
|
4054
|
+
if (colRest && targetColRest) {
|
|
4055
|
+
if (targetColRest._index > colRest._index) {
|
|
4056
|
+
defPos = 'right';
|
|
4057
|
+
}
|
|
4058
|
+
}
|
|
4059
|
+
}
|
|
4060
|
+
return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true);
|
|
4061
|
+
},
|
|
4062
|
+
/**
|
|
4063
|
+
* 移动行到指定行的位置
|
|
4064
|
+
* @param rowidOrRow
|
|
4065
|
+
* @param targetRowidOrRow
|
|
4066
|
+
* @param options
|
|
4067
|
+
*/
|
|
4068
|
+
moveRowTo(rowidOrRow, targetRowidOrRow, options) {
|
|
4069
|
+
const { treeConfig } = props;
|
|
4070
|
+
const { fullAllDataRowIdData, afterFullData } = internalData;
|
|
4071
|
+
const { dragToChild, dragPos, isCrossDrag } = Object.assign({}, options);
|
|
4072
|
+
const treeOpts = computeTreeOpts.value;
|
|
4073
|
+
const dragRow = handleRowidOrRow($xeTable, rowidOrRow);
|
|
4074
|
+
let prevDragRow = null;
|
|
4075
|
+
let defPos = 'top';
|
|
4076
|
+
const rowRest = dragRow ? fullAllDataRowIdData[getRowid($xeTable, dragRow)] : null;
|
|
4077
|
+
if (XEUtils.isNumber(targetRowidOrRow)) {
|
|
4078
|
+
if (rowRest && targetRowidOrRow) {
|
|
4079
|
+
let currList = afterFullData;
|
|
4080
|
+
let offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4081
|
+
if (treeConfig) {
|
|
4082
|
+
currList = rowRest.items;
|
|
4083
|
+
if (treeOpts.transform) {
|
|
4084
|
+
offsetIndex = rowRest.treeIndex + targetRowidOrRow;
|
|
4085
|
+
if (isCrossDrag) {
|
|
4086
|
+
currList = afterFullData;
|
|
4087
|
+
offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4088
|
+
}
|
|
4089
|
+
}
|
|
4090
|
+
}
|
|
4091
|
+
if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
|
|
4092
|
+
prevDragRow = currList[offsetIndex];
|
|
4093
|
+
}
|
|
4094
|
+
if (targetRowidOrRow > 0) {
|
|
4095
|
+
defPos = 'bottom';
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
}
|
|
4099
|
+
else {
|
|
4100
|
+
prevDragRow = handleRowidOrRow($xeTable, targetRowidOrRow);
|
|
4101
|
+
const targetRowRest = prevDragRow ? fullAllDataRowIdData[getRowid($xeTable, prevDragRow)] : null;
|
|
4102
|
+
if (rowRest && targetRowRest) {
|
|
4103
|
+
if (targetRowRest._index > rowRest._index) {
|
|
4104
|
+
defPos = 'bottom';
|
|
4105
|
+
}
|
|
4106
|
+
}
|
|
4107
|
+
}
|
|
4108
|
+
return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true);
|
|
4109
|
+
},
|
|
4016
4110
|
/**
|
|
4017
4111
|
* 获取表格的全量列
|
|
4018
4112
|
*/
|
|
@@ -4032,6 +4126,7 @@ export default defineComponent({
|
|
|
4032
4126
|
*/
|
|
4033
4127
|
getCheckboxRecords(isFull) {
|
|
4034
4128
|
const { treeConfig } = props;
|
|
4129
|
+
const { selectCheckboxMaps } = reactData;
|
|
4035
4130
|
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData;
|
|
4036
4131
|
const treeOpts = computeTreeOpts.value;
|
|
4037
4132
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
@@ -4039,17 +4134,17 @@ export default defineComponent({
|
|
|
4039
4134
|
const { checkField } = checkboxOpts;
|
|
4040
4135
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4041
4136
|
let rowList = [];
|
|
4042
|
-
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData);
|
|
4043
4137
|
if (checkField) {
|
|
4044
4138
|
if (treeConfig) {
|
|
4139
|
+
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData);
|
|
4045
4140
|
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, checkField), { children: transform ? mapChildrenField : childrenField });
|
|
4046
4141
|
}
|
|
4047
4142
|
else {
|
|
4143
|
+
const currTableData = isFull ? tableFullData : afterFullData;
|
|
4048
4144
|
rowList = currTableData.filter((row) => XEUtils.get(row, checkField));
|
|
4049
4145
|
}
|
|
4050
4146
|
}
|
|
4051
4147
|
else {
|
|
4052
|
-
const { selectCheckboxMaps } = reactData;
|
|
4053
4148
|
XEUtils.each(selectCheckboxMaps, (row, rowid) => {
|
|
4054
4149
|
if (isFull) {
|
|
4055
4150
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -4734,6 +4829,7 @@ export default defineComponent({
|
|
|
4734
4829
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4735
4830
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
4736
4831
|
const { checkField, reserve } = checkboxOpts;
|
|
4832
|
+
// indeterminateField 仅支持读取
|
|
4737
4833
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
4738
4834
|
if (checkField) {
|
|
4739
4835
|
const handleClearChecked = (item) => {
|
|
@@ -7452,6 +7548,7 @@ export default defineComponent({
|
|
|
7452
7548
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
7453
7549
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7454
7550
|
const { checkField, checkStrictly, checkMethod } = checkboxOpts;
|
|
7551
|
+
// indeterminateField 仅支持读取
|
|
7455
7552
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
7456
7553
|
if (checkField) {
|
|
7457
7554
|
// 树结构
|
|
@@ -8099,6 +8196,9 @@ export default defineComponent({
|
|
|
8099
8196
|
const { afterFullData, tableFullData } = internalData;
|
|
8100
8197
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
8101
8198
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
8199
|
+
const errRest = {
|
|
8200
|
+
status: false
|
|
8201
|
+
};
|
|
8102
8202
|
if (prevDragRow && dragRow) {
|
|
8103
8203
|
// 判断是否有拖动
|
|
8104
8204
|
if (prevDragRow !== dragRow) {
|
|
@@ -8113,7 +8213,7 @@ export default defineComponent({
|
|
|
8113
8213
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
8114
8214
|
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
|
|
8115
8215
|
if (!status) {
|
|
8116
|
-
return;
|
|
8216
|
+
return errRest;
|
|
8117
8217
|
}
|
|
8118
8218
|
let oafIndex = -1;
|
|
8119
8219
|
let nafIndex = -1;
|
|
@@ -8138,12 +8238,12 @@ export default defineComponent({
|
|
|
8138
8238
|
if (isPeerDrag && !isCrossDrag) {
|
|
8139
8239
|
if (oldRest.row[parentField] !== newRest.row[parentField]) {
|
|
8140
8240
|
// 非同级
|
|
8141
|
-
return;
|
|
8241
|
+
return errRest;
|
|
8142
8242
|
}
|
|
8143
8243
|
}
|
|
8144
8244
|
else {
|
|
8145
8245
|
if (!isCrossDrag) {
|
|
8146
|
-
return;
|
|
8246
|
+
return errRest;
|
|
8147
8247
|
}
|
|
8148
8248
|
if (oldAllMaps[newRowid]) {
|
|
8149
8249
|
isSelfToChildStatus = true;
|
|
@@ -8154,7 +8254,7 @@ export default defineComponent({
|
|
|
8154
8254
|
content: getI18n('vxe.error.treeDragChild')
|
|
8155
8255
|
});
|
|
8156
8256
|
}
|
|
8157
|
-
return;
|
|
8257
|
+
return errRest;
|
|
8158
8258
|
}
|
|
8159
8259
|
}
|
|
8160
8260
|
}
|
|
@@ -8162,13 +8262,13 @@ export default defineComponent({
|
|
|
8162
8262
|
else if (oldLevel) {
|
|
8163
8263
|
// 子到根
|
|
8164
8264
|
if (!isCrossDrag) {
|
|
8165
|
-
return;
|
|
8265
|
+
return errRest;
|
|
8166
8266
|
}
|
|
8167
8267
|
}
|
|
8168
8268
|
else if (newLevel) {
|
|
8169
8269
|
// 根到子
|
|
8170
8270
|
if (!isCrossDrag) {
|
|
8171
|
-
return;
|
|
8271
|
+
return errRest;
|
|
8172
8272
|
}
|
|
8173
8273
|
if (oldAllMaps[newRowid]) {
|
|
8174
8274
|
isSelfToChildStatus = true;
|
|
@@ -8179,7 +8279,7 @@ export default defineComponent({
|
|
|
8179
8279
|
content: getI18n('vxe.error.treeDragChild')
|
|
8180
8280
|
});
|
|
8181
8281
|
}
|
|
8182
|
-
return;
|
|
8282
|
+
return errRest;
|
|
8183
8283
|
}
|
|
8184
8284
|
}
|
|
8185
8285
|
}
|
|
@@ -8239,27 +8339,34 @@ export default defineComponent({
|
|
|
8239
8339
|
if (reactData.scrollYLoad) {
|
|
8240
8340
|
$xeTable.updateScrollYSpace();
|
|
8241
8341
|
}
|
|
8242
|
-
|
|
8342
|
+
if (evnt) {
|
|
8343
|
+
dispatchEvent('row-dragend', {
|
|
8344
|
+
oldRow: dragRow,
|
|
8345
|
+
newRow: prevDragRow,
|
|
8346
|
+
dragRow,
|
|
8347
|
+
dragPos: prevDragPos,
|
|
8348
|
+
dragToChild: isDragToChildFlag,
|
|
8349
|
+
offsetIndex: dragOffsetIndex,
|
|
8350
|
+
_index: {
|
|
8351
|
+
newIndex: nafIndex,
|
|
8352
|
+
oldIndex: oafIndex
|
|
8353
|
+
}
|
|
8354
|
+
}, evnt);
|
|
8355
|
+
}
|
|
8356
|
+
return nextTick().then(() => {
|
|
8243
8357
|
$xeTable.updateCellAreas();
|
|
8244
8358
|
$xeTable.recalculate();
|
|
8359
|
+
}).then(() => {
|
|
8360
|
+
return {
|
|
8361
|
+
status: true
|
|
8362
|
+
};
|
|
8245
8363
|
});
|
|
8246
|
-
dispatchEvent('row-dragend', {
|
|
8247
|
-
oldRow: dragRow,
|
|
8248
|
-
newRow: prevDragRow,
|
|
8249
|
-
dragRow,
|
|
8250
|
-
dragPos: prevDragPos,
|
|
8251
|
-
dragToChild: isDragToChildFlag,
|
|
8252
|
-
offsetIndex: dragOffsetIndex,
|
|
8253
|
-
_index: {
|
|
8254
|
-
newIndex: nafIndex,
|
|
8255
|
-
oldIndex: oafIndex
|
|
8256
|
-
}
|
|
8257
|
-
}, evnt);
|
|
8258
8364
|
}).catch(() => {
|
|
8365
|
+
return errRest;
|
|
8259
8366
|
});
|
|
8260
8367
|
}
|
|
8261
8368
|
}
|
|
8262
|
-
return Promise.resolve();
|
|
8369
|
+
return Promise.resolve(errRest);
|
|
8263
8370
|
},
|
|
8264
8371
|
handleRowDragDragendEvent(evnt) {
|
|
8265
8372
|
const { treeConfig } = props;
|
|
@@ -8386,6 +8493,9 @@ export default defineComponent({
|
|
|
8386
8493
|
const { isPeerDrag, isCrossDrag, isSelfToChildDrag, isToChildDrag, dragEndMethod, dragToChildMethod } = columnDragOpts;
|
|
8387
8494
|
const { collectColumn } = internalData;
|
|
8388
8495
|
const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
|
|
8496
|
+
const errRest = {
|
|
8497
|
+
status: false
|
|
8498
|
+
};
|
|
8389
8499
|
if (prevDragCol && dragCol) {
|
|
8390
8500
|
// 判断是否有拖动
|
|
8391
8501
|
if (prevDragCol !== dragCol) {
|
|
@@ -8402,7 +8512,7 @@ export default defineComponent({
|
|
|
8402
8512
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
8403
8513
|
return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
|
|
8404
8514
|
if (!status) {
|
|
8405
|
-
return;
|
|
8515
|
+
return errRest;
|
|
8406
8516
|
}
|
|
8407
8517
|
let oafIndex = -1;
|
|
8408
8518
|
let nafIndex = -1;
|
|
@@ -8416,12 +8526,12 @@ export default defineComponent({
|
|
|
8416
8526
|
if (isPeerDrag && !isCrossDrag) {
|
|
8417
8527
|
if (dragColumn.parentId !== newColumn.parentId) {
|
|
8418
8528
|
// 非同级
|
|
8419
|
-
return;
|
|
8529
|
+
return errRest;
|
|
8420
8530
|
}
|
|
8421
8531
|
}
|
|
8422
8532
|
else {
|
|
8423
8533
|
if (!isCrossDrag) {
|
|
8424
|
-
return;
|
|
8534
|
+
return errRest;
|
|
8425
8535
|
}
|
|
8426
8536
|
if (oldAllMaps[newColumn.id]) {
|
|
8427
8537
|
isSelfToChildStatus = true;
|
|
@@ -8432,7 +8542,7 @@ export default defineComponent({
|
|
|
8432
8542
|
content: getI18n('vxe.error.treeDragChild')
|
|
8433
8543
|
});
|
|
8434
8544
|
}
|
|
8435
|
-
return;
|
|
8545
|
+
return errRest;
|
|
8436
8546
|
}
|
|
8437
8547
|
}
|
|
8438
8548
|
}
|
|
@@ -8440,13 +8550,13 @@ export default defineComponent({
|
|
|
8440
8550
|
else if (dragColumn.parentId) {
|
|
8441
8551
|
// 子到根
|
|
8442
8552
|
if (!isCrossDrag) {
|
|
8443
|
-
return;
|
|
8553
|
+
return errRest;
|
|
8444
8554
|
}
|
|
8445
8555
|
}
|
|
8446
8556
|
else if (newColumn.parentId) {
|
|
8447
8557
|
// 根到子
|
|
8448
8558
|
if (!isCrossDrag) {
|
|
8449
|
-
return;
|
|
8559
|
+
return errRest;
|
|
8450
8560
|
}
|
|
8451
8561
|
if (oldAllMaps[newColumn.id]) {
|
|
8452
8562
|
isSelfToChildStatus = true;
|
|
@@ -8457,7 +8567,7 @@ export default defineComponent({
|
|
|
8457
8567
|
content: getI18n('vxe.error.treeDragChild')
|
|
8458
8568
|
});
|
|
8459
8569
|
}
|
|
8460
|
-
return;
|
|
8570
|
+
return errRest;
|
|
8461
8571
|
}
|
|
8462
8572
|
}
|
|
8463
8573
|
}
|
|
@@ -8518,26 +8628,32 @@ export default defineComponent({
|
|
|
8518
8628
|
$xeTable.clearCopyCellArea();
|
|
8519
8629
|
}
|
|
8520
8630
|
}
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8631
|
+
if (evnt) {
|
|
8632
|
+
dispatchEvent('column-dragend', {
|
|
8633
|
+
oldColumn: dragColumn,
|
|
8634
|
+
newColumn,
|
|
8635
|
+
dragColumn,
|
|
8636
|
+
dragPos: prevDragPos,
|
|
8637
|
+
dragToChild: isDragToChildFlag,
|
|
8638
|
+
offsetIndex: dragOffsetIndex,
|
|
8639
|
+
_index: {
|
|
8640
|
+
newIndex: nafIndex,
|
|
8641
|
+
oldIndex: oafIndex
|
|
8642
|
+
}
|
|
8643
|
+
}, evnt);
|
|
8644
|
+
}
|
|
8533
8645
|
if (isSyncColumn) {
|
|
8534
8646
|
$xeTable.handleColDragSwapColumn();
|
|
8535
8647
|
}
|
|
8648
|
+
return {
|
|
8649
|
+
status: true
|
|
8650
|
+
};
|
|
8536
8651
|
}).catch(() => {
|
|
8652
|
+
return errRest;
|
|
8537
8653
|
});
|
|
8538
8654
|
}
|
|
8539
8655
|
}
|
|
8540
|
-
return Promise.resolve();
|
|
8656
|
+
return Promise.resolve(errRest);
|
|
8541
8657
|
},
|
|
8542
8658
|
handleHeaderCellDragDragendEvent(evnt) {
|
|
8543
8659
|
const { dragCol } = reactData;
|
package/es/table/src/util.js
CHANGED
|
@@ -125,6 +125,13 @@ export const handleFieldOrColumn = ($xeTable, fieldOrColumn) => {
|
|
|
125
125
|
}
|
|
126
126
|
return null;
|
|
127
127
|
};
|
|
128
|
+
export const handleRowidOrRow = ($xeTable, rowidOrRow) => {
|
|
129
|
+
if (rowidOrRow) {
|
|
130
|
+
const rowid = XEUtils.isString(rowidOrRow) || XEUtils.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
|
|
131
|
+
return $xeTable.getRowById(rowid);
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
};
|
|
128
135
|
function getPaddingLeftRightSize(elem) {
|
|
129
136
|
if (elem) {
|
|
130
137
|
const computedStyle = getComputedStyle(elem);
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -28,7 +28,7 @@ const {
|
|
|
28
28
|
renderEmptyElement
|
|
29
29
|
} = _ui.VxeUI;
|
|
30
30
|
const tableComponentPropKeys = Object.keys(_props.default);
|
|
31
|
-
const 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', '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', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', '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', 'openTooltip', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
|
|
31
|
+
const 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', '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', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', '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', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
|
|
32
32
|
const 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'];
|
|
33
33
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
34
34
|
name: 'VxeGrid',
|
|
@@ -868,6 +868,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
868
868
|
};
|
|
869
869
|
const gridMethods = {
|
|
870
870
|
dispatchEvent,
|
|
871
|
+
getEl() {
|
|
872
|
+
return refElem.value;
|
|
873
|
+
},
|
|
871
874
|
/**
|
|
872
875
|
* 提交指令,支持 code 或 button
|
|
873
876
|
* @param {String/Object} code 字符串或对象
|
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"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../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","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","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","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","openTooltip","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,_vue.defineComponent)({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(j,e){let t,{slots:s,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),n=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(j).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}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),d=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=S.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=S.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),j.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,j.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,j.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,j.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,j.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=j,{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}),k=(0,_vue.computed)(()=>{let t={},o=j;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),P=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=j,{isZMax:i,tableLoading:l,tablePage:n}=T,s=k.value,u=q.value,d=V.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=j.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 N=(0,_vue.computed)(()=>{var e=V.value;return""+e.currentPage+e.pageSize});let K={refElem:u,refTable:S,refForm:d,refToolbar:i,refPager:g},A={computeProxyOpts:q,computePagerOpts:V,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:a},L={xID:E,props:j,context:e,reactData:T,getRefMaps:()=>K,getComputeMaps:()=>A},b=()=>{var e=F.value;j.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=i.value;e&&t&&e.connect(t)})},z=()=>{var e=j.proxyConfig,t=T.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=()=>{var e=T.tablePage,t=j.pagerConfig,o=V.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},$=(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:L}):_xeUtils.default.get(e,o):r)||getI18n(t)},H=(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()},G=e=>{var t=j.proxyConfig,o=T.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,B.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,r)})},Q=t=>{var e=S.value,o=j.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(T.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("sort-change",t,t.$event)},W=t=>{var e=S.value,o=j.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(T.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("filter-change",t,t.$event)},Y=t=>{var e=j.proxyConfig,o=q.value;e&&(0,_utils.isEnableConf)(o)&&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)},J=e=>{var t=j.proxyConfig;let o=e.$event;var r=q.value,a=S.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),B.dispatchEvent("form-reset",e,o)},X=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},ee=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},te=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(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=()=>{var{formConfig:e,proxyConfig:o}=j,r=T.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||s.form){let e=[];if(s.form)e=s.form({$grid:L});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:L,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:d},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:Y,onReset:J,onSubmitInvalid:X,onCollapse:ee}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},re=()=>{var t,o,r=j.toolbarConfig,a=F.value;if(r&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:L}):(r={},(o=a.slots)&&(t=h(o,"buttons"),o=h(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:i},a),r))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},ae=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:L})):(0,_vue.createCommentVNode)(),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},le=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},ne=()=>{var e=j.proxyConfig,t=P.value,o=q.value,r=Object.assign({},de),a=s.empty,i=s.loading,l=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Q),o.filter)&&(r.onFilterChange=W),{});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:S},t),r),e)])},se=()=>s.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:L})):(0,_vue.createCommentVNode)(),ue=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=j,i=q.value,l=V.value;if(a&&(0,_utils.isEnableConf)(l)||s.pager){let e=[];return s.pager?e=s.pager({$grid:L}):(a={},(o=l.slots)&&(t=h(o,"left"),o=h(o,"right"),t&&(a.left=t),o)&&(a.right=o),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign(Object.assign({ref:g},l),r&&(0,_utils.isEnableConf)(i)?T.tablePage:{}),{onPageChange:G}),a))),(0,_vue.h)("div",{ref:p,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(re());break;case"Top":t.push(ae());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),ne(),le()]));break;case"Bottom":t.push(se());break;case"Pager":t.push(ue());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},de={},ge=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);de[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=j,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(()=>B.commitProxy("_init")).then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ce=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let B={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:L},t))},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=j,n=T.tablePage,v=M.value,m=Z.value;var o=q.value;let s=V.value;var r=F.value;let{beforeQuery:u,afterQuery:f,beforeDelete:p,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=S.value;var R=z();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,P=M.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return H(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,k="_init"===w,P="reload"===w;let t=[],o=[],e={};if(l&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){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&&(P?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let a={code:w,button:E,isInited:k,isReload:P,$grid:L,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:L}):_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:L}):_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:L}):_xeUtils.default.get(e,r):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),f&&f(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:L,code:w,button:E,body:U,form:R,options:r};if(e.length)return H(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((p||r)(o,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):B.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));v&&_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:L,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(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):B.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(v&&_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:L,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?B.revert():B.maximize()},isMaximized(){return T.isZMax},maximize(){return te(!0)},revert(){return te()},getFormData:z,getFormItems(e){var t=x.value,o=j.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=S.value;return j.proxyConfig?(e=T.sortData,{data:t?t.getFullData():[],filter:T.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y=("development"===process.env.NODE_ENV&&(B.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},B.reloadColumn=e=>(D.clearAll(),B.loadColumn(e))),{extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=T.isZMax,t=u.value,o=c.value,r=v.value,a=m.value,i=f.value,l=p.value;return(e?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(l)},getParentHeight(){var e=u.value;return e?(T.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-y.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){let o=e.code;return B.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&B.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),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){B.zoom(),B.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}}),R=(Object.assign(L,D,B,y),(0,_vue.ref)(0));(0,_vue.watch)(()=>j.columns?j.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>j.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>L.loadColumn(j.columns||[]))}),(0,_vue.watch)(()=>j.toolbarConfig,()=>{b()}),(0,_vue.watch)(N,()=>{_()}),(0,_vue.watch)(()=>j.proxyConfig,()=>{ge()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(L))&&_xeUtils.default.isObject(e)&&Object.assign(L,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=j.columns;j.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),j.pagerConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&L.loadColumn(e),b(),ge()}),globalEvents.on(L,"keydown",ce)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(L,"keydown")});return L.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!j.animat,"is--round":j.round,"is--maximize":T.isZMax,"is--loading":j.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=s.asideLeft||s["aside-left"],a=s.asideRight||s["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(L),(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(L)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",L),L},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../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","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","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","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","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,_vue.defineComponent)({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:s,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),n=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=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}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),d=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=S.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=S.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:o,tZindex:r}=j,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}),k=(0,_vue.computed)(()=>{let t={},o=T;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),P=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=T,{isZMax:i,tableLoading:l,tablePage:n}=j,s=k.value,u=q.value,d=V.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=T.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 N=(0,_vue.computed)(()=>{var e=V.value;return""+e.currentPage+e.pageSize});let K={refElem:u,refTable:S,refForm:d,refToolbar:i,refPager:g},A={computeProxyOpts:q,computePagerOpts:V,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:a},L={xID:E,props:T,context:e,reactData:j,getRefMaps:()=>K,getComputeMaps:()=>A},b=()=>{var e=F.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=i.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=()=>{var e=j.tablePage,t=T.pagerConfig,o=V.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},$=(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:L}):_xeUtils.default.get(e,o):r)||getI18n(t)},H=(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()},G=e=>{var t=T.proxyConfig,o=j.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,B.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,r)})},Q=t=>{var e=S.value,o=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(j.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("sort-change",t,t.$event)},W=t=>{var e=S.value,o=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(j.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("filter-change",t,t.$event)},Y=t=>{var e=T.proxyConfig,o=q.value;e&&(0,_utils.isEnableConf)(o)&&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)},J=e=>{var t=T.proxyConfig;let o=e.$event;var r=q.value,a=S.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),B.dispatchEvent("form-reset",e,o)},X=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},ee=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},te=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(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),j.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=()=>{var{formConfig:e,proxyConfig:o}=T,r=j.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||s.form){let e=[];if(s.form)e=s.form({$grid:L});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:L,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:d},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:Y,onReset:J,onSubmitInvalid:X,onCollapse:ee}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},re=()=>{var t,o,r=T.toolbarConfig,a=F.value;if(r&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:L}):(r={},(o=a.slots)&&(t=h(o,"buttons"),o=h(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:i},a),r))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},ae=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:L})):(0,_vue.createCommentVNode)(),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},le=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},ne=()=>{var e=T.proxyConfig,t=P.value,o=q.value,r=Object.assign({},de),a=s.empty,i=s.loading,l=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Q),o.filter)&&(r.onFilterChange=W),{});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:S},t),r),e)])},se=()=>s.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:L})):(0,_vue.createCommentVNode)(),ue=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=T,i=q.value,l=V.value;if(a&&(0,_utils.isEnableConf)(l)||s.pager){let e=[];return s.pager?e=s.pager({$grid:L}):(a={},(o=l.slots)&&(t=h(o,"left"),o=h(o,"right"),t&&(a.left=t),o)&&(a.right=o),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign(Object.assign({ref:g},l),r&&(0,_utils.isEnableConf)(i)?j.tablePage:{}),{onPageChange:G}),a))),(0,_vue.h)("div",{ref:p,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(re());break;case"Top":t.push(ae());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),ne(),le()]));break;case"Bottom":t.push(se());break;case"Pager":t.push(ue());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},de={},ge=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);de[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=T,o=j.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}}),j.formData=a}o||!(j.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>B.commitProxy("_init")).then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ce=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let B={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:L},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=T,n=j.tablePage,v=M.value,m=Z.value;var o=q.value;let s=V.value;var r=F.value;let{beforeQuery:u,afterQuery:f,beforeDelete:p,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=S.value;var R=z();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,P=M.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return H(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,k="_init"===w,P="reload"===w;let t=[],o=[],e={};if(l&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){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&&(P?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let a={code:w,button:E,isInited:k,isReload:P,$grid:L,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return j.sortData=t,j.filterData=o,j.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var o,r;return j.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(s)?(r=C.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$grid:L}):_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:L}):_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:L}):_xeUtils.default.get(e,r):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),f&&f(a,...d),i&&i(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(j.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:L,code:w,button:E,body:U,form:R,options:r};if(e.length)return H(w,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((p||r)(o,...d)).then(e=>(j.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):B.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));v&&_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:L,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?(j.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(j.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):B.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(v&&_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:L,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?B.revert():B.maximize()},isMaximized(){return j.isZMax},maximize(){return te(!0)},revert(){return te()},getFormData:z,getFormItems(e){var t=x.value,o=T.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=S.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}},y=("development"===process.env.NODE_ENV&&(B.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},B.reloadColumn=e=>(D.clearAll(),B.loadColumn(e))),{extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=j.isZMax,t=u.value,o=c.value,r=v.value,a=m.value,i=f.value,l=p.value;return(e?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(l)},getParentHeight(){var e=u.value;return e?(j.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-y.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){let o=e.code;return B.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&B.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),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.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)}}),R=(Object.assign(L,D,B,y),(0,_vue.ref)(0));(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>T.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>L.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{b()}),(0,_vue.watch)(N,()=>{_()}),(0,_vue.watch)(()=>T.proxyConfig,()=>{ge()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(L))&&_xeUtils.default.isObject(e)&&Object.assign(L,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns;T.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&L.loadColumn(e),b(),ge()}),globalEvents.on(L,"keydown",ce)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(L,"keydown")});return L.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:u,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:o}=U.value,r=s.asideLeft||s["aside-left"],a=s.asideRight||s["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(L),(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(L)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",L),L},render(){return this.renderVN()}});
|