vxe-pc-ui 3.15.25 → 3.15.26
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/icon/style.css +1 -1
- package/es/list/src/list.js +560 -13
- package/es/list/src/util.js +8 -0
- package/es/list/style.css +10 -4
- package/es/list/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +4 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-list/style.css +10 -4
- package/es/vxe-list/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +652 -16
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +605 -11
- package/lib/list/src/list.min.js +1 -1
- package/lib/list/src/util.js +14 -0
- package/lib/list/src/util.min.js +1 -0
- package/lib/list/style/style.css +10 -4
- package/lib/list/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +4 -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/lib/vxe-list/style/style.css +10 -4
- package/lib/vxe-list/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/list/src/list.ts +588 -13
- package/packages/list/src/util.ts +11 -0
- package/packages/ui/index.ts +3 -0
- package/styles/components/list.scss +8 -4
- package/types/components/list.d.ts +120 -4
- package/types/components/tree.d.ts +3 -7
- package/types/ui/menus.d.ts +13 -1
- /package/es/icon/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
- /package/es/icon/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
- /package/es/icon/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
- /package/es/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
- /package/es/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
- /package/es/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
- /package/lib/icon/style/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
- /package/lib/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
- /package/lib/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
- /package/lib/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
package/lib/list/src/list.js
CHANGED
|
@@ -14,16 +14,23 @@ var _utils = require("../../ui/src/utils");
|
|
|
14
14
|
var _vn = require("../../ui/src/vn");
|
|
15
15
|
var _log = require("../../ui/src/log");
|
|
16
16
|
var _anime = require("../../ui/src/anime");
|
|
17
|
+
var _util = require("./util");
|
|
17
18
|
var _loading = _interopRequireDefault(require("../../loading/src/loading"));
|
|
18
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
20
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
21
22
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
23
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
24
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
26
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
22
27
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
23
28
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
24
29
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
25
30
|
var _createComponentLog = (0, _log.createComponentLog)('tree'),
|
|
31
|
+
warnLog = _createComponentLog.warnLog,
|
|
26
32
|
errLog = _createComponentLog.errLog;
|
|
33
|
+
var crossListDragRowObj = null;
|
|
27
34
|
function eqRowKey(rowKey1, rowKey2) {
|
|
28
35
|
return '' + rowKey1 === '' + rowKey2;
|
|
29
36
|
}
|
|
@@ -53,15 +60,20 @@ function createReactData() {
|
|
|
53
60
|
updateCheckboxFlag: 1,
|
|
54
61
|
isAllChecked: false,
|
|
55
62
|
isAllIndeterminate: false,
|
|
63
|
+
insertRowFlag: 1,
|
|
64
|
+
removeRowFlag: 1,
|
|
56
65
|
dragRow: null,
|
|
57
|
-
dragTipText: ''
|
|
66
|
+
dragTipText: '',
|
|
67
|
+
isCrossDragRow: false
|
|
58
68
|
};
|
|
59
69
|
}
|
|
60
70
|
function createInternalData() {
|
|
61
71
|
return {
|
|
62
72
|
resizeObserver: undefined,
|
|
63
73
|
fullData: [],
|
|
74
|
+
afterList: [],
|
|
64
75
|
fullKeyMaps: {},
|
|
76
|
+
rowMaps: {},
|
|
65
77
|
lastScrollLeft: 0,
|
|
66
78
|
lastScrollTop: 0,
|
|
67
79
|
scrollYStore: {
|
|
@@ -72,7 +84,9 @@ function createInternalData() {
|
|
|
72
84
|
rowHeight: 0
|
|
73
85
|
},
|
|
74
86
|
currentRow: null,
|
|
75
|
-
selectCheckboxMaps: {}
|
|
87
|
+
selectCheckboxMaps: {},
|
|
88
|
+
insertRowMaps: {},
|
|
89
|
+
removeRowMaps: {}
|
|
76
90
|
// prevDragRow: null,
|
|
77
91
|
// prevDragPos: ''
|
|
78
92
|
};
|
|
@@ -99,6 +113,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
99
113
|
}
|
|
100
114
|
},
|
|
101
115
|
syncResize: [Boolean, String, Number],
|
|
116
|
+
showSeq: {
|
|
117
|
+
type: Boolean,
|
|
118
|
+
default: function _default() {
|
|
119
|
+
return (0, _ui.getConfig)().list.showSeq;
|
|
120
|
+
}
|
|
121
|
+
},
|
|
102
122
|
showRadio: {
|
|
103
123
|
type: Boolean,
|
|
104
124
|
default: function _default() {
|
|
@@ -117,6 +137,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
117
137
|
checkboxConfig: Object,
|
|
118
138
|
rowConfig: Object,
|
|
119
139
|
dragConfig: Object,
|
|
140
|
+
menuConfig: Object,
|
|
120
141
|
virtualYConfig: Object,
|
|
121
142
|
scrollY: Object
|
|
122
143
|
},
|
|
@@ -179,6 +200,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
179
200
|
showIcon: true
|
|
180
201
|
}, (0, _ui.getConfig)().list.checkboxConfig, props.checkboxConfig);
|
|
181
202
|
},
|
|
203
|
+
computeMenuOpts: function computeMenuOpts() {
|
|
204
|
+
var $xeList = this;
|
|
205
|
+
var props = $xeList;
|
|
206
|
+
return Object.assign({}, (0, _ui.getConfig)().list.menuConfig, props.menuConfig);
|
|
207
|
+
},
|
|
182
208
|
computeWrapperStyles: function computeWrapperStyles() {
|
|
183
209
|
var $xeList = this;
|
|
184
210
|
var rowHeight = $xeList.computeRowHeight;
|
|
@@ -287,6 +313,30 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
287
313
|
internalData.selectCheckboxMaps = selectMaps;
|
|
288
314
|
$xeList.updateCheckboxStatus();
|
|
289
315
|
},
|
|
316
|
+
updateAfterDataIndex: function updateAfterDataIndex() {
|
|
317
|
+
var $xeList = this;
|
|
318
|
+
var internalData = $xeList.internalData;
|
|
319
|
+
var afterList = internalData.afterList,
|
|
320
|
+
rowMaps = internalData.rowMaps;
|
|
321
|
+
var keyField = $xeList.computeKeyField;
|
|
322
|
+
var vtIndex = 0;
|
|
323
|
+
afterList.forEach(function (item, index) {
|
|
324
|
+
var roweid = getRowIdByField(item, keyField);
|
|
325
|
+
var rowRest = rowMaps[roweid];
|
|
326
|
+
if (rowRest) {
|
|
327
|
+
rowRest._index = vtIndex;
|
|
328
|
+
} else {
|
|
329
|
+
var rest = {
|
|
330
|
+
item: item,
|
|
331
|
+
index: index,
|
|
332
|
+
$index: -1,
|
|
333
|
+
_index: vtIndex
|
|
334
|
+
};
|
|
335
|
+
rowMaps[roweid] = rest;
|
|
336
|
+
}
|
|
337
|
+
vtIndex++;
|
|
338
|
+
});
|
|
339
|
+
},
|
|
290
340
|
cacheRowMap: function cacheRowMap() {
|
|
291
341
|
var $xeList = this;
|
|
292
342
|
var internalData = $xeList.internalData;
|
|
@@ -309,17 +359,21 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
309
359
|
var internalData = $xeList.internalData;
|
|
310
360
|
var scrollYStore = internalData.scrollYStore;
|
|
311
361
|
var sYOpts = $xeList.computeSYOpts;
|
|
312
|
-
var fullData = datas
|
|
362
|
+
var fullData = datas ? datas.slice(0) : [];
|
|
313
363
|
Object.assign(scrollYStore, {
|
|
314
364
|
startIndex: 0,
|
|
315
365
|
endIndex: 1,
|
|
316
366
|
visibleSize: 0
|
|
317
367
|
});
|
|
318
368
|
internalData.fullData = fullData;
|
|
369
|
+
internalData.insertRowMaps = {};
|
|
370
|
+
reactData.insertRowFlag++;
|
|
371
|
+
internalData.removeRowMaps = {};
|
|
372
|
+
reactData.removeRowFlag++;
|
|
319
373
|
// 如果gt为0,则总是启用
|
|
320
374
|
reactData.scrollYLoad = !!sYOpts.enabled && sYOpts.gt > -1 && (sYOpts.gt === 0 || sYOpts.gt <= fullData.length);
|
|
321
375
|
$xeList.cacheRowMap();
|
|
322
|
-
$xeList.handleData();
|
|
376
|
+
$xeList.handleData(true);
|
|
323
377
|
$xeList.updateRadioModeValue();
|
|
324
378
|
$xeList.updateCheckboxModeValue();
|
|
325
379
|
return $xeList.computeScrollLoad().then(function () {
|
|
@@ -382,14 +436,37 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
382
436
|
reactData.bodyHeight = scrollYLoad ? fullData.length * scrollYStore.rowHeight : 0;
|
|
383
437
|
reactData.topSpaceHeight = scrollYLoad ? Math.max(scrollYStore.startIndex * scrollYStore.rowHeight, 0) : 0;
|
|
384
438
|
},
|
|
385
|
-
|
|
439
|
+
updateAfterFullData: function updateAfterFullData() {
|
|
440
|
+
var $xeList = this;
|
|
441
|
+
var internalData = $xeList.internalData;
|
|
442
|
+
var fullData = internalData.fullData;
|
|
443
|
+
internalData.afterList = fullData.slice(0);
|
|
444
|
+
$xeList.updateAfterDataIndex();
|
|
445
|
+
},
|
|
446
|
+
handleData: function handleData(force) {
|
|
386
447
|
var $xeList = this;
|
|
387
448
|
var reactData = $xeList.reactData;
|
|
388
449
|
var internalData = $xeList.internalData;
|
|
389
450
|
var scrollYLoad = reactData.scrollYLoad;
|
|
390
451
|
var fullData = internalData.fullData,
|
|
391
|
-
scrollYStore = internalData.scrollYStore
|
|
392
|
-
|
|
452
|
+
scrollYStore = internalData.scrollYStore,
|
|
453
|
+
rowMaps = internalData.rowMaps;
|
|
454
|
+
var keyField = $xeList.computeKeyField;
|
|
455
|
+
if (force) {
|
|
456
|
+
// 更新数据,处理筛选和排序
|
|
457
|
+
$xeList.updateAfterFullData();
|
|
458
|
+
}
|
|
459
|
+
var rowList = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
|
|
460
|
+
if (keyField) {
|
|
461
|
+
rowList.forEach(function (item, $index) {
|
|
462
|
+
var rowid = getRowIdByField(item, keyField);
|
|
463
|
+
var rowRest = rowMaps[rowid];
|
|
464
|
+
if (rowRest) {
|
|
465
|
+
rowRest.$index = $index;
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
reactData.rowList = rowList;
|
|
393
470
|
return $xeList.$nextTick();
|
|
394
471
|
},
|
|
395
472
|
updateYData: function updateYData() {
|
|
@@ -992,6 +1069,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
992
1069
|
checked: isChecked
|
|
993
1070
|
}, evnt);
|
|
994
1071
|
},
|
|
1072
|
+
handleRowDragEndClearStatus: function handleRowDragEndClearStatus() {
|
|
1073
|
+
var $xeList = this;
|
|
1074
|
+
$xeList.clearRowDragData();
|
|
1075
|
+
$xeList.clearCrossListDragStatus();
|
|
1076
|
+
$xeList.recalculate();
|
|
1077
|
+
},
|
|
995
1078
|
clearRowDropOrigin: function clearRowDropOrigin() {
|
|
996
1079
|
var $xeList = this;
|
|
997
1080
|
var el = $xeList.$refs.refElem;
|
|
@@ -1049,7 +1132,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1049
1132
|
clearCrossListDragStatus: function clearCrossListDragStatus() {
|
|
1050
1133
|
var $xeList = this;
|
|
1051
1134
|
var crossListDragRowInfo = (0, _store.getCrossListDragRowInfo)($xeList);
|
|
1052
|
-
|
|
1135
|
+
crossListDragRowObj = null;
|
|
1053
1136
|
crossListDragRowInfo.row = null;
|
|
1054
1137
|
},
|
|
1055
1138
|
clearDragStatus: function clearDragStatus() {
|
|
@@ -1066,10 +1149,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1066
1149
|
handleRowDragMousedownEvent: function handleRowDragMousedownEvent(evnt, params) {
|
|
1067
1150
|
var $xeList = this;
|
|
1068
1151
|
var reactData = $xeList.reactData;
|
|
1152
|
+
var crossListDragRowInfo = (0, _store.getCrossListDragRowInfo)($xeList);
|
|
1069
1153
|
evnt.stopPropagation();
|
|
1070
1154
|
var row = params.row;
|
|
1071
1155
|
var dragConfig = $xeList.computeDragOpts;
|
|
1072
|
-
var
|
|
1156
|
+
var isCrossListDrag = dragConfig.isCrossListDrag,
|
|
1157
|
+
trigger = dragConfig.trigger,
|
|
1073
1158
|
dragStartMethod = dragConfig.dragStartMethod;
|
|
1074
1159
|
var dragEl = evnt.currentTarget;
|
|
1075
1160
|
var rowEl = trigger === 'row' ? dragEl : dragEl.parentElement.parentElement;
|
|
@@ -1080,6 +1165,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1080
1165
|
$xeList.hideDropTip();
|
|
1081
1166
|
return;
|
|
1082
1167
|
}
|
|
1168
|
+
if (isCrossListDrag) {
|
|
1169
|
+
crossListDragRowInfo.row = row;
|
|
1170
|
+
crossListDragRowObj = {
|
|
1171
|
+
$oldList: $xeList,
|
|
1172
|
+
$newList: null
|
|
1173
|
+
};
|
|
1174
|
+
}
|
|
1083
1175
|
var dragstartEventParams = {
|
|
1084
1176
|
row: row
|
|
1085
1177
|
};
|
|
@@ -1294,6 +1386,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1294
1386
|
var dragRow = reactData.dragRow;
|
|
1295
1387
|
var prevDragRow = internalData.prevDragRow,
|
|
1296
1388
|
prevDragPos = internalData.prevDragPos;
|
|
1389
|
+
var dragConfig = $xeList.computeDragOpts;
|
|
1390
|
+
var isCrossListDrag = dragConfig.isCrossListDrag;
|
|
1391
|
+
// 跨列表拖拽
|
|
1392
|
+
if (isCrossListDrag && crossListDragRowObj) {
|
|
1393
|
+
var _crossListDragRowObj = crossListDragRowObj,
|
|
1394
|
+
$newList = _crossListDragRowObj.$newList;
|
|
1395
|
+
if ($newList && $newList.xID !== $xeList.xID) {
|
|
1396
|
+
$newList.handleCrossListRowDragInsertEvent(evnt);
|
|
1397
|
+
return;
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1297
1400
|
$xeList.handleRowDragSwapEvent(evnt, dragRow, prevDragRow, prevDragPos);
|
|
1298
1401
|
},
|
|
1299
1402
|
handleRowDragDragoverEvent: function handleRowDragDragoverEvent(evnt) {
|
|
@@ -1392,6 +1495,477 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1392
1495
|
row: row
|
|
1393
1496
|
}, evnt);
|
|
1394
1497
|
},
|
|
1498
|
+
insertListRow: function insertListRow(newRecords, isAppend) {
|
|
1499
|
+
var $xeList = this;
|
|
1500
|
+
var internalData = $xeList.internalData;
|
|
1501
|
+
var fullData = internalData.fullData,
|
|
1502
|
+
rowMaps = internalData.rowMaps;
|
|
1503
|
+
var keyField = $xeList.computeKeyField;
|
|
1504
|
+
var funcName = isAppend ? 'push' : 'unshift';
|
|
1505
|
+
newRecords.forEach(function (item) {
|
|
1506
|
+
var rowid = getRowIdByField(item, keyField);
|
|
1507
|
+
var rowRest = (0, _util.getItemCacheObj)(item);
|
|
1508
|
+
fullData[funcName](item);
|
|
1509
|
+
rowMaps[rowid] = rowRest;
|
|
1510
|
+
});
|
|
1511
|
+
},
|
|
1512
|
+
handleInsertRowAt: function handleInsertRowAt(records, targetRowOrRowKey, isInsertNextRow) {
|
|
1513
|
+
var $xeList = this;
|
|
1514
|
+
var reactData = $xeList.reactData;
|
|
1515
|
+
var internalData = $xeList.internalData;
|
|
1516
|
+
var fullData = internalData.fullData,
|
|
1517
|
+
rowMaps = internalData.rowMaps,
|
|
1518
|
+
removeRowMaps = internalData.removeRowMaps,
|
|
1519
|
+
insertRowMaps = internalData.insertRowMaps;
|
|
1520
|
+
var keyField = $xeList.computeKeyField;
|
|
1521
|
+
if (!keyField) {
|
|
1522
|
+
errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'row-config.keyField']);
|
|
1523
|
+
return Promise.resolve({
|
|
1524
|
+
row: null,
|
|
1525
|
+
rows: []
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1528
|
+
if (!_xeUtils.default.isArray(records)) {
|
|
1529
|
+
records = [records];
|
|
1530
|
+
}
|
|
1531
|
+
var targetRow = targetRowOrRowKey;
|
|
1532
|
+
if (_xeUtils.default.isString(targetRowOrRowKey) || _xeUtils.default.isNumber(targetRowOrRowKey)) {
|
|
1533
|
+
var rowRest = rowMaps[targetRowOrRowKey];
|
|
1534
|
+
if (rowRest) {
|
|
1535
|
+
targetRow = rowRest.item;
|
|
1536
|
+
}
|
|
1537
|
+
}
|
|
1538
|
+
if (!records.length) {
|
|
1539
|
+
return Promise.resolve({
|
|
1540
|
+
row: null,
|
|
1541
|
+
rows: []
|
|
1542
|
+
});
|
|
1543
|
+
}
|
|
1544
|
+
var newRecords = records.map(function (record) {
|
|
1545
|
+
return _xeUtils.default.assign({}, record);
|
|
1546
|
+
});
|
|
1547
|
+
if (_xeUtils.default.eqNull(targetRow)) {
|
|
1548
|
+
$xeList.insertListRow(newRecords, false);
|
|
1549
|
+
} else {
|
|
1550
|
+
if (targetRow === -1) {
|
|
1551
|
+
$xeList.insertListRow(newRecords, true);
|
|
1552
|
+
} else {
|
|
1553
|
+
var rowIndex = fullData.findIndex(function (item) {
|
|
1554
|
+
return targetRow[keyField] === item[keyField];
|
|
1555
|
+
});
|
|
1556
|
+
if (rowIndex > -1) {
|
|
1557
|
+
newRecords.forEach(function (item) {
|
|
1558
|
+
var rowid = getRowIdByField(item, keyField);
|
|
1559
|
+
var rowRest = (0, _util.getItemCacheObj)(item);
|
|
1560
|
+
rowMaps[rowid] = rowRest;
|
|
1561
|
+
});
|
|
1562
|
+
var targetIndex = rowIndex;
|
|
1563
|
+
if (isInsertNextRow) {
|
|
1564
|
+
targetIndex = targetIndex + 1;
|
|
1565
|
+
}
|
|
1566
|
+
fullData.splice.apply(fullData, [targetIndex, 0].concat(_toConsumableArray(newRecords)));
|
|
1567
|
+
} else {
|
|
1568
|
+
warnLog('vxe.error.unableInsert');
|
|
1569
|
+
$xeList.insertListRow(newRecords, true);
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
}
|
|
1573
|
+
newRecords.forEach(function (newItem) {
|
|
1574
|
+
var rowid = getRowIdByField(newItem, keyField);
|
|
1575
|
+
// 如果是被删除的数据,则还原状态
|
|
1576
|
+
if (removeRowMaps[rowid]) {
|
|
1577
|
+
delete removeRowMaps[rowid];
|
|
1578
|
+
if (insertRowMaps[rowid]) {
|
|
1579
|
+
delete insertRowMaps[rowid];
|
|
1580
|
+
}
|
|
1581
|
+
} else {
|
|
1582
|
+
insertRowMaps[rowid] = newItem;
|
|
1583
|
+
}
|
|
1584
|
+
});
|
|
1585
|
+
reactData.removeRowFlag++;
|
|
1586
|
+
reactData.insertRowFlag++;
|
|
1587
|
+
$xeList.cacheRowMap();
|
|
1588
|
+
$xeList.handleData(true);
|
|
1589
|
+
$xeList.updateAfterDataIndex();
|
|
1590
|
+
$xeList.updateCheckboxStatus();
|
|
1591
|
+
if (reactData.scrollYLoad) {
|
|
1592
|
+
$xeList.updateYSpace();
|
|
1593
|
+
}
|
|
1594
|
+
return $xeList.$nextTick().then(function () {
|
|
1595
|
+
return {
|
|
1596
|
+
row: newRecords.length ? newRecords[newRecords.length - 1] : null,
|
|
1597
|
+
rows: newRecords
|
|
1598
|
+
};
|
|
1599
|
+
});
|
|
1600
|
+
},
|
|
1601
|
+
insert: function insert(records) {
|
|
1602
|
+
var $xeList = this;
|
|
1603
|
+
return $xeList.handleInsertRowAt(records, null);
|
|
1604
|
+
},
|
|
1605
|
+
insertAt: function insertAt(records, targetRowOrRowKey) {
|
|
1606
|
+
var $xeList = this;
|
|
1607
|
+
return $xeList.handleInsertRowAt(records, targetRowOrRowKey);
|
|
1608
|
+
},
|
|
1609
|
+
insertNextAt: function insertNextAt(records, targetRowOrRowKey) {
|
|
1610
|
+
var $xeList = this;
|
|
1611
|
+
return $xeList.handleInsertRowAt(records, targetRowOrRowKey, true);
|
|
1612
|
+
},
|
|
1613
|
+
getInsertRecords: function getInsertRecords() {
|
|
1614
|
+
var $xeList = this;
|
|
1615
|
+
var internalData = $xeList.internalData;
|
|
1616
|
+
var insertRowMaps = internalData.insertRowMaps;
|
|
1617
|
+
var insertRecords = [];
|
|
1618
|
+
_xeUtils.default.each(insertRowMaps, function (item) {
|
|
1619
|
+
insertRecords.push(item);
|
|
1620
|
+
});
|
|
1621
|
+
return insertRecords;
|
|
1622
|
+
},
|
|
1623
|
+
isInsertByRow: function isInsertByRow(row) {
|
|
1624
|
+
var $xeList = this;
|
|
1625
|
+
var reactData = $xeList.reactData;
|
|
1626
|
+
var internalData = $xeList.internalData;
|
|
1627
|
+
var rowid = $xeList.getRowId(row);
|
|
1628
|
+
return !!reactData.insertRowFlag && !!internalData.insertRowMaps[rowid];
|
|
1629
|
+
},
|
|
1630
|
+
remove: function remove(rows) {
|
|
1631
|
+
var $xeList = this;
|
|
1632
|
+
var reactData = $xeList.reactData;
|
|
1633
|
+
var internalData = $xeList.internalData;
|
|
1634
|
+
var fullData = internalData.fullData,
|
|
1635
|
+
insertRowMaps = internalData.insertRowMaps,
|
|
1636
|
+
removeRowMaps = internalData.removeRowMaps;
|
|
1637
|
+
var keyField = $xeList.computeKeyField;
|
|
1638
|
+
if (!keyField) {
|
|
1639
|
+
errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'row-config.keyField']);
|
|
1640
|
+
return Promise.resolve({
|
|
1641
|
+
row: null,
|
|
1642
|
+
rows: []
|
|
1643
|
+
});
|
|
1644
|
+
}
|
|
1645
|
+
var delList = [];
|
|
1646
|
+
if (!rows) {
|
|
1647
|
+
rows = fullData;
|
|
1648
|
+
} else if (!_xeUtils.default.isArray(rows)) {
|
|
1649
|
+
rows = [rows];
|
|
1650
|
+
}
|
|
1651
|
+
if (!rows.length) {
|
|
1652
|
+
return Promise.resolve({
|
|
1653
|
+
row: null,
|
|
1654
|
+
rows: []
|
|
1655
|
+
});
|
|
1656
|
+
}
|
|
1657
|
+
// 如果是新增,则保存记录
|
|
1658
|
+
rows.forEach(function (item) {
|
|
1659
|
+
if (!$xeList.isInsertByRow(item)) {
|
|
1660
|
+
var rowid = $xeList.getRowId(item);
|
|
1661
|
+
removeRowMaps[rowid] = item;
|
|
1662
|
+
}
|
|
1663
|
+
});
|
|
1664
|
+
// 从数据源中移除
|
|
1665
|
+
if (fullData === rows) {
|
|
1666
|
+
rows = delList = fullData.slice(0);
|
|
1667
|
+
internalData.fullData = [];
|
|
1668
|
+
} else {
|
|
1669
|
+
rows.forEach(function (item) {
|
|
1670
|
+
var rowid = $xeList.getRowId(item);
|
|
1671
|
+
var rowIndex = _xeUtils.default.findIndexOf(fullData, function (item) {
|
|
1672
|
+
return rowid === $xeList.getRowId(item);
|
|
1673
|
+
});
|
|
1674
|
+
if (rowIndex > -1) {
|
|
1675
|
+
var rItems = fullData.splice(rowIndex, 1);
|
|
1676
|
+
delList.push(rItems[0]);
|
|
1677
|
+
}
|
|
1678
|
+
});
|
|
1679
|
+
}
|
|
1680
|
+
// 从新增中移除已删除的数据
|
|
1681
|
+
rows.forEach(function (item) {
|
|
1682
|
+
var rowid = $xeList.getRowId(item);
|
|
1683
|
+
if (insertRowMaps[rowid]) {
|
|
1684
|
+
delete insertRowMaps[rowid];
|
|
1685
|
+
}
|
|
1686
|
+
});
|
|
1687
|
+
reactData.removeRowFlag++;
|
|
1688
|
+
reactData.insertRowFlag++;
|
|
1689
|
+
$xeList.cacheRowMap();
|
|
1690
|
+
$xeList.handleData(true);
|
|
1691
|
+
$xeList.updateAfterDataIndex();
|
|
1692
|
+
$xeList.updateCheckboxStatus();
|
|
1693
|
+
if (reactData.scrollYLoad) {
|
|
1694
|
+
$xeList.updateYSpace();
|
|
1695
|
+
}
|
|
1696
|
+
return $xeList.$nextTick().then(function () {
|
|
1697
|
+
return $xeList.recalculate();
|
|
1698
|
+
}).then(function () {
|
|
1699
|
+
return {
|
|
1700
|
+
row: delList.length ? delList[delList.length - 1] : null,
|
|
1701
|
+
rows: delList
|
|
1702
|
+
};
|
|
1703
|
+
});
|
|
1704
|
+
},
|
|
1705
|
+
getRemoveRecords: function getRemoveRecords() {
|
|
1706
|
+
var $xeList = this;
|
|
1707
|
+
var internalData = $xeList.internalData;
|
|
1708
|
+
var removeRowMaps = internalData.removeRowMaps;
|
|
1709
|
+
var removeRecords = [];
|
|
1710
|
+
_xeUtils.default.each(removeRowMaps, function (item) {
|
|
1711
|
+
removeRecords.push(item);
|
|
1712
|
+
});
|
|
1713
|
+
return removeRecords;
|
|
1714
|
+
},
|
|
1715
|
+
isRemoveByRow: function isRemoveByRow(row) {
|
|
1716
|
+
var $xeList = this;
|
|
1717
|
+
var reactData = $xeList.reactData;
|
|
1718
|
+
var internalData = $xeList.internalData;
|
|
1719
|
+
var rowid = $xeList.getRowId(row);
|
|
1720
|
+
return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid];
|
|
1721
|
+
},
|
|
1722
|
+
handleCrossListRowDragCancelEvent: function handleCrossListRowDragCancelEvent() {
|
|
1723
|
+
var $xeList = this;
|
|
1724
|
+
$xeList.clearRowDragData();
|
|
1725
|
+
$xeList.clearCrossListDragStatus();
|
|
1726
|
+
},
|
|
1727
|
+
/**
|
|
1728
|
+
* 处理跨树拖拽完成
|
|
1729
|
+
*/
|
|
1730
|
+
handleCrossListRowDragFinishEvent: function handleCrossListRowDragFinishEvent(evnt) {
|
|
1731
|
+
var $xeList = this;
|
|
1732
|
+
var reactData = $xeList.reactData;
|
|
1733
|
+
var internalData = $xeList.internalData;
|
|
1734
|
+
var crossListDragRowInfo = (0, _store.getCrossListDragRowInfo)($xeList);
|
|
1735
|
+
var rowList = reactData.rowList;
|
|
1736
|
+
var rowMaps = internalData.rowMaps;
|
|
1737
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1738
|
+
var animation = dragOpts.animation,
|
|
1739
|
+
isCrossListDrag = dragOpts.isCrossListDrag;
|
|
1740
|
+
var el = $xeList.$refs.refElem;
|
|
1741
|
+
if (!el) {
|
|
1742
|
+
return;
|
|
1743
|
+
}
|
|
1744
|
+
if (isCrossListDrag && crossListDragRowObj && crossListDragRowInfo) {
|
|
1745
|
+
var dragRow = crossListDragRowInfo.row;
|
|
1746
|
+
if (dragRow) {
|
|
1747
|
+
var dragRowid = $xeList.getRowId(dragRow);
|
|
1748
|
+
var dragRowRest = rowMaps[dragRowid];
|
|
1749
|
+
var dragRowHeight = 0;
|
|
1750
|
+
var rsIndex = -1;
|
|
1751
|
+
if (dragRowRest) {
|
|
1752
|
+
if (animation) {
|
|
1753
|
+
var oldItemEl = el.querySelector(".vxe-list--row[rowid=\"".concat(dragRowid, "\"]"));
|
|
1754
|
+
var targetItemEl = oldItemEl;
|
|
1755
|
+
if (targetItemEl) {
|
|
1756
|
+
dragRowHeight = targetItemEl.offsetHeight;
|
|
1757
|
+
}
|
|
1758
|
+
}
|
|
1759
|
+
rsIndex = dragRowRest.$index;
|
|
1760
|
+
}
|
|
1761
|
+
var dragRangeList = rsIndex > -1 && rsIndex < rowList.length - 1 ? rowList.slice(rsIndex + 1) : [];
|
|
1762
|
+
var dragList = [dragRow];
|
|
1763
|
+
$xeList.remove(dragList).then(function () {
|
|
1764
|
+
if (animation && dragRowHeight && dragRangeList.length) {
|
|
1765
|
+
var wrapperEl = el;
|
|
1766
|
+
var dtClss = [];
|
|
1767
|
+
dragRangeList.forEach(function (item) {
|
|
1768
|
+
var rowid = $xeList.getRowId(item);
|
|
1769
|
+
dtClss.push(".vxe-list--row[rowid=\"".concat(rowid, "\"]"));
|
|
1770
|
+
});
|
|
1771
|
+
var dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
1772
|
+
(0, _anime.moveRowAnimateToTb)(dtTrList, dragRowHeight);
|
|
1773
|
+
}
|
|
1774
|
+
});
|
|
1775
|
+
$xeList.dispatchEvent('row-remove-dragend', {
|
|
1776
|
+
row: dragRow
|
|
1777
|
+
}, evnt);
|
|
1778
|
+
$xeList.handleRowDragEndClearStatus();
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1781
|
+
},
|
|
1782
|
+
/**
|
|
1783
|
+
* 处理跨树拖至新的空树
|
|
1784
|
+
*/
|
|
1785
|
+
handleCrossListRowDragoverEmptyEvent: function handleCrossListRowDragoverEmptyEvent(evnt) {
|
|
1786
|
+
var $xeList = this;
|
|
1787
|
+
var reactData = $xeList.reactData;
|
|
1788
|
+
var internalData = $xeList.internalData;
|
|
1789
|
+
var rowList = reactData.rowList;
|
|
1790
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1791
|
+
var isCrossListDrag = dragOpts.isCrossListDrag;
|
|
1792
|
+
if (isCrossListDrag && crossListDragRowObj && !rowList.length) {
|
|
1793
|
+
var _crossListDragRowObj2 = crossListDragRowObj,
|
|
1794
|
+
$oldList = _crossListDragRowObj2.$oldList,
|
|
1795
|
+
$newList = _crossListDragRowObj2.$newList;
|
|
1796
|
+
if ($oldList) {
|
|
1797
|
+
var oldListReactData = $oldList;
|
|
1798
|
+
if ($oldList.xID !== $xeList.xID) {
|
|
1799
|
+
if ($newList && $newList.xID !== $xeList.xID) {
|
|
1800
|
+
$newList.hideCrossListRowDropClearStatus();
|
|
1801
|
+
}
|
|
1802
|
+
evnt.preventDefault();
|
|
1803
|
+
$oldList.hideCrossListRowDropClearStatus();
|
|
1804
|
+
crossListDragRowObj.$newList = $xeList;
|
|
1805
|
+
internalData.prevDragRow = null;
|
|
1806
|
+
reactData.dragTipText = oldListReactData.dragTipText;
|
|
1807
|
+
$xeList.showDropTip(evnt, evnt.currentTarget, true, '');
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
},
|
|
1812
|
+
/**
|
|
1813
|
+
* 处理跨树拖插入
|
|
1814
|
+
*/
|
|
1815
|
+
handleCrossListRowDragInsertEvent: function handleCrossListRowDragInsertEvent(evnt) {
|
|
1816
|
+
var $xeList = this;
|
|
1817
|
+
var reactData = $xeList.reactData;
|
|
1818
|
+
var internalData = $xeList.internalData;
|
|
1819
|
+
var crossListDragRowInfo = (0, _store.getCrossListDragRowInfo)($xeList);
|
|
1820
|
+
var prevDragRow = internalData.prevDragRow,
|
|
1821
|
+
prevDragPos = internalData.prevDragPos;
|
|
1822
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1823
|
+
var animation = dragOpts.animation,
|
|
1824
|
+
isCrossListDrag = dragOpts.isCrossListDrag,
|
|
1825
|
+
dragEndMethod = dragOpts.dragEndMethod;
|
|
1826
|
+
// 跨表拖拽
|
|
1827
|
+
if (isCrossListDrag && crossListDragRowObj && crossListDragRowInfo) {
|
|
1828
|
+
var oldRow = crossListDragRowInfo.row;
|
|
1829
|
+
var _crossListDragRowObj3 = crossListDragRowObj,
|
|
1830
|
+
$oldList = _crossListDragRowObj3.$oldList;
|
|
1831
|
+
var el = $xeList.$refs.refElem;
|
|
1832
|
+
if (!el) {
|
|
1833
|
+
return;
|
|
1834
|
+
}
|
|
1835
|
+
if ($oldList && oldRow) {
|
|
1836
|
+
var dragRow = oldRow;
|
|
1837
|
+
var dragOffsetIndex = -1;
|
|
1838
|
+
if (prevDragRow) {
|
|
1839
|
+
dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
1840
|
+
}
|
|
1841
|
+
var dragParams = {
|
|
1842
|
+
oldRow: dragRow,
|
|
1843
|
+
newRow: prevDragRow,
|
|
1844
|
+
dragRow: dragRow,
|
|
1845
|
+
dragPos: prevDragPos,
|
|
1846
|
+
offsetIndex: dragOffsetIndex
|
|
1847
|
+
};
|
|
1848
|
+
var errRest = {
|
|
1849
|
+
status: false
|
|
1850
|
+
};
|
|
1851
|
+
Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(function (status) {
|
|
1852
|
+
if (!status) {
|
|
1853
|
+
if ($oldList) {
|
|
1854
|
+
if ($oldList.xID !== $xeList.xID) {
|
|
1855
|
+
$oldList.handleCrossListRowDragCancelEvent(evnt);
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
$xeList.handleRowDragEndClearStatus();
|
|
1859
|
+
return errRest;
|
|
1860
|
+
}
|
|
1861
|
+
var insertRest = Promise.resolve();
|
|
1862
|
+
var dragList = [dragRow];
|
|
1863
|
+
$oldList.handleCrossListRowDragFinishEvent(evnt);
|
|
1864
|
+
if (prevDragRow) {
|
|
1865
|
+
if (prevDragPos === 'bottom') {
|
|
1866
|
+
insertRest = $xeList.insertNextAt(dragList, prevDragRow);
|
|
1867
|
+
} else {
|
|
1868
|
+
insertRest = $xeList.insertAt(dragList, prevDragRow);
|
|
1869
|
+
}
|
|
1870
|
+
} else {
|
|
1871
|
+
insertRest = $xeList.insert(dragList);
|
|
1872
|
+
}
|
|
1873
|
+
$xeList.dispatchEvent('row-insert-dragend', {
|
|
1874
|
+
oldRow: oldRow,
|
|
1875
|
+
newRow: prevDragRow,
|
|
1876
|
+
dragRow: dragRow,
|
|
1877
|
+
dragPos: prevDragPos,
|
|
1878
|
+
offsetIndex: dragOffsetIndex
|
|
1879
|
+
}, evnt);
|
|
1880
|
+
$xeList.clearRowDragData();
|
|
1881
|
+
insertRest.then(function () {
|
|
1882
|
+
var rowList = reactData.rowList;
|
|
1883
|
+
var rowMaps = internalData.rowMaps;
|
|
1884
|
+
var oldRowid = $xeList.getRowId(dragRow);
|
|
1885
|
+
var oldRowRest = rowMaps[oldRowid];
|
|
1886
|
+
var dragRowHeight = 0;
|
|
1887
|
+
var rsIndex = -1;
|
|
1888
|
+
if (oldRowRest) {
|
|
1889
|
+
if (animation) {
|
|
1890
|
+
var oldItemEl = el.querySelector(".vxe-list--row[rowid=\"".concat(oldRowid, "\"]"));
|
|
1891
|
+
var targetItemEl = oldItemEl;
|
|
1892
|
+
if (targetItemEl) {
|
|
1893
|
+
dragRowHeight = targetItemEl.offsetHeight;
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1896
|
+
rsIndex = oldRowRest.$index;
|
|
1897
|
+
}
|
|
1898
|
+
var dragRangeList = rsIndex > -1 ? rowList.slice(rsIndex) : [];
|
|
1899
|
+
if (animation && dragRowHeight && dragRangeList.length) {
|
|
1900
|
+
var wrapperEl = el;
|
|
1901
|
+
var dtClss = [];
|
|
1902
|
+
dragRangeList.forEach(function (item) {
|
|
1903
|
+
var rowid = $xeList.getRowId(item);
|
|
1904
|
+
dtClss.push(".vxe-list--row[rowid=\"".concat(rowid, "\"]"));
|
|
1905
|
+
});
|
|
1906
|
+
var dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
1907
|
+
(0, _anime.moveRowAnimateToTb)(dtTrList, -dragRowHeight);
|
|
1908
|
+
}
|
|
1909
|
+
});
|
|
1910
|
+
});
|
|
1911
|
+
}
|
|
1912
|
+
}
|
|
1913
|
+
},
|
|
1914
|
+
hideCrossListRowDropClearStatus: function hideCrossListRowDropClearStatus() {
|
|
1915
|
+
var $xeList = this;
|
|
1916
|
+
$xeList.hideDropTip();
|
|
1917
|
+
},
|
|
1918
|
+
handleContextmenuEvent: function handleContextmenuEvent(evnt, row) {
|
|
1919
|
+
var $xeList = this;
|
|
1920
|
+
var props = $xeList;
|
|
1921
|
+
var reactData = $xeList.reactData;
|
|
1922
|
+
var internalData = $xeList.internalData;
|
|
1923
|
+
var menuConfig = props.menuConfig;
|
|
1924
|
+
var menuOpts = $xeList.computeMenuOpts;
|
|
1925
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
1926
|
+
var isCurrent = rowOpts.isCurrent;
|
|
1927
|
+
if (menuConfig ? (0, _utils.isEnableConf)(menuOpts) : menuOpts.enabled) {
|
|
1928
|
+
var options = menuOpts.options,
|
|
1929
|
+
visibleMethod = menuOpts.visibleMethod;
|
|
1930
|
+
if (!visibleMethod || visibleMethod({
|
|
1931
|
+
$list: $xeList,
|
|
1932
|
+
options: options,
|
|
1933
|
+
row: row
|
|
1934
|
+
})) {
|
|
1935
|
+
if (isCurrent) {
|
|
1936
|
+
$xeList.changeCurrentEvent(evnt, row);
|
|
1937
|
+
} else if (internalData.currentRow) {
|
|
1938
|
+
internalData.currentRow = null;
|
|
1939
|
+
reactData.currRowFlag++;
|
|
1940
|
+
}
|
|
1941
|
+
if (_ui.VxeUI.contextMenu) {
|
|
1942
|
+
_ui.VxeUI.contextMenu.openByEvent(evnt, {
|
|
1943
|
+
options: options,
|
|
1944
|
+
events: {
|
|
1945
|
+
optionClick: function optionClick(eventParams) {
|
|
1946
|
+
var option = eventParams.option;
|
|
1947
|
+
var gMenuOpts = _ui.menus.get(option.code);
|
|
1948
|
+
var tmMethod = gMenuOpts ? gMenuOpts.listMenuMethod : null;
|
|
1949
|
+
var params = {
|
|
1950
|
+
menu: option,
|
|
1951
|
+
row: row,
|
|
1952
|
+
$event: evnt,
|
|
1953
|
+
$list: $xeList
|
|
1954
|
+
};
|
|
1955
|
+
if (tmMethod) {
|
|
1956
|
+
tmMethod(params, evnt);
|
|
1957
|
+
}
|
|
1958
|
+
$xeList.dispatchEvent('menu-click', params, eventParams.$event);
|
|
1959
|
+
}
|
|
1960
|
+
}
|
|
1961
|
+
});
|
|
1962
|
+
}
|
|
1963
|
+
}
|
|
1964
|
+
}
|
|
1965
|
+
$xeList.dispatchEvent('row-menu', {
|
|
1966
|
+
row: row
|
|
1967
|
+
}, evnt);
|
|
1968
|
+
},
|
|
1395
1969
|
//
|
|
1396
1970
|
// Render
|
|
1397
1971
|
//
|
|
@@ -1514,6 +2088,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1514
2088
|
var selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
1515
2089
|
currentRow = internalData.currentRow;
|
|
1516
2090
|
var contentSlot = slots.content;
|
|
2091
|
+
var extraSlot = slots.extra;
|
|
1517
2092
|
var dragOpts = $xeList.computeDragOpts;
|
|
1518
2093
|
var trigger = dragOpts.trigger,
|
|
1519
2094
|
icon = dragOpts.icon,
|
|
@@ -1575,6 +2150,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1575
2150
|
key: 'ct5',
|
|
1576
2151
|
class: 'vxe-list--row-content'
|
|
1577
2152
|
}, contentSlot ? contentSlot(rowParams) : contentField ? (0, _utils.getText)(row[contentField]) : ''));
|
|
2153
|
+
if (extraSlot) {
|
|
2154
|
+
ctVNs.push(h('div', {
|
|
2155
|
+
key: 'ct7',
|
|
2156
|
+
class: 'vxe-list--row-extra'
|
|
2157
|
+
}, extraSlot(rowParams)));
|
|
2158
|
+
}
|
|
1578
2159
|
var rowOns = {
|
|
1579
2160
|
mousedown: function mousedown(evnt) {
|
|
1580
2161
|
$xeList.handleRowMousedownEvent(evnt, row);
|
|
@@ -1585,6 +2166,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1585
2166
|
},
|
|
1586
2167
|
dblclick: function dblclick(evnt) {
|
|
1587
2168
|
$xeList.handleRowDblclickEvent(evnt, row);
|
|
2169
|
+
},
|
|
2170
|
+
contextmenu: function contextmenu(evnt) {
|
|
2171
|
+
$xeList.handleContextmenuEvent(evnt, row);
|
|
1588
2172
|
}
|
|
1589
2173
|
};
|
|
1590
2174
|
// 拖拽行事件
|
|
@@ -1629,16 +2213,22 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1629
2213
|
var radioOpts = $xeList.computeRadioOpts;
|
|
1630
2214
|
var checkboxOpts = $xeList.computeCheckboxOpts;
|
|
1631
2215
|
var dragOpts = $xeList.computeDragOpts;
|
|
1632
|
-
var trigger = dragOpts.trigger
|
|
2216
|
+
var trigger = dragOpts.trigger,
|
|
2217
|
+
isCrossListDrag = dragOpts.isCrossListDrag;
|
|
1633
2218
|
var rowOpts = $xeList.computeRowOpts;
|
|
1634
2219
|
var isHover = rowOpts.isHover,
|
|
1635
2220
|
padding = rowOpts.padding;
|
|
1636
2221
|
var showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
|
|
2222
|
+
var leOns = {};
|
|
2223
|
+
if (isCrossListDrag && !rowList.length) {
|
|
2224
|
+
leOns.dragover = $xeList.handleCrossListRowDragoverEmptyEvent;
|
|
2225
|
+
}
|
|
1637
2226
|
return h('div', {
|
|
1638
2227
|
ref: 'refElem',
|
|
1639
2228
|
class: ['vxe-list', className ? _xeUtils.default.isFunction(className) ? className({
|
|
1640
2229
|
$list: $xeList
|
|
1641
2230
|
}) : className : '', _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading)],
|
|
2231
|
+
on: leOns,
|
|
1642
2232
|
style: wrapperStyles
|
|
1643
2233
|
}, [headerSlot || showDefChekboxHead ? h('div', {
|
|
1644
2234
|
ref: 'refHeaderElem',
|
|
@@ -1759,13 +2349,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1759
2349
|
var $xeList = this;
|
|
1760
2350
|
var props = $xeList;
|
|
1761
2351
|
var internalData = $xeList.internalData;
|
|
1762
|
-
var
|
|
2352
|
+
var showSeq = props.showSeq,
|
|
2353
|
+
showRadio = props.showRadio,
|
|
1763
2354
|
showCheckbox = props.showCheckbox;
|
|
1764
2355
|
var rowOpts = $xeList.computeRowOpts;
|
|
1765
2356
|
var useKey = rowOpts.useKey,
|
|
1766
2357
|
keyField = rowOpts.keyField;
|
|
1767
2358
|
var isDrag = $xeList.computeIsDrag;
|
|
1768
2359
|
if (!keyField) {
|
|
2360
|
+
if (showSeq) {
|
|
2361
|
+
errLog('vxe.error.reqSupportProp', ['show-seq', 'row-config.keyField']);
|
|
2362
|
+
}
|
|
1769
2363
|
if (showRadio) {
|
|
1770
2364
|
errLog('vxe.error.reqSupportProp', ['show-radio', 'row-config.keyField']);
|
|
1771
2365
|
}
|