vxe-table 3.9.0-rc.9 → 3.9.0
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/README.md +1 -1
- package/es/grid/src/grid.js +120 -66
- package/es/grid/style.css +0 -1
- package/es/grid/style.min.css +1 -1
- package/es/index.esm.js +22 -3
- package/es/locale/lang/en-US.js +2 -1
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +2 -1
- package/es/locale/lang/uk-UA.js +2 -1
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +183 -173
- package/es/table/module/edit/mixin.js +33 -24
- package/es/table/module/export/export-panel.js +32 -4
- package/es/table/module/export/import-panel.js +25 -6
- package/es/table/module/export/mixin.js +11 -11
- package/es/table/module/menu/mixin.js +2 -2
- package/es/table/module/validator/mixin.js +4 -4
- package/es/table/render/index.js +17 -11
- package/es/table/src/body.js +1 -0
- package/es/table/src/columnInfo.js +3 -3
- package/es/table/src/methods.js +54 -42
- package/es/table/src/props.js +65 -15
- package/es/table/src/table.js +91 -57
- package/es/table/src/util.js +3 -2
- package/es/table/style.css +37 -48
- package/es/table/style.min.css +1 -1
- package/es/toolbar/src/toolbar.js +21 -7
- package/es/toolbar/style.css +0 -1
- package/es/toolbar/style.min.css +1 -1
- package/es/ui/index.js +5 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-grid/style.css +0 -1
- package/es/vxe-grid/style.min.css +1 -1
- package/es/vxe-table/style.css +37 -48
- package/es/vxe-table/style.min.css +1 -1
- package/es/vxe-toolbar/style.css +0 -1
- package/es/vxe-toolbar/style.min.css +1 -1
- package/lib/colgroup/index.js +3 -3
- package/lib/colgroup/index.min.js +1 -1
- package/lib/column/index.js +3 -3
- package/lib/column/index.min.js +1 -1
- package/lib/components.js +9 -11
- package/lib/components.min.js +1 -1
- package/lib/grid/index.js +3 -3
- package/lib/grid/index.min.js +1 -1
- package/lib/grid/src/grid.js +581 -491
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/grid/style/style.css +0 -1
- package/lib/grid/style/style.min.css +1 -1
- package/lib/index.common.js +3 -4
- package/lib/index.umd.js +9174 -17260
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -1
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +2 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +2 -1
- package/lib/locale/lang/uk-UA.js +2 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +2 -1
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +2 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/index.js +4 -4
- package/lib/table/index.min.js +1 -1
- package/lib/table/module/custom/mixin.js +53 -44
- package/lib/table/module/custom/mixin.min.js +1 -1
- package/lib/table/module/custom/panel.js +310 -239
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/mixin.js +436 -371
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/export-panel.js +136 -106
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/import-panel.js +75 -54
- package/lib/table/module/export/import-panel.min.js +1 -1
- package/lib/table/module/export/mixin.js +592 -597
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/module/export/util.js +6 -4
- package/lib/table/module/export/util.min.js +1 -1
- package/lib/table/module/filter/mixin.js +147 -118
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +86 -65
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +163 -151
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +125 -114
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/menu/panel.js +36 -34
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/module/validator/mixin.js +225 -214
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/render/index.js +401 -297
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +411 -349
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +470 -344
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +10 -10
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +46 -55
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +157 -132
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/group.js +1 -1
- package/lib/table/src/group.min.js +1 -1
- package/lib/table/src/header.js +170 -153
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +2758 -2478
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +33 -74
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +465 -424
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +143 -131
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +37 -48
- package/lib/table/style/style.min.css +1 -1
- package/lib/toolbar/index.js +3 -3
- package/lib/toolbar/index.min.js +1 -1
- package/lib/toolbar/src/toolbar.js +332 -284
- package/lib/toolbar/src/toolbar.min.js +1 -1
- package/lib/toolbar/style/style.css +0 -1
- package/lib/toolbar/style/style.min.css +1 -1
- package/lib/ui/index.js +50 -41
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/comp.js +2 -3
- package/lib/ui/src/comp.min.js +1 -1
- package/lib/ui/src/dom.js +29 -28
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +6 -4
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/src/utils.js +7 -7
- package/lib/v-x-e-table/index.js +3 -4
- package/lib/v-x-e-table/index.min.js +1 -1
- package/lib/vxe-colgroup/index.js +3 -4
- package/lib/vxe-colgroup/index.min.js +1 -1
- package/lib/vxe-column/index.js +3 -4
- package/lib/vxe-column/index.min.js +1 -1
- package/lib/vxe-grid/index.js +3 -4
- package/lib/vxe-grid/index.min.js +1 -1
- package/lib/vxe-grid/style/style.css +0 -1
- package/lib/vxe-grid/style/style.min.css +1 -1
- package/lib/vxe-table/index.js +3 -4
- package/lib/vxe-table/index.min.js +1 -1
- package/lib/vxe-table/style/style.css +37 -48
- package/lib/vxe-table/style/style.min.css +1 -1
- package/lib/vxe-toolbar/index.js +3 -4
- package/lib/vxe-toolbar/index.min.js +1 -1
- package/lib/vxe-toolbar/style/style.css +0 -1
- package/lib/vxe-toolbar/style/style.min.css +1 -1
- package/lib/vxe-ui/index.js +3 -4
- package/lib/vxe-ui/index.min.js +1 -1
- package/lib/vxe-v-x-e-table/index.js +3 -4
- package/lib/vxe-v-x-e-table/index.min.js +1 -1
- package/package.json +5 -4
- package/packages/grid/src/grid.ts +127 -65
- package/packages/locale/lang/en-US.ts +2 -1
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +2 -1
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/custom/panel.ts +186 -175
- package/packages/table/module/edit/mixin.ts +32 -23
- package/packages/table/module/export/export-panel.ts +36 -4
- package/packages/table/module/export/import-panel.ts +29 -6
- package/packages/table/module/export/mixin.ts +11 -11
- package/packages/table/module/menu/mixin.ts +2 -2
- package/packages/table/module/validator/mixin.ts +4 -4
- package/packages/table/render/index.ts +20 -11
- package/packages/table/src/body.ts +1 -0
- package/packages/table/src/columnInfo.ts +3 -3
- package/packages/table/src/methods.ts +53 -42
- package/packages/table/src/props.ts +68 -15
- package/packages/table/src/table.ts +99 -54
- package/packages/table/src/util.ts +3 -2
- package/packages/toolbar/src/toolbar.ts +21 -7
- package/packages/ui/index.ts +3 -1
- package/styles/components/table.scss +82 -17
- package/types/all.d.ts +1 -0
- /package/es/{iconfont.1726453742001.ttf → iconfont.1728348263835.ttf} +0 -0
- /package/es/{iconfont.1726453742001.woff → iconfont.1728348263835.woff} +0 -0
- /package/es/{iconfont.1726453742001.woff2 → iconfont.1728348263835.woff2} +0 -0
- /package/lib/{iconfont.1726453742001.ttf → iconfont.1728348263835.ttf} +0 -0
- /package/lib/{iconfont.1726453742001.woff → iconfont.1728348263835.woff} +0 -0
- /package/lib/{iconfont.1726453742001.woff2 → iconfont.1728348263835.woff2} +0 -0
|
@@ -10,22 +10,28 @@ var _util = require("../../src/util");
|
|
|
10
10
|
var _dom = require("../../../ui/src/dom");
|
|
11
11
|
var _utils = require("../../../ui/src/utils");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
|
|
13
|
+
const {
|
|
14
|
+
renderer
|
|
15
|
+
} = _ui.VxeUI;
|
|
14
16
|
var _default = exports.default = {
|
|
15
17
|
methods: {
|
|
16
18
|
/**
|
|
17
19
|
* 手动弹出筛选面板
|
|
18
20
|
* @param column
|
|
19
21
|
*/
|
|
20
|
-
_openFilter
|
|
21
|
-
|
|
22
|
+
_openFilter(fieldOrColumn) {
|
|
23
|
+
const column = (0, _util.handleFieldOrColumn)(this, fieldOrColumn);
|
|
22
24
|
if (column && column.filters) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const {
|
|
26
|
+
elemStore
|
|
27
|
+
} = this;
|
|
28
|
+
const {
|
|
29
|
+
fixed
|
|
30
|
+
} = column;
|
|
31
|
+
return this.scrollToColumn(column).then(() => {
|
|
32
|
+
const headerWrapperElem = elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper'];
|
|
27
33
|
if (headerWrapperElem) {
|
|
28
|
-
|
|
34
|
+
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter--btn`);
|
|
29
35
|
(0, _dom.triggerEvent)(filterBtnElem, 'click');
|
|
30
36
|
}
|
|
31
37
|
});
|
|
@@ -37,21 +43,19 @@ var _default = exports.default = {
|
|
|
37
43
|
* @param {ColumnInfo} fieldOrColumn 列
|
|
38
44
|
* @param {Array} options 选项
|
|
39
45
|
*/
|
|
40
|
-
_setFilter
|
|
41
|
-
|
|
46
|
+
_setFilter(fieldOrColumn, options, update) {
|
|
47
|
+
const column = (0, _util.handleFieldOrColumn)(this, fieldOrColumn);
|
|
42
48
|
if (column && column.filters) {
|
|
43
49
|
column.filters = (0, _util.toFilters)(options || []);
|
|
44
50
|
}
|
|
45
51
|
return update ? this.updateData() : this.$nextTick();
|
|
46
52
|
},
|
|
47
|
-
checkFilterOptions
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
filterStore.isIndeterminate = !filterStore.isAllSelected && filterStore.options.some(
|
|
53
|
-
return item._checked;
|
|
54
|
-
});
|
|
53
|
+
checkFilterOptions() {
|
|
54
|
+
const {
|
|
55
|
+
filterStore
|
|
56
|
+
} = this;
|
|
57
|
+
filterStore.isAllSelected = filterStore.options.every(item => item._checked);
|
|
58
|
+
filterStore.isIndeterminate = !filterStore.isAllSelected && filterStore.options.some(item => item._checked);
|
|
55
59
|
},
|
|
56
60
|
/**
|
|
57
61
|
* 点击筛选事件
|
|
@@ -62,74 +66,86 @@ var _default = exports.default = {
|
|
|
62
66
|
* @param {ColumnInfo} column 列配置
|
|
63
67
|
* @param {Object} params 参数
|
|
64
68
|
*/
|
|
65
|
-
triggerFilterEvent
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
triggerFilterEvent(evnt, column, params) {
|
|
70
|
+
const {
|
|
71
|
+
filterStore
|
|
72
|
+
} = this;
|
|
68
73
|
if (filterStore.column === column && filterStore.visible) {
|
|
69
74
|
filterStore.visible = false;
|
|
70
75
|
} else {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
const {
|
|
77
|
+
target: targetElem,
|
|
78
|
+
pageX
|
|
79
|
+
} = evnt;
|
|
80
|
+
const {
|
|
81
|
+
filters,
|
|
82
|
+
filterMultiple,
|
|
83
|
+
filterRender
|
|
84
|
+
} = column;
|
|
85
|
+
const compConf = (0, _utils.isEnableConf)(filterRender) ? renderer.get(filterRender.name) : null;
|
|
86
|
+
const filterRecoverMethod = column.filterRecoverMethod || (compConf ? compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod : null);
|
|
87
|
+
const {
|
|
88
|
+
visibleWidth
|
|
89
|
+
} = (0, _dom.getDomNode)();
|
|
80
90
|
Object.assign(filterStore, {
|
|
81
91
|
args: params,
|
|
82
92
|
multiple: filterMultiple,
|
|
83
93
|
options: filters,
|
|
84
|
-
column
|
|
94
|
+
column,
|
|
85
95
|
style: null,
|
|
86
96
|
visible: true
|
|
87
97
|
});
|
|
88
98
|
// 复原状态
|
|
89
|
-
filterStore.options.forEach(
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
filterStore.options.forEach(option => {
|
|
100
|
+
const {
|
|
101
|
+
_checked,
|
|
102
|
+
checked
|
|
103
|
+
} = option;
|
|
92
104
|
option._checked = checked;
|
|
93
105
|
if (!checked && _checked !== checked) {
|
|
94
106
|
if (filterRecoverMethod) {
|
|
95
107
|
filterRecoverMethod({
|
|
96
|
-
option
|
|
97
|
-
column
|
|
98
|
-
$table:
|
|
108
|
+
option,
|
|
109
|
+
column,
|
|
110
|
+
$table: this
|
|
99
111
|
});
|
|
100
112
|
}
|
|
101
113
|
}
|
|
102
114
|
});
|
|
103
115
|
this.checkFilterOptions();
|
|
104
116
|
this.initStore.filter = true;
|
|
105
|
-
this.$nextTick(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
this.$nextTick(() => {
|
|
118
|
+
const {
|
|
119
|
+
$refs
|
|
120
|
+
} = this;
|
|
121
|
+
const {
|
|
122
|
+
tableHeader,
|
|
123
|
+
tableBody,
|
|
124
|
+
filterWrapper
|
|
125
|
+
} = $refs;
|
|
126
|
+
const bodyElem = tableBody.$el;
|
|
127
|
+
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
112
128
|
if (!bodyElem) {
|
|
113
129
|
return;
|
|
114
130
|
}
|
|
115
|
-
|
|
131
|
+
const filterWrapperElem = filterWrapper.$el;
|
|
116
132
|
if (!filterWrapperElem) {
|
|
117
133
|
return;
|
|
118
134
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
top:
|
|
135
|
+
const filterWidth = filterWrapperElem.offsetWidth;
|
|
136
|
+
const filterHeight = filterWrapperElem.offsetHeight;
|
|
137
|
+
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
138
|
+
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
139
|
+
const centerWidth = filterWidth / 2;
|
|
140
|
+
const minMargin = 10;
|
|
141
|
+
const maxLeft = bodyElem.clientWidth - filterWidth - minMargin;
|
|
142
|
+
let left, right;
|
|
143
|
+
const style = {
|
|
144
|
+
top: `${targetElem.offsetTop + targetElem.offsetParent.offsetTop + targetElem.offsetHeight}px`
|
|
129
145
|
};
|
|
130
146
|
// 判断面板不能大于表格高度
|
|
131
|
-
|
|
132
|
-
|
|
147
|
+
let maxHeight = null;
|
|
148
|
+
const bodyHeight = bodyElem.clientHeight - (headerElem ? headerElem.clientHeight / 2 : 0);
|
|
133
149
|
if (filterHeight >= bodyHeight) {
|
|
134
150
|
maxHeight = Math.max(40, bodyHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0));
|
|
135
151
|
}
|
|
@@ -141,40 +157,44 @@ var _default = exports.default = {
|
|
|
141
157
|
left = targetElem.offsetLeft + targetElem.offsetParent.offsetLeft - centerWidth - bodyElem.scrollLeft;
|
|
142
158
|
}
|
|
143
159
|
if (left) {
|
|
144
|
-
|
|
160
|
+
const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
|
|
145
161
|
if (overflowWidth > 0) {
|
|
146
162
|
left -= overflowWidth;
|
|
147
163
|
}
|
|
148
|
-
style.left =
|
|
164
|
+
style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`;
|
|
149
165
|
} else if (right) {
|
|
150
|
-
|
|
151
|
-
if (
|
|
152
|
-
right +=
|
|
166
|
+
const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
|
|
167
|
+
if (overflowWidth > 0) {
|
|
168
|
+
right += overflowWidth;
|
|
153
169
|
}
|
|
154
|
-
style.right =
|
|
170
|
+
style.right = `${Math.max(minMargin, right)}px`;
|
|
155
171
|
}
|
|
156
172
|
filterStore.style = style;
|
|
157
173
|
filterStore.maxHeight = maxHeight;
|
|
158
174
|
});
|
|
159
175
|
}
|
|
160
176
|
this.emitEvent('filter-visible', {
|
|
161
|
-
column
|
|
177
|
+
column,
|
|
162
178
|
field: column.field,
|
|
163
179
|
property: column.field,
|
|
164
180
|
filterList: this.getCheckedFilters(),
|
|
165
181
|
visible: filterStore.visible
|
|
166
182
|
}, evnt);
|
|
167
183
|
},
|
|
168
|
-
_getCheckedFilters
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
184
|
+
_getCheckedFilters() {
|
|
185
|
+
const {
|
|
186
|
+
tableFullColumn
|
|
187
|
+
} = this;
|
|
188
|
+
const filterList = [];
|
|
189
|
+
tableFullColumn.forEach(column => {
|
|
190
|
+
const {
|
|
191
|
+
field,
|
|
192
|
+
filters
|
|
193
|
+
} = column;
|
|
194
|
+
const valueList = [];
|
|
195
|
+
const dataList = [];
|
|
176
196
|
if (filters && filters.length) {
|
|
177
|
-
filters.forEach(
|
|
197
|
+
filters.forEach(item => {
|
|
178
198
|
if (item.checked) {
|
|
179
199
|
valueList.push(item.value);
|
|
180
200
|
dataList.push(item.data);
|
|
@@ -182,8 +202,8 @@ var _default = exports.default = {
|
|
|
182
202
|
});
|
|
183
203
|
if (valueList.length) {
|
|
184
204
|
filterList.push({
|
|
185
|
-
column
|
|
186
|
-
field
|
|
205
|
+
column,
|
|
206
|
+
field,
|
|
187
207
|
property: field,
|
|
188
208
|
values: valueList,
|
|
189
209
|
datas: dataList
|
|
@@ -198,33 +218,38 @@ var _default = exports.default = {
|
|
|
198
218
|
* 当筛选面板中的确定按钮被按下时触发
|
|
199
219
|
* @param {Event} evnt 事件
|
|
200
220
|
*/
|
|
201
|
-
confirmFilterEvent
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
filterOpts
|
|
205
|
-
oldScrollXLoad
|
|
206
|
-
oldScrollYLoad
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
221
|
+
confirmFilterEvent(evnt) {
|
|
222
|
+
const {
|
|
223
|
+
filterStore,
|
|
224
|
+
filterOpts,
|
|
225
|
+
scrollXLoad: oldScrollXLoad,
|
|
226
|
+
scrollYLoad: oldScrollYLoad
|
|
227
|
+
} = this;
|
|
228
|
+
const {
|
|
229
|
+
column
|
|
230
|
+
} = filterStore;
|
|
231
|
+
const {
|
|
232
|
+
field
|
|
233
|
+
} = column;
|
|
234
|
+
const values = [];
|
|
235
|
+
const datas = [];
|
|
236
|
+
column.filters.forEach(item => {
|
|
212
237
|
if (item.checked) {
|
|
213
238
|
values.push(item.value);
|
|
214
239
|
datas.push(item.data);
|
|
215
240
|
}
|
|
216
241
|
});
|
|
217
|
-
|
|
218
|
-
|
|
242
|
+
const filterList = this.getCheckedFilters();
|
|
243
|
+
const params = {
|
|
219
244
|
$table: this,
|
|
220
245
|
$event: evnt,
|
|
221
|
-
column
|
|
222
|
-
field
|
|
246
|
+
column,
|
|
247
|
+
field,
|
|
223
248
|
property: field,
|
|
224
|
-
values
|
|
225
|
-
datas
|
|
249
|
+
values,
|
|
250
|
+
datas,
|
|
226
251
|
filters: filterList,
|
|
227
|
-
filterList
|
|
252
|
+
filterList
|
|
228
253
|
};
|
|
229
254
|
// 如果是服务端筛选,则跳过本地筛选处理
|
|
230
255
|
if (!filterOpts.remote) {
|
|
@@ -236,36 +261,38 @@ var _default = exports.default = {
|
|
|
236
261
|
}
|
|
237
262
|
this.emitEvent('filter-change', params, evnt);
|
|
238
263
|
this.closeFilter();
|
|
239
|
-
this.updateFooter().then(
|
|
240
|
-
|
|
241
|
-
|
|
264
|
+
this.updateFooter().then(() => {
|
|
265
|
+
const {
|
|
266
|
+
scrollXLoad,
|
|
267
|
+
scrollYLoad
|
|
268
|
+
} = this;
|
|
242
269
|
if (oldScrollXLoad || scrollXLoad || oldScrollYLoad || scrollYLoad) {
|
|
243
270
|
if (oldScrollXLoad || scrollXLoad) {
|
|
244
|
-
|
|
271
|
+
this.updateScrollXSpace();
|
|
245
272
|
}
|
|
246
273
|
if (oldScrollYLoad || scrollYLoad) {
|
|
247
|
-
|
|
274
|
+
this.updateScrollYSpace();
|
|
248
275
|
}
|
|
249
|
-
return
|
|
276
|
+
return this.refreshScroll();
|
|
250
277
|
}
|
|
251
|
-
}).then(
|
|
252
|
-
|
|
253
|
-
return
|
|
254
|
-
}).then(
|
|
278
|
+
}).then(() => {
|
|
279
|
+
this.updateCellAreas();
|
|
280
|
+
return this.recalculate(true);
|
|
281
|
+
}).then(() => {
|
|
255
282
|
// 存在滚动行为未结束情况
|
|
256
|
-
setTimeout(
|
|
257
|
-
return _this2.recalculate();
|
|
258
|
-
}, 50);
|
|
283
|
+
setTimeout(() => this.recalculate(), 50);
|
|
259
284
|
});
|
|
260
285
|
},
|
|
261
|
-
handleClearFilter
|
|
286
|
+
handleClearFilter(column) {
|
|
262
287
|
if (column) {
|
|
263
|
-
|
|
264
|
-
|
|
288
|
+
const {
|
|
289
|
+
filters,
|
|
290
|
+
filterRender
|
|
291
|
+
} = column;
|
|
265
292
|
if (filters) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
filters.forEach(
|
|
293
|
+
const compConf = (0, _utils.isEnableConf)(filterRender) ? renderer.get(filterRender.name) : null;
|
|
294
|
+
const filterResetMethod = column.filterResetMethod || (compConf ? compConf.tableFilterResetMethod || compConf.filterResetMethod : null);
|
|
295
|
+
filters.forEach(item => {
|
|
269
296
|
item._checked = false;
|
|
270
297
|
item.checked = false;
|
|
271
298
|
if (!filterResetMethod) {
|
|
@@ -275,7 +302,7 @@ var _default = exports.default = {
|
|
|
275
302
|
if (filterResetMethod) {
|
|
276
303
|
filterResetMethod({
|
|
277
304
|
options: filters,
|
|
278
|
-
column
|
|
305
|
+
column,
|
|
279
306
|
$table: this
|
|
280
307
|
});
|
|
281
308
|
}
|
|
@@ -287,7 +314,7 @@ var _default = exports.default = {
|
|
|
287
314
|
* 当筛选面板中的重置按钮被按下时触发
|
|
288
315
|
* @param {Event} evnt 事件
|
|
289
316
|
*/
|
|
290
|
-
resetFilterEvent
|
|
317
|
+
resetFilterEvent(evnt) {
|
|
291
318
|
this.handleClearFilter(this.filterStore.column);
|
|
292
319
|
this.confirmFilterEvent(evnt);
|
|
293
320
|
},
|
|
@@ -296,9 +323,11 @@ var _default = exports.default = {
|
|
|
296
323
|
* 如果为空则清空所有列的筛选条件
|
|
297
324
|
* @param {String} fieldOrColumn 列
|
|
298
325
|
*/
|
|
299
|
-
_clearFilter
|
|
300
|
-
|
|
301
|
-
|
|
326
|
+
_clearFilter(fieldOrColumn) {
|
|
327
|
+
const {
|
|
328
|
+
filterStore
|
|
329
|
+
} = this;
|
|
330
|
+
let column;
|
|
302
331
|
if (fieldOrColumn) {
|
|
303
332
|
column = (0, _util.handleFieldOrColumn)(this, fieldOrColumn);
|
|
304
333
|
if (column) {
|
|
@@ -320,7 +349,7 @@ var _default = exports.default = {
|
|
|
320
349
|
}
|
|
321
350
|
return this.updateData();
|
|
322
351
|
},
|
|
323
|
-
_updateFilterOptionStatus
|
|
352
|
+
_updateFilterOptionStatus(item, checked) {
|
|
324
353
|
item._checked = checked;
|
|
325
354
|
item.checked = checked;
|
|
326
355
|
return this.$nextTick();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderer=_ui.VxeUI.renderer;var _default=exports.default={methods:{_openFilter(e){let i=(0,_util.handleFieldOrColumn)(this,e);if(i&&i.filters){let t=this.elemStore,l=i.fixed;return this.scrollToColumn(i).then(()=>{var e=t[`${l||"main"}-header-wrapper`]||t["main-header-wrapper"];e&&(e=e.querySelector(`.vxe-header--column.${i.id} .vxe-filter--btn`),(0,_dom.triggerEvent)(e,"click"))})}return this.$nextTick()},_setFilter(e,t,l){e=(0,_util.handleFieldOrColumn)(this,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[])),l?this.updateData():this.$nextTick()},checkFilterOptions(){var e=this.filterStore;e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(e,v,t){let m=this.filterStore;if(m.column===v&&m.visible)m.visible=!1;else{let{target:d,pageX:c}=e;var{filters:l,filterMultiple:r,filterRender:s}=v,s=(0,_utils.isEnableConf)(s)?renderer.get(s.name):null;let i=v.filterRecoverMethod||(s?s.tableFilterRecoverMethod||s.filterRecoverMethod:null),p=(0,_dom.getDomNode)().visibleWidth;Object.assign(m,{args:t,multiple:r,options:l,column:v,style:null,visible:!0}),m.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||i&&i({option:e,column:v,$table:this})}),this.checkFilterOptions(),this.initStore.filter=!0,this.$nextTick(()=>{var i=this.$refs,{tableHeader:i,tableBody:r,filterWrapper:s}=i,r=r.$el,i=i?i.$el:null;if(r){s=s.$el;if(s){var o=s.offsetWidth,a=s.offsetHeight,f=s.querySelector(".vxe-table--filter-header"),s=s.querySelector(".vxe-table--filter-footer"),h=o/2,n=r.clientWidth-o-10;let e,t;var u={top:d.offsetTop+d.offsetParent.offsetTop+d.offsetHeight+"px"};let l=null;i=r.clientHeight-(i?i.clientHeight/2:0);i<=a&&(l=Math.max(40,i-(s?s.offsetHeight:0)-(f?f.offsetHeight:0))),"left"===v.fixed?e=d.offsetLeft+d.offsetParent.offsetLeft-h:"right"===v.fixed?t=d.offsetParent.offsetWidth-d.offsetLeft+(d.offsetParent.offsetParent.offsetWidth-d.offsetParent.offsetLeft)-v.renderWidth-h:e=d.offsetLeft+d.offsetParent.offsetLeft-h-r.scrollLeft,e?(0<(a=c+o-h+10-p)&&(e-=a),u.left=Math.min(n,Math.max(10,e))+"px"):t&&(0<(i=c+o-h+10-p)&&(t+=i),u.right=Math.max(10,t)+"px"),m.style=u,m.maxHeight=l}}})}this.emitEvent("filter-visible",{column:v,field:v.field,property:v.field,filterList:this.getCheckedFilters(),visible:m.visible},e)},_getCheckedFilters(){var e=this.tableFullColumn;let s=[];return e.forEach(e=>{var{field:t,filters:l}=e;let i=[],r=[];l&&l.length&&(l.forEach(e=>{e.checked&&(i.push(e.value),r.push(e.data))}),i.length)&&s.push({column:e,field:t,property:t,values:i,datas:r})}),s},confirmFilterEvent(e){let{filterStore:t,filterOpts:l,scrollXLoad:i,scrollYLoad:r}=this;var s=t.column,o=s.field;let a=[],f=[];s.filters.forEach(e=>{e.checked&&(a.push(e.value),f.push(e.data))});var h=this.getCheckedFilters(),s={$table:this,$event:e,column:s,field:o,property:o,values:a,datas:f,filters:h,filterList:h};l.remote||(this.handleTableData(!0),this.checkSelectionStatus()),this.mouseConfig&&this.mouseOpts.area&&this.handleFilterEvent&&this.handleFilterEvent(e,s),this.emitEvent("filter-change",s,e),this.closeFilter(),this.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=this;if(i||e||r||t)return(i||e)&&this.updateScrollXSpace(),(r||t)&&this.updateScrollYSpace(),this.refreshScroll()}).then(()=>(this.updateCellAreas(),this.recalculate(!0))).then(()=>{setTimeout(()=>this.recalculate(),50)})},handleClearFilter(e){if(e){var{filters:l,filterRender:i}=e;if(l){i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null;let t=e.filterResetMethod||(i?i.tableFilterResetMethod||i.filterResetMethod:null);l.forEach(e=>{e._checked=!1,e.checked=!1,t||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),t&&t({options:l,column:e,$table:this})}}},resetFilterEvent(e){this.handleClearFilter(this.filterStore.column),this.confirmFilterEvent(e)},_clearFilter(e){var t=this.filterStore;let l;return e?(l=(0,_util.handleFieldOrColumn)(this,e))&&this.handleClearFilter(l):this.visibleColumn.forEach(this.handleClearFilter),e&&l===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),this.updateData()},_updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,this.$nextTick()}}};
|