iov-design 2.15.31 → 2.15.33
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/lib/calendar.js +2 -2
- package/lib/cascader-panel.js +8 -8
- package/lib/cascader.js +2 -2
- package/lib/color-picker.js +4 -4
- package/lib/date-picker.js +6 -6
- package/lib/image.js +8 -8
- package/lib/index.js +1 -1
- package/lib/iov-design.common.js +303 -21
- package/lib/loading.js +8 -8
- package/lib/message-box.js +10 -10
- package/lib/message.js +8 -8
- package/lib/notification.js +8 -8
- package/lib/pagination.js +2 -2
- package/lib/popover.js +8 -8
- package/lib/select.js +8 -8
- package/lib/table-column.js +74 -7
- package/lib/table.js +245 -23
- package/lib/tag.js +1 -8
- package/lib/theme-chalk/index.css +1 -1
- package/lib/theme-chalk/table.css +1 -1
- package/lib/time-picker.js +11 -11
- package/lib/time-select.js +8 -8
- package/lib/tooltip.js +2 -2
- package/lib/transfer.js +8 -8
- package/lib/upload.js +8 -8
- package/package.json +1 -1
- package/packages/table/src/config.js +31 -4
- package/packages/table/src/store/watcher.js +126 -6
- package/packages/table/src/table-header.js +60 -0
- package/packages/table/src/table.vue +6 -0
- package/packages/tag/src/tag.vue +1 -2
- package/packages/theme-chalk/src/table.scss +34 -8
- package/src/index.js +1 -1
package/lib/select.js
CHANGED
|
@@ -554,13 +554,6 @@ module.exports = require("iov-design/lib/utils/vue-popper");
|
|
|
554
554
|
|
|
555
555
|
/***/ }),
|
|
556
556
|
|
|
557
|
-
/***/ 6:
|
|
558
|
-
/***/ (function(module, exports) {
|
|
559
|
-
|
|
560
|
-
module.exports = require("iov-design/lib/mixins/locale");
|
|
561
|
-
|
|
562
|
-
/***/ }),
|
|
563
|
-
|
|
564
557
|
/***/ 64:
|
|
565
558
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
566
559
|
|
|
@@ -1071,7 +1064,7 @@ var focus_ = __webpack_require__(22);
|
|
|
1071
1064
|
var focus_default = /*#__PURE__*/__webpack_require__.n(focus_);
|
|
1072
1065
|
|
|
1073
1066
|
// EXTERNAL MODULE: external "iov-design/lib/mixins/locale"
|
|
1074
|
-
var locale_ = __webpack_require__(
|
|
1067
|
+
var locale_ = __webpack_require__(7);
|
|
1075
1068
|
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
|
|
1076
1069
|
|
|
1077
1070
|
// EXTERNAL MODULE: external "iov-design/lib/input"
|
|
@@ -2246,6 +2239,13 @@ src_select.install = function (Vue) {
|
|
|
2246
2239
|
|
|
2247
2240
|
/* harmony default export */ var packages_select = __webpack_exports__["default"] = (src_select);
|
|
2248
2241
|
|
|
2242
|
+
/***/ }),
|
|
2243
|
+
|
|
2244
|
+
/***/ 7:
|
|
2245
|
+
/***/ (function(module, exports) {
|
|
2246
|
+
|
|
2247
|
+
module.exports = require("iov-design/lib/mixins/locale");
|
|
2248
|
+
|
|
2249
2249
|
/***/ })
|
|
2250
2250
|
|
|
2251
2251
|
/******/ });
|
package/lib/table-column.js
CHANGED
|
@@ -128,18 +128,85 @@ var cellStarts = {
|
|
|
128
128
|
var cellForced = {
|
|
129
129
|
selection: {
|
|
130
130
|
renderHeader: function renderHeader(h, _ref) {
|
|
131
|
-
var
|
|
131
|
+
var _this = this;
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
var store = _ref.store;
|
|
134
|
+
var _store$states = store.states,
|
|
135
|
+
selection = _store$states.selection,
|
|
136
|
+
data = _store$states.data,
|
|
137
|
+
rowKey = _store$states.rowKey;
|
|
138
|
+
|
|
139
|
+
var indeterminate = selection.length > 0 && !(selection.length === data.length);
|
|
140
|
+
|
|
141
|
+
if (rowKey) {
|
|
142
|
+
// 全选: v-model - true, indeterminate - false
|
|
143
|
+
// 半选: v-model - false, indeterminate - true
|
|
144
|
+
// 不选:v-model - false, indeterminate - false
|
|
145
|
+
|
|
146
|
+
// 已选择的数据中是否包括当前页的数据项 && !当前页数据全部选中
|
|
147
|
+
indeterminate = selection.some(function (o) {
|
|
148
|
+
return data.some(function (row) {
|
|
149
|
+
return row[rowKey] === o[rowKey];
|
|
150
|
+
});
|
|
151
|
+
}) && !data.every(function (row) {
|
|
152
|
+
return selection.some(function (o) {
|
|
153
|
+
return row[rowKey] === o[rowKey];
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return [h('el-checkbox', {
|
|
134
158
|
attrs: {
|
|
135
|
-
disabled:
|
|
136
|
-
indeterminate:
|
|
159
|
+
disabled: data && data.length === 0,
|
|
160
|
+
indeterminate: indeterminate,
|
|
137
161
|
|
|
138
162
|
value: this.isAllSelected },
|
|
139
163
|
on: {
|
|
140
164
|
'input': this.toggleAllSelection
|
|
141
165
|
}
|
|
142
|
-
})
|
|
166
|
+
}), this.table.crossPageSelection && h(
|
|
167
|
+
'el-dropdown',
|
|
168
|
+
{
|
|
169
|
+
'class': 'el-table__cross-page-selection',
|
|
170
|
+
attrs: { placement: 'bottom-start',
|
|
171
|
+
trigger: 'click'
|
|
172
|
+
},
|
|
173
|
+
on: {
|
|
174
|
+
'command': function command(_command) {
|
|
175
|
+
return _this.onSelectionChange(_command, _this.scope);
|
|
176
|
+
},
|
|
177
|
+
'visible-change': this.onVisibleChange
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
[h('i', { 'class': ['iov-icon-arrow-down', this.store.states.showSelectionDropdown ? 'show-selection-dropdown' : ''] }), h(
|
|
181
|
+
'el-dropdown-menu',
|
|
182
|
+
{ slot: 'dropdown', 'class': 'table-selection__dropdown' },
|
|
183
|
+
[h(
|
|
184
|
+
'el-dropdown-item',
|
|
185
|
+
{
|
|
186
|
+
attrs: { disabled: data && data.length === 0, command: 1 }
|
|
187
|
+
},
|
|
188
|
+
['\u5168\u9009\u5F53\u9875']
|
|
189
|
+
), h(
|
|
190
|
+
'el-dropdown-item',
|
|
191
|
+
{
|
|
192
|
+
attrs: { disabled: data && data.length === 0, command: 3 }
|
|
193
|
+
},
|
|
194
|
+
['\u5168\u9009\u6240\u6709\u9875']
|
|
195
|
+
), h(
|
|
196
|
+
'el-dropdown-item',
|
|
197
|
+
{
|
|
198
|
+
attrs: { disabled: data && data.length === 0, command: 2 }
|
|
199
|
+
},
|
|
200
|
+
['\u6E05\u7A7A\u5F53\u9875']
|
|
201
|
+
), h(
|
|
202
|
+
'el-dropdown-item',
|
|
203
|
+
{
|
|
204
|
+
attrs: { disabled: data && data.length === 0, command: 4 }
|
|
205
|
+
},
|
|
206
|
+
['\u6E05\u7A7A\u6240\u6709\u9875']
|
|
207
|
+
)]
|
|
208
|
+
)]
|
|
209
|
+
)];
|
|
143
210
|
},
|
|
144
211
|
renderCell: function renderCell(h, _ref2) {
|
|
145
212
|
var row = _ref2.row,
|
|
@@ -274,7 +341,7 @@ function treeCellPrefix(h, _ref8) {
|
|
|
274
341
|
return ele;
|
|
275
342
|
}
|
|
276
343
|
// EXTERNAL MODULE: ./packages/table/src/util.js
|
|
277
|
-
var util = __webpack_require__(
|
|
344
|
+
var util = __webpack_require__(6);
|
|
278
345
|
|
|
279
346
|
// EXTERNAL MODULE: external "iov-design/lib/checkbox"
|
|
280
347
|
var checkbox_ = __webpack_require__(18);
|
|
@@ -632,7 +699,7 @@ module.exports = require("iov-design/lib/utils/util");
|
|
|
632
699
|
|
|
633
700
|
/***/ }),
|
|
634
701
|
|
|
635
|
-
/***/
|
|
702
|
+
/***/ 6:
|
|
636
703
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
637
704
|
|
|
638
705
|
"use strict";
|
package/lib/table.js
CHANGED
|
@@ -208,18 +208,6 @@ module.exports = require("iov-design/lib/utils/vue-popper");
|
|
|
208
208
|
|
|
209
209
|
/***/ }),
|
|
210
210
|
/* 6 */
|
|
211
|
-
/***/ (function(module, exports) {
|
|
212
|
-
|
|
213
|
-
module.exports = require("iov-design/lib/mixins/locale");
|
|
214
|
-
|
|
215
|
-
/***/ }),
|
|
216
|
-
/* 7 */
|
|
217
|
-
/***/ (function(module, exports) {
|
|
218
|
-
|
|
219
|
-
module.exports = require("vue");
|
|
220
|
-
|
|
221
|
-
/***/ }),
|
|
222
|
-
/* 8 */
|
|
223
211
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
224
212
|
|
|
225
213
|
"use strict";
|
|
@@ -533,6 +521,18 @@ var objectEquals = function objectEquals(objectA, objectB) {
|
|
|
533
521
|
return true;
|
|
534
522
|
};
|
|
535
523
|
|
|
524
|
+
/***/ }),
|
|
525
|
+
/* 7 */
|
|
526
|
+
/***/ (function(module, exports) {
|
|
527
|
+
|
|
528
|
+
module.exports = require("iov-design/lib/mixins/locale");
|
|
529
|
+
|
|
530
|
+
/***/ }),
|
|
531
|
+
/* 8 */
|
|
532
|
+
/***/ (function(module, exports) {
|
|
533
|
+
|
|
534
|
+
module.exports = require("vue");
|
|
535
|
+
|
|
536
536
|
/***/ }),
|
|
537
537
|
/* 9 */
|
|
538
538
|
/***/ (function(module, exports) {
|
|
@@ -1151,7 +1151,7 @@ var mousewheel_mousewheel = function mousewheel(element, callback) {
|
|
|
1151
1151
|
}
|
|
1152
1152
|
});
|
|
1153
1153
|
// EXTERNAL MODULE: external "iov-design/lib/mixins/locale"
|
|
1154
|
-
var locale_ = __webpack_require__(
|
|
1154
|
+
var locale_ = __webpack_require__(7);
|
|
1155
1155
|
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
|
|
1156
1156
|
|
|
1157
1157
|
// EXTERNAL MODULE: external "iov-design/lib/mixins/migrating"
|
|
@@ -1159,7 +1159,7 @@ var migrating_ = __webpack_require__(11);
|
|
|
1159
1159
|
var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);
|
|
1160
1160
|
|
|
1161
1161
|
// EXTERNAL MODULE: external "vue"
|
|
1162
|
-
var external_vue_ = __webpack_require__(
|
|
1162
|
+
var external_vue_ = __webpack_require__(8);
|
|
1163
1163
|
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
|
|
1164
1164
|
|
|
1165
1165
|
// EXTERNAL MODULE: external "iov-design/lib/utils/merge"
|
|
@@ -1167,7 +1167,7 @@ var merge_ = __webpack_require__(9);
|
|
|
1167
1167
|
var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
|
|
1168
1168
|
|
|
1169
1169
|
// EXTERNAL MODULE: ./packages/table/src/util.js
|
|
1170
|
-
var util = __webpack_require__(
|
|
1170
|
+
var util = __webpack_require__(6);
|
|
1171
1171
|
|
|
1172
1172
|
// CONCATENATED MODULE: ./packages/table/src/store/expand.js
|
|
1173
1173
|
|
|
@@ -1625,6 +1625,13 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1625
1625
|
selectOnIndeterminate: false,
|
|
1626
1626
|
selectable: null,
|
|
1627
1627
|
|
|
1628
|
+
// 跨页全选标记
|
|
1629
|
+
isCrossPageSelection: false,
|
|
1630
|
+
// 全选下拉出现/隐藏事件
|
|
1631
|
+
showSelectionDropdown: false,
|
|
1632
|
+
// 已取消勾选的数据
|
|
1633
|
+
unSelectionData: [],
|
|
1634
|
+
|
|
1628
1635
|
// 过滤
|
|
1629
1636
|
filters: {}, // 不可响应的
|
|
1630
1637
|
filteredData: null,
|
|
@@ -1701,12 +1708,24 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1701
1708
|
return selection.indexOf(row) > -1;
|
|
1702
1709
|
},
|
|
1703
1710
|
clearSelection: function clearSelection() {
|
|
1711
|
+
var emitChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
1712
|
+
|
|
1704
1713
|
var states = this.states;
|
|
1705
1714
|
states.isAllSelected = false;
|
|
1706
1715
|
var oldSelection = states.selection;
|
|
1716
|
+
|
|
1717
|
+
// 表格中有选中的数据项是disabled状态时,清空时保留该数据
|
|
1718
|
+
var isDisabledSelection = states.data.filter(function (row, index) {
|
|
1719
|
+
// 判断selectable是不可选中状态, 且当前数据项已被选中
|
|
1720
|
+
if (states.selectable && !states.selectable.call(null, row, index) && oldSelection.some(function (item) {
|
|
1721
|
+
return item[states.rowKey] === row[states.rowKey];
|
|
1722
|
+
})) {
|
|
1723
|
+
return row;
|
|
1724
|
+
}
|
|
1725
|
+
});
|
|
1707
1726
|
if (oldSelection.length) {
|
|
1708
|
-
states.selection =
|
|
1709
|
-
this.table.$emit('selection-change',
|
|
1727
|
+
states.selection = isDisabledSelection;
|
|
1728
|
+
emitChange && this.table.$emit('selection-change', states.selection, states.isCrossPageSelection);
|
|
1710
1729
|
}
|
|
1711
1730
|
},
|
|
1712
1731
|
cleanSelection: function cleanSelection() {
|
|
@@ -1735,7 +1754,7 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1735
1754
|
return deleted.indexOf(item) === -1;
|
|
1736
1755
|
});
|
|
1737
1756
|
states.selection = newSelection;
|
|
1738
|
-
this.table.$emit('selection-change', newSelection.slice());
|
|
1757
|
+
this.table.$emit('selection-change', newSelection.slice(), false);
|
|
1739
1758
|
}
|
|
1740
1759
|
},
|
|
1741
1760
|
toggleRowSelection: function toggleRowSelection(row, selected) {
|
|
@@ -1746,16 +1765,135 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1746
1765
|
var newSelection = (this.states.selection || []).slice();
|
|
1747
1766
|
// 调用 API 修改选中值,不触发 select 事件
|
|
1748
1767
|
if (emitChange) {
|
|
1768
|
+
this.getUnSelectedRow(newSelection);
|
|
1749
1769
|
this.table.$emit('select', newSelection, row);
|
|
1750
1770
|
}
|
|
1751
|
-
this.
|
|
1771
|
+
if (this.states.isCrossPageSelection) {
|
|
1772
|
+
this.table.$emit('selection-change', this.states.unSelectionData, true);
|
|
1773
|
+
} else {
|
|
1774
|
+
this.table.$emit('selection-change', newSelection, false);
|
|
1775
|
+
}
|
|
1752
1776
|
}
|
|
1753
1777
|
},
|
|
1754
|
-
|
|
1778
|
+
|
|
1779
|
+
|
|
1780
|
+
/**
|
|
1781
|
+
* 选择数据事件
|
|
1782
|
+
* @param {num} command 选择事件类型 1-全选当前页 2-清空当前页 3-全选所有页 4-清空所有页
|
|
1783
|
+
*/
|
|
1784
|
+
onSelectionChange: function onSelectionChange(command) {
|
|
1785
|
+
switch (command) {
|
|
1786
|
+
// 全选当前页
|
|
1787
|
+
case 1:
|
|
1788
|
+
this.onChangeCurrentPage(true, command);
|
|
1789
|
+
break;
|
|
1790
|
+
// 清空当前页
|
|
1791
|
+
case 2:
|
|
1792
|
+
this.onChangeCurrentPage(false, command);
|
|
1793
|
+
break;
|
|
1794
|
+
// 全选所有页
|
|
1795
|
+
case 3:
|
|
1796
|
+
this.states.isCrossPageSelection = true;
|
|
1797
|
+
this.onChangeCurrentPage(true, command);
|
|
1798
|
+
break;
|
|
1799
|
+
// 清空所有页
|
|
1800
|
+
case 4:
|
|
1801
|
+
this.onChangeCurrentPage(false, command);
|
|
1802
|
+
break;
|
|
1803
|
+
default:
|
|
1804
|
+
break;
|
|
1805
|
+
}
|
|
1806
|
+
},
|
|
1807
|
+
onChangeCurrentPage: function onChangeCurrentPage(selected, command) {
|
|
1755
1808
|
var states = this.states;
|
|
1756
1809
|
var _states$data = states.data,
|
|
1757
1810
|
data = _states$data === undefined ? [] : _states$data,
|
|
1758
1811
|
selection = states.selection;
|
|
1812
|
+
|
|
1813
|
+
data.forEach(function (row, index) {
|
|
1814
|
+
if (states.selectable) {
|
|
1815
|
+
if (states.selectable.call(null, row, index)) {
|
|
1816
|
+
Object(util["n" /* toggleRowStatus */])(selection, row, selected);
|
|
1817
|
+
}
|
|
1818
|
+
} else {
|
|
1819
|
+
Object(util["n" /* toggleRowStatus */])(selection, row, selected);
|
|
1820
|
+
}
|
|
1821
|
+
});
|
|
1822
|
+
this.updateAllSelected();
|
|
1823
|
+
|
|
1824
|
+
// 先点击跨页全选,再点击清空当前页/取消几条勾选数据, 最后点击全选当前页
|
|
1825
|
+
if (states.isCrossPageSelection) {
|
|
1826
|
+
// 重新计算未选中数据
|
|
1827
|
+
this.getUnSelectedRow(states.selection);
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
if (command === 4) {
|
|
1831
|
+
states.isCrossPageSelection = false;
|
|
1832
|
+
this.clearSelection(false);
|
|
1833
|
+
states.unSelectionData = [];
|
|
1834
|
+
}
|
|
1835
|
+
|
|
1836
|
+
// 触发el-table的'selection-change'事件
|
|
1837
|
+
if (states.isCrossPageSelection) {
|
|
1838
|
+
this.table.$listeners['selection-change'](states.unSelectionData, states.isCrossPageSelection);
|
|
1839
|
+
} else {
|
|
1840
|
+
this.table.$listeners['selection-change'](states.selection, states.isCrossPageSelection);
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
/**
|
|
1846
|
+
* 获取取消勾选数据项
|
|
1847
|
+
* @param {arr} selection 当前已选择所有数据项
|
|
1848
|
+
*/
|
|
1849
|
+
getUnSelectedRow: function getUnSelectedRow(selection) {
|
|
1850
|
+
var _this = this;
|
|
1851
|
+
|
|
1852
|
+
if (!this.states.isCrossPageSelection) return;
|
|
1853
|
+
|
|
1854
|
+
var rowKey = this.states.rowKey;
|
|
1855
|
+
|
|
1856
|
+
// 从全部勾选数据中过滤出当前页勾选的数据
|
|
1857
|
+
|
|
1858
|
+
var selected = this.states.data.filter(function (item) {
|
|
1859
|
+
return selection.some(function (row) {
|
|
1860
|
+
return row[rowKey] === item[rowKey];
|
|
1861
|
+
});
|
|
1862
|
+
});
|
|
1863
|
+
// 通过当前页数据与当前页已勾选的数据, 过滤出当前页未勾选的数据
|
|
1864
|
+
var unselected = this.states.data.filter(function (item) {
|
|
1865
|
+
return !selected.some(function (row) {
|
|
1866
|
+
return row[rowKey] === item[rowKey];
|
|
1867
|
+
});
|
|
1868
|
+
});
|
|
1869
|
+
|
|
1870
|
+
// 取消勾选数据中是否存在当页面已勾选的数据项, 如有则删除
|
|
1871
|
+
var index = [];
|
|
1872
|
+
this.states.unSelectionData.forEach(function (item, i) {
|
|
1873
|
+
if (selected.some(function (s) {
|
|
1874
|
+
return s[rowKey] === item[rowKey];
|
|
1875
|
+
})) {
|
|
1876
|
+
index.push(i);
|
|
1877
|
+
}
|
|
1878
|
+
});
|
|
1879
|
+
this.states.unSelectionData = this.states.unSelectionData.filter(function (item, i) {
|
|
1880
|
+
return !index.includes(i);
|
|
1881
|
+
});
|
|
1882
|
+
|
|
1883
|
+
// 取消勾选数据中如果不存在当前页未勾选的数据, 则将当前未勾选的数据添push到取消勾选数据中
|
|
1884
|
+
unselected.forEach(function (item) {
|
|
1885
|
+
if (!_this.states.unSelectionData.some(function (s) {
|
|
1886
|
+
return s[rowKey] === item[rowKey];
|
|
1887
|
+
})) {
|
|
1888
|
+
_this.states.unSelectionData.push(item);
|
|
1889
|
+
}
|
|
1890
|
+
});
|
|
1891
|
+
},
|
|
1892
|
+
_toggleAllSelection: function _toggleAllSelection() {
|
|
1893
|
+
var states = this.states;
|
|
1894
|
+
var _states$data2 = states.data,
|
|
1895
|
+
data = _states$data2 === undefined ? [] : _states$data2,
|
|
1896
|
+
selection = states.selection;
|
|
1759
1897
|
// when only some rows are selected (but not all), select or deselect all of them
|
|
1760
1898
|
// depending on the value of selectOnIndeterminate
|
|
1761
1899
|
|
|
@@ -1775,8 +1913,15 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1775
1913
|
}
|
|
1776
1914
|
});
|
|
1777
1915
|
|
|
1916
|
+
var newSelection = (this.states.selection || []).slice();
|
|
1917
|
+
|
|
1778
1918
|
if (selectionChanged) {
|
|
1779
|
-
|
|
1919
|
+
if (states.isCrossPageSelection) {
|
|
1920
|
+
this.getUnSelectedRow(newSelection);
|
|
1921
|
+
this.table.$emit('selection-change', states.unSelectionData || [], true);
|
|
1922
|
+
} else {
|
|
1923
|
+
this.table.$emit('selection-change', selection ? selection.slice() : [], false);
|
|
1924
|
+
}
|
|
1780
1925
|
}
|
|
1781
1926
|
this.table.$emit('select-all', selection);
|
|
1782
1927
|
},
|
|
@@ -1862,7 +2007,7 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1862
2007
|
this.states.sortOrder = order;
|
|
1863
2008
|
},
|
|
1864
2009
|
execFilter: function execFilter() {
|
|
1865
|
-
var
|
|
2010
|
+
var _this2 = this;
|
|
1866
2011
|
|
|
1867
2012
|
var states = this.states;
|
|
1868
2013
|
var _data = states._data,
|
|
@@ -1873,7 +2018,7 @@ var doFlattenColumns = function doFlattenColumns(columns) {
|
|
|
1873
2018
|
Object.keys(filters).forEach(function (columnId) {
|
|
1874
2019
|
var values = states.filters[columnId];
|
|
1875
2020
|
if (!values || values.length === 0) return;
|
|
1876
|
-
var column = Object(util["d" /* getColumnById */])(
|
|
2021
|
+
var column = Object(util["d" /* getColumnById */])(_this2.states, columnId);
|
|
1877
2022
|
if (column && column.filterMethod) {
|
|
1878
2023
|
data = data.filter(function (row) {
|
|
1879
2024
|
return values.some(function (value) {
|
|
@@ -3574,6 +3719,7 @@ var table_header_extends = Object.assign || function (target) { for (var i = 1;
|
|
|
3574
3719
|
|
|
3575
3720
|
|
|
3576
3721
|
|
|
3722
|
+
|
|
3577
3723
|
var getAllColumns = function getAllColumns(columns) {
|
|
3578
3724
|
var result = [];
|
|
3579
3725
|
columns.forEach(function (column) {
|
|
@@ -3788,6 +3934,59 @@ var convertToRows = function convertToRows(originColumns) {
|
|
|
3788
3934
|
}
|
|
3789
3935
|
})),
|
|
3790
3936
|
|
|
3937
|
+
watch: {
|
|
3938
|
+
'store.states.data': {
|
|
3939
|
+
handler: function handler() {
|
|
3940
|
+
var states = this.store.states;
|
|
3941
|
+
var _states$data = states.data,
|
|
3942
|
+
data = _states$data === undefined ? [] : _states$data,
|
|
3943
|
+
selection = states.selection,
|
|
3944
|
+
unSelectionData = states.unSelectionData,
|
|
3945
|
+
rowKey = states.rowKey;
|
|
3946
|
+
|
|
3947
|
+
var selectionRowKeys = selection.map(function (item) {
|
|
3948
|
+
return item[rowKey];
|
|
3949
|
+
});
|
|
3950
|
+
var unSelectionRowKeys = unSelectionData.map(function (item) {
|
|
3951
|
+
return item[rowKey];
|
|
3952
|
+
});
|
|
3953
|
+
// console.log(data, 'data');
|
|
3954
|
+
// console.log(selection, unSelectionRowKeys, 'selection');
|
|
3955
|
+
// 全选所有页
|
|
3956
|
+
if (this.store.states.isCrossPageSelection) {
|
|
3957
|
+
data.forEach(function (row, index) {
|
|
3958
|
+
if (states.selectable) {
|
|
3959
|
+
if (states.selectable.call(null, row, index)) {
|
|
3960
|
+
// 如果已勾选数据中不包含当前页数据(如跳转至新的一页), 则勾选
|
|
3961
|
+
if (!selectionRowKeys.includes(row[rowKey])) {
|
|
3962
|
+
Object(util["n" /* toggleRowStatus */])(selection, row, true);
|
|
3963
|
+
}
|
|
3964
|
+
// 如果取消勾选数据中包含当前页数据项, 则取消勾选
|
|
3965
|
+
if (unSelectionRowKeys.includes(row[rowKey])) {
|
|
3966
|
+
Object(util["n" /* toggleRowStatus */])(selection, row, false);
|
|
3967
|
+
}
|
|
3968
|
+
}
|
|
3969
|
+
} else {
|
|
3970
|
+
// 如果已勾选数据中不包含当前页数据(如跳转至新的一页), 则勾选
|
|
3971
|
+
if (!selectionRowKeys.includes(row[rowKey])) {
|
|
3972
|
+
Object(util["n" /* toggleRowStatus */])(selection, row, true);
|
|
3973
|
+
}
|
|
3974
|
+
// 如果取消勾选数据中包含当前页数据项, 则取消勾选
|
|
3975
|
+
if (unSelectionRowKeys.includes(row[rowKey])) {
|
|
3976
|
+
Object(util["n" /* toggleRowStatus */])(selection, row, false);
|
|
3977
|
+
}
|
|
3978
|
+
}
|
|
3979
|
+
});
|
|
3980
|
+
}
|
|
3981
|
+
this.store.getUnSelectedRow(states.selection);
|
|
3982
|
+
this.store.updateAllSelected();
|
|
3983
|
+
console.log('isAllSelected', states.isAllSelected);
|
|
3984
|
+
},
|
|
3985
|
+
|
|
3986
|
+
deep: true
|
|
3987
|
+
}
|
|
3988
|
+
},
|
|
3989
|
+
|
|
3791
3990
|
created: function created() {
|
|
3792
3991
|
this.filterPanels = {};
|
|
3793
3992
|
},
|
|
@@ -3894,6 +4093,24 @@ var convertToRows = function convertToRows(originColumns) {
|
|
|
3894
4093
|
toggleAllSelection: function toggleAllSelection() {
|
|
3895
4094
|
this.store.commit('toggleAllSelection');
|
|
3896
4095
|
},
|
|
4096
|
+
|
|
4097
|
+
|
|
4098
|
+
/**
|
|
4099
|
+
* 下拉框出现/隐藏事件
|
|
4100
|
+
* @param {bol} visible 出现/隐藏
|
|
4101
|
+
*/
|
|
4102
|
+
onVisibleChange: function onVisibleChange(v) {
|
|
4103
|
+
this.store.states.showSelectionDropdown = v;
|
|
4104
|
+
},
|
|
4105
|
+
|
|
4106
|
+
|
|
4107
|
+
/**
|
|
4108
|
+
* 选择数据事件
|
|
4109
|
+
* @param {num} command 选择事件类型 1-全选当前页 2-清空当前页 3-全选所有页 4-清空所有页
|
|
4110
|
+
*/
|
|
4111
|
+
onSelectionChange: function onSelectionChange(command) {
|
|
4112
|
+
this.store.onSelectionChange(command);
|
|
4113
|
+
},
|
|
3897
4114
|
handleFilterClick: function handleFilterClick(event, column) {
|
|
3898
4115
|
event.stopPropagation();
|
|
3899
4116
|
var target = event.target;
|
|
@@ -4601,6 +4818,11 @@ var tableIdSeed = 1;
|
|
|
4601
4818
|
default: true
|
|
4602
4819
|
},
|
|
4603
4820
|
|
|
4821
|
+
crossPageSelection: {
|
|
4822
|
+
type: Boolean,
|
|
4823
|
+
default: false
|
|
4824
|
+
},
|
|
4825
|
+
|
|
4604
4826
|
indent: {
|
|
4605
4827
|
type: Number,
|
|
4606
4828
|
default: 16
|
package/lib/tag.js
CHANGED
|
@@ -205,7 +205,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
205
205
|
type: String,
|
|
206
206
|
hit: Boolean,
|
|
207
207
|
dot: Boolean,
|
|
208
|
-
disableTransitions: Boolean,
|
|
209
208
|
color: String,
|
|
210
209
|
size: String,
|
|
211
210
|
icon: String,
|
|
@@ -262,13 +261,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
262
261
|
)]
|
|
263
262
|
);
|
|
264
263
|
|
|
265
|
-
return
|
|
266
|
-
'transition',
|
|
267
|
-
{
|
|
268
|
-
attrs: { name: 'el-zoom-in-center' }
|
|
269
|
-
},
|
|
270
|
-
[tagEl]
|
|
271
|
-
);
|
|
264
|
+
return tagEl;
|
|
272
265
|
}
|
|
273
266
|
});
|
|
274
267
|
// CONCATENATED MODULE: ./packages/tag/src/tag.vue?vue&type=script&lang=js&
|