vxe-table 3.15.1 → 3.15.3

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.
Files changed (61) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/filter/mixin.js +29 -10
  6. package/es/table/module/filter/panel.js +173 -142
  7. package/es/table/src/body.js +5 -3
  8. package/es/table/src/footer.js +4 -2
  9. package/es/table/src/header.js +2 -1
  10. package/es/table/src/methods.js +125 -101
  11. package/es/table/src/table.js +3 -0
  12. package/es/table/style.css +18 -0
  13. package/es/table/style.min.css +1 -1
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-table/style.css +18 -0
  17. package/es/vxe-table/style.min.css +1 -1
  18. package/lib/index.css +1 -1
  19. package/lib/index.min.css +1 -1
  20. package/lib/index.umd.js +355 -262
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/table/module/filter/mixin.js +33 -9
  25. package/lib/table/module/filter/mixin.min.js +1 -1
  26. package/lib/table/module/filter/panel.js +153 -122
  27. package/lib/table/module/filter/panel.min.js +1 -1
  28. package/lib/table/src/body.js +5 -2
  29. package/lib/table/src/body.min.js +1 -1
  30. package/lib/table/src/footer.js +4 -2
  31. package/lib/table/src/footer.min.js +1 -1
  32. package/lib/table/src/header.js +2 -1
  33. package/lib/table/src/header.min.js +1 -1
  34. package/lib/table/src/methods.js +151 -122
  35. package/lib/table/src/methods.min.js +1 -1
  36. package/lib/table/src/table.js +3 -0
  37. package/lib/table/src/table.min.js +1 -1
  38. package/lib/table/style/style.css +18 -0
  39. package/lib/table/style/style.min.css +1 -1
  40. package/lib/ui/index.js +1 -1
  41. package/lib/ui/index.min.js +1 -1
  42. package/lib/ui/src/log.js +1 -1
  43. package/lib/ui/src/log.min.js +1 -1
  44. package/lib/vxe-table/style/style.css +18 -0
  45. package/lib/vxe-table/style/style.min.css +1 -1
  46. package/package.json +2 -2
  47. package/packages/table/module/filter/mixin.ts +27 -10
  48. package/packages/table/module/filter/panel.ts +178 -143
  49. package/packages/table/src/body.ts +5 -3
  50. package/packages/table/src/footer.ts +4 -2
  51. package/packages/table/src/header.ts +2 -1
  52. package/packages/table/src/methods.ts +132 -106
  53. package/packages/table/src/table.ts +3 -0
  54. package/styles/components/table-module/filter.scss +16 -0
  55. package/styles/components/table.scss +6 -1
  56. /package/es/{iconfont.1744336394111.ttf → iconfont.1744609828798.ttf} +0 -0
  57. /package/es/{iconfont.1744336394111.woff → iconfont.1744609828798.woff} +0 -0
  58. /package/es/{iconfont.1744336394111.woff2 → iconfont.1744609828798.woff2} +0 -0
  59. /package/lib/{iconfont.1744336394111.ttf → iconfont.1744609828798.ttf} +0 -0
  60. /package/lib/{iconfont.1744336394111.woff → iconfont.1744609828798.woff} +0 -0
  61. /package/lib/{iconfont.1744336394111.woff2 → iconfont.1744609828798.woff2} +0 -0
@@ -91,6 +91,16 @@ var _default = exports.default = {
91
91
  filterStore.visible = false;
92
92
  } else {
93
93
  const el = $xeTable.$refs.refElem;
94
+ const {
95
+ scrollTop,
96
+ scrollLeft,
97
+ visibleHeight,
98
+ visibleWidth
99
+ } = (0, _dom.getDomNode)();
100
+ const filterOpts = $xeTable.computeFilterOpts;
101
+ const {
102
+ transfer
103
+ } = filterOpts;
94
104
  const tableRect = el.getBoundingClientRect();
95
105
  const btnElem = evnt.currentTarget;
96
106
  const {
@@ -138,23 +148,37 @@ var _default = exports.default = {
138
148
  return;
139
149
  }
140
150
  const btnRect = btnElem.getBoundingClientRect();
141
- const filterWidth = filterWrapperElem.offsetWidth;
142
151
  const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
143
152
  const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
153
+ const filterWidth = filterWrapperElem.offsetWidth;
144
154
  const centerWidth = filterWidth / 2;
145
- let left = btnRect.left - tableRect.left - centerWidth;
146
- const top = btnRect.top - tableRect.top + btnElem.clientHeight;
147
- // 判断面板不能大于表格高度
148
- const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
149
- if (left < 1) {
150
- left = 1;
151
- } else if (left > el.clientWidth - filterWidth - 1) {
152
- left = el.clientWidth - filterWidth - 1;
155
+ let left = 0;
156
+ let top = 0;
157
+ let maxHeight = 0;
158
+ if (transfer) {
159
+ left = btnRect.left - centerWidth + scrollLeft;
160
+ top = btnRect.top + btnElem.clientHeight + scrollTop;
161
+ maxHeight = Math.min(Math.max(tableRect.height, Math.floor(visibleHeight / 2)), Math.max(80, visibleHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 28));
162
+ if (left < 16) {
163
+ left = 16;
164
+ } else if (left > visibleWidth - filterWidth - 16) {
165
+ left = visibleWidth - filterWidth - 16;
166
+ }
167
+ } else {
168
+ left = btnRect.left - tableRect.left - centerWidth;
169
+ top = btnRect.top - tableRect.top + btnElem.clientHeight;
170
+ maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
171
+ if (left < 1) {
172
+ left = 1;
173
+ } else if (left > el.clientWidth - filterWidth - 1) {
174
+ left = el.clientWidth - filterWidth - 1;
175
+ }
153
176
  }
154
177
  filterStore.style = {
155
178
  top: (0, _dom.toCssUnit)(top),
156
179
  left: (0, _dom.toCssUnit)(left)
157
180
  };
181
+ // 判断面板不能大于表格高度
158
182
  filterStore.maxHeight = maxHeight;
159
183
  });
160
184
  }
@@ -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}}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-cell--filter`),(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.handleColumnConfirmFilter(e,new Event("click")):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(t,r,l){let u=this;var n=u,d=u;let e=this.filterStore;if(e.column===r&&e.visible)e.visible=!1;else{let{initStore:e,filterStore:c}=n,h=d.elemStore;if(c.column===r&&c.visible)c.visible=!1;else{let s=u.$refs.refElem,o=s.getBoundingClientRect(),a=t.currentTarget;var{filters:n,filterMultiple:f,filterRender:m}=r,m=(0,_utils.isEnableConf)(m)?renderer.get(m.name):null;let i=r.filterRecoverMethod||(m?m.tableFilterRecoverMethod||m.filterRecoverMethod:null);d._currFilterParams=l,Object.assign(c,{multiple:f,options:n,column:r,style:null}),c.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||i&&i({option:e,column:r,$table:u})}),this.checkFilterOptions(),c.visible=!0,e.filter=!0,u.$nextTick(()=>{if((0,_util.getRefElem)(h["main-header-scroll"])){var t=u.$refs.refTableFilter,t=t?t.$el:null;if(t){var l=a.getBoundingClientRect(),i=t.offsetWidth,r=t.querySelector(".vxe-table--filter-header"),t=t.querySelector(".vxe-table--filter-footer"),n=i/2;let e=l.left-o.left-n;n=l.top-o.top+a.clientHeight,l=Math.max(40,s.clientHeight-n-(r?r.clientHeight:0)-(t?t.clientHeight:0)-14);e<1?e=1:e>s.clientWidth-i-1&&(e=s.clientWidth-i-1),c.style={top:(0,_dom.toCssUnit)(n),left:(0,_dom.toCssUnit)(e)},c.maxHeight=l}}})}u.dispatchEvent("filter-visible",{column:r,field:r.field,property:r.field,filterList:u.getCheckedFilters(),visible:c.visible},t)}},handleFilterConfirmFilter(e){var t=this.filterStore;t.options.forEach(e=>{e.checked=e._checked}),this.confirmFilterEvent(e)},_saveFilterPanel(){return this.handleFilterConfirmFilter(null),this.$nextTick()},_resetFilterPanel(){return this.handleFilterResetFilter(null),this.$nextTick()},_getCheckedFilters(){var e=this.tableFullColumn;let n=[];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)&&n.push({column:e,field:t,property:t,values:i,datas:r})}),n},handleColumnConfirmFilter(e,t){let l=this;var i=l.mouseConfig;let{scrollXLoad:r,scrollYLoad:n}=l;var s=l.computeFilterOpts,o=l.computeMouseOpts,a=e.field;let c=[],h=[];e.filters.forEach(e=>{e.checked&&(c.push(e.value),h.push(e.data))});var u=this.getCheckedFilters(),e={$table:this,$event:t,column:e,field:a,property:a,values:c,datas:h,filters:u,filterList:u};return s.remote||(this.handleTableData(!0),this.checkSelectionStatus()),i&&o.area&&this.handleFilterEvent&&l.handleFilterEvent(t,e),t&&l.emitEvent("filter-change",e,t),l.closeFilter(),l.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=this;if(r||e||n||t)return(r||e)&&l.updateScrollXSpace(),(n||t)&&l.updateScrollYSpace(),l.refreshScroll()}).then(()=>(l.updateCellAreas(),l.recalculate(!0))).then(()=>{setTimeout(()=>l.recalculate(),50)})},confirmFilterEvent(e){var t=this.filterStore,t=t.column;this.handleColumnConfirmFilter(t,e)},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})}}},handleFilterResetFilter(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()}}};
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-cell--filter`),(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.handleColumnConfirmFilter(e,new Event("click")):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(l,r,n){let F=this;var s=F,o=F;let e=this.filterStore;if(e.column===r&&e.visible)e.visible=!1;else{let{initStore:e,filterStore:p}=s,t=o.elemStore;if(p.column===r&&p.visible)p.visible=!1;else{let a=F.$refs.refElem,{scrollTop:h,scrollLeft:c,visibleHeight:u,visibleWidth:d}=(0,_dom.getDomNode)();let f=F.computeFilterOpts.transfer,m=a.getBoundingClientRect(),v=l.currentTarget;var{filters:s,filterMultiple:_,filterRender:g}=r,g=(0,_utils.isEnableConf)(g)?renderer.get(g.name):null;let i=r.filterRecoverMethod||(g?g.tableFilterRecoverMethod||g.filterRecoverMethod:null);o._currFilterParams=n,Object.assign(p,{multiple:_,options:s,column:r,style:null}),p.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||i&&i({option:e,column:r,$table:F})}),this.checkFilterOptions(),p.visible=!0,e.filter=!0,F.$nextTick(()=>{if((0,_util.getRefElem)(t["main-header-scroll"])){var i=F.$refs.refTableFilter,i=i?i.$el:null;if(i){var r=v.getBoundingClientRect(),n=i.querySelector(".vxe-table--filter-header"),s=i.querySelector(".vxe-table--filter-footer"),i=i.offsetWidth,o=i/2;let e=0,t=0,l=0;f?(e=r.left-o+c,t=r.top+v.clientHeight+h,l=Math.min(Math.max(m.height,Math.floor(u/2)),Math.max(80,u-t-(n?n.clientHeight:0)-(s?s.clientHeight:0)-28)),e<16?e=16:e>d-i-16&&(e=d-i-16)):(e=r.left-m.left-o,t=r.top-m.top+v.clientHeight,l=Math.max(40,a.clientHeight-t-(n?n.clientHeight:0)-(s?s.clientHeight:0)-14),e<1?e=1:e>a.clientWidth-i-1&&(e=a.clientWidth-i-1)),p.style={top:(0,_dom.toCssUnit)(t),left:(0,_dom.toCssUnit)(e)},p.maxHeight=l}}})}F.dispatchEvent("filter-visible",{column:r,field:r.field,property:r.field,filterList:F.getCheckedFilters(),visible:p.visible},l)}},handleFilterConfirmFilter(e){var t=this.filterStore;t.options.forEach(e=>{e.checked=e._checked}),this.confirmFilterEvent(e)},_saveFilterPanel(){return this.handleFilterConfirmFilter(null),this.$nextTick()},_resetFilterPanel(){return this.handleFilterResetFilter(null),this.$nextTick()},_getCheckedFilters(){var e=this.tableFullColumn;let n=[];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)&&n.push({column:e,field:t,property:t,values:i,datas:r})}),n},handleColumnConfirmFilter(e,t){let l=this;var i=l.mouseConfig;let{scrollXLoad:r,scrollYLoad:n}=l;var s=l.computeFilterOpts,o=l.computeMouseOpts,a=e.field;let h=[],c=[];e.filters.forEach(e=>{e.checked&&(h.push(e.value),c.push(e.data))});var u=this.getCheckedFilters(),e={$table:this,$event:t,column:e,field:a,property:a,values:h,datas:c,filters:u,filterList:u};return s.remote||(this.handleTableData(!0),this.checkSelectionStatus()),i&&o.area&&this.handleFilterEvent&&l.handleFilterEvent(t,e),t&&l.emitEvent("filter-change",e,t),l.closeFilter(),l.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=this;if(r||e||n||t)return(r||e)&&l.updateScrollXSpace(),(n||t)&&l.updateScrollYSpace(),l.refreshScroll()}).then(()=>(l.updateCellAreas(),l.recalculate(!0))).then(()=>{setTimeout(()=>l.recalculate(),50)})},confirmFilterEvent(e){var t=this.filterStore,t=t.column;this.handleColumnConfirmFilter(t,e)},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})}}},handleFilterResetFilter(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()}}};
@@ -10,28 +10,169 @@ var _vn = require("../../../ui/src/vn");
10
10
  const {
11
11
  getI18n,
12
12
  getIcon,
13
- renderer
13
+ renderer,
14
+ globalMixins
14
15
  } = _ui.VxeUI;
16
+ function renderOptions($xeFilterPanel, h, filterRender, compConf) {
17
+ const props = $xeFilterPanel;
18
+ const $xeTable = $xeFilterPanel.$xeTable;
19
+ const tableInternalData = $xeTable;
20
+ const {
21
+ filterStore
22
+ } = props;
23
+ const {
24
+ column,
25
+ multiple,
26
+ maxHeight
27
+ } = filterStore;
28
+ const slots = column ? column.slots : null;
29
+ const filterSlot = slots ? slots.filter : null;
30
+ const params = Object.assign({}, tableInternalData._currFilterParams, {
31
+ $panel: $xeFilterPanel,
32
+ $table: $xeTable
33
+ });
34
+ const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
35
+ if (filterSlot) {
36
+ return [h('div', {
37
+ class: 'vxe-table--filter-template',
38
+ style: maxHeight ? {
39
+ maxHeight: `${maxHeight}px`
40
+ } : {}
41
+ }, $xeTable.callSlot(filterSlot, params, h))];
42
+ } else if (rtFilter) {
43
+ return [h('div', {
44
+ class: 'vxe-table--filter-template',
45
+ style: maxHeight ? {
46
+ maxHeight: `${maxHeight}px`
47
+ } : {}
48
+ }, (0, _vn.getSlotVNs)(rtFilter.call($xeTable, h, filterRender, params)))];
49
+ }
50
+ const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
51
+ const isAllIndeterminate = multiple && filterStore.isIndeterminate;
52
+ return [h('ul', {
53
+ class: 'vxe-table--filter-header'
54
+ }, [h('li', {
55
+ class: ['vxe-table--filter-option', {
56
+ 'is--checked': isAllChecked,
57
+ 'is--indeterminate': isAllIndeterminate
58
+ }],
59
+ attrs: {
60
+ title: getI18n(multiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
61
+ },
62
+ on: {
63
+ click: evnt => {
64
+ $xeFilterPanel.changeAllOption(evnt, !filterStore.isAllSelected);
65
+ }
66
+ }
67
+ }, (multiple ? [h('span', {
68
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
69
+ })] : []).concat([h('span', {
70
+ class: 'vxe-checkbox--label'
71
+ }, getI18n('vxe.table.allFilter'))]))]), h('ul', {
72
+ class: 'vxe-table--filter-body',
73
+ style: maxHeight ? {
74
+ maxHeight: `${maxHeight}px`
75
+ } : {}
76
+ }, filterStore.options.map(item => {
77
+ const isChecked = item._checked;
78
+ const isIndeterminate = false;
79
+ return h('li', {
80
+ class: ['vxe-table--filter-option', {
81
+ 'is--checked': isChecked
82
+ }],
83
+ attrs: {
84
+ title: item.label
85
+ },
86
+ on: {
87
+ click: evnt => {
88
+ $xeFilterPanel.changeOption(evnt, !item._checked, item);
89
+ }
90
+ }
91
+ }, (multiple ? [h('span', {
92
+ class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
93
+ })] : []).concat([h('span', {
94
+ class: 'vxe-checkbox--label'
95
+ }, (0, _utils.formatText)(item.label, 1))]));
96
+ }))];
97
+ }
98
+ function renderFooter($xeFilterPanel, h) {
99
+ const props = $xeFilterPanel;
100
+ const $xeTable = $xeFilterPanel.$xeTable;
101
+ const {
102
+ filterStore
103
+ } = props;
104
+ const {
105
+ column,
106
+ multiple
107
+ } = filterStore;
108
+ const filterOpts = $xeTable.computeFilterOpts;
109
+ const hasCheckOption = $xeFilterPanel.computeHasCheckOption;
110
+ const filterRender = column.filterRender;
111
+ const compConf = (0, _utils.isEnableConf)(filterRender) ? renderer.get(filterRender.name) : null;
112
+ const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate;
113
+ return multiple && (compConf ? !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false) : true) ? [h('div', {
114
+ class: 'vxe-table--filter-footer'
115
+ }, [h('button', {
116
+ class: {
117
+ 'is--disabled': isDisabled
118
+ },
119
+ attrs: {
120
+ disabled: isDisabled
121
+ },
122
+ on: {
123
+ click: $xeFilterPanel.confirmFilter
124
+ }
125
+ }, filterOpts.confirmButtonText || getI18n('vxe.table.confirmFilter')), h('button', {
126
+ on: {
127
+ click: $xeFilterPanel.resetFilter
128
+ }
129
+ }, filterOpts.resetButtonText || getI18n('vxe.table.resetFilter'))])] : [];
130
+ }
15
131
  var _default = exports.default = {
16
132
  name: 'VxeTableFilterPanel',
133
+ mixins: [globalMixins.sizeMixin],
17
134
  props: {
18
135
  filterStore: Object
19
136
  },
137
+ inject: {
138
+ $xeTable: {
139
+ default: null
140
+ }
141
+ },
20
142
  computed: {
21
- hasCheckOption() {
143
+ computeHasCheckOption() {
22
144
  const {
23
145
  filterStore
24
146
  } = this;
25
147
  return filterStore && filterStore.options.some(option => option.checked);
26
148
  }
27
149
  },
150
+ mounted() {
151
+ const $xeFilterPanel = this;
152
+ const $xeTable = $xeFilterPanel.$xeTable;
153
+ const filterOpts = $xeTable.computeFilterOpts;
154
+ const {
155
+ transfer
156
+ } = filterOpts;
157
+ const el = this.$refs.refElem;
158
+ if (transfer && el) {
159
+ document.body.appendChild(el);
160
+ }
161
+ },
162
+ beforeDestroy() {
163
+ const el = this.$refs.refElem;
164
+ if (el && el.parentNode) {
165
+ el.parentNode.removeChild(el);
166
+ }
167
+ },
28
168
  render(h) {
29
- const $panel = this;
30
- const $xeTable = this.$parent;
169
+ const $xeFilterPanel = this;
170
+ const props = $xeFilterPanel;
171
+ const $xeTable = $xeFilterPanel.$xeTable;
31
172
  const tableInternalData = $xeTable;
32
173
  const {
33
174
  filterStore
34
- } = this;
175
+ } = props;
35
176
  const {
36
177
  visible,
37
178
  multiple,
@@ -41,137 +182,27 @@ var _default = exports.default = {
41
182
  const compConf = (0, _utils.isEnableConf)(filterRender) ? renderer.get(filterRender.name) : null;
42
183
  const filterClassName = compConf ? compConf.tableFilterClassName || compConf.filterClassName : '';
43
184
  const params = Object.assign({}, tableInternalData._currFilterParams, {
44
- $panel,
185
+ $panel: $xeFilterPanel,
45
186
  $table: $xeTable
46
187
  });
188
+ const tableProps = $xeTable;
189
+ const vSize = $xeFilterPanel.computeSize;
47
190
  const filterOpts = $xeTable.computeFilterOpts;
48
191
  const {
49
192
  destroyOnClose
50
193
  } = filterOpts;
51
194
  return h('div', {
195
+ ref: 'refElem',
52
196
  class: ['vxe-table--filter-wrapper', 'filter--prevent-default', compConf && compConf.className ? compConf.className : '', (0, _utils.getClass)(filterClassName, params), {
53
- 'is--animat': $xeTable.animat,
197
+ [`size--${vSize}`]: vSize,
198
+ 'is--animat': tableProps.animat,
54
199
  'is--multiple': multiple,
55
200
  'is--active': visible
56
201
  }],
57
202
  style: filterStore.style
58
- }, filterStore.visible && (destroyOnClose ? visible : true) && column ? this.renderOptions(h, filterRender, compConf).concat(this.renderFooter(h)) : []);
203
+ }, filterStore.visible && (destroyOnClose ? visible : true) && column ? renderOptions($xeFilterPanel, h, filterRender, compConf).concat(renderFooter($xeFilterPanel, h)) : []);
59
204
  },
60
205
  methods: {
61
- renderOptions(h, filterRender, compConf) {
62
- const $panel = this;
63
- const $xeTable = this.$parent;
64
- const tableInternalData = $xeTable;
65
- const {
66
- filterStore
67
- } = this;
68
- const {
69
- column,
70
- multiple,
71
- maxHeight
72
- } = filterStore;
73
- const slots = column ? column.slots : null;
74
- const filterSlot = slots ? slots.filter : null;
75
- const params = Object.assign({}, tableInternalData._currFilterParams, {
76
- $panel,
77
- $table: $xeTable
78
- });
79
- const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
80
- if (filterSlot) {
81
- return [h('div', {
82
- class: 'vxe-table--filter-template',
83
- style: maxHeight ? {
84
- maxHeight: `${maxHeight}px`
85
- } : {}
86
- }, $xeTable.callSlot(filterSlot, params, h))];
87
- } else if (rtFilter) {
88
- return [h('div', {
89
- class: 'vxe-table--filter-template',
90
- style: maxHeight ? {
91
- maxHeight: `${maxHeight}px`
92
- } : {}
93
- }, (0, _vn.getSlotVNs)(rtFilter.call($xeTable, h, filterRender, params)))];
94
- }
95
- const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
96
- const isAllIndeterminate = multiple && filterStore.isIndeterminate;
97
- return [h('ul', {
98
- class: 'vxe-table--filter-header'
99
- }, [h('li', {
100
- class: ['vxe-table--filter-option', {
101
- 'is--checked': isAllChecked,
102
- 'is--indeterminate': isAllIndeterminate
103
- }],
104
- attrs: {
105
- title: getI18n(multiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
106
- },
107
- on: {
108
- click: evnt => {
109
- this.changeAllOption(evnt, !filterStore.isAllSelected);
110
- }
111
- }
112
- }, (multiple ? [h('span', {
113
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
114
- })] : []).concat([h('span', {
115
- class: 'vxe-checkbox--label'
116
- }, getI18n('vxe.table.allFilter'))]))]), h('ul', {
117
- class: 'vxe-table--filter-body',
118
- style: maxHeight ? {
119
- maxHeight: `${maxHeight}px`
120
- } : {}
121
- }, filterStore.options.map(item => {
122
- const isChecked = item._checked;
123
- const isIndeterminate = false;
124
- return h('li', {
125
- class: ['vxe-table--filter-option', {
126
- 'is--checked': isChecked
127
- }],
128
- attrs: {
129
- title: item.label
130
- },
131
- on: {
132
- click: evnt => {
133
- this.changeOption(evnt, !item._checked, item);
134
- }
135
- }
136
- }, (multiple ? [h('span', {
137
- class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
138
- })] : []).concat([h('span', {
139
- class: 'vxe-checkbox--label'
140
- }, (0, _utils.formatText)(item.label, 1))]));
141
- }))];
142
- },
143
- renderFooter(h) {
144
- const $xeTable = this.$parent;
145
- const {
146
- hasCheckOption,
147
- filterStore
148
- } = this;
149
- const {
150
- column,
151
- multiple
152
- } = filterStore;
153
- const filterOpts = $xeTable.computeFilterOpts;
154
- const filterRender = column.filterRender;
155
- const compConf = (0, _utils.isEnableConf)(filterRender) ? renderer.get(filterRender.name) : null;
156
- const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate;
157
- return multiple && (compConf ? !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false) : true) ? [h('div', {
158
- class: 'vxe-table--filter-footer'
159
- }, [h('button', {
160
- class: {
161
- 'is--disabled': isDisabled
162
- },
163
- attrs: {
164
- disabled: isDisabled
165
- },
166
- on: {
167
- click: this.confirmFilter
168
- }
169
- }, filterOpts.confirmButtonText || getI18n('vxe.table.confirmFilter')), h('button', {
170
- on: {
171
- click: this.resetFilter
172
- }
173
- }, filterOpts.resetButtonText || getI18n('vxe.table.resetFilter'))])] : [];
174
- },
175
206
  // 全部筛选事件
176
207
  filterCheckAllEvent(evnt, value) {
177
208
  const filterStore = this.filterStore;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_vn=require("../../../ui/src/vn");let{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default={name:"VxeTableFilterPanel",props:{filterStore:Object},computed:{hasCheckOption(){var e=this.filterStore;return e&&e.options.some(e=>e.checked)}},render(e){var t=this.$parent,l=t,i=this.filterStore,{visible:r,multiple:s,column:a}=i,n=a?a.filterRender:null,c=(0,_utils.isEnableConf)(n)?renderer.get(n.name):null,o=c?c.tableFilterClassName||c.filterClassName:"",l=Object.assign({},l._currFilterParams,{$panel:this,$table:t}),h=t.computeFilterOpts.destroyOnClose;return e("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",c&&c.className?c.className:"",(0,_utils.getClass)(o,l),{"is--animat":t.animat,"is--multiple":s,"is--active":r}],style:i.style},i.visible&&(!h||r)&&a?this.renderOptions(e,n,c).concat(this.renderFooter(e)):[])},methods:{renderOptions(l,e,t){var i=this.$parent;let r=this.filterStore,{column:s,multiple:a,maxHeight:n}=r;var c=s?s.slots:null,c=c?c.filter:null,o=Object.assign({},i._currFilterParams,{$panel:this,$table:i}),t=t?t.renderTableFilter||t.renderFilter:null;return c?[l("div",{class:"vxe-table--filter-template",style:n?{maxHeight:n+"px"}:{}},i.callSlot(c,o,l))]:t?[l("div",{class:"vxe-table--filter-template",style:n?{maxHeight:n+"px"}:{}},(0,_vn.getSlotVNs)(t.call(i,l,e,o)))]:(c=a?r.isAllSelected:!r.options.some(e=>e._checked),t=a&&r.isIndeterminate,[l("ul",{class:"vxe-table--filter-header"},[l("li",{class:["vxe-table--filter-option",{"is--checked":c,"is--indeterminate":t}],attrs:{title:getI18n(a?"vxe.table.allTitle":"vxe.table.allFilter")},on:{click:e=>{this.changeAllOption(e,!r.isAllSelected)}}},(a?[l("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:c?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([l("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),l("ul",{class:"vxe-table--filter-body",style:n?{maxHeight:n+"px"}:{}},r.options.map(t=>{var e=t._checked;return l("li",{class:["vxe-table--filter-option",{"is--checked":e}],attrs:{title:t.label},on:{click:e=>{this.changeOption(e,!t._checked,t)}}},(a?[l("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([l("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])},renderFooter(e){var{hasCheckOption:t,filterStore:l}=this,{column:i,multiple:r}=l,s=this.$parent.computeFilterOpts,i=i.filterRender,i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null,t=!t&&!l.isAllSelected&&!l.isIndeterminate;return r&&(!i||!1!==i.showTableFilterFooter&&!1!==i.showFilterFooter&&!1!==i.isFooter)?[e("div",{class:"vxe-table--filter-footer"},[e("button",{class:{"is--disabled":t},attrs:{disabled:t},on:{click:this.confirmFilter}},s.confirmButtonText||getI18n("vxe.table.confirmFilter")),e("button",{on:{click:this.resetFilter}},s.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]},filterCheckAllEvent(e,t){var l=this.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},changeRadioOption(e,t,l){var i=this.$parent,r=this.filterStore;r.options.forEach(e=>{e._checked=!1}),l._checked=t,i.checkFilterOptions(),this.confirmFilter(e)},changeMultipleOption(e,t,l){var i=this.$parent;l._checked=t,i.checkFilterOptions()},changeAllOption(e,t){this.filterStore.multiple?this.filterCheckAllEvent(e,t):this.resetFilter(e)},changeOption(e,t,l){this.filterStore.multiple?this.changeMultipleOption(e,t,l):this.changeRadioOption(e,t,l)},confirmFilter(e){this.$parent.handleFilterConfirmFilter(e)},resetFilter(e){this.$parent.handleFilterResetFilter(e)}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_vn=require("../../../ui/src/vn");let{getI18n,getIcon,renderer,globalMixins}=_ui.VxeUI;function renderOptions(l,i,e,t){var r=l.$xeTable;let a=l.filterStore,{column:s,multiple:n,maxHeight:o}=a;var c=s?s.slots:null,c=c?c.filter:null,p=Object.assign({},r._currFilterParams,{$panel:l,$table:r}),t=t?t.renderTableFilter||t.renderFilter:null;return c?[i("div",{class:"vxe-table--filter-template",style:o?{maxHeight:o+"px"}:{}},r.callSlot(c,p,i))]:t?[i("div",{class:"vxe-table--filter-template",style:o?{maxHeight:o+"px"}:{}},(0,_vn.getSlotVNs)(t.call(r,i,e,p)))]:(c=n?a.isAllSelected:!a.options.some(e=>e._checked),t=n&&a.isIndeterminate,[i("ul",{class:"vxe-table--filter-header"},[i("li",{class:["vxe-table--filter-option",{"is--checked":c,"is--indeterminate":t}],attrs:{title:getI18n(n?"vxe.table.allTitle":"vxe.table.allFilter")},on:{click:e=>{l.changeAllOption(e,!a.isAllSelected)}}},(n?[i("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:c?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),i("ul",{class:"vxe-table--filter-body",style:o?{maxHeight:o+"px"}:{}},a.options.map(t=>{var e=t._checked;return i("li",{class:["vxe-table--filter-option",{"is--checked":e}],attrs:{title:t.label},on:{click:e=>{l.changeOption(e,!t._checked,t)}}},(n?[i("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])}function renderFooter(e,t){var l=e.filterStore,{column:i,multiple:r}=l,a=e.$xeTable.computeFilterOpts,s=e.computeHasCheckOption,i=i.filterRender,i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null,s=!s&&!l.isAllSelected&&!l.isIndeterminate;return r&&(!i||!1!==i.showTableFilterFooter&&!1!==i.showFilterFooter&&!1!==i.isFooter)?[t("div",{class:"vxe-table--filter-footer"},[t("button",{class:{"is--disabled":s},attrs:{disabled:s},on:{click:e.confirmFilter}},a.confirmButtonText||getI18n("vxe.table.confirmFilter")),t("button",{on:{click:e.resetFilter}},a.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]}var _default=exports.default={name:"VxeTableFilterPanel",mixins:[globalMixins.sizeMixin],props:{filterStore:Object},inject:{$xeTable:{default:null}},computed:{computeHasCheckOption(){var e=this.filterStore;return e&&e.options.some(e=>e.checked)}},mounted(){var e=this.$xeTable.computeFilterOpts.transfer,t=this.$refs.refElem;e&&t&&document.body.appendChild(t)},beforeDestroy(){var e=this.$refs.refElem;e&&e.parentNode&&e.parentNode.removeChild(e)},render(e){var t=this,l=t.$xeTable,i=l,r=t.filterStore,{visible:a,multiple:s,column:n}=r,o=n?n.filterRender:null,c=(0,_utils.isEnableConf)(o)?renderer.get(o.name):null,p=c?c.tableFilterClassName||c.filterClassName:"",i=Object.assign({},i._currFilterParams,{$panel:t,$table:l}),d=l,u=t.computeSize,l=l.computeFilterOpts.destroyOnClose;return e("div",{ref:"refElem",class:["vxe-table--filter-wrapper","filter--prevent-default",c&&c.className?c.className:"",(0,_utils.getClass)(p,i),{["size--"+u]:u,"is--animat":d.animat,"is--multiple":s,"is--active":a}],style:r.style},r.visible&&(!l||a)&&n?renderOptions(t,e,o,c).concat(renderFooter(t,e)):[])},methods:{filterCheckAllEvent(e,t){var l=this.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},changeRadioOption(e,t,l){var i=this.$parent,r=this.filterStore;r.options.forEach(e=>{e._checked=!1}),l._checked=t,i.checkFilterOptions(),this.confirmFilter(e)},changeMultipleOption(e,t,l){var i=this.$parent;l._checked=t,i.checkFilterOptions()},changeAllOption(e,t){this.filterStore.multiple?this.filterCheckAllEvent(e,t):this.resetFilter(e)},changeOption(e,t,l){this.filterStore.multiple?this.changeMultipleOption(e,t,l):this.changeRadioOption(e,t,l)},confirmFilter(e){this.$parent.handleFilterConfirmFilter(e)},resetFilter(e){this.$parent.handleFilterResetFilter(e)}}};
@@ -92,6 +92,7 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
92
92
  showOverflow: allShowOverflow,
93
93
  border,
94
94
  height,
95
+ treeConfig,
95
96
  cellClassName: allCellClassName,
96
97
  cellStyle,
97
98
  align: allAlign,
@@ -132,6 +133,8 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
132
133
  const checkboxOpts = $xeTable.computeCheckboxOpts;
133
134
  const editOpts = $xeTable.computeEditOpts;
134
135
  const tooltipOpts = $xeTable.computeTooltipOpts;
136
+ const virtualXOpts = $xeTable.computeVirtualXOpts;
137
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
135
138
  const {
136
139
  isAllColumnDrag,
137
140
  isAllRowDrag
@@ -335,9 +338,9 @@ function renderTdColumn(h, _vm, seq, rowid, fixedType, isOptimizeMode, rowLevel,
335
338
  let isVNPreEmptyStatus = false;
336
339
  if (!isMergeCell) {
337
340
  if (!dragRow || (0, _util.getRowid)($xeTable, dragRow) !== rowid) {
338
- if (scrollYLoad && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
341
+ if (scrollYLoad && !treeConfig && !virtualYOpts.immediate && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
339
342
  isVNPreEmptyStatus = true;
340
- } else if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
343
+ } else if (scrollXLoad && !virtualXOpts.immediate && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
341
344
  isVNPreEmptyStatus = true;
342
345
  }
343
346
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,{lastScrollTime:e,isDragResize:t}=e;return!!(t||e&&Date.now()<e+l)};function renderLine(e,l,t,r,a){var l=l.$parent,{row:o,column:s}=r,i=l.afterFullData,d=l.treeConfig,n=l.computeTreeOpts,{slots:s,treeNode:c}=s,p=l.fullAllDataRowIdData;if(s&&s.line)return l.callSlot(s.line,r,e);s=p[t];let u=0,g=null;return s&&(u=s.level,g=s.items[s.treeIndex-1]),d&&c&&(n.showLine||n.line)?[e("div",{key:"tl",class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${l.eqRow(i[0],o)?1:(0,_util.calcTreeLine)(r,g)}px`,bottom:`-${Math.floor(a/2)}px`,left:u*n.indent+(u?2-(0,_util.getOffsetSize)(l):0)+16+"px"}})])]:[]}function renderTdColumn(e,A,q,l,t,F,L,r,a,U,o,s,H,N,i){let d=A.$parent;var V=d,n=d,c=d,p=d.$xeGrid,{columnKey:V,resizable:u,showOverflow:g,border:W,height:x,cellClassName:X,cellStyle:j,align:P,spanMethod:K,mouseConfig:Y,editConfig:G,editRules:v,tooltipConfig:m,padding:w}=V,{tableData:n,dragRow:J,overflowX:Q,currentColumn:Z,scrollXLoad:ee,scrollYLoad:le,mergeBodyFlag:te,calcCellHeightFlag:h,resizeHeightFlag:f,resizeWidthFlag:re,editStore:ae,isAllOverflow:oe,validErrorMaps:se}=n,{fullAllDataRowIdData:c,fullColumnIdData:y,mergeBodyCellMaps:ie,visibleColumn:de,afterFullData:ne,mergeBodyList:ce,scrollXStore:pe,scrollYStore:ue}=c,ge=d.computeCellOpts,b=d.computeValidOpts,xe=d.computeCheckboxOpts,ve=d.computeEditOpts,C=d.computeTooltipOpts,{isAllColumnDrag:me,isAllRowDrag:we}=d.resizableOpts,_=d.computeRowOpts,R=d.computeRowDragOpts,he=d.computeDefaultRowHeight,h=h?ge.height||_.height:0,{disabledMethod:E,isCrossDrag:fe,isPeerDrag:ye}=R,be=d.computeColumnOpts,Ce=d.computeMouseOpts,_e=d.computeAreaOpts,Re=d.computeCellOffsetWidth,_e=_e.selectCellToRow,{type:Ee,cellRender:Se,editRender:De,align:Oe,showOverflow:$e,className:Te,treeNode:Ie,rowResize:ke,padding:S,verticalAlign:D,slots:Be}=s,O=ge.verticalAlign,ae=ae.actived,c=c[l]||{},$=s.id,y=y[$]||{},T=De||Se,T=T?renderer.get(T.name):null,Me=T?T.tableCellClassName||T.cellClassName:null,ze=T?T.tableCellStyle||T.cellStyle:"";let Ae=C.showAll;var qe=y.index,C=y._index,y=(0,_utils.isEnableConf)(De),f=f?c.resizeHeight:0;let I=t?s.fixed!==t:s.fixed&&Q;Q=_xeUtils.default.eqNull(S)?null===w?ge.padding:w:S,w=_xeUtils.default.eqNull($e)?g:$e,S="ellipsis"===w;let k="title"===w,B=!0===w||"tooltip"===w;g=oe||k||B||S,$e=_xeUtils.default.isBoolean(s.resizable)?s.resizable:be.resizable||u,w=!!h,u=0<f;let Fe;h={},f=Oe||(T?T.tableCellAlign:"")||P,Oe=_xeUtils.default.eqNull(D)?O:D,T=se[l+":"+$],P=v&&b.showMessage&&("default"===b.message?x||1<n.length:"inline"===b.message),O={colid:$};let M={$table:d,$grid:p,isEdit:!1,seq:q,rowid:l,row:r,rowIndex:a,$rowIndex:U,_rowIndex:o,column:s,columnIndex:qe,$columnIndex:H,_columnIndex:C,fixed:t,type:renderType,isHidden:!!I,level:L,visibleData:ne,data:n,items:i},z=!1,Le=!1,Ue=((z=_.drag?"row"===R.trigger||s.dragSort&&"cell"===R.trigger:z)&&(Le=!(!E||!E(M))),(k||B||Ae||m)&&(h.mouseenter=e=>{isVMScrollProcess(d)||(k?(0,_dom.updateCellTitle)(e.currentTarget,s):(B||Ae)&&d.triggerBodyTooltipEvent(e,M),d.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(B||Ae||m)&&(h.mouseleave=e=>{isVMScrollProcess(d)||((B||Ae)&&d.handleTargetLeaveEvent(e),d.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(z||xe.range||Y)&&(h.mousedown=e=>{d.triggerCellMousedownEvent(e,M)}),z&&(h.mouseup=d.triggerCellMouseupEvent),h.click=e=>{d.triggerCellClickEvent(e,M)},!(h.dblclick=e=>{d.triggerCellDblclickEvent(e,M)}));if(te&&ce.length){D=ie[o+":"+C];if(D){var{rowspan:se,colspan:v}=D;if(!se||!v)return null;1<se&&(Ue=!0,O.rowspan=se),1<v&&(Ue=!0,O.colspan=v)}}else if(K){var{rowspan:x=1,colspan:p=1}=K(M)||{};if(!x||!p)return null;1<x&&(O.rowspan=x),1<p&&(O.colspan=p)}!(I=I&&Ue&&(1<O.colspan||1<O.rowspan)?!1:I)&&G&&(De||Se)&&(ve.showStatus||ve.showUpdateStatus)&&(Fe=d.isUpdateByRow(r,s.field));q=le&&!g,a=c.resizeHeight||ge.height||_.height||c.height||he,U=H===N.length-1,ne=!s.resizeWidth&&("auto"===s.minWidth||"auto"===s.width);let He=!1;Ue||J&&(0,_util.getRowid)(d,J)===l||(le&&(o<ue.visibleStartIndex-ue.preloadSize||o>ue.visibleEndIndex+ue.preloadSize)||ee&&!s.fixed&&(C<pe.visibleStartIndex-pe.preloadSize||C>pe.visibleEndIndex+pe.preloadSize))&&(He=!0);n={};if(g&&re){let l=O.colspan||0;if(1<l)for(let e=1;e<l;e++){var Ne=de[qe+e];Ne&&(l+=Ne.renderWidth)}n.width=s.renderWidth-Re*l+"px"}le||g||w||u?n.height=a+"px":n.minHeight=a+"px";i=[];I&&oe?i.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:n})):(i.push(...renderLine(e,A,l,M,a),e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:n,attrs:{title:k?d.getCellLabel(r,s):null}},He?[]:[e("div",{attrs:{colid:$,rowid:l},class:"vxe-cell--wrapper"},s.renderCell(e,M))])),P&&T&&(R=T.rule,E=Be?Be.valid:null,m=Object.assign(Object.assign(Object.assign({},M),T),{rule:T}),i.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(b.className,T)],style:R&&R.maxWidth?{width:R.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(b.theme||"normal")},[E?d.callSlot(E,m,e):[e("span",{class:"vxe-cell--valid-error-msg"},T.content)]])]))));let Ve=!1;return Y&&Ce.area&&_e&&((C||!0!==_e)&&_e!==s.field||(Ve=!0)),!I&&$e&&me&&i.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],on:{mousedown:e=>d.handleColResizeMousedownEvent(e,t,M),dblclick:e=>d.handleColResizeDblclickEvent(e,M)}})),(ke||we)&&_.resizable&&i.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>d.handleRowResizeMousedownEvent(e,M),dblclick:e=>d.handleRowResizeDblclickEvent(e,M)}})),e("td",{class:["vxe-body--column",$,Oe?"col--vertical-"+Oe:"",f?"col--"+f:"",Ee?"col--"+Ee:"",{"col--last":U,"col--tree-node":Ie,"col--edit":y,"col--ellipsis":g,"col--cs-height":w,"col--rs-height":u,"col--to-row":Ve,"col--auto-height":q,"fixed--width":!ne,"fixed--hidden":I,"is--padding":Q,"is--progress":I&&oe||He,"is--drag-cell":z&&(fe||ye||!L),"is--drag-disabled":Le,"col--dirty":Fe,"col--active":G&&y&&ae.row===r&&(ae.column===s||"row"===ve.mode),"col--valid-error":!!T,"col--current":Z===s},(0,_utils.getClass)(Me,M),(0,_utils.getClass)(Te,M),(0,_utils.getClass)(X,M)],key:V||ee||le||be.useKey||_.useKey||be.drag?s.id:H,attrs:O,style:Object.assign({},_xeUtils.default.isFunction(ze)?ze(M):ze,_xeUtils.default.isFunction(j)?j(M):j),on:h},F&&I?[]:i)}function renderRows(m,w,h,f,y,b){let C=w.$parent;var e=C,l=C,t=C;let{stripe:_,rowKey:R,highlightHoverRow:E,rowClassName:S,rowStyle:D,editConfig:O,treeConfig:$}=e,{hasFixedColumn:T,treeExpandedFlag:I,isColLoading:k,scrollXLoad:B,scrollYLoad:M,isAllOverflow:z,rowExpandedFlag:A,expandColumn:q,selectRadioRow:F,pendingRowFlag:L,isDragColMove:U,rowExpandHeightFlag:H}=l,{fullAllDataRowIdData:N,treeExpandedMaps:Y,pendingRowMaps:G,rowExpandedMaps:J}=t,Q=C.computeCheckboxOpts,Z=C.computeRadioOpts,V=C.computeTreeOpts,W=C.computeEditOpts,X=C.computeRowOpts,j=C.computeColumnOpts,ee=C.computeColumnDragOpts,{transform:P,seqMode:le}=V,te=V.children||V.childrenField,K=[],re=(0,_util.createHandleGetRowId)(C).handleGetRowId;return y.forEach((t,r)=>{var e={};let a=re(t);var l=N[a]||{};let o=r,s=0,i=-1,d=-1;(X.isHover||E)&&(e.mouseenter=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),l&&(s=l.level,i=$&&P&&"increasing"===le?l._index+1:l.seq,o=l.index,d=l._index);var n={$table:C,seq:i,rowid:a,fixed:h,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},c=q&&!!A&&!!J[a];let p=!1,u=[],g=!1;O&&(g=C.isInsertByRow(t)),!$||M||P||(u=t[te],p=!!I&&u&&0<u.length&&!!Y[a]),!X.drag||$&&!P||(e.dragstart=C.handleRowDragDragstartEvent,e.dragend=C.handleRowDragDragendEvent,e.dragover=C.handleRowDragDragoverEvent);var x=["vxe-body--row",$?"row--level-"+s:"",{"row--stripe":_&&(d+1)%2==0,"is--new":g,"is--expand-row":c,"is--expand-tree":p,"row--new":g&&(W.showStatus||W.showInsertStatus),"row--radio":Z.highlight&&F===t,"row--checked":Q.highlight&&C.isCheckedByCheckboxRow(t),"row--pending":!!L&&!!G[a]},S?_xeUtils.default.isFunction(S)?S(n):S:""],v=b.map((e,l)=>renderTdColumn(m,w,i,a,h,f,s,t,o,r,d,e,l,b,y));K.push(!k&&j.drag&&ee.animation?m("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(U?"":"-disabled")},class:x,attrs:{rowid:a},style:D?_xeUtils.default.isFunction(D)?D(n):D:void 0,key:R||B||M||X.useKey||X.drag||j.drag||$?a:r,nativeOn:e},v):m("tr",{class:x,attrs:{rowid:a},style:D?_xeUtils.default.isFunction(D)?D(n):D:void 0,key:R||B||M||X.useKey||X.drag||j.drag||$?a:r,on:e},v)),c&&({height:x,padding:n,mode:e}=C.computeExpandOpts,"fixed"===e?K.push(m("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+a,attrs:{rowid:a}},[m("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:`${H?l.expandHeight||x:0}px`}})])):(v={},c=(x&&(v.height=x+"px"),$&&(v.paddingLeft=s*V.indent+30+"px"),q).showOverflow,e=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?z:c,l={$table:C,seq:i,column:q,fixed:h,type:renderType,level:s,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},K.push(m("tr",{class:["vxe-body--expanded-row",{"is--padding":n}],key:"expand_"+a},[m("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!T,"col--ellipsis":e}],attrs:{colspan:b.length}},[m("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":x}],style:v},[q.renderData(m,l)])])])))),p&&K.push(...renderRows(m,w,h,f,u,b))}),K}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null},render(t){let l=this.$parent;var e=l,r=l,a=l,o=l.$xeGrid,{xID:s,$scopedSlots:i}=l;let{fixedColumn:d,fixedType:n,tableColumn:c}=this;var{spanMethod:p,footerSpanMethod:u,mouseConfig:g}=e,{isGroup:r,tableData:x,isRowLoading:v,isColLoading:m,overflowX:w,scrollXLoad:h,scrollYLoad:f,isAllOverflow:y,isDragRowMove:b,expandColumn:C,dragRow:_,dragCol:R}=r,{visibleColumn:a,fullAllDataRowIdData:E,fullColumnIdData:S}=a,D=l.computeRowOpts,O=l.computeEmptyOpts,$=l.computeMouseOpts,T=l.computeRowDragOpts,I=l.computeExpandOpts;let k=x,B=c,M=!1;!(h||f||y)||C&&"fixed"!==I.mode||p||u||(M=!0),m||!n&&w||(B=a),n&&M&&(B=d||[]),f&&_&&2<k.length&&(x=E[(0,_util.getRowid)(l,_)])&&(y=x._index,C=k[0],I=k[k.length-1],p=E[(0,_util.getRowid)(l,C)],u=E[(0,_util.getRowid)(l,I)],p)&&u&&(w=p._index,a=u._index,y<w?k=[_].concat(k):a<y&&(k=k.concat([_]))),n||r||h&&R&&2<B.length&&(f=S[R.id])&&(x=f._index,C=B[0],E=B[B.length-1],I=S[C.id],p=S[E.id],I)&&p&&(u=I._index,w=p._index,x<u?B=[R].concat(B):w<x&&(B=B.concat([R])));let z;return z=i.empty?i.empty.call(this,{$table:l,$grid:o}):(y=(a=O.name?renderer.get(O.name):null)?a.renderTableEmpty||a.renderTableEmptyView||a.renderEmpty:null)?(0,_vn.getSlotVNs)(y.call(this,t,O,{$table:l})):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",n?`fixed-${n}--wrapper`:"body--wrapper"],attrs:{xid:s}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,n)}}},[n?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:s,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refBodyColgroup"},B.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),!v&&!m&&D.drag&&T.animation?t("transition-group",{ref:"refBodyTBody",props:{tag:"tbody",name:"vxe-body--row-list"+(b?"":"-disabled")}},renderRows(t,this,n,M,k,B)):t("tbody",{ref:"refBodyTBody"},renderRows(t,this,n,M,k,B))]),t("div",{class:"vxe-table--checkbox-range"}),g&&$.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},$.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:n,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"}),t("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(l),n?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},z)])])])}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",isVMScrollProcess=e=>{var l=e.delayHover,{lastScrollTime:e,isDragResize:t}=e;return!!(t||e&&Date.now()<e+l)};function renderLine(e,l,t,r,a){var l=l.$parent,{row:o,column:i}=r,s=l.afterFullData,d=l.treeConfig,n=l.computeTreeOpts,{slots:i,treeNode:c}=i,p=l.fullAllDataRowIdData;if(i&&i.line)return l.callSlot(i.line,r,e);i=p[t];let u=0,g=null;return i&&(u=i.level,g=i.items[i.treeIndex-1]),d&&c&&(n.showLine||n.line)?[e("div",{key:"tl",class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${l.eqRow(s[0],o)?1:(0,_util.calcTreeLine)(r,g)}px`,bottom:`-${Math.floor(a/2)}px`,left:u*n.indent+(u?2-(0,_util.getOffsetSize)(l):0)+16+"px"}})])]:[]}function renderTdColumn(e,A,q,l,t,F,L,r,a,U,o,i,H,N,s){let d=A.$parent;var V=d,n=d,c=d,p=d.$xeGrid,{columnKey:V,resizable:u,showOverflow:g,border:W,height:x,treeConfig:X,cellClassName:j,cellStyle:P,align:Y,spanMethod:K,mouseConfig:G,editConfig:J,editRules:v,tooltipConfig:m,padding:w}=V,{tableData:n,dragRow:Q,overflowX:Z,currentColumn:ee,scrollXLoad:le,scrollYLoad:te,mergeBodyFlag:re,calcCellHeightFlag:h,resizeHeightFlag:f,resizeWidthFlag:ae,editStore:oe,isAllOverflow:ie,validErrorMaps:se}=n,{fullAllDataRowIdData:c,fullColumnIdData:y,mergeBodyCellMaps:de,visibleColumn:ne,afterFullData:ce,mergeBodyList:pe,scrollXStore:ue,scrollYStore:ge}=c,xe=d.computeCellOpts,b=d.computeValidOpts,ve=d.computeCheckboxOpts,me=d.computeEditOpts,C=d.computeTooltipOpts,we=d.computeVirtualXOpts,he=d.computeVirtualYOpts,{isAllColumnDrag:fe,isAllRowDrag:ye}=d.resizableOpts,_=d.computeRowOpts,R=d.computeRowDragOpts,be=d.computeDefaultRowHeight,h=h?xe.height||_.height:0,{disabledMethod:E,isCrossDrag:Ce,isPeerDrag:_e}=R,Re=d.computeColumnOpts,Ee=d.computeMouseOpts,Se=d.computeAreaOpts,Oe=d.computeCellOffsetWidth,Se=Se.selectCellToRow,{type:De,cellRender:$e,editRender:Te,align:Ie,showOverflow:ke,className:Be,treeNode:Me,rowResize:ze,padding:S,verticalAlign:O,slots:Ae}=i,D=xe.verticalAlign,oe=oe.actived,c=c[l]||{},$=i.id,y=y[$]||{},T=Te||$e,T=T?renderer.get(T.name):null,qe=T?T.tableCellClassName||T.cellClassName:null,Fe=T?T.tableCellStyle||T.cellStyle:"";let Le=C.showAll;var Ue=y.index,C=y._index,y=(0,_utils.isEnableConf)(Te),f=f?c.resizeHeight:0;let I=t?i.fixed!==t:i.fixed&&Z;Z=_xeUtils.default.eqNull(S)?null===w?xe.padding:w:S,w=_xeUtils.default.eqNull(ke)?g:ke,S="ellipsis"===w;let k="title"===w,B=!0===w||"tooltip"===w;g=ie||k||B||S,ke=_xeUtils.default.isBoolean(i.resizable)?i.resizable:Re.resizable||u,w=!!h,u=0<f;let He;h={},f=Ie||(T?T.tableCellAlign:"")||Y,Ie=_xeUtils.default.eqNull(O)?D:O,T=se[l+":"+$],Y=v&&b.showMessage&&("default"===b.message?x||1<n.length:"inline"===b.message),D={colid:$};let M={$table:d,$grid:p,isEdit:!1,seq:q,rowid:l,row:r,rowIndex:a,$rowIndex:U,_rowIndex:o,column:i,columnIndex:Ue,$columnIndex:H,_columnIndex:C,fixed:t,type:renderType,isHidden:!!I,level:L,visibleData:ce,data:n,items:s},z=!1,Ne=!1,Ve=((z=_.drag?"row"===R.trigger||i.dragSort&&"cell"===R.trigger:z)&&(Ne=!(!E||!E(M))),(k||B||Le||m)&&(h.mouseenter=e=>{isVMScrollProcess(d)||(k?(0,_dom.updateCellTitle)(e.currentTarget,i):(B||Le)&&d.triggerBodyTooltipEvent(e,M),d.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(B||Le||m)&&(h.mouseleave=e=>{isVMScrollProcess(d)||((B||Le)&&d.handleTargetLeaveEvent(e),d.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(z||ve.range||G)&&(h.mousedown=e=>{d.triggerCellMousedownEvent(e,M)}),z&&(h.mouseup=d.triggerCellMouseupEvent),h.click=e=>{d.triggerCellClickEvent(e,M)},!(h.dblclick=e=>{d.triggerCellDblclickEvent(e,M)}));if(re&&pe.length){O=de[o+":"+C];if(O){var{rowspan:se,colspan:v}=O;if(!se||!v)return null;1<se&&(Ve=!0,D.rowspan=se),1<v&&(Ve=!0,D.colspan=v)}}else if(K){var{rowspan:x=1,colspan:p=1}=K(M)||{};if(!x||!p)return null;1<x&&(D.rowspan=x),1<p&&(D.colspan=p)}!(I=I&&Ve&&(1<D.colspan||1<D.rowspan)?!1:I)&&J&&(Te||$e)&&(me.showStatus||me.showUpdateStatus)&&(He=d.isUpdateByRow(r,i.field));q=te&&!g,a=c.resizeHeight||xe.height||_.height||c.height||be,U=H===N.length-1,ce=!i.resizeWidth&&("auto"===i.minWidth||"auto"===i.width);let We=!1;Ve||Q&&(0,_util.getRowid)(d,Q)===l||(te&&!X&&!he.immediate&&(o<ge.visibleStartIndex-ge.preloadSize||o>ge.visibleEndIndex+ge.preloadSize)||le&&!we.immediate&&!i.fixed&&(C<ue.visibleStartIndex-ue.preloadSize||C>ue.visibleEndIndex+ue.preloadSize))&&(We=!0);n={};if(g&&ae){let l=D.colspan||0;if(1<l)for(let e=1;e<l;e++){var Xe=ne[Ue+e];Xe&&(l+=Xe.renderWidth)}n.width=i.renderWidth-Oe*l+"px"}te||g||w||u?n.height=a+"px":n.minHeight=a+"px";s=[];I&&ie?s.push(e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:n})):(s.push(...renderLine(e,A,l,M,a),e("div",{key:"tc",class:["vxe-cell",{"c--title":k,"c--tooltip":B,"c--ellipsis":S}],style:n,attrs:{title:k?d.getCellLabel(r,i):null}},We?[]:[e("div",{attrs:{colid:$,rowid:l},class:"vxe-cell--wrapper"},i.renderCell(e,M))])),Y&&T&&(R=T.rule,E=Ae?Ae.valid:null,m=Object.assign(Object.assign(Object.assign({},M),T),{rule:T}),s.push(e("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(b.className,T)],style:R&&R.maxWidth?{width:R.maxWidth+"px"}:void 0},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(b.theme||"normal")},[E?d.callSlot(E,m,e):[e("span",{class:"vxe-cell--valid-error-msg"},T.content)]])]))));let je=!1;return G&&Ee.area&&Se&&((C||!0!==Se)&&Se!==i.field||(je=!0)),!I&&ke&&fe&&s.push(e("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],on:{mousedown:e=>d.handleColResizeMousedownEvent(e,t,M),dblclick:e=>d.handleColResizeDblclickEvent(e,M)}})),(ze||ye)&&_.resizable&&s.push(e("div",{key:"tcr",class:"vxe-cell--row-resizable",on:{mousedown:e=>d.handleRowResizeMousedownEvent(e,M),dblclick:e=>d.handleRowResizeDblclickEvent(e,M)}})),e("td",{class:["vxe-body--column",$,Ie?"col--vertical-"+Ie:"",f?"col--"+f:"",De?"col--"+De:"",{"col--last":U,"col--tree-node":Me,"col--edit":y,"col--ellipsis":g,"col--cs-height":w,"col--rs-height":u,"col--to-row":je,"col--auto-height":q,"fixed--width":!ce,"fixed--hidden":I,"is--padding":Z,"is--progress":I&&ie||We,"is--drag-cell":z&&(Ce||_e||!L),"is--drag-disabled":Ne,"col--dirty":He,"col--active":J&&y&&oe.row===r&&(oe.column===i||"row"===me.mode),"col--valid-error":!!T,"col--current":ee===i},(0,_utils.getClass)(qe,M),(0,_utils.getClass)(Be,M),(0,_utils.getClass)(j,M)],key:V||le||te||Re.useKey||_.useKey||Re.drag?i.id:H,attrs:D,style:Object.assign({},_xeUtils.default.isFunction(Fe)?Fe(M):Fe,_xeUtils.default.isFunction(P)?P(M):P),on:h},F&&I?[]:s)}function renderRows(m,w,h,f,y,b){let C=w.$parent;var e=C,l=C,t=C;let{stripe:_,rowKey:R,highlightHoverRow:E,rowClassName:S,rowStyle:O,editConfig:D,treeConfig:$}=e,{hasFixedColumn:T,treeExpandedFlag:I,isColLoading:k,scrollXLoad:B,scrollYLoad:M,isAllOverflow:z,rowExpandedFlag:A,expandColumn:q,selectRadioRow:F,pendingRowFlag:L,isDragColMove:U,rowExpandHeightFlag:H}=l,{fullAllDataRowIdData:N,treeExpandedMaps:K,pendingRowMaps:G,rowExpandedMaps:J}=t,Q=C.computeCheckboxOpts,Z=C.computeRadioOpts,V=C.computeTreeOpts,W=C.computeEditOpts,X=C.computeRowOpts,j=C.computeColumnOpts,ee=C.computeColumnDragOpts,{transform:P,seqMode:le}=V,te=V.children||V.childrenField,Y=[],re=(0,_util.createHandleGetRowId)(C).handleGetRowId;return y.forEach((t,r)=>{var e={};let a=re(t);var l=N[a]||{};let o=r,i=0,s=-1,d=-1;(X.isHover||E)&&(e.mouseenter=e=>{isVMScrollProcess(C)||C.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(C)||C.clearHoverRow()}),l&&(i=l.level,s=$&&P&&"increasing"===le?l._index+1:l.seq,o=l.index,d=l._index);var n={$table:C,seq:s,rowid:a,fixed:h,type:renderType,level:i,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},c=q&&!!A&&!!J[a];let p=!1,u=[],g=!1;D&&(g=C.isInsertByRow(t)),!$||M||P||(u=t[te],p=!!I&&u&&0<u.length&&!!K[a]),!X.drag||$&&!P||(e.dragstart=C.handleRowDragDragstartEvent,e.dragend=C.handleRowDragDragendEvent,e.dragover=C.handleRowDragDragoverEvent);var x=["vxe-body--row",$?"row--level-"+i:"",{"row--stripe":_&&(d+1)%2==0,"is--new":g,"is--expand-row":c,"is--expand-tree":p,"row--new":g&&(W.showStatus||W.showInsertStatus),"row--radio":Z.highlight&&F===t,"row--checked":Q.highlight&&C.isCheckedByCheckboxRow(t),"row--pending":!!L&&!!G[a]},S?_xeUtils.default.isFunction(S)?S(n):S:""],v=b.map((e,l)=>renderTdColumn(m,w,s,a,h,f,i,t,o,r,d,e,l,b,y));Y.push(!k&&j.drag&&ee.animation?m("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(U?"":"-disabled")},class:x,attrs:{rowid:a},style:O?_xeUtils.default.isFunction(O)?O(n):O:void 0,key:R||B||M||X.useKey||X.drag||j.drag||$?a:r,nativeOn:e},v):m("tr",{class:x,attrs:{rowid:a},style:O?_xeUtils.default.isFunction(O)?O(n):O:void 0,key:R||B||M||X.useKey||X.drag||j.drag||$?a:r,on:e},v)),c&&({height:x,padding:n,mode:e}=C.computeExpandOpts,"fixed"===e?Y.push(m("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+a,attrs:{rowid:a}},[m("td",{class:"vxe-body--row-expanded-place-column",attrs:{colspan:b.length},style:{height:`${H?l.expandHeight||x:0}px`}})])):(v={},c=(x&&(v.height=x+"px"),$&&(v.paddingLeft=i*V.indent+30+"px"),q).showOverflow,e=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?z:c,l={$table:C,seq:s,column:q,fixed:h,type:renderType,level:i,row:t,rowIndex:o,$rowIndex:r,_rowIndex:d},Y.push(m("tr",{class:["vxe-body--expanded-row",{"is--padding":n}],key:"expand_"+a},[m("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!T,"col--ellipsis":e}],attrs:{colspan:b.length}},[m("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":x}],style:v},[q.renderData(m,l)])])])))),p&&Y.push(...renderRows(m,w,h,f,u,b))}),Y}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-body-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refBodyScroll,t[l+"table"]=e.$refs.refBodyTable,t[l+"colgroup"]=e.$refs.refBodyColgroup,t[l+"list"]=e.$refs.refBodyTBody,t[l+"xSpace"]=e.$refs.refBodyXSpace,t[l+"ySpace"]=e.$refs.refBodyYSpace,t[l+"emptyBlock"]=e.$refs.refBodyEmptyBlock},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null},render(t){let l=this.$parent;var e=l,r=l,a=l,o=l.$xeGrid,{xID:i,$scopedSlots:s}=l;let{fixedColumn:d,fixedType:n,tableColumn:c}=this;var{spanMethod:p,footerSpanMethod:u,mouseConfig:g}=e,{isGroup:r,tableData:x,isRowLoading:v,isColLoading:m,overflowX:w,scrollXLoad:h,scrollYLoad:f,isAllOverflow:y,isDragRowMove:b,expandColumn:C,dragRow:_,dragCol:R}=r,{visibleColumn:a,fullAllDataRowIdData:E,fullColumnIdData:S}=a,O=l.computeRowOpts,D=l.computeEmptyOpts,$=l.computeMouseOpts,T=l.computeRowDragOpts,I=l.computeExpandOpts;let k=x,B=c,M=!1;!(h||f||y)||C&&"fixed"!==I.mode||p||u||(M=!0),m||!n&&w||(B=a),n&&M&&(B=d||[]),f&&_&&2<k.length&&(x=E[(0,_util.getRowid)(l,_)])&&(y=x._index,C=k[0],I=k[k.length-1],p=E[(0,_util.getRowid)(l,C)],u=E[(0,_util.getRowid)(l,I)],p)&&u&&(w=p._index,a=u._index,y<w?k=[_].concat(k):a<y&&(k=k.concat([_]))),n||r||h&&R&&2<B.length&&(f=S[R.id])&&(x=f._index,C=B[0],E=B[B.length-1],I=S[C.id],p=S[E.id],I)&&p&&(u=I._index,w=p._index,x<u?B=[R].concat(B):w<x&&(B=B.concat([R])));let z;return z=s.empty?s.empty.call(this,{$table:l,$grid:o}):(y=(a=D.name?renderer.get(D.name):null)?a.renderTableEmpty||a.renderTableEmptyView||a.renderEmpty:null)?(0,_vn.getSlotVNs)(y.call(this,t,D,{$table:l})):e.emptyText||getI18n("vxe.table.emptyText"),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",n?`fixed-${n}--wrapper`:"body--wrapper"],attrs:{xid:i}},[t("div",{ref:"refBodyScroll",class:"vxe-table--body-inner-wrapper",on:{scroll(e){l.triggerBodyScrollEvent(e,n)}}},[n?renderEmptyElement(l):t("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),t("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),t("table",{ref:"refBodyTable",class:"vxe-table--body",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refBodyColgroup"},B.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),!v&&!m&&O.drag&&T.animation?t("transition-group",{ref:"refBodyTBody",props:{tag:"tbody",name:"vxe-body--row-list"+(b?"":"-disabled")}},renderRows(t,this,n,M,k,B)):t("tbody",{ref:"refBodyTBody"},renderRows(t,this,n,M,k,B))]),t("div",{class:"vxe-table--checkbox-range"}),g&&$.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},$.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellAreaExtendMousedownEvent&&l.triggerCellAreaExtendMousedownEvent(e,{$table:l,fixed:n,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"}),t("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(l),n?renderEmptyElement(l):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},z)])])])}};
@@ -48,10 +48,12 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
48
48
  mergeFooterCellMaps,
49
49
  scrollXStore
50
50
  } = tableInternalData;
51
+ const virtualXOpts = $xeTable.computeVirtualXOpts;
51
52
  const tooltipOpts = $xeTable.computeTooltipOpts;
53
+ const resizableOpts = $xeTable.resizableOpts;
52
54
  const {
53
55
  isAllColumnDrag
54
- } = $xeTable.resizableOpts;
56
+ } = resizableOpts;
55
57
  const columnOpts = $xeTable.computeColumnOpts;
56
58
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
57
59
  const cellOpts = $xeTable.computeCellOpts;
@@ -177,7 +179,7 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
177
179
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
178
180
  let isVNPreEmptyStatus = false;
179
181
  if (!isMergeCell) {
180
- if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
182
+ if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
181
183
  isVNPreEmptyStatus = true;
182
184
  }
183
185
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function renderRows(C,e,_,F,T,$,S){let E=e.$parent;var l=E,r=E,t=E;let I=E.$xeGrid,O=e.fixedType,{resizable:D,border:R,footerCellClassName:z,footerCellStyle:k,footerAlign:U,footerSpanMethod:A,align:q,columnKey:L,showFooterOverflow:M}=l,{scrollXLoad:X,scrollYLoad:H,overflowX:N,currentColumn:j}=r,{fullColumnIdData:W,mergeFooterList:B,mergeFooterCellMaps:G,scrollXStore:K}=t,V=E.computeTooltipOpts,Y=E.resizableOpts.isAllColumnDrag,P=E.computeColumnOpts;e=E.computeDefaultRowHeight;let J=E.computeCellOpts,Q=E.computeFooterCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e;return _.map((l,e)=>{var{type:r,showFooterOverflow:t,footerAlign:o,align:i,footerClassName:a,editRender:n,cellRender:s}=l,d=l.id,u=W[d]||{},n=n||s,s=n?renderer.get(n.name):null;let p=V.showAll;var n=l.children&&l.children.length,n=O?l.fixed!==O&&!n:l.fixed&&N,c=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,t=_xeUtils.default.eqNull(t)?M:t,o=o||(s?s.tableFooterCellAlign:"")||U||i||(s?s.tableCellAlign:"")||q;let f="ellipsis"===t,x="title"===t,m=!0===t||"tooltip"===t,g=x||m||f;var i=_xeUtils.default.isBoolean(l.resizable)?l.resizable:P.resizable||D,s={colid:d},t={},v=u.index,u=u._index,h=u;let w={$table:E,$grid:I,row:T,rowIndex:S,_rowIndex:S,$rowIndex:$,column:l,columnIndex:v,$columnIndex:e,_columnIndex:u,itemIndex:h,items:T,fixed:O,type:renderType,data:F},y=(X&&!g&&(f=g=!0),(x||m||p)&&(t.mouseenter=e=>{x?(0,_dom.updateCellTitle)(e.currentTarget,l):(m||p)&&E.triggerFooterTooltipEvent(e,w)}),(m||p)&&(t.mouseleave=e=>{(m||p)&&E.handleTargetLeaveEvent(e)}),t.click=e=>{E.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},w),e)},!(t.dblclick=e=>{E.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},w),e)}));if(B.length){v=G[S+":"+u];if(v){var{rowspan:h,colspan:v}=v;if(!h||!v)return null;1<h&&(y=!0,s.rowspan=h),1<v&&(y=!0,s.colspan=v)}}else if(A){var{rowspan:h=1,colspan:v=1}=A(w)||{};if(!h||!v)return null;1<h&&(s.rowspan=h),1<v&&(s.colspan=v)}h=e===_.length-1,v=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let b=!1;y||X&&!l.fixed&&(u<K.visibleStartIndex-K.preloadSize||u>K.visibleEndIndex+K.preloadSize)&&(b=!0);u={};return g?u.height=Z+"px":u.minHeight=Z+"px",C("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+r]:r,"col--last":h,"fixed--width":!v,"fixed--hidden":n,"is--padding":c,"col--ellipsis":g,"col--current":j===l},(0,_utils.getClass)(a,w),(0,_utils.getClass)(z,w)],attrs:s,style:k?_xeUtils.default.isFunction(k)?k(w):k:void 0,on:t,key:L||X||H||P.useKey||P.drag?l.id:e},[C("div",{class:["vxe-cell",{"c--title":x,"c--tooltip":m,"c--ellipsis":f}],style:u},b?[]:[C("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},l.renderFooter(C,w))]),!n&&i&&Y?C("div",{class:["vxe-cell--col-resizable",{"is--line":!R||"none"===R}],on:{mousedown:e=>E.handleColResizeMousedownEvent(e,O,w),dblclick:e=>E.handleColResizeDblclickEvent(e,w)}}):renderEmptyElement(E)])})}function renderHeads(o,i,a){let n=i.$parent;var e=n,l=n;let{fixedType:s,footerTableData:d}=i,{footerRowClassName:u,footerRowStyle:p}=e,{isColLoading:c,isDragColMove:f}=l,x=n.computeColumnOpts,m=n.computeColumnDragOpts;return d.map((e,l)=>{var r=l,t={$table:n,row:e,_rowIndex:r,$rowIndex:l,fixed:s,type:renderType};return!c&&x.drag&&m.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(t):u:""],style:p?_xeUtils.default.isFunction(p)?p(t):p:void 0}},renderRows(o,i,a,d,e,l,r)):o("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(t):u:""],style:p?_xeUtils.default.isFunction(p)?p(t):p:void 0},renderRows(o,i,a,d,e,l,r))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-footer-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refFooterScroll,r[l+"table"]=e.$refs.refFooterTable,r[l+"colgroup"]=e.$refs.refFooterColgroup,r[l+"list"]=e.$refs.refFooterTFoot,r[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null},render(r){let l=this.$parent;var e=l,t=l,o=l,i=l.xID;let{fixedType:a,fixedColumn:n,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:p}=o,{isGroup:t,isColLoading:c,overflowX:f,scrollXLoad:x,scrollYLoad:m,dragCol:g}=t;let v=s,h=!(x||m||u)||e||d?!1:!0;return c||!a&&f||(v=o),a&&h&&(v=n||[]),a||t||x&&g&&2<v.length&&(m=p[g.id])&&(u=m._index,e=v[0],d=v[v.length-1],c=p[e.id],f=p[d.id],c)&&f&&(o=c._index,t=f._index,u<o?v=[g].concat(v):t<u&&(v=v.concat([g]))),r("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(l):r("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refFooterColgroup"},v.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("tfoot",{ref:"refFooterTFoot"},renderHeads(r,this,v))])])])}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function renderRows(C,e,_,F,T,$,S){let E=e.$parent;var l=E,t=E,r=E;let I=E.$xeGrid,O=e.fixedType,{resizable:D,border:R,footerCellClassName:z,footerCellStyle:k,footerAlign:U,footerSpanMethod:A,align:q,columnKey:L,showFooterOverflow:M}=l,{scrollXLoad:X,scrollYLoad:H,overflowX:N,currentColumn:j}=t,{fullColumnIdData:V,mergeFooterList:W,mergeFooterCellMaps:B,scrollXStore:G}=r,K=E.computeVirtualXOpts,Y=E.computeTooltipOpts,ee=E.resizableOpts.isAllColumnDrag,P=E.computeColumnOpts;e=E.computeDefaultRowHeight;let J=E.computeCellOpts,Q=E.computeFooterCellOpts,Z=(0,_util.getCellHeight)(Q.height||J.height)||e;return _.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:i,footerClassName:a,editRender:n,cellRender:s}=l,d=l.id,u=V[d]||{},n=n||s,s=n?renderer.get(n.name):null;let p=Y.showAll;var n=l.children&&l.children.length,n=O?l.fixed!==O&&!n:l.fixed&&N,c=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,r=_xeUtils.default.eqNull(r)?M:r,o=o||(s?s.tableFooterCellAlign:"")||U||i||(s?s.tableCellAlign:"")||q;let f="ellipsis"===r,x="title"===r,m=!0===r||"tooltip"===r,g=x||m||f;var i=_xeUtils.default.isBoolean(l.resizable)?l.resizable:P.resizable||D,s={colid:d},r={},v=u.index,u=u._index,h=u;let w={$table:E,$grid:I,row:T,rowIndex:S,_rowIndex:S,$rowIndex:$,column:l,columnIndex:v,$columnIndex:e,_columnIndex:u,itemIndex:h,items:T,fixed:O,type:renderType,data:F},y=(X&&!g&&(f=g=!0),(x||m||p)&&(r.mouseenter=e=>{x?(0,_dom.updateCellTitle)(e.currentTarget,l):(m||p)&&E.triggerFooterTooltipEvent(e,w)}),(m||p)&&(r.mouseleave=e=>{(m||p)&&E.handleTargetLeaveEvent(e)}),r.click=e=>{E.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},w),e)},!(r.dblclick=e=>{E.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},w),e)}));if(W.length){v=B[S+":"+u];if(v){var{rowspan:h,colspan:v}=v;if(!h||!v)return null;1<h&&(y=!0,s.rowspan=h),1<v&&(y=!0,s.colspan=v)}}else if(A){var{rowspan:h=1,colspan:v=1}=A(w)||{};if(!h||!v)return null;1<h&&(s.rowspan=h),1<v&&(s.colspan=v)}h=e===_.length-1,v=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let b=!1;y||X&&!l.fixed&&!K.immediate&&(u<G.visibleStartIndex-G.preloadSize||u>G.visibleEndIndex+G.preloadSize)&&(b=!0);u={};return g?u.height=Z+"px":u.minHeight=Z+"px",C("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":h,"fixed--width":!v,"fixed--hidden":n,"is--padding":c,"col--ellipsis":g,"col--current":j===l},(0,_utils.getClass)(a,w),(0,_utils.getClass)(z,w)],attrs:s,style:k?_xeUtils.default.isFunction(k)?k(w):k:void 0,on:r,key:L||X||H||P.useKey||P.drag?l.id:e},[C("div",{class:["vxe-cell",{"c--title":x,"c--tooltip":m,"c--ellipsis":f}],style:u},b?[]:[C("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},l.renderFooter(C,w))]),!n&&i&&ee?C("div",{class:["vxe-cell--col-resizable",{"is--line":!R||"none"===R}],on:{mousedown:e=>E.handleColResizeMousedownEvent(e,O,w),dblclick:e=>E.handleColResizeDblclickEvent(e,w)}}):renderEmptyElement(E)])})}function renderHeads(o,i,a){let n=i.$parent;var e=n,l=n;let{fixedType:s,footerTableData:d}=i,{footerRowClassName:u,footerRowStyle:p}=e,{isColLoading:c,isDragColMove:f}=l,x=n.computeColumnOpts,m=n.computeColumnDragOpts;return d.map((e,l)=>{var t=l,r={$table:n,row:e,_rowIndex:t,$rowIndex:l,fixed:s,type:renderType};return!c&&x.drag&&m.animation?o("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0}},renderRows(o,i,a,d,e,l,t)):o("tr",{key:l,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(o,i,a,d,e,l,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-footer-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refFooterScroll,t[l+"table"]=e.$refs.refFooterTable,t[l+"colgroup"]=e.$refs.refFooterColgroup,t[l+"list"]=e.$refs.refFooterTFoot,t[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,i=l.xID;let{fixedType:a,fixedColumn:n,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:p}=o,{isGroup:r,isColLoading:c,overflowX:f,scrollXLoad:x,scrollYLoad:m,dragCol:g}=r;let v=s,h=!(x||m||u)||e||d?!1:!0;return c||!a&&f||(v=o),a&&h&&(v=n||[]),a||r||x&&g&&2<v.length&&(m=p[g.id])&&(u=m._index,e=v[0],d=v[v.length-1],c=p[e.id],f=p[d.id],c)&&f&&(o=c._index,r=f._index,u<o?v=[g].concat(v):r<u&&(v=v.concat([g]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:i}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(l):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refFooterColgroup"},v.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,v))])])])}};
@@ -45,6 +45,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
45
45
  fullColumnIdData,
46
46
  scrollXStore
47
47
  } = tableInternalData;
48
+ const virtualXOpts = $xeTable.computeVirtualXOpts;
48
49
  const columnOpts = $xeTable.computeColumnOpts;
49
50
  const columnDragOpts = $xeTable.computeColumnDragOpts;
50
51
  const cellOpts = $xeTable.computeCellOpts;
@@ -140,7 +141,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
140
141
  let isVNPreEmptyStatus = false;
141
142
  if (!isGroup) {
142
143
  if (!dragCol || dragCol.id !== colid) {
143
- if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
144
+ if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
144
145
  isVNPreEmptyStatus = true;
145
146
  }
146
147
  }