vxe-table 4.23.0-beta.3 → 4.23.0-beta.4
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/dist/all.esm.js +114 -101
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/grid/src/grid.js +3 -0
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/filter/hook.js +4 -7
- package/es/table/module/filter/panel.js +42 -46
- package/es/table/src/table.js +63 -45
- package/es/table/src/util.js +1 -2
- package/es/table/style.css +31 -12
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +31 -12
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +5 -0
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +61 -58
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/filter/hook.js +5 -7
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/module/filter/panel.js +34 -33
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/src/table.js +13 -13
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +1 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +31 -12
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -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/vxe-table/style/style.css +31 -12
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +3 -0
- package/packages/table/module/filter/hook.ts +4 -7
- package/packages/table/module/filter/panel.ts +45 -46
- package/packages/table/src/table.ts +64 -45
- package/packages/table/src/util.ts +1 -2
- package/packages/ui/index.ts +1 -1
- package/styles/components/table-module/filter.scss +25 -14
- /package/es/{iconfont.1792117711657.ttf → iconfont.1792139865095.ttf} +0 -0
- /package/es/{iconfont.1792117711657.woff → iconfont.1792139865095.woff} +0 -0
- /package/es/{iconfont.1792117711657.woff2 → iconfont.1792139865095.woff2} +0 -0
- /package/lib/{iconfont.1792117711657.ttf → iconfont.1792139865095.ttf} +0 -0
- /package/lib/{iconfont.1792117711657.woff → iconfont.1792139865095.woff} +0 -0
- /package/lib/{iconfont.1792117711657.woff2 → iconfont.1792139865095.woff2} +0 -0
|
@@ -34,7 +34,8 @@ hooks.add('tableFilterModule', {
|
|
|
34
34
|
} = $xeTable.getComputeMaps();
|
|
35
35
|
const updatePopupStyle = () => {
|
|
36
36
|
const {
|
|
37
|
-
filterStore
|
|
37
|
+
filterStore,
|
|
38
|
+
scrollbarHeight
|
|
38
39
|
} = reactData;
|
|
39
40
|
const {
|
|
40
41
|
elemStore
|
|
@@ -65,8 +66,6 @@ hooks.add('tableFilterModule', {
|
|
|
65
66
|
if (!filterWrapperElem) {
|
|
66
67
|
return (0, _vue.nextTick)();
|
|
67
68
|
}
|
|
68
|
-
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
69
|
-
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
70
69
|
/**
|
|
71
70
|
* 是否显示筛选按钮图标
|
|
72
71
|
* 如果不存在图标,则相对单元格居中显示
|
|
@@ -102,7 +101,7 @@ hooks.add('tableFilterModule', {
|
|
|
102
101
|
const centerWidth = targetEl ? filterWidth / 2 : (filterWidth - column.renderWidth) / 2;
|
|
103
102
|
left = btnRect.left - tableRect.left - centerWidth;
|
|
104
103
|
top = btnRect.top - tableRect.top + currEl.clientHeight;
|
|
105
|
-
maxHeight = Math.max(40, tableEl.clientHeight - top -
|
|
104
|
+
maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
|
|
106
105
|
if (left < 1) {
|
|
107
106
|
left = 1;
|
|
108
107
|
} else if (left > tableEl.clientWidth - filterWidth - 1) {
|
|
@@ -123,7 +122,6 @@ hooks.add('tableFilterModule', {
|
|
|
123
122
|
if (zIndex) {
|
|
124
123
|
panelStyle.zIndex = zIndex;
|
|
125
124
|
}
|
|
126
|
-
filterStore.style = panelStyle;
|
|
127
125
|
// 筛选面板是自适应表格高度
|
|
128
126
|
if (compConf ? !compConf.tableFilterAutoHeight : false) {
|
|
129
127
|
maxHeight = 0;
|
|
@@ -132,8 +130,8 @@ hooks.add('tableFilterModule', {
|
|
|
132
130
|
maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
|
|
133
131
|
}
|
|
134
132
|
}
|
|
135
|
-
|
|
136
|
-
filterStore.
|
|
133
|
+
panelStyle['--vxe-ui-vxe-table-filter-default-max-height'] = maxHeight ? (0, _dom.toCssUnit)(maxHeight) : 'none';
|
|
134
|
+
filterStore.style = panelStyle;
|
|
137
135
|
};
|
|
138
136
|
handleStyle();
|
|
139
137
|
return (0, _vue.nextTick)().then(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_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,hooks}=_ui.VxeUI,tableFilterMethodKeys=["openFilter","setFilter","clearFilter","saveFilter","saveFilterByEvent","saveFilterPanel","saveFilterPanelByEvent","resetFilter","resetFilterByEvent","resetFilterPanel","resetFilterPanelByEvent","getCheckedFilters","updateFilterOptionStatus"],sourceType="table";hooks.add("tableFilterModule",{setupTable(s){let a=s.xeGrid,u=s.xeGantt,x=a||u,{props:h,reactData:
|
|
1
|
+
var _vue=require("vue"),_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,hooks}=_ui.VxeUI,tableFilterMethodKeys=["openFilter","setFilter","clearFilter","saveFilter","saveFilterByEvent","saveFilterPanel","saveFilterPanelByEvent","resetFilter","resetFilterByEvent","resetFilterPanel","resetFilterPanelByEvent","getCheckedFilters","updateFilterOptionStatus"],sourceType="table";hooks.add("tableFilterModule",{setupTable(s){let a=s.xeGrid,u=s.xeGantt,x=a||u,{props:h,reactData:g,internalData:o}=s,{refElem:r,refTableFilter:i}=s.getRefMaps(),{computeFilterOpts:k,computeMouseOpts:f,computeRendererOpts:n}=s.getComputeMaps(),d=()=>{let{filterStore:d,scrollbarHeight:c}=g,s=o.elemStore,{column:h,targetEl:f}=d;if(!h)return(0,_vue.nextTick)();let m=r.value;var e=k.value,t=n.value;let{maxHeight:v,transfer:F,zIndex:p}=e;e=h?h.filterRender:null;let _=e&&(0,_utils.isEnableConf)(e)&&e.name?t[e.name]||renderer.get(e.name):null;if(!(0,_util.getRefElem)(s["main-header-scroll"]))return(0,_vue.nextTick)();t=i.value;let C=t?t.getRefMaps().refElem.value:null;if(!C)return(0,_vue.nextTick)();let l=()=>{let e=f;if(f||(r=(r=(0,_util.getRefElem)(s[`${h.fixed||"main"}-header-wrapper`]||s["main-header-wrapper"]))?r.querySelector(".vxe-header--column."+h.id):null)&&(e=r),!e)return(0,_vue.nextTick)();var t,l,r=e.getBoundingClientRect(),i=m.getBoundingClientRect();let n=0,a=0,u=0,o={};o=F?(0,_dom.updatePanelPlacement)(e,C,{defaultPlacement:"bottom",appendTo:"",isMinWidth:!1,teleportTo:F}).style:(t=C.offsetWidth,l=f?t/2:(t-h.renderWidth)/2,n=r.left-i.left-l,a=r.top-i.top+e.clientHeight,u=Math.max(40,m.clientHeight-a-c),n<1?n=1:n>m.clientWidth-t-1&&(n=m.clientWidth-t-1),x&&(l=x.getRefMaps().refElem.value)&&(r=l.getBoundingClientRect(),a+=i.top-r.top),{top:(0,_dom.toCssUnit)(a),left:(0,_dom.toCssUnit)(n)}),p&&(o.zIndex=p),_&&!_.tableFilterAutoHeight?u=0:v&&(u=v>u?u:v),o["--vxe-ui-vxe-table-filter-default-max-height"]=u?(0,_dom.toCssUnit)(u):"none",d.style=o};return l(),(0,_vue.nextTick)().then(()=>{l()})};var e={checkFilterOptions(){var e=g.filterStore,t=e.column;t&&(t=t.filters||[],e.isAllSelected=t.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&t.some(e=>e._checked))},handleOpenFilterColumn(e,t,l,r,i){var{initStore:n,filterStore:a}=g;a.column===r&&a.visible?a.visible=!1:(s.handleFilterOptions(r),o._currFilterParams=i,a.targetEl=t,a.style=null,a.visible=!0,n.filter=!0),(0,_vue.nextTick)().then(()=>{d()}),s.dispatchEvent("filter-visible",{column:r,field:r.field,property:r.field,filterList:s.getCheckedFilters(),visible:a.visible},e)},triggerFilterEvent(e,t,l){var r=o.elemStore,i=t.fixed,i=(0,_util.getRefElem)(r[`${i||"main"}-header-wrapper`]||r["main-header-wrapper"]),r=e.currentTarget,i=i?i.querySelector(".vxe-header--column."+t.id):null;s.handleOpenFilterColumn(e,r,i||r,t,l)},handleClearFilter(e){if(e){var{filters:l,filterRender:r}=e;if(l){var i=n.value,i=(0,_utils.isEnableConf)(r)&&r.name?i[r.name]||renderer.get(r.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:s})}}},handleColumnConfirmFilter(e,t){var l=h.mouseConfig;let{scrollXLoad:r,scrollYLoad:i}=g;var n=k.value,a=f.value,{field:u,filters:o}=e;let d=[],c=[];(o||[]).forEach(e=>{e.checked&&(d.push(e.value),c.push(e.data))});o=s.getCheckedFilters(),e={$table:s,$event:t,column:e,field:u,property:u,values:d,datas:c,filters:o,filterList:o};return n.remote||(s.handleTableData(!0),s.checkSelectionStatus()),(0,_utils.hasEnableConf)(l,a)&&a.area&&s.handleFilterEvent&&s.handleFilterEvent(t,e),t&&s.dispatchEvent("filter-change",e,t),s.closeFilter(),s.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=g;if(r||e||i||t)return(r||e)&&s.updateScrollXSpace(),(i||t)&&s.updateScrollYSpace(),s.refreshScroll()}).then(()=>(s.updateCellAreas(),s.recalculate(!0))).then(()=>{setTimeout(()=>s.recalculate(),50)})},confirmFilterEvent(e,t){t&&s.handleColumnConfirmFilter(t,e)},handleFilterChangeRadioOption(e,t,l){var r=g.filterStore,r=r.column;r&&((r.filters||[]).forEach(e=>{e._checked=!1}),l._checked=t,s.checkFilterOptions(),s.handleFilterConfirmFilter(e,r))},handleFilterChangeMultipleOption(e,t,l){l._checked=t,s.checkFilterOptions()},handleFilterChangeOption(e,t,l){var r=g.filterStore,i=o.fullColumnIdData;let n=r.column;n||(i=i[l._colId])&&(n=i.column,r.column=n),n&&(n.filterMultiple?s.handleFilterChangeMultipleOption(e,t,l):s.handleFilterChangeRadioOption(e,t,l))},handleFilterConfirmFilter(e,t){t&&((t.filters||[]).forEach(e=>{e.checked=e._checked}),s.confirmFilterEvent(e,t))},handleFilterResetFilter(e,t){t&&(s.handleClearFilter(t),s.confirmFilterEvent(e,t),e)&&s.dispatchEvent("clear-filter",{filterList:[]},e)},handleFilterStyle(){var e=g.filterStore;return(e.visible?d:(0,_vue.nextTick))()}};return Object.assign(Object.assign({},{openFilter(e){let n=(0,_util.handleFieldOrColumn)(s,e);if(n&&n.filters){let e=o.elemStore,{fixed:r,filters:i}=n;return s.scrollToColumn(n).then(()=>{var t=(0,_util.getRefElem)(e[`${r||"main"}-header-wrapper`]||e["main-header-wrapper"]);if(t){var l=t.querySelector(`.vxe-header--column.${n.id} .vxe-cell--filter`);if(l)(0,_dom.triggerEvent)(l,"click");else{l=t.querySelector(".vxe-header--column."+n.id);if(l){let e=null;i&&(e=i[0]);t={$table:s,$grid:a,$gantt:u,$rowIndex:-1,column:n,columnIndex:s.getColumnIndex(n),$columnIndex:s.getVMColumnIndex(n),_columnIndex:s.getVTColumnIndex(n),firstFilterOption:e,fixed:r,source:sourceType,type:"header"};s.handleOpenFilterColumn(new Event("click"),null,l,n,t)}}}})}return(0,_vue.nextTick)()},setFilter(e,t,l){var r=g.filterStore,e=(0,_util.handleFieldOrColumn)(s,e);if(e&&e.filters){if(e.filters=(0,_util.toFilters)(t||[],e.id),l)return s.handleColumnConfirmFilter(e,null);r.visible&&s.handleFilterOptions(e)}return(0,_vue.nextTick)()},clearFilter(e){var t=g.filterStore,l=o.tableFullColumn,r=k.value;let i;return e?(i=(0,_util.handleFieldOrColumn)(s,e))&&s.handleClearFilter(i):l.forEach(s.handleClearFilter),e&&i===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),r.remote?(0,_vue.nextTick)():s.updateData()},saveFilter(e){return e&&(e=(0,_util.handleFieldOrColumn)(s,e),s.handleFilterConfirmFilter(null,e)),(0,_vue.nextTick)()},saveFilterByEvent(e,t){return t&&(t=(0,_util.handleFieldOrColumn)(s,t),s.handleFilterConfirmFilter(e,t)),(0,_vue.nextTick)()},resetFilter(e){return e&&(e=(0,_util.handleFieldOrColumn)(s,e),s.handleFilterResetFilter(null,e)),(0,_vue.nextTick)()},resetFilterByEvent(e,t){return t&&(t=(0,_util.handleFieldOrColumn)(s,t),s.handleFilterResetFilter(e,t)),(0,_vue.nextTick)()},saveFilterPanel(){var e=g.filterStore;return s.handleFilterConfirmFilter(null,e.column||null),(0,_vue.nextTick)()},saveFilterPanelByEvent(e){var t=g.filterStore;return s.handleFilterConfirmFilter(e,t.column||null),(0,_vue.nextTick)()},resetFilterPanel(){var e=g.filterStore;return s.handleFilterResetFilter(null,e.column||null),(0,_vue.nextTick)()},resetFilterPanelByEvent(e){var t=g.filterStore;return s.handleFilterResetFilter(e,t.column||null),(0,_vue.nextTick)()},getCheckedFilters(){var e=o.tableFullColumn;let n=[];return e.forEach(e=>{var{field:t,filters:l}=e,l=l||[];let r=[],i=[];l&&(l.forEach(e=>{e.checked&&(r.push(e.value),i.push(e.data))}),r.length)&&n.push({column:e,field:t,property:t,values:r,datas:i})}),n},updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,(0,_vue.nextTick)()}}),e)},setupGrid(e){return e.extendTableMethods(tableFilterMethodKeys)},setupGantt(e){return e.extendTableMethods(tableFilterMethodKeys)}});
|
|
@@ -32,6 +32,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
32
32
|
},
|
|
33
33
|
setup(props, context) {
|
|
34
34
|
const xID = _xeUtils.default.uniqueId();
|
|
35
|
+
const VxeUIScrollbarComponent = _ui.VxeUI.getComponent('VxeScrollbar');
|
|
35
36
|
const $xeTable = (0, _vue.inject)('$xeTable', {});
|
|
36
37
|
const {
|
|
37
38
|
reactData: tableReactData,
|
|
@@ -144,12 +145,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
144
145
|
filterStore
|
|
145
146
|
} = props;
|
|
146
147
|
const {
|
|
147
|
-
column
|
|
148
|
-
maxHeight
|
|
148
|
+
column
|
|
149
149
|
} = filterStore;
|
|
150
150
|
if (!column) {
|
|
151
151
|
return [];
|
|
152
152
|
}
|
|
153
|
+
const filterOpts = computeFilterOpts.value;
|
|
154
|
+
const {
|
|
155
|
+
useScrollbar
|
|
156
|
+
} = filterOpts;
|
|
153
157
|
const {
|
|
154
158
|
filterMultiple,
|
|
155
159
|
filters,
|
|
@@ -165,45 +169,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
165
169
|
const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
|
|
166
170
|
if (filterSlot) {
|
|
167
171
|
return [(0, _vue.h)('div', {
|
|
168
|
-
class: 'vxe-table--filter-template'
|
|
169
|
-
style: maxHeight ? {
|
|
170
|
-
maxHeight: (0, _dom.toCssUnit)(maxHeight)
|
|
171
|
-
} : {}
|
|
172
|
+
class: 'vxe-table--filter-template'
|
|
172
173
|
}, $xeTable.callSlot(filterSlot, params))];
|
|
173
174
|
} else if (filterRender && rtFilter) {
|
|
174
175
|
return [(0, _vue.h)('div', {
|
|
175
|
-
class: 'vxe-table--filter-template'
|
|
176
|
-
style: maxHeight ? {
|
|
177
|
-
maxHeight: (0, _dom.toCssUnit)(maxHeight)
|
|
178
|
-
} : {}
|
|
176
|
+
class: 'vxe-table--filter-template'
|
|
179
177
|
}, (0, _vn.getSlotVNs)(rtFilter(filterRender, params)))];
|
|
180
178
|
}
|
|
181
179
|
const isAllChecked = filterMultiple ? filterStore.isAllSelected : !filterOptions.some(item => item._checked);
|
|
182
180
|
const isAllIndeterminate = filterMultiple && filterStore.isIndeterminate;
|
|
183
|
-
|
|
184
|
-
class: 'vxe-table--filter-header'
|
|
185
|
-
}, [(0, _vue.h)('li', {
|
|
186
|
-
class: ['vxe-table--filter-option', {
|
|
187
|
-
'is--checked': isAllChecked,
|
|
188
|
-
'is--indeterminate': isAllIndeterminate
|
|
189
|
-
}],
|
|
190
|
-
title: getI18n(filterMultiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter'),
|
|
191
|
-
onClick: evnt => {
|
|
192
|
-
changeAllOption(evnt, !filterStore.isAllSelected);
|
|
193
|
-
}
|
|
194
|
-
}, (filterMultiple ? [(0, _vue.h)('span', {
|
|
195
|
-
class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
196
|
-
})] : []).concat([(0, _vue.h)('span', {
|
|
197
|
-
class: 'vxe-checkbox--label'
|
|
198
|
-
}, getI18n('vxe.table.allFilter'))]))]), (0, _vue.h)('ul', {
|
|
199
|
-
class: 'vxe-table--filter-body',
|
|
200
|
-
style: maxHeight ? {
|
|
201
|
-
maxHeight: (0, _dom.toCssUnit)(maxHeight)
|
|
202
|
-
} : {}
|
|
203
|
-
}, filterOptions.map(item => {
|
|
181
|
+
const optVNs = filterOptions.map(item => {
|
|
204
182
|
const isChecked = item._checked;
|
|
205
183
|
const isIndeterminate = false;
|
|
206
|
-
return (0, _vue.h)('
|
|
184
|
+
return (0, _vue.h)('div', {
|
|
207
185
|
class: ['vxe-table--filter-option', {
|
|
208
186
|
'is--checked': item._checked
|
|
209
187
|
}],
|
|
@@ -216,7 +194,30 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
216
194
|
})] : []).concat([(0, _vue.h)('span', {
|
|
217
195
|
class: 'vxe-checkbox--label'
|
|
218
196
|
}, (0, _utils.formatText)(item.label, 1))]));
|
|
219
|
-
})
|
|
197
|
+
});
|
|
198
|
+
return [(0, _vue.h)('div', {
|
|
199
|
+
class: 'vxe-table--filter-header'
|
|
200
|
+
}, [(0, _vue.h)('div', {
|
|
201
|
+
class: ['vxe-table--filter-option', {
|
|
202
|
+
'is--checked': isAllChecked,
|
|
203
|
+
'is--indeterminate': isAllIndeterminate
|
|
204
|
+
}],
|
|
205
|
+
title: getI18n(filterMultiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter'),
|
|
206
|
+
onClick: evnt => {
|
|
207
|
+
changeAllOption(evnt, !filterStore.isAllSelected);
|
|
208
|
+
}
|
|
209
|
+
}, (filterMultiple ? [(0, _vue.h)('span', {
|
|
210
|
+
class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
211
|
+
})] : []).concat([(0, _vue.h)('span', {
|
|
212
|
+
class: 'vxe-checkbox--label'
|
|
213
|
+
}, getI18n('vxe.table.allFilter'))]))]), useScrollbar ? (0, _vue.h)(VxeUIScrollbarComponent, {
|
|
214
|
+
class: 'vxe-table--scrollbar-filter-body',
|
|
215
|
+
viewClassName: 'vxe-table--scrollbar-filter-body-view'
|
|
216
|
+
}, {
|
|
217
|
+
default: () => optVNs
|
|
218
|
+
}) : (0, _vue.h)('div', {
|
|
219
|
+
class: 'vxe-table--filter-body'
|
|
220
|
+
}, optVNs)];
|
|
220
221
|
};
|
|
221
222
|
const renderFooters = () => {
|
|
222
223
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn"),_log=require("../../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let warnLog=(0,_log.createComponentLog)("table").warnLog,{getI18n,getIcon,renderer,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFilterPanel",props:{filterStore:{type:Object,default:()=>({})}},setup(
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn"),_log=require("../../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let warnLog=(0,_log.createComponentLog)("table").warnLog,{getI18n,getIcon,renderer,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFilterPanel",props:{filterStore:{type:Object,default:()=>({})}},setup(f,e){var t=_xeUtils.default.uniqueId();let p=_ui.VxeUI.getComponent("VxeScrollbar"),_=(0,_vue.inject)("$xeTable",{}),{reactData:m,internalData:b,getComputeMaps:l}=_,{computeFilterOpts:h,computeRendererOpts:x}=l(),C=(0,_vue.ref)(),r={refElem:C},g={xID:t,props:f,context:e,getRefMaps:()=>r},E=(0,_vue.computed)(()=>{var e=f.filterStore,e=e.column;return e&&e.filters&&e.filters.some(e=>e.checked)}),i=(e,t)=>{var l=f.filterStore,r=l.column;r&&r.filters&&r.filters.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},F=e=>{var t=f.filterStore;e||warnLog("vxe.error.delFunc",["confirmFilter","saveFilterPanelByEvent"]),_.handleFilterConfirmFilter(e||new Event("click"),t.column||null)};let I=e=>{var t=f.filterStore;_.handleFilterResetFilter(e,t.column||null)};let O=(e,t,l)=>{_.handleFilterChangeOption(e,t,l)},S=(e,t)=>{var l=f.filterStore,l=l.column;l&&l.filterMultiple?i(0,t):I(e)};t={changeRadioOption:(e,t,l)=>{_.handleFilterChangeRadioOption(e,t,l)},changeMultipleOption:(e,t,l)=>{_.handleFilterChangeMultipleOption(e,t,l)},changeAllOption:S,changeOption:O,confirmFilter:F,resetFilter:I};Object.assign(g,t);return g.renderVN=()=>{var e,t,l,r,i,a,n,o,s,u=f.filterStore,c=m.initStore,{visible:v,column:d}=u;return d?(t=x.value,l=(t=(e=d?d.filterRender:null)&&(0,_utils.isEnableConf)(e)&&e.name?t[e.name]||renderer.get(e.name):null)?t.tableFilterClassName||t.filterClassName:"",r=Object.assign({},b._currFilterParams,{$panel:g,$table:_}),i=_.props,a=_.getComputeMaps().computeSize,a=a.value,{transfer:n,destroyOnClose:o,className:s}=h.value,(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!n},[(0,_vue.h)("div",{ref:C,class:["vxe-table--filter-wrapper","filter--prevent-default",s,(0,_dom.getPropClass)(l,r),{["size--"+a]:a,"is--animat":i.animat,"is--multiple":d.filterMultiple,"is--active":v}],style:u.style},c.filter&&(!o||v)&&d?((e,t)=>{let l=f.filterStore;var r=l.column;if(!r)return[];var i=h.value.useScrollbar;let{filterMultiple:a,filters:n,slots:o}=r;var r=n||[],s=o?o.filter:null,u=Object.assign({},b._currFilterParams,{option:r[0],$panel:g,$table:_}),t=t?t.renderTableFilter||t.renderFilter:null;if(s)return[(0,_vue.h)("div",{class:"vxe-table--filter-template"},_.callSlot(s,u))];if(e&&t)return[(0,_vue.h)("div",{class:"vxe-table--filter-template"},(0,_vn.getSlotVNs)(t(e,u)))];s=a?l.isAllSelected:!r.some(e=>e._checked),t=a&&l.isIndeterminate;let c=r.map(t=>{var e=t._checked;return(0,_vue.h)("div",{class:["vxe-table--filter-option",{"is--checked":t._checked}],title:t.label,onClick:e=>{O(e,!t._checked,t)}},(a?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))});return[(0,_vue.h)("div",{class:"vxe-table--filter-header"},[(0,_vue.h)("div",{class:["vxe-table--filter-option",{"is--checked":s,"is--indeterminate":t}],title:getI18n(a?"vxe.table.allTitle":"vxe.table.allFilter"),onClick:e=>{S(e,!l.isAllSelected)}},(a?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),i?(0,_vue.h)(p,{class:"vxe-table--scrollbar-filter-body",viewClassName:"vxe-table--scrollbar-filter-body-view"},{default:()=>c}):(0,_vue.h)("div",{class:"vxe-table--filter-body"},c)]})(e,t).concat((()=>{var e=f.filterStore,t=e.column;if(!t)return[];var l=h.value,r=x.value,i=E.value,{filterRender:t,filterMultiple:a}=t,{confirmButtonText:l,resetButtonText:n,showFooter:o}=l,r=t&&(0,_utils.isEnableConf)(t)&&t.name?r[t.name]||renderer.get(t.name):null,t=!i&&!e.isAllSelected&&!e.isIndeterminate;let s=!!a;return _xeUtils.default.isBoolean(o)?s=o:r&&(s=!(!1===r.showTableFilterFooter||!1===r.showFilterFooter||!1===r.isFooter)),s?[(0,_vue.h)("div",{class:"vxe-table--filter-footer"},[(0,_vue.h)("button",{class:{"is--disabled":t},disabled:t,onClick:F},l||getI18n("vxe.table.confirmFilter")),(0,_vue.h)("button",{onClick:I},n||getI18n("vxe.table.resetFilter"))])]:[]})()):[])])):renderEmptyElement(g)},g},render(){return this.renderVN()}});
|