vxe-table 4.8.7 → 4.8.9

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 (35) hide show
  1. package/es/style.css +1 -1
  2. package/es/style.min.css +1 -1
  3. package/es/table/src/body.js +4 -8
  4. package/es/table/src/cell.js +7 -3
  5. package/es/table/src/footer.js +2 -4
  6. package/es/table/src/table.js +191 -72
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/index.umd.js +204 -85
  10. package/lib/index.umd.min.js +1 -1
  11. package/lib/style.css +1 -1
  12. package/lib/style.min.css +1 -1
  13. package/lib/table/src/body.js +4 -8
  14. package/lib/table/src/body.min.js +1 -1
  15. package/lib/table/src/cell.js +10 -3
  16. package/lib/table/src/cell.min.js +1 -1
  17. package/lib/table/src/footer.js +2 -4
  18. package/lib/table/src/footer.min.js +1 -1
  19. package/lib/table/src/table.js +188 -70
  20. package/lib/table/src/table.min.js +1 -1
  21. package/lib/ui/index.js +1 -1
  22. package/lib/ui/index.min.js +1 -1
  23. package/lib/ui/src/log.js +1 -1
  24. package/lib/ui/src/log.min.js +1 -1
  25. package/package.json +2 -2
  26. package/packages/table/src/body.ts +4 -8
  27. package/packages/table/src/cell.ts +9 -5
  28. package/packages/table/src/footer.ts +2 -4
  29. package/packages/table/src/table.ts +189 -70
  30. /package/es/{iconfont.1731032736115.ttf → iconfont.1731144197614.ttf} +0 -0
  31. /package/es/{iconfont.1731032736115.woff → iconfont.1731144197614.woff} +0 -0
  32. /package/es/{iconfont.1731032736115.woff2 → iconfont.1731144197614.woff2} +0 -0
  33. /package/lib/{iconfont.1731032736115.ttf → iconfont.1731144197614.ttf} +0 -0
  34. /package/lib/{iconfont.1731032736115.woff → iconfont.1731144197614.woff} +0 -0
  35. /package/lib/{iconfont.1731032736115.woff2 → iconfont.1731144197614.woff2} +0 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){const{$table:r,column:e}=l,t=e.titlePrefix||e.titleHelp;return t?[(0,_vue.h)("i",{class:["vxe-cell-title-prefix-icon",t.icon||getIcon().TABLE_TITLE_PREFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}})]:[]}function renderTitleSuffixIcon(l){const{$table:r,column:e}=l,t=e.titleSuffix;return t?[(0,_vue.h)("i",{class:["vxe-cell-title-suffix-icon",t.icon||getIcon().TABLE_TITLE_SUFFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}})]:[]}function renderCellDragIcon(l){const r=l["$table"];var e=r.getComputeMaps()["computeDragOpts"],{rowIcon:e,rowDisabledMethod:t}=e.value;const n=t&&t(l);return(0,_vue.h)("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":n}],onMousedown(e){n||r.handleCellDragMousedownEvent(e,l)},onMouseup:r.handleCellDragMouseupEvent},[(0,_vue.h)("i",{class:e||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t}=e,t=t["dragSort"],l=_xeUtils.default.isArray(l)?l:[l],{computeRowOpts:r,computeDragOpts:n}=r.getComputeMaps(),r=r.value,{showRowIcon:n,rowVisibleMethod:a}=n.value;return t&&r.drag&&n&&(!a||a(e))&&l.unshift(renderCellDragIcon(e)),l}function renderTitleContent(l,e){const{$table:r,column:t}=l,{props:n,reactData:a}=r;var o=r.getComputeMaps()["computeTooltipOpts"],d=n["showHeaderOverflow"],{type:s,showHeaderOverflow:i}=t;const c=o.value.showAll;o=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?d:i;const u="title"===o,C=!0===o||"tooltip"===o;d={};return(u||C||c)&&(d.onMouseenter=e=>{a._isResize||(u?(0,_dom.updateCellTitle)(e.currentTarget,t):(C||c)&&r.triggerHeaderTooltipEvent(e,l))}),(C||c)&&(d.onMouseleave=e=>{a._isResize||(C||c)&&r.handleTargetLeaveEvent(e)}),["html"===s&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},d)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},d),(0,_vn.getSlotVNs)(e))]}function formatFooterLabel(e,l){var r,t;return _xeUtils.default.isFunction(e)?e(l):(t=(t=(r=_xeUtils.default.isArray(e))?formats.get(e[0]):formats.get(e))?t.tableFooterCellFormatMethod:null)?r?t(l,...e.slice(1)):t(l):""}function getFooterContent(e){var{$table:l,column:r,_columnIndex:t,items:n,row:a}=e,{slots:o,editRender:d,cellRender:s,footerFormatter:i}=r,d=d||s,s=o?o.footer:null;if(s)return l.callSlot(s,e);if(d){o=renderer.get(d.name);if(o){l=o.renderTableFooter||o.renderFooter;if(l)return(0,_vn.getSlotVNs)(l(d,e))}}let c="";return _xeUtils.default.isArray(n)?c=n[t]:c=_xeUtils.default.get(a,r.field),[i?formatFooterLabel(i,{itemValue:c,column:r,row:a,items:n,_columnIndex:t}):(0,_utils.formatText)(c,1)]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}const Cell=exports.Cell={createColumn(e,l){var{type:r,sortable:t,filters:n,editRender:a,treeNode:o}=l,d=e["props"],s=d["editConfig"],{computeEditOpts:d,computeCheckboxOpts:i}=e.getComputeMaps(),c=i.value,u=d.value,C={renderHeader:Cell.renderDefaultHeader,renderCell:o?Cell.renderTreeCell:Cell.renderDefaultCell,renderFooter:Cell.renderDefaultFooter};switch(r){case"seq":C.renderHeader=Cell.renderSeqHeader,C.renderCell=o?Cell.renderTreeIndexCell:Cell.renderSeqCell;break;case"radio":C.renderHeader=Cell.renderRadioHeader,C.renderCell=o?Cell.renderTreeRadioCell:Cell.renderRadioCell;break;case"checkbox":C.renderHeader=Cell.renderCheckboxHeader,C.renderCell=c.checkField?o?Cell.renderTreeSelectionCellByProp:Cell.renderCheckboxCellByProp:o?Cell.renderTreeSelectionCell:Cell.renderCheckboxCell;break;case"expand":C.renderCell=Cell.renderExpandCell,C.renderData=Cell.renderExpandData;break;case"html":C.renderCell=o?Cell.renderTreeHTMLCell:Cell.renderHTMLCell,n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader);break;default:s&&a?(C.renderHeader=Cell.renderEditHeader,C.renderCell="cell"===u.mode?o?Cell.renderTreeCellEdit:Cell.renderCellEdit:o?Cell.renderTreeRowEdit:Cell.renderRowEdit):n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader)}return(0,_util.createColumn)(e,l,C)},renderHeaderTitle(e){var{$table:l,column:r}=e,{slots:t,editRender:n,cellRender:a}=r,n=n||a,a=t?t.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){t=renderer.get(n.name);if(t){l=t.renderTableHeader||t.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(r.getTitle(),1))},renderDefaultHeader(e){return renderTitlePrefixIcon(e).concat(Cell.renderHeaderTitle(e)).concat(renderTitleSuffixIcon(e))},renderDefaultCell(e){var{$table:l,row:r,column:t}=e,{slots:n,editRender:a,cellRender:o}=t,o=a||o,n=n?n.default:null;if(n)return renderCellBaseVNs(e,l.callSlot(n,e));if(o){n=renderer.get(o.name);if(n){var d=n.renderTableCell||n.renderCell,n=n.renderTableDefault||n.renderDefault,d=a?d:n;if(d)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(d(o,Object.assign({$type:a?"edit":"cell"},e))))}}n=l.getCellLabel(r,t),d=a?a.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[a&&(0,_utils.eqEmptyValue)(n)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(d),1)):(0,_vue.h)("span",(0,_utils.formatText)(n,1))])])},renderTreeCell(e){return Cell.renderTreeIcon(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return[(0,_vue.h)("span",{class:"vxe-cell--item"},getFooterContent(e))]},renderTreeIcon(l,e){const{$table:r,isHidden:t}=l;var{reactData:n,internalData:a}=r,o=r.getComputeMaps()["computeTreeOpts"],{treeExpandedMaps:n,treeExpandLazyLoadedMaps:d}=n,a=a["fullAllDataRowIdData"],o=o.value,{row:s,column:i,level:c}=l,i=i["slots"],{indent:u,lazy:C,trigger:v,iconLoaded:p,showIcon:g,iconOpen:_,iconClose:h}=o,b=o.children||o.childrenField,o=o.hasChild||o.hasChildField,b=s[b],b=b&&b.length,i=i?i.icon:null;let E=!1,x=!1,f=!1,T=!1;var m={};return i?r.callSlot(i,l):(t||(i=(0,_util.getRowid)(r,s),x=!!n[i],C&&(n=a[i],f=!!d[i],E=s[o],T=!!n.treeLoaded)),v&&"default"!==v||(m.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":x}],style:{paddingLeft:c*u+"px"}},[g&&(!C||T?b:E)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},m),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",f?p||getIcon().TABLE_TREE_LOADED:x?_||getIcon().TABLE_TREE_OPEN:h||getIcon().TABLE_TREE_CLOSE]})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])])},renderSeqHeader(e){var{$table:l,column:r}=e,t=r["slots"],t=t?t.header:null;return renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))},renderSeqCell(e){var{$table:l,column:r}=e,t=l["props"],t=t["treeConfig"],n=l.getComputeMaps()["computeSeqOpts"],n=n.value,r=r["slots"],r=r?r.default:null;return r?renderCellBaseVNs(e,l.callSlot(r,e)):(l=e["seq"],r=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(r?r(e):t?l:(n.startIndex||0)+l,1))]))},renderTreeIndexCell(e){return Cell.renderTreeIcon(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:r}=e,t=r["slots"],n=t?t.header:null,t=t?t.title:null;return renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))])},renderRadioCell(l){const{$table:r,column:e,isHidden:t}=l;var n=r["reactData"],a=r.getComputeMaps()["computeRadioOpts"],n=n["selectRadioRow"],o=e["slots"],{labelField:a,checkMethod:d,visibleMethod:s}=a.value,i=l["row"],c=o?o.default:null,o=o?o.radio:null,n=r.eqRow(i,n);const u=!s||s({row:i});let C=!!d,v;t||(v={onClick(e){!C&&u&&r.triggerRadioRowEvent(e,l)}},d&&(C=!d({row:i})));s=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:u});return o?renderCellBaseVNs(l,r.callSlot(o,s)):(d=[],u&&d.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(c||a)&&d.push((0,_vue.h)("span",{class:"vxe-radio--label"},c?r.callSlot(c,s):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},v),d)]))},renderTreeRadioCell(e){return Cell.renderTreeIcon(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){const{$table:l,column:r,isHidden:t}=e;var n=l["reactData"],{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();const{isAllSelected:d,isIndeterminate:s}=n,i=a.value;var n=r["slots"],a=n?n.header:null,n=n?n.title:null,o=o.value,c=r.getTitle();let u;t||(u={onClick(e){i||l.triggerCheckAllEvent(e,!d)}});e=Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s});return a?renderTitleContent(e,l.callSlot(a,e)):(o.checkStrictly?o.showHeader:!1!==o.showHeader)?renderTitleContent(e,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":d,"is--disabled":i,"is--indeterminate":s}],title:getI18n("vxe.table.allTitle")},u),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:d?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||c?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,e):c)]:[]))]):renderTitleContent(e,[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,e):c)])},renderCheckboxCell(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],{selectCheckboxMaps:o,treeIndeterminateMaps:d}=o,s=r.getComputeMaps()["computeCheckboxOpts"],{labelField:s,checkMethod:i,visibleMethod:c}=s.value,u=t["slots"],C=u?u.default:null,u=u?u.checkbox:null;let v=!1,p=!1;const g=!c||c({row:e});let _=!!i,h;n||(c=(0,_util.getRowid)(r,e),p=!!o[c],h={onClick(e){!_&&g&&r.triggerCheckRowEvent(e,l,!p)}},i&&(_=!i({row:e})),a&&(v=!!d[c]));o=Object.assign(Object.assign({},l),{checked:p,disabled:_,visible:g,indeterminate:v});return u?renderCellBaseVNs(l,r.callSlot(u,o)):(i=[],g&&i.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",v?getIcon().TABLE_CHECKBOX_INDETERMINATE:p?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(C||s)&&i.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},C?r.callSlot(C,o):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":p,"is--disabled":_,"is--indeterminate":v,"is--hidden":!g}]},h),i)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],o=o["treeIndeterminateMaps"],d=r.getComputeMaps()["computeCheckboxOpts"],d=d.value,{labelField:s,checkField:i,checkMethod:c,visibleMethod:u}=d,d=d.indeterminateField||d.halfField,C=t["slots"],v=C?C.default:null,C=C?C.checkbox:null;let p=!1,g=!1;const _=!u||u({row:e});let h=!!c,b;n||(u=(0,_util.getRowid)(r,e),g=_xeUtils.default.get(e,i),b={onClick(e){!h&&_&&r.triggerCheckRowEvent(e,l,!g)}},c&&(h=!c({row:e})),a&&(p=!!o[u]));i=Object.assign(Object.assign({},l),{checked:g,disabled:h,visible:_,indeterminate:p});return C?renderCellBaseVNs(l,r.callSlot(C,i)):(c=[],_&&(c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),v||s)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?r.callSlot(v,i):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":h,"is--indeterminate":d&&!g?e[d]:p,"is--hidden":!_}]},b),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){const{$table:r,isHidden:e,row:t,column:n}=l;var a=r["reactData"],{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=a,d=r.getComputeMaps()["computeExpandOpts"],{lazy:d,labelField:s,iconLoaded:i,showIcon:c,iconOpen:u,iconClose:C,visibleMethod:v}=d.value,p=n["slots"],g=p?p.default:null,p=p?p.icon:null;let _=!1,h=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),_=!!a[p],d&&(h=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":_}],onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",h?i||getIcon().TABLE_EXPAND_LOADED:_?u||getIcon().TABLE_EXPAND_OPEN:C||getIcon().TABLE_EXPAND_CLOSE]})]),g||s?(0,_vue.h)("span",{class:"vxe-table--expand-label"},g?r.callSlot(g,l):_xeUtils.default.get(t,s)):renderEmptyElement(r)]))},renderExpandData(e){var{$table:l,column:r}=e,{slots:r,contentRender:t}=r,r=r?r.content:null;if(r)return l.callSlot(r,e);if(t){l=renderer.get(t.name);if(l){r=l.renderTableExpand||l.renderExpand;if(r)return(0,_vn.getSlotVNs)(r(t,e))}}return[]},renderHTMLCell(e){var{$table:l,column:r}=e,r=r["slots"],r=r?r.default:null;return renderCellBaseVNs(e,r?l.callSlot(r,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderTreeHTMLCell(e){return Cell.renderTreeIcon(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return Cell.renderDefaultHeader(e).concat(Cell.renderSortIcon(e)).concat(Cell.renderFilterIcon(e))},renderSortHeader(e){return Cell.renderDefaultHeader(e).concat(Cell.renderSortIcon(e))},renderSortIcon(e){const{$table:l,column:r}=e;var e=l.getComputeMaps()["computeSortOpts"],{showIcon:e,iconLayout:t,iconAsc:n,iconDesc:a}=e.value,o=r["order"];return e?[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${t}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",n||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===o}],title:getI18n("vxe.table.sortAsc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",a||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===o}],title:getI18n("vxe.table.sortDesc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}})])]:[]},renderFilterHeader(e){return Cell.renderDefaultHeader(e).concat(Cell.renderFilterIcon(e))},renderFilterIcon(l){const{$table:r,column:e,hasFilter:t}=l;var n=r["reactData"],n=n["filterStore"],a=r.getComputeMaps()["computeFilterOpts"],{showIcon:a,iconNone:o,iconMatch:d}=a.value;return a?[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}]},[(0,_vue.h)("i",{class:["vxe-filter--btn",t?d||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter"),onClick(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}})])]:[]},renderEditHeader(e){var{$table:l,column:r}=e,t=l["props"],l=l.getComputeMaps()["computeEditOpts"],{editConfig:t,editRules:n}=t,l=l.value,{sortable:a,filters:o,editRender:d}=r;let s=!1;return n&&(n=_xeUtils.default.get(n,r.field))&&(s=n.some(e=>e.required)),((0,_utils.isEnableConf)(t)?[s&&l.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):null,(0,_utils.isEnableConf)(d)&&l.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",l.icon||getIcon().TABLE_EDIT]}):null]:[]).concat(Cell.renderDefaultHeader(e)).concat(a?Cell.renderSortIcon(e):[]).concat(o?Cell.renderFilterIcon(e):[])},renderRowEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row)},renderTreeRowEdit(e){return Cell.renderTreeIcon(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row&&l.column===e.column)},renderTreeCellEdit(e){return Cell.renderTreeIcon(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:r,column:t}=e,{slots:t,editRender:n,formatter:a}=t,o=t?t.default:null,t=t?t.edit:null,d=renderer.get(n.name),d=d?d.renderTableEdit||d.renderEdit:null,s=Object.assign({$type:"",isEdit:l},e);return l?(s.$type="edit",t?r.callSlot(t,s):d?(0,_vn.getSlotVNs)(d(n,s)):[]):o?renderCellBaseVNs(e,r.callSlot(o,s)):a?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(s))]):Cell.renderDefaultCell(s)}};var _default=exports.default=Cell;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){const{$table:r,column:e}=l,t=e.titlePrefix||e.titleHelp;return t?[(0,_vue.h)("i",{class:["vxe-cell-title-prefix-icon",t.icon||getIcon().TABLE_TITLE_PREFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}})]:[]}function renderTitleSuffixIcon(l){const{$table:r,column:e}=l,t=e.titleSuffix;return t?[(0,_vue.h)("i",{class:["vxe-cell-title-suffix-icon",t.icon||getIcon().TABLE_TITLE_SUFFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}})]:[]}function renderCellDragIcon(l){const r=l["$table"];var e=r.getComputeMaps()["computeDragOpts"],{rowIcon:e,rowDisabledMethod:t}=e.value;const n=t&&t(l);return(0,_vue.h)("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":n}],onMousedown(e){n||r.handleCellDragMousedownEvent(e,l)},onMouseup:r.handleCellDragMouseupEvent},[(0,_vue.h)("i",{class:e||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t["dragSort"],a=r.props["treeConfig"],{computeRowOpts:r,computeDragOpts:o}=r.getComputeMaps(),r=r.value,{showRowIcon:o,rowVisibleMethod:d}=o.value,l=_xeUtils.default.isArray(l)?l:[l];return!(t&&r.drag&&o)||d&&!d(e)||a&&n||l.unshift(renderCellDragIcon(e)),l}function renderTitleContent(l,e){const{$table:r,column:t}=l,{props:n,reactData:a}=r;var o=r.getComputeMaps()["computeTooltipOpts"],d=n["showHeaderOverflow"],{type:s,showHeaderOverflow:i}=t;const c=o.value.showAll;o=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?d:i;const u="title"===o,C=!0===o||"tooltip"===o;d={};return(u||C||c)&&(d.onMouseenter=e=>{a._isResize||(u?(0,_dom.updateCellTitle)(e.currentTarget,t):(C||c)&&r.triggerHeaderTooltipEvent(e,l))}),(C||c)&&(d.onMouseleave=e=>{a._isResize||(C||c)&&r.handleTargetLeaveEvent(e)}),["html"===s&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},d)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},d),(0,_vn.getSlotVNs)(e))]}function formatFooterLabel(e,l){var r,t;return _xeUtils.default.isFunction(e)?e(l):(t=(t=(r=_xeUtils.default.isArray(e))?formats.get(e[0]):formats.get(e))?t.tableFooterCellFormatMethod:null)?r?t(l,...e.slice(1)):t(l):""}function getFooterContent(e){var{$table:l,column:r,_columnIndex:t,items:n,row:a}=e,{slots:o,editRender:d,cellRender:s,footerFormatter:i}=r,d=d||s,s=o?o.footer:null;if(s)return l.callSlot(s,e);if(d){o=renderer.get(d.name);if(o){l=o.renderTableFooter||o.renderFooter;if(l)return(0,_vn.getSlotVNs)(l(d,e))}}let c="";return _xeUtils.default.isArray(n)?c=n[t]:c=_xeUtils.default.get(a,r.field),[i?formatFooterLabel(i,{itemValue:c,column:r,row:a,items:n,_columnIndex:t}):(0,_utils.formatText)(c,1)]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}const Cell=exports.Cell={createColumn(e,l){var{type:r,sortable:t,filters:n,editRender:a,treeNode:o}=l,d=e["props"],s=d["editConfig"],{computeEditOpts:d,computeCheckboxOpts:i}=e.getComputeMaps(),c=i.value,u=d.value,C={renderHeader:Cell.renderDefaultHeader,renderCell:o?Cell.renderTreeCell:Cell.renderDefaultCell,renderFooter:Cell.renderDefaultFooter};switch(r){case"seq":C.renderHeader=Cell.renderSeqHeader,C.renderCell=o?Cell.renderTreeIndexCell:Cell.renderSeqCell;break;case"radio":C.renderHeader=Cell.renderRadioHeader,C.renderCell=o?Cell.renderTreeRadioCell:Cell.renderRadioCell;break;case"checkbox":C.renderHeader=Cell.renderCheckboxHeader,C.renderCell=c.checkField?o?Cell.renderTreeSelectionCellByProp:Cell.renderCheckboxCellByProp:o?Cell.renderTreeSelectionCell:Cell.renderCheckboxCell;break;case"expand":C.renderCell=Cell.renderExpandCell,C.renderData=Cell.renderExpandData;break;case"html":C.renderCell=o?Cell.renderTreeHTMLCell:Cell.renderHTMLCell,n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader);break;default:s&&a?(C.renderHeader=Cell.renderEditHeader,C.renderCell="cell"===u.mode?o?Cell.renderTreeCellEdit:Cell.renderCellEdit:o?Cell.renderTreeRowEdit:Cell.renderRowEdit):n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader)}return(0,_util.createColumn)(e,l,C)},renderHeaderTitle(e){var{$table:l,column:r}=e,{slots:t,editRender:n,cellRender:a}=r,n=n||a,a=t?t.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){t=renderer.get(n.name);if(t){l=t.renderTableHeader||t.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(r.getTitle(),1))},renderDefaultHeader(e){return renderTitlePrefixIcon(e).concat(Cell.renderHeaderTitle(e)).concat(renderTitleSuffixIcon(e))},renderDefaultCell(e){var{$table:l,row:r,column:t}=e,{slots:n,editRender:a,cellRender:o}=t,o=a||o,n=n?n.default:null;if(n)return renderCellBaseVNs(e,l.callSlot(n,e));if(o){n=renderer.get(o.name);if(n){var d=n.renderTableCell||n.renderCell,n=n.renderTableDefault||n.renderDefault,d=a?d:n;if(d)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(d(o,Object.assign({$type:a?"edit":"cell"},e))))}}n=l.getCellLabel(r,t),d=a?a.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[a&&(0,_utils.eqEmptyValue)(n)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(d),1)):(0,_vue.h)("span",(0,_utils.formatText)(n,1))])])},renderTreeCell(e){return Cell.renderTreeIcon(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return[(0,_vue.h)("span",{class:"vxe-cell--item"},getFooterContent(e))]},renderTreeIcon(l,e){const{$table:r,isHidden:t}=l;var{reactData:n,internalData:a}=r,o=r.getComputeMaps()["computeTreeOpts"],{treeExpandedMaps:n,treeExpandLazyLoadedMaps:d}=n,a=a["fullAllDataRowIdData"],o=o.value,{row:s,column:i,level:c}=l,i=i["slots"],{indent:u,lazy:C,trigger:v,iconLoaded:p,showIcon:g,iconOpen:_,iconClose:h}=o,b=o.children||o.childrenField,o=o.hasChild||o.hasChildField,b=s[b],b=b&&b.length,i=i?i.icon:null;let E=!1,x=!1,f=!1,T=!1;var m={};return i?r.callSlot(i,l):(t||(i=(0,_util.getRowid)(r,s),x=!!n[i],C&&(n=a[i],f=!!d[i],E=s[o],T=!!n.treeLoaded)),v&&"default"!==v||(m.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":x}],style:{paddingLeft:c*u+"px"}},[g&&(!C||T?b:E)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},m),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",f?p||getIcon().TABLE_TREE_LOADED:x?_||getIcon().TABLE_TREE_OPEN:h||getIcon().TABLE_TREE_CLOSE]})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])])},renderSeqHeader(e){var{$table:l,column:r}=e,t=r["slots"],t=t?t.header:null;return renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))},renderSeqCell(e){var{$table:l,column:r}=e,t=l["props"],t=t["treeConfig"],n=l.getComputeMaps()["computeSeqOpts"],n=n.value,r=r["slots"],r=r?r.default:null;return r?renderCellBaseVNs(e,l.callSlot(r,e)):(l=e["seq"],r=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(r?r(e):t?l:(n.startIndex||0)+l,1))]))},renderTreeIndexCell(e){return Cell.renderTreeIcon(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:r}=e,t=r["slots"],n=t?t.header:null,t=t?t.title:null;return renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))])},renderRadioCell(l){const{$table:r,column:e,isHidden:t}=l;var n=r["reactData"],a=r.getComputeMaps()["computeRadioOpts"],n=n["selectRadioRow"],o=e["slots"],{labelField:a,checkMethod:d,visibleMethod:s}=a.value,i=l["row"],c=o?o.default:null,o=o?o.radio:null,n=r.eqRow(i,n);const u=!s||s({row:i});let C=!!d,v;t||(v={onClick(e){!C&&u&&r.triggerRadioRowEvent(e,l)}},d&&(C=!d({row:i})));s=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:u});return o?renderCellBaseVNs(l,r.callSlot(o,s)):(d=[],u&&d.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(c||a)&&d.push((0,_vue.h)("span",{class:"vxe-radio--label"},c?r.callSlot(c,s):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},v),d)]))},renderTreeRadioCell(e){return Cell.renderTreeIcon(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){const{$table:l,column:r,isHidden:t}=e;var n=l["reactData"],{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();const{isAllSelected:d,isIndeterminate:s}=n,i=a.value;var n=r["slots"],a=n?n.header:null,n=n?n.title:null,o=o.value,c=r.getTitle();let u;t||(u={onClick(e){i||l.triggerCheckAllEvent(e,!d)}});e=Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s});return a?renderTitleContent(e,l.callSlot(a,e)):(o.checkStrictly?o.showHeader:!1!==o.showHeader)?renderTitleContent(e,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":d,"is--disabled":i,"is--indeterminate":s}],title:getI18n("vxe.table.allTitle")},u),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:d?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||c?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,e):c)]:[]))]):renderTitleContent(e,[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,e):c)])},renderCheckboxCell(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],{selectCheckboxMaps:o,treeIndeterminateMaps:d}=o,s=r.getComputeMaps()["computeCheckboxOpts"],{labelField:s,checkMethod:i,visibleMethod:c}=s.value,u=t["slots"],C=u?u.default:null,u=u?u.checkbox:null;let v=!1,p=!1;const g=!c||c({row:e});let _=!!i,h;n||(c=(0,_util.getRowid)(r,e),p=!!o[c],h={onClick(e){!_&&g&&r.triggerCheckRowEvent(e,l,!p)}},i&&(_=!i({row:e})),a&&(v=!!d[c]));o=Object.assign(Object.assign({},l),{checked:p,disabled:_,visible:g,indeterminate:v});return u?renderCellBaseVNs(l,r.callSlot(u,o)):(i=[],g&&i.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",v?getIcon().TABLE_CHECKBOX_INDETERMINATE:p?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(C||s)&&i.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},C?r.callSlot(C,o):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":p,"is--disabled":_,"is--indeterminate":v,"is--hidden":!g}]},h),i)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],o=o["treeIndeterminateMaps"],d=r.getComputeMaps()["computeCheckboxOpts"],d=d.value,{labelField:s,checkField:i,checkMethod:c,visibleMethod:u}=d,d=d.indeterminateField||d.halfField,C=t["slots"],v=C?C.default:null,C=C?C.checkbox:null;let p=!1,g=!1;const _=!u||u({row:e});let h=!!c,b;n||(u=(0,_util.getRowid)(r,e),g=_xeUtils.default.get(e,i),b={onClick(e){!h&&_&&r.triggerCheckRowEvent(e,l,!g)}},c&&(h=!c({row:e})),a&&(p=!!o[u]));i=Object.assign(Object.assign({},l),{checked:g,disabled:h,visible:_,indeterminate:p});return C?renderCellBaseVNs(l,r.callSlot(C,i)):(c=[],_&&(c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),v||s)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?r.callSlot(v,i):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":h,"is--indeterminate":d&&!g?e[d]:p,"is--hidden":!_}]},b),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){const{$table:r,isHidden:e,row:t,column:n}=l;var a=r["reactData"],{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=a,d=r.getComputeMaps()["computeExpandOpts"],{lazy:d,labelField:s,iconLoaded:i,showIcon:c,iconOpen:u,iconClose:C,visibleMethod:v}=d.value,p=n["slots"],g=p?p.default:null,p=p?p.icon:null;let _=!1,h=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),_=!!a[p],d&&(h=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":_}],onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",h?i||getIcon().TABLE_EXPAND_LOADED:_?u||getIcon().TABLE_EXPAND_OPEN:C||getIcon().TABLE_EXPAND_CLOSE]})]),g||s?(0,_vue.h)("span",{class:"vxe-table--expand-label"},g?r.callSlot(g,l):_xeUtils.default.get(t,s)):renderEmptyElement(r)]))},renderExpandData(e){var{$table:l,column:r}=e,{slots:r,contentRender:t}=r,r=r?r.content:null;if(r)return l.callSlot(r,e);if(t){l=renderer.get(t.name);if(l){r=l.renderTableExpand||l.renderExpand;if(r)return(0,_vn.getSlotVNs)(r(t,e))}}return[]},renderHTMLCell(e){var{$table:l,column:r}=e,r=r["slots"],r=r?r.default:null;return renderCellBaseVNs(e,r?l.callSlot(r,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderTreeHTMLCell(e){return Cell.renderTreeIcon(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return Cell.renderDefaultHeader(e).concat(Cell.renderSortIcon(e)).concat(Cell.renderFilterIcon(e))},renderSortHeader(e){return Cell.renderDefaultHeader(e).concat(Cell.renderSortIcon(e))},renderSortIcon(e){const{$table:l,column:r}=e;var e=l.getComputeMaps()["computeSortOpts"],{showIcon:e,iconLayout:t,iconAsc:n,iconDesc:a}=e.value,o=r["order"];return e?[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${t}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",n||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===o}],title:getI18n("vxe.table.sortAsc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",a||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===o}],title:getI18n("vxe.table.sortDesc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}})])]:[]},renderFilterHeader(e){return Cell.renderDefaultHeader(e).concat(Cell.renderFilterIcon(e))},renderFilterIcon(l){const{$table:r,column:e,hasFilter:t}=l;var n=r["reactData"],n=n["filterStore"],a=r.getComputeMaps()["computeFilterOpts"],{showIcon:a,iconNone:o,iconMatch:d}=a.value;return a?[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}]},[(0,_vue.h)("i",{class:["vxe-filter--btn",t?d||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter"),onClick(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}})])]:[]},renderEditHeader(e){var{$table:l,column:r}=e,t=l["props"],l=l.getComputeMaps()["computeEditOpts"],{editConfig:t,editRules:n}=t,l=l.value,{sortable:a,filters:o,editRender:d}=r;let s=!1;return n&&(n=_xeUtils.default.get(n,r.field))&&(s=n.some(e=>e.required)),((0,_utils.isEnableConf)(t)?[s&&l.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):null,(0,_utils.isEnableConf)(d)&&l.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",l.icon||getIcon().TABLE_EDIT]}):null]:[]).concat(Cell.renderDefaultHeader(e)).concat(a?Cell.renderSortIcon(e):[]).concat(o?Cell.renderFilterIcon(e):[])},renderRowEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row)},renderTreeRowEdit(e){return Cell.renderTreeIcon(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row&&l.column===e.column)},renderTreeCellEdit(e){return Cell.renderTreeIcon(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:r,column:t}=e,{slots:t,editRender:n,formatter:a}=t,o=t?t.default:null,t=t?t.edit:null,d=renderer.get(n.name),d=d?d.renderTableEdit||d.renderEdit:null,s=Object.assign({$type:"",isEdit:l},e);return l?(s.$type="edit",t?r.callSlot(t,s):d?(0,_vn.getSlotVNs)(d(n,s)):[]):o?renderCellBaseVNs(e,r.callSlot(o,s)):a?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(s))]):Cell.renderDefaultCell(s)}};var _default=exports.default=Cell;
@@ -105,11 +105,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
105
105
  tableReactData.lastScrollTime = Date.now();
106
106
  (0, _dom.setScrollLeft)(headerElem, scrollLeft);
107
107
  (0, _dom.setScrollLeft)(bodyElem, scrollLeft);
108
- $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
108
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
109
109
  type: renderType,
110
- fixed: fixedType,
111
- scrollTop,
112
- scrollLeft
110
+ fixed: fixedType
113
111
  });
114
112
  }
115
113
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderer=_ui.VxeUI["renderer"],renderType="footer";function mergeFooterMethod(l,o,t){for(let e=0;e<l.length;e++){var{row:r,col:n,rowspan:a,colspan:u}=l[e];if(-1<n&&-1<r&&a&&u){if(r===o&&n===t)return{rowspan:a,colspan:u};if(r<=o&&o<r+a&&n<=t&&t<n+u)return{rowspan:0,colspan:0}}}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(a){const q=(0,_vue.inject)("$xeTable",{}),{xID:n,props:u,reactData:s,internalData:i}=q,{refTableHeader:c,refTableBody:d,refScrollXHandleElem:p}=q.getRefMaps(),{computeTooltipOpts:f,computeColumnOpts:v}=q.getComputeMaps(),x=(0,_vue.ref)(),m=(0,_vue.ref)(),_=(0,_vue.ref)(),g=(0,_vue.ref)(),y=(0,_vue.ref)(),R=e=>{var l=a["fixedType"],o=c.value,t=d.value,o=o?o.$el:null,r=x.value,t=t.$el,r=r.scrollLeft,n=p.value;n?n.scrollLeft=r:(n=t.scrollTop,i.lastScrollLeft=r,s.lastScrollTime=Date.now(),(0,_dom.setScrollLeft)(o,r),(0,_dom.setScrollLeft)(t,r),q.handleScrollEvent(e,!1,!0,{type:renderType,fixed:l,scrollTop:n,scrollLeft:r}))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=a["fixedType"],l=i["elemStore"],e=`${e||"main"}-footer-`;l[e+"wrapper"]=x,l[e+"table"]=m,l[e+"colgroup"]=_,l[e+"list"]=g,l[e+"xSpace"]=y})}),(0,_vue.onUnmounted)(()=>{var e=a["fixedType"],l=i["elemStore"],e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null});return()=>{let{fixedType:b,fixedColumn:e,tableColumn:h,footerTableData:w}=a;const{footerRowClassName:l,footerCellClassName:T,footerRowStyle:o,footerCellStyle:C,footerAlign:S,footerSpanMethod:I,align:F,columnKey:$,showFooterOverflow:O}=u;var t=i["visibleColumn"];const{scrollXLoad:M,overflowX:D,scrollbarWidth:r,currentColumn:L,mergeFooterList:j}=s,A=f.value,k=v.value;return b&&(h=s.expandColumn||!M&&!O||j.length&&I?t:e),(0,_vue.h)("div",{ref:x,class:["vxe-table--footer-wrapper",b?`fixed-${b}--wrapper`:"body--wrapper"],xid:n,onScroll:R},[b?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:y,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:m,class:"vxe-table--footer",xid:n,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:_},h.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l})).concat(r?[(0,_vue.h)("col",{name:"col_gutter"})]:[])),(0,_vue.h)("tfoot",{ref:g},w.map((_,g)=>{const y=g;var e={$table:q,row:_,_rowIndex:g,$rowIndex:y,fixed:b,type:renderType};return(0,_vue.h)("tr",{class:["vxe-footer--row",l?_xeUtils.default.isFunction(l)?l(e):l:""],style:o?_xeUtils.default.isFunction(o)?o(e):o:null},h.map((l,e)=>{var{type:o,showFooterOverflow:t,footerAlign:r,align:n,footerClassName:a,editRender:u,cellRender:s}=l,u=u||s,s=u?renderer.get(u.name):null;const i=A.showAll;u=l.children&&l.children.length,u=b?l.fixed!==b&&!u:l.fixed&&D,t=_xeUtils.default.eqNull(t)?O:t,r=r||(s?s.tableFooterCellAlign:"")||S||n||(s?s.tableCellAlign:"")||F;let c="ellipsis"===t;const d="title"===t,p=!0===t||"tooltip"===t;let f=d||p||c;var n={colid:l.id},s={},t=q.getColumnIndex(l),v=q.getVTColumnIndex(l),x=v;const m={$table:q,$grid:q.xegrid,row:_,rowIndex:g,_rowIndex:g,$rowIndex:y,column:l,columnIndex:t,$columnIndex:e,_columnIndex:v,itemIndex:x,items:_,fixed:b,type:renderType,data:w};if(M&&!f&&(c=f=!0),(d||p||i)&&(s.onMouseenter=e=>{d?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||i)&&q.triggerFooterTooltipEvent(e,m)}),(p||i)&&(s.onMouseleave=e=>{(p||i)&&q.handleTargetLeaveEvent(e)}),s.onClick=e=>{q.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)},s.onDblclick=e=>{q.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)},j.length){t=mergeFooterMethod(j,g,v);if(t){var{rowspan:x,colspan:v}=t;if(!x||!v)return null;1<x&&(n.rowspan=x),1<v&&(n.colspan=v)}}else if(I){var{rowspan:t=1,colspan:x=1}=I(m)||{};if(!t||!x)return null;1<t&&(n.rowspan=t),1<x&&(n.colspan=x)}return(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-footer--column",l.id,{["col--"+r]:r,["col--"+o]:o,"col--last":e===h.length-1,"fixed--hidden":u,"col--ellipsis":f,"col--current":L===l},(0,_dom.getPropClass)(a,m),(0,_dom.getPropClass)(T,m)]},n),{style:C?_xeUtils.default.isFunction(C)?C(m):C:null}),s),{key:$||k.useKey?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":d,"c--tooltip":p,"c--ellipsis":c}]},l.renderFooter(m))])}).concat(r?[(0,_vue.h)("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])}}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderer=_ui.VxeUI["renderer"],renderType="footer";function mergeFooterMethod(l,t,o){for(let e=0;e<l.length;e++){var{row:r,col:n,rowspan:a,colspan:u}=l[e];if(-1<n&&-1<r&&a&&u){if(r===t&&n===o)return{rowspan:a,colspan:u};if(r<=t&&t<r+a&&n<=o&&o<n+u)return{rowspan:0,colspan:0}}}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(a){const q=(0,_vue.inject)("$xeTable",{}),{xID:n,props:u,reactData:i,internalData:s}=q,{refTableHeader:c,refTableBody:d,refScrollXHandleElem:p}=q.getRefMaps(),{computeTooltipOpts:f,computeColumnOpts:v}=q.getComputeMaps(),x=(0,_vue.ref)(),m=(0,_vue.ref)(),_=(0,_vue.ref)(),g=(0,_vue.ref)(),y=(0,_vue.ref)(),R=e=>{var l=a["fixedType"],t=c.value,o=d.value,t=t?t.$el:null,r=x.value,o=o.$el,r=r.scrollLeft,n=p.value;n?n.scrollLeft=r:(n=o.scrollTop,s.lastScrollLeft=r,i.lastScrollTime=Date.now(),(0,_dom.setScrollLeft)(t,r),(0,_dom.setScrollLeft)(o,r),q.handleScrollEvent(e,!1,!0,n,r,{type:renderType,fixed:l}))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=a["fixedType"],l=s["elemStore"],e=`${e||"main"}-footer-`;l[e+"wrapper"]=x,l[e+"table"]=m,l[e+"colgroup"]=_,l[e+"list"]=g,l[e+"xSpace"]=y})}),(0,_vue.onUnmounted)(()=>{var e=a["fixedType"],l=s["elemStore"],e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null});return()=>{let{fixedType:b,fixedColumn:e,tableColumn:h,footerTableData:w}=a;const{footerRowClassName:l,footerCellClassName:T,footerRowStyle:t,footerCellStyle:C,footerAlign:S,footerSpanMethod:I,align:F,columnKey:$,showFooterOverflow:O}=u;var o=s["visibleColumn"];const{scrollXLoad:M,overflowX:D,scrollbarWidth:r,currentColumn:j,mergeFooterList:A}=i,L=f.value,k=v.value;return b&&(h=i.expandColumn||!M&&!O||A.length&&I?o:e),(0,_vue.h)("div",{ref:x,class:["vxe-table--footer-wrapper",b?`fixed-${b}--wrapper`:"body--wrapper"],xid:n,onScroll:R},[b?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:y,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:m,class:"vxe-table--footer",xid:n,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:_},h.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l})).concat(r?[(0,_vue.h)("col",{name:"col_gutter"})]:[])),(0,_vue.h)("tfoot",{ref:g},w.map((_,g)=>{const y=g;var e={$table:q,row:_,_rowIndex:g,$rowIndex:y,fixed:b,type:renderType};return(0,_vue.h)("tr",{class:["vxe-footer--row",l?_xeUtils.default.isFunction(l)?l(e):l:""],style:t?_xeUtils.default.isFunction(t)?t(e):t:null},h.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:n,footerClassName:a,editRender:u,cellRender:i}=l,u=u||i,i=u?renderer.get(u.name):null;const s=L.showAll;u=l.children&&l.children.length,u=b?l.fixed!==b&&!u:l.fixed&&D,o=_xeUtils.default.eqNull(o)?O:o,r=r||(i?i.tableFooterCellAlign:"")||S||n||(i?i.tableCellAlign:"")||F;let c="ellipsis"===o;const d="title"===o,p=!0===o||"tooltip"===o;let f=d||p||c;var n={colid:l.id},i={},o=q.getColumnIndex(l),v=q.getVTColumnIndex(l),x=v;const m={$table:q,$grid:q.xegrid,row:_,rowIndex:g,_rowIndex:g,$rowIndex:y,column:l,columnIndex:o,$columnIndex:e,_columnIndex:v,itemIndex:x,items:_,fixed:b,type:renderType,data:w};if(M&&!f&&(c=f=!0),(d||p||s)&&(i.onMouseenter=e=>{d?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||s)&&q.triggerFooterTooltipEvent(e,m)}),(p||s)&&(i.onMouseleave=e=>{(p||s)&&q.handleTargetLeaveEvent(e)}),i.onClick=e=>{q.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)},i.onDblclick=e=>{q.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)},A.length){o=mergeFooterMethod(A,g,v);if(o){var{rowspan:x,colspan:v}=o;if(!x||!v)return null;1<x&&(n.rowspan=x),1<v&&(n.colspan=v)}}else if(I){var{rowspan:o=1,colspan:x=1}=I(m)||{};if(!o||!x)return null;1<o&&(n.rowspan=o),1<x&&(n.colspan=x)}return(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":e===h.length-1,"fixed--hidden":u,"col--ellipsis":f,"col--current":j===l},(0,_dom.getPropClass)(a,m),(0,_dom.getPropClass)(T,m)]},n),{style:C?_xeUtils.default.isFunction(C)?C(m):C:null}),i),{key:$||k.useKey?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":d,"c--tooltip":p,"c--ellipsis":c}]},l.renderFooter(m))])}).concat(r?[(0,_vue.h)("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])}}});
@@ -3360,11 +3360,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3360
3360
  reactData.lastScrollTime = Date.now();
3361
3361
  handleSyncScrollX(scrollLeft);
3362
3362
  $xeTable.triggerScrollXEvent(evnt);
3363
- $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
3363
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
3364
3364
  type: 'table',
3365
- fixed: '',
3366
- scrollTop,
3367
- scrollLeft
3365
+ fixed: ''
3368
3366
  });
3369
3367
  };
3370
3368
  const debounceScrollYCalculate = _xeUtils.default.debounce(function () {
@@ -3396,11 +3394,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
3396
3394
  reactData.lastScrollTime = Date.now();
3397
3395
  handleSyncScrollY(scrollTop);
3398
3396
  $xeTable.triggerScrollYEvent(evnt);
3399
- $xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
3397
+ $xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
3400
3398
  type: 'table',
3401
- fixed: '',
3402
- scrollTop,
3403
- scrollLeft
3399
+ fixed: ''
3404
3400
  });
3405
3401
  };
3406
3402
  let keyCtxTimeout;
@@ -4151,25 +4147,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
4151
4147
  * 设置为固定列
4152
4148
  */
4153
4149
  setColumnFixed(fieldOrColumn, fixed) {
4154
- const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4155
- const targetColumn = (0, _util.getRootColumn)($xeTable, column);
4156
- const isMaxFixedColumn = computeIsMaxFixedColumn.value;
4150
+ let status = false;
4151
+ const cols = _xeUtils.default.isArray(fieldOrColumn) ? fieldOrColumn : [fieldOrColumn];
4157
4152
  const columnOpts = computeColumnOpts.value;
4158
- if (targetColumn && targetColumn.fixed !== fixed) {
4159
- // 是否超过最大固定列数量
4160
- if (!targetColumn.fixed && isMaxFixedColumn) {
4161
- if (_ui.VxeUI.modal) {
4162
- _ui.VxeUI.modal.message({
4163
- status: 'error',
4164
- content: getI18n('vxe.table.maxFixedCol', [columnOpts.maxFixedSize])
4165
- });
4153
+ const isMaxFixedColumn = computeIsMaxFixedColumn.value;
4154
+ for (let i = 0; i < cols.length; i++) {
4155
+ const item = cols[i];
4156
+ const column = (0, _util.handleFieldOrColumn)($xeTable, item);
4157
+ const targetColumn = (0, _util.getRootColumn)($xeTable, column);
4158
+ if (targetColumn && targetColumn.fixed !== fixed) {
4159
+ // 是否超过最大固定列数量
4160
+ if (!targetColumn.fixed && isMaxFixedColumn) {
4161
+ if (_ui.VxeUI.modal) {
4162
+ _ui.VxeUI.modal.message({
4163
+ status: 'error',
4164
+ content: getI18n('vxe.table.maxFixedCol', [columnOpts.maxFixedSize])
4165
+ });
4166
+ }
4167
+ return (0, _vue.nextTick)();
4168
+ }
4169
+ _xeUtils.default.eachTree([targetColumn], column => {
4170
+ column.fixed = fixed;
4171
+ });
4172
+ tablePrivateMethods.saveCustomStore('update:fixed');
4173
+ if (!status) {
4174
+ status = true;
4166
4175
  }
4167
- return (0, _vue.nextTick)();
4168
4176
  }
4169
- _xeUtils.default.eachTree([targetColumn], column => {
4170
- column.fixed = fixed;
4171
- });
4172
- tablePrivateMethods.saveCustomStore('update:fixed');
4177
+ }
4178
+ if (status) {
4173
4179
  return tableMethods.refreshColumn();
4174
4180
  }
4175
4181
  return (0, _vue.nextTick)();
@@ -4178,13 +4184,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
4178
4184
  * 取消指定固定列
4179
4185
  */
4180
4186
  clearColumnFixed(fieldOrColumn) {
4181
- const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4182
- const targetColumn = (0, _util.getRootColumn)($xeTable, column);
4183
- if (targetColumn && targetColumn.fixed) {
4184
- _xeUtils.default.eachTree([targetColumn], column => {
4185
- column.fixed = null;
4186
- });
4187
- tablePrivateMethods.saveCustomStore('update:fixed');
4187
+ let status = false;
4188
+ const cols = _xeUtils.default.isArray(fieldOrColumn) ? fieldOrColumn : [fieldOrColumn];
4189
+ cols.forEach(item => {
4190
+ const column = (0, _util.handleFieldOrColumn)($xeTable, item);
4191
+ const targetColumn = (0, _util.getRootColumn)($xeTable, column);
4192
+ if (targetColumn && targetColumn.fixed) {
4193
+ _xeUtils.default.eachTree([targetColumn], column => {
4194
+ column.fixed = null;
4195
+ });
4196
+ tablePrivateMethods.saveCustomStore('update:fixed');
4197
+ if (!status) {
4198
+ status = true;
4199
+ }
4200
+ }
4201
+ });
4202
+ if (status) {
4188
4203
  return tableMethods.refreshColumn();
4189
4204
  }
4190
4205
  return (0, _vue.nextTick)();
@@ -4193,9 +4208,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
4193
4208
  * 隐藏指定列
4194
4209
  */
4195
4210
  hideColumn(fieldOrColumn) {
4196
- const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4197
- if (column && column.visible) {
4198
- column.visible = false;
4211
+ let status = false;
4212
+ const cols = _xeUtils.default.isArray(fieldOrColumn) ? fieldOrColumn : [fieldOrColumn];
4213
+ cols.forEach(item => {
4214
+ const column = (0, _util.handleFieldOrColumn)($xeTable, item);
4215
+ if (column && column.visible) {
4216
+ column.visible = false;
4217
+ if (!status) {
4218
+ status = true;
4219
+ }
4220
+ }
4221
+ });
4222
+ if (status) {
4199
4223
  return tablePrivateMethods.handleCustom();
4200
4224
  }
4201
4225
  return (0, _vue.nextTick)();
@@ -4204,25 +4228,43 @@ var _default = exports.default = (0, _vue.defineComponent)({
4204
4228
  * 显示指定列
4205
4229
  */
4206
4230
  showColumn(fieldOrColumn) {
4207
- const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4208
- if (column && !column.visible) {
4209
- column.visible = true;
4231
+ let status = false;
4232
+ const cols = _xeUtils.default.isArray(fieldOrColumn) ? fieldOrColumn : [fieldOrColumn];
4233
+ cols.forEach(item => {
4234
+ const column = (0, _util.handleFieldOrColumn)($xeTable, item);
4235
+ if (column && !column.visible) {
4236
+ column.visible = true;
4237
+ if (!status) {
4238
+ status = true;
4239
+ }
4240
+ }
4241
+ });
4242
+ if (status) {
4210
4243
  return tablePrivateMethods.handleCustom();
4211
4244
  }
4212
4245
  return (0, _vue.nextTick)();
4213
4246
  },
4214
4247
  setColumnWidth(fieldOrColumn, width) {
4215
- const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4216
- if (column) {
4217
- const colWidth = _xeUtils.default.toInteger(width);
4218
- let rdWidth = colWidth;
4219
- if ((0, _dom.isScale)(width)) {
4220
- const tableBody = refTableBody.value;
4221
- const bodyElem = tableBody ? tableBody.$el : null;
4222
- const bodyWidth = bodyElem ? bodyElem.clientWidth - 1 : 0;
4223
- rdWidth = Math.floor(colWidth * bodyWidth);
4224
- }
4225
- column.resizeWidth = rdWidth;
4248
+ let status = false;
4249
+ const cols = _xeUtils.default.isArray(fieldOrColumn) ? fieldOrColumn : [fieldOrColumn];
4250
+ cols.forEach(item => {
4251
+ const column = (0, _util.handleFieldOrColumn)($xeTable, item);
4252
+ if (column) {
4253
+ const colWidth = _xeUtils.default.toInteger(width);
4254
+ let rdWidth = colWidth;
4255
+ if ((0, _dom.isScale)(width)) {
4256
+ const tableBody = refTableBody.value;
4257
+ const bodyElem = tableBody ? tableBody.$el : null;
4258
+ const bodyWidth = bodyElem ? bodyElem.clientWidth - 1 : 0;
4259
+ rdWidth = Math.floor(colWidth * bodyWidth);
4260
+ }
4261
+ column.resizeWidth = rdWidth;
4262
+ if (!status) {
4263
+ status = true;
4264
+ }
4265
+ }
4266
+ });
4267
+ if (status) {
4226
4268
  return tableMethods.refreshColumn();
4227
4269
  }
4228
4270
  return (0, _vue.nextTick)();
@@ -5344,16 +5386,34 @@ var _default = exports.default = (0, _vue.defineComponent)({
5344
5386
  */
5345
5387
  scrollTo(scrollLeft, scrollTop) {
5346
5388
  const tableBody = refTableBody.value;
5389
+ const tableHeader = refTableHeader.value;
5347
5390
  const tableFooter = refTableFooter.value;
5391
+ const leftBody = refTableLeftBody.value;
5348
5392
  const rightBody = refTableRightBody.value;
5349
5393
  const tableBodyElem = tableBody ? tableBody.$el : null;
5394
+ const leftBodyElem = leftBody ? leftBody.$el : null;
5350
5395
  const rightBodyElem = rightBody ? rightBody.$el : null;
5396
+ const tableHeaderElem = tableHeader ? tableHeader.$el : null;
5351
5397
  const tableFooterElem = tableFooter ? tableFooter.$el : null;
5352
5398
  if (_xeUtils.default.isNumber(scrollLeft)) {
5353
- (0, _dom.setScrollLeft)(tableFooterElem || tableBodyElem, scrollLeft);
5399
+ const xHandleEl = refScrollXHandleElem.value;
5400
+ if (xHandleEl) {
5401
+ (0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
5402
+ } else {
5403
+ (0, _dom.setScrollLeft)(tableBodyElem, scrollLeft);
5404
+ (0, _dom.setScrollLeft)(tableHeaderElem, scrollLeft);
5405
+ (0, _dom.setScrollLeft)(tableFooterElem, scrollLeft);
5406
+ }
5354
5407
  }
5355
5408
  if (_xeUtils.default.isNumber(scrollTop)) {
5356
- (0, _dom.setScrollTop)(rightBodyElem || tableBodyElem, scrollTop);
5409
+ const yHandleEl = refScrollYHandleElem.value;
5410
+ if (yHandleEl) {
5411
+ (0, _dom.setScrollTop)(yHandleEl, scrollTop);
5412
+ } else {
5413
+ (0, _dom.setScrollTop)(tableBodyElem, scrollTop);
5414
+ (0, _dom.setScrollTop)(leftBodyElem, scrollTop);
5415
+ (0, _dom.setScrollTop)(rightBodyElem, scrollTop);
5416
+ }
5357
5417
  }
5358
5418
  if (reactData.scrollXLoad || reactData.scrollYLoad) {
5359
5419
  return new Promise(resolve => {
@@ -6306,6 +6366,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
6306
6366
  });
6307
6367
  }
6308
6368
  };
6369
+ const updateRowDropOrigin = row => {
6370
+ const el = refElem.value;
6371
+ if (el) {
6372
+ const clss = 'row--drag-origin';
6373
+ const rowid = (0, _util.getRowid)($xeTable, row);
6374
+ _xeUtils.default.arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`), elem => {
6375
+ (0, _dom.addClass)(elem, clss);
6376
+ });
6377
+ }
6378
+ };
6309
6379
  const clearRowDropTarget = () => {
6310
6380
  const el = refElem.value;
6311
6381
  if (el) {
@@ -6315,6 +6385,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
6315
6385
  });
6316
6386
  }
6317
6387
  };
6388
+ const updateRowDropTarget = (row, dragPos) => {
6389
+ const el = refElem.value;
6390
+ if (el) {
6391
+ const clss = 'row--drag-active-target';
6392
+ const rowid = (0, _util.getRowid)($xeTable, row);
6393
+ _xeUtils.default.arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`), elem => {
6394
+ (0, _dom.addClass)(elem, clss);
6395
+ elem.setAttribute('drag-pos', dragPos);
6396
+ });
6397
+ }
6398
+ };
6318
6399
  const showRowDropTip = evnt => {
6319
6400
  const rdTipEl = refRowDragTipElem.value;
6320
6401
  if (!rdTipEl) {
@@ -7698,7 +7779,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
7698
7779
  } = reactData;
7699
7780
  const {
7700
7781
  afterFullData,
7782
+ afterTreeFullData,
7701
7783
  tableFullData,
7784
+ tableFullTreeData,
7702
7785
  prevDragRow,
7703
7786
  prevDragPos
7704
7787
  } = internalData;
@@ -7713,18 +7796,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
7713
7796
  return;
7714
7797
  }
7715
7798
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
7716
- // 移出源位置
7717
- const oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow);
7718
- const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow);
7719
- afterFullData.splice(oafIndex, 1);
7720
- tableFullData.splice(otfIndex, 1);
7721
- // 插新位置
7722
- const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow);
7723
- const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow);
7724
- const nafIndex = pafIndex + dragOffsetIndex;
7725
- const ntfIndex = ptfIndex + dragOffsetIndex;
7726
- afterFullData.splice(nafIndex, 0, dragRow);
7727
- tableFullData.splice(ntfIndex, 0, dragRow);
7799
+ let oafIndex = -1;
7800
+ let nafIndex = -1;
7801
+ if (treeConfig) {
7802
+ // 移出源位置
7803
+ oafIndex = $xeTable.findRowIndexOf(afterTreeFullData, dragRow);
7804
+ const otfIndex = $xeTable.findRowIndexOf(tableFullTreeData, dragRow);
7805
+ afterTreeFullData.splice(oafIndex, 1);
7806
+ tableFullTreeData.splice(otfIndex, 1);
7807
+ // 插新位置
7808
+ const pafIndex = $xeTable.findRowIndexOf(afterTreeFullData, prevDragRow);
7809
+ const ptfIndex = $xeTable.findRowIndexOf(tableFullTreeData, prevDragRow);
7810
+ nafIndex = pafIndex + dragOffsetIndex;
7811
+ const ntfIndex = ptfIndex + dragOffsetIndex;
7812
+ afterTreeFullData.splice(nafIndex, 0, dragRow);
7813
+ tableFullTreeData.splice(ntfIndex, 0, dragRow);
7814
+ } else {
7815
+ // 移出源位置
7816
+ oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow);
7817
+ const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow);
7818
+ afterFullData.splice(oafIndex, 1);
7819
+ tableFullData.splice(otfIndex, 1);
7820
+ // 插新位置
7821
+ const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow);
7822
+ const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow);
7823
+ nafIndex = pafIndex + dragOffsetIndex;
7824
+ const ntfIndex = ptfIndex + dragOffsetIndex;
7825
+ afterFullData.splice(nafIndex, 0, dragRow);
7826
+ tableFullData.splice(ntfIndex, 0, dragRow);
7827
+ }
7728
7828
  reactData.isDragRowMove = true;
7729
7829
  $xeTable.cacheRowMap();
7730
7830
  $xeTable.updateScrollYStatus();
@@ -7773,8 +7873,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7773
7873
  } = reactData;
7774
7874
  const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
7775
7875
  const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
7776
- (0, _dom.addClass)(trEl, 'row--drag-active-target');
7777
- trEl.setAttribute('drag-pos', dragPos);
7876
+ updateRowDropTarget(row, dragPos);
7778
7877
  internalData.prevDragRow = row;
7779
7878
  internalData.prevDragPos = dragPos;
7780
7879
  dispatchEvent('row-dragover', {
@@ -7808,7 +7907,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7808
7907
  }
7809
7908
  reactData.dragRow = row;
7810
7909
  trEl.draggable = true;
7811
- (0, _dom.addClass)(trEl, 'row--drag-origin');
7910
+ updateRowDropOrigin(row);
7812
7911
  showRowDropTip(evnt);
7813
7912
  updateRowDropTipContent(tdEl);
7814
7913
  dispatchEvent('row-dragstart', params, evnt);
@@ -7825,7 +7924,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
7825
7924
  triggerScrollXEvent() {
7826
7925
  loadScrollXData();
7827
7926
  },
7828
- handleScrollEvent(evnt, isRollY, isRollX, params) {
7927
+ handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, params) {
7829
7928
  const {
7830
7929
  highlightHoverRow
7831
7930
  } = props;
@@ -7843,20 +7942,39 @@ var _default = exports.default = (0, _vue.defineComponent)({
7843
7942
  if (tooltip && tooltip.reactData.visible) {
7844
7943
  tooltip.close();
7845
7944
  }
7846
- if (isRollX) {
7847
- tablePrivateMethods.checkScrolling();
7848
- }
7849
7945
  const bodyHeight = bodyElem ? bodyElem.clientHeight : 0;
7850
7946
  const bodyWidth = bodyElem ? bodyElem.clientWidth : 0;
7851
7947
  const scrollHeight = bodyElem ? bodyElem.scrollHeight : 0;
7852
7948
  const scrollWidth = bodyElem ? bodyElem.scrollWidth : 0;
7949
+ let isTop = false;
7950
+ let isBottom = false;
7951
+ let isLeft = false;
7952
+ let isRight = false;
7953
+ if (isRollX) {
7954
+ isLeft = scrollLeft <= 0;
7955
+ if (!isTop) {
7956
+ isRight = scrollLeft + bodyWidth >= scrollWidth;
7957
+ }
7958
+ tablePrivateMethods.checkScrolling();
7959
+ } else {
7960
+ isTop = scrollTop <= 0;
7961
+ if (!isTop) {
7962
+ isBottom = scrollTop + bodyHeight >= scrollHeight;
7963
+ }
7964
+ }
7853
7965
  const evntParams = Object.assign({
7966
+ scrollTop,
7967
+ scrollLeft,
7854
7968
  bodyHeight,
7855
7969
  bodyWidth,
7856
7970
  scrollHeight,
7857
7971
  scrollWidth,
7858
7972
  isX: isRollX,
7859
- isY: isRollY
7973
+ isY: isRollY,
7974
+ isTop,
7975
+ isBottom,
7976
+ isLeft,
7977
+ isRight
7860
7978
  }, params);
7861
7979
  dispatchEvent('scroll', evntParams, evnt);
7862
7980
  },