vxe-pc-ui 3.15.11 → 3.15.13
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/collapse/src/collapse.js +72 -36
- package/es/components.js +6 -0
- package/es/date-picker/src/date-picker.js +1 -0
- package/es/icon/style.css +1 -1
- package/es/image/src/image.js +14 -14
- package/es/language/ar-EG.js +4 -0
- package/es/language/de-DE.js +4 -0
- package/es/language/en-US.js +5 -1
- package/es/language/es-ES.js +4 -0
- package/es/language/fr-FR.js +4 -0
- package/es/language/hu-HU.js +4 -0
- package/es/language/hy-AM.js +4 -0
- package/es/language/id-ID.js +4 -0
- package/es/language/it-IT.js +4 -0
- package/es/language/ja-JP.js +4 -0
- package/es/language/ko-KR.js +4 -0
- package/es/language/ms-MY.js +4 -0
- package/es/language/nb-NO.js +4 -0
- package/es/language/pt-BR.js +4 -0
- package/es/language/ru-RU.js +4 -0
- package/es/language/th-TH.js +4 -0
- package/es/language/ug-CN.js +4 -0
- package/es/language/uk-UA.js +4 -0
- package/es/language/uz-UZ.js +4 -0
- package/es/language/vi-VN.js +4 -0
- package/es/language/zh-CHT.js +4 -0
- package/es/language/zh-CN.js +4 -0
- package/es/list/src/list.js +1260 -32
- package/es/list/src/store.js +8 -0
- package/es/list/style.css +333 -0
- package/es/list/style.min.css +1 -1
- package/es/print/src/util.js +1 -1
- package/es/pulldown/src/pulldown.js +4 -4
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-transfer/index.js +12 -0
- package/es/table-transfer/src/table-transfer.js +71 -0
- package/es/table-transfer/style.css +0 -0
- package/es/table-transfer/style.min.css +0 -0
- package/es/transfer/index.js +12 -0
- package/es/transfer/src/transfer.js +86 -0
- package/es/transfer/style.css +0 -0
- package/es/transfer/style.min.css +0 -0
- package/es/tree/src/tree.js +20 -26
- package/es/tree/src/util.js +0 -7
- package/es/tree-select/src/tree-select.js +8 -7
- package/es/ui/index.js +14 -2
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/utils.js +12 -0
- package/es/vxe-list/style.css +333 -0
- package/es/vxe-list/style.min.css +1 -1
- package/es/vxe-table-transfer/index.js +3 -0
- package/es/vxe-table-transfer/style.css +0 -0
- package/es/vxe-table-transfer/style.min.css +0 -0
- package/es/vxe-transfer/index.js +3 -0
- package/es/vxe-transfer/style.css +0 -0
- package/es/vxe-transfer/style.min.css +0 -0
- package/lib/collapse/src/collapse.js +74 -37
- package/lib/collapse/src/collapse.min.js +1 -1
- package/lib/components.js +25 -1
- package/lib/components.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +1 -0
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/image/src/image.js +17 -17
- package/lib/image/src/image.min.js +1 -1
- package/lib/index.umd.js +1792 -202
- package/lib/index.umd.min.js +1 -1
- package/lib/language/ar-EG.js +4 -0
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +4 -0
- package/lib/language/de-DE.js +4 -0
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +4 -0
- package/lib/language/en-US.js +5 -1
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +5 -1
- package/lib/language/es-ES.js +4 -0
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +4 -0
- package/lib/language/fr-FR.js +4 -0
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +4 -0
- package/lib/language/hu-HU.js +4 -0
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +4 -0
- package/lib/language/hy-AM.js +4 -0
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +4 -0
- package/lib/language/id-ID.js +4 -0
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +4 -0
- package/lib/language/it-IT.js +4 -0
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +4 -0
- package/lib/language/ja-JP.js +4 -0
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +4 -0
- package/lib/language/ko-KR.js +4 -0
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +4 -0
- package/lib/language/ms-MY.js +4 -0
- package/lib/language/ms-MY.min.js +1 -1
- package/lib/language/ms-MY.umd.js +4 -0
- package/lib/language/nb-NO.js +4 -0
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +4 -0
- package/lib/language/pt-BR.js +4 -0
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +4 -0
- package/lib/language/ru-RU.js +4 -0
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +4 -0
- package/lib/language/th-TH.js +4 -0
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +4 -0
- package/lib/language/ug-CN.js +4 -0
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +4 -0
- package/lib/language/uk-UA.js +4 -0
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +4 -0
- package/lib/language/uz-UZ.js +4 -0
- package/lib/language/uz-UZ.min.js +1 -1
- package/lib/language/uz-UZ.umd.js +4 -0
- package/lib/language/vi-VN.js +4 -0
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +4 -0
- package/lib/language/zh-CHT.js +4 -0
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +4 -0
- package/lib/language/zh-CN.js +4 -0
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +4 -0
- package/lib/list/src/list.js +1347 -36
- package/lib/list/src/list.min.js +1 -1
- package/lib/list/src/store.js +15 -0
- package/lib/list/src/store.min.js +1 -0
- package/lib/list/style/style.css +333 -0
- package/lib/list/style/style.min.css +1 -1
- package/lib/print/src/util.js +1 -1
- package/lib/print/src/util.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +4 -0
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-transfer/index.js +19 -0
- package/lib/table-transfer/index.min.js +1 -0
- package/lib/table-transfer/src/table-transfer.js +84 -0
- package/lib/table-transfer/src/table-transfer.min.js +1 -0
- package/lib/table-transfer/style/index.js +1 -0
- package/lib/table-transfer/style/style.css +0 -0
- package/lib/table-transfer/style/style.min.css +0 -0
- package/lib/transfer/index.js +19 -0
- package/lib/transfer/index.min.js +1 -0
- package/lib/transfer/src/transfer.js +93 -0
- package/lib/transfer/src/transfer.min.js +1 -0
- package/lib/transfer/style/index.js +1 -0
- package/lib/transfer/style/style.css +0 -0
- package/lib/transfer/style/style.min.css +0 -0
- package/lib/tree/src/tree.js +18 -28
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree/src/util.js +0 -10
- package/lib/tree/src/util.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +9 -6
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +14 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/src/utils.js +15 -0
- package/lib/ui/src/utils.min.js +1 -1
- package/lib/vxe-list/style/style.css +333 -0
- package/lib/vxe-list/style/style.min.css +1 -1
- package/lib/vxe-table-transfer/index.js +22 -0
- package/lib/vxe-table-transfer/index.min.js +1 -0
- package/lib/vxe-table-transfer/style/index.js +1 -0
- package/lib/vxe-table-transfer/style/style.css +0 -0
- package/lib/vxe-table-transfer/style/style.min.css +0 -0
- package/lib/vxe-transfer/index.js +22 -0
- package/lib/vxe-transfer/index.min.js +1 -0
- package/lib/vxe-transfer/style/index.js +1 -0
- package/lib/vxe-transfer/style/style.css +0 -0
- package/lib/vxe-transfer/style/style.min.css +0 -0
- package/package.json +1 -1
- package/packages/collapse/src/collapse.ts +79 -36
- package/packages/components.ts +6 -0
- package/packages/date-picker/src/date-picker.ts +1 -0
- package/packages/image/src/image.ts +14 -14
- package/packages/language/ar-EG.ts +4 -0
- package/packages/language/de-DE.ts +4 -0
- package/packages/language/en-US.ts +5 -1
- package/packages/language/es-ES.ts +4 -0
- package/packages/language/fr-FR.ts +4 -0
- package/packages/language/hu-HU.ts +4 -0
- package/packages/language/hy-AM.ts +4 -0
- package/packages/language/id-ID.ts +4 -0
- package/packages/language/it-IT.ts +4 -0
- package/packages/language/ja-JP.ts +4 -0
- package/packages/language/ko-KR.ts +4 -0
- package/packages/language/ms-MY.ts +4 -0
- package/packages/language/nb-NO.ts +4 -0
- package/packages/language/pt-BR.ts +4 -0
- package/packages/language/ru-RU.ts +4 -0
- package/packages/language/th-TH.ts +4 -0
- package/packages/language/ug-CN.ts +4 -0
- package/packages/language/uk-UA.ts +4 -0
- package/packages/language/uz-UZ.ts +4 -0
- package/packages/language/vi-VN.ts +4 -0
- package/packages/language/zh-CHT.ts +4 -0
- package/packages/language/zh-CN.ts +4 -0
- package/packages/list/src/list.ts +1366 -35
- package/packages/list/src/store.ts +15 -0
- package/packages/print/src/util.ts +1 -2
- package/packages/pulldown/src/pulldown.ts +4 -4
- package/packages/table-transfer/index.ts +16 -0
- package/packages/table-transfer/src/table-transfer.ts +88 -0
- package/packages/transfer/index.ts +16 -0
- package/packages/transfer/src/transfer.ts +103 -0
- package/packages/tree/src/tree.ts +20 -26
- package/packages/tree/src/util.ts +0 -10
- package/packages/tree-select/src/tree-select.ts +8 -7
- package/packages/ui/index.ts +14 -1
- package/packages/ui/src/utils.ts +15 -0
- package/styles/all.scss +2 -0
- package/styles/components/list.scss +245 -0
- package/styles/components/table-transfer.scss +0 -0
- package/styles/components/transfer.scss +0 -0
- package/styles/components/tree.scss +1 -0
- package/styles/theme/base.scss +3 -0
- package/styles/theme/dark.scss +10 -0
- package/styles/theme/light.scss +10 -0
- package/styles/variable.scss +11 -1
- package/types/all.d.ts +6 -0
- package/types/components/collapse.d.ts +5 -2
- package/types/components/list.d.ts +359 -19
- package/types/components/pulldown.d.ts +1 -0
- package/types/components/table-transfer.d.ts +77 -0
- package/types/components/table.d.ts +4 -0
- package/types/components/transfer.d.ts +77 -0
- package/types/components/tree-select.d.ts +4 -0
- package/types/components/tree.d.ts +1 -1
- package/types/ui/global-config.d.ts +4 -0
- package/types/ui/global-icon.d.ts +6 -1
- /package/es/icon/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
- /package/es/icon/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
- /package/es/icon/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
- /package/es/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
- /package/es/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
- /package/es/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
- /package/lib/icon/style/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
- /package/lib/{iconfont.1782358504076.ttf → iconfont.1782658257467.ttf} +0 -0
- /package/lib/{iconfont.1782358504076.woff → iconfont.1782658257467.woff} +0 -0
- /package/lib/{iconfont.1782358504076.woff2 → iconfont.1782658257467.woff2} +0 -0
package/lib/list/src/list.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -7,30 +8,60 @@ exports.default = void 0;
|
|
|
7
8
|
var _comp = require("../../ui/src/comp");
|
|
8
9
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
9
10
|
var _ui = require("../../ui");
|
|
11
|
+
var _store = require("./store");
|
|
10
12
|
var _dom = require("../../ui/src/dom");
|
|
13
|
+
var _utils = require("../../ui/src/utils");
|
|
11
14
|
var _vn = require("../../ui/src/vn");
|
|
15
|
+
var _log = require("../../ui/src/log");
|
|
16
|
+
var _anime = require("../../ui/src/anime");
|
|
12
17
|
var _loading = _interopRequireDefault(require("../../loading/src/loading"));
|
|
13
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
15
19
|
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; }
|
|
16
20
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
17
21
|
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); }
|
|
18
|
-
var
|
|
22
|
+
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
|
+
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
|
+
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
|
+
var _createComponentLog = (0, _log.createComponentLog)('tree'),
|
|
26
|
+
errLog = _createComponentLog.errLog;
|
|
27
|
+
function eqRowKey(rowKey1, rowKey2) {
|
|
28
|
+
return '' + rowKey1 === '' + rowKey2;
|
|
29
|
+
}
|
|
30
|
+
function getRowKeyByField(row, keyField) {
|
|
31
|
+
return row ? '' + (row[keyField] || '') : '';
|
|
32
|
+
}
|
|
33
|
+
function getRowIdByField(row, keyField) {
|
|
34
|
+
if (!row) {
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
var rowKey = getRowKeyByField(row, keyField);
|
|
38
|
+
return (0, _utils.enModelValue)(rowKey);
|
|
39
|
+
}
|
|
19
40
|
function createReactData() {
|
|
20
41
|
return {
|
|
21
42
|
scrollYLoad: false,
|
|
22
43
|
bodyHeight: 0,
|
|
44
|
+
headHeight: 0,
|
|
45
|
+
footHeight: 0,
|
|
23
46
|
customHeight: 0,
|
|
24
47
|
customMaxHeight: 0,
|
|
25
48
|
parentHeight: 0,
|
|
26
49
|
topSpaceHeight: 0,
|
|
27
|
-
|
|
50
|
+
rowList: [],
|
|
51
|
+
selectRadioRow: null,
|
|
52
|
+
currRowFlag: 1,
|
|
53
|
+
updateCheckboxFlag: 1,
|
|
54
|
+
isAllChecked: false,
|
|
55
|
+
isAllIndeterminate: false,
|
|
56
|
+
dragRow: null,
|
|
57
|
+
dragTipText: ''
|
|
28
58
|
};
|
|
29
59
|
}
|
|
30
60
|
function createInternalData() {
|
|
31
61
|
return {
|
|
32
62
|
resizeObserver: undefined,
|
|
33
63
|
fullData: [],
|
|
64
|
+
fullKeyMaps: {},
|
|
34
65
|
lastScrollLeft: 0,
|
|
35
66
|
lastScrollTop: 0,
|
|
36
67
|
scrollYStore: {
|
|
@@ -39,7 +70,11 @@ function createInternalData() {
|
|
|
39
70
|
visibleSize: 0,
|
|
40
71
|
offsetSize: 0,
|
|
41
72
|
rowHeight: 0
|
|
42
|
-
}
|
|
73
|
+
},
|
|
74
|
+
currentRow: null,
|
|
75
|
+
selectCheckboxMaps: {}
|
|
76
|
+
// prevDragRow: null,
|
|
77
|
+
// prevDragPos: ''
|
|
43
78
|
};
|
|
44
79
|
}
|
|
45
80
|
var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defineVxeComponent)({
|
|
@@ -64,6 +99,24 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
64
99
|
}
|
|
65
100
|
},
|
|
66
101
|
syncResize: [Boolean, String, Number],
|
|
102
|
+
showRadio: {
|
|
103
|
+
type: Boolean,
|
|
104
|
+
default: function _default() {
|
|
105
|
+
return (0, _ui.getConfig)().list.showRadio;
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
checkRowKey: [String, Number],
|
|
109
|
+
radioConfig: Object,
|
|
110
|
+
showCheckbox: {
|
|
111
|
+
type: Boolean,
|
|
112
|
+
default: function _default() {
|
|
113
|
+
return (0, _ui.getConfig)().list.showCheckbox;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
checkRowKeys: Array,
|
|
117
|
+
checkboxConfig: Object,
|
|
118
|
+
rowConfig: Object,
|
|
119
|
+
dragConfig: Object,
|
|
67
120
|
virtualYConfig: Object,
|
|
68
121
|
scrollY: Object
|
|
69
122
|
},
|
|
@@ -72,29 +125,85 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
72
125
|
var reactData = createReactData();
|
|
73
126
|
return Object.assign(Object.assign({}, {}), {
|
|
74
127
|
xID: xID,
|
|
75
|
-
reactData: reactData
|
|
128
|
+
reactData: reactData,
|
|
129
|
+
crossListDragRowInfo: _store.crossListDragRowGlobal,
|
|
130
|
+
reFlag: 0
|
|
76
131
|
});
|
|
77
132
|
},
|
|
78
133
|
computed: Object.assign(Object.assign({}, {}), {
|
|
134
|
+
computeRowOpts: function computeRowOpts() {
|
|
135
|
+
var $xeList = this;
|
|
136
|
+
var props = $xeList;
|
|
137
|
+
return Object.assign({}, (0, _ui.getConfig)().list.rowConfig, props.rowConfig);
|
|
138
|
+
},
|
|
139
|
+
computeDragOpts: function computeDragOpts() {
|
|
140
|
+
var $xeList = this;
|
|
141
|
+
var props = $xeList;
|
|
142
|
+
return Object.assign({}, (0, _ui.getConfig)().list.dragConfig, props.dragConfig);
|
|
143
|
+
},
|
|
79
144
|
computeSYOpts: function computeSYOpts() {
|
|
80
145
|
var $xeList = this;
|
|
81
146
|
var props = $xeList;
|
|
82
147
|
return Object.assign({}, (0, _ui.getConfig)().list.virtualYConfig || (0, _ui.getConfig)().list.scrollY, props.virtualYConfig || props.scrollY);
|
|
83
148
|
},
|
|
84
|
-
|
|
149
|
+
computeKeyField: function computeKeyField() {
|
|
150
|
+
var $xeList = this;
|
|
151
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
152
|
+
var keyField = rowOpts.keyField;
|
|
153
|
+
return keyField || '';
|
|
154
|
+
},
|
|
155
|
+
computeIsDrag: function computeIsDrag() {
|
|
156
|
+
var $xeList = this;
|
|
157
|
+
var props = $xeList;
|
|
158
|
+
var dragConfig = props.dragConfig;
|
|
159
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
160
|
+
return dragConfig && (0, _utils.isEnableConf)(dragOpts);
|
|
161
|
+
},
|
|
162
|
+
computeRowHeight: function computeRowHeight() {
|
|
163
|
+
var $xeList = this;
|
|
164
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
165
|
+
var height = rowOpts.height;
|
|
166
|
+
return height;
|
|
167
|
+
},
|
|
168
|
+
computeRadioOpts: function computeRadioOpts() {
|
|
169
|
+
var $xeList = this;
|
|
170
|
+
var props = $xeList;
|
|
171
|
+
return Object.assign({
|
|
172
|
+
showIcon: true
|
|
173
|
+
}, (0, _ui.getConfig)().list.radioConfig, props.radioConfig);
|
|
174
|
+
},
|
|
175
|
+
computeCheckboxOpts: function computeCheckboxOpts() {
|
|
176
|
+
var $xeList = this;
|
|
177
|
+
var props = $xeList;
|
|
178
|
+
return Object.assign({
|
|
179
|
+
showIcon: true
|
|
180
|
+
}, (0, _ui.getConfig)().list.checkboxConfig, props.checkboxConfig);
|
|
181
|
+
},
|
|
182
|
+
computeWrapperStyles: function computeWrapperStyles() {
|
|
183
|
+
var $xeList = this;
|
|
184
|
+
var rowHeight = $xeList.computeRowHeight;
|
|
185
|
+
var style = {};
|
|
186
|
+
if (rowHeight) {
|
|
187
|
+
style['--vxe-ui-list-row-height'] = (0, _dom.toCssUnit)(rowHeight);
|
|
188
|
+
}
|
|
189
|
+
return style;
|
|
190
|
+
},
|
|
191
|
+
computeVirtualStyles: function computeVirtualStyles() {
|
|
85
192
|
var $xeList = this;
|
|
86
193
|
var props = $xeList;
|
|
87
194
|
var reactData = $xeList.reactData;
|
|
88
195
|
var height = props.height,
|
|
89
196
|
maxHeight = props.maxHeight;
|
|
90
197
|
var customHeight = reactData.customHeight,
|
|
91
|
-
customMaxHeight = reactData.customMaxHeight
|
|
198
|
+
customMaxHeight = reactData.customMaxHeight,
|
|
199
|
+
headHeight = reactData.headHeight,
|
|
200
|
+
footHeight = reactData.footHeight;
|
|
92
201
|
var style = {};
|
|
93
202
|
if (height) {
|
|
94
|
-
style.height =
|
|
203
|
+
style.height = (0, _dom.toCssUnit)(Math.max(20, customHeight - headHeight - footHeight));
|
|
95
204
|
} else if (maxHeight) {
|
|
96
205
|
style.height = 'auto';
|
|
97
|
-
style.maxHeight =
|
|
206
|
+
style.maxHeight = (0, _dom.toCssUnit)(Math.max(20, customMaxHeight - headHeight - footHeight));
|
|
98
207
|
}
|
|
99
208
|
return style;
|
|
100
209
|
}
|
|
@@ -109,6 +218,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
109
218
|
$list: $xeList
|
|
110
219
|
}, params));
|
|
111
220
|
},
|
|
221
|
+
emitCheckboxMode: function emitCheckboxMode(value) {
|
|
222
|
+
var $xeList = this;
|
|
223
|
+
$xeList.$emit('update:checkRowKeys', value);
|
|
224
|
+
},
|
|
225
|
+
emitRadioMode: function emitRadioMode(value) {
|
|
226
|
+
var $xeList = this;
|
|
227
|
+
$xeList.$emit('update:checkRowKey', value);
|
|
228
|
+
},
|
|
112
229
|
callSlot: function callSlot(slotFunc, params, h) {
|
|
113
230
|
var $xeList = this;
|
|
114
231
|
var slots = $xeList.$scopedSlots;
|
|
@@ -122,6 +239,66 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
122
239
|
}
|
|
123
240
|
return [];
|
|
124
241
|
},
|
|
242
|
+
getRowId: function getRowId(row) {
|
|
243
|
+
var $xeList = this;
|
|
244
|
+
var keyField = $xeList.computeKeyField;
|
|
245
|
+
return getRowIdByField(row, keyField);
|
|
246
|
+
},
|
|
247
|
+
updateRadioModeValue: function updateRadioModeValue() {
|
|
248
|
+
var $xeList = this;
|
|
249
|
+
var props = $xeList;
|
|
250
|
+
var reactData = $xeList.reactData;
|
|
251
|
+
var internalData = $xeList.internalData;
|
|
252
|
+
var checkRowKey = props.checkRowKey;
|
|
253
|
+
var fullKeyMaps = internalData.fullKeyMaps;
|
|
254
|
+
if (checkRowKey) {
|
|
255
|
+
var row = fullKeyMaps[checkRowKey];
|
|
256
|
+
reactData.selectRadioRow = row || null;
|
|
257
|
+
} else {
|
|
258
|
+
reactData.selectRadioRow = null;
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
updateCheckboxModeValue: function updateCheckboxModeValue() {
|
|
262
|
+
var $xeList = this;
|
|
263
|
+
var props = $xeList;
|
|
264
|
+
var internalData = $xeList.internalData;
|
|
265
|
+
var checkRowKeys = props.checkRowKeys;
|
|
266
|
+
var fullKeyMaps = internalData.fullKeyMaps;
|
|
267
|
+
var keyField = $xeList.computeKeyField;
|
|
268
|
+
var selectMaps = {};
|
|
269
|
+
if (checkRowKeys && checkRowKeys.length) {
|
|
270
|
+
var _iterator = _createForOfIteratorHelper(checkRowKeys),
|
|
271
|
+
_step;
|
|
272
|
+
try {
|
|
273
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
274
|
+
var rowKey = _step.value;
|
|
275
|
+
var row = fullKeyMaps[rowKey];
|
|
276
|
+
if (row) {
|
|
277
|
+
var rowid = getRowIdByField(row, keyField);
|
|
278
|
+
selectMaps[rowid] = row;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
} catch (err) {
|
|
282
|
+
_iterator.e(err);
|
|
283
|
+
} finally {
|
|
284
|
+
_iterator.f();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
internalData.selectCheckboxMaps = selectMaps;
|
|
288
|
+
$xeList.updateCheckboxStatus();
|
|
289
|
+
},
|
|
290
|
+
cacheRowMap: function cacheRowMap() {
|
|
291
|
+
var $xeList = this;
|
|
292
|
+
var internalData = $xeList.internalData;
|
|
293
|
+
var fullData = internalData.fullData;
|
|
294
|
+
var keyField = $xeList.computeKeyField;
|
|
295
|
+
var keyMaps = {};
|
|
296
|
+
fullData.forEach(function (row) {
|
|
297
|
+
var rowKey = getRowKeyByField(row, keyField);
|
|
298
|
+
keyMaps[rowKey] = row;
|
|
299
|
+
});
|
|
300
|
+
internalData.fullKeyMaps = keyMaps;
|
|
301
|
+
},
|
|
125
302
|
/**
|
|
126
303
|
* 加载数据
|
|
127
304
|
* @param {Array} datas 数据
|
|
@@ -141,7 +318,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
141
318
|
internalData.fullData = fullData;
|
|
142
319
|
// 如果gt为0,则总是启用
|
|
143
320
|
reactData.scrollYLoad = !!sYOpts.enabled && sYOpts.gt > -1 && (sYOpts.gt === 0 || sYOpts.gt <= fullData.length);
|
|
321
|
+
$xeList.cacheRowMap();
|
|
144
322
|
$xeList.handleData();
|
|
323
|
+
$xeList.updateRadioModeValue();
|
|
324
|
+
$xeList.updateCheckboxModeValue();
|
|
145
325
|
return $xeList.computeScrollLoad().then(function () {
|
|
146
326
|
$xeList.refreshScroll();
|
|
147
327
|
});
|
|
@@ -155,6 +335,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
155
335
|
$xeList.clearScroll();
|
|
156
336
|
return $xeList.loadData(datas);
|
|
157
337
|
},
|
|
338
|
+
getFullData: function getFullData() {
|
|
339
|
+
var $xeList = this;
|
|
340
|
+
var internalData = $xeList.internalData;
|
|
341
|
+
var fullData = internalData.fullData;
|
|
342
|
+
return fullData;
|
|
343
|
+
},
|
|
158
344
|
calcTableHeight: function calcTableHeight(key) {
|
|
159
345
|
var $xeList = this;
|
|
160
346
|
var props = $xeList;
|
|
@@ -179,6 +365,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
179
365
|
updateHeight: function updateHeight() {
|
|
180
366
|
var $xeList = this;
|
|
181
367
|
var reactData = $xeList.reactData;
|
|
368
|
+
var headEl = $xeList.$refs.refHeaderElem;
|
|
369
|
+
var footEl = $xeList.$refs.refFooterElem;
|
|
370
|
+
reactData.headHeight = headEl ? Math.floor(headEl.offsetHeight) : 0;
|
|
371
|
+
reactData.footHeight = footEl ? Math.floor(footEl.offsetHeight) : 0;
|
|
182
372
|
reactData.customHeight = $xeList.calcTableHeight('height');
|
|
183
373
|
reactData.customMaxHeight = $xeList.calcTableHeight('maxHeight');
|
|
184
374
|
},
|
|
@@ -199,7 +389,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
199
389
|
var scrollYLoad = reactData.scrollYLoad;
|
|
200
390
|
var fullData = internalData.fullData,
|
|
201
391
|
scrollYStore = internalData.scrollYStore;
|
|
202
|
-
reactData.
|
|
392
|
+
reactData.rowList = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
|
|
203
393
|
return $xeList.$nextTick();
|
|
204
394
|
},
|
|
205
395
|
updateYData: function updateYData() {
|
|
@@ -211,23 +401,24 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
211
401
|
var $xeList = this;
|
|
212
402
|
var reactData = $xeList.reactData;
|
|
213
403
|
var internalData = $xeList.internalData;
|
|
404
|
+
var browseObj = $xeList.browseObj;
|
|
214
405
|
return $xeList.$nextTick().then(function () {
|
|
215
406
|
var scrollYLoad = reactData.scrollYLoad;
|
|
216
407
|
var scrollYStore = internalData.scrollYStore;
|
|
217
408
|
var virtualBodyElem = $xeList.$refs.refVirtualBody;
|
|
218
409
|
var sYOpts = $xeList.computeSYOpts;
|
|
219
410
|
var rowHeight = 0;
|
|
220
|
-
var
|
|
411
|
+
var firstRowElem;
|
|
221
412
|
if (virtualBodyElem) {
|
|
222
413
|
if (sYOpts.sItem) {
|
|
223
|
-
|
|
414
|
+
firstRowElem = virtualBodyElem.querySelector(sYOpts.sItem);
|
|
224
415
|
}
|
|
225
|
-
if (!
|
|
226
|
-
|
|
416
|
+
if (!firstRowElem) {
|
|
417
|
+
firstRowElem = virtualBodyElem.children[0];
|
|
227
418
|
}
|
|
228
419
|
}
|
|
229
|
-
if (
|
|
230
|
-
rowHeight =
|
|
420
|
+
if (firstRowElem) {
|
|
421
|
+
rowHeight = firstRowElem.offsetHeight;
|
|
231
422
|
}
|
|
232
423
|
rowHeight = Math.max(12, rowHeight);
|
|
233
424
|
scrollYStore.rowHeight = rowHeight;
|
|
@@ -362,31 +553,1100 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
362
553
|
isY: isY
|
|
363
554
|
}, evnt);
|
|
364
555
|
},
|
|
556
|
+
getRowKey: function getRowKey(row) {
|
|
557
|
+
var $xeList = this;
|
|
558
|
+
var keyField = $xeList.computeKeyField;
|
|
559
|
+
return getRowKeyByField(row, keyField);
|
|
560
|
+
},
|
|
561
|
+
eqRowKey: eqRowKey,
|
|
562
|
+
eqRow: function eqRow(row1, row2) {
|
|
563
|
+
var $xeList = this;
|
|
564
|
+
if (row1 && row2) {
|
|
565
|
+
if (row1 === row2) {
|
|
566
|
+
return true;
|
|
567
|
+
}
|
|
568
|
+
return eqRowKey($xeList.getRowId(row1), $xeList.getRowId(row2));
|
|
569
|
+
}
|
|
570
|
+
return false;
|
|
571
|
+
},
|
|
572
|
+
eqRowByKey: function eqRowByKey(row, rowKey) {
|
|
573
|
+
var $xeList = this;
|
|
574
|
+
return row && eqRowKey($xeList.getRowKey(row), rowKey);
|
|
575
|
+
},
|
|
576
|
+
findRow: function findRow(list, row) {
|
|
577
|
+
var $xeList = this;
|
|
578
|
+
return row ? _xeUtils.default.find(list, function (obj) {
|
|
579
|
+
return $xeList.eqRow(obj, row);
|
|
580
|
+
}) : null;
|
|
581
|
+
},
|
|
582
|
+
findRowByKey: function findRowByKey(list, rowId) {
|
|
583
|
+
var $xeList = this;
|
|
584
|
+
var keyField = $xeList.computeKeyField;
|
|
585
|
+
return _xeUtils.default.find(list, function (obj) {
|
|
586
|
+
return eqRowKey(getRowIdByField(obj, keyField), rowId);
|
|
587
|
+
});
|
|
588
|
+
},
|
|
589
|
+
findRowIndexOf: function findRowIndexOf(list, row) {
|
|
590
|
+
var $xeList = this;
|
|
591
|
+
return row ? _xeUtils.default.findIndexOf(list, function (obj) {
|
|
592
|
+
return $xeList.eqRow(obj, row);
|
|
593
|
+
}) : -1;
|
|
594
|
+
},
|
|
595
|
+
findRowIndexOfByKey: function findRowIndexOfByKey(list, rowKey) {
|
|
596
|
+
var $xeList = this;
|
|
597
|
+
var keyField = $xeList.computeKeyField;
|
|
598
|
+
return _xeUtils.default.findIndexOf(list, function (obj) {
|
|
599
|
+
return eqRowKey(getRowIdByField(obj, keyField), rowKey);
|
|
600
|
+
});
|
|
601
|
+
},
|
|
602
|
+
isCheckedByRadioRowKey: function isCheckedByRadioRowKey(rowKey) {
|
|
603
|
+
var $xeList = this;
|
|
604
|
+
var reactData = $xeList.reactData;
|
|
605
|
+
var selectRadioRow = reactData.selectRadioRow;
|
|
606
|
+
return $xeList.getRowKey(selectRadioRow) === rowKey;
|
|
607
|
+
},
|
|
608
|
+
isCheckedByRadioRow: function isCheckedByRadioRow(row) {
|
|
609
|
+
var $xeList = this;
|
|
610
|
+
return $xeList.isCheckedByRadioRowKey($xeList.getRowKey(row));
|
|
611
|
+
},
|
|
612
|
+
isCheckedByCheckboxRowKey: function isCheckedByCheckboxRowKey(rowid) {
|
|
613
|
+
var $xeList = this;
|
|
614
|
+
var reactData = $xeList.reactData;
|
|
615
|
+
var internalData = $xeList.internalData;
|
|
616
|
+
var updateCheckboxFlag = reactData.updateCheckboxFlag;
|
|
617
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
618
|
+
return !!(updateCheckboxFlag && selectCheckboxMaps[rowid]);
|
|
619
|
+
},
|
|
620
|
+
isCheckedByCheckboxRow: function isCheckedByCheckboxRow(row) {
|
|
621
|
+
var $xeList = this;
|
|
622
|
+
return $xeList.isCheckedByCheckboxRowKey($xeList.getRowKey(row));
|
|
623
|
+
},
|
|
624
|
+
setCurrentRow: function setCurrentRow(row) {
|
|
625
|
+
var $xeList = this;
|
|
626
|
+
var reactData = $xeList.reactData;
|
|
627
|
+
var internalData = $xeList.internalData;
|
|
628
|
+
internalData.currentRow = row;
|
|
629
|
+
reactData.currRowFlag++;
|
|
630
|
+
return $xeList.$nextTick();
|
|
631
|
+
},
|
|
632
|
+
setCurrentRowByKey: function setCurrentRowByKey(rowKey) {
|
|
633
|
+
var $xeList = this;
|
|
634
|
+
var reactData = $xeList.reactData;
|
|
635
|
+
var internalData = $xeList.internalData;
|
|
636
|
+
var fullData = internalData.fullData;
|
|
637
|
+
internalData.currentRow = $xeList.findRowByKey(fullData, rowKey);
|
|
638
|
+
reactData.currRowFlag++;
|
|
639
|
+
return $xeList.$nextTick();
|
|
640
|
+
},
|
|
641
|
+
getCurrentRow: function getCurrentRow() {
|
|
642
|
+
var $xeList = this;
|
|
643
|
+
var internalData = $xeList.internalData;
|
|
644
|
+
var currentRow = internalData.currentRow;
|
|
645
|
+
return currentRow;
|
|
646
|
+
},
|
|
647
|
+
getCurrentRowKey: function getCurrentRowKey() {
|
|
648
|
+
var $xeList = this;
|
|
649
|
+
var internalData = $xeList.internalData;
|
|
650
|
+
var currentRow = internalData.currentRow;
|
|
651
|
+
return currentRow ? $xeList.getRowKey(currentRow) : null;
|
|
652
|
+
},
|
|
653
|
+
clearCurrentRow: function clearCurrentRow() {
|
|
654
|
+
var $xeList = this;
|
|
655
|
+
var reactData = $xeList.reactData;
|
|
656
|
+
var internalData = $xeList.internalData;
|
|
657
|
+
internalData.currentRow = null;
|
|
658
|
+
reactData.currRowFlag++;
|
|
659
|
+
return $xeList.$nextTick();
|
|
660
|
+
},
|
|
661
|
+
setRadioRow: function setRadioRow(row) {
|
|
662
|
+
var $xeList = this;
|
|
663
|
+
var reactData = $xeList.reactData;
|
|
664
|
+
reactData.selectRadioRow = row;
|
|
665
|
+
var value = $xeList.getRowKey(row);
|
|
666
|
+
$xeList.emitRadioMode(value);
|
|
667
|
+
return $xeList.$nextTick();
|
|
668
|
+
},
|
|
669
|
+
setRadioRowByKey: function setRadioRowByKey(rowKey) {
|
|
670
|
+
var $xeList = this;
|
|
671
|
+
var reactData = $xeList.reactData;
|
|
672
|
+
var internalData = $xeList.internalData;
|
|
673
|
+
var fullData = internalData.fullData;
|
|
674
|
+
reactData.selectRadioRow = $xeList.findRowByKey(fullData, rowKey);
|
|
675
|
+
var value = rowKey;
|
|
676
|
+
$xeList.emitRadioMode(value);
|
|
677
|
+
return $xeList.$nextTick();
|
|
678
|
+
},
|
|
679
|
+
getRadioRow: function getRadioRow() {
|
|
680
|
+
var $xeList = this;
|
|
681
|
+
var reactData = $xeList.reactData;
|
|
682
|
+
var selectRadioRow = reactData.selectRadioRow;
|
|
683
|
+
return selectRadioRow;
|
|
684
|
+
},
|
|
685
|
+
getRadioRowKey: function getRadioRowKey() {
|
|
686
|
+
var $xeList = this;
|
|
687
|
+
var reactData = $xeList.reactData;
|
|
688
|
+
var selectRadioRow = reactData.selectRadioRow;
|
|
689
|
+
return selectRadioRow ? $xeList.getRowKey(selectRadioRow) : null;
|
|
690
|
+
},
|
|
691
|
+
clearRadioRow: function clearRadioRow() {
|
|
692
|
+
var $xeList = this;
|
|
693
|
+
var reactData = $xeList.reactData;
|
|
694
|
+
var value = null;
|
|
695
|
+
reactData.selectRadioRow = value;
|
|
696
|
+
$xeList.emitRadioMode(value);
|
|
697
|
+
return $xeList.$nextTick();
|
|
698
|
+
},
|
|
699
|
+
setCheckboxRow: function setCheckboxRow(row, checked) {
|
|
700
|
+
var $xeList = this;
|
|
701
|
+
var internalData = $xeList.internalData;
|
|
702
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
703
|
+
var keyField = $xeList.computeKeyField;
|
|
704
|
+
var rowList = row ? _xeUtils.default.isArray(row) ? row : [row] : [];
|
|
705
|
+
rowList.forEach(checked ? function (obj) {
|
|
706
|
+
var rowid = getRowIdByField(obj, keyField);
|
|
707
|
+
if (!selectCheckboxMaps[rowid]) {
|
|
708
|
+
selectCheckboxMaps[rowid] = obj;
|
|
709
|
+
}
|
|
710
|
+
} : function (obj) {
|
|
711
|
+
var rowid = getRowIdByField(obj, keyField);
|
|
712
|
+
if (selectCheckboxMaps[rowid]) {
|
|
713
|
+
delete selectCheckboxMaps[rowid];
|
|
714
|
+
}
|
|
715
|
+
});
|
|
716
|
+
var value = $xeList.getCheckboxRowKeys();
|
|
717
|
+
$xeList.emitCheckboxMode(value);
|
|
718
|
+
return $xeList.updateCheckboxStatus();
|
|
719
|
+
},
|
|
720
|
+
setCheckboxRowByKey: function setCheckboxRowByKey(rowKey, checked) {
|
|
721
|
+
var $xeList = this;
|
|
722
|
+
var internalData = $xeList.internalData;
|
|
723
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
724
|
+
fullKeyMaps = internalData.fullKeyMaps;
|
|
725
|
+
var keyField = $xeList.computeKeyField;
|
|
726
|
+
var rowKeys = rowKey ? _xeUtils.default.isArray(rowKey) ? rowKey : [rowKey] : [];
|
|
727
|
+
rowKeys.forEach(checked ? function (key) {
|
|
728
|
+
var row = fullKeyMaps[key || ''];
|
|
729
|
+
if (row) {
|
|
730
|
+
var rowid = getRowIdByField(row, keyField);
|
|
731
|
+
if (row && !selectCheckboxMaps[rowid]) {
|
|
732
|
+
selectCheckboxMaps[rowid] = row;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
} : function (key) {
|
|
736
|
+
var row = fullKeyMaps[key || ''];
|
|
737
|
+
if (row) {
|
|
738
|
+
var rowid = getRowIdByField(row, keyField);
|
|
739
|
+
if (selectCheckboxMaps[rowid]) {
|
|
740
|
+
delete selectCheckboxMaps[rowid];
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
});
|
|
744
|
+
var value = $xeList.getCheckboxRowKeys();
|
|
745
|
+
$xeList.emitCheckboxMode(value);
|
|
746
|
+
return $xeList.updateCheckboxStatus();
|
|
747
|
+
},
|
|
748
|
+
getCheckboxRows: function getCheckboxRows() {
|
|
749
|
+
var $xeList = this;
|
|
750
|
+
var reactData = $xeList.reactData;
|
|
751
|
+
var internalData = $xeList.internalData;
|
|
752
|
+
var updateCheckboxFlag = reactData.updateCheckboxFlag;
|
|
753
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
754
|
+
var rowList = [];
|
|
755
|
+
if (updateCheckboxFlag) {
|
|
756
|
+
_xeUtils.default.each(selectCheckboxMaps, function (row) {
|
|
757
|
+
if (row) {
|
|
758
|
+
rowList.push(row);
|
|
759
|
+
}
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
return rowList;
|
|
763
|
+
},
|
|
764
|
+
getCheckboxRowKeys: function getCheckboxRowKeys() {
|
|
765
|
+
var $xeList = this;
|
|
766
|
+
var reactData = $xeList.reactData;
|
|
767
|
+
var internalData = $xeList.internalData;
|
|
768
|
+
var updateCheckboxFlag = reactData.updateCheckboxFlag;
|
|
769
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
770
|
+
var keyField = $xeList.computeKeyField;
|
|
771
|
+
var rowKeys = [];
|
|
772
|
+
if (updateCheckboxFlag) {
|
|
773
|
+
_xeUtils.default.each(selectCheckboxMaps, function (row) {
|
|
774
|
+
if (row) {
|
|
775
|
+
var rowKey = getRowKeyByField(row, keyField);
|
|
776
|
+
rowKeys.push(rowKey);
|
|
777
|
+
}
|
|
778
|
+
});
|
|
779
|
+
}
|
|
780
|
+
return rowKeys;
|
|
781
|
+
},
|
|
782
|
+
clearCheckboxRow: function clearCheckboxRow() {
|
|
783
|
+
var $xeList = this;
|
|
784
|
+
var reactData = $xeList.reactData;
|
|
785
|
+
var internalData = $xeList.internalData;
|
|
786
|
+
internalData.selectCheckboxMaps = {};
|
|
787
|
+
reactData.updateCheckboxFlag++;
|
|
788
|
+
reactData.isAllChecked = false;
|
|
789
|
+
reactData.isAllIndeterminate = false;
|
|
790
|
+
var value = [];
|
|
791
|
+
$xeList.emitCheckboxMode(value);
|
|
792
|
+
return $xeList.$nextTick();
|
|
793
|
+
},
|
|
794
|
+
setAllCheckboxRow: function setAllCheckboxRow(checked) {
|
|
795
|
+
var $xeList = this;
|
|
796
|
+
var internalData = $xeList.internalData;
|
|
797
|
+
var fullData = internalData.fullData,
|
|
798
|
+
selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
799
|
+
var keyField = $xeList.computeKeyField;
|
|
800
|
+
if (checked) {
|
|
801
|
+
var value = [];
|
|
802
|
+
var _iterator2 = _createForOfIteratorHelper(fullData),
|
|
803
|
+
_step2;
|
|
804
|
+
try {
|
|
805
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
806
|
+
var row = _step2.value;
|
|
807
|
+
var rowKey = getRowKeyByField(row, keyField);
|
|
808
|
+
var rowid = getRowIdByField(row, keyField);
|
|
809
|
+
selectCheckboxMaps[rowid] = row;
|
|
810
|
+
value.push(rowKey);
|
|
811
|
+
}
|
|
812
|
+
} catch (err) {
|
|
813
|
+
_iterator2.e(err);
|
|
814
|
+
} finally {
|
|
815
|
+
_iterator2.f();
|
|
816
|
+
}
|
|
817
|
+
$xeList.emitCheckboxMode(value);
|
|
818
|
+
return $xeList.updateCheckboxStatus();
|
|
819
|
+
}
|
|
820
|
+
return $xeList.clearCheckboxRow();
|
|
821
|
+
},
|
|
822
|
+
updateCheckboxStatus: function updateCheckboxStatus() {
|
|
823
|
+
var $xeList = this;
|
|
824
|
+
var reactData = $xeList.reactData;
|
|
825
|
+
var internalData = $xeList.internalData;
|
|
826
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
827
|
+
fullData = internalData.fullData;
|
|
828
|
+
var keyField = $xeList.computeKeyField;
|
|
829
|
+
var checkboxOpts = $xeList.computeCheckboxOpts;
|
|
830
|
+
var checkMethod = checkboxOpts.checkMethod;
|
|
831
|
+
var hasChecked = false;
|
|
832
|
+
var hasUnchecked = false;
|
|
833
|
+
if (checkMethod) {
|
|
834
|
+
var _iterator3 = _createForOfIteratorHelper(fullData),
|
|
835
|
+
_step3;
|
|
836
|
+
try {
|
|
837
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
838
|
+
var row = _step3.value;
|
|
839
|
+
if (checkMethod({
|
|
840
|
+
row: row,
|
|
841
|
+
$list: $xeList
|
|
842
|
+
})) {
|
|
843
|
+
var rowid = getRowIdByField(row, keyField);
|
|
844
|
+
if (selectCheckboxMaps[rowid]) {
|
|
845
|
+
hasChecked = true;
|
|
846
|
+
} else {
|
|
847
|
+
hasUnchecked = true;
|
|
848
|
+
if (hasChecked) {
|
|
849
|
+
break;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
} catch (err) {
|
|
855
|
+
_iterator3.e(err);
|
|
856
|
+
} finally {
|
|
857
|
+
_iterator3.f();
|
|
858
|
+
}
|
|
859
|
+
} else {
|
|
860
|
+
var _iterator4 = _createForOfIteratorHelper(fullData),
|
|
861
|
+
_step4;
|
|
862
|
+
try {
|
|
863
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
864
|
+
var _row = _step4.value;
|
|
865
|
+
var _rowid = getRowIdByField(_row, keyField);
|
|
866
|
+
if (selectCheckboxMaps[_rowid]) {
|
|
867
|
+
hasChecked = true;
|
|
868
|
+
} else {
|
|
869
|
+
hasUnchecked = true;
|
|
870
|
+
if (hasChecked) {
|
|
871
|
+
break;
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
} catch (err) {
|
|
876
|
+
_iterator4.e(err);
|
|
877
|
+
} finally {
|
|
878
|
+
_iterator4.f();
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
reactData.isAllChecked = hasChecked && !hasUnchecked;
|
|
882
|
+
reactData.isAllIndeterminate = hasChecked && hasUnchecked;
|
|
883
|
+
reactData.updateCheckboxFlag++;
|
|
884
|
+
return $xeList.$nextTick();
|
|
885
|
+
},
|
|
886
|
+
changeCheckboxAllEvent: function changeCheckboxAllEvent(evnt) {
|
|
887
|
+
var $xeList = this;
|
|
888
|
+
var reactData = $xeList.reactData;
|
|
889
|
+
var isAllChecked = reactData.isAllChecked;
|
|
890
|
+
var isChecked = !isAllChecked;
|
|
891
|
+
if (isChecked) {
|
|
892
|
+
$xeList.setAllCheckboxRow(true);
|
|
893
|
+
} else {
|
|
894
|
+
$xeList.clearCheckboxRow();
|
|
895
|
+
}
|
|
896
|
+
$xeList.dispatchEvent('checkbox-all', {
|
|
897
|
+
checked: isChecked
|
|
898
|
+
}, evnt);
|
|
899
|
+
},
|
|
900
|
+
changeCheckboxEvent: function changeCheckboxEvent(evnt, row) {
|
|
901
|
+
var $xeList = this;
|
|
902
|
+
var reactData = $xeList.reactData;
|
|
903
|
+
var internalData = $xeList.internalData;
|
|
904
|
+
evnt.preventDefault();
|
|
905
|
+
evnt.stopPropagation();
|
|
906
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
907
|
+
var checkboxOpts = $xeList.computeCheckboxOpts;
|
|
908
|
+
var checkMethod = checkboxOpts.checkMethod;
|
|
909
|
+
var rowid = $xeList.getRowKey(row);
|
|
910
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
911
|
+
$list: $xeList,
|
|
912
|
+
row: row
|
|
913
|
+
}) : false;
|
|
914
|
+
if (isDisabled) {
|
|
915
|
+
return;
|
|
916
|
+
}
|
|
917
|
+
var isChecked = false;
|
|
918
|
+
if (selectCheckboxMaps[rowid]) {
|
|
919
|
+
delete selectCheckboxMaps[rowid];
|
|
920
|
+
} else {
|
|
921
|
+
isChecked = true;
|
|
922
|
+
selectCheckboxMaps[rowid] = row;
|
|
923
|
+
}
|
|
924
|
+
reactData.updateCheckboxFlag++;
|
|
925
|
+
$xeList.updateCheckboxStatus();
|
|
926
|
+
var rowids = _xeUtils.default.keys(selectCheckboxMaps);
|
|
927
|
+
var value = rowids.map(_utils.deModelValue);
|
|
928
|
+
$xeList.emitCheckboxMode(value);
|
|
929
|
+
$xeList.dispatchEvent('checkbox-change', {
|
|
930
|
+
row: row,
|
|
931
|
+
value: value,
|
|
932
|
+
checked: isChecked
|
|
933
|
+
}, evnt);
|
|
934
|
+
},
|
|
935
|
+
changeCurrentEvent: function changeCurrentEvent(evnt, row) {
|
|
936
|
+
var $xeList = this;
|
|
937
|
+
var reactData = $xeList.reactData;
|
|
938
|
+
var internalData = $xeList.internalData;
|
|
939
|
+
evnt.preventDefault();
|
|
940
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
941
|
+
var currentMethod = rowOpts.currentMethod;
|
|
942
|
+
var isDisabled = false;
|
|
943
|
+
if (currentMethod) {
|
|
944
|
+
isDisabled = !currentMethod({
|
|
945
|
+
row: row
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
if (isDisabled) {
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
951
|
+
var isChecked = true;
|
|
952
|
+
internalData.currentRow = row;
|
|
953
|
+
reactData.currRowFlag++;
|
|
954
|
+
$xeList.dispatchEvent('current-change', {
|
|
955
|
+
row: row,
|
|
956
|
+
checked: isChecked
|
|
957
|
+
}, evnt);
|
|
958
|
+
},
|
|
959
|
+
changeRadioEvent: function changeRadioEvent(evnt, row) {
|
|
960
|
+
var $xeList = this;
|
|
961
|
+
var reactData = $xeList.reactData;
|
|
962
|
+
evnt.preventDefault();
|
|
963
|
+
evnt.stopPropagation();
|
|
964
|
+
var selectRadioRow = reactData.selectRadioRow;
|
|
965
|
+
var radioOpts = $xeList.computeRadioOpts;
|
|
966
|
+
var strict = radioOpts.strict,
|
|
967
|
+
checkMethod = radioOpts.checkMethod;
|
|
968
|
+
var rowKey = $xeList.getRowKey(row);
|
|
969
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
970
|
+
$list: $xeList,
|
|
971
|
+
row: row
|
|
972
|
+
}) : false;
|
|
973
|
+
if (isDisabled) {
|
|
974
|
+
return;
|
|
975
|
+
}
|
|
976
|
+
var value = rowKey;
|
|
977
|
+
var isChecked = true;
|
|
978
|
+
if (strict) {
|
|
979
|
+
if (selectRadioRow && rowKey === $xeList.getRowKey(selectRadioRow)) {
|
|
980
|
+
isChecked = false;
|
|
981
|
+
reactData.selectRadioRow = null;
|
|
982
|
+
} else {
|
|
983
|
+
reactData.selectRadioRow = row;
|
|
984
|
+
}
|
|
985
|
+
} else {
|
|
986
|
+
reactData.selectRadioRow = row;
|
|
987
|
+
}
|
|
988
|
+
$xeList.emitRadioMode(value);
|
|
989
|
+
$xeList.dispatchEvent('radio-change', {
|
|
990
|
+
row: row,
|
|
991
|
+
value: value,
|
|
992
|
+
checked: isChecked
|
|
993
|
+
}, evnt);
|
|
994
|
+
},
|
|
995
|
+
clearRowDropOrigin: function clearRowDropOrigin() {
|
|
996
|
+
var $xeList = this;
|
|
997
|
+
var el = $xeList.$refs.refElem;
|
|
998
|
+
if (el) {
|
|
999
|
+
var clss = 'row--drag-origin';
|
|
1000
|
+
_xeUtils.default.arrayEach(el.querySelectorAll(".".concat(clss)), function (elem) {
|
|
1001
|
+
elem.draggable = false;
|
|
1002
|
+
(0, _dom.removeClass)(elem, clss);
|
|
1003
|
+
});
|
|
1004
|
+
}
|
|
1005
|
+
},
|
|
1006
|
+
updateRowDropOrigin: function updateRowDropOrigin(row) {
|
|
1007
|
+
var $xeList = this;
|
|
1008
|
+
var sYOpts = $xeList.computeSYOpts;
|
|
1009
|
+
var sItem = sYOpts.sItem;
|
|
1010
|
+
var el = $xeList.$refs.refElem;
|
|
1011
|
+
if (el) {
|
|
1012
|
+
var clss = 'row--drag-origin';
|
|
1013
|
+
var rowid = $xeList.getRowId(row);
|
|
1014
|
+
_xeUtils.default.arrayEach(el.querySelectorAll(".vxe-list--row[rowid=\"".concat(rowid, "\"]") + (sItem ? "".concat(sItem, "[rowid=\"").concat(rowid, "\"]") : '')), function (elem) {
|
|
1015
|
+
(0, _dom.addClass)(elem, clss);
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
updateRowDropTipContent: function updateRowDropTipContent(rowEl) {
|
|
1020
|
+
var $xeList = this;
|
|
1021
|
+
var reactData = $xeList.reactData;
|
|
1022
|
+
var dragRow = reactData.dragRow;
|
|
1023
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1024
|
+
var tooltipMethod = dragOpts.tooltipMethod;
|
|
1025
|
+
var rTooltipMethod = tooltipMethod;
|
|
1026
|
+
var tipContent = '';
|
|
1027
|
+
if (rTooltipMethod) {
|
|
1028
|
+
var rtParams = {
|
|
1029
|
+
$list: $xeList,
|
|
1030
|
+
row: dragRow
|
|
1031
|
+
};
|
|
1032
|
+
tipContent = "".concat(rTooltipMethod(rtParams) || '');
|
|
1033
|
+
} else {
|
|
1034
|
+
tipContent = (0, _ui.getI18n)('vxe.list.dragTip', [rowEl.textContent || '']);
|
|
1035
|
+
}
|
|
1036
|
+
reactData.dragTipText = tipContent;
|
|
1037
|
+
},
|
|
1038
|
+
hideDropTip: function hideDropTip() {
|
|
1039
|
+
var $xeList = this;
|
|
1040
|
+
var rdTipEl = $xeList.$refs.refDragTipElem;
|
|
1041
|
+
var rdLineEl = $xeList.$refs.refDragRowLineElem;
|
|
1042
|
+
if (rdTipEl) {
|
|
1043
|
+
rdTipEl.style.display = '';
|
|
1044
|
+
}
|
|
1045
|
+
if (rdLineEl) {
|
|
1046
|
+
rdLineEl.style.display = '';
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
clearCrossListDragStatus: function clearCrossListDragStatus() {
|
|
1050
|
+
var $xeList = this;
|
|
1051
|
+
var crossListDragRowInfo = (0, _store.getCrossListDragRowInfo)($xeList);
|
|
1052
|
+
// crossListDragRowObj = null
|
|
1053
|
+
crossListDragRowInfo.row = null;
|
|
1054
|
+
},
|
|
1055
|
+
clearDragStatus: function clearDragStatus() {
|
|
1056
|
+
var $xeList = this;
|
|
1057
|
+
var reactData = $xeList.reactData;
|
|
1058
|
+
var dragRow = reactData.dragRow;
|
|
1059
|
+
if (dragRow) {
|
|
1060
|
+
$xeList.hideDropTip();
|
|
1061
|
+
$xeList.clearRowDropOrigin();
|
|
1062
|
+
$xeList.clearCrossListDragStatus();
|
|
1063
|
+
reactData.dragRow = null;
|
|
1064
|
+
}
|
|
1065
|
+
},
|
|
1066
|
+
handleRowDragMousedownEvent: function handleRowDragMousedownEvent(evnt, params) {
|
|
1067
|
+
var $xeList = this;
|
|
1068
|
+
var reactData = $xeList.reactData;
|
|
1069
|
+
evnt.stopPropagation();
|
|
1070
|
+
var row = params.row;
|
|
1071
|
+
var dragConfig = $xeList.computeDragOpts;
|
|
1072
|
+
var trigger = dragConfig.trigger,
|
|
1073
|
+
dragStartMethod = dragConfig.dragStartMethod;
|
|
1074
|
+
var dragEl = evnt.currentTarget;
|
|
1075
|
+
var rowEl = trigger === 'row' ? dragEl : dragEl.parentElement.parentElement;
|
|
1076
|
+
$xeList.clearRowDropOrigin();
|
|
1077
|
+
if (dragStartMethod && !dragStartMethod(params)) {
|
|
1078
|
+
rowEl.draggable = false;
|
|
1079
|
+
reactData.dragRow = null;
|
|
1080
|
+
$xeList.hideDropTip();
|
|
1081
|
+
return;
|
|
1082
|
+
}
|
|
1083
|
+
var dragstartEventParams = {
|
|
1084
|
+
row: row
|
|
1085
|
+
};
|
|
1086
|
+
reactData.dragRow = row;
|
|
1087
|
+
rowEl.draggable = true;
|
|
1088
|
+
$xeList.updateRowDropOrigin(row);
|
|
1089
|
+
$xeList.updateRowDropTipContent(rowEl);
|
|
1090
|
+
$xeList.dispatchEvent('row-dragstart', dragstartEventParams, evnt);
|
|
1091
|
+
},
|
|
1092
|
+
handleRowDragMouseupEvent: function handleRowDragMouseupEvent() {
|
|
1093
|
+
var $xeList = this;
|
|
1094
|
+
$xeList.clearDragStatus();
|
|
1095
|
+
},
|
|
1096
|
+
showDropTip: function showDropTip(evnt, rowEl, showLine, dragPos) {
|
|
1097
|
+
var $xeList = this;
|
|
1098
|
+
var wrapperEl = $xeList.$refs.refElem;
|
|
1099
|
+
if (!wrapperEl) {
|
|
1100
|
+
return;
|
|
1101
|
+
}
|
|
1102
|
+
var wrapperRect = wrapperEl.getBoundingClientRect();
|
|
1103
|
+
var wrapperHeight = wrapperEl.clientHeight;
|
|
1104
|
+
if (rowEl) {
|
|
1105
|
+
var rdLineEl = $xeList.$refs.refDragRowLineElem;
|
|
1106
|
+
if (rdLineEl) {
|
|
1107
|
+
if (showLine) {
|
|
1108
|
+
var trRect = rowEl.getBoundingClientRect();
|
|
1109
|
+
var rowHeight = rowEl.clientHeight;
|
|
1110
|
+
var offsetTop = Math.max(1, trRect.y - wrapperRect.y);
|
|
1111
|
+
if (offsetTop + rowHeight > wrapperHeight) {
|
|
1112
|
+
rowHeight = wrapperHeight - offsetTop;
|
|
1113
|
+
}
|
|
1114
|
+
rdLineEl.style.display = 'block';
|
|
1115
|
+
rdLineEl.style.top = "".concat(offsetTop, "px");
|
|
1116
|
+
rdLineEl.style.height = "".concat(rowHeight, "px");
|
|
1117
|
+
rdLineEl.setAttribute('drag-pos', dragPos);
|
|
1118
|
+
} else {
|
|
1119
|
+
rdLineEl.style.display = '';
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
var rdTipEl = $xeList.$refs.refDragTipElem;
|
|
1124
|
+
if (rdTipEl) {
|
|
1125
|
+
rdTipEl.style.display = 'block';
|
|
1126
|
+
rdTipEl.style.top = "".concat(Math.min(wrapperEl.clientHeight - wrapperEl.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y), "px");
|
|
1127
|
+
rdTipEl.style.left = "".concat(Math.min(wrapperEl.clientWidth - wrapperEl.scrollLeft - rdTipEl.clientWidth - 1, evnt.clientX - wrapperRect.x), "px");
|
|
1128
|
+
rdTipEl.setAttribute('drag-status', showLine ? 'normal' : 'disabled');
|
|
1129
|
+
}
|
|
1130
|
+
},
|
|
1131
|
+
clearRowDragData: function clearRowDragData() {
|
|
1132
|
+
var $xeList = this;
|
|
1133
|
+
var reactData = $xeList.reactData;
|
|
1134
|
+
var wrapperEl = $xeList.$refs.refElem;
|
|
1135
|
+
var dtClss = ['.vxe-list--row'];
|
|
1136
|
+
$xeList.hideDropTip();
|
|
1137
|
+
$xeList.clearRowDropOrigin();
|
|
1138
|
+
(0, _anime.clearRowAnimate)(wrapperEl, dtClss);
|
|
1139
|
+
reactData.dragRow = null;
|
|
1140
|
+
},
|
|
1141
|
+
handleRowDragSwapEvent: function handleRowDragSwapEvent(evnt, dragRow, prevDragRow, prevDragPos) {
|
|
1142
|
+
var $xeList = this;
|
|
1143
|
+
var reactData = $xeList.reactData;
|
|
1144
|
+
var internalData = $xeList.internalData;
|
|
1145
|
+
var fullData = internalData.fullData;
|
|
1146
|
+
var dragConfig = $xeList.computeDragOpts;
|
|
1147
|
+
var animation = dragConfig.animation,
|
|
1148
|
+
dragEndMethod = dragConfig.dragEndMethod;
|
|
1149
|
+
var dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
1150
|
+
var dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
1151
|
+
var el = $xeList.$refs.refElem;
|
|
1152
|
+
var errRest = {
|
|
1153
|
+
status: false
|
|
1154
|
+
};
|
|
1155
|
+
if (!(el && prevDragRow && dragRow)) {
|
|
1156
|
+
return Promise.resolve(errRest);
|
|
1157
|
+
}
|
|
1158
|
+
// 判断是否有拖动
|
|
1159
|
+
if (prevDragRow !== dragRow) {
|
|
1160
|
+
var dragParams = {
|
|
1161
|
+
oldRow: dragRow,
|
|
1162
|
+
newRow: prevDragRow,
|
|
1163
|
+
dragRow: dragRow,
|
|
1164
|
+
dragPos: prevDragPos,
|
|
1165
|
+
offsetIndex: dragOffsetIndex
|
|
1166
|
+
};
|
|
1167
|
+
var dragRowid = $xeList.getRowId(dragRow);
|
|
1168
|
+
var _dragRowIndex = $xeList.findRowIndexOfByKey(fullData, dragRowid);
|
|
1169
|
+
var newRowid = $xeList.getRowKey(prevDragRow);
|
|
1170
|
+
var dragRowHeight = 0;
|
|
1171
|
+
var dragOffsetTop = -1;
|
|
1172
|
+
if (animation) {
|
|
1173
|
+
var prevRowEl = el.querySelector(".vxe-list--row[rowid=\"".concat(newRowid, "\"]"));
|
|
1174
|
+
var oldRowEl = el.querySelector(".vxe-list--row[rowid=\"".concat(dragRowid, "\"]"));
|
|
1175
|
+
var targetRowEl = prevRowEl || oldRowEl;
|
|
1176
|
+
if (targetRowEl) {
|
|
1177
|
+
dragRowHeight = targetRowEl.offsetHeight;
|
|
1178
|
+
}
|
|
1179
|
+
if (oldRowEl) {
|
|
1180
|
+
dragOffsetTop = oldRowEl.offsetTop;
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
var oafIndex = -1;
|
|
1184
|
+
var nafIndex = -1;
|
|
1185
|
+
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(function (status) {
|
|
1186
|
+
if (!status) {
|
|
1187
|
+
return errRest;
|
|
1188
|
+
}
|
|
1189
|
+
// 移出
|
|
1190
|
+
oafIndex = $xeList.findRowIndexOf(fullData, dragRow);
|
|
1191
|
+
fullData.splice(oafIndex, 1);
|
|
1192
|
+
// 插入
|
|
1193
|
+
var pafIndex = $xeList.findRowIndexOf(fullData, prevDragRow);
|
|
1194
|
+
nafIndex = pafIndex + dragOffsetIndex;
|
|
1195
|
+
fullData.splice(nafIndex, 0, dragRow);
|
|
1196
|
+
$xeList.handleData();
|
|
1197
|
+
if (reactData.scrollYLoad) {
|
|
1198
|
+
$xeList.updateYSpace();
|
|
1199
|
+
}
|
|
1200
|
+
if (evnt) {
|
|
1201
|
+
var dragendEventParams = {
|
|
1202
|
+
oldRow: dragRow,
|
|
1203
|
+
newRow: prevDragRow,
|
|
1204
|
+
dragRow: dragRow,
|
|
1205
|
+
dragPos: prevDragPos,
|
|
1206
|
+
offsetIndex: dragOffsetIndex,
|
|
1207
|
+
_index: {
|
|
1208
|
+
newIndex: nafIndex,
|
|
1209
|
+
oldIndex: oafIndex
|
|
1210
|
+
}
|
|
1211
|
+
};
|
|
1212
|
+
$xeList.dispatchEvent('row-dragend', dragendEventParams, evnt);
|
|
1213
|
+
}
|
|
1214
|
+
return $xeList.$nextTick().then(function () {
|
|
1215
|
+
if (animation) {
|
|
1216
|
+
var rowList = reactData.rowList;
|
|
1217
|
+
var _fullData = internalData.fullData;
|
|
1218
|
+
var _newRowIndex = $xeList.findRowIndexOfByKey(_fullData, dragRowid);
|
|
1219
|
+
var firstRow = _fullData[0];
|
|
1220
|
+
var _firstRowIndex = $xeList.findRowIndexOf(_fullData, firstRow);
|
|
1221
|
+
var wrapperEl = el;
|
|
1222
|
+
if (_firstRowIndex > -1) {
|
|
1223
|
+
var _lastRowIndex = _firstRowIndex + _fullData.length;
|
|
1224
|
+
var rsIndex = -1;
|
|
1225
|
+
var reIndex = -1;
|
|
1226
|
+
var offsetRate = 1;
|
|
1227
|
+
if (_dragRowIndex < _firstRowIndex) {
|
|
1228
|
+
// 从上往下虚拟拖拽
|
|
1229
|
+
rsIndex = 0;
|
|
1230
|
+
reIndex = _newRowIndex - _firstRowIndex;
|
|
1231
|
+
} else if (_dragRowIndex > _lastRowIndex) {
|
|
1232
|
+
// 从下往上虚拟拖拽
|
|
1233
|
+
var $newRowIndex = $xeList.findRowIndexOfByKey(rowList, dragRowid);
|
|
1234
|
+
rsIndex = $newRowIndex + 1;
|
|
1235
|
+
reIndex = _fullData.length;
|
|
1236
|
+
offsetRate = -1;
|
|
1237
|
+
} else {
|
|
1238
|
+
if (_newRowIndex > _dragRowIndex) {
|
|
1239
|
+
// 从上往下拖拽
|
|
1240
|
+
rsIndex = _dragRowIndex - _firstRowIndex;
|
|
1241
|
+
reIndex = rsIndex + _newRowIndex - _dragRowIndex;
|
|
1242
|
+
} else {
|
|
1243
|
+
// 从下往上拖拽
|
|
1244
|
+
rsIndex = _newRowIndex - _firstRowIndex;
|
|
1245
|
+
reIndex = rsIndex + _dragRowIndex - _newRowIndex + 1;
|
|
1246
|
+
offsetRate = -1;
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
var dragRangeList = _fullData.slice(rsIndex, reIndex);
|
|
1250
|
+
if (dragRangeList.length) {
|
|
1251
|
+
var dtClss = [];
|
|
1252
|
+
dragRangeList.forEach(function (obj) {
|
|
1253
|
+
var rowid = $xeList.getRowId(obj);
|
|
1254
|
+
dtClss.push(".vxe-list--row[rowid=\"".concat(rowid, "\"]"));
|
|
1255
|
+
});
|
|
1256
|
+
var dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
1257
|
+
(0, _anime.moveRowAnimateToTb)(dtTrList, offsetRate * dragRowHeight);
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
var drClss = [".vxe-list--row[rowid=\"".concat(dragRowid, "\"]")];
|
|
1261
|
+
var newDtTrList = wrapperEl.querySelectorAll(drClss.join(','));
|
|
1262
|
+
var newTrEl = newDtTrList[0];
|
|
1263
|
+
if (dragOffsetTop > -1 && newTrEl) {
|
|
1264
|
+
(0, _anime.moveRowAnimateToTb)(newDtTrList, dragOffsetTop - newTrEl.offsetTop);
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
$xeList.recalculate();
|
|
1268
|
+
}).then(function () {
|
|
1269
|
+
return {
|
|
1270
|
+
status: true
|
|
1271
|
+
};
|
|
1272
|
+
});
|
|
1273
|
+
}).catch(function () {
|
|
1274
|
+
return errRest;
|
|
1275
|
+
}).then(function (rest) {
|
|
1276
|
+
$xeList.clearRowDragData();
|
|
1277
|
+
$xeList.clearCrossListDragStatus();
|
|
1278
|
+
return rest;
|
|
1279
|
+
});
|
|
1280
|
+
}
|
|
1281
|
+
$xeList.clearRowDragData();
|
|
1282
|
+
$xeList.clearCrossListDragStatus();
|
|
1283
|
+
return Promise.resolve(errRest);
|
|
1284
|
+
},
|
|
1285
|
+
handleRowDragDragstartEvent: function handleRowDragDragstartEvent(evnt) {
|
|
1286
|
+
if (evnt.dataTransfer) {
|
|
1287
|
+
evnt.dataTransfer.setDragImage((0, _dom.getTpImg)(), 0, 0);
|
|
1288
|
+
}
|
|
1289
|
+
},
|
|
1290
|
+
handleRowDragDragendEvent: function handleRowDragDragendEvent(evnt) {
|
|
1291
|
+
var $xeList = this;
|
|
1292
|
+
var reactData = $xeList.reactData;
|
|
1293
|
+
var internalData = $xeList.internalData;
|
|
1294
|
+
var dragRow = reactData.dragRow;
|
|
1295
|
+
var prevDragRow = internalData.prevDragRow,
|
|
1296
|
+
prevDragPos = internalData.prevDragPos;
|
|
1297
|
+
$xeList.handleRowDragSwapEvent(evnt, dragRow, prevDragRow, prevDragPos);
|
|
1298
|
+
},
|
|
1299
|
+
handleRowDragDragoverEvent: function handleRowDragDragoverEvent(evnt) {
|
|
1300
|
+
var $xeList = this;
|
|
1301
|
+
var reactData = $xeList.reactData;
|
|
1302
|
+
var internalData = $xeList.internalData;
|
|
1303
|
+
var dragRow = reactData.dragRow;
|
|
1304
|
+
var fullData = internalData.fullData;
|
|
1305
|
+
if (!dragRow) {
|
|
1306
|
+
evnt.preventDefault();
|
|
1307
|
+
}
|
|
1308
|
+
var rowEl = evnt.currentTarget;
|
|
1309
|
+
var rowid = rowEl.getAttribute('rowid') || '';
|
|
1310
|
+
var row = $xeList.findRowByKey(fullData, rowid);
|
|
1311
|
+
if (row) {
|
|
1312
|
+
evnt.preventDefault();
|
|
1313
|
+
var offsetY = evnt.clientY - rowEl.getBoundingClientRect().y;
|
|
1314
|
+
var dragPos = offsetY < rowEl.clientHeight / 2 ? 'top' : 'bottom';
|
|
1315
|
+
internalData.prevDragRow = row;
|
|
1316
|
+
internalData.prevDragPos = dragPos;
|
|
1317
|
+
if (dragRow && $xeList.getRowId(dragRow) === rowid) {
|
|
1318
|
+
$xeList.showDropTip(evnt, rowEl, false, dragPos);
|
|
1319
|
+
return;
|
|
1320
|
+
}
|
|
1321
|
+
var dragOffsetIndex = dragPos === 'bottom' ? 1 : 0;
|
|
1322
|
+
var offsetIndex = dragOffsetIndex;
|
|
1323
|
+
var dragoverEventParams = {
|
|
1324
|
+
oldRow: dragRow,
|
|
1325
|
+
targetRow: row,
|
|
1326
|
+
dragPos: dragPos,
|
|
1327
|
+
dragRow: dragRow,
|
|
1328
|
+
offsetIndex: offsetIndex
|
|
1329
|
+
};
|
|
1330
|
+
$xeList.showDropTip(evnt, rowEl, true, dragPos);
|
|
1331
|
+
$xeList.dispatchEvent('row-dragover', dragoverEventParams, evnt);
|
|
1332
|
+
}
|
|
1333
|
+
},
|
|
1334
|
+
handleRowMousedownEvent: function handleRowMousedownEvent(evnt, row) {
|
|
1335
|
+
var $xeList = this;
|
|
1336
|
+
var dragConfig = $xeList.computeDragOpts;
|
|
1337
|
+
var isDrag = $xeList.computeIsDrag;
|
|
1338
|
+
var trigger = dragConfig.trigger,
|
|
1339
|
+
disabledMethod = dragConfig.disabledMethod;
|
|
1340
|
+
var isRowDrag = false;
|
|
1341
|
+
if (isDrag) {
|
|
1342
|
+
isRowDrag = trigger === 'row';
|
|
1343
|
+
}
|
|
1344
|
+
var params = {
|
|
1345
|
+
row: row,
|
|
1346
|
+
$list: $xeList
|
|
1347
|
+
};
|
|
1348
|
+
if (isRowDrag && !(disabledMethod && disabledMethod(params))) {
|
|
1349
|
+
$xeList.handleRowDragMousedownEvent(evnt, params);
|
|
1350
|
+
}
|
|
1351
|
+
},
|
|
1352
|
+
handleRowClickEvent: function handleRowClickEvent(evnt, row) {
|
|
1353
|
+
var $xeList = this;
|
|
1354
|
+
var reactData = $xeList.reactData;
|
|
1355
|
+
var internalData = $xeList.internalData;
|
|
1356
|
+
var currentRow = internalData.currentRow;
|
|
1357
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
1358
|
+
var isCurrent = rowOpts.isCurrent;
|
|
1359
|
+
var triggerCurrent = false;
|
|
1360
|
+
if (isCurrent) {
|
|
1361
|
+
triggerCurrent = true;
|
|
1362
|
+
$xeList.changeCurrentEvent(evnt, row);
|
|
1363
|
+
} else if (currentRow) {
|
|
1364
|
+
internalData.currentRow = null;
|
|
1365
|
+
reactData.currRowFlag++;
|
|
1366
|
+
}
|
|
1367
|
+
$xeList.dispatchEvent('row-click', {
|
|
1368
|
+
row: row,
|
|
1369
|
+
triggerCurrent: triggerCurrent
|
|
1370
|
+
}, evnt);
|
|
1371
|
+
},
|
|
1372
|
+
handleRowDblclickEvent: function handleRowDblclickEvent(evnt, row) {
|
|
1373
|
+
var $xeList = this;
|
|
1374
|
+
$xeList.dispatchEvent('row-dblclick', {
|
|
1375
|
+
row: row
|
|
1376
|
+
}, evnt);
|
|
1377
|
+
},
|
|
365
1378
|
//
|
|
366
1379
|
// Render
|
|
367
1380
|
//
|
|
1381
|
+
renderDragTip: function renderDragTip(h) {
|
|
1382
|
+
var $xeList = this;
|
|
1383
|
+
var reactData = $xeList.reactData;
|
|
1384
|
+
var dragRow = reactData.dragRow,
|
|
1385
|
+
dragTipText = reactData.dragTipText;
|
|
1386
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1387
|
+
var isDrag = $xeList.computeIsDrag;
|
|
1388
|
+
var dRow = dragRow;
|
|
1389
|
+
if (isDrag) {
|
|
1390
|
+
return h('div', {
|
|
1391
|
+
class: 'vxe-list--drag-wrapper'
|
|
1392
|
+
}, [h('div', {
|
|
1393
|
+
ref: 'refDragRowLineElem',
|
|
1394
|
+
class: ['vxe-list--drag-row-line', {
|
|
1395
|
+
'is--guides': dragOpts.showGuidesStatus
|
|
1396
|
+
}]
|
|
1397
|
+
}), dRow && dragOpts.showDragTip ? h('div', {
|
|
1398
|
+
ref: 'refDragTipElem',
|
|
1399
|
+
class: 'vxe-list--drag-sort-tip'
|
|
1400
|
+
}, [h('div', {
|
|
1401
|
+
class: 'vxe-list--drag-sort-tip-wrapper'
|
|
1402
|
+
}, [h('div', {
|
|
1403
|
+
class: 'vxe-list--drag-sort-tip-status'
|
|
1404
|
+
}, [h('span', {
|
|
1405
|
+
class: ['vxe-list--drag-sort-tip-normal-status', (0, _ui.getIcon)().LIST_DRAG_STATUS_NODE]
|
|
1406
|
+
}), h('span', {
|
|
1407
|
+
class: ['vxe-list--drag-sort-tip-disabled-status', (0, _ui.getIcon)().LIST_DRAG_DISABLED]
|
|
1408
|
+
})]), h('div', {
|
|
1409
|
+
class: 'vxe-list--drag-sort-tip-content'
|
|
1410
|
+
}, dragTipText)])]) : (0, _ui.renderEmptyElement)($xeList)]);
|
|
1411
|
+
}
|
|
1412
|
+
return (0, _ui.renderEmptyElement)($xeList);
|
|
1413
|
+
},
|
|
1414
|
+
renderRadio: function renderRadio(h, row, rowid, isChecked) {
|
|
1415
|
+
var $xeList = this;
|
|
1416
|
+
var props = $xeList;
|
|
1417
|
+
var showRadio = props.showRadio;
|
|
1418
|
+
var radioOpts = $xeList.computeRadioOpts;
|
|
1419
|
+
var showIcon = radioOpts.showIcon,
|
|
1420
|
+
checkMethod = radioOpts.checkMethod,
|
|
1421
|
+
visibleMethod = radioOpts.visibleMethod;
|
|
1422
|
+
var isVisible = !visibleMethod || visibleMethod({
|
|
1423
|
+
$list: $xeList,
|
|
1424
|
+
row: row
|
|
1425
|
+
});
|
|
1426
|
+
if (showRadio && showIcon && isVisible) {
|
|
1427
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
1428
|
+
$list: $xeList,
|
|
1429
|
+
row: row
|
|
1430
|
+
}) : false;
|
|
1431
|
+
return h('div', {
|
|
1432
|
+
key: 'ct2',
|
|
1433
|
+
class: ['vxe-list--radio-option', {
|
|
1434
|
+
'is--checked': isChecked,
|
|
1435
|
+
'is--disabled': isDisabled
|
|
1436
|
+
}],
|
|
1437
|
+
on: {
|
|
1438
|
+
click: function click(evnt) {
|
|
1439
|
+
if (!isDisabled) {
|
|
1440
|
+
$xeList.changeRadioEvent(evnt, row);
|
|
1441
|
+
}
|
|
1442
|
+
}
|
|
1443
|
+
}
|
|
1444
|
+
}, [h('span', {
|
|
1445
|
+
class: ['vxe-radio--icon', isChecked ? (0, _ui.getIcon)().RADIO_CHECKED : (0, _ui.getIcon)().RADIO_UNCHECKED]
|
|
1446
|
+
})]);
|
|
1447
|
+
}
|
|
1448
|
+
return (0, _ui.renderEmptyElement)($xeList);
|
|
1449
|
+
},
|
|
1450
|
+
renderCheckbox: function renderCheckbox(h, row, rowid, isChecked) {
|
|
1451
|
+
var $xeList = this;
|
|
1452
|
+
var props = $xeList;
|
|
1453
|
+
var showCheckbox = props.showCheckbox;
|
|
1454
|
+
var checkboxOpts = $xeList.computeCheckboxOpts;
|
|
1455
|
+
var showIcon = checkboxOpts.showIcon,
|
|
1456
|
+
checkMethod = checkboxOpts.checkMethod,
|
|
1457
|
+
visibleMethod = checkboxOpts.visibleMethod;
|
|
1458
|
+
var isVisible = !visibleMethod || visibleMethod({
|
|
1459
|
+
$list: $xeList,
|
|
1460
|
+
row: row
|
|
1461
|
+
});
|
|
1462
|
+
if (showCheckbox && showIcon && isVisible) {
|
|
1463
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
1464
|
+
$list: $xeList,
|
|
1465
|
+
row: row
|
|
1466
|
+
}) : false;
|
|
1467
|
+
return h('div', {
|
|
1468
|
+
key: 'ct3',
|
|
1469
|
+
class: ['vxe-list--checkbox-option', {
|
|
1470
|
+
'is--checked': isChecked,
|
|
1471
|
+
'is--disabled': isDisabled
|
|
1472
|
+
}],
|
|
1473
|
+
on: {
|
|
1474
|
+
click: function click(evnt) {
|
|
1475
|
+
if (!isDisabled) {
|
|
1476
|
+
$xeList.changeCheckboxEvent(evnt, row);
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
1480
|
+
}, [h('span', {
|
|
1481
|
+
class: ['vxe-checkbox--icon', isChecked ? (0, _ui.getIcon)().CHECKBOX_CHECKED : (0, _ui.getIcon)().CHECKBOX_UNCHECKED]
|
|
1482
|
+
})]);
|
|
1483
|
+
}
|
|
1484
|
+
return (0, _ui.renderEmptyElement)($xeList);
|
|
1485
|
+
},
|
|
1486
|
+
renderRow: function renderRow(h, row, rowIndex) {
|
|
1487
|
+
var $xeList = this;
|
|
1488
|
+
var props = $xeList;
|
|
1489
|
+
var reactData = $xeList.reactData;
|
|
1490
|
+
var internalData = $xeList.internalData;
|
|
1491
|
+
var slots = $xeList.$scopedSlots;
|
|
1492
|
+
var showRadio = props.showRadio,
|
|
1493
|
+
showCheckbox = props.showCheckbox;
|
|
1494
|
+
var selectRadioRow = reactData.selectRadioRow,
|
|
1495
|
+
currRowFlag = reactData.currRowFlag,
|
|
1496
|
+
updateCheckboxFlag = reactData.updateCheckboxFlag;
|
|
1497
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
1498
|
+
currentRow = internalData.currentRow;
|
|
1499
|
+
var contentSlot = slots.content;
|
|
1500
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1501
|
+
var trigger = dragOpts.trigger,
|
|
1502
|
+
icon = dragOpts.icon,
|
|
1503
|
+
disabledMethod = dragOpts.disabledMethod,
|
|
1504
|
+
visibleMethod = dragOpts.visibleMethod;
|
|
1505
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
1506
|
+
var useKey = rowOpts.useKey,
|
|
1507
|
+
contentField = rowOpts.contentField,
|
|
1508
|
+
rowClassName = rowOpts.className,
|
|
1509
|
+
isCurrent = rowOpts.isCurrent;
|
|
1510
|
+
var isDrag = $xeList.computeIsDrag;
|
|
1511
|
+
var keyField = $xeList.computeKeyField;
|
|
1512
|
+
var isRowFnCls = rowClassName && _xeUtils.default.isFunction(rowClassName);
|
|
1513
|
+
var hasKey = keyField || useKey || isDrag || isCurrent || showRadio || showCheckbox;
|
|
1514
|
+
var rowKey = hasKey && keyField ? getRowIdByField(row, keyField) : '';
|
|
1515
|
+
var rowid = (0, _utils.enModelValue)(rowKey);
|
|
1516
|
+
var rowParams = {
|
|
1517
|
+
row: row,
|
|
1518
|
+
$list: $xeList
|
|
1519
|
+
};
|
|
1520
|
+
var isRadioChecked = false;
|
|
1521
|
+
if (showRadio) {
|
|
1522
|
+
isRadioChecked = selectRadioRow && (row === selectRadioRow || $xeList.eqRowByKey(selectRadioRow, rowKey));
|
|
1523
|
+
}
|
|
1524
|
+
var isCheckboxChecked = false;
|
|
1525
|
+
if (showCheckbox) {
|
|
1526
|
+
isCheckboxChecked = !!(updateCheckboxFlag && selectCheckboxMaps[rowid]);
|
|
1527
|
+
}
|
|
1528
|
+
var ctVNs = [];
|
|
1529
|
+
var isDragDisabled = false;
|
|
1530
|
+
if (isDrag && keyField && (!visibleMethod || visibleMethod(rowParams))) {
|
|
1531
|
+
var handleOns = {};
|
|
1532
|
+
if (trigger !== 'row') {
|
|
1533
|
+
isDragDisabled = !!(disabledMethod && disabledMethod(rowParams));
|
|
1534
|
+
handleOns.mousedown = function (evnt) {
|
|
1535
|
+
if (!isDragDisabled) {
|
|
1536
|
+
$xeList.handleRowDragMousedownEvent(evnt, rowParams);
|
|
1537
|
+
}
|
|
1538
|
+
};
|
|
1539
|
+
handleOns.mouseup = $xeList.handleRowDragMouseupEvent;
|
|
1540
|
+
}
|
|
1541
|
+
ctVNs.push(h('div', {
|
|
1542
|
+
key: 'ct1',
|
|
1543
|
+
class: 'vxe-list--row-drag'
|
|
1544
|
+
}, [h('span', {
|
|
1545
|
+
class: 'vxe-list--drag-handle',
|
|
1546
|
+
on: handleOns
|
|
1547
|
+
}, [h('i', {
|
|
1548
|
+
class: icon || (0, _ui.getIcon)().LIST_DRAG
|
|
1549
|
+
})])]));
|
|
1550
|
+
}
|
|
1551
|
+
if (showRadio) {
|
|
1552
|
+
ctVNs.push($xeList.renderRadio(h, row, rowid, isRadioChecked));
|
|
1553
|
+
}
|
|
1554
|
+
if (showCheckbox) {
|
|
1555
|
+
ctVNs.push($xeList.renderCheckbox(h, row, rowid, isCheckboxChecked));
|
|
1556
|
+
}
|
|
1557
|
+
ctVNs.push(h('div', {
|
|
1558
|
+
key: 'ct5',
|
|
1559
|
+
class: 'vxe-list--row-content'
|
|
1560
|
+
}, contentSlot ? contentSlot(rowParams) : contentField ? (0, _utils.getText)(row[contentField]) : ''));
|
|
1561
|
+
var rowOns = {
|
|
1562
|
+
mousedown: function mousedown(evnt) {
|
|
1563
|
+
$xeList.handleRowMousedownEvent(evnt, row);
|
|
1564
|
+
},
|
|
1565
|
+
mouseup: $xeList.handleRowDragMouseupEvent,
|
|
1566
|
+
click: function click(evnt) {
|
|
1567
|
+
$xeList.handleRowClickEvent(evnt, row);
|
|
1568
|
+
},
|
|
1569
|
+
dblclick: function dblclick(evnt) {
|
|
1570
|
+
$xeList.handleRowDblclickEvent(evnt, row);
|
|
1571
|
+
}
|
|
1572
|
+
};
|
|
1573
|
+
// 拖拽行事件
|
|
1574
|
+
if (isDrag) {
|
|
1575
|
+
rowOns.dragstart = $xeList.handleRowDragDragstartEvent;
|
|
1576
|
+
rowOns.dragend = $xeList.handleRowDragDragendEvent;
|
|
1577
|
+
rowOns.dragover = $xeList.handleRowDragDragoverEvent;
|
|
1578
|
+
}
|
|
1579
|
+
return h('div', {
|
|
1580
|
+
key: hasKey && keyField ? rowid : rowIndex,
|
|
1581
|
+
class: ['vxe-list--row', isRowFnCls ? rowClassName(rowParams) : rowClassName || '', {
|
|
1582
|
+
'is--drag-disabled': isDragDisabled,
|
|
1583
|
+
'is--current': currRowFlag && currentRow && $xeList.eqRowByKey(currentRow, rowKey),
|
|
1584
|
+
'is-radio--checked': isRadioChecked,
|
|
1585
|
+
'is-checkbox--checked': isCheckboxChecked
|
|
1586
|
+
}],
|
|
1587
|
+
attrs: hasKey && keyField ? {
|
|
1588
|
+
rowid: rowid
|
|
1589
|
+
} : undefined,
|
|
1590
|
+
on: rowOns
|
|
1591
|
+
}, ctVNs);
|
|
1592
|
+
},
|
|
368
1593
|
renderVN: function renderVN(h) {
|
|
369
1594
|
var $xeList = this;
|
|
370
1595
|
var props = $xeList;
|
|
371
1596
|
var reactData = $xeList.reactData;
|
|
372
1597
|
var slots = $xeList.$scopedSlots;
|
|
373
|
-
var
|
|
1598
|
+
var showCheckbox = props.showCheckbox,
|
|
1599
|
+
className = props.className,
|
|
374
1600
|
loading = props.loading;
|
|
375
1601
|
var bodyHeight = reactData.bodyHeight,
|
|
376
1602
|
topSpaceHeight = reactData.topSpaceHeight,
|
|
377
|
-
|
|
1603
|
+
rowList = reactData.rowList,
|
|
1604
|
+
isAllChecked = reactData.isAllChecked,
|
|
1605
|
+
isAllIndeterminate = reactData.isAllIndeterminate;
|
|
378
1606
|
var defaultSlot = slots.default;
|
|
1607
|
+
var headerSlot = slots.header;
|
|
1608
|
+
var footerSlot = slots.footer;
|
|
379
1609
|
var vSize = $xeList.computeSize;
|
|
380
|
-
var
|
|
1610
|
+
var wrapperStyles = $xeList.computeWrapperStyles;
|
|
1611
|
+
var virtualStyles = $xeList.computeVirtualStyles;
|
|
1612
|
+
var radioOpts = $xeList.computeRadioOpts;
|
|
1613
|
+
var checkboxOpts = $xeList.computeCheckboxOpts;
|
|
1614
|
+
var dragOpts = $xeList.computeDragOpts;
|
|
1615
|
+
var trigger = dragOpts.trigger;
|
|
1616
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
1617
|
+
var isHover = rowOpts.isHover,
|
|
1618
|
+
padding = rowOpts.padding;
|
|
1619
|
+
var showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
|
|
381
1620
|
return h('div', {
|
|
382
1621
|
ref: 'refElem',
|
|
383
1622
|
class: ['vxe-list', className ? _xeUtils.default.isFunction(className) ? className({
|
|
384
1623
|
$list: $xeList
|
|
385
|
-
}) : className : '', _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading)]
|
|
1624
|
+
}) : className : '', _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading)],
|
|
1625
|
+
style: wrapperStyles
|
|
1626
|
+
}, [headerSlot || showDefChekboxHead ? h('div', {
|
|
1627
|
+
ref: 'refHeaderElem',
|
|
1628
|
+
class: 'vxe-list--header-wrapper'
|
|
1629
|
+
}, [showDefChekboxHead ? h('div', {
|
|
1630
|
+
class: 'vxe-list--header-left'
|
|
386
1631
|
}, [h('div', {
|
|
1632
|
+
class: ['vxe-list--checkbox-header', {
|
|
1633
|
+
'is--checked': isAllChecked,
|
|
1634
|
+
'is--indeterminate': isAllIndeterminate
|
|
1635
|
+
}],
|
|
1636
|
+
on: {
|
|
1637
|
+
click: $xeList.changeCheckboxAllEvent
|
|
1638
|
+
}
|
|
1639
|
+
}, [h('span', {
|
|
1640
|
+
class: ['vxe-checkbox--icon', isAllChecked ? (0, _ui.getIcon)().CHECKBOX_CHECKED : isAllIndeterminate ? (0, _ui.getIcon)().CHECKBOX_INDETERMINATE : (0, _ui.getIcon)().CHECKBOX_UNCHECKED]
|
|
1641
|
+
})])]) : (0, _ui.renderEmptyElement)($xeList), headerSlot ? h('div', {
|
|
1642
|
+
class: 'vxe-list--header-content'
|
|
1643
|
+
}, headerSlot({
|
|
1644
|
+
items: rowList,
|
|
1645
|
+
$list: $xeList
|
|
1646
|
+
})) : (0, _ui.renderEmptyElement)($xeList)]) : (0, _ui.renderEmptyElement)($xeList), h('div', {
|
|
387
1647
|
ref: 'refVirtualWrapper',
|
|
388
1648
|
class: 'vxe-list--virtual-wrapper',
|
|
389
|
-
style:
|
|
1649
|
+
style: virtualStyles,
|
|
390
1650
|
on: {
|
|
391
1651
|
scroll: $xeList.scrollEvent
|
|
392
1652
|
}
|
|
@@ -397,13 +1657,32 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
397
1657
|
}
|
|
398
1658
|
}), h('div', {
|
|
399
1659
|
ref: 'refVirtualBody',
|
|
400
|
-
class: 'vxe-list--body',
|
|
1660
|
+
class: ['vxe-list--body', {
|
|
1661
|
+
'trigger--row': trigger === 'row',
|
|
1662
|
+
'checkbox--highlight': checkboxOpts.highlight,
|
|
1663
|
+
'radio--highlight': radioOpts.highlight,
|
|
1664
|
+
'row--hover': isHover,
|
|
1665
|
+
'is--padding': padding
|
|
1666
|
+
}],
|
|
401
1667
|
style: {
|
|
402
1668
|
marginTop: topSpaceHeight ? "".concat(topSpaceHeight, "px") : ''
|
|
403
1669
|
}
|
|
404
|
-
}, defaultSlot ?
|
|
405
|
-
items:
|
|
406
|
-
|
|
1670
|
+
}, defaultSlot ? defaultSlot({
|
|
1671
|
+
items: rowList,
|
|
1672
|
+
$list: $xeList
|
|
1673
|
+
}) : rowList.map(function (row, i) {
|
|
1674
|
+
return $xeList.renderRow(h, row, i);
|
|
1675
|
+
}))]), footerSlot ? h('div', {
|
|
1676
|
+
ref: 'refFooterElem',
|
|
1677
|
+
class: 'vxe-list--footer-wrapper'
|
|
1678
|
+
}, footerSlot({
|
|
1679
|
+
items: rowList,
|
|
1680
|
+
$list: $xeList
|
|
1681
|
+
})) : (0, _ui.renderEmptyElement)($xeList),
|
|
1682
|
+
/**
|
|
1683
|
+
* 拖拽提示
|
|
1684
|
+
*/
|
|
1685
|
+
$xeList.renderDragTip(h),
|
|
407
1686
|
/**
|
|
408
1687
|
* 加载中
|
|
409
1688
|
*/
|
|
@@ -423,35 +1702,66 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
423
1702
|
},
|
|
424
1703
|
height: function height() {
|
|
425
1704
|
var $xeList = this;
|
|
426
|
-
$xeList.
|
|
1705
|
+
$xeList.reFlag++;
|
|
427
1706
|
},
|
|
428
1707
|
maxHeight: function maxHeight() {
|
|
429
1708
|
var $xeList = this;
|
|
430
|
-
$xeList.
|
|
1709
|
+
$xeList.reFlag++;
|
|
431
1710
|
},
|
|
432
|
-
syncResize: function syncResize(
|
|
1711
|
+
syncResize: function syncResize() {
|
|
433
1712
|
var $xeList = this;
|
|
434
|
-
|
|
1713
|
+
$xeList.reFlag++;
|
|
1714
|
+
},
|
|
1715
|
+
computeRowHeight: function computeRowHeight() {
|
|
1716
|
+
var $xeList = this;
|
|
1717
|
+
$xeList.reFlag++;
|
|
1718
|
+
},
|
|
1719
|
+
reFlag: function reFlag() {
|
|
1720
|
+
var $xeList = this;
|
|
1721
|
+
$xeList.$nextTick(function () {
|
|
435
1722
|
$xeList.recalculate();
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
1723
|
+
});
|
|
1724
|
+
},
|
|
1725
|
+
checkRowKey: function checkRowKey() {
|
|
1726
|
+
var $xeList = this;
|
|
1727
|
+
$xeList.updateRadioModeValue();
|
|
1728
|
+
},
|
|
1729
|
+
checkRowKeys: function checkRowKeys() {
|
|
1730
|
+
var $xeList = this;
|
|
1731
|
+
$xeList.updateCheckboxModeValue();
|
|
442
1732
|
}
|
|
443
1733
|
},
|
|
444
1734
|
created: function created() {
|
|
445
1735
|
var $xeList = this;
|
|
446
1736
|
var props = $xeList;
|
|
447
1737
|
$xeList.internalData = createInternalData();
|
|
1738
|
+
$xeList.browseObj = _xeUtils.default.browse();
|
|
448
1739
|
$xeList.loadData(props.data || []);
|
|
449
1740
|
},
|
|
450
1741
|
mounted: function mounted() {
|
|
451
1742
|
var $xeList = this;
|
|
452
1743
|
var props = $xeList;
|
|
453
1744
|
var internalData = $xeList.internalData;
|
|
454
|
-
|
|
1745
|
+
var showRadio = props.showRadio,
|
|
1746
|
+
showCheckbox = props.showCheckbox;
|
|
1747
|
+
var rowOpts = $xeList.computeRowOpts;
|
|
1748
|
+
var useKey = rowOpts.useKey,
|
|
1749
|
+
keyField = rowOpts.keyField;
|
|
1750
|
+
var isDrag = $xeList.computeIsDrag;
|
|
1751
|
+
if (!keyField) {
|
|
1752
|
+
if (showRadio) {
|
|
1753
|
+
errLog('vxe.error.reqSupportProp', ['show-radio', 'row-config.keyField']);
|
|
1754
|
+
}
|
|
1755
|
+
if (showCheckbox) {
|
|
1756
|
+
errLog('vxe.error.reqSupportProp', ['show-checkbox', 'row-config.keyField']);
|
|
1757
|
+
}
|
|
1758
|
+
if (isDrag) {
|
|
1759
|
+
errLog('vxe.error.reqSupportProp', ['drag-config', 'row-config.keyField']);
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1762
|
+
if (useKey && !keyField) {
|
|
1763
|
+
errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
|
|
1764
|
+
}
|
|
455
1765
|
if (props.autoResize) {
|
|
456
1766
|
var el = $xeList.$refs.refElem;
|
|
457
1767
|
var resizeObserver = _ui.globalResize.create(function () {
|
|
@@ -463,6 +1773,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
463
1773
|
}
|
|
464
1774
|
internalData.resizeObserver = resizeObserver;
|
|
465
1775
|
}
|
|
1776
|
+
$xeList.recalculate();
|
|
466
1777
|
_ui.globalEvents.on($xeList, 'resize', $xeList.recalculate);
|
|
467
1778
|
},
|
|
468
1779
|
activated: function activated() {
|