vxe-table 3.11.26 → 3.11.27-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +2 -2
  4. package/es/locale/lang/de-DE.js +2 -2
  5. package/es/locale/lang/en-US.js +2 -2
  6. package/es/locale/lang/es-ES.js +2 -2
  7. package/es/locale/lang/fr-FR.js +2 -2
  8. package/es/locale/lang/hu-HU.js +2 -2
  9. package/es/locale/lang/hy-AM.js +2 -2
  10. package/es/locale/lang/ja-JP.js +2 -2
  11. package/es/locale/lang/ko-KR.js +2 -2
  12. package/es/locale/lang/nb-NO.js +2 -2
  13. package/es/locale/lang/pt-BR.js +2 -2
  14. package/es/locale/lang/ru-RU.js +2 -2
  15. package/es/locale/lang/ug-CN.js +2 -2
  16. package/es/locale/lang/uk-UA.js +2 -2
  17. package/es/locale/lang/vi-VN.js +2 -2
  18. package/es/locale/lang/zh-CHT.js +2 -2
  19. package/es/locale/lang/zh-CN.js +2 -2
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/table/src/body.js +2 -2
  23. package/es/table/src/cell.js +2 -2
  24. package/es/table/src/column.js +10 -8
  25. package/es/table/src/group.js +37 -6
  26. package/es/table/src/methods.js +167 -70
  27. package/es/table/src/util.js +0 -1
  28. package/es/table/style.css +5 -0
  29. package/es/table/style.min.css +1 -1
  30. package/es/ui/index.js +1 -1
  31. package/es/ui/src/log.js +1 -1
  32. package/es/vxe-table/style.css +5 -0
  33. package/es/vxe-table/style.min.css +1 -1
  34. package/lib/index.css +1 -1
  35. package/lib/index.min.css +1 -1
  36. package/lib/index.umd.js +244 -99
  37. package/lib/index.umd.min.js +1 -1
  38. package/lib/locale/lang/ar-EG.js +2 -2
  39. package/lib/locale/lang/ar-EG.min.js +1 -1
  40. package/lib/locale/lang/de-DE.js +2 -2
  41. package/lib/locale/lang/de-DE.min.js +1 -1
  42. package/lib/locale/lang/en-US.js +2 -2
  43. package/lib/locale/lang/en-US.min.js +1 -1
  44. package/lib/locale/lang/en-US.umd.js +2 -2
  45. package/lib/locale/lang/es-ES.js +2 -2
  46. package/lib/locale/lang/es-ES.min.js +1 -1
  47. package/lib/locale/lang/es-ES.umd.js +2 -2
  48. package/lib/locale/lang/fr-FR.js +2 -2
  49. package/lib/locale/lang/fr-FR.min.js +1 -1
  50. package/lib/locale/lang/hu-HU.js +2 -2
  51. package/lib/locale/lang/hu-HU.min.js +1 -1
  52. package/lib/locale/lang/hu-HU.umd.js +2 -2
  53. package/lib/locale/lang/hy-AM.js +2 -2
  54. package/lib/locale/lang/hy-AM.min.js +1 -1
  55. package/lib/locale/lang/ja-JP.js +2 -2
  56. package/lib/locale/lang/ja-JP.min.js +1 -1
  57. package/lib/locale/lang/ja-JP.umd.js +2 -2
  58. package/lib/locale/lang/ko-KR.js +2 -2
  59. package/lib/locale/lang/ko-KR.min.js +1 -1
  60. package/lib/locale/lang/ko-KR.umd.js +2 -2
  61. package/lib/locale/lang/nb-NO.js +2 -2
  62. package/lib/locale/lang/nb-NO.min.js +1 -1
  63. package/lib/locale/lang/pt-BR.js +2 -2
  64. package/lib/locale/lang/pt-BR.min.js +1 -1
  65. package/lib/locale/lang/pt-BR.umd.js +2 -2
  66. package/lib/locale/lang/ru-RU.js +2 -2
  67. package/lib/locale/lang/ru-RU.min.js +1 -1
  68. package/lib/locale/lang/ru-RU.umd.js +2 -2
  69. package/lib/locale/lang/ug-CN.js +2 -2
  70. package/lib/locale/lang/ug-CN.min.js +1 -1
  71. package/lib/locale/lang/uk-UA.js +2 -2
  72. package/lib/locale/lang/uk-UA.min.js +1 -1
  73. package/lib/locale/lang/uk-UA.umd.js +2 -2
  74. package/lib/locale/lang/vi-VN.js +2 -2
  75. package/lib/locale/lang/vi-VN.min.js +1 -1
  76. package/lib/locale/lang/zh-CHT.js +2 -2
  77. package/lib/locale/lang/zh-CHT.min.js +1 -1
  78. package/lib/locale/lang/zh-CHT.umd.js +2 -2
  79. package/lib/locale/lang/zh-CN.js +2 -2
  80. package/lib/locale/lang/zh-CN.min.js +1 -1
  81. package/lib/locale/lang/zh-CN.umd.js +2 -2
  82. package/lib/style.css +1 -1
  83. package/lib/style.min.css +1 -1
  84. package/lib/table/src/body.js +2 -2
  85. package/lib/table/src/body.min.js +1 -1
  86. package/lib/table/src/cell.js +2 -1
  87. package/lib/table/src/cell.min.js +1 -1
  88. package/lib/table/src/column.js +11 -9
  89. package/lib/table/src/column.min.js +1 -1
  90. package/lib/table/src/group.js +39 -6
  91. package/lib/table/src/group.min.js +1 -1
  92. package/lib/table/src/methods.js +182 -72
  93. package/lib/table/src/methods.min.js +1 -1
  94. package/lib/table/src/util.js +0 -1
  95. package/lib/table/src/util.min.js +1 -1
  96. package/lib/table/style/style.css +5 -0
  97. package/lib/table/style/style.min.css +1 -1
  98. package/lib/ui/index.js +1 -1
  99. package/lib/ui/index.min.js +1 -1
  100. package/lib/ui/src/log.js +1 -1
  101. package/lib/ui/src/log.min.js +1 -1
  102. package/lib/vxe-table/style/style.css +5 -0
  103. package/lib/vxe-table/style/style.min.css +1 -1
  104. package/package.json +2 -2
  105. package/packages/locale/lang/ar-EG.ts +2 -2
  106. package/packages/locale/lang/de-DE.ts +2 -2
  107. package/packages/locale/lang/en-US.ts +2 -2
  108. package/packages/locale/lang/es-ES.ts +2 -2
  109. package/packages/locale/lang/fr-FR.ts +2 -2
  110. package/packages/locale/lang/hu-HU.ts +2 -2
  111. package/packages/locale/lang/hy-AM.ts +2 -2
  112. package/packages/locale/lang/ja-JP.ts +2 -2
  113. package/packages/locale/lang/ko-KR.ts +2 -2
  114. package/packages/locale/lang/nb-NO.ts +2 -2
  115. package/packages/locale/lang/pt-BR.ts +2 -2
  116. package/packages/locale/lang/ru-RU.ts +2 -2
  117. package/packages/locale/lang/ug-CN.ts +2 -2
  118. package/packages/locale/lang/uk-UA.ts +2 -2
  119. package/packages/locale/lang/vi-VN.ts +2 -2
  120. package/packages/locale/lang/zh-CHT.ts +2 -2
  121. package/packages/locale/lang/zh-CN.ts +2 -2
  122. package/packages/table/src/body.ts +2 -2
  123. package/packages/table/src/cell.ts +2 -2
  124. package/packages/table/src/column.ts +10 -8
  125. package/packages/table/src/group.ts +40 -6
  126. package/packages/table/src/methods.ts +183 -83
  127. package/packages/table/src/util.ts +0 -1
  128. package/styles/components/table.scss +5 -0
  129. /package/es/{iconfont.1733885890565.ttf → iconfont.1733931178504.ttf} +0 -0
  130. /package/es/{iconfont.1733885890565.woff → iconfont.1733931178504.woff} +0 -0
  131. /package/es/{iconfont.1733885890565.woff2 → iconfont.1733931178504.woff2} +0 -0
  132. /package/lib/{iconfont.1733885890565.ttf → iconfont.1733931178504.ttf} +0 -0
  133. /package/lib/{iconfont.1733885890565.woff → iconfont.1733931178504.woff} +0 -0
  134. /package/lib/{iconfont.1733885890565.woff2 → iconfont.1733931178504.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _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}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(e,l){let{$table:r,column:t}=l,n=t.titlePrefix||t.titleHelp;return n?e("i",{class:["vxe-cell-title-prefix-icon",n.icon||getIcon().TABLE_TITLE_PREFIX],on:{mouseenter(e){r.triggerHeaderTitleEvent(e,n,l)},mouseleave(e){r.handleTargetLeaveEvent(e)}}}):renderEmptyElement(r)}function renderTitleSuffixIcon(e,l){let{$table:r,column:t}=l,n=t.titleSuffix;return n?e("i",{class:["vxe-cell-title-suffix-icon",n.icon||getIcon().TABLE_TITLE_SUFFIX],on:{mouseenter(e){r.triggerHeaderTitleEvent(e,n,l)},mouseleave(e){r.handleTargetLeaveEvent(e)}}}):renderEmptyElement(r)}function renderCellDragIcon(e,l){let r=l.$table;var t=r.dragConfig,{icon:n,disabledMethod:a}=r.computeRowDragOpts,a=a||(t?t.rowDisabledMethod:null);let d=a&&a(l);return e("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":d}],on:{mousedown(e){d||r.handleCellDragMousedownEvent(e,l)},mouseup:r.handleCellDragMouseupEvent}},[e("i",{class:n||(t?t.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l,r){var{$table:t,column:n,level:a}=l,n=n.dragSort,{treeConfig:d,dragConfig:o}=t,s=t.computeRowOpts,{showIcon:t,isCrossDrag:i,visibleMethod:c}=t.computeRowDragOpts,c=c||(o?o.rowVisibleMethod:null),r=_xeUtils.default.isArray(r)?r:[r];return!(n&&s.drag&&(t||o&&o.showRowIcon))||c&&!c(l)||d&&!i&&a||r.unshift(renderCellDragIcon(e,l)),r}function renderHeaderCellDragIcon(e,l){let{$table:r,column:t}=l;var n=r.computeColumnOpts,{showIcon:a,icon:d,visibleMethod:o,disabledMethod:s}=r.computeColumnDragOpts;let i=s&&s(l);return!n.drag||!a||o&&!o(l)||t.fixed||t.parentId?renderEmptyElement(r):e("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":i}],on:{mousedown(e){i||r.handleHeaderCellDragMousedownEvent(e,l)},mouseup:r.handleHeaderCellDragMouseupEvent}},[e("i",{class:d||getIcon().TABLE_DRAG_COLUMN})])}function renderHeaderCellBaseVNs(e,l,r){return[renderTitlePrefixIcon(e,l),renderHeaderCellDragIcon(e,l),..._xeUtils.default.isArray(r)?r:[r],renderTitleSuffixIcon(e,l)]}function renderTitleContent(e,l,r){let{$table:t,column:n}=l;var{type:a,showHeaderOverflow:d}=n,{showHeaderOverflow:o,tooltipOpts:s}=t;let i=s.showAll||s.enabled;s=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?o:d;let c="title"===s,u=!0===s||"tooltip"===s;o={};return(c||u||i)&&(o.mouseenter=e=>{t._isResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,n):(u||i)&&t.triggerHeaderTooltipEvent(e,l))}),(u||i)&&(o.mouseleave=e=>{t._isResize||(u||i)&&t.handleTargetLeaveEvent(e)}),["html"===a&&_xeUtils.default.isString(r)?e("span",{class:"vxe-cell--title",domProps:{innerHTML:r},on:o}):e("span",{class:"vxe-cell--title",on:o},(0,_vn.getSlotVNs)(r))]}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,l){var{$table:r,column:t,_columnIndex:n,row:a,items:d}=l,{slots:o,editRender:s,cellRender:i,footerFormatter:c}=t,s=s||i;if(o&&o.footer)return r.callSlot(o.footer,l,e);if(s){i=renderer.get(s.name),o=i?i.renderTableFooter||i.renderFooter:null;if(o)return(0,_vn.getSlotVNs)(o.call(r,e,s,l))}let u="";return _xeUtils.default.isArray(d)?u=d[n]:u=_xeUtils.default.get(a,t.field),[c?formatFooterLabel(c,{itemValue:u,column:t,row:a,items:d,_columnIndex:n}):(0,_utils.formatText)(u,1)]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}let Cell=exports.Cell={createColumn(e,l){var{type:r,sortable:t,remoteSort:n,filters:a,editRender:d,treeNode:o}=l,{editConfig:s,editOpts:i,checkboxOpts:c}=e,u={renderHeader:this.renderDefaultHeader,renderCell:o?this.renderTreeCell:this.renderDefaultCell,renderFooter:this.renderDefaultFooter};switch(r){case"seq":u.renderHeader=this.renderSeqHeader,u.renderCell=o?this.renderTreeIndexCell:this.renderSeqCell;break;case"radio":u.renderHeader=this.renderRadioHeader,u.renderCell=o?this.renderTreeRadioCell:this.renderRadioCell;break;case"checkbox":u.renderHeader=this.renderCheckboxHeader,u.renderCell=c.checkField?o?this.renderTreeSelectionCellByProp:this.renderCheckboxCellByProp:o?this.renderTreeSelectionCell:this.renderCheckboxCell;break;case"expand":u.renderCell=this.renderExpandCell,u.renderData=this.renderExpandData;break;case"html":u.renderCell=o?this.renderTreeHTMLCell:this.renderHTMLCell,a&&(t||n)?u.renderHeader=this.renderSortAndFilterHeader:t||n?u.renderHeader=this.renderSortHeader:a&&(u.renderHeader=this.renderFilterHeader);break;default:s&&d?(u.renderHeader=this.renderEditHeader,u.renderCell="cell"===i.mode?o?this.renderTreeCellEdit:this.renderCellEdit:o?this.renderTreeRowEdit:this.renderRowEdit):a&&(t||n)?u.renderHeader=this.renderSortAndFilterHeader:t||n?u.renderHeader=this.renderSortHeader:a&&(u.renderHeader=this.renderFilterHeader)}return(0,_util.createColumn)(e,l,u)},renderHeaderTitle(e,l){var{$table:r,column:t}=l,{slots:n,editRender:a,cellRender:d}=t,a=a||d;if(n&&n.header)return renderTitleContent(e,l,r.callSlot(n.header,l,e));if(a){d=renderer.get(a.name),n=d?d.renderTableHeader||d.renderHeader:null;if(n)return(0,_vn.getSlotVNs)(renderTitleContent(e,l,n.call(r,e,a,l)))}return renderTitleContent(e,l,(0,_utils.formatText)(t.getTitle(),1))},renderDefaultHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l))},renderDefaultCell(e,l){var{$table:r,row:t,column:n}=l,{slots:a,editRender:d,cellRender:o}=n,o=d||o;if(a&&a.default)return renderCellBaseVNs(e,l,r.callSlot(a.default,l,e));if(o){var a=renderer.get(o.name),s=a?a.renderTableDefault||a.renderDefault:null,a=a?a.renderTableCell||a.renderCell:null,a=d?a:s;if(a)return renderCellBaseVNs(e,l,(0,_vn.getSlotVNs)(a.call(r,e,o,Object.assign({$type:d?"edit":"cell"},l))))}s=r.getCellLabel(t,n),a=d?d.placeholder:"";return renderCellBaseVNs(e,l,[e("span",{class:"vxe-cell--label"},[d&&(0,_utils.eqEmptyValue)(s)?e("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(a),1)):e("span",(0,_utils.formatText)(s,1))])])},renderTreeCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderDefaultCell.call(this,e,l))},renderDefaultFooter(e,l){return[e("span",{class:"vxe-cell--item"},getFooterContent(e,l))]},renderTreeIcon(e,l,r){let{$table:t,isHidden:n}=l;var{treeOpts:a,treeExpandedMaps:d,treeExpandLazyLoadedMaps:o,fullAllDataRowIdData:s}=t,{row:i,column:c,level:u}=l,c=c.slots,{indent:C,lazy:E,trigger:h,iconLoaded:g,showIcon:b,iconOpen:v,iconClose:x}=a,p=a.children||a.childrenField,a=a.hasChild||a.hasChildField,p=i[p],p=p&&p.length;let f=!1,T=!1,m=!1,_=!1;var H={};return c&&c.icon?t.callSlot(c.icon,l,e,r):(n||(c=(0,_util.getRowid)(t,i),T=!!d[c],E&&(d=s[c],m=!!o[c],f=i[a],_=!!d.treeLoaded)),h&&"default"!==h||(H.click=e=>{t.triggerTreeExpandEvent(e,l)}),[e("div",{class:["vxe-cell--tree-node",{"is--active":T}],style:{paddingLeft:u*C+"px"}},[b&&(!E||_?p:f)?[e("div",{class:"vxe-tree--btn-wrapper",on:H},[e("i",{class:["vxe-tree--node-btn",m?g||getIcon().TABLE_TREE_LOADED:T?v||getIcon().TABLE_TREE_OPEN:x||getIcon().TABLE_TREE_CLOSE]})])]:null,e("div",{class:"vxe-tree-cell"},r)])])},renderSeqHeader(e,l){var{$table:r,column:t}=l,n=t.slots;return renderHeaderCellBaseVNs(e,l,renderTitleContent(e,l,n&&n.header?r.callSlot(n.header,l,e):(0,_utils.formatText)(t.getTitle(),1)))},renderSeqCell(e,l){var{$table:r,column:t}=l,{treeConfig:n,seqOpts:a}=r,t=t.slots;return t&&t.default?renderCellBaseVNs(e,l,r.callSlot(t.default,l,e)):(r=l.seq,t=a.seqMethod,renderCellBaseVNs(e,l,[e("span",""+(0,_utils.formatText)(t?t(l):n?r:(a.startIndex||0)+r,1))]))},renderTreeIndexCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderSeqCell(e,l))},renderRadioHeader(e,l){var{$table:r,column:t}=l,n=t.slots,a=n?n.header:null,n=n?n.title:null;return renderHeaderCellBaseVNs(e,l,renderTitleContent(e,l,a?r.callSlot(a,l,e):[e("span",{class:"vxe-radio--label"},n?r.callSlot(n,l,e):(0,_utils.formatText)(t.getTitle(),1))]))},renderRadioCell(e,l){let{$table:r,column:t,isHidden:n}=l;var{radioOpts:a,selectRadioRow:d}=r,o=t.slots,{labelField:a,checkMethod:s,visibleMethod:i}=a,c=l.row,u=o?o.default:null,o=o?o.radio:null,d=c===d;let C=!i||i({row:c}),E=!!s,h;n||(h={click(e){!E&&C&&r.triggerRadioRowEvent(e,l)}},s&&(E=!s({row:c})));i=Object.assign(Object.assign({},l),{checked:d,disabled:E,visible:C});return o?renderCellBaseVNs(e,l,r.callSlot(o,i,e)):(s=[],C&&s.push(e("span",{class:["vxe-radio--icon",d?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(u||a)&&s.push(e("span",{class:"vxe-radio--label"},u?r.callSlot(u,i,e):_xeUtils.default.get(c,a))),renderCellBaseVNs(e,l,[e("span",{class:["vxe-cell--radio",{"is--checked":d,"is--disabled":E}],on:h},s)]))},renderTreeRadioCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderRadioCell(e,l))},renderCheckboxHeader(e,l){let{$table:r,column:t,isHidden:n}=l,{isAllSelected:a,isIndeterminate:d,isAllCheckboxDisabled:o}=r;var s=t.slots,i=s?s.header:null,s=s?s.title:null,c=r.checkboxOpts,u=t.getTitle();let C;n||(C={click(e){o||r.triggerCheckAllEvent(e,!a)}});var E=Object.assign(Object.assign({},l),{checked:a,disabled:o,indeterminate:d});return i?renderHeaderCellBaseVNs(e,l,renderTitleContent(e,E,r.callSlot(i,E,e))):(c.checkStrictly?c.showHeader:!1!==c.showHeader)?renderHeaderCellBaseVNs(e,l,renderTitleContent(e,E,[e("span",{class:["vxe-cell--checkbox",{"is--checked":a,"is--disabled":o,"is--indeterminate":d}],attrs:{title:getI18n("vxe.table.allTitle")},on:C},[e("span",{class:["vxe-checkbox--icon",d?getIcon().TABLE_CHECKBOX_INDETERMINATE:a?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(s||u?[e("span",{class:"vxe-checkbox--label"},s?r.callSlot(s,E,e):u)]:[]))])):renderHeaderCellBaseVNs(e,l,renderTitleContent(e,E,[e("span",{class:"vxe-checkbox--label"},s?r.callSlot(s,E,e):u)]))},renderCheckboxCell(e,l){let{$table:r,row:t,column:n,isHidden:a}=l;var{treeConfig:d,treeIndeterminateMaps:o,selectCheckboxMaps:s}=r,{labelField:i,checkMethod:c,visibleMethod:u}=r.checkboxOpts,C=n.slots,E=C?C.default:null,C=C?C.checkbox:null;let h=!1,g=!1,b=!u||u({row:t}),v=!!c,x;a||(u=(0,_util.getRowid)(r,t),g=!!s[u],x={click(e){!v&&b&&r.triggerCheckRowEvent(e,l,!g)}},c&&(v=!c({row:t})),d&&(h=!!o[u]));s=Object.assign(Object.assign({},l),{checked:g,disabled:v,visible:b,indeterminate:h});return C?renderCellBaseVNs(e,l,r.callSlot(C,s,e)):(c=[],b&&c.push(e("span",{class:["vxe-checkbox--icon",h?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(E||i)&&c.push(e("span",{class:"vxe-checkbox--label"},E?r.callSlot(E,s,e):_xeUtils.default.get(t,i))),renderCellBaseVNs(e,l,[e("span",{class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":v,"is--indeterminate":h,"is--hidden":!b}],on:x},c)]))},renderTreeSelectionCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderCheckboxCell(e,l))},renderCheckboxCellByProp(e,l){let{$table:r,row:t,column:n,isHidden:a}=l;var{treeConfig:d,treeIndeterminateMaps:o,checkboxOpts:s}=r,{labelField:i,checkField:c,checkMethod:u,visibleMethod:C}=s,s=s.indeterminateField||s.halfField,E=n.slots,h=E?E.default:null,E=E?E.checkbox:null;let g=!1,b=!1,v=!C||C({row:t}),x=!!u,p;a||(C=(0,_util.getRowid)(r,t),b=_xeUtils.default.get(t,c),p={click(e){!x&&v&&r.triggerCheckRowEvent(e,l,!b)}},u&&(x=!u({row:t})),d&&(g=!!o[C]));c=Object.assign(Object.assign({},l),{checked:b,disabled:x,visible:v,indeterminate:g});return E?renderCellBaseVNs(e,l,r.callSlot(E,c,e)):(u=[],v&&u.push(e("span",{class:["vxe-checkbox--icon",g?getIcon().TABLE_CHECKBOX_INDETERMINATE:b?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(h||i)&&u.push(e("span",{class:"vxe-checkbox--label"},h?r.callSlot(h,c,e):_xeUtils.default.get(t,i))),renderCellBaseVNs(e,l,[e("span",{class:["vxe-cell--checkbox",{"is--checked":b,"is--disabled":x,"is--indeterminate":s&&!b?t[s]:g,"is--hidden":!v}],on:p},u)]))},renderTreeSelectionCellByProp(e,l){return Cell.renderTreeIcon(e,l,Cell.renderCheckboxCellByProp(e,l))},renderExpandCell(e,l){let{$table:r,isHidden:t,row:n,column:a}=l;var{expandOpts:d,rowExpandedMaps:o,rowExpandLazyLoadedMaps:s}=r,{lazy:d,labelField:i,iconLoaded:c,showIcon:u,iconOpen:C,iconClose:E,visibleMethod:h}=d,g=a.slots,b=g?g.default:null;let v=!1,x=!1;return g&&g.icon?renderCellBaseVNs(e,l,r.callSlot(g.icon,l,e)):(t||(g=(0,_util.getRowid)(r,n),v=!!o[g],d&&(x=!!s[g])),renderCellBaseVNs(e,l,[!u||h&&!h(l)?renderEmptyElement(r):e("span",{class:["vxe-table--expanded",{"is--active":v}],on:{click(e){r.triggerRowExpandEvent(e,l)}}},[e("i",{class:["vxe-table--expand-btn",x?c||getIcon().TABLE_EXPAND_LOADED:v?C||getIcon().TABLE_EXPAND_OPEN:E||getIcon().TABLE_EXPAND_CLOSE]})]),b||i?e("span",{class:"vxe-table--expand-label"},b?r.callSlot(b,l,e):_xeUtils.default.get(n,i)):renderEmptyElement(r)]))},renderExpandData(e,l){var{$table:r,column:t}=l,{slots:t,contentRender:n}=t;if(t&&t.content)return r.callSlot(t.content,l,e);if(n){t=renderer.get(n.name),t=t?t.renderTableExpand||t.renderExpand:null;if(t)return(0,_vn.getSlotVNs)(t.call(r,e,n,l))}return[]},renderHTMLCell(e,l){var{$table:r,column:t}=l,t=t.slots;return t&&t.default?renderCellBaseVNs(e,l,r.callSlot(t.default,l,e)):renderCellBaseVNs(e,l,[e("span",{class:"vxe-cell--html",domProps:{innerHTML:getDefaultCellLabel(l)}})])},renderTreeHTMLCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderHTMLCell(e,l))},renderSortAndFilterHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l).concat(Cell.renderSortIcon(e,l).concat(Cell.renderFilterIcon(e,l))))},renderSortHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l).concat(Cell.renderSortIcon(e,l)))},renderSortIcon(e,l){let{$table:r,column:t}=l;var{showIcon:l,iconLayout:n,iconAsc:a,iconDesc:d}=r.sortOpts;return l?[e("span",{class:["vxe-cell--sort",`vxe-cell--sort-${n}-layout`]},[e("i",{class:["vxe-sort--asc-btn",a||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===t.order}],attrs:{title:getI18n("vxe.table.sortAsc")},on:{click(e){e.stopPropagation(),r.triggerSortEvent(e,t,"asc")}}}),e("i",{class:["vxe-sort--desc-btn",d||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===t.order}],attrs:{title:getI18n("vxe.table.sortDesc")},on:{click(e){e.stopPropagation(),r.triggerSortEvent(e,t,"desc")}}})])]:[]},renderFilterHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l).concat(Cell.renderFilterIcon(e,l)))},renderFilterIcon(e,l){let{$table:r,column:t,hasFilter:n}=l;var{filterStore:a,filterOpts:d}=r,{showIcon:d,iconNone:o,iconMatch:s}=d;return d?[e("span",{class:["vxe-cell--filter",{"is--active":a.visible&&a.column===t}]},[e("i",{class:["vxe-filter--btn",n?s||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],attrs:{title:getI18n("vxe.table.filter")},on:{click(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}}})])]:[]},renderEditHeader(e,l){var{$table:r,column:t}=l,{editConfig:n,editRules:a,editOpts:d}=r,{sortable:o,remoteSort:s,filters:i,editRender:c}=t;let u=!1,C=(a&&(a=_xeUtils.default.get(a,t.field))&&(u=a.some(e=>e.required)),[]);return(0,_utils.isEnableConf)(n)&&(C=[u&&d.showAsterisk?e("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(r),(0,_utils.isEnableConf)(c)&&d.showIcon?e("i",{class:["vxe-cell--edit-icon",d.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(r)]),renderHeaderCellBaseVNs(e,l,C.concat(Cell.renderHeaderTitle(e,l)).concat(o||s?Cell.renderSortIcon(e,l):[]).concat(i?Cell.renderFilterIcon(e,l):[]))},renderRowEdit(e,l){var{$table:r,column:t}=l,t=t.editRender,r=r.editStore.actived;return Cell.runRenderer(e,l,this,(0,_utils.isEnableConf)(t)&&r&&r.row===l.row)},renderTreeRowEdit(e,l){return Cell.renderTreeIcon(e,l,Cell.renderRowEdit(e,l))},renderCellEdit(e,l){var{$table:r,column:t}=l,t=t.editRender,r=r.editStore.actived;return Cell.runRenderer(e,l,this,(0,_utils.isEnableConf)(t)&&r&&r.row===l.row&&r.column===l.column)},renderTreeCellEdit(e,l){return Cell.renderTreeIcon(e,l,Cell.renderCellEdit(e,l))},runRenderer(e,l,r,t){var{$table:n,column:a}=l,{slots:a,editRender:d,formatter:o}=a,s=renderer.get(d.name),s=s?s.renderTableEdit||s.renderEdit:null,i=Object.assign({$type:"",isEdit:t},l);return t?a&&a.edit?n.callSlot(a.edit,i,e):s?(0,_vn.getSlotVNs)(s.call(n,e,d,i)):[]:a&&a.default?renderCellBaseVNs(e,l,n.callSlot(a.default,i,e)):o?renderCellBaseVNs(e,l,[e("span",{class:"vxe-cell--label"},[getDefaultCellLabel(i)])]):Cell.renderDefaultCell.call(r,e,i)}};var _default=exports.default=Cell;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _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}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(e,l){let{$table:r,column:t}=l,n=t.titlePrefix||t.titleHelp;return n?e("i",{class:["vxe-cell-title-prefix-icon",n.icon||getIcon().TABLE_TITLE_PREFIX],on:{mouseenter(e){r.triggerHeaderTitleEvent(e,n,l)},mouseleave(e){r.handleTargetLeaveEvent(e)}}}):renderEmptyElement(r)}function renderTitleSuffixIcon(e,l){let{$table:r,column:t}=l,n=t.titleSuffix;return n?e("i",{class:["vxe-cell-title-suffix-icon",n.icon||getIcon().TABLE_TITLE_SUFFIX],on:{mouseenter(e){r.triggerHeaderTitleEvent(e,n,l)},mouseleave(e){r.handleTargetLeaveEvent(e)}}}):renderEmptyElement(r)}function renderCellDragIcon(e,l){let r=l.$table;var t=r.dragConfig,{icon:n,disabledMethod:a}=r.computeRowDragOpts,a=a||(t?t.rowDisabledMethod:null);let d=a&&a(l);return e("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":d}],on:{mousedown(e){d||r.handleCellDragMousedownEvent(e,l)},mouseup:r.handleCellDragMouseupEvent}},[e("i",{class:n||(t?t.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l,r){var{$table:t,column:n,level:a}=l,n=n.dragSort,{treeConfig:d,dragConfig:o}=t,s=t.computeRowOpts,{showIcon:t,isCrossDrag:i,visibleMethod:c}=t.computeRowDragOpts,c=c||(o?o.rowVisibleMethod:null),r=_xeUtils.default.isArray(r)?r:[r];return!(n&&s.drag&&(t||o&&o.showRowIcon))||c&&!c(l)||d&&!i&&a||r.unshift(renderCellDragIcon(e,l)),r}function renderHeaderCellDragIcon(e,l){let{$table:r,column:t}=l;var n=r.computeColumnOpts,{showIcon:a,icon:d,isCrossDrag:o,visibleMethod:s,disabledMethod:i}=r.computeColumnDragOpts;let c=i&&i(l);return!n.drag||!a||s&&!s(l)||t.fixed||!o&&t.parentId?renderEmptyElement(r):e("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":c}],on:{mousedown(e){c||r.handleHeaderCellDragMousedownEvent(e,l)},mouseup:r.handleHeaderCellDragMouseupEvent}},[e("i",{class:d||getIcon().TABLE_DRAG_COLUMN})])}function renderHeaderCellBaseVNs(e,l,r){return[renderTitlePrefixIcon(e,l),renderHeaderCellDragIcon(e,l),..._xeUtils.default.isArray(r)?r:[r],renderTitleSuffixIcon(e,l)]}function renderTitleContent(e,l,r){let{$table:t,column:n}=l;var{type:a,showHeaderOverflow:d}=n,{showHeaderOverflow:o,tooltipOpts:s}=t;let i=s.showAll||s.enabled;s=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?o:d;let c="title"===s,u=!0===s||"tooltip"===s;o={};return(c||u||i)&&(o.mouseenter=e=>{t._isResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,n):(u||i)&&t.triggerHeaderTooltipEvent(e,l))}),(u||i)&&(o.mouseleave=e=>{t._isResize||(u||i)&&t.handleTargetLeaveEvent(e)}),["html"===a&&_xeUtils.default.isString(r)?e("span",{class:"vxe-cell--title",domProps:{innerHTML:r},on:o}):e("span",{class:"vxe-cell--title",on:o},(0,_vn.getSlotVNs)(r))]}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,l){var{$table:r,column:t,_columnIndex:n,row:a,items:d}=l,{slots:o,editRender:s,cellRender:i,footerFormatter:c}=t,s=s||i;if(o&&o.footer)return r.callSlot(o.footer,l,e);if(s){i=renderer.get(s.name),o=i?i.renderTableFooter||i.renderFooter:null;if(o)return(0,_vn.getSlotVNs)(o.call(r,e,s,l))}let u="";return _xeUtils.default.isArray(d)?u=d[n]:u=_xeUtils.default.get(a,t.field),[c?formatFooterLabel(c,{itemValue:u,column:t,row:a,items:d,_columnIndex:n}):(0,_utils.formatText)(u,1)]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}let Cell=exports.Cell={createColumn(e,l){var{type:r,sortable:t,remoteSort:n,filters:a,editRender:d,treeNode:o}=l,{editConfig:s,editOpts:i,checkboxOpts:c}=e,u={renderHeader:this.renderDefaultHeader,renderCell:o?this.renderTreeCell:this.renderDefaultCell,renderFooter:this.renderDefaultFooter};switch(r){case"seq":u.renderHeader=this.renderSeqHeader,u.renderCell=o?this.renderTreeIndexCell:this.renderSeqCell;break;case"radio":u.renderHeader=this.renderRadioHeader,u.renderCell=o?this.renderTreeRadioCell:this.renderRadioCell;break;case"checkbox":u.renderHeader=this.renderCheckboxHeader,u.renderCell=c.checkField?o?this.renderTreeSelectionCellByProp:this.renderCheckboxCellByProp:o?this.renderTreeSelectionCell:this.renderCheckboxCell;break;case"expand":u.renderCell=this.renderExpandCell,u.renderData=this.renderExpandData;break;case"html":u.renderCell=o?this.renderTreeHTMLCell:this.renderHTMLCell,a&&(t||n)?u.renderHeader=this.renderSortAndFilterHeader:t||n?u.renderHeader=this.renderSortHeader:a&&(u.renderHeader=this.renderFilterHeader);break;default:s&&d?(u.renderHeader=this.renderEditHeader,u.renderCell="cell"===i.mode?o?this.renderTreeCellEdit:this.renderCellEdit:o?this.renderTreeRowEdit:this.renderRowEdit):a&&(t||n)?u.renderHeader=this.renderSortAndFilterHeader:t||n?u.renderHeader=this.renderSortHeader:a&&(u.renderHeader=this.renderFilterHeader)}return(0,_util.createColumn)(e,l,u)},renderHeaderTitle(e,l){var{$table:r,column:t}=l,{slots:n,editRender:a,cellRender:d}=t,a=a||d;if(n&&n.header)return renderTitleContent(e,l,r.callSlot(n.header,l,e));if(a){d=renderer.get(a.name),n=d?d.renderTableHeader||d.renderHeader:null;if(n)return(0,_vn.getSlotVNs)(renderTitleContent(e,l,n.call(r,e,a,l)))}return renderTitleContent(e,l,(0,_utils.formatText)(t.getTitle(),1))},renderDefaultHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l))},renderDefaultCell(e,l){var{$table:r,row:t,column:n}=l,{slots:a,editRender:d,cellRender:o}=n,o=d||o;if(a&&a.default)return renderCellBaseVNs(e,l,r.callSlot(a.default,l,e));if(o){var a=renderer.get(o.name),s=a?a.renderTableDefault||a.renderDefault:null,a=a?a.renderTableCell||a.renderCell:null,a=d?a:s;if(a)return renderCellBaseVNs(e,l,(0,_vn.getSlotVNs)(a.call(r,e,o,Object.assign({$type:d?"edit":"cell"},l))))}s=r.getCellLabel(t,n),a=d?d.placeholder:"";return renderCellBaseVNs(e,l,[e("span",{class:"vxe-cell--label"},[d&&(0,_utils.eqEmptyValue)(s)?e("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(a),1)):e("span",(0,_utils.formatText)(s,1))])])},renderTreeCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderDefaultCell.call(this,e,l))},renderDefaultFooter(e,l){return[e("span",{class:"vxe-cell--item"},getFooterContent(e,l))]},renderTreeIcon(e,l,r){let{$table:t,isHidden:n}=l;var{treeOpts:a,treeExpandedMaps:d,treeExpandLazyLoadedMaps:o,fullAllDataRowIdData:s}=t,{row:i,column:c,level:u}=l,c=c.slots,{indent:C,lazy:E,trigger:h,iconLoaded:g,showIcon:b,iconOpen:v,iconClose:x}=a,p=a.children||a.childrenField,a=a.hasChild||a.hasChildField,p=i[p],p=p&&p.length;let f=!1,T=!1,m=!1,_=!1;var H={};return c&&c.icon?t.callSlot(c.icon,l,e,r):(n||(c=(0,_util.getRowid)(t,i),T=!!d[c],E&&(d=s[c],m=!!o[c],f=i[a],_=!!d.treeLoaded)),h&&"default"!==h||(H.click=e=>{t.triggerTreeExpandEvent(e,l)}),[e("div",{class:["vxe-cell--tree-node",{"is--active":T}],style:{paddingLeft:u*C+"px"}},[b&&(!E||_?p:f)?[e("div",{class:"vxe-tree--btn-wrapper",on:H},[e("i",{class:["vxe-tree--node-btn",m?g||getIcon().TABLE_TREE_LOADED:T?v||getIcon().TABLE_TREE_OPEN:x||getIcon().TABLE_TREE_CLOSE]})])]:null,e("div",{class:"vxe-tree-cell"},r)])])},renderSeqHeader(e,l){var{$table:r,column:t}=l,n=t.slots;return renderHeaderCellBaseVNs(e,l,renderTitleContent(e,l,n&&n.header?r.callSlot(n.header,l,e):(0,_utils.formatText)(t.getTitle(),1)))},renderSeqCell(e,l){var{$table:r,column:t}=l,{treeConfig:n,seqOpts:a}=r,t=t.slots;return t&&t.default?renderCellBaseVNs(e,l,r.callSlot(t.default,l,e)):(r=l.seq,t=a.seqMethod,renderCellBaseVNs(e,l,[e("span",""+(0,_utils.formatText)(t?t(l):n?r:(a.startIndex||0)+r,1))]))},renderTreeIndexCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderSeqCell(e,l))},renderRadioHeader(e,l){var{$table:r,column:t}=l,n=t.slots,a=n?n.header:null,n=n?n.title:null;return renderHeaderCellBaseVNs(e,l,renderTitleContent(e,l,a?r.callSlot(a,l,e):[e("span",{class:"vxe-radio--label"},n?r.callSlot(n,l,e):(0,_utils.formatText)(t.getTitle(),1))]))},renderRadioCell(e,l){let{$table:r,column:t,isHidden:n}=l;var{radioOpts:a,selectRadioRow:d}=r,o=t.slots,{labelField:a,checkMethod:s,visibleMethod:i}=a,c=l.row,u=o?o.default:null,o=o?o.radio:null,d=c===d;let C=!i||i({row:c}),E=!!s,h;n||(h={click(e){!E&&C&&r.triggerRadioRowEvent(e,l)}},s&&(E=!s({row:c})));i=Object.assign(Object.assign({},l),{checked:d,disabled:E,visible:C});return o?renderCellBaseVNs(e,l,r.callSlot(o,i,e)):(s=[],C&&s.push(e("span",{class:["vxe-radio--icon",d?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(u||a)&&s.push(e("span",{class:"vxe-radio--label"},u?r.callSlot(u,i,e):_xeUtils.default.get(c,a))),renderCellBaseVNs(e,l,[e("span",{class:["vxe-cell--radio",{"is--checked":d,"is--disabled":E}],on:h},s)]))},renderTreeRadioCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderRadioCell(e,l))},renderCheckboxHeader(e,l){let{$table:r,column:t,isHidden:n}=l,{isAllSelected:a,isIndeterminate:d,isAllCheckboxDisabled:o}=r;var s=t.slots,i=s?s.header:null,s=s?s.title:null,c=r.checkboxOpts,u=t.getTitle();let C;n||(C={click(e){o||r.triggerCheckAllEvent(e,!a)}});var E=Object.assign(Object.assign({},l),{checked:a,disabled:o,indeterminate:d});return i?renderHeaderCellBaseVNs(e,l,renderTitleContent(e,E,r.callSlot(i,E,e))):(c.checkStrictly?c.showHeader:!1!==c.showHeader)?renderHeaderCellBaseVNs(e,l,renderTitleContent(e,E,[e("span",{class:["vxe-cell--checkbox",{"is--checked":a,"is--disabled":o,"is--indeterminate":d}],attrs:{title:getI18n("vxe.table.allTitle")},on:C},[e("span",{class:["vxe-checkbox--icon",d?getIcon().TABLE_CHECKBOX_INDETERMINATE:a?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(s||u?[e("span",{class:"vxe-checkbox--label"},s?r.callSlot(s,E,e):u)]:[]))])):renderHeaderCellBaseVNs(e,l,renderTitleContent(e,E,[e("span",{class:"vxe-checkbox--label"},s?r.callSlot(s,E,e):u)]))},renderCheckboxCell(e,l){let{$table:r,row:t,column:n,isHidden:a}=l;var{treeConfig:d,treeIndeterminateMaps:o,selectCheckboxMaps:s}=r,{labelField:i,checkMethod:c,visibleMethod:u}=r.checkboxOpts,C=n.slots,E=C?C.default:null,C=C?C.checkbox:null;let h=!1,g=!1,b=!u||u({row:t}),v=!!c,x;a||(u=(0,_util.getRowid)(r,t),g=!!s[u],x={click(e){!v&&b&&r.triggerCheckRowEvent(e,l,!g)}},c&&(v=!c({row:t})),d&&(h=!!o[u]));s=Object.assign(Object.assign({},l),{checked:g,disabled:v,visible:b,indeterminate:h});return C?renderCellBaseVNs(e,l,r.callSlot(C,s,e)):(c=[],b&&c.push(e("span",{class:["vxe-checkbox--icon",h?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(E||i)&&c.push(e("span",{class:"vxe-checkbox--label"},E?r.callSlot(E,s,e):_xeUtils.default.get(t,i))),renderCellBaseVNs(e,l,[e("span",{class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":v,"is--indeterminate":h,"is--hidden":!b}],on:x},c)]))},renderTreeSelectionCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderCheckboxCell(e,l))},renderCheckboxCellByProp(e,l){let{$table:r,row:t,column:n,isHidden:a}=l;var{treeConfig:d,treeIndeterminateMaps:o,checkboxOpts:s}=r,{labelField:i,checkField:c,checkMethod:u,visibleMethod:C}=s,s=s.indeterminateField||s.halfField,E=n.slots,h=E?E.default:null,E=E?E.checkbox:null;let g=!1,b=!1,v=!C||C({row:t}),x=!!u,p;a||(C=(0,_util.getRowid)(r,t),b=_xeUtils.default.get(t,c),p={click(e){!x&&v&&r.triggerCheckRowEvent(e,l,!b)}},u&&(x=!u({row:t})),d&&(g=!!o[C]));c=Object.assign(Object.assign({},l),{checked:b,disabled:x,visible:v,indeterminate:g});return E?renderCellBaseVNs(e,l,r.callSlot(E,c,e)):(u=[],v&&u.push(e("span",{class:["vxe-checkbox--icon",g?getIcon().TABLE_CHECKBOX_INDETERMINATE:b?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(h||i)&&u.push(e("span",{class:"vxe-checkbox--label"},h?r.callSlot(h,c,e):_xeUtils.default.get(t,i))),renderCellBaseVNs(e,l,[e("span",{class:["vxe-cell--checkbox",{"is--checked":b,"is--disabled":x,"is--indeterminate":s&&!b?t[s]:g,"is--hidden":!v}],on:p},u)]))},renderTreeSelectionCellByProp(e,l){return Cell.renderTreeIcon(e,l,Cell.renderCheckboxCellByProp(e,l))},renderExpandCell(e,l){let{$table:r,isHidden:t,row:n,column:a}=l;var{expandOpts:d,rowExpandedMaps:o,rowExpandLazyLoadedMaps:s}=r,{lazy:d,labelField:i,iconLoaded:c,showIcon:u,iconOpen:C,iconClose:E,visibleMethod:h}=d,g=a.slots,b=g?g.default:null;let v=!1,x=!1;return g&&g.icon?renderCellBaseVNs(e,l,r.callSlot(g.icon,l,e)):(t||(g=(0,_util.getRowid)(r,n),v=!!o[g],d&&(x=!!s[g])),renderCellBaseVNs(e,l,[!u||h&&!h(l)?renderEmptyElement(r):e("span",{class:["vxe-table--expanded",{"is--active":v}],on:{click(e){r.triggerRowExpandEvent(e,l)}}},[e("i",{class:["vxe-table--expand-btn",x?c||getIcon().TABLE_EXPAND_LOADED:v?C||getIcon().TABLE_EXPAND_OPEN:E||getIcon().TABLE_EXPAND_CLOSE]})]),b||i?e("span",{class:"vxe-table--expand-label"},b?r.callSlot(b,l,e):_xeUtils.default.get(n,i)):renderEmptyElement(r)]))},renderExpandData(e,l){var{$table:r,column:t}=l,{slots:t,contentRender:n}=t;if(t&&t.content)return r.callSlot(t.content,l,e);if(n){t=renderer.get(n.name),t=t?t.renderTableExpand||t.renderExpand:null;if(t)return(0,_vn.getSlotVNs)(t.call(r,e,n,l))}return[]},renderHTMLCell(e,l){var{$table:r,column:t}=l,t=t.slots;return t&&t.default?renderCellBaseVNs(e,l,r.callSlot(t.default,l,e)):renderCellBaseVNs(e,l,[e("span",{class:"vxe-cell--html",domProps:{innerHTML:getDefaultCellLabel(l)}})])},renderTreeHTMLCell(e,l){return Cell.renderTreeIcon(e,l,Cell.renderHTMLCell(e,l))},renderSortAndFilterHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l).concat(Cell.renderSortIcon(e,l).concat(Cell.renderFilterIcon(e,l))))},renderSortHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l).concat(Cell.renderSortIcon(e,l)))},renderSortIcon(e,l){let{$table:r,column:t}=l;var{showIcon:l,iconLayout:n,iconAsc:a,iconDesc:d}=r.sortOpts;return l?[e("span",{class:["vxe-cell--sort",`vxe-cell--sort-${n}-layout`]},[e("i",{class:["vxe-sort--asc-btn",a||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===t.order}],attrs:{title:getI18n("vxe.table.sortAsc")},on:{click(e){e.stopPropagation(),r.triggerSortEvent(e,t,"asc")}}}),e("i",{class:["vxe-sort--desc-btn",d||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===t.order}],attrs:{title:getI18n("vxe.table.sortDesc")},on:{click(e){e.stopPropagation(),r.triggerSortEvent(e,t,"desc")}}})])]:[]},renderFilterHeader(e,l){return renderHeaderCellBaseVNs(e,l,Cell.renderHeaderTitle(e,l).concat(Cell.renderFilterIcon(e,l)))},renderFilterIcon(e,l){let{$table:r,column:t,hasFilter:n}=l;var{filterStore:a,filterOpts:d}=r,{showIcon:d,iconNone:o,iconMatch:s}=d;return d?[e("span",{class:["vxe-cell--filter",{"is--active":a.visible&&a.column===t}]},[e("i",{class:["vxe-filter--btn",n?s||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],attrs:{title:getI18n("vxe.table.filter")},on:{click(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}}})])]:[]},renderEditHeader(e,l){var{$table:r,column:t}=l,{editConfig:n,editRules:a,editOpts:d}=r,{sortable:o,remoteSort:s,filters:i,editRender:c}=t;let u=!1,C=(a&&(a=_xeUtils.default.get(a,t.field))&&(u=a.some(e=>e.required)),[]);return(0,_utils.isEnableConf)(n)&&(C=[u&&d.showAsterisk?e("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(r),(0,_utils.isEnableConf)(c)&&d.showIcon?e("i",{class:["vxe-cell--edit-icon",d.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(r)]),renderHeaderCellBaseVNs(e,l,C.concat(Cell.renderHeaderTitle(e,l)).concat(o||s?Cell.renderSortIcon(e,l):[]).concat(i?Cell.renderFilterIcon(e,l):[]))},renderRowEdit(e,l){var{$table:r,column:t}=l,t=t.editRender,r=r.editStore.actived;return Cell.runRenderer(e,l,this,(0,_utils.isEnableConf)(t)&&r&&r.row===l.row)},renderTreeRowEdit(e,l){return Cell.renderTreeIcon(e,l,Cell.renderRowEdit(e,l))},renderCellEdit(e,l){var{$table:r,column:t}=l,t=t.editRender,r=r.editStore.actived;return Cell.runRenderer(e,l,this,(0,_utils.isEnableConf)(t)&&r&&r.row===l.row&&r.column===l.column)},renderTreeCellEdit(e,l){return Cell.renderTreeIcon(e,l,Cell.renderCellEdit(e,l))},runRenderer(e,l,r,t){var{$table:n,column:a}=l,{slots:a,editRender:d,formatter:o}=a,s=renderer.get(d.name),s=s?s.renderTableEdit||s.renderEdit:null,i=Object.assign({$type:"",isEdit:t},l);return t?a&&a.edit?n.callSlot(a.edit,i,e):s?(0,_vn.getSlotVNs)(s.call(n,e,d,i)):[]:a&&a.default?renderCellBaseVNs(e,l,n.callSlot(a.default,i,e)):o?renderCellBaseVNs(e,l,[e("span",{class:"vxe-cell--label"},[getDefaultCellLabel(i)])]):Cell.renderDefaultCell.call(r,e,i)}};var _default=exports.default=Cell;
@@ -3,11 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.columnWatch = exports.columnProps = void 0;
7
7
  var _cell = _interopRequireDefault(require("./cell"));
8
+ var _comp = require("../../ui/src/comp");
8
9
  var _util = require("./util");
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- const props = {
11
+ const columnProps = exports.columnProps = {
11
12
  // 列唯一主键
12
13
  colId: [String, Number],
13
14
  // 渲染类型 seq,radio,checkbox,expand,html
@@ -123,9 +124,9 @@ const props = {
123
124
  // 额外的参数
124
125
  params: Object
125
126
  };
126
- const watch = {};
127
- Object.keys(props).forEach(name => {
128
- watch[name] = function (value) {
127
+ const columnWatch = exports.columnWatch = {};
128
+ Object.keys(columnProps).forEach(name => {
129
+ columnWatch[name] = function (value) {
129
130
  this.columnConfig.update(name, value);
130
131
  if (this.$xetable) {
131
132
  if (name === 'filters') {
@@ -137,9 +138,9 @@ Object.keys(props).forEach(name => {
137
138
  }
138
139
  };
139
140
  });
140
- var _default = exports.default = {
141
+ var _default = exports.default = (0, _comp.defineVxeComponent)({
141
142
  name: 'VxeColumn',
142
- props,
143
+ props: columnProps,
143
144
  provide() {
144
145
  return {
145
146
  $xecolumn: this,
@@ -154,11 +155,12 @@ var _default = exports.default = {
154
155
  default: null
155
156
  }
156
157
  },
157
- watch,
158
+ watch: columnWatch,
158
159
  created() {
159
160
  this.columnConfig = this.createColumn(this.$xetable, this);
160
161
  },
161
162
  mounted() {
163
+ this.columnConfig.slots = this.$scopedSlots;
162
164
  (0, _util.assembleColumn)(this);
163
165
  },
164
166
  destroyed() {
@@ -168,4 +170,4 @@ var _default = exports.default = {
168
170
  return h('div', this.$slots.default);
169
171
  },
170
172
  methods: _cell.default
171
- };
173
+ });
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _cell=_interopRequireDefault(require("./cell")),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let props={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],footerFormatter:[Function,Array,String],sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,treeNode:Boolean,dragSort:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,params:Object},watch={};Object.keys(props).forEach(t=>{watch[t]=function(e){this.columnConfig.update(t,e),this.$xetable&&("filters"===t?(this.$xetable.setFilter(this.columnConfig,e),this.$xetable.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&this.$xetable.handleRefreshColumnQueue())}});var _default=exports.default={name:"VxeColumn",props:props,provide(){return{$xecolumn:this,$xegrid:null}},inject:{$xetable:{default:null},$xecolumn:{default:null}},watch:watch,created(){this.columnConfig=this.createColumn(this.$xetable,this)},mounted(){(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],footerFormatter:[Function,Array,String],sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,treeNode:Boolean,dragSort:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,params:Object},columnWatch=exports.columnWatch={};Object.keys(columnProps).forEach(t=>{columnWatch[t]=function(e){this.columnConfig.update(t,e),this.$xetable&&("filters"===t?(this.$xetable.setFilter(this.columnConfig,e),this.$xetable.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(t)&&this.$xetable.handleRefreshColumnQueue())}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,provide(){return{$xecolumn:this,$xegrid:null}},inject:{$xetable:{default:null},$xecolumn:{default:null}},watch:columnWatch,created(){this.columnConfig=this.createColumn(this.$xetable,this)},mounted(){this.columnConfig.slots=this.$scopedSlots,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
@@ -4,15 +4,48 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _column = _interopRequireDefault(require("./column"));
7
+ var _cell = _interopRequireDefault(require("./cell"));
8
+ var _comp = require("../../ui/src/comp");
9
+ var _util = require("./util");
10
+ var _column = require("./column");
8
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- var _default = exports.default = {
12
+ var _default = exports.default = (0, _comp.defineVxeComponent)({
10
13
  name: 'VxeColgroup',
11
- extends: _column.default,
14
+ props: _column.columnProps,
12
15
  provide() {
13
16
  return {
14
- xecolgroup: this,
17
+ $xecolumn: this,
15
18
  $xegrid: null
16
19
  };
17
- }
18
- };
20
+ },
21
+ inject: {
22
+ $xetable: {
23
+ default: null
24
+ },
25
+ $xecolumn: {
26
+ default: null
27
+ }
28
+ },
29
+ watch: _column.columnWatch,
30
+ created() {
31
+ this.columnConfig = this.createColumn(this.$xetable, this);
32
+ },
33
+ mounted() {
34
+ const {
35
+ $scopedSlots
36
+ } = this;
37
+ const columnSlots = {};
38
+ if ($scopedSlots.header) {
39
+ columnSlots.header = $scopedSlots.header;
40
+ }
41
+ this.columnConfig.slots = columnSlots;
42
+ (0, _util.assembleColumn)(this);
43
+ },
44
+ destroyed() {
45
+ (0, _util.destroyColumn)(this);
46
+ },
47
+ render(h) {
48
+ return h('div', this.$slots.default);
49
+ },
50
+ methods: _cell.default
51
+ });
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _column=_interopRequireDefault(require("./column"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default={name:"VxeColgroup",extends:_column.default,provide(){return{xecolgroup:this,$xegrid:null}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util"),_column=require("./column");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColgroup",props:_column.columnProps,provide(){return{$xecolumn:this,$xegrid:null}},inject:{$xetable:{default:null},$xecolumn:{default:null}},watch:_column.columnWatch,created(){this.columnConfig=this.createColumn(this.$xetable,this)},mounted(){var e=this.$scopedSlots,t={};e.header&&(t.header=e.header),this.columnConfig.slots=t,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
@@ -24,6 +24,7 @@ const {
24
24
  // const isWebkit = browse['-webkit'] && !browse.edge
25
25
  // const debounceScrollYDuration = browse.msie ? 80 : 20
26
26
  const customStorageKey = 'VXE_CUSTOM_STORE';
27
+ const tpImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
27
28
  // 获取所有的列,排除分组
28
29
  const getColumnList = columns => {
29
30
  const result = [];
@@ -536,11 +537,18 @@ function showDropTip($xeTable, evnt, trEl, thEl, showLine, dragPos) {
536
537
  if (cdLineEl) {
537
538
  if (showLine) {
538
539
  const thRect = thEl.getBoundingClientRect();
540
+ const offsetTop = Math.max(0, thRect.y - wrapperRect.y);
539
541
  cdLineEl.style.display = 'block';
542
+ cdLineEl.style.top = `${offsetTop}px`;
540
543
  cdLineEl.style.left = `${Math.max(1, thRect.x - wrapperRect.x)}px`;
541
544
  cdLineEl.style.width = `${thRect.width}px`;
542
- cdLineEl.style.height = `${wrapperRect.height - scrollbarHeight}px`;
545
+ if (prevDragToChild) {
546
+ cdLineEl.style.height = `${thRect.height}px`;
547
+ } else {
548
+ cdLineEl.style.height = `${wrapperRect.height - offsetTop - scrollbarHeight}px`;
549
+ }
543
550
  cdLineEl.setAttribute('drag-pos', dragPos);
551
+ cdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
544
552
  } else {
545
553
  cdLineEl.style.display = '';
546
554
  }
@@ -1100,12 +1108,12 @@ const Methods = {
1100
1108
  height: 0
1101
1109
  };
1102
1110
  }
1111
+ cacheItem.row = row;
1112
+ cacheItem.items = items;
1113
+ cacheItem.parent = parent;
1114
+ cacheItem.level = level;
1115
+ cacheItem.index = treeConfig && parent ? -1 : index;
1103
1116
  if (isSource) {
1104
- cacheItem.row = row;
1105
- cacheItem.items = items;
1106
- cacheItem.parent = parent;
1107
- cacheItem.level = level;
1108
- cacheItem.index = treeConfig && parent ? -1 : index;
1109
1117
  fullDataRowIdMaps[rowid] = cacheItem;
1110
1118
  }
1111
1119
  fullAllDataRowIdMaps[rowid] = cacheItem;
@@ -1220,18 +1228,26 @@ const Methods = {
1220
1228
  * 牺牲数据组装的耗时,用来换取使用过程中的流畅
1221
1229
  */
1222
1230
  cacheColumnMap() {
1231
+ const $xeTable = this;
1232
+ const props = $xeTable;
1233
+ const reactData = $xeTable;
1234
+ const internalData = $xeTable;
1223
1235
  const {
1224
1236
  tableFullColumn,
1225
- collectColumn,
1226
- fullColumnMap,
1227
- showOverflow,
1228
- columnOpts,
1229
- rowOpts
1230
- } = this;
1231
- const fullColumnIdData = this.fullColumnIdData = {};
1232
- const fullColumnFieldData = this.fullColumnFieldData = {};
1237
+ collectColumn
1238
+ } = internalData;
1239
+ const fullColumnIdData = internalData.fullColumnIdData = {};
1240
+ const fullColumnFieldData = internalData.fullColumnFieldData = {};
1241
+ const mouseOpts = $xeTable.computeMouseOpts;
1242
+ const columnOpts = $xeTable.computeColumnOpts;
1243
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
1244
+ const {
1245
+ isCrossDrag,
1246
+ isSelfToChildDrag
1247
+ } = columnDragOpts;
1248
+ const rowOpts = $xeTable.computeRowOpts;
1233
1249
  const isGroup = collectColumn.some(_utils.hasChildrenList);
1234
- let isAllOverflow = !!showOverflow;
1250
+ let isAllOverflow = !!props.showOverflow;
1235
1251
  let expandColumn;
1236
1252
  let treeNodeColumn;
1237
1253
  let checkboxColumn;
@@ -1247,6 +1263,8 @@ const Methods = {
1247
1263
  treeNode
1248
1264
  } = column;
1249
1265
  const rest = {
1266
+ $index: -1,
1267
+ _index: -1,
1250
1268
  column,
1251
1269
  colid,
1252
1270
  index,
@@ -1255,12 +1273,14 @@ const Methods = {
1255
1273
  width: 0
1256
1274
  };
1257
1275
  if (field) {
1258
- if (process.env.NODE_ENV === 'development') {
1259
- if (fullColumnFieldData[field]) {
1260
- (0, _log.warnLog)('vxe.error.colRepet', ['field', field]);
1261
- }
1276
+ if (fullColumnFieldData[field]) {
1277
+ (0, _log.errLog)('vxe.error.colRepet', ['field', field]);
1262
1278
  }
1263
1279
  fullColumnFieldData[field] = rest;
1280
+ } else {
1281
+ if (isCrossDrag || isSelfToChildDrag) {
1282
+ (0, _log.errLog)('vxe.error.emptyProp', ['column.field']);
1283
+ }
1264
1284
  }
1265
1285
  if (!hasFixed && fixed) {
1266
1286
  hasFixed = fixed;
@@ -1304,27 +1324,6 @@ const Methods = {
1304
1324
  }
1305
1325
  }
1306
1326
  }
1307
- if (process.env.NODE_ENV === 'development') {
1308
- if (this.showOverflow && column.showOverflow === false) {
1309
- (0, _log.warnLog)('vxe.error.errConflicts', [`table.show-overflow=${this.showOverflow}`, `column.show-overflow=${column.showOverflow}`]);
1310
- }
1311
- if (this.showHeaderOverflow && column.showHeaderOverflow === false) {
1312
- (0, _log.warnLog)('vxe.error.errConflicts', [`table.show-header-overflow=${this.showHeaderOverflow}`, `column.show-header-overflow=${column.showHeaderOverflow}`]);
1313
- }
1314
- if (this.showFooterOverflow && column.showFooterOverflow === false) {
1315
- (0, _log.warnLog)('vxe.error.errConflicts', [`table.show-footer-overflow=${this.showFooterOverflow}`, `column.show-footer-overflow=${column.showFooterOverflow}`]);
1316
- }
1317
- }
1318
- if (process.env.NODE_ENV === 'development') {
1319
- if (htmlColumn) {
1320
- if (!columnOpts.useKey) {
1321
- (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey', 'column.type=html']);
1322
- }
1323
- if (!rowOpts.useKey) {
1324
- (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey', 'column.type=html']);
1325
- }
1326
- }
1327
- }
1328
1327
  if (isAllOverflow && column.showOverflow === false) {
1329
1328
  isAllOverflow = false;
1330
1329
  }
@@ -1332,9 +1331,7 @@ const Methods = {
1332
1331
  (0, _log.errLog)('vxe.error.colRepet', ['colId', colid]);
1333
1332
  }
1334
1333
  fullColumnIdData[colid] = rest;
1335
- fullColumnMap.set(column, rest);
1336
1334
  };
1337
- fullColumnMap.clear();
1338
1335
  if (isGroup) {
1339
1336
  _xeUtils.default.eachTree(collectColumn, (column, index, items, path, parent, nodes) => {
1340
1337
  column.level = nodes.length;
@@ -1344,14 +1341,24 @@ const Methods = {
1344
1341
  tableFullColumn.forEach(handleFunc);
1345
1342
  }
1346
1343
  if (process.env.NODE_ENV === 'development') {
1347
- if (expandColumn && this.mouseOpts.area) {
1344
+ if (expandColumn && mouseOpts.area) {
1348
1345
  (0, _log.errLog)('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
1349
1346
  }
1350
1347
  }
1351
- this.isGroup = isGroup;
1352
- this.treeNodeColumn = treeNodeColumn;
1353
- this.expandColumn = expandColumn;
1354
- this.isAllOverflow = isAllOverflow;
1348
+ if (process.env.NODE_ENV === 'development') {
1349
+ if (htmlColumn) {
1350
+ if (!columnOpts.useKey) {
1351
+ (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1352
+ }
1353
+ if (!rowOpts.useKey) {
1354
+ (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1355
+ }
1356
+ }
1357
+ }
1358
+ reactData.isGroup = isGroup;
1359
+ reactData.treeNodeColumn = treeNodeColumn;
1360
+ reactData.expandColumn = expandColumn;
1361
+ reactData.isAllOverflow = isAllOverflow;
1355
1362
  },
1356
1363
  /**
1357
1364
  * 根据 tr 元素获取对应的 row 信息
@@ -3160,6 +3167,10 @@ const Methods = {
3160
3167
  const {
3161
3168
  rceTimeout
3162
3169
  } = internalData;
3170
+ const el = $xeTable.$refs.refElem;
3171
+ if (!el || !el.clientWidth) {
3172
+ $xeTable.autoCellWidth();
3173
+ }
3163
3174
  if (rceTimeout) {
3164
3175
  clearTimeout(rceTimeout);
3165
3176
  $xeTable.$nextTick(() => {
@@ -6014,8 +6025,9 @@ const Methods = {
6014
6025
  * 行拖拽
6015
6026
  */
6016
6027
  handleRowDragDragstartEvent(evnt) {
6017
- const img = new Image();
6018
6028
  if (evnt.dataTransfer) {
6029
+ const img = new Image();
6030
+ img.src = tpImg;
6019
6031
  evnt.dataTransfer.setDragImage(img, 0, 0);
6020
6032
  }
6021
6033
  },
@@ -6099,8 +6111,8 @@ const Methods = {
6099
6111
  return;
6100
6112
  }
6101
6113
  if (oldAllMaps[newRowid]) {
6114
+ isSelfToChildStatus = true;
6102
6115
  if (!isSelfToChildDrag) {
6103
- isSelfToChildStatus = true;
6104
6116
  if (_ui.VxeUI.modal) {
6105
6117
  _ui.VxeUI.modal.message({
6106
6118
  status: 'error',
@@ -6176,7 +6188,7 @@ const Methods = {
6176
6188
  }
6177
6189
  reactData.isDragRowMove = true;
6178
6190
  $xeTable.handleTableData(treeConfig && transform);
6179
- $xeTable.cacheRowMap(true);
6191
+ $xeTable.cacheRowMap();
6180
6192
  $xeTable.updateScrollYStatus();
6181
6193
  if (!(treeConfig && transform)) {
6182
6194
  $xeTable.updateAfterDataIndex();
@@ -6204,6 +6216,7 @@ const Methods = {
6204
6216
  }
6205
6217
  hideDropTip($xeTable);
6206
6218
  clearRowDropOrigin($xeTable);
6219
+ internalData.prevDragToChild = false;
6207
6220
  reactData.dragRow = null;
6208
6221
  reactData.dragCol = null;
6209
6222
  setTimeout(() => {
@@ -6313,8 +6326,9 @@ const Methods = {
6313
6326
  * 列拖拽
6314
6327
  */
6315
6328
  handleHeaderCellDragDragstartEvent(evnt) {
6316
- const img = new Image();
6317
6329
  if (evnt.dataTransfer) {
6330
+ const img = new Image();
6331
+ img.src = tpImg;
6318
6332
  evnt.dataTransfer.setDragImage(img, 0, 0);
6319
6333
  }
6320
6334
  },
@@ -6328,6 +6342,9 @@ const Methods = {
6328
6342
  } = props;
6329
6343
  const columnDragOpts = $xeTable.computeColumnDragOpts;
6330
6344
  const {
6345
+ isCrossDrag,
6346
+ isSelfToChildDrag,
6347
+ isToChildDrag,
6331
6348
  dragEndMethod
6332
6349
  } = columnDragOpts;
6333
6350
  const {
@@ -6336,38 +6353,126 @@ const Methods = {
6336
6353
  const {
6337
6354
  collectColumn,
6338
6355
  prevDragCol,
6339
- prevDragPos
6356
+ prevDragPos,
6357
+ prevDragToChild
6340
6358
  } = internalData;
6341
6359
  const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
6342
6360
  if (prevDragCol && dragCol) {
6343
6361
  // 判断是否有拖动
6344
6362
  if (prevDragCol !== dragCol) {
6363
+ const oldColumn = dragCol;
6364
+ const newColumn = prevDragCol;
6345
6365
  Promise.resolve(dragEndMethod ? dragEndMethod({
6346
- oldColumn: dragCol,
6347
- newColumn: prevDragCol,
6366
+ oldColumn,
6367
+ newColumn,
6348
6368
  dragPos: prevDragPos,
6349
6369
  offsetIndex: dragOffsetIndex
6350
6370
  }) : true).then(status => {
6351
6371
  if (!status) {
6352
6372
  return;
6353
6373
  }
6374
+ let oafIndex = -1;
6375
+ let nafIndex = -1;
6376
+ const oldAllMaps = {};
6377
+ _xeUtils.default.eachTree([oldColumn], column => {
6378
+ oldAllMaps[column.id] = column;
6379
+ });
6380
+ let isSelfToChildStatus = false;
6381
+ if (oldColumn.parentId && newColumn.parentId) {
6382
+ // 子到子
6383
+ if (!isCrossDrag) {
6384
+ return;
6385
+ }
6386
+ if (oldAllMaps[newColumn.id]) {
6387
+ isSelfToChildStatus = true;
6388
+ if (!isSelfToChildDrag) {
6389
+ if (_ui.VxeUI.modal) {
6390
+ _ui.VxeUI.modal.message({
6391
+ status: 'error',
6392
+ content: getI18n('vxe.error.treeDragChild')
6393
+ });
6394
+ }
6395
+ return;
6396
+ }
6397
+ }
6398
+ } else if (oldColumn.parentId) {
6399
+ // 子到根
6400
+ if (!isCrossDrag) {
6401
+ return;
6402
+ }
6403
+ } else if (newColumn.parentId) {
6404
+ // 根到子
6405
+ if (!isCrossDrag) {
6406
+ return;
6407
+ }
6408
+ if (oldAllMaps[newColumn.id]) {
6409
+ isSelfToChildStatus = true;
6410
+ if (!isSelfToChildDrag) {
6411
+ if (_ui.VxeUI.modal) {
6412
+ _ui.VxeUI.modal.message({
6413
+ status: 'error',
6414
+ content: getI18n('vxe.error.treeDragChild')
6415
+ });
6416
+ }
6417
+ return;
6418
+ }
6419
+ }
6420
+ } else {
6421
+ // 根到根
6422
+ }
6423
+ const oldewMatchRest = _xeUtils.default.findTree(collectColumn, item => item.id === oldColumn.id);
6424
+ // 改变层级
6425
+ if (isSelfToChildStatus && isSelfToChildDrag) {
6426
+ if (oldewMatchRest) {
6427
+ const {
6428
+ items: oCols,
6429
+ index: oIndex
6430
+ } = oldewMatchRest;
6431
+ const childList = oldColumn.children || [];
6432
+ childList.forEach(column => {
6433
+ column.parentId = oldColumn.parentId;
6434
+ });
6435
+ oCols.splice(oIndex, 1, ...childList);
6436
+ oldColumn.children = [];
6437
+ }
6438
+ } else {
6439
+ if (oldewMatchRest) {
6440
+ const {
6441
+ items: oCols,
6442
+ index: oIndex,
6443
+ parent: oParent
6444
+ } = oldewMatchRest;
6445
+ oCols.splice(oIndex, 1);
6446
+ if (!oParent) {
6447
+ oafIndex = oIndex;
6448
+ }
6449
+ }
6450
+ }
6451
+ const newMatchRest = _xeUtils.default.findTree(collectColumn, item => item.id === newColumn.id);
6452
+ if (newMatchRest) {
6453
+ const {
6454
+ items: nCols,
6455
+ index: nIndex,
6456
+ parent: nParent
6457
+ } = newMatchRest;
6458
+ // 转子级
6459
+ if (isToChildDrag && prevDragToChild) {
6460
+ oldColumn.parentId = newColumn.id;
6461
+ newColumn.children = (newColumn.children || []).concat([oldColumn]);
6462
+ } else {
6463
+ oldColumn.parentId = newColumn.parentId;
6464
+ nCols.splice(nIndex + dragOffsetIndex, 0, oldColumn);
6465
+ }
6466
+ if (!nParent) {
6467
+ nafIndex = nIndex;
6468
+ }
6469
+ }
6354
6470
  _xeUtils.default.eachTree(collectColumn, (column, index, items, path, parent) => {
6355
6471
  if (!parent) {
6356
6472
  const sortIndex = index + 1;
6357
6473
  column.renderSortNumber = sortIndex;
6358
6474
  }
6359
6475
  });
6360
- const oafIndex = _xeUtils.default.findIndexOf(collectColumn, item => item.id === dragCol.id);
6361
- const nafIndex = _xeUtils.default.findIndexOf(collectColumn, item => item.id === prevDragCol.id) + dragOffsetIndex;
6362
- const newTargetCol = collectColumn[nafIndex];
6363
- if (newTargetCol) {
6364
- // 插入最后位置
6365
- dragCol.renderSortNumber = newTargetCol.renderSortNumber;
6366
- newTargetCol.renderSortNumber = dragCol.renderSortNumber + 0.5;
6367
- } else {
6368
- // 插入新位置
6369
- dragCol.renderSortNumber = collectColumn.length + 1.5;
6370
- }
6371
6476
  reactData.isDragColMove = true;
6372
6477
  if (mouseConfig) {
6373
6478
  if ($xeTable.clearSelected) {
@@ -6378,14 +6483,12 @@ const Methods = {
6378
6483
  $xeTable.clearCopyCellArea();
6379
6484
  }
6380
6485
  }
6381
- $xeTable.analyColumnWidth();
6382
- $xeTable.$nextTick().then(() => {
6486
+ $xeTable.refreshColumn(true).then(() => {
6383
6487
  $xeTable.updateCellAreas();
6384
- $xeTable.refreshColumn(true);
6385
6488
  });
6386
6489
  $xeTable.dispatchEvent('column-dragend', {
6387
- oldColumn: dragCol,
6388
- newColumn: prevDragCol,
6490
+ oldColumn,
6491
+ newColumn,
6389
6492
  dragPos: prevDragPos,
6390
6493
  offsetIndex: dragOffsetIndex,
6391
6494
  _index: {
@@ -6399,6 +6502,7 @@ const Methods = {
6399
6502
  }
6400
6503
  hideDropTip($xeTable);
6401
6504
  clearColDropOrigin($xeTable);
6505
+ internalData.prevDragToChild = false;
6402
6506
  reactData.dragRow = null;
6403
6507
  reactData.dragCol = null;
6404
6508
  setTimeout(() => {
@@ -6412,10 +6516,16 @@ const Methods = {
6412
6516
  const {
6413
6517
  dragCol
6414
6518
  } = reactData;
6519
+ const columnDragOpts = $xeTable.computeColumnDragOpts;
6520
+ const {
6521
+ isToChildDrag,
6522
+ isCrossDrag
6523
+ } = columnDragOpts;
6415
6524
  if (!dragCol) {
6416
6525
  evnt.preventDefault();
6417
6526
  return;
6418
6527
  }
6528
+ const hasCtrlKey = evnt.ctrlKey;
6419
6529
  const thEl = evnt.currentTarget;
6420
6530
  const colid = thEl.getAttribute('colid');
6421
6531
  const column = $xeTable.getColumnById(colid);
@@ -6426,11 +6536,11 @@ const Methods = {
6426
6536
  } = reactData;
6427
6537
  const offsetX = evnt.clientX - thEl.getBoundingClientRect().x;
6428
6538
  const dragPos = offsetX < thEl.clientWidth / 2 ? 'left' : 'right';
6429
- if (dragCol.id === column.id || column.parentId) {
6539
+ if (dragCol && dragCol.id === column.id || !isCrossDrag && column.parentId) {
6430
6540
  showDropTip($xeTable, evnt, null, thEl, false, dragPos);
6431
6541
  return;
6432
6542
  }
6433
- internalData.prevDragToChild = false;
6543
+ internalData.prevDragToChild = !!(isToChildDrag && hasCtrlKey);
6434
6544
  internalData.prevDragCol = column;
6435
6545
  internalData.prevDragPos = dragPos;
6436
6546
  showDropTip($xeTable, evnt, null, thEl, true, dragPos);