vxe-table 4.1.9 → 4.1.11

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.
@@ -211,7 +211,7 @@ var _default2 = (0, _vue.defineComponent)({
211
211
  });
212
212
 
213
213
  var getOptkey = function getOptkey() {
214
- return props.optionId || '_XID';
214
+ return props.optionId || '_X_ID';
215
215
  };
216
216
 
217
217
  var getOptid = function getOptid(option) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default2=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:null,clearable:Boolean,placeholder:String,loading:Boolean,disabled:Boolean,multiple:Boolean,multiCharOverflow:{type:[Number,String],default:function(){return _conf.default.select.multiCharOverflow}},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,className:[String,Function],size:{type:String,default:function(){return _conf.default.select.size||_conf.default.size}},emptyText:String,optionId:{type:String,default:function(){return _conf.default.select.optionId}},optionKey:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.select.transfer}}},emits:["update:modelValue","change","clear"],setup:function(b,e){function m(e,t){return e&&(_xeUtils.default.isString(e)&&(e=g[e]||null),_xeUtils.default.isFunction(e))?e(t):[]}function v(t){var e=L.fullOptionList,n=L.fullGroupList,i=q.value,o=K.value;if(i)for(var l=0;l<n.length;l++){var u=n[l];if(u.options)for(var r=0;r<u.options.length;r++){var a=u.options[r];if(t===a[o])return a}}return e.find(function(e){return t===e[o]})}function i(e){var t=w.value,n=v(e);return _xeUtils.default.toValueString(n?n[t]:e)}function l(){var e=L.fullOptionList,t=L.fullGroupList;return q.value?L.visibleGroupList=t.filter(isOptionVisible):L.visibleOptionList=e.filter(isOptionVisible),(0,_vue.nextTick)()}function n(){function t(e){B(e)||(e[o]=getOptUniqueId())}var e=L.fullOptionList,n=L.fullGroupList,i=U.value,o=z();n.length?n.forEach(function(e){t(e),e[i]&&e[i].forEach(t)}):e.length&&e.forEach(t),l()}function x(e){var t=K.value;e&&(L.currentValue=e[t])}function c(i,o){return(0,_vue.nextTick)().then(function(){var e,t,n;i&&(e=P.value,t=S.value.querySelector("[optid='"+B(i)+"']"),e&&t&&(n=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>n&&(e.scrollTop=t.offsetTop+t.offsetHeight-n):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5)))})}function o(){return(0,_vue.nextTick)().then(function(){var e=b.transfer,t=b.placement,n=L.panelIndex,i=y.value,o=S.value;if(o&&i){var l=i.offsetHeight,u=i.offsetWidth,r=o.offsetHeight,a=o.offsetWidth,s={zIndex:n},f=(0,_dom.getAbsolutePos)(i),v=f.boundingTop,o=f.boundingLeft,n=f.visibleHeight,i=f.visibleWidth,f="bottom";return e?(e=v+l,"top"===t?(f="top",e=v-r):t||(n<e+r+5&&(f="top",e=v-r),e<5&&(f="bottom",e=v+l)),i<(o=o)+a+5&&(o-=o+a+5-i),o<5&&(o=5),Object.assign(s,{left:o+"px",top:e+"px",minWidth:u+"px"})):"top"===t?(f="top",s.bottom=l+"px"):t||n<v+l+r&&5<v-l-r&&(f="top",s.bottom=l+"px"),L.panelStyle=s,L.panelPlacement=f,(0,_vue.nextTick)()}})}function f(e,t){H(t,null),F()}function h(e,t){var n,i=b.modelValue;b.multiple?(n=void 0,n=i?-1===i.indexOf(t)?i.concat([t]):i.filter(function(e){return e!==t}):[t],j(e,n)):(j(e,t),F())}function t(e){var t=b.disabled,n=L.visiblePanel;t||n&&(n=S.value,((0,_dom.getEventTargetNode)(e,n).flag?o:F)())}function u(e){var t,n=b.disabled,i=L.visiblePanel;n||(t=y.value,n=S.value,L.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,n).flag,i&&!L.isActivated&&F())}function r(e){var t,n,i,o,l,u,r=b.clearable,a=b.disabled,s=L.visiblePanel,f=L.currentValue;a||(l=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.TAB),t=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ENTER),u=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ESCAPE),n=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_UP),i=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_DOWN),o=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.DELETE),a=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.SPACEBAR),l&&(L.isActivated=!1),s?u||l?F():t?(e.preventDefault(),e.stopPropagation(),h(e,f)):n||i?(e.preventDefault(),l=(u=function(e,t){var n,i,o,l,u=L.visibleOptionList,r=L.visibleGroupList,a=q.value,s=K.value,f=U.value;if(a)for(var v=0;v<r.length;v++){var c=r[v],p=c[f],d=c.disabled;if(p)for(var _=0;_<p.length;_++){var b=isOptionVisible(x=p[_]),m=d||x.disabled;if(n||m||(n=x),l&&b&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else b&&!m&&(i=x)}}else for(_=0;_<u.length;_++){var x,m=(x=u[_]).disabled;if(n||m||(n=x),l&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else m||(i=x)}return{firstOption:n}}(f,n)).firstOption,(u=u.offsetOption)||v(f)||(u=l),x(u),c(u,i)):a&&e.preventDefault():(n||i||t||a)&&L.isActivated&&(e.preventDefault(),$()),L.isActivated&&o&&r&&H(e,null))}function a(){F()}function p(){b.disabled||(L.isActivated=!0)}function d(){L.isActivated=!1}function _(e){e.$event.preventDefault(),(L.visiblePanel?F:$)()}var s,g=e.slots,E=e.emit,O=_xeUtils.default.uniqueId(),T=(0,_size.useSize)(b),L=(0,_vue.reactive)({inited:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentValue:null,visiblePanel:!1,animatVisible:!1,isActivated:!1}),y=(0,_vue.ref)(),V=(0,_vue.ref)(),P=(0,_vue.ref)(),S=(0,_vue.ref)(),G={refElem:y},A={xID:O,props:b,context:e,reactData:L,getRefMaps:function(){return G}},I={},N=(0,_vue.computed)(function(){return b.optionProps||{}}),k=(0,_vue.computed)(function(){return b.optionGroupProps||{}}),w=(0,_vue.computed)(function(){return N.value.label||"label"}),K=(0,_vue.computed)(function(){return N.value.value||"value"}),C=(0,_vue.computed)(function(){return k.value.label||"label"}),U=(0,_vue.computed)(function(){return k.value.options||"options"}),q=(0,_vue.computed)(function(){return L.fullGroupList.some(function(e){return e.options&&e.options.length})}),D=(0,_vue.computed)(function(){return _xeUtils.default.toNumber(b.multiCharOverflow)}),R=(0,_vue.computed)(function(){var e=b.modelValue,t=b.multiple,n=D.value;return e&&t?(_xeUtils.default.isArray(e)?e:[e]).map(function(e){e=i(e);return 0<n&&e.length>n?e.substring(0,n)+"...":e}).join(", "):i(e)}),z=function(){return b.optionId||"_XID"},B=function(e){e=e[z()];return e?encodeURIComponent(e):""},$=function(){var e=b.loading,t=b.disabled;e||t||(clearTimeout(s),L.inited||(L.inited=!0),L.isActivated=!0,L.animatVisible=!0,setTimeout(function(){var e=b.modelValue,t=b.multiple,e=v(t&&e?e[0]:e);L.visiblePanel=!0,e&&(x(e),c(e))},10),L.panelIndex<(0,_utils.getLastZIndex)()&&(L.panelIndex=(0,_utils.nextZIndex)()),o())},F=function(){L.visiblePanel=!1,s=window.setTimeout(function(){L.animatVisible=!1},350)},j=function(e,t){t!==b.modelValue&&(E("update:modelValue",t),I.dispatchEvent("change",{value:t},e))},H=function(e,t){j(e,t),I.dispatchEvent("clear",{value:t},e)},W=function(e,a){var s=b.optionKey,f=b.modelValue,v=b.multiple,c=L.currentValue,p=w.value,d=K.value,_=q.value;return e.map(function(e,t){var n=e.slots,i=e.className,o=!_||isOptionVisible(e),l=a&&a.disabled||e.disabled,u=e[d],r=B(e),n=n?n.default:null;return o?(0,_vue.h)("div",{key:s?r:t,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i({option:e,$select:A}):i:"",{"is--disabled":l,"is--selected":v?f&&-1<f.indexOf(u):f===u,"is--hover":c===u}],optid:r,onMousedown:function(e){0===e.button&&e.stopPropagation()},onClick:function(e){l||h(e,u)},onMouseenter:function(){l||x(e)}},n?m(n,{option:e,$select:A}):(0,_utils.formatText)((0,_utils.getFuncText)(e[p]))):null})},Y=function(){var u=b.optionKey,e=L.visibleGroupList,r=C.value,a=U.value;return e.map(function(e,t){var n=e.slots,i=e.className,o=B(e),l=e.disabled,n=n?n.default:null;return(0,_vue.h)("div",{key:u?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i({option:e,$select:A}):i:"",{"is--disabled":l}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},n?m(n,{option:e,$select:A}):(0,_utils.getFuncText)(e[r])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},W(e[a]||[],e))])})},I={dispatchEvent:function(e,t,n){E(e,Object.assign({$select:A,$event:n},t))},isPanelVisible:function(){return L.visiblePanel},togglePanel:function(){return(L.visiblePanel?F:$)(),(0,_vue.nextTick)()},hidePanel:function(){return L.visiblePanel&&F(),(0,_vue.nextTick)()},showPanel:function(){return L.visiblePanel||$(),(0,_vue.nextTick)()},refreshOption:l,focus:function(){var e=V.value;return L.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur:function(){return V.value.blur(),(L.isActivated=!1,_vue.nextTick)()}};Object.assign(A,I),(0,_vue.watch)(function(){return L.staticOptions},function(e){e.some(function(e){return e.options&&e.options.length})?(L.fullOptionList=[],L.fullGroupList=e):(L.fullGroupList=[],L.fullOptionList=e||[]),n()}),(0,_vue.watch)(function(){return b.options},function(e){L.fullGroupList=[],L.fullOptionList=e||[],n()}),(0,_vue.watch)(function(){return b.optionGroups},function(e){L.fullOptionList=[],L.fullGroupList=e||[],n()}),(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){var e=b.options,t=b.optionGroups;t?L.fullGroupList=t:e&&(L.fullOptionList=e),n()}),_event.GlobalEvent.on(A,"mousewheel",t),_event.GlobalEvent.on(A,"mousedown",u),_event.GlobalEvent.on(A,"keydown",r),_event.GlobalEvent.on(A,"blur",a)}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(A,"mousewheel"),_event.GlobalEvent.off(A,"mousedown"),_event.GlobalEvent.off(A,"keydown"),_event.GlobalEvent.off(A,"blur")});return A.renderVN=function(){var e=b.className,t=b.transfer,n=b.disabled,i=b.loading,o=L.inited,l=L.isActivated,u=L.visiblePanel,r=T.value,a=R.value,s=g.prefix;return(0,_vue.h)("div",{ref:y,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:A}):e:"",((e={})["size--"+r]=r,e["is--visivle"]=u,e["is--disabled"]=n,e["is--loading"]=i,e["is--active"]=l,e)]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},g.default?g.default({}):[]),(0,_vue.h)((0,_vue.resolveComponent)("vxe-input"),{ref:V,clearable:b.clearable,placeholder:b.placeholder,readonly:!0,disabled:n,type:"text",prefixIcon:b.prefixIcon,suffixIcon:i?_conf.default.icon.SELECT_LOADED:u?_conf.default.icon.SELECT_OPEN:_conf.default.icon.SELECT_CLOSE,modelValue:a,onClear:f,onClick:_,onFocus:p,onBlur:d,onSuffixClick:_},s?{prefix:function(){return s({})}}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!o},[(0,_vue.h)("div",{ref:S,class:["vxe-table--ignore-clear vxe-select--panel",((a={})["size--"+r]=r,a["is--transfer"]=t,a["animat--leave"]=!i&&L.animatVisible,a["animat--enter"]=!i&&u,a)],placement:L.panelPlacement,style:L.panelStyle},o?[(0,_vue.h)("div",{ref:P,class:"vxe-select-option--wrapper"},function(){var e=L.visibleGroupList,t=L.visibleOptionList;if(q.value){if(e.length)return Y()}else if(t.length)return W(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},b.emptyText||_conf.default.i18n("vxe.select.emptyText"))]}())]:[])])])},(0,_vue.provide)("$xeselect",A),A},render:function(){return this.renderVN()}});exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=require("../../hooks/size"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils"),_event=require("../../tools/event");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default2=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:null,clearable:Boolean,placeholder:String,loading:Boolean,disabled:Boolean,multiple:Boolean,multiCharOverflow:{type:[Number,String],default:function(){return _conf.default.select.multiCharOverflow}},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,className:[String,Function],size:{type:String,default:function(){return _conf.default.select.size||_conf.default.size}},emptyText:String,optionId:{type:String,default:function(){return _conf.default.select.optionId}},optionKey:Boolean,transfer:{type:Boolean,default:function(){return _conf.default.select.transfer}}},emits:["update:modelValue","change","clear"],setup:function(b,e){function m(e,t){return e&&(_xeUtils.default.isString(e)&&(e=g[e]||null),_xeUtils.default.isFunction(e))?e(t):[]}function v(t){var e=L.fullOptionList,n=L.fullGroupList,i=q.value,o=K.value;if(i)for(var l=0;l<n.length;l++){var u=n[l];if(u.options)for(var r=0;r<u.options.length;r++){var a=u.options[r];if(t===a[o])return a}}return e.find(function(e){return t===e[o]})}function i(e){var t=w.value,n=v(e);return _xeUtils.default.toValueString(n?n[t]:e)}function l(){var e=L.fullOptionList,t=L.fullGroupList;return q.value?L.visibleGroupList=t.filter(isOptionVisible):L.visibleOptionList=e.filter(isOptionVisible),(0,_vue.nextTick)()}function n(){function t(e){B(e)||(e[o]=getOptUniqueId())}var e=L.fullOptionList,n=L.fullGroupList,i=U.value,o=z();n.length?n.forEach(function(e){t(e),e[i]&&e[i].forEach(t)}):e.length&&e.forEach(t),l()}function x(e){var t=K.value;e&&(L.currentValue=e[t])}function c(i,o){return(0,_vue.nextTick)().then(function(){var e,t,n;i&&(e=P.value,t=S.value.querySelector("[optid='"+B(i)+"']"),e&&t&&(n=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>n&&(e.scrollTop=t.offsetTop+t.offsetHeight-n):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5)))})}function o(){return(0,_vue.nextTick)().then(function(){var e=b.transfer,t=b.placement,n=L.panelIndex,i=y.value,o=S.value;if(o&&i){var l=i.offsetHeight,u=i.offsetWidth,r=o.offsetHeight,a=o.offsetWidth,s={zIndex:n},f=(0,_dom.getAbsolutePos)(i),v=f.boundingTop,o=f.boundingLeft,n=f.visibleHeight,i=f.visibleWidth,f="bottom";return e?(e=v+l,"top"===t?(f="top",e=v-r):t||(n<e+r+5&&(f="top",e=v-r),e<5&&(f="bottom",e=v+l)),i<(o=o)+a+5&&(o-=o+a+5-i),o<5&&(o=5),Object.assign(s,{left:o+"px",top:e+"px",minWidth:u+"px"})):"top"===t?(f="top",s.bottom=l+"px"):t||n<v+l+r&&5<v-l-r&&(f="top",s.bottom=l+"px"),L.panelStyle=s,L.panelPlacement=f,(0,_vue.nextTick)()}})}function f(e,t){H(t,null),F()}function h(e,t){var n,i=b.modelValue;b.multiple?(n=void 0,n=i?-1===i.indexOf(t)?i.concat([t]):i.filter(function(e){return e!==t}):[t],j(e,n)):(j(e,t),F())}function t(e){var t=b.disabled,n=L.visiblePanel;t||n&&(n=S.value,((0,_dom.getEventTargetNode)(e,n).flag?o:F)())}function u(e){var t,n=b.disabled,i=L.visiblePanel;n||(t=y.value,n=S.value,L.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,n).flag,i&&!L.isActivated&&F())}function r(e){var t,n,i,o,l,u,r=b.clearable,a=b.disabled,s=L.visiblePanel,f=L.currentValue;a||(l=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.TAB),t=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ENTER),u=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ESCAPE),n=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_UP),i=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.ARROW_DOWN),o=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.DELETE),a=(0,_event.hasEventKey)(e,_event.EVENT_KEYS.SPACEBAR),l&&(L.isActivated=!1),s?u||l?F():t?(e.preventDefault(),e.stopPropagation(),h(e,f)):n||i?(e.preventDefault(),l=(u=function(e,t){var n,i,o,l,u=L.visibleOptionList,r=L.visibleGroupList,a=q.value,s=K.value,f=U.value;if(a)for(var v=0;v<r.length;v++){var c=r[v],p=c[f],d=c.disabled;if(p)for(var _=0;_<p.length;_++){var b=isOptionVisible(x=p[_]),m=d||x.disabled;if(n||m||(n=x),l&&b&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else b&&!m&&(i=x)}}else for(_=0;_<u.length;_++){var x,m=(x=u[_]).disabled;if(n||m||(n=x),l&&!m&&(o=x,!t))return{offsetOption:o};if(e===x[s]){if(l=x,t)return{offsetOption:i}}else m||(i=x)}return{firstOption:n}}(f,n)).firstOption,(u=u.offsetOption)||v(f)||(u=l),x(u),c(u,i)):a&&e.preventDefault():(n||i||t||a)&&L.isActivated&&(e.preventDefault(),$()),L.isActivated&&o&&r&&H(e,null))}function a(){F()}function p(){b.disabled||(L.isActivated=!0)}function d(){L.isActivated=!1}function _(e){e.$event.preventDefault(),(L.visiblePanel?F:$)()}var s,g=e.slots,E=e.emit,O=_xeUtils.default.uniqueId(),T=(0,_size.useSize)(b),L=(0,_vue.reactive)({inited:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentValue:null,visiblePanel:!1,animatVisible:!1,isActivated:!1}),y=(0,_vue.ref)(),V=(0,_vue.ref)(),P=(0,_vue.ref)(),S=(0,_vue.ref)(),G={refElem:y},A={xID:O,props:b,context:e,reactData:L,getRefMaps:function(){return G}},I={},N=(0,_vue.computed)(function(){return b.optionProps||{}}),k=(0,_vue.computed)(function(){return b.optionGroupProps||{}}),w=(0,_vue.computed)(function(){return N.value.label||"label"}),K=(0,_vue.computed)(function(){return N.value.value||"value"}),C=(0,_vue.computed)(function(){return k.value.label||"label"}),U=(0,_vue.computed)(function(){return k.value.options||"options"}),q=(0,_vue.computed)(function(){return L.fullGroupList.some(function(e){return e.options&&e.options.length})}),D=(0,_vue.computed)(function(){return _xeUtils.default.toNumber(b.multiCharOverflow)}),R=(0,_vue.computed)(function(){var e=b.modelValue,t=b.multiple,n=D.value;return e&&t?(_xeUtils.default.isArray(e)?e:[e]).map(function(e){e=i(e);return 0<n&&e.length>n?e.substring(0,n)+"...":e}).join(", "):i(e)}),z=function(){return b.optionId||"_X_ID"},B=function(e){e=e[z()];return e?encodeURIComponent(e):""},$=function(){var e=b.loading,t=b.disabled;e||t||(clearTimeout(s),L.inited||(L.inited=!0),L.isActivated=!0,L.animatVisible=!0,setTimeout(function(){var e=b.modelValue,t=b.multiple,e=v(t&&e?e[0]:e);L.visiblePanel=!0,e&&(x(e),c(e))},10),L.panelIndex<(0,_utils.getLastZIndex)()&&(L.panelIndex=(0,_utils.nextZIndex)()),o())},F=function(){L.visiblePanel=!1,s=window.setTimeout(function(){L.animatVisible=!1},350)},j=function(e,t){t!==b.modelValue&&(E("update:modelValue",t),I.dispatchEvent("change",{value:t},e))},H=function(e,t){j(e,t),I.dispatchEvent("clear",{value:t},e)},W=function(e,a){var s=b.optionKey,f=b.modelValue,v=b.multiple,c=L.currentValue,p=w.value,d=K.value,_=q.value;return e.map(function(e,t){var n=e.slots,i=e.className,o=!_||isOptionVisible(e),l=a&&a.disabled||e.disabled,u=e[d],r=B(e),n=n?n.default:null;return o?(0,_vue.h)("div",{key:s?r:t,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i({option:e,$select:A}):i:"",{"is--disabled":l,"is--selected":v?f&&-1<f.indexOf(u):f===u,"is--hover":c===u}],optid:r,onMousedown:function(e){0===e.button&&e.stopPropagation()},onClick:function(e){l||h(e,u)},onMouseenter:function(){l||x(e)}},n?m(n,{option:e,$select:A}):(0,_utils.formatText)((0,_utils.getFuncText)(e[p]))):null})},Y=function(){var u=b.optionKey,e=L.visibleGroupList,r=C.value,a=U.value;return e.map(function(e,t){var n=e.slots,i=e.className,o=B(e),l=e.disabled,n=n?n.default:null;return(0,_vue.h)("div",{key:u?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i({option:e,$select:A}):i:"",{"is--disabled":l}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},n?m(n,{option:e,$select:A}):(0,_utils.getFuncText)(e[r])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},W(e[a]||[],e))])})},I={dispatchEvent:function(e,t,n){E(e,Object.assign({$select:A,$event:n},t))},isPanelVisible:function(){return L.visiblePanel},togglePanel:function(){return(L.visiblePanel?F:$)(),(0,_vue.nextTick)()},hidePanel:function(){return L.visiblePanel&&F(),(0,_vue.nextTick)()},showPanel:function(){return L.visiblePanel||$(),(0,_vue.nextTick)()},refreshOption:l,focus:function(){var e=V.value;return L.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur:function(){return V.value.blur(),(L.isActivated=!1,_vue.nextTick)()}};Object.assign(A,I),(0,_vue.watch)(function(){return L.staticOptions},function(e){e.some(function(e){return e.options&&e.options.length})?(L.fullOptionList=[],L.fullGroupList=e):(L.fullGroupList=[],L.fullOptionList=e||[]),n()}),(0,_vue.watch)(function(){return b.options},function(e){L.fullGroupList=[],L.fullOptionList=e||[],n()}),(0,_vue.watch)(function(){return b.optionGroups},function(e){L.fullOptionList=[],L.fullGroupList=e||[],n()}),(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){var e=b.options,t=b.optionGroups;t?L.fullGroupList=t:e&&(L.fullOptionList=e),n()}),_event.GlobalEvent.on(A,"mousewheel",t),_event.GlobalEvent.on(A,"mousedown",u),_event.GlobalEvent.on(A,"keydown",r),_event.GlobalEvent.on(A,"blur",a)}),(0,_vue.onUnmounted)(function(){_event.GlobalEvent.off(A,"mousewheel"),_event.GlobalEvent.off(A,"mousedown"),_event.GlobalEvent.off(A,"keydown"),_event.GlobalEvent.off(A,"blur")});return A.renderVN=function(){var e=b.className,t=b.transfer,n=b.disabled,i=b.loading,o=L.inited,l=L.isActivated,u=L.visiblePanel,r=T.value,a=R.value,s=g.prefix;return(0,_vue.h)("div",{ref:y,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:A}):e:"",((e={})["size--"+r]=r,e["is--visivle"]=u,e["is--disabled"]=n,e["is--loading"]=i,e["is--active"]=l,e)]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},g.default?g.default({}):[]),(0,_vue.h)((0,_vue.resolveComponent)("vxe-input"),{ref:V,clearable:b.clearable,placeholder:b.placeholder,readonly:!0,disabled:n,type:"text",prefixIcon:b.prefixIcon,suffixIcon:i?_conf.default.icon.SELECT_LOADED:u?_conf.default.icon.SELECT_OPEN:_conf.default.icon.SELECT_CLOSE,modelValue:a,onClear:f,onClick:_,onFocus:p,onBlur:d,onSuffixClick:_},s?{prefix:function(){return s({})}}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!t||!o},[(0,_vue.h)("div",{ref:S,class:["vxe-table--ignore-clear vxe-select--panel",((a={})["size--"+r]=r,a["is--transfer"]=t,a["animat--leave"]=!i&&L.animatVisible,a["animat--enter"]=!i&&u,a)],placement:L.panelPlacement,style:L.panelStyle},o?[(0,_vue.h)("div",{ref:P,class:"vxe-select-option--wrapper"},function(){var e=L.visibleGroupList,t=L.visibleOptionList;if(q.value){if(e.length)return Y()}else if(t.length)return W(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},b.emptyText||_conf.default.i18n("vxe.select.emptyText"))]}())]:[])])])},(0,_vue.provide)("$xeselect",A),A},render:function(){return this.renderVN()}});exports.default=_default2;
@@ -438,6 +438,7 @@ var _default = (0, _vue.defineComponent)({
438
438
  var treeOpts = computeTreeOpts.value;
439
439
  var editOpts = computeEditOpts.value;
440
440
  var rowOpts = computeRowOpts.value;
441
+ var transform = treeOpts.transform;
441
442
  var rows = [];
442
443
  tableData.forEach(function (row, $rowIndex) {
443
444
  var trOn = {};
@@ -471,8 +472,14 @@ var _default = (0, _vue.defineComponent)({
471
472
 
472
473
  var rowid = (0, _util.getRowid)($xetable, row);
473
474
  var rest = fullDataRowIdData[rowid];
474
- var rowLevel = rest ? rest.level : 0;
475
- var seq = rest ? rest.seq : -1;
475
+ var rowLevel = 0;
476
+ var seq = -1;
477
+
478
+ if (rest) {
479
+ rowLevel = rest.level;
480
+ seq = rest.seq;
481
+ }
482
+
476
483
  var params = {
477
484
  $table: $xetable,
478
485
  seq: seq,
@@ -484,7 +491,8 @@ var _default = (0, _vue.defineComponent)({
484
491
  rowIndex: rowIndex,
485
492
  $rowIndex: $rowIndex,
486
493
  _rowIndex: _rowIndex
487
- };
494
+ }; // 处理新增状态
495
+
488
496
  var isNewRow = false;
489
497
 
490
498
  if (editConfig) {
@@ -546,7 +554,7 @@ var _default = (0, _vue.defineComponent)({
546
554
  } // 如果是树形表格
547
555
 
548
556
 
549
- if (treeConfig && !scrollYLoad && treeExpandeds.length) {
557
+ if (treeConfig && !scrollYLoad && !transform && treeExpandeds.length) {
550
558
  var rowChildren = row[treeOpts.children];
551
559
 
552
560
  if (rowChildren && rowChildren.length && $xetable.findRowIndexOf(treeExpandeds, row) > -1) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_util=require("./util"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var l,t=1,o=arguments.length;t<o;t++)for(var r in l=arguments[t])Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);return e}).apply(this,arguments)},__spreadArray=function(e,l){for(var t=0,o=l.length,r=e.length;t<o;t++,r++)e[r]=l[t];return e},renderType="body",lineOffsetSizes={mini:3,small:2,medium:1},_default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup:function(_){function i(){if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0}function s(e,l){var t=e[u.value.children],o=1;if(re.isTreeExpandByRow(e))for(var r=0;r<t.length;r++)o+=s(t[r],l);return o}function oe(e,l,t){var o=t.column,r=ae.treeConfig,a=u.value,n=o.slots,o=o.treeNode;return n&&n.line?re.callSlot(n.line,t):r&&o&&a.line?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:(r=l,l=(o=t).$rowIndex,t=1,l&&(t=s(r[l-1],o)),ne.rowHeight*t-(l?1:12-i())+"px"),left:e*a.indent+(e?2-i():0)+16+"px"}})])]:[]}function q(d,v,p){var f=ae.stripe,h=ae.rowKey,x=ae.highlightHoverRow,g=ae.rowClassName,_=ae.rowStyle,m=ae.showOverflow,y=ae.editConfig,w=ae.treeConfig,b=ne.hasFixedColumn,T=ne.treeExpandeds,S=ne.scrollYLoad,C=ne.editStore,L=ne.rowExpandeds,O=ne.expandColumn,R=ne.selectRow,E=ie.fullDataRowIdData,H=de.value,I=t.value,M=u.value,D=se.value,$=pe.value,k=[];return v.forEach(function(t,o){var e={},r=re.getVTRowIndex(t),a=re.getRowIndex(t);($.isHover||x)&&(e.onMouseenter=function(e){fe()||re.triggerHoverEvent(e,{row:t,rowIndex:a})},e.onMouseleave=function(){fe()||re.clearHoverRow()});var l,n=(0,_util.getRowid)(re,t),i=E[n],s=i?i.level:0,u=i?i.seq:-1,c={$table:re,seq:u,rowid:n,fixed:d,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:r},i=!1;y&&(i=-1<re.findRowIndexOf(C.insertList,t)),k.push((0,_vue.h)("tr",__assign({class:["vxe-body--row",{"row--stripe":f&&(re.getVTRowIndex(t)+1)%2==0,"is--new":i,"row--new":i&&(D.showStatus||D.showInsertStatus),"row--radio":I.highlight&&R===t,"row--checked":H.highlight&&re.isCheckedByCheckboxRow(t)},g?_xeUtils.default.isFunction(g)?g(c):g:""],rowid:n,style:_?_xeUtils.default.isFunction(_)?_(c):_:null,key:h||w?n:o},e),p.map(function(e,l){return Y(u,n,d,s,t,a,o,r,e,l,p,v)}))),O&&L.length&&-1<re.findRowIndexOf(L,t)&&(i=void 0,w&&(i={paddingLeft:s*M.indent+30+"px"}),l=O.showOverflow,c=_xeUtils.default.isUndefined(l)||_xeUtils.default.isNull(l)?m:l,l={$table:re,seq:u,column:O,fixed:d,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:r},k.push((0,_vue.h)("tr",__assign({class:"vxe-body--expanded-row",key:"expand_"+n,style:_?_xeUtils.default.isFunction(_)?_(l):_:null},e),[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":d&&!b,"col--ellipsis":c}],colspan:p.length},[(0,_vue.h)("div",{class:"vxe-body--expanded-cell",style:i},[O.renderData(l)])])]))),!w||S||!T.length||(l=t[M.children])&&l.length&&-1<re.findRowIndexOf(T,t)&&k.push.apply(k,q(d,l,p))}),k}function m(e,l,t){(l||t)&&(l&&((0,_util.removeScrollListener)(l),l.scrollTop=e),t&&((0,_util.removeScrollListener)(t),t.scrollTop=e),clearTimeout(r),r=setTimeout(function(){(0,_util.restoreScrollListener)(l),(0,_util.restoreScrollListener)(t)},300))}function o(e){var l=_.fixedType,t=ae.highlightHoverRow,o=ne.scrollXLoad,r=ne.scrollYLoad,a=ie.elemStore,n=ie.lastScrollTop,i=ie.lastScrollLeft,s=pe.value,u=b.value,c=T.value,d=S.value,v=C.value,p=L.value,f=O.value,h=I.value,x=u?u.$el:null,g=d?d.$el:null,u=c.$el,d=v?v.$el:null,c=p?p.$el:null,v=a["main-body-ySpace"],p=a["main-body-xSpace"],a=v?v.clientHeight:0,v=p?p.clientWidth:0,p=h.scrollTop,i=(h=u.scrollLeft)!==i,n=p!==n;ie.lastScrollTop=p,ie.lastScrollLeft=h,ie.lastScrollTime=Date.now(),(s.isHover||t)&&re.clearHoverRow(),d&&"left"===l?(p=d.scrollTop,m(p,u,c)):c&&"right"===l?(p=c.scrollTop,m(p,u,d)):(i&&(x&&(x.scrollLeft=u.scrollLeft),g&&(g.scrollLeft=u.scrollLeft)),(d||c)&&(re.checkScrolling(),n&&m(p,d,c))),o&&i&&re.triggerScrollXEvent(e),r&&n&&re.triggerScrollYEvent(e),i&&f&&f.reactData.visible&&f.updatePlacement(),re.dispatchEvent("scroll",{type:renderType,fixed:l,scrollTop:p,scrollLeft:h,bodyHeight:a,bodyWidth:v,isX:i,isY:n},e)}function g(e){var l=e.deltaY,t=e.deltaX,o=ae.highlightHoverRow,r=ne.scrollYLoad,a=ie.lastScrollTop,n=ie.lastScrollLeft,i=pe.value,s=T.value,u=I.value,c=s.$el,s=_dom.browse.firefox?40*l:l,l=_dom.browse.firefox?40*t:t;((t=s<0)?u.scrollTop<=0:u.scrollTop>=u.scrollHeight-u.clientHeight)||(u=u.scrollTop+s,n=(l=c.scrollLeft+l)!==n,(a=u!==a)&&(e.preventDefault(),ie.lastScrollTop=u,ie.lastScrollLeft=l,ie.lastScrollTime=Date.now(),(i.isHover||o)&&re.clearHoverRow(),d(e,t,s,n,a),r&&re.triggerScrollYEvent(e)))}var r,f,re=(0,_vue.inject)("$xetable",{}),l=(0,_vue.inject)("xesize",null),y=re.xID,ae=re.props,w=re.context,ne=re.reactData,ie=re.internalData,e=re.getRefMaps(),b=e.refTableHeader,T=e.refTableBody,S=e.refTableFooter,C=e.refTableLeftBody,L=e.refTableRightBody,O=e.refValidTooltip,e=re.getComputeMaps(),se=e.computeEditOpts,R=e.computeMouseOpts,ue=e.computeSYOpts,E=e.computeEmptyOpts,H=e.computeKeyboardOpts,ce=e.computeTooltipOpts,t=e.computeRadioOpts,u=e.computeTreeOpts,de=e.computeCheckboxOpts,ve=e.computeValidOpts,pe=e.computeRowOpts,I=(0,_vue.ref)(),M=(0,_vue.ref)(),D=(0,_vue.ref)(),$=(0,_vue.ref)(),k=(0,_vue.ref)(),U=(0,_vue.ref)(),B=(0,_vue.ref)(),fe=function(){var e=ae.delayHover,l=ie.lastScrollTime;return ie._isResize||l&&Date.now()<l+e},Y=function(e,l,t,o,r,a,n,i,s,u,c,d){var v,p=ae.columnKey,f=ae.height,h=ae.showOverflow,x=ae.cellClassName,g=ae.cellStyle,_=ae.align,m=ae.spanMethod,y=ae.mouseConfig,w=ae.editConfig,b=ae.editRules,T=ae.tooltipConfig,S=ne.tableData,C=ne.overflowX,L=ne.scrollYLoad,O=ne.currentColumn,R=ne.mergeList,E=ne.editStore,H=ne.validStore,I=ne.isAllOverflow,M=ie.afterFullData,D=ve.value,$=de.value,k=se.value,q=ce.value,U=pe.value,B=ue.value,Y=s.type,A=s.cellRender,X=s.editRender,j=s.align,N=s.showOverflow,V=s.className,F=s.treeNode,W=E.actived,P=B.rHeight,z=U.height,K=q.showAll,G=re.getColumnIndex(s),E=re.getVTColumnIndex(s),B=(0,_utils.isEnableConf)(X),U=t?s.fixed!==t:s.fixed&&C,q=_xeUtils.default.isUndefined(N)||_xeUtils.default.isNull(N)?h:N,C="ellipsis"===q,J="title"===q,Q=!0===q||"tooltip"===q,N=J||Q||C,q={},j=j||_,_=H.row===r&&H.column===s,f=b&&D.showMessage&&("default"===D.message?f||1<S.length:"inline"===D.message),D={colid:s.id},Z={$table:re,seq:e,rowid:l,row:r,rowIndex:a,$rowIndex:n,_rowIndex:i,column:s,columnIndex:G,$columnIndex:u,_columnIndex:E,fixed:t,type:renderType,isHidden:U,level:o,visibleData:M,data:S,items:d};if(L&&!N&&(C=N=!0),(J||Q||K||T)&&(q.onMouseenter=function(e){fe()||(J?(0,_dom.updateCellTitle)(e.currentTarget,s):(Q||K)&&re.triggerBodyTooltipEvent(e,Z),re.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},Z),e))}),(Q||K||T)&&(q.onMouseleave=function(e){fe()||((Q||K)&&re.handleTargetLeaveEvent(e),re.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},Z),e))}),($.range||y)&&(q.onMousedown=function(e){re.triggerCellMousedownEvent(e,Z)}),q.onClick=function(e){re.triggerCellClickEvent(e,Z)},q.onDblclick=function(e){re.triggerCellDblclickEvent(e,Z)},R.length){var ee=(0,_util.mergeBodyMethod)(R,i,E);if(ee){var le=ee.rowspan,te=ee.colspan;if(!le||!te)return null;1<le&&(D.rowspan=le),1<te&&(D.colspan=te)}}else if(m){ee=m(Z)||{},m=ee.rowspan,le=void 0===m?1:m,ee=ee.colspan,te=void 0===ee?1:ee;if(!le||!te)return null;1<le&&(D.rowspan=le),1<te&&(D.colspan=te)}!(U=U&&R&&(1<D.colspan||1<D.rowspan)?!1:U)&&w&&(X||A)&&(k.showStatus||k.showUpdateStatus)&&(v=re.isUpdateByRow(r,s.property));A=[];return U&&h&&I?A.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":J,"c--tooltip":Q,"c--ellipsis":C}],style:{maxHeight:N&&(P||z)?(P||z)+"px":""}})):(A.push.apply(A,__spreadArray(__spreadArray([],oe(o,d,Z)),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":J,"c--tooltip":Q,"c--ellipsis":C}],style:{maxHeight:N&&(P||z)?(P||z)+"px":""},title:J?re.getCellLabel(r,s):null},s.renderCell(Z))])),f&&_&&A.push((0,_vue.h)("div",{class:"vxe-cell--valid",style:H.rule&&H.rule.maxWidth?{width:H.rule.maxWidth+"px"}:null},[(0,_vue.h)("span",{class:"vxe-cell--valid-msg"},H.content)]))),(0,_vue.h)("td",__assign(__assign(__assign({class:["vxe-body--column",s.id,((H={})["col--"+j]=j,H["col--"+Y]=Y,H["col--last"]=u===c.length-1,H["col--tree-node"]=F,H["col--edit"]=B,H["col--ellipsis"]=N,H["fixed--hidden"]=U,H["col--dirty"]=v,H["col--actived"]=w&&B&&W.row===r&&(W.column===s||"row"===k.mode),H["col--valid-error"]=_,H["col--current"]=O===s,H),(0,_util.getPropClass)(V,Z),(0,_util.getPropClass)(x,Z)],key:p?s.id:u},D),{style:Object.assign({height:N&&(P||z)?(P||z)+"px":""},g?_xeUtils.default.isFunction(g)?g(Z):g:null)}),q),A)},h=0,x=0,A=0,X=!1,d=function(a,n,e,i,s){var l=ie.elemStore,t=T.value,o=C.value,r=L.value,u=o?o.$el:null,c=r?r.$el:null,d=t.$el,t=l["main-body-ySpace"],l=l["main-body-xSpace"],v=t?t.clientHeight:0,p=l?l.clientWidth:0,l=X===n?Math.max(0,h-A):0;X=n,h=Math.abs(n?e-l:e+l),A=x=0,clearTimeout(f),function e(){var l,t,o,r;A<h&&(l=_.fixedType,x=Math.max(5,Math.floor(1.5*x)),h<(A+=x)&&(x-=A-h),r=d.scrollTop,t=d.clientHeight,o=d.scrollHeight,r=r+x*(n?-1:1),d.scrollTop=r,u&&(u.scrollTop=r),c&&(c.scrollTop=r),(n?r<o-t:0<=r)&&(f=setTimeout(e,10)),re.dispatchEvent("scroll",{type:renderType,fixed:l,scrollTop:d.scrollTop,scrollLeft:d.scrollLeft,bodyHeight:v,bodyWidth:p,isX:i,isY:s},a))}()};(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){var e=_.fixedType,l=ie.elemStore,t=(e||"main")+"-body-",e=I.value;l[t+"wrapper"]=I.value,l[t+"table"]=M.value,l[t+"colgroup"]=D.value,l[t+"list"]=$.value,l[t+"xSpace"]=k.value,l[t+"ySpace"]=U.value,l[t+"emptyBlock"]=B.value,e.onscroll=o,e._onscroll=o})}),(0,_vue.onBeforeUnmount)(function(){var e=I.value;clearTimeout(f),e._onscroll=null,e.onscroll=null});return function(){var e=_.fixedColumn,l=_.fixedType,t=_.tableColumn,o=ae.keyboardConfig,r=ae.showOverflow,a=ae.spanMethod,n=ae.mouseConfig,i=ne.tableData,s=ne.mergeList,u=ne.scrollYLoad,c=ne.isAllOverflow,d=ie.visibleColumn,v=w.slots,p=ue.value,f=E.value,h=H.value,x=R.value;return l&&(t=!(u||r&&c)||s.length||a||o&&h.isMerge?d:e),f=v.empty?re.callSlot(v.empty,{$table:re}):(v=(v=f.name?_vXETable.VXETable.renderer.get(f.name):null)?v.renderEmpty:null)?v(f,{$table:re}):ae.emptyText||_conf.default.i18n("vxe.table.emptyText"),(0,_vue.h)("div",__assign({ref:I,class:["vxe-table--body-wrapper",l?"fixed-"+l+"--wrapper":"body--wrapper"],xid:y},u&&"wheel"===p.mode?{onWheel:g}:{}),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:k,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:U,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:M,class:"vxe-table--body",xid:y,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:D},t.map(function(e,l){return(0,_vue.h)("col",{name:e.id,key:l})})),(0,_vue.h)("tbody",{ref:$},q(l,i,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),n&&x.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},x.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown:function(e){re.triggerCellExtendMousedownEvent(e,{$table:re,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"})]):null,l?null:(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:B},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},f)])])}}});exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_util=require("./util"),_dom=require("../../tools/dom"),_utils=require("../../tools/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var l,t=1,o=arguments.length;t<o;t++)for(var r in l=arguments[t])Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);return e}).apply(this,arguments)},__spreadArray=function(e,l){for(var t=0,o=l.length,r=e.length;t<o;t++,r++)e[r]=l[t];return e},renderType="body",lineOffsetSizes={mini:3,small:2,medium:1},_default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup:function(_){function i(){if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0}function s(e,l){var t=e[u.value.children],o=1;if(re.isTreeExpandByRow(e))for(var r=0;r<t.length;r++)o+=s(t[r],l);return o}function oe(e,l,t){var o=t.column,r=ae.treeConfig,a=u.value,n=o.slots,o=o.treeNode;return n&&n.line?re.callSlot(n.line,t):r&&o&&a.line?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:(r=l,l=(o=t).$rowIndex,t=1,l&&(t=s(r[l-1],o)),ne.rowHeight*t-(l?1:12-i())+"px"),left:e*a.indent+(e?2-i():0)+16+"px"}})])]:[]}function U(d,v,p){var f=ae.stripe,h=ae.rowKey,x=ae.highlightHoverRow,g=ae.rowClassName,_=ae.rowStyle,m=ae.showOverflow,y=ae.editConfig,w=ae.treeConfig,b=ne.hasFixedColumn,T=ne.treeExpandeds,S=ne.scrollYLoad,C=ne.editStore,L=ne.rowExpandeds,O=ne.expandColumn,R=ne.selectRow,E=ie.fullDataRowIdData,H=de.value,I=t.value,M=u.value,D=se.value,$=pe.value,k=M.transform,q=[];return v.forEach(function(t,o){var e={},r=re.getVTRowIndex(t),a=re.getRowIndex(t);($.isHover||x)&&(e.onMouseenter=function(e){fe()||re.triggerHoverEvent(e,{row:t,rowIndex:a})},e.onMouseleave=function(){fe()||re.clearHoverRow()});var n=(0,_util.getRowid)(re,t),l=E[n],i=0,s=-1;l&&(i=l.level,s=l.seq);var u,c={$table:re,seq:s,rowid:n,fixed:d,type:renderType,level:i,row:t,rowIndex:a,$rowIndex:o,_rowIndex:r},l=!1;y&&(l=-1<re.findRowIndexOf(C.insertList,t)),q.push((0,_vue.h)("tr",__assign({class:["vxe-body--row",{"row--stripe":f&&(re.getVTRowIndex(t)+1)%2==0,"is--new":l,"row--new":l&&(D.showStatus||D.showInsertStatus),"row--radio":I.highlight&&R===t,"row--checked":H.highlight&&re.isCheckedByCheckboxRow(t)},g?_xeUtils.default.isFunction(g)?g(c):g:""],rowid:n,style:_?_xeUtils.default.isFunction(_)?_(c):_:null,key:h||w?n:o},e),p.map(function(e,l){return Y(s,n,d,i,t,a,o,r,e,l,p,v)}))),O&&L.length&&-1<re.findRowIndexOf(L,t)&&(l=void 0,w&&(l={paddingLeft:i*M.indent+30+"px"}),u=O.showOverflow,c=_xeUtils.default.isUndefined(u)||_xeUtils.default.isNull(u)?m:u,u={$table:re,seq:s,column:O,fixed:d,type:renderType,level:i,row:t,rowIndex:a,$rowIndex:o,_rowIndex:r},q.push((0,_vue.h)("tr",__assign({class:"vxe-body--expanded-row",key:"expand_"+n,style:_?_xeUtils.default.isFunction(_)?_(u):_:null},e),[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":d&&!b,"col--ellipsis":c}],colspan:p.length},[(0,_vue.h)("div",{class:"vxe-body--expanded-cell",style:l},[O.renderData(u)])])]))),!w||S||k||!T.length||(u=t[M.children])&&u.length&&-1<re.findRowIndexOf(T,t)&&q.push.apply(q,U(d,u,p))}),q}function m(e,l,t){(l||t)&&(l&&((0,_util.removeScrollListener)(l),l.scrollTop=e),t&&((0,_util.removeScrollListener)(t),t.scrollTop=e),clearTimeout(r),r=setTimeout(function(){(0,_util.restoreScrollListener)(l),(0,_util.restoreScrollListener)(t)},300))}function o(e){var l=_.fixedType,t=ae.highlightHoverRow,o=ne.scrollXLoad,r=ne.scrollYLoad,a=ie.elemStore,n=ie.lastScrollTop,i=ie.lastScrollLeft,s=pe.value,u=b.value,c=T.value,d=S.value,v=C.value,p=L.value,f=O.value,h=I.value,x=u?u.$el:null,g=d?d.$el:null,u=c.$el,d=v?v.$el:null,c=p?p.$el:null,v=a["main-body-ySpace"],p=a["main-body-xSpace"],a=v?v.clientHeight:0,v=p?p.clientWidth:0,p=h.scrollTop,i=(h=u.scrollLeft)!==i,n=p!==n;ie.lastScrollTop=p,ie.lastScrollLeft=h,ie.lastScrollTime=Date.now(),(s.isHover||t)&&re.clearHoverRow(),d&&"left"===l?(p=d.scrollTop,m(p,u,c)):c&&"right"===l?(p=c.scrollTop,m(p,u,d)):(i&&(x&&(x.scrollLeft=u.scrollLeft),g&&(g.scrollLeft=u.scrollLeft)),(d||c)&&(re.checkScrolling(),n&&m(p,d,c))),o&&i&&re.triggerScrollXEvent(e),r&&n&&re.triggerScrollYEvent(e),i&&f&&f.reactData.visible&&f.updatePlacement(),re.dispatchEvent("scroll",{type:renderType,fixed:l,scrollTop:p,scrollLeft:h,bodyHeight:a,bodyWidth:v,isX:i,isY:n},e)}function g(e){var l=e.deltaY,t=e.deltaX,o=ae.highlightHoverRow,r=ne.scrollYLoad,a=ie.lastScrollTop,n=ie.lastScrollLeft,i=pe.value,s=T.value,u=I.value,c=s.$el,s=_dom.browse.firefox?40*l:l,l=_dom.browse.firefox?40*t:t;((t=s<0)?u.scrollTop<=0:u.scrollTop>=u.scrollHeight-u.clientHeight)||(u=u.scrollTop+s,n=(l=c.scrollLeft+l)!==n,(a=u!==a)&&(e.preventDefault(),ie.lastScrollTop=u,ie.lastScrollLeft=l,ie.lastScrollTime=Date.now(),(i.isHover||o)&&re.clearHoverRow(),d(e,t,s,n,a),r&&re.triggerScrollYEvent(e)))}var r,f,re=(0,_vue.inject)("$xetable",{}),l=(0,_vue.inject)("xesize",null),y=re.xID,ae=re.props,w=re.context,ne=re.reactData,ie=re.internalData,e=re.getRefMaps(),b=e.refTableHeader,T=e.refTableBody,S=e.refTableFooter,C=e.refTableLeftBody,L=e.refTableRightBody,O=e.refValidTooltip,e=re.getComputeMaps(),se=e.computeEditOpts,R=e.computeMouseOpts,ue=e.computeSYOpts,E=e.computeEmptyOpts,H=e.computeKeyboardOpts,ce=e.computeTooltipOpts,t=e.computeRadioOpts,u=e.computeTreeOpts,de=e.computeCheckboxOpts,ve=e.computeValidOpts,pe=e.computeRowOpts,I=(0,_vue.ref)(),M=(0,_vue.ref)(),D=(0,_vue.ref)(),$=(0,_vue.ref)(),k=(0,_vue.ref)(),q=(0,_vue.ref)(),B=(0,_vue.ref)(),fe=function(){var e=ae.delayHover,l=ie.lastScrollTime;return ie._isResize||l&&Date.now()<l+e},Y=function(e,l,t,o,r,a,n,i,s,u,c,d){var v,p=ae.columnKey,f=ae.height,h=ae.showOverflow,x=ae.cellClassName,g=ae.cellStyle,_=ae.align,m=ae.spanMethod,y=ae.mouseConfig,w=ae.editConfig,b=ae.editRules,T=ae.tooltipConfig,S=ne.tableData,C=ne.overflowX,L=ne.scrollYLoad,O=ne.currentColumn,R=ne.mergeList,E=ne.editStore,H=ne.validStore,I=ne.isAllOverflow,M=ie.afterFullData,D=ve.value,$=de.value,k=se.value,q=ce.value,U=pe.value,B=ue.value,Y=s.type,A=s.cellRender,X=s.editRender,j=s.align,N=s.showOverflow,V=s.className,F=s.treeNode,W=E.actived,P=B.rHeight,z=U.height,K=q.showAll,G=re.getColumnIndex(s),E=re.getVTColumnIndex(s),B=(0,_utils.isEnableConf)(X),U=t?s.fixed!==t:s.fixed&&C,q=_xeUtils.default.isUndefined(N)||_xeUtils.default.isNull(N)?h:N,C="ellipsis"===q,J="title"===q,Q=!0===q||"tooltip"===q,N=J||Q||C,q={},j=j||_,_=H.row===r&&H.column===s,f=b&&D.showMessage&&("default"===D.message?f||1<S.length:"inline"===D.message),D={colid:s.id},Z={$table:re,seq:e,rowid:l,row:r,rowIndex:a,$rowIndex:n,_rowIndex:i,column:s,columnIndex:G,$columnIndex:u,_columnIndex:E,fixed:t,type:renderType,isHidden:U,level:o,visibleData:M,data:S,items:d};if(L&&!N&&(C=N=!0),(J||Q||K||T)&&(q.onMouseenter=function(e){fe()||(J?(0,_dom.updateCellTitle)(e.currentTarget,s):(Q||K)&&re.triggerBodyTooltipEvent(e,Z),re.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},Z),e))}),(Q||K||T)&&(q.onMouseleave=function(e){fe()||((Q||K)&&re.handleTargetLeaveEvent(e),re.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},Z),e))}),($.range||y)&&(q.onMousedown=function(e){re.triggerCellMousedownEvent(e,Z)}),q.onClick=function(e){re.triggerCellClickEvent(e,Z)},q.onDblclick=function(e){re.triggerCellDblclickEvent(e,Z)},R.length){var ee=(0,_util.mergeBodyMethod)(R,i,E);if(ee){var le=ee.rowspan,te=ee.colspan;if(!le||!te)return null;1<le&&(D.rowspan=le),1<te&&(D.colspan=te)}}else if(m){ee=m(Z)||{},m=ee.rowspan,le=void 0===m?1:m,ee=ee.colspan,te=void 0===ee?1:ee;if(!le||!te)return null;1<le&&(D.rowspan=le),1<te&&(D.colspan=te)}!(U=U&&R&&(1<D.colspan||1<D.rowspan)?!1:U)&&w&&(X||A)&&(k.showStatus||k.showUpdateStatus)&&(v=re.isUpdateByRow(r,s.property));A=[];return U&&h&&I?A.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":J,"c--tooltip":Q,"c--ellipsis":C}],style:{maxHeight:N&&(P||z)?(P||z)+"px":""}})):(A.push.apply(A,__spreadArray(__spreadArray([],oe(o,d,Z)),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":J,"c--tooltip":Q,"c--ellipsis":C}],style:{maxHeight:N&&(P||z)?(P||z)+"px":""},title:J?re.getCellLabel(r,s):null},s.renderCell(Z))])),f&&_&&A.push((0,_vue.h)("div",{class:"vxe-cell--valid",style:H.rule&&H.rule.maxWidth?{width:H.rule.maxWidth+"px"}:null},[(0,_vue.h)("span",{class:"vxe-cell--valid-msg"},H.content)]))),(0,_vue.h)("td",__assign(__assign(__assign({class:["vxe-body--column",s.id,((H={})["col--"+j]=j,H["col--"+Y]=Y,H["col--last"]=u===c.length-1,H["col--tree-node"]=F,H["col--edit"]=B,H["col--ellipsis"]=N,H["fixed--hidden"]=U,H["col--dirty"]=v,H["col--actived"]=w&&B&&W.row===r&&(W.column===s||"row"===k.mode),H["col--valid-error"]=_,H["col--current"]=O===s,H),(0,_util.getPropClass)(V,Z),(0,_util.getPropClass)(x,Z)],key:p?s.id:u},D),{style:Object.assign({height:N&&(P||z)?(P||z)+"px":""},g?_xeUtils.default.isFunction(g)?g(Z):g:null)}),q),A)},h=0,x=0,A=0,X=!1,d=function(a,n,e,i,s){var l=ie.elemStore,t=T.value,o=C.value,r=L.value,u=o?o.$el:null,c=r?r.$el:null,d=t.$el,t=l["main-body-ySpace"],l=l["main-body-xSpace"],v=t?t.clientHeight:0,p=l?l.clientWidth:0,l=X===n?Math.max(0,h-A):0;X=n,h=Math.abs(n?e-l:e+l),A=x=0,clearTimeout(f),function e(){var l,t,o,r;A<h&&(l=_.fixedType,x=Math.max(5,Math.floor(1.5*x)),h<(A+=x)&&(x-=A-h),r=d.scrollTop,t=d.clientHeight,o=d.scrollHeight,r=r+x*(n?-1:1),d.scrollTop=r,u&&(u.scrollTop=r),c&&(c.scrollTop=r),(n?r<o-t:0<=r)&&(f=setTimeout(e,10)),re.dispatchEvent("scroll",{type:renderType,fixed:l,scrollTop:d.scrollTop,scrollLeft:d.scrollLeft,bodyHeight:v,bodyWidth:p,isX:i,isY:s},a))}()};(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){var e=_.fixedType,l=ie.elemStore,t=(e||"main")+"-body-",e=I.value;l[t+"wrapper"]=I.value,l[t+"table"]=M.value,l[t+"colgroup"]=D.value,l[t+"list"]=$.value,l[t+"xSpace"]=k.value,l[t+"ySpace"]=q.value,l[t+"emptyBlock"]=B.value,e.onscroll=o,e._onscroll=o})}),(0,_vue.onBeforeUnmount)(function(){var e=I.value;clearTimeout(f),e._onscroll=null,e.onscroll=null});return function(){var e=_.fixedColumn,l=_.fixedType,t=_.tableColumn,o=ae.keyboardConfig,r=ae.showOverflow,a=ae.spanMethod,n=ae.mouseConfig,i=ne.tableData,s=ne.mergeList,u=ne.scrollYLoad,c=ne.isAllOverflow,d=ie.visibleColumn,v=w.slots,p=ue.value,f=E.value,h=H.value,x=R.value;return l&&(t=!(u||r&&c)||s.length||a||o&&h.isMerge?d:e),f=v.empty?re.callSlot(v.empty,{$table:re}):(v=(v=f.name?_vXETable.VXETable.renderer.get(f.name):null)?v.renderEmpty:null)?v(f,{$table:re}):ae.emptyText||_conf.default.i18n("vxe.table.emptyText"),(0,_vue.h)("div",__assign({ref:I,class:["vxe-table--body-wrapper",l?"fixed-"+l+"--wrapper":"body--wrapper"],xid:y},u&&"wheel"===p.mode?{onWheel:g}:{}),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:k,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:q,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:M,class:"vxe-table--body",xid:y,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:D},t.map(function(e,l){return(0,_vue.h)("col",{name:e.id,key:l})})),(0,_vue.h)("tbody",{ref:$},U(l,i,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),n&&x.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},x.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown:function(e){re.triggerCellExtendMousedownEvent(e,{$table:re,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"})]):null,l?null:(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:B},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},f)])])}}});exports.default=_default;
@@ -299,10 +299,12 @@ var _default = (0, _vue.defineComponent)({
299
299
  rowExpandedReserveRowMap: {},
300
300
  // 树结构数据,已展开保留的行
301
301
  treeExpandedReserveRowMap: {},
302
- // 完整数据、条件处理后
302
+ // 列表完整数据、条件处理后
303
303
  tableFullData: [],
304
- treeFullData: [],
305
304
  afterFullData: [],
305
+ // 树结构完整数据、条件处理后
306
+ tableFullTreeData: [],
307
+ afterTreeFullData: [],
306
308
  tableSynchData: [],
307
309
  tableSourceData: [],
308
310
  // 收集的列配置(带分组)
@@ -1312,11 +1314,11 @@ var _default = (0, _vue.defineComponent)({
1312
1314
  var afterFullData = internalData.afterFullData,
1313
1315
  fullDataRowIdData = internalData.fullDataRowIdData,
1314
1316
  fullAllDataRowIdData = internalData.fullAllDataRowIdData;
1315
- var treeFullData = internalData.treeFullData;
1317
+ var afterTreeFullData = internalData.afterTreeFullData;
1316
1318
  var treeOpts = computeTreeOpts.value;
1317
1319
 
1318
1320
  if (treeConfig) {
1319
- _xeUtils.default.eachTree(treeFullData, function (row, index, items, path) {
1321
+ _xeUtils.default.eachTree(afterTreeFullData, function (row, index, items, path) {
1320
1322
  var rowid = (0, _util.getRowid)($xetable, row);
1321
1323
  var allrest = fullAllDataRowIdData[rowid];
1322
1324
  var fullrest = fullDataRowIdData[rowid];
@@ -1326,10 +1328,12 @@ var _default = (0, _vue.defineComponent)({
1326
1328
 
1327
1329
  if (allrest) {
1328
1330
  allrest.seq = seq;
1331
+ allrest._index = index;
1329
1332
  }
1330
1333
 
1331
1334
  if (fullrest) {
1332
1335
  fullrest.seq = seq;
1336
+ fullrest._index = index;
1333
1337
  } else {
1334
1338
  fullAllDataRowIdData[rowid] = {
1335
1339
  row: row,
@@ -1354,7 +1358,9 @@ var _default = (0, _vue.defineComponent)({
1354
1358
  level: 0
1355
1359
  };
1356
1360
  }
1357
- }, treeOpts);
1361
+ }, {
1362
+ children: treeOpts.mapChildren
1363
+ });
1358
1364
  } else {
1359
1365
  afterFullData.forEach(function (row, index) {
1360
1366
  var rowid = (0, _util.getRowid)($xetable, row);
@@ -1364,6 +1370,7 @@ var _default = (0, _vue.defineComponent)({
1364
1370
 
1365
1371
  if (allrest) {
1366
1372
  allrest.seq = seq;
1373
+ allrest._index = index;
1367
1374
  }
1368
1375
 
1369
1376
  if (fullrest) {
@@ -1403,15 +1410,20 @@ var _default = (0, _vue.defineComponent)({
1403
1410
 
1404
1411
 
1405
1412
  var updateAfterFullData = function updateAfterFullData() {
1413
+ var treeConfig = props.treeConfig;
1406
1414
  var tableFullColumn = internalData.tableFullColumn,
1407
- tableFullData = internalData.tableFullData;
1415
+ tableFullData = internalData.tableFullData,
1416
+ tableFullTreeData = internalData.tableFullTreeData;
1408
1417
  var filterOpts = computeFilterOpts.value;
1409
1418
  var sortOpts = computeSortOpts.value;
1419
+ var treeOpts = computeTreeOpts.value;
1420
+ var transform = treeOpts.transform;
1410
1421
  var allRemoteFilter = filterOpts.remote,
1411
1422
  allFilterMethod = filterOpts.filterMethod;
1412
1423
  var allRemoteSort = sortOpts.remote,
1413
1424
  allSortMethod = sortOpts.sortMethod;
1414
- var tableData = tableFullData.slice(0);
1425
+ var tableData = [];
1426
+ var tableTree = []; // 处理列
1415
1427
 
1416
1428
  if (!allRemoteFilter || !allRemoteSort) {
1417
1429
  var filterColumns_1 = [];
@@ -1451,7 +1463,7 @@ var _default = (0, _vue.defineComponent)({
1451
1463
  // 支持单列、多列、组合筛选
1452
1464
 
1453
1465
  if (!allRemoteFilter && filterColumns_1.length) {
1454
- tableData = tableData.filter(function (row) {
1466
+ var handleFilter = function handleFilter(row) {
1455
1467
  return filterColumns_1.every(function (_a) {
1456
1468
  var column = _a.column,
1457
1469
  valueList = _a.valueList,
@@ -1508,32 +1520,78 @@ var _default = (0, _vue.defineComponent)({
1508
1520
 
1509
1521
  return valueList.indexOf(_xeUtils.default.get(row, column.property)) > -1;
1510
1522
  });
1511
- });
1512
- } // 处理排序
1523
+ };
1524
+
1525
+ if (treeConfig && transform) {
1526
+ // 筛选虚拟树
1527
+ tableTree = _xeUtils.default.searchTree(tableFullTreeData, handleFilter, __assign(__assign({}, treeOpts), {
1528
+ original: true
1529
+ }));
1530
+ tableData = tableTree;
1531
+ } else {
1532
+ tableData = treeConfig ? tableFullTreeData.filter(handleFilter) : tableFullData.filter(handleFilter);
1533
+ tableTree = tableData;
1534
+ }
1535
+ } else {
1536
+ if (treeConfig && transform) {
1537
+ // 还原虚拟树
1538
+ tableTree = _xeUtils.default.searchTree(tableFullTreeData, function () {
1539
+ return true;
1540
+ }, __assign(__assign({}, treeOpts), {
1541
+ original: true
1542
+ }));
1543
+ tableData = tableTree;
1544
+ } else {
1545
+ tableData = treeConfig ? tableFullTreeData.slice(0) : tableFullData.slice(0);
1546
+ tableTree = tableData;
1547
+ }
1548
+ } // 处理排序(不能用于树形结构)
1513
1549
  // 支持单列、多列、组合排序
1514
1550
 
1515
1551
 
1516
1552
  if (!allRemoteSort && orderColumns_1.length) {
1517
- if (allSortMethod) {
1518
- var sortRests = allSortMethod({
1519
- data: tableData,
1520
- sortList: orderColumns_1,
1521
- $table: $xetable
1522
- });
1523
- tableData = _xeUtils.default.isArray(sortRests) ? sortRests : tableData;
1553
+ if (treeConfig && transform) {
1554
+ // 虚拟树和列表一样,只能排序根级节点
1555
+ if (allSortMethod) {
1556
+ var sortRests = allSortMethod({
1557
+ data: tableTree,
1558
+ sortList: orderColumns_1,
1559
+ $table: $xetable
1560
+ });
1561
+ tableTree = _xeUtils.default.isArray(sortRests) ? sortRests : tableTree;
1562
+ } else {
1563
+ tableTree = _xeUtils.default.orderBy(tableTree, orderColumns_1.map(function (_a) {
1564
+ var column = _a.column,
1565
+ order = _a.order;
1566
+ return [getOrderField(column), order];
1567
+ }));
1568
+ }
1569
+
1570
+ tableData = tableTree;
1524
1571
  } else {
1525
- tableData = _xeUtils.default.orderBy(tableData, orderColumns_1.map(function (_a) {
1526
- var column = _a.column,
1527
- order = _a.order;
1528
- return [getOrderField(column), order];
1529
- }));
1572
+ if (allSortMethod) {
1573
+ var sortRests = allSortMethod({
1574
+ data: tableData,
1575
+ sortList: orderColumns_1,
1576
+ $table: $xetable
1577
+ });
1578
+ tableData = _xeUtils.default.isArray(sortRests) ? sortRests : tableData;
1579
+ } else {
1580
+ tableData = _xeUtils.default.orderBy(tableData, orderColumns_1.map(function (_a) {
1581
+ var column = _a.column,
1582
+ order = _a.order;
1583
+ return [getOrderField(column), order];
1584
+ }));
1585
+ }
1586
+
1587
+ tableTree = tableData;
1530
1588
  }
1531
1589
  }
1532
1590
  }
1533
1591
 
1534
1592
  internalData.afterFullData = tableData;
1593
+ internalData.afterTreeFullData = tableTree;
1535
1594
  updateAfterDataIndex();
1536
- return tableData;
1537
1595
  };
1538
1596
 
1539
1597
  var updateStyle = function updateStyle() {
@@ -1666,6 +1724,8 @@ var _default = (0, _vue.defineComponent)({
1666
1724
  }
1667
1725
 
1668
1726
  childWidth_1 += item.renderWidth;
1727
+ }, {
1728
+ children: 'children'
1669
1729
  });
1670
1730
  }
1671
1731
 
@@ -2110,7 +2170,8 @@ var _default = (0, _vue.defineComponent)({
2110
2170
  var fullAllDataRowIdData = internalData.fullAllDataRowIdData;
2111
2171
  var treeOpts = computeTreeOpts.value;
2112
2172
  var checkboxOpts = computeCheckboxOpts.value;
2113
- var loadMethod = treeOpts.loadMethod;
2173
+ var transform = treeOpts.transform,
2174
+ loadMethod = treeOpts.loadMethod;
2114
2175
  var checkStrictly = checkboxOpts.checkStrictly;
2115
2176
  var rest = fullAllDataRowIdData[(0, _util.getRowid)($xetable, row)];
2116
2177
  return new Promise(function (resolve) {
@@ -2142,12 +2203,24 @@ var _default = (0, _vue.defineComponent)({
2142
2203
  if (!checkStrictly && tableMethods.isCheckedByCheckboxRow(row)) {
2143
2204
  tableMethods.setCheckboxRow(childRows, true);
2144
2205
  }
2206
+
2207
+ (0, _vue.nextTick)().then(function () {
2208
+ if (transform) {
2209
+ return tablePrivateMethods.handleTableData();
2210
+ }
2211
+ }).then(function () {
2212
+ return tableMethods.recalculate();
2213
+ }).then(function () {
2214
+ return resolve();
2215
+ });
2216
+ });
2217
+ } else {
2218
+ (0, _vue.nextTick)().then(function () {
2219
+ return tableMethods.recalculate();
2220
+ }).then(function () {
2221
+ return resolve();
2145
2222
  });
2146
2223
  }
2147
-
2148
- resolve((0, _vue.nextTick)().then(function () {
2149
- return tableMethods.recalculate();
2150
- }));
2151
2224
  });
2152
2225
  } else {
2153
2226
  resolve();
@@ -2315,6 +2388,14 @@ var _default = (0, _vue.defineComponent)({
2315
2388
  (0, _utils.errLog)('vxe.error.reqProp', ['tree-config.children']);
2316
2389
  }
2317
2390
 
2391
+ if (!treeOpts.mapChildren) {
2392
+ (0, _utils.errLog)('vxe.error.reqProp', ['tree-config.mapChildren']);
2393
+ }
2394
+
2395
+ if (treeOpts.children === treeOpts.mapChildren) {
2396
+ (0, _utils.errLog)('vxe.error.errConflicts', ['tree-config.children', 'tree-config.mapChildren']);
2397
+ }
2398
+
2318
2399
  fullData.forEach(function (row) {
2319
2400
  if (row[treeOpts.children] && row[treeOpts.children].length) {
2320
2401
  (0, _utils.warnLog)('vxe.error.errConflicts', ['tree-config.transform', "row." + treeOpts.children]);
@@ -2325,7 +2406,8 @@ var _default = (0, _vue.defineComponent)({
2325
2406
  treeData = _xeUtils.default.toArrayTree(fullData, {
2326
2407
  key: treeOpts.rowField,
2327
2408
  parentKey: treeOpts.parentField,
2328
- children: treeOpts.children
2409
+ children: treeOpts.children,
2410
+ mapChildren: treeOpts.mapChildren
2329
2411
  });
2330
2412
  fullData = treeData.slice(0);
2331
2413
  } else {
@@ -2343,7 +2425,7 @@ var _default = (0, _vue.defineComponent)({
2343
2425
  reactData.scrollYLoad = sYLoad; // 全量数据
2344
2426
 
2345
2427
  internalData.tableFullData = fullData;
2346
- internalData.treeFullData = treeData; // 缓存数据
2428
+ internalData.tableFullTreeData = treeData; // 缓存数据
2347
2429
 
2348
2430
  tablePrivateMethods.cacheRowMap(true); // 原始数据
2349
2431
 
@@ -2675,33 +2757,6 @@ var _default = (0, _vue.defineComponent)({
2675
2757
  reactData.scrollYLoad = scrollYLoad;
2676
2758
  return scrollYLoad;
2677
2759
  };
2678
-
2679
- var updateVirtualTreeData = function updateVirtualTreeData() {
2680
- var oldScrollYLoad = reactData.scrollYLoad,
2681
- treeExpandeds = reactData.treeExpandeds;
2682
- var treeFullData = internalData.treeFullData;
2683
- var treeOpts = computeTreeOpts.value;
2684
- var fullData = [];
2685
- var expandMaps = new Map();
2686
-
2687
- _xeUtils.default.eachTree(treeFullData, function (row, index, items, path, parent) {
2688
- if (!parent || expandMaps.has(parent) && $xetable.findRowIndexOf(treeExpandeds, parent) > -1) {
2689
- expandMaps.set(row, 1);
2690
- fullData.push(row);
2691
- }
2692
- }, treeOpts);
2693
-
2694
- var scrollYLoad = updateScrollYStatus(fullData);
2695
- internalData.tableFullData = scrollYLoad ? fullData : treeFullData;
2696
-
2697
- if (scrollYLoad || oldScrollYLoad !== scrollYLoad) {
2698
- return tablePrivateMethods.handleTableData(true).then(function () {
2699
- return tableMethods.recalculate();
2700
- });
2701
- }
2702
-
2703
- return (0, _vue.nextTick)();
2704
- };
2705
2760
  /**
2706
2761
  * 展开与收起树节点
2707
2762
  * @param rows
@@ -2792,7 +2847,7 @@ var _default = (0, _vue.defineComponent)({
2792
2847
 
2793
2848
  var handleVirtualTreeExpand = function handleVirtualTreeExpand(rows, expanded) {
2794
2849
  return handleBaseTreeExpand(rows, expanded).then(function () {
2795
- return updateVirtualTreeData();
2850
+ return tablePrivateMethods.handleTableData();
2796
2851
  }).then(function () {
2797
2852
  return tableMethods.recalculate();
2798
2853
  });
@@ -2887,7 +2942,7 @@ var _default = (0, _vue.defineComponent)({
2887
2942
  },
2888
2943
 
2889
2944
  /**
2890
- * 同步 data 数据
2945
+ * 同步 data 数据(即将废弃)
2891
2946
  * 如果用了该方法,那么组件将不再记录增删改的状态,只能自行实现对应逻辑
2892
2947
  * 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
2893
2948
  */
@@ -3002,7 +3057,9 @@ var _default = (0, _vue.defineComponent)({
3002
3057
  fullDataRowIdData = internalData.fullDataRowIdData,
3003
3058
  fullAllDataRowIdData = internalData.fullAllDataRowIdData;
3004
3059
  var treeOpts = computeTreeOpts.value;
3005
- var children = treeOpts.children;
3060
+ var transform = treeOpts.transform,
3061
+ children = treeOpts.children,
3062
+ mapChildren = treeOpts.mapChildren;
3006
3063
  var parentRest = fullAllDataRowIdData[(0, _util.getRowid)($xetable, row)];
3007
3064
  var parentLevel = parentRest ? parentRest.level : 0;
3008
3065
  return tableMethods.createData(childRecords).then(function (rows) {
@@ -3036,6 +3093,11 @@ var _default = (0, _vue.defineComponent)({
3036
3093
  }, treeOpts);
3037
3094
 
3038
3095
  row[children] = rows;
3096
+
3097
+ if (transform) {
3098
+ row[mapChildren] = rows;
3099
+ }
3100
+
3039
3101
  return rows;
3040
3102
  });
3041
3103
  },
@@ -4515,7 +4577,7 @@ var _default = (0, _vue.defineComponent)({
4515
4577
  return handleAsyncTreeExpandChilds(row);
4516
4578
  }).then(function () {
4517
4579
  if (transform) {
4518
- return updateVirtualTreeData();
4580
+ return tablePrivateMethods.handleTableData();
4519
4581
  }
4520
4582
  }).then(function () {
4521
4583
  return tableMethods.recalculate();
@@ -4605,19 +4667,19 @@ var _default = (0, _vue.defineComponent)({
4605
4667
  */
4606
4668
  clearTreeExpand: function clearTreeExpand() {
4607
4669
  var treeExpandeds = reactData.treeExpandeds;
4608
- var treeFullData = internalData.treeFullData;
4670
+ var tableFullTreeData = internalData.tableFullTreeData;
4609
4671
  var treeOpts = computeTreeOpts.value;
4610
4672
  var reserve = treeOpts.reserve;
4611
4673
  var isExists = treeExpandeds.length;
4612
4674
  reactData.treeExpandeds = [];
4613
4675
 
4614
4676
  if (reserve) {
4615
- _xeUtils.default.eachTree(treeFullData, function (row) {
4677
+ _xeUtils.default.eachTree(tableFullTreeData, function (row) {
4616
4678
  return handleTreeExpandReserve(row, false);
4617
4679
  }, treeOpts);
4618
4680
  }
4619
4681
 
4620
- return updateVirtualTreeData().then(function () {
4682
+ return tablePrivateMethods.handleTableData().then(function () {
4621
4683
  if (isExists) {
4622
4684
  tableMethods.recalculate();
4623
4685
  }
@@ -5588,11 +5650,35 @@ var _default = (0, _vue.defineComponent)({
5588
5650
  return record;
5589
5651
  },
5590
5652
  handleTableData: function handleTableData(force) {
5653
+ var treeConfig = props.treeConfig;
5591
5654
  var scrollYLoad = reactData.scrollYLoad;
5592
5655
  var scrollYStore = internalData.scrollYStore,
5593
5656
  fullDataRowIdData = internalData.fullDataRowIdData;
5594
- var fullData = force ? updateAfterFullData() : internalData.afterFullData;
5595
- var tableData = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
5657
+ var treeExpandeds = reactData.treeExpandeds;
5658
+ var treeOpts = computeTreeOpts.value;
5659
+ var fullList = []; // 是否进行数据处理
5660
+
5661
+ if (force) {
5662
+ updateAfterFullData();
5663
+ } // 如果为虚拟树,将树结构拍平
5664
+
5665
+
5666
+ if (treeConfig && treeOpts.transform) {
5667
+ var expandMaps_1 = new Map();
5668
+
5669
+ _xeUtils.default.eachTree(internalData.afterTreeFullData, function (row, index, items, path, parent) {
5670
+ if (!parent || expandMaps_1.has(parent) && $xetable.findRowIndexOf(treeExpandeds, parent) > -1) {
5671
+ expandMaps_1.set(row, 1);
5672
+ fullList.push(row);
5673
+ }
5674
+ }, {
5675
+ children: treeOpts.mapChildren
5676
+ });
5677
+ } else {
5678
+ fullList = internalData.afterFullData;
5679
+ }
5680
+
5681
+ var tableData = scrollYLoad ? fullList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullList.slice(0);
5596
5682
  tableData.forEach(function (row, $index) {
5597
5683
  var rowid = (0, _util.getRowid)($xetable, row);
5598
5684
  var rest = fullDataRowIdData[rowid];
@@ -5615,7 +5701,7 @@ var _default = (0, _vue.defineComponent)({
5615
5701
  var fullDataRowIdData = internalData.fullDataRowIdData,
5616
5702
  fullAllDataRowIdData = internalData.fullAllDataRowIdData,
5617
5703
  tableFullData = internalData.tableFullData,
5618
- treeFullData = internalData.treeFullData;
5704
+ tableFullTreeData = internalData.tableFullTreeData;
5619
5705
  var rowkey = (0, _util.getRowkey)($xetable);
5620
5706
  var isLazy = treeConfig && treeOpts.lazy;
5621
5707
 
@@ -5660,7 +5746,7 @@ var _default = (0, _vue.defineComponent)({
5660
5746
  fullAllDataRowIdData = internalData.fullAllDataRowIdData = {};
5661
5747
 
5662
5748
  if (treeConfig) {
5663
- _xeUtils.default.eachTree(treeFullData, handleCache, treeOpts);
5749
+ _xeUtils.default.eachTree(tableFullTreeData, handleCache, treeOpts);
5664
5750
  } else {
5665
5751
  tableFullData.forEach(handleCache);
5666
5752
  }
@@ -6635,7 +6721,6 @@ var _default = (0, _vue.defineComponent)({
6635
6721
  tablePrivateMethods.handleTableData();
6636
6722
  tablePrivateMethods.updateScrollYSpace();
6637
6723
  },
6638
- updateVirtualTreeData: updateVirtualTreeData,
6639
6724
 
6640
6725
  /**
6641
6726
  * 处理固定列的显示状态
@@ -6812,7 +6897,7 @@ var _default = (0, _vue.defineComponent)({
6812
6897
 
6813
6898
  return false;
6814
6899
  }
6815
- };
6900
+ }; // 检测对应模块是否安装
6816
6901
 
6817
6902
  if (process.env.NODE_ENV === 'development') {
6818
6903
  'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(function (name) {