vxe-table 4.1.6 → 4.1.9
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/button/src/button.js +14 -14
- package/es/edit/src/hook.js +3 -3
- package/es/export/src/hook.js +17 -6
- package/es/filter/src/hook.js +20 -1
- package/es/grid/src/grid.js +6 -2
- package/es/table/src/body.js +11 -14
- package/es/table/src/cell.js +16 -14
- package/es/table/src/props.js +6 -6
- package/es/table/src/table.js +102 -89
- package/es/table/src/util.js +3 -0
- package/es/tools/dom.js +2 -8
- package/es/v-x-e-table/src/conf.js +3 -0
- package/lib/button/src/button.js +15 -14
- package/lib/button/src/button.min.js +1 -1
- package/lib/edit/src/hook.js +3 -0
- package/lib/edit/src/hook.min.js +1 -1
- package/lib/export/src/hook.js +25 -10
- package/lib/export/src/hook.min.js +1 -1
- package/lib/filter/src/hook.js +23 -0
- package/lib/filter/src/hook.min.js +1 -1
- package/lib/grid/src/grid.js +6 -3
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +307 -208
- package/lib/index.umd.min.js +1 -1
- package/lib/table/src/body.js +8 -16
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +16 -16
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/props.js +6 -6
- package/lib/table/src/table.js +158 -114
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +7 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/tools/dom.js +2 -9
- package/lib/tools/dom.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +3 -0
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +1 -1
- package/packages/button/src/button.ts +14 -14
- package/packages/edit/src/hook.ts +3 -3
- package/packages/export/src/hook.ts +17 -6
- package/packages/filter/src/hook.ts +20 -1
- package/packages/grid/src/grid.ts +6 -2
- package/packages/table/src/body.ts +11 -14
- package/packages/table/src/cell.ts +16 -14
- package/packages/table/src/props.ts +6 -6
- package/packages/table/src/table.ts +102 -89
- package/packages/table/src/util.ts +4 -0
- package/packages/tools/dom.ts +2 -7
- package/packages/v-x-e-table/src/conf.ts +3 -0
- package/types/filter.d.ts +5 -0
- package/types/plugins/pro.d.ts +5 -0
- package/types/table.d.ts +12 -2
package/es/table/src/table.js
CHANGED
|
@@ -27,7 +27,7 @@ import Cell from './cell';
|
|
|
27
27
|
import TableBodyComponent from './body';
|
|
28
28
|
import tableProps from './props';
|
|
29
29
|
import tableEmits from './emits';
|
|
30
|
-
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, restoreScrollLocation, restoreScrollListener } from './util';
|
|
30
|
+
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, restoreScrollListener } from './util';
|
|
31
31
|
var isWebkit = browse['-webkit'] && !browse.edge;
|
|
32
32
|
var resizableStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_WIDTH';
|
|
33
33
|
var visibleStorageKey = 'VXE_TABLE_CUSTOM_COLUMN_VISIBLE';
|
|
@@ -276,8 +276,9 @@ export default defineComponent({
|
|
|
276
276
|
tableFullColumn: [],
|
|
277
277
|
// 渲染所有列
|
|
278
278
|
visibleColumn: [],
|
|
279
|
-
//
|
|
279
|
+
// 总的缓存数据集
|
|
280
280
|
fullAllDataRowIdData: {},
|
|
281
|
+
// 渲染中缓存数据
|
|
281
282
|
fullDataRowIdData: {},
|
|
282
283
|
fullColumnIdData: {},
|
|
283
284
|
fullColumnFieldData: {},
|
|
@@ -1081,18 +1082,52 @@ export default defineComponent({
|
|
|
1081
1082
|
return cellValue;
|
|
1082
1083
|
};
|
|
1083
1084
|
};
|
|
1085
|
+
/**
|
|
1086
|
+
* 预编译
|
|
1087
|
+
* 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
|
|
1088
|
+
*/
|
|
1084
1089
|
var updateAfterDataIndex = function () {
|
|
1085
|
-
var
|
|
1086
|
-
afterFullData.
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1090
|
+
var treeConfig = props.treeConfig;
|
|
1091
|
+
var afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
|
|
1092
|
+
var treeFullData = internalData.treeFullData;
|
|
1093
|
+
var treeOpts = computeTreeOpts.value;
|
|
1094
|
+
if (treeConfig) {
|
|
1095
|
+
XEUtils.eachTree(treeFullData, function (row, index, items, path) {
|
|
1096
|
+
var rowid = getRowid($xetable, row);
|
|
1097
|
+
var allrest = fullAllDataRowIdData[rowid];
|
|
1098
|
+
var fullrest = fullDataRowIdData[rowid];
|
|
1099
|
+
var seq = path.map(function (num, i) { return i % 2 === 0 ? (Number(num) + 1) : '.'; }).join('');
|
|
1100
|
+
if (allrest) {
|
|
1101
|
+
allrest.seq = seq;
|
|
1102
|
+
}
|
|
1103
|
+
if (fullrest) {
|
|
1104
|
+
fullrest.seq = seq;
|
|
1105
|
+
}
|
|
1106
|
+
else {
|
|
1107
|
+
fullAllDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
|
|
1108
|
+
fullDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
|
|
1109
|
+
}
|
|
1110
|
+
}, treeOpts);
|
|
1111
|
+
}
|
|
1112
|
+
else {
|
|
1113
|
+
afterFullData.forEach(function (row, index) {
|
|
1114
|
+
var rowid = getRowid($xetable, row);
|
|
1115
|
+
var allrest = fullAllDataRowIdData[rowid];
|
|
1116
|
+
var fullrest = fullDataRowIdData[rowid];
|
|
1117
|
+
var seq = index + 1;
|
|
1118
|
+
if (allrest) {
|
|
1119
|
+
allrest.seq = seq;
|
|
1120
|
+
}
|
|
1121
|
+
if (fullrest) {
|
|
1122
|
+
fullrest.seq = seq;
|
|
1123
|
+
fullrest._index = index;
|
|
1124
|
+
}
|
|
1125
|
+
else {
|
|
1126
|
+
fullAllDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
|
|
1127
|
+
fullDataRowIdData[rowid] = { row: row, rowid: rowid, seq: seq, index: -1, $index: -1, _index: index, items: [], parent: null, level: 0 };
|
|
1128
|
+
}
|
|
1129
|
+
});
|
|
1130
|
+
}
|
|
1096
1131
|
};
|
|
1097
1132
|
/**
|
|
1098
1133
|
* 获取处理后全量的表格数据
|
|
@@ -2016,11 +2051,11 @@ export default defineComponent({
|
|
|
2016
2051
|
tableMethods.clearMergeFooterItems();
|
|
2017
2052
|
}
|
|
2018
2053
|
reactData.scrollXLoad = scrollXLoad;
|
|
2019
|
-
visibleColumn.forEach(function (column,
|
|
2054
|
+
visibleColumn.forEach(function (column, index) {
|
|
2020
2055
|
var colid = column.id;
|
|
2021
2056
|
var rest = fullColumnIdData[colid];
|
|
2022
2057
|
if (rest) {
|
|
2023
|
-
rest._index =
|
|
2058
|
+
rest._index = index;
|
|
2024
2059
|
}
|
|
2025
2060
|
});
|
|
2026
2061
|
internalData.visibleColumn = visibleColumn;
|
|
@@ -2173,6 +2208,31 @@ export default defineComponent({
|
|
|
2173
2208
|
}
|
|
2174
2209
|
}
|
|
2175
2210
|
};
|
|
2211
|
+
var createGetRowCacheProp = function (prop) {
|
|
2212
|
+
return function (row) {
|
|
2213
|
+
var fullDataRowIdData = internalData.fullDataRowIdData;
|
|
2214
|
+
if (row) {
|
|
2215
|
+
var rowid = getRowid($xetable, row);
|
|
2216
|
+
var rest = fullDataRowIdData[rowid];
|
|
2217
|
+
if (rest) {
|
|
2218
|
+
return rest[prop];
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
return -1;
|
|
2222
|
+
};
|
|
2223
|
+
};
|
|
2224
|
+
var createGetColumnCacheProp = function (prop) {
|
|
2225
|
+
return function (column) {
|
|
2226
|
+
var fullColumnIdData = internalData.fullColumnIdData;
|
|
2227
|
+
if (column) {
|
|
2228
|
+
var rest = fullColumnIdData[column.id];
|
|
2229
|
+
if (rest) {
|
|
2230
|
+
return rest[prop];
|
|
2231
|
+
}
|
|
2232
|
+
}
|
|
2233
|
+
return -1;
|
|
2234
|
+
};
|
|
2235
|
+
};
|
|
2176
2236
|
var debounceScrollY = XEUtils.debounce(function (evnt) {
|
|
2177
2237
|
loadScrollYData(evnt);
|
|
2178
2238
|
}, 20, { leading: false, trailing: true });
|
|
@@ -2298,7 +2358,7 @@ export default defineComponent({
|
|
|
2298
2358
|
}
|
|
2299
2359
|
XEUtils.eachTree(rows, function (childRow, index, items, path, parent, nodes) {
|
|
2300
2360
|
var rowid = getRowid($xetable, childRow);
|
|
2301
|
-
var rest = { row: childRow, rowid: rowid, index: -1, _index: -1, $index: -1, items: items, parent: parent, level: parentLevel + nodes.length };
|
|
2361
|
+
var rest = { row: childRow, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: items, parent: parent, level: parentLevel + nodes.length };
|
|
2302
2362
|
fullDataRowIdData[rowid] = rest;
|
|
2303
2363
|
fullAllDataRowIdData[rowid] = rest;
|
|
2304
2364
|
}, treeOpts);
|
|
@@ -2359,93 +2419,41 @@ export default defineComponent({
|
|
|
2359
2419
|
}
|
|
2360
2420
|
return null;
|
|
2361
2421
|
},
|
|
2422
|
+
/**
|
|
2423
|
+
* 根据 row 获取序号
|
|
2424
|
+
* @param {Row} row 行对象
|
|
2425
|
+
*/
|
|
2426
|
+
getRowSeq: createGetRowCacheProp('seq'),
|
|
2362
2427
|
/**
|
|
2363
2428
|
* 根据 row 获取相对于 data 中的索引
|
|
2364
2429
|
* @param {Row} row 行对象
|
|
2365
2430
|
*/
|
|
2366
|
-
getRowIndex:
|
|
2367
|
-
var fullDataRowIdData = internalData.fullDataRowIdData;
|
|
2368
|
-
if (row) {
|
|
2369
|
-
var rowid = getRowid($xetable, row);
|
|
2370
|
-
var rest = fullDataRowIdData[rowid];
|
|
2371
|
-
if (rest) {
|
|
2372
|
-
return rest.index;
|
|
2373
|
-
}
|
|
2374
|
-
}
|
|
2375
|
-
return -1;
|
|
2376
|
-
},
|
|
2431
|
+
getRowIndex: createGetRowCacheProp('index'),
|
|
2377
2432
|
/**
|
|
2378
2433
|
* 根据 row 获取相对于当前数据中的索引
|
|
2379
2434
|
* @param {Row} row 行对象
|
|
2380
2435
|
*/
|
|
2381
|
-
getVTRowIndex:
|
|
2382
|
-
var fullDataRowIdData = internalData.fullDataRowIdData;
|
|
2383
|
-
if (row) {
|
|
2384
|
-
var rowid = getRowid($xetable, row);
|
|
2385
|
-
var rest = fullDataRowIdData[rowid];
|
|
2386
|
-
if (rest) {
|
|
2387
|
-
return rest._index;
|
|
2388
|
-
}
|
|
2389
|
-
}
|
|
2390
|
-
return -1;
|
|
2391
|
-
},
|
|
2436
|
+
getVTRowIndex: createGetRowCacheProp('_index'),
|
|
2392
2437
|
/**
|
|
2393
2438
|
* 根据 row 获取渲染中的虚拟索引
|
|
2394
2439
|
* @param {Row} row 行对象
|
|
2395
2440
|
*/
|
|
2396
|
-
getVMRowIndex:
|
|
2397
|
-
var fullDataRowIdData = internalData.fullDataRowIdData;
|
|
2398
|
-
if (row) {
|
|
2399
|
-
var rowid = getRowid($xetable, row);
|
|
2400
|
-
var rest = fullDataRowIdData[rowid];
|
|
2401
|
-
if (rest) {
|
|
2402
|
-
return rest.$index;
|
|
2403
|
-
}
|
|
2404
|
-
}
|
|
2405
|
-
return -1;
|
|
2406
|
-
},
|
|
2441
|
+
getVMRowIndex: createGetRowCacheProp('$index'),
|
|
2407
2442
|
/**
|
|
2408
2443
|
* 根据 column 获取相对于 columns 中的索引
|
|
2409
2444
|
* @param {ColumnInfo} column 列配置
|
|
2410
2445
|
*/
|
|
2411
|
-
getColumnIndex:
|
|
2412
|
-
var fullColumnIdData = internalData.fullColumnIdData;
|
|
2413
|
-
if (column) {
|
|
2414
|
-
var rest = fullColumnIdData[column.id];
|
|
2415
|
-
if (rest) {
|
|
2416
|
-
return rest.index;
|
|
2417
|
-
}
|
|
2418
|
-
}
|
|
2419
|
-
return -1;
|
|
2420
|
-
},
|
|
2446
|
+
getColumnIndex: createGetColumnCacheProp('index'),
|
|
2421
2447
|
/**
|
|
2422
2448
|
* 根据 column 获取相对于当前表格列中的索引
|
|
2423
2449
|
* @param {ColumnInfo} column 列配置
|
|
2424
2450
|
*/
|
|
2425
|
-
getVTColumnIndex:
|
|
2426
|
-
var fullColumnIdData = internalData.fullColumnIdData;
|
|
2427
|
-
if (column) {
|
|
2428
|
-
var rest = fullColumnIdData[column.id];
|
|
2429
|
-
if (rest) {
|
|
2430
|
-
return rest._index;
|
|
2431
|
-
}
|
|
2432
|
-
}
|
|
2433
|
-
return -1;
|
|
2434
|
-
},
|
|
2451
|
+
getVTColumnIndex: createGetColumnCacheProp('_index'),
|
|
2435
2452
|
/**
|
|
2436
2453
|
* 根据 column 获取渲染中的虚拟索引
|
|
2437
2454
|
* @param {ColumnInfo} column 列配置
|
|
2438
2455
|
*/
|
|
2439
|
-
getVMColumnIndex:
|
|
2440
|
-
var fullColumnIdData = internalData.fullColumnIdData;
|
|
2441
|
-
if (column) {
|
|
2442
|
-
var rest = fullColumnIdData[column.id];
|
|
2443
|
-
if (rest) {
|
|
2444
|
-
return rest.$index;
|
|
2445
|
-
}
|
|
2446
|
-
}
|
|
2447
|
-
return -1;
|
|
2448
|
-
},
|
|
2456
|
+
getVMColumnIndex: createGetColumnCacheProp('$index'),
|
|
2449
2457
|
/**
|
|
2450
2458
|
* 创建 data 对象
|
|
2451
2459
|
* 对于某些特殊场景可能会用到,会自动对数据的字段名进行检测,如果不存在就自动定义
|
|
@@ -3203,7 +3211,7 @@ export default defineComponent({
|
|
|
3203
3211
|
}
|
|
3204
3212
|
}
|
|
3205
3213
|
else {
|
|
3206
|
-
if (
|
|
3214
|
+
if ($xetable.findRowIndexOf(afterFullData, selectRow) > -1) {
|
|
3207
3215
|
return selectRow;
|
|
3208
3216
|
}
|
|
3209
3217
|
}
|
|
@@ -3972,6 +3980,7 @@ export default defineComponent({
|
|
|
3972
3980
|
var mouseConfig = props.mouseConfig, keyboardConfig = props.keyboardConfig;
|
|
3973
3981
|
var filterStore = reactData.filterStore, ctxMenuStore = reactData.ctxMenuStore, editStore = reactData.editStore;
|
|
3974
3982
|
var mouseOpts = computeMouseOpts.value;
|
|
3983
|
+
var keyboardOpts = computeKeyboardOpts.value;
|
|
3975
3984
|
var actived = editStore.actived;
|
|
3976
3985
|
var isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE);
|
|
3977
3986
|
if (isEsc) {
|
|
@@ -3986,13 +3995,15 @@ export default defineComponent({
|
|
|
3986
3995
|
$xetable.closeMenu();
|
|
3987
3996
|
}
|
|
3988
3997
|
tableMethods.closeFilter();
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3998
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
3999
|
+
// 如果是激活编辑状态,则取消编辑
|
|
4000
|
+
if (actived.row) {
|
|
4001
|
+
var params_1 = actived.args;
|
|
4002
|
+
$xetable.clearActived(evnt);
|
|
4003
|
+
// 如果配置了选中功能,则为选中状态
|
|
4004
|
+
if (mouseOpts.selected) {
|
|
4005
|
+
nextTick(function () { return $xetable.handleSelected(params_1, evnt); });
|
|
4006
|
+
}
|
|
3996
4007
|
}
|
|
3997
4008
|
}
|
|
3998
4009
|
}
|
|
@@ -4058,7 +4069,7 @@ export default defineComponent({
|
|
|
4058
4069
|
$xetable.closeMenu();
|
|
4059
4070
|
}
|
|
4060
4071
|
tableMethods.closeFilter();
|
|
4061
|
-
if (
|
|
4072
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
4062
4073
|
// 如果是激活编辑状态,则取消编辑
|
|
4063
4074
|
if (actived.row) {
|
|
4064
4075
|
var params_2 = actived.args;
|
|
@@ -4460,6 +4471,8 @@ export default defineComponent({
|
|
|
4460
4471
|
var isLazy = treeConfig && treeOpts.lazy;
|
|
4461
4472
|
var handleCache = function (row, index, items, path, parent, nodes) {
|
|
4462
4473
|
var rowid = getRowid($xetable, row);
|
|
4474
|
+
var seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
|
|
4475
|
+
var level = nodes ? nodes.length - 1 : 0;
|
|
4463
4476
|
if (eqEmptyValue(rowid)) {
|
|
4464
4477
|
rowid = getRowUniqueId();
|
|
4465
4478
|
XEUtils.set(row, rowkey, rowid);
|
|
@@ -4467,7 +4480,7 @@ export default defineComponent({
|
|
|
4467
4480
|
if (isLazy && row[treeOpts.hasChild] && XEUtils.isUndefined(row[treeOpts.children])) {
|
|
4468
4481
|
row[treeOpts.children] = null;
|
|
4469
4482
|
}
|
|
4470
|
-
var rest = { row: row, rowid: rowid, index: treeConfig && parent ? -1 : index, _index: -1, $index: -1, items: items, parent: parent, level:
|
|
4483
|
+
var rest = { row: row, rowid: rowid, seq: seq, index: treeConfig && parent ? -1 : index, _index: -1, $index: -1, items: items, parent: parent, level: level };
|
|
4471
4484
|
if (isSource) {
|
|
4472
4485
|
fullDataRowIdData[rowid] = rest;
|
|
4473
4486
|
}
|
package/es/table/src/util.js
CHANGED
|
@@ -77,6 +77,9 @@ export function toFilters(filters) {
|
|
|
77
77
|
}
|
|
78
78
|
return filters;
|
|
79
79
|
}
|
|
80
|
+
export function toTreePathSeq(path) {
|
|
81
|
+
return path.map(function (num, i) { return i % 2 === 0 ? (Number(num) + 1) : '.'; }).join('');
|
|
82
|
+
}
|
|
80
83
|
export function getCellValue(row, column) {
|
|
81
84
|
return XEUtils.get(row, column.property);
|
|
82
85
|
}
|
package/es/tools/dom.js
CHANGED
|
@@ -123,13 +123,7 @@ export function scrollToView(elem) {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
export function triggerEvent(targetElem, type) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
evnt = new Event(type);
|
|
126
|
+
if (targetElem) {
|
|
127
|
+
targetElem.dispatchEvent(new Event(type));
|
|
129
128
|
}
|
|
130
|
-
else {
|
|
131
|
-
evnt = document.createEvent('Event');
|
|
132
|
-
evnt.initEvent(type, true, true);
|
|
133
|
-
}
|
|
134
|
-
targetElem.dispatchEvent(evnt);
|
|
135
129
|
}
|
package/lib/button/src/button.js
CHANGED
|
@@ -175,48 +175,49 @@ var _default2 = (0, _vue.defineComponent)({
|
|
|
175
175
|
};
|
|
176
176
|
|
|
177
177
|
var _a = (0, _dom.getAbsolutePos)(targetElem),
|
|
178
|
+
top_1 = _a.top,
|
|
179
|
+
left = _a.left,
|
|
178
180
|
boundingTop = _a.boundingTop,
|
|
179
|
-
boundingLeft = _a.boundingLeft,
|
|
180
181
|
visibleHeight = _a.visibleHeight,
|
|
181
182
|
visibleWidth = _a.visibleWidth;
|
|
182
183
|
|
|
183
184
|
var panelPlacement = 'bottom';
|
|
184
185
|
|
|
185
186
|
if (transfer) {
|
|
186
|
-
var
|
|
187
|
-
var
|
|
187
|
+
var btnLeft = left + targetWidth - panelWidth;
|
|
188
|
+
var btnTop = top_1 + targetHeight;
|
|
188
189
|
|
|
189
190
|
if (placement === 'top') {
|
|
190
191
|
panelPlacement = 'top';
|
|
191
|
-
|
|
192
|
+
btnTop = top_1 - panelHeight;
|
|
192
193
|
} else if (!placement) {
|
|
193
194
|
// 如果下面不够放,则向上
|
|
194
|
-
if (
|
|
195
|
+
if (boundingTop + targetHeight + panelHeight + marginSize > visibleHeight) {
|
|
195
196
|
panelPlacement = 'top';
|
|
196
|
-
|
|
197
|
+
btnTop = top_1 - panelHeight;
|
|
197
198
|
} // 如果上面不够放,则向下(优先)
|
|
198
199
|
|
|
199
200
|
|
|
200
|
-
if (
|
|
201
|
+
if (btnTop < marginSize) {
|
|
201
202
|
panelPlacement = 'bottom';
|
|
202
|
-
|
|
203
|
+
btnTop = top_1 + targetHeight;
|
|
203
204
|
}
|
|
204
205
|
} // 如果溢出右边
|
|
205
206
|
|
|
206
207
|
|
|
207
|
-
if (
|
|
208
|
-
|
|
208
|
+
if (btnLeft + panelWidth + marginSize > visibleWidth) {
|
|
209
|
+
btnLeft -= btnLeft + panelWidth + marginSize - visibleWidth;
|
|
209
210
|
} // 如果溢出左边
|
|
210
211
|
|
|
211
212
|
|
|
212
|
-
if (
|
|
213
|
-
|
|
213
|
+
if (btnLeft < marginSize) {
|
|
214
|
+
btnLeft = marginSize;
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
Object.assign(panelStyle, {
|
|
217
|
-
left:
|
|
218
|
+
left: btnLeft + "px",
|
|
218
219
|
right: 'auto',
|
|
219
|
-
top:
|
|
220
|
+
top: btnTop + "px",
|
|
220
221
|
minWidth: targetWidth + "px"
|
|
221
222
|
});
|
|
222
223
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2=(0,_vue.defineComponent)({name:"VxeButton",props:{type:String,className:String,size:{type:String,default:function(){return _conf.default.button.size||_conf.default.size}},name:[String,Number],content:String,placement:String,status:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,destroyOnClose:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.button.transfer}}},emits:["click","dropdown-click"],setup:function(m,e){function _(e){u.dispatchEvent("click",{$event:e},e)}function b(e){0===e.button&&e.stopPropagation()}function h(e){var t=e.currentTarget,n=z.value,t=(o=(0,_dom.getEventTargetNode)(e,t,"vxe-button")).flag,o=o.targetElem;t&&(n&&(n.dataset.active="N"),P.showPanel=!1,setTimeout(function(){n&&"Y"===n.dataset.active||(P.animatVisible=!1)},350),u.dispatchEvent("dropdown-click",{name:o.getAttribute("name"),$event:e},e))}function x(){var e=z.value;e&&(e.dataset.active="Y",P.inited||(P.inited=!0),n.showTime=setTimeout(function(){"Y"===e.dataset.active?q():P.animatVisible=!1},250))}function g(){r()}function w(){var e=m.content,t=m.icon,n=[];return m.loading?n.push((0,_vue.h)("i",{class:["vxe-button--loading-icon",_conf.default.icon.BUTTON_LOADING]})):t&&n.push((0,_vue.h)("i",{class:["vxe-button--icon",t]})),T.default?n.push((0,_vue.h)("span",{class:"vxe-button--content"},T.default({}))):e&&n.push((0,_vue.h)("span",{class:"vxe-button--content"},(0,_utils.getFuncText)(e))),n}var T=e.slots,o=e.emit,t=_xeUtils.default.uniqueId(),y=(0,_size.useSize)(m),P=(0,_vue.reactive)({inited:!1,showPanel:!1,animatVisible:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),n={showTime:null},N=(0,_vue.ref)(),k=(0,_vue.ref)(),z=(0,_vue.ref)(),i={refElem:N},a={xID:t,props:m,context:e,reactData:P,internalData:n,getRefMaps:function(){return i}},u={},O=(0,_vue.computed)(function(){var e=m.type;return!!e&&-1<["submit","reset","button"].indexOf(e)}),S=(0,_vue.computed)(function(){var e=m.type;return e&&"text"===e?e:"button"}),s=function(){P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},l=function(){return(0,_vue.nextTick)().then(function(){var e=m.transfer,t=m.placement,n=P.panelIndex,o=k.value,i=z.value;if(i&&o){var a=o.offsetHeight,u=o.offsetWidth,s=i.offsetHeight,l=i.offsetWidth,r={zIndex:n},c=(0,_dom.getAbsolutePos)(o),d=c.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2=(0,_vue.defineComponent)({name:"VxeButton",props:{type:String,className:String,size:{type:String,default:function(){return _conf.default.button.size||_conf.default.size}},name:[String,Number],content:String,placement:String,status:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,destroyOnClose:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.button.transfer}}},emits:["click","dropdown-click"],setup:function(m,e){function _(e){u.dispatchEvent("click",{$event:e},e)}function b(e){0===e.button&&e.stopPropagation()}function h(e){var t=e.currentTarget,n=z.value,t=(o=(0,_dom.getEventTargetNode)(e,t,"vxe-button")).flag,o=o.targetElem;t&&(n&&(n.dataset.active="N"),P.showPanel=!1,setTimeout(function(){n&&"Y"===n.dataset.active||(P.animatVisible=!1)},350),u.dispatchEvent("dropdown-click",{name:o.getAttribute("name"),$event:e},e))}function x(){var e=z.value;e&&(e.dataset.active="Y",P.inited||(P.inited=!0),n.showTime=setTimeout(function(){"Y"===e.dataset.active?q():P.animatVisible=!1},250))}function g(){r()}function w(){var e=m.content,t=m.icon,n=[];return m.loading?n.push((0,_vue.h)("i",{class:["vxe-button--loading-icon",_conf.default.icon.BUTTON_LOADING]})):t&&n.push((0,_vue.h)("i",{class:["vxe-button--icon",t]})),T.default?n.push((0,_vue.h)("span",{class:"vxe-button--content"},T.default({}))):e&&n.push((0,_vue.h)("span",{class:"vxe-button--content"},(0,_utils.getFuncText)(e))),n}var T=e.slots,o=e.emit,t=_xeUtils.default.uniqueId(),y=(0,_size.useSize)(m),P=(0,_vue.reactive)({inited:!1,showPanel:!1,animatVisible:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),n={showTime:null},N=(0,_vue.ref)(),k=(0,_vue.ref)(),z=(0,_vue.ref)(),i={refElem:N},a={xID:t,props:m,context:e,reactData:P,internalData:n,getRefMaps:function(){return i}},u={},O=(0,_vue.computed)(function(){var e=m.type;return!!e&&-1<["submit","reset","button"].indexOf(e)}),S=(0,_vue.computed)(function(){var e=m.type;return e&&"text"===e?e:"button"}),s=function(){P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},l=function(){return(0,_vue.nextTick)().then(function(){var e=m.transfer,t=m.placement,n=P.panelIndex,o=k.value,i=z.value;if(i&&o){var a=o.offsetHeight,u=o.offsetWidth,s=i.offsetHeight,l=i.offsetWidth,r={zIndex:n},c=(0,_dom.getAbsolutePos)(o),d=c.top,v=c.left,i=c.boundingTop,n=c.visibleHeight,o=c.visibleWidth,c="bottom";return e?(e=d+a,"top"===t?(c="top",e=d-s):t||(n<i+a+s+5&&(c="top",e=d-s),e<5&&(c="bottom",e=d+a)),o<(v=v+u-l)+l+5&&(v-=v+l+5-o),v<5&&(v=5),Object.assign(r,{left:v+"px",right:"auto",top:e+"px",minWidth:u+"px"})):"top"===t?(c="top",r.bottom=a+"px"):t||n<i+a+s&&5<i-a-s&&(c="top",r.bottom=a+"px"),P.panelStyle=r,P.panelPlacement=c,(0,_vue.nextTick)()}})},q=function(){var e=z.value;e&&(e.dataset.active="Y",P.animatVisible=!0,setTimeout(function(){"Y"===e.dataset.active&&(P.showPanel=!0,s(),l(),setTimeout(function(){P.showPanel&&l()},50))},20))},r=function(){var e=z.value;clearTimeout(n.showTime),e?(e.dataset.active="N",setTimeout(function(){"Y"!==e.dataset.active&&(P.showPanel=!1,setTimeout(function(){"Y"!==e.dataset.active&&(P.animatVisible=!1)},350))},100)):(P.animatVisible=!1,P.showPanel=!1)},u={dispatchEvent:function(e,t,n){o(e,Object.assign({$button:a,$event:n},t))},focus:function(){return k.value.focus(),(0,_vue.nextTick)()},blur:function(){return k.value.blur(),(0,_vue.nextTick)()}};Object.assign(a,u),(0,_vue.onMounted)(function(){_event.GlobalEvent.on(a,"mousewheel",function(e){var t=z.value;P.showPanel&&!(0,_dom.getEventTargetNode)(e,t).flag&&r()})}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(a,"mousewheel")});return a.renderVN=function(){var e=m.className,t=m.transfer,n=m.type,o=m.round,i=m.circle,a=m.destroyOnClose,u=m.status,s=m.name,l=m.disabled,r=m.loading,c=P.inited,d=P.showPanel,v=O.value,f=S.value,p=y.value;return T.dropdowns?(0,_vue.h)("div",{ref:N,class:["vxe-button--dropdown",e,((e={})["size--"+p]=p,e["is--active"]=d,e)]},[(0,_vue.h)("button",{ref:k,class:["vxe-button","type--"+f,((e={})["size--"+p]=p,e["theme--"+u]=u,e["is--round"]=o,e["is--circle"]=i,e["is--disabled"]=l||r,e["is--loading"]=r,e)],name:s,type:v?n:"button",disabled:l||r,onMouseenter:x,onMouseleave:g,onClick:_},w().concat([(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+_conf.default.icon.BUTTON_DROPDOWN})])),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!c},[(0,_vue.h)("div",{ref:z,class:["vxe-button--dropdown-panel",((t={})["size--"+p]=p,t["animat--leave"]=P.animatVisible,t["animat--enter"]=d,t)],placement:P.panelPlacement,style:P.panelStyle},c?[(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper",onMousedown:b,onClick:h,onMouseenter:q,onMouseleave:g},a&&!d?[]:T.dropdowns({}))]:[])])]):(0,_vue.h)("button",{ref:k,class:["vxe-button","type--"+f,((f={})["size--"+p]=p,f["theme--"+u]=u,f["is--round"]=o,f["is--circle"]=i,f["is--disabled"]=l||r,f["is--loading"]=r,f)],name:s,type:v?n:"button",disabled:l||r,onClick:_},w())},a},render:function(){return this.renderVN()}});exports.default=_default2;
|
package/lib/edit/src/hook.js
CHANGED
|
@@ -141,6 +141,7 @@ var editHook = {
|
|
|
141
141
|
var rest = {
|
|
142
142
|
row: item,
|
|
143
143
|
rowid: rowid,
|
|
144
|
+
seq: -1,
|
|
144
145
|
index: -1,
|
|
145
146
|
_index: -1,
|
|
146
147
|
$index: -1,
|
|
@@ -162,6 +163,7 @@ var editHook = {
|
|
|
162
163
|
var rest = {
|
|
163
164
|
row: item,
|
|
164
165
|
rowid: rowid,
|
|
166
|
+
seq: -1,
|
|
165
167
|
index: -1,
|
|
166
168
|
_index: -1,
|
|
167
169
|
$index: -1,
|
|
@@ -283,6 +285,7 @@ var editHook = {
|
|
|
283
285
|
var rest = {
|
|
284
286
|
row: item,
|
|
285
287
|
rowid: rowid,
|
|
288
|
+
seq: -1,
|
|
286
289
|
index: -1,
|
|
287
290
|
_index: -1,
|
|
288
291
|
$index: -1,
|
package/lib/edit/src/hook.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(R){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var _=R.props,C=R.reactData,I=R.internalData,o=R.getRefMaps().refElem,e=R.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,m=e.computeCheckboxOpts,b=e.computeSYOpts,S=e.computeTreeOpts,h={},w={};function a(){var e=C.editStore,t=C.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function A(e,t){var a=I.treeFullData,i=I.afterFullData,u=I.fullDataRowIdData,c=I.fullAllDataRowIdData,d=S.value,s=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[d.parentField],n=(0,_util.getRowid)(R,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d.rowField]},d):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(R,t)])?r.level:0,r=t[d.children],(r=!_xeUtils.default.isArray(r)?t[d.children]=[]:r)[s](e),{row:e,rowid:n,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[s](e),a[s](e),{row:e,rowid:n,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e}),R.updateVirtualTreeData()}return h={insert:function(e){return h.insertAt(e,null)},insertAt:function(e,t){var r=_.treeConfig,l=C.mergeList,n=C.editStore,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=I.fullDataRowIdData,d=I.fullAllDataRowIdData,s=b.value,f=S.value,v=f.transform,p=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return R.defineField(Object.assign({},e))});if(t)if(-1===t)r&&v?A(p,!0):(i.push.apply(i,p),u.push.apply(u,p),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>i.length&&(e.rowspan=r+p.length)}));else if(r&&v){var w,g,m,h=_xeUtils.default.findTree(a,function(e){return t[f.rowField]===e[f.rowField]},f);h?(w=h.parent,g=h.items,a=d[(0,_util.getRowid)(R,w)],m=a?a.level:0,p.forEach(function(e,t){var r=(0,_util.getRowid)(R,e);"development"===process.env.NODE_ENV&&e[f.parentField]&&w&&e[f.parentField]!==w[f.rowField]&&(0,_utils.errLog)("vxe.error.errProp",[f.parentField+"="+e[f.parentField],f.parentField+"="+w[f.rowField]]),w&&(e[f.parentField]=w[f.rowField]),g.splice(h.index+t,0,e);e={row:e,rowid:r,index:-1,_index:-1,$index:-1,items:g,parent:w,level:m+1};c[r]=e,d[r]=e}),R.updateVirtualTreeData()):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),A(p,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var x=R.findRowIndexOf(i,t);if(-1===x)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));i.splice.apply(i,__spreadArray([x,0],p)),u.splice.apply(u,__spreadArray([R.findRowIndexOf(u,t),0],p)),l.forEach(function(e){var t=e.row,r=e.rowspan;x<t?e.row=t+p.length:x<t+r&&(e.rowspan=r+p.length)})}else r&&v?A(p,!1):(i.unshift.apply(i,p),u.unshift.apply(u,p),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+p.length)}));return(n=n.insertList).unshift.apply(n,p),C.scrollYLoad=!r&&-1<s.gt&&s.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(v),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},remove:function(e){var t=_.treeConfig,r=C.mergeList,l=C.editStore,n=C.selection,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=m.value,d=b.value,s=S.value,f=s.transform,v=l.actived,p=l.removeList,w=l.insertList,c=c.checkField,g=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=u,e.forEach(function(e){R.isInsertByRow(e)||p.push(e)}),c||e.forEach(function(e){e=R.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),u===e?(e=g=u.slice(0),I.tableFullData=[],I.afterFullData=[],R.clearMergeCells()):t&&f?e.forEach(function(e){var t=(0,_util.getRowid)(R,e),r=_xeUtils.default.findTree(a,function(e){return t===(0,_util.getRowid)(R,e)},s);r&&(r=r.items.splice(r.index,1),g.push(r[0]));e=R.findRowIndexOf(i,e);-1<e&&i.splice(e,1),R.updateVirtualTreeData()}):e.forEach(function(e){var t=R.findRowIndexOf(u,e);-1<t&&(t=u.splice(t,1),g.push(t[0]));var l=R.findRowIndexOf(i,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),i.splice(l,1))}),v.row&&-1<R.findRowIndexOf(e,v.row)&&h.clearActived(),e.forEach(function(e){e=R.findRowIndexOf(w,e);-1<e&&w.splice(e,1)}),C.scrollYLoad=!t&&-1<d.gt&&d.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(f),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:g.length?g[g.length-1]:null,rows:g}})},removeCheckboxRow:function(){return h.remove(R.getCheckboxRecords()).then(function(e){return R.clearCheckboxRow(),e})},removeRadioRow:function(){var e=R.getRadioRecord();return h.remove(e||[]).then(function(e){return R.clearRadioRow(),e})},removeCurrentRow:function(){var e=R.getCurrentRecord();return h.remove(e||[]).then(function(e){return R.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:h.getInsertRecords(),removeRecords:h.getRemoveRecords(),updateRecords:h.getUpdateRecords()}},getInsertRecords:function(){var e=_.treeConfig,t=C.editStore,r=I.treeFullData,l=I.tableFullData,n=S.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(R,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(R,e)},n)&&o.push(e)}):t.forEach(function(e){-1<R.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return C.editStore.removeList},getUpdateRecords:function(){var e=_.keepSource,t=_.treeConfig,r=I.tableFullData,l=S.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return R.isUpdateByRow(e)},l):r.filter(function(e){return R.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=C.editStore,t=I.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<R.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=C.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=C.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:r,rowIndex:R.getRowIndex(r),$rowIndex:R.getVMRowIndex(r),column:l,columnIndex:R.getColumnIndex(l),$columnIndex:R.getVMColumnIndex(l)},e||null)),(R.clearValidate?R.clearValidate():(0,_vue.nextTick)()).then(function(){return R.recalculate()})},clearSelected:function(){var e=C.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return C.editStore.actived.row===e},setActiveRow:function(e){var t=I.visibleColumn;return R.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=_.editConfig,l=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?R.scrollToRow(t,l).then(function(){var e=R.getCell(t,l);return e&&(w.handleActived({row:t,rowIndex:R.getRowIndex(t),column:l,columnIndex:R.getColumnIndex(l),cell:e,$table:R}),I._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=C.tableData,l=I.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=R.findRowIndexOf(r,e))&&t&&(r=R.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},R.handleSelected(r,{}))),(0,_vue.nextTick)()}},w={handleActived:function(e,t){var r,l=_.editConfig,n=_.mouseConfig,o=C.editStore,a=C.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||R.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),R.closeTooltip(),h.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){w.handleFocus(e,t)})),R.dispatchEvent(r,{row:s,rowIndex:R.getRowIndex(s),$rowIndex:R.getVMRowIndex(s),column:f,columnIndex:R.getColumnIndex(f),$columnIndex:R.getVMColumnIndex(f)},t)):(r=d.column,n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),R.clearValidate&&R.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){w.handleFocus(e,t)})),R.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):R.scrollToRow(l,n))},handleSelected:function(e,t){var r=_.mouseConfig,l=C.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(h.clearActived(t),h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&w.addCellSelectedClass(),R.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=C.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=R.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},h),w)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(R){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var _=R.props,C=R.reactData,I=R.internalData,o=R.getRefMaps().refElem,e=R.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,m=e.computeCheckboxOpts,b=e.computeSYOpts,S=e.computeTreeOpts,h={},w={};function a(){var e=C.editStore,t=C.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function A(e,t){var a=I.treeFullData,i=I.afterFullData,u=I.fullDataRowIdData,c=I.fullAllDataRowIdData,d=S.value,s=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[d.parentField],n=(0,_util.getRowid)(R,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d.rowField]},d):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(R,t)])?r.level:0,r=t[d.children],(r=!_xeUtils.default.isArray(r)?t[d.children]=[]:r)[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[s](e),a[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e}),R.updateVirtualTreeData()}return h={insert:function(e){return h.insertAt(e,null)},insertAt:function(e,t){var r=_.treeConfig,l=C.mergeList,n=C.editStore,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=I.fullDataRowIdData,d=I.fullAllDataRowIdData,s=b.value,f=S.value,v=f.transform,p=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return R.defineField(Object.assign({},e))});if(t)if(-1===t)r&&v?A(p,!0):(i.push.apply(i,p),u.push.apply(u,p),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>i.length&&(e.rowspan=r+p.length)}));else if(r&&v){var w,g,m,h=_xeUtils.default.findTree(a,function(e){return t[f.rowField]===e[f.rowField]},f);h?(w=h.parent,g=h.items,a=d[(0,_util.getRowid)(R,w)],m=a?a.level:0,p.forEach(function(e,t){var r=(0,_util.getRowid)(R,e);"development"===process.env.NODE_ENV&&e[f.parentField]&&w&&e[f.parentField]!==w[f.rowField]&&(0,_utils.errLog)("vxe.error.errProp",[f.parentField+"="+e[f.parentField],f.parentField+"="+w[f.rowField]]),w&&(e[f.parentField]=w[f.rowField]),g.splice(h.index+t,0,e);e={row:e,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:g,parent:w,level:m+1};c[r]=e,d[r]=e}),R.updateVirtualTreeData()):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),A(p,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var x=R.findRowIndexOf(i,t);if(-1===x)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));i.splice.apply(i,__spreadArray([x,0],p)),u.splice.apply(u,__spreadArray([R.findRowIndexOf(u,t),0],p)),l.forEach(function(e){var t=e.row,r=e.rowspan;x<t?e.row=t+p.length:x<t+r&&(e.rowspan=r+p.length)})}else r&&v?A(p,!1):(i.unshift.apply(i,p),u.unshift.apply(u,p),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+p.length)}));return(n=n.insertList).unshift.apply(n,p),C.scrollYLoad=!r&&-1<s.gt&&s.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(v),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},remove:function(e){var t=_.treeConfig,r=C.mergeList,l=C.editStore,n=C.selection,o=C.scrollYLoad,a=I.treeFullData,i=I.afterFullData,u=I.tableFullData,c=m.value,d=b.value,s=S.value,f=s.transform,v=l.actived,p=l.removeList,w=l.insertList,c=c.checkField,g=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=u,e.forEach(function(e){R.isInsertByRow(e)||p.push(e)}),c||e.forEach(function(e){e=R.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),u===e?(e=g=u.slice(0),I.tableFullData=[],I.afterFullData=[],R.clearMergeCells()):t&&f?e.forEach(function(e){var t=(0,_util.getRowid)(R,e),r=_xeUtils.default.findTree(a,function(e){return t===(0,_util.getRowid)(R,e)},s);r&&(r=r.items.splice(r.index,1),g.push(r[0]));e=R.findRowIndexOf(i,e);-1<e&&i.splice(e,1),R.updateVirtualTreeData()}):e.forEach(function(e){var t=R.findRowIndexOf(u,e);-1<t&&(t=u.splice(t,1),g.push(t[0]));var l=R.findRowIndexOf(i,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),i.splice(l,1))}),v.row&&-1<R.findRowIndexOf(e,v.row)&&h.clearActived(),e.forEach(function(e){e=R.findRowIndexOf(w,e);-1<e&&w.splice(e,1)}),C.scrollYLoad=!t&&-1<d.gt&&d.gt<u.length,R.updateFooter(),R.cacheRowMap(),R.handleTableData(f),R.updateAfterDataIndex(),R.checkSelectionStatus(),o&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:g.length?g[g.length-1]:null,rows:g}})},removeCheckboxRow:function(){return h.remove(R.getCheckboxRecords()).then(function(e){return R.clearCheckboxRow(),e})},removeRadioRow:function(){var e=R.getRadioRecord();return h.remove(e||[]).then(function(e){return R.clearRadioRow(),e})},removeCurrentRow:function(){var e=R.getCurrentRecord();return h.remove(e||[]).then(function(e){return R.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:h.getInsertRecords(),removeRecords:h.getRemoveRecords(),updateRecords:h.getUpdateRecords()}},getInsertRecords:function(){var e=_.treeConfig,t=C.editStore,r=I.treeFullData,l=I.tableFullData,n=S.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(R,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(R,e)},n)&&o.push(e)}):t.forEach(function(e){-1<R.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return C.editStore.removeList},getUpdateRecords:function(){var e=_.keepSource,t=_.treeConfig,r=I.tableFullData,l=S.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return R.isUpdateByRow(e)},l):r.filter(function(e){return R.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=C.editStore,t=I.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<R.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=C.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=C.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:r,rowIndex:R.getRowIndex(r),$rowIndex:R.getVMRowIndex(r),column:l,columnIndex:R.getColumnIndex(l),$columnIndex:R.getVMColumnIndex(l)},e||null)),(R.clearValidate?R.clearValidate():(0,_vue.nextTick)()).then(function(){return R.recalculate()})},clearSelected:function(){var e=C.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return C.editStore.actived.row===e},setActiveRow:function(e){var t=I.visibleColumn;return R.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=_.editConfig,l=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?R.scrollToRow(t,l).then(function(){var e=R.getCell(t,l);return e&&(w.handleActived({row:t,rowIndex:R.getRowIndex(t),column:l,columnIndex:R.getColumnIndex(l),cell:e,$table:R}),I._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=C.tableData,l=I.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=R.findRowIndexOf(r,e))&&t&&(r=R.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},R.handleSelected(r,{}))),(0,_vue.nextTick)()}},w={handleActived:function(e,t){var r,l=_.editConfig,n=_.mouseConfig,o=C.editStore,a=C.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||R.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),R.closeTooltip(),h.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){w.handleFocus(e,t)})),R.dispatchEvent(r,{row:s,rowIndex:R.getRowIndex(s),$rowIndex:R.getVMRowIndex(s),column:f,columnIndex:R.getColumnIndex(f),$columnIndex:R.getVMColumnIndex(f)},t)):(r=d.column,n&&(h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),R.clearValidate&&R.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){w.handleFocus(e,t)})),R.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):R.scrollToRow(l,n))},handleSelected:function(e,t){var r=_.mouseConfig,l=C.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(h.clearActived(t),h.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&w.addCellSelectedClass(),R.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=C.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=R.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},h),w)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
|
package/lib/export/src/hook.js
CHANGED
|
@@ -121,6 +121,10 @@ function getFooterData(opts, footerTableData) {
|
|
|
121
121
|
|
|
122
122
|
function getCsvCellTypeLabel(column, cellValue) {
|
|
123
123
|
if (cellValue) {
|
|
124
|
+
if (column.type === 'seq') {
|
|
125
|
+
return "\t" + cellValue;
|
|
126
|
+
}
|
|
127
|
+
|
|
124
128
|
switch (column.cellType) {
|
|
125
129
|
case 'string':
|
|
126
130
|
if (!isNaN(cellValue)) {
|
|
@@ -368,15 +372,24 @@ var tableExportHook = {
|
|
|
368
372
|
return row[treeOpts.children] && row[treeOpts.children].length;
|
|
369
373
|
};
|
|
370
374
|
|
|
371
|
-
var getSeq = function getSeq(row, rowIndex, column, columnIndex) {
|
|
375
|
+
var getSeq = function getSeq(row, rowIndex, column, columnIndex, path) {
|
|
372
376
|
var seqOpts = computeSeqOpts.value;
|
|
373
377
|
var seqMethod = seqOpts.seqMethod || column.seqMethod;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
378
|
+
|
|
379
|
+
if (seqMethod) {
|
|
380
|
+
return seqMethod({
|
|
381
|
+
row: row,
|
|
382
|
+
rowIndex: rowIndex,
|
|
383
|
+
column: column,
|
|
384
|
+
columnIndex: columnIndex
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
if (path) {
|
|
389
|
+
return (0, _util.toTreePathSeq)(path);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
return seqOpts.startIndex + rowIndex + 1;
|
|
380
393
|
};
|
|
381
394
|
|
|
382
395
|
var toBooleanValue = function toBooleanValue(cellValue) {
|
|
@@ -397,12 +410,13 @@ var tableExportHook = {
|
|
|
397
410
|
if (treeConfig) {
|
|
398
411
|
// 如果是树表格只允许导出数据源
|
|
399
412
|
var rest_1 = [];
|
|
413
|
+
var expandMaps_1 = new Map();
|
|
400
414
|
|
|
401
415
|
_xeUtils.default.eachTree(datas, function (item, rowIndex, items, path, parent, nodes) {
|
|
402
416
|
var row = item._row || item;
|
|
403
417
|
var parentRow = parent && parent._row ? parent._row : parent;
|
|
404
418
|
|
|
405
|
-
if (isAllExpand || !parentRow || $xetable.isTreeExpandByRow(parentRow)) {
|
|
419
|
+
if (isAllExpand || !parentRow || expandMaps_1.has(parentRow) && $xetable.isTreeExpandByRow(parentRow)) {
|
|
406
420
|
var hasRowChild = hasTreeChildren(row);
|
|
407
421
|
var item_3 = {
|
|
408
422
|
_row: row,
|
|
@@ -433,7 +447,7 @@ var tableExportHook = {
|
|
|
433
447
|
} else {
|
|
434
448
|
switch (column.type) {
|
|
435
449
|
case 'seq':
|
|
436
|
-
cellValue = getSeq(row, rowIndex, column, columnIndex);
|
|
450
|
+
cellValue = getSeq(row, rowIndex, column, columnIndex, path);
|
|
437
451
|
break;
|
|
438
452
|
|
|
439
453
|
case 'checkbox':
|
|
@@ -475,6 +489,7 @@ var tableExportHook = {
|
|
|
475
489
|
|
|
476
490
|
item_3[column.id] = _xeUtils.default.toValueString(cellValue);
|
|
477
491
|
});
|
|
492
|
+
expandMaps_1.set(row, 1);
|
|
478
493
|
rest_1.push(Object.assign(item_3, row));
|
|
479
494
|
}
|
|
480
495
|
}, treeOpts);
|
|
@@ -509,7 +524,7 @@ var tableExportHook = {
|
|
|
509
524
|
} else {
|
|
510
525
|
switch (column.type) {
|
|
511
526
|
case 'seq':
|
|
512
|
-
cellValue = getSeq(row, rowIndex, column, columnIndex);
|
|
527
|
+
cellValue = getSeq(row, rowIndex, column, columnIndex, []);
|
|
513
528
|
break;
|
|
514
529
|
|
|
515
530
|
case 'checkbox':
|