vxe-table 4.10.1 → 4.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/es/style.css +1 -1
- package/es/table/module/custom/hook.js +3 -3
- package/es/table/src/cell.js +2 -1
- package/es/table/src/table.js +67 -29
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +96 -50
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/hook.js +3 -3
- package/lib/table/src/cell.js +2 -1
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/table.js +79 -44
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/table/module/custom/hook.ts +3 -3
- package/packages/table/src/cell.ts +2 -1
- package/packages/table/src/table.ts +66 -29
- /package/es/{iconfont.1736122958782.ttf → iconfont.1736228981076.ttf} +0 -0
- /package/es/{iconfont.1736122958782.woff → iconfont.1736228981076.woff} +0 -0
- /package/es/{iconfont.1736122958782.woff2 → iconfont.1736228981076.woff2} +0 -0
- /package/lib/{iconfont.1736122958782.ttf → iconfont.1736228981076.ttf} +0 -0
- /package/lib/{iconfont.1736122958782.woff → iconfont.1736228981076.woff} +0 -0
- /package/lib/{iconfont.1736122958782.woff2 → iconfont.1736228981076.woff2} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
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}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){let{$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)}}):renderEmptyElement(r)}function renderTitleSuffixIcon(l){let{$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)}}):renderEmptyElement(r)}function renderCellDragIcon(l){let r=l.$table;var e=r.props.dragConfig,t=r.getComputeMaps().computeRowDragOpts,{icon:t,trigger:n,disabledMethod:a}=t.value,a=a||(e?e.rowDisabledMethod:null);let o=a&&a(l);a={};return"cell"!==n&&(a.onMousedown=e=>{o||r.handleCellDragMousedownEvent(e,l)},a.onMouseup=r.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":o}]},a),[(0,_vue.h)("i",{class:t||(e?e.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t.dragSort,{treeConfig:a,dragConfig:o}=r.props,{computeRowOpts:r,computeRowDragOpts:d}=r.getComputeMaps(),r=r.value,{showIcon:d,isPeerDrag:s,isCrossDrag:i,visibleMethod:c}=d.value,c=c||(o?o.rowVisibleMethod:null),l=_xeUtils.default.isArray(l)?l:[l];return!(t&&r.drag&&(d||o&&o.showRowIcon))||c&&!c(e)||a&&!s&&!i&&n||l.unshift(renderCellDragIcon(e)),l}function renderHeaderCellDragIcon(r){let{$table:t,column:e}=r;var{computeColumnOpts:n,computeColumnDragOpts:l}=t.getComputeMaps(),n=n.value,{showIcon:l,icon:a,trigger:o,isPeerDrag:d,isCrossDrag:s,visibleMethod:i,disabledMethod:c}=l.value;if(!n.drag||!l||i&&!i(r)||e.fixed||!d&&!s&&e.parentId)return renderEmptyElement(t);{let l=c&&c(r);n={};return"cell"!==o&&(n.onMousedown=e=>{l||t.handleHeaderCellDragMousedownEvent(e,r)},n.onMouseup=t.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":l}]},n),[(0,_vue.h)("i",{class:a||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function renderTitleContent(l,e){let{$table:r,column:t}=l;var n=r.props;let a=r.reactData;var o=r.getComputeMaps().computeTooltipOpts,n=n.showHeaderOverflow,{type:d,showHeaderOverflow:s}=t;let i=o.value.showAll;o=_xeUtils.default.isUndefined(s)||_xeUtils.default.isNull(s)?n:s;let c="title"===o,u=!0===o||"tooltip"===o;n={};return(c||u||i)&&(n.onMouseenter=e=>{a._isResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,t):(u||i)&&r.triggerHeaderTooltipEvent(e,l))}),(u||i)&&(n.onMouseleave=e=>{a._isResize||(u||i)&&r.handleTargetLeaveEvent(e)}),["html"===d&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},n)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},n),(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)}function renderCellHandle(e){var{column:l,$table:r}=e,t=r.props.editConfig,{type:l,treeNode:n,editRender:a}=l,{computeEditOpts:r,computeCheckboxOpts:o}=r.getComputeMaps(),d=o.value,o=r.value;switch(l){case"seq":return n?Cell.renderTreeIndexCell(e):Cell.renderSeqCell(e);case"radio":return n?Cell.renderTreeRadioCell(e):Cell.renderRadioCell(e);case"checkbox":return d.checkField?n?Cell.renderTreeSelectionCellByProp(e):Cell.renderCheckboxCellByProp(e):n?Cell.renderTreeSelectionCell(e):Cell.renderCheckboxCell(e);case"expand":return Cell.renderExpandCell(e);case"html":return n?Cell.renderTreeHTMLCell(e):Cell.renderHTMLCell(e)}return t&&a?"cell"===o.mode?n?Cell.renderTreeCellEdit(e):Cell.renderCellEdit(e):n?Cell.renderTreeRowEdit(e):Cell.renderRowEdit(e):n?Cell.renderTreeCell(e):Cell.renderDefaultCell(e)}function renderHeaderHandle(e){var{column:l,$table:r}=e,r=r.props.editConfig,{type:l,filters:t,sortable:n,editRender:a}=l;switch(l){case"seq":return Cell.renderSeqHeader(e);case"radio":return Cell.renderRadioHeader(e);case"checkbox":return Cell.renderCheckboxHeader(e);case"html":if(t&&n)return Cell.renderSortAndFilterHeader(e);if(n)return Cell.renderSortHeader(e);if(t)return Cell.renderFilterHeader(e)}return r&&a?Cell.renderEditHeader(e):t&&n?Cell.renderSortAndFilterHeader(e):n?Cell.renderSortHeader(e):t?Cell.renderFilterHeader(e):Cell.renderDefaultHeader(e)}function renderFooterHandle(e){return Cell.renderDefaultFooter(e)}let Cell=exports.Cell={createColumn(e,l){var r=l.type,t={renderHeader:renderHeaderHandle,renderCell:renderCellHandle,renderFooter:renderFooterHandle};return"expand"===r&&(t.renderData=Cell.renderExpandData),(0,_util.createColumn)(e,l,t)},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 renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(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){let{$table:r,isHidden:t}=l;var n=r.reactData,a=r.internalData,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:h,iconClose:E}=o,_=o.children||o.childrenField,o=o.hasChild||o.hasChildField,_=s[_],_=_&&_.length,i=i?i.icon:null;let b=!1,x=!1,f=!1,m=!1;var T={};return i?r.callSlot(i,l):(t||(i=(0,_util.getRowid)(r,s),x=!!n[i],C&&(n=a[i],f=!!d[i],b=s[o],m=!!n.treeLoaded)),v&&"default"!==v||(T.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||m?_:b)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},T),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",f?p||getIcon().TABLE_TREE_LOADED:x?h||getIcon().TABLE_TREE_OPEN:E||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 renderHeaderCellBaseVNs(e,renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:r}=e,t=l.props.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 renderHeaderCellBaseVNs(e,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){let{$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);let u=!s||s({row:i}),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){let{$table:l,column:r,isHidden:t}=e;var n=l.reactData,{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();let{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(),u={},C=(t||(u.onClick=e=>{i||l.triggerCheckAllEvent(e,!d)}),Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s}));return a?renderHeaderCellBaseVNs(e,renderTitleContent(C,l.callSlot(a,C))):(o.checkStrictly?o.showHeader:!1!==o.showHeader)?renderHeaderCellBaseVNs(e,renderTitleContent(C,[(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,C):c)]:[]))])):renderHeaderCellBaseVNs(e,renderTitleContent(C,[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,C):c)]))},renderCheckboxCell(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,{selectCheckboxMaps:o,treeIndeterminateMaps:d}=r.reactData,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,g=!c||c({row:e}),h=!!i;var E,c={},o=(n||(E=(0,_util.getRowid)(r,e),p=!!o[E],c.onClick=e=>{!h&&g&&r.triggerCheckRowEvent(e,l,!p)},i&&(h=!i({row:e})),a&&(v=!!d[E])),Object.assign(Object.assign({},l),{checked:p,disabled:h,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":h,"is--indeterminate":v,"is--hidden":!g}]},c),i)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,o=r.reactData.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,h=!u||u({row:e}),E=!!c;var _,u={},i=(n||(_=(0,_util.getRowid)(r,e),g=_xeUtils.default.get(e,i),u.onClick=e=>{!E&&h&&r.triggerCheckRowEvent(e,l,!g)},c&&(E=!c({row:e})),a&&(p=!!o[_])),Object.assign(Object.assign({},l),{checked:g,disabled:E,visible:h,indeterminate:p}));return C?renderCellBaseVNs(l,r.callSlot(C,i)):(c=[],h&&(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":E,"is--indeterminate":d&&!g?e[d]:p,"is--hidden":!h}]},u),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){let{$table:r,isHidden:e,row:t,column:n}=l;var{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=r.reactData,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 h=!1,E=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),h=!!a[p],d&&(E=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":h}],onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",E?i||getIcon().TABLE_EXPAND_LOADED:h?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 renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){let{$table:l,column:r}=e;var t=l.getComputeMaps().computeSortOpts,{showIcon:t,iconLayout:n,iconAsc:a,iconDesc:o,iconVisibleMethod:d}=t.value,s=r.order;return!t||d&&!d(e)?[]:[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${n}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",a||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===s}],title:getI18n("vxe.table.sortAsc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",o||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===s}],title:getI18n("vxe.table.sortDesc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}})])]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){let{$table:r,column:e,hasFilter:t}=l;var n=r.reactData.filterStore,a=r.getComputeMaps().computeFilterOpts,{showIcon:a,iconNone:o,iconMatch:d,iconVisibleMethod:s}=a.value;return!a||s&&!s(l)?[]:[(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,n=l.getComputeMaps().computeEditOpts,{editConfig:t,editRules:a}=t,n=n.value,{sortable:o,filters:d,editRender:s}=r;let i=!1,c=(a&&(a=_xeUtils.default.get(a,r.field))&&(i=a.some(e=>e.required)),[]);return renderHeaderCellBaseVNs(e,(c=(0,_utils.isEnableConf)(t)?[i&&n.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(l),(0,_utils.isEnableConf)(s)&&n.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",n.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(l)]:c).concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(d?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:r}=e,l=l.reactData.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.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
|
+
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}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){let{$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)}}):renderEmptyElement(r)}function renderTitleSuffixIcon(l){let{$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)}}):renderEmptyElement(r)}function renderCellDragIcon(l){let r=l.$table;var e=r.props.dragConfig,t=r.getComputeMaps().computeRowDragOpts,{icon:t,trigger:n,disabledMethod:a}=t.value,a=a||(e?e.rowDisabledMethod:null);let o=a&&a(l);a={};return"cell"!==n&&(a.onMousedown=e=>{o||r.handleCellDragMousedownEvent(e,l)},a.onMouseup=r.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":o}]},a),[(0,_vue.h)("i",{class:t||(e?e.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t.dragSort,{treeConfig:a,dragConfig:o}=r.props,{computeRowOpts:r,computeRowDragOpts:d}=r.getComputeMaps(),r=r.value,{showIcon:d,isPeerDrag:s,isCrossDrag:i,visibleMethod:c}=d.value,c=c||(o?o.rowVisibleMethod:null),l=_xeUtils.default.isArray(l)?l:[l];return!(t&&r.drag&&(d||o&&o.showRowIcon))||c&&!c(e)||a&&!s&&!i&&n||l.unshift(renderCellDragIcon(e)),l}function renderHeaderCellDragIcon(r){let{$table:t,column:e}=r;var{computeColumnOpts:n,computeColumnDragOpts:l}=t.getComputeMaps(),n=n.value,{showIcon:l,icon:a,trigger:o,isPeerDrag:d,isCrossDrag:s,visibleMethod:i,disabledMethod:c}=l.value;if(!n.drag||!l||i&&!i(r)||e.fixed||!d&&!s&&e.parentId)return renderEmptyElement(t);{let l=c&&c(r);n={};return"cell"!==o&&(n.onMousedown=e=>{l||t.handleHeaderCellDragMousedownEvent(e,r)},n.onMouseup=t.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":l}]},n),[(0,_vue.h)("i",{class:a||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function renderTitleContent(l,e){let{$table:r,column:t}=l;var n=r.props;let a=r.reactData;var o=r.getComputeMaps().computeTooltipOpts,n=n.showHeaderOverflow,{type:d,showHeaderOverflow:s}=t;let i=o.value.showAll;o=_xeUtils.default.isUndefined(s)||_xeUtils.default.isNull(s)?n:s;let c="title"===o,u=!0===o||"tooltip"===o;n={};return(c||u||i)&&(n.onMouseenter=e=>{a._isResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,t):(u||i)&&r.triggerHeaderTooltipEvent(e,l))}),(u||i)&&(n.onMouseleave=e=>{a._isResize||(u||i)&&r.handleTargetLeaveEvent(e)}),["html"===d&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},n)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},n),(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)}function renderCellHandle(e){var{column:l,$table:r}=e,t=r.props.editConfig,{type:l,treeNode:n,editRender:a}=l,{computeEditOpts:r,computeCheckboxOpts:o}=r.getComputeMaps(),d=o.value,o=r.value;switch(l){case"seq":return n?Cell.renderTreeIndexCell(e):Cell.renderSeqCell(e);case"radio":return n?Cell.renderTreeRadioCell(e):Cell.renderRadioCell(e);case"checkbox":return d.checkField?n?Cell.renderTreeSelectionCellByProp(e):Cell.renderCheckboxCellByProp(e):n?Cell.renderTreeSelectionCell(e):Cell.renderCheckboxCell(e);case"expand":return Cell.renderExpandCell(e);case"html":return n?Cell.renderTreeHTMLCell(e):Cell.renderHTMLCell(e)}return t&&a?"cell"===o.mode?n?Cell.renderTreeCellEdit(e):Cell.renderCellEdit(e):n?Cell.renderTreeRowEdit(e):Cell.renderRowEdit(e):n?Cell.renderTreeCell(e):Cell.renderDefaultCell(e)}function renderHeaderHandle(e){var{column:l,$table:r}=e,r=r.props.editConfig,{type:l,filters:t,sortable:n,editRender:a}=l;switch(l){case"seq":return Cell.renderSeqHeader(e);case"radio":return Cell.renderRadioHeader(e);case"checkbox":return Cell.renderCheckboxHeader(e);case"html":if(t&&n)return Cell.renderSortAndFilterHeader(e);if(n)return Cell.renderSortHeader(e);if(t)return Cell.renderFilterHeader(e)}return r&&a?Cell.renderEditHeader(e):t&&n?Cell.renderSortAndFilterHeader(e):n?Cell.renderSortHeader(e):t?Cell.renderFilterHeader(e):Cell.renderDefaultHeader(e)}function renderFooterHandle(e){return Cell.renderDefaultFooter(e)}let Cell=exports.Cell={createColumn(e,l){var r=l.type,t={renderHeader:renderHeaderHandle,renderCell:renderCellHandle,renderFooter:renderFooterHandle};return"expand"===r&&(t.renderData=Cell.renderExpandData),(0,_util.createColumn)(e,l,t)},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 renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(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){let{$table:r,isHidden:t}=l;var n=r.reactData,a=r.internalData,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:h,iconClose:E}=o,_=o.children||o.childrenField,o=o.hasChild||o.hasChildField,_=s[_],_=_&&_.length,i=i?i.icon:null;let b=!1,x=!1,f=!1,m=!1;var T={};return i?r.callSlot(i,l):(t||(i=(0,_util.getRowid)(r,s),x=!!n[i],C&&(n=a[i],f=!!d[i],b=s[o],m=!!n.treeLoaded)),v&&"default"!==v||(T.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),console.log(s.name,_),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":x}],style:{paddingLeft:c*u+"px"}},[g&&(!C||m?_:_||b)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},T),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",f?p||getIcon().TABLE_TREE_LOADED:x?h||getIcon().TABLE_TREE_OPEN:E||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 renderHeaderCellBaseVNs(e,renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:r}=e,t=l.props.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 renderHeaderCellBaseVNs(e,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){let{$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);let u=!s||s({row:i}),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){let{$table:l,column:r,isHidden:t}=e;var n=l.reactData,{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();let{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(),u={},C=(t||(u.onClick=e=>{i||l.triggerCheckAllEvent(e,!d)}),Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s}));return a?renderHeaderCellBaseVNs(e,renderTitleContent(C,l.callSlot(a,C))):(o.checkStrictly?o.showHeader:!1!==o.showHeader)?renderHeaderCellBaseVNs(e,renderTitleContent(C,[(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,C):c)]:[]))])):renderHeaderCellBaseVNs(e,renderTitleContent(C,[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,C):c)]))},renderCheckboxCell(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,{selectCheckboxMaps:o,treeIndeterminateMaps:d}=r.reactData,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,g=!c||c({row:e}),h=!!i;var E,c={},o=(n||(E=(0,_util.getRowid)(r,e),p=!!o[E],c.onClick=e=>{!h&&g&&r.triggerCheckRowEvent(e,l,!p)},i&&(h=!i({row:e})),a&&(v=!!d[E])),Object.assign(Object.assign({},l),{checked:p,disabled:h,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":h,"is--indeterminate":v,"is--hidden":!g}]},c),i)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,o=r.reactData.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,h=!u||u({row:e}),E=!!c;var _,u={},i=(n||(_=(0,_util.getRowid)(r,e),g=_xeUtils.default.get(e,i),u.onClick=e=>{!E&&h&&r.triggerCheckRowEvent(e,l,!g)},c&&(E=!c({row:e})),a&&(p=!!o[_])),Object.assign(Object.assign({},l),{checked:g,disabled:E,visible:h,indeterminate:p}));return C?renderCellBaseVNs(l,r.callSlot(C,i)):(c=[],h&&(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":E,"is--indeterminate":d&&!g?e[d]:p,"is--hidden":!h}]},u),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){let{$table:r,isHidden:e,row:t,column:n}=l;var{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=r.reactData,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 h=!1,E=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),h=!!a[p],d&&(E=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":h}],onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",E?i||getIcon().TABLE_EXPAND_LOADED:h?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 renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){let{$table:l,column:r}=e;var t=l.getComputeMaps().computeSortOpts,{showIcon:t,iconLayout:n,iconAsc:a,iconDesc:o,iconVisibleMethod:d}=t.value,s=r.order;return!t||d&&!d(e)?[]:[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${n}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",a||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===s}],title:getI18n("vxe.table.sortAsc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",o||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===s}],title:getI18n("vxe.table.sortDesc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}})])]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){let{$table:r,column:e,hasFilter:t}=l;var n=r.reactData.filterStore,a=r.getComputeMaps().computeFilterOpts,{showIcon:a,iconNone:o,iconMatch:d,iconVisibleMethod:s}=a.value;return!a||s&&!s(l)?[]:[(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,n=l.getComputeMaps().computeEditOpts,{editConfig:t,editRules:a}=t,n=n.value,{sortable:o,filters:d,editRender:s}=r;let i=!1,c=(a&&(a=_xeUtils.default.get(a,r.field))&&(i=a.some(e=>e.required)),[]);return renderHeaderCellBaseVNs(e,(c=(0,_utils.isEnableConf)(t)?[i&&n.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(l),(0,_utils.isEnableConf)(s)&&n.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",n.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(l)]:c).concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(d?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:r}=e,l=l.reactData.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.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;
|
package/lib/table/src/table.js
CHANGED
|
@@ -1174,6 +1174,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1174
1174
|
isCrossDrag,
|
|
1175
1175
|
isSelfToChildDrag
|
|
1176
1176
|
} = columnDragOpts;
|
|
1177
|
+
const customOpts = computeCustomOpts.value;
|
|
1178
|
+
const {
|
|
1179
|
+
storage
|
|
1180
|
+
} = customOpts;
|
|
1177
1181
|
const rowOpts = computeRowOpts.value;
|
|
1178
1182
|
const isGroup = collectColumn.some(_utils.hasChildrenList);
|
|
1179
1183
|
let isAllOverflow = !!props.showOverflow;
|
|
@@ -1207,8 +1211,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1207
1211
|
}
|
|
1208
1212
|
fullColumnFieldData[field] = rest;
|
|
1209
1213
|
} else {
|
|
1210
|
-
if (isCrossDrag || isSelfToChildDrag) {
|
|
1211
|
-
(0, _log.errLog)('vxe.error.
|
|
1214
|
+
if (storage || isCrossDrag || isSelfToChildDrag) {
|
|
1215
|
+
(0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field`]);
|
|
1212
1216
|
}
|
|
1213
1217
|
}
|
|
1214
1218
|
if (!hasFixed && fixed) {
|
|
@@ -2756,36 +2760,33 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2756
2760
|
const {
|
|
2757
2761
|
fullAllDataRowIdData
|
|
2758
2762
|
} = internalData;
|
|
2759
|
-
const {
|
|
2760
|
-
rowExpandLazyLoadedMaps
|
|
2761
|
-
} = reactData;
|
|
2763
|
+
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
2762
2764
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
2763
2765
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
2764
|
-
|
|
2766
|
+
rExpandLazyLoadedMaps[rowid] = row;
|
|
2767
|
+
reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
|
|
2765
2768
|
loadMethod({
|
|
2766
2769
|
$table: $xeTable,
|
|
2767
2770
|
row,
|
|
2768
2771
|
rowIndex: tableMethods.getRowIndex(row),
|
|
2769
2772
|
$rowIndex: tableMethods.getVMRowIndex(row)
|
|
2770
2773
|
}).then(() => {
|
|
2771
|
-
const {
|
|
2772
|
-
rowExpandedMaps
|
|
2773
|
-
} = reactData;
|
|
2774
|
+
const rExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
|
|
2774
2775
|
if (rowRest) {
|
|
2775
2776
|
rowRest.expandLoaded = true;
|
|
2776
2777
|
}
|
|
2777
|
-
|
|
2778
|
+
rExpandedMaps[rowid] = row;
|
|
2779
|
+
reactData.rowExpandedMaps = rExpandedMaps;
|
|
2778
2780
|
}).catch(() => {
|
|
2779
2781
|
if (rowRest) {
|
|
2780
2782
|
rowRest.expandLoaded = false;
|
|
2781
2783
|
}
|
|
2782
2784
|
}).finally(() => {
|
|
2783
|
-
const {
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
if (rowExpandLazyLoadedMaps[rowid]) {
|
|
2787
|
-
delete rowExpandLazyLoadedMaps[rowid];
|
|
2785
|
+
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
2786
|
+
if (rExpandLazyLoadedMaps[rowid]) {
|
|
2787
|
+
delete rExpandLazyLoadedMaps[rowid];
|
|
2788
2788
|
}
|
|
2789
|
+
reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
|
|
2789
2790
|
(0, _vue.nextTick)().then(() => tableMethods.recalculate()).then(() => resolve());
|
|
2790
2791
|
});
|
|
2791
2792
|
} else {
|
|
@@ -5466,9 +5467,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5466
5467
|
return rowRest && !!rowRest.expandLoaded;
|
|
5467
5468
|
},
|
|
5468
5469
|
clearRowExpandLoaded(row) {
|
|
5469
|
-
const {
|
|
5470
|
-
rowExpandLazyLoadedMaps
|
|
5471
|
-
} = reactData;
|
|
5470
|
+
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
5472
5471
|
const {
|
|
5473
5472
|
fullAllDataRowIdData
|
|
5474
5473
|
} = internalData;
|
|
@@ -5480,8 +5479,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5480
5479
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5481
5480
|
if (lazy && rowRest) {
|
|
5482
5481
|
rowRest.expandLoaded = false;
|
|
5483
|
-
delete
|
|
5482
|
+
delete rExpandLazyLoadedMaps[rowid];
|
|
5484
5483
|
}
|
|
5484
|
+
reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
|
|
5485
5485
|
return (0, _vue.nextTick)();
|
|
5486
5486
|
},
|
|
5487
5487
|
/**
|
|
@@ -5686,9 +5686,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5686
5686
|
return rowRest && !!rowRest.treeLoaded;
|
|
5687
5687
|
},
|
|
5688
5688
|
clearTreeExpandLoaded(rows) {
|
|
5689
|
-
const {
|
|
5690
|
-
treeExpandedMaps
|
|
5691
|
-
} = reactData;
|
|
5689
|
+
const tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
|
|
5692
5690
|
const {
|
|
5693
5691
|
fullAllDataRowIdData
|
|
5694
5692
|
} = internalData;
|
|
@@ -5705,12 +5703,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5705
5703
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5706
5704
|
if (rowRest) {
|
|
5707
5705
|
rowRest.treeLoaded = false;
|
|
5708
|
-
if (
|
|
5709
|
-
delete
|
|
5706
|
+
if (tExpandedMaps[rowid]) {
|
|
5707
|
+
delete tExpandedMaps[rowid];
|
|
5710
5708
|
}
|
|
5711
5709
|
}
|
|
5712
5710
|
});
|
|
5713
5711
|
}
|
|
5712
|
+
reactData.treeExpandedMaps = tExpandedMaps;
|
|
5714
5713
|
if (transform) {
|
|
5715
5714
|
handleVirtualTreeToList();
|
|
5716
5715
|
return tablePrivateMethods.handleTableData();
|
|
@@ -6199,7 +6198,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6199
6198
|
}
|
|
6200
6199
|
let hasResizable = 0;
|
|
6201
6200
|
let hasSort = 0;
|
|
6202
|
-
let
|
|
6201
|
+
let hasFixed = 0;
|
|
6203
6202
|
let hasVisible = 0;
|
|
6204
6203
|
_xeUtils.default.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
6205
6204
|
// 只支持一级
|
|
@@ -6214,7 +6213,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6214
6213
|
if (column.fixed !== column.defaultFixed) {
|
|
6215
6214
|
const colKey = column.getKey();
|
|
6216
6215
|
if (colKey) {
|
|
6217
|
-
|
|
6216
|
+
hasFixed = 1;
|
|
6218
6217
|
fixedData[colKey] = column.fixed;
|
|
6219
6218
|
}
|
|
6220
6219
|
}
|
|
@@ -6250,7 +6249,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6250
6249
|
if (hasSort) {
|
|
6251
6250
|
storeData.sortData = sortData;
|
|
6252
6251
|
}
|
|
6253
|
-
if (
|
|
6252
|
+
if (hasFixed) {
|
|
6254
6253
|
storeData.fixedData = fixedData;
|
|
6255
6254
|
}
|
|
6256
6255
|
if (hasVisible) {
|
|
@@ -8529,15 +8528,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8529
8528
|
evnt.dataTransfer.setDragImage((0, _dom.getTpImg)(), 0, 0);
|
|
8530
8529
|
}
|
|
8531
8530
|
},
|
|
8532
|
-
|
|
8531
|
+
handleRowDragSwapEvent(evnt, isSyncRow, dragRow, prevDragRow, prevDragPos, prevDragToChild) {
|
|
8533
8532
|
const {
|
|
8534
8533
|
treeConfig,
|
|
8535
8534
|
dragConfig
|
|
8536
8535
|
} = props;
|
|
8537
8536
|
const rowDragOpts = computeRowDragOpts.value;
|
|
8538
8537
|
const {
|
|
8539
|
-
fullAllDataRowIdData
|
|
8540
|
-
prevDragToChild
|
|
8538
|
+
fullAllDataRowIdData
|
|
8541
8539
|
} = internalData;
|
|
8542
8540
|
const {
|
|
8543
8541
|
isPeerDrag,
|
|
@@ -8553,21 +8551,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8553
8551
|
parentField
|
|
8554
8552
|
} = treeOpts;
|
|
8555
8553
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
8556
|
-
const {
|
|
8557
|
-
dragRow
|
|
8558
|
-
} = reactData;
|
|
8559
8554
|
const {
|
|
8560
8555
|
afterFullData,
|
|
8561
|
-
tableFullData
|
|
8562
|
-
prevDragRow,
|
|
8563
|
-
prevDragPos
|
|
8556
|
+
tableFullData
|
|
8564
8557
|
} = internalData;
|
|
8565
8558
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
8566
8559
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
8567
8560
|
if (prevDragRow && dragRow) {
|
|
8568
8561
|
// 判断是否有拖动
|
|
8569
8562
|
if (prevDragRow !== dragRow) {
|
|
8570
|
-
Promise.resolve(dEndMethod ? dEndMethod({
|
|
8563
|
+
return Promise.resolve(dEndMethod ? dEndMethod({
|
|
8571
8564
|
oldRow: dragRow,
|
|
8572
8565
|
newRow: prevDragRow,
|
|
8573
8566
|
dragPos: prevDragPos,
|
|
@@ -8718,6 +8711,44 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8718
8711
|
}).catch(() => {});
|
|
8719
8712
|
}
|
|
8720
8713
|
}
|
|
8714
|
+
return Promise.resolve();
|
|
8715
|
+
},
|
|
8716
|
+
handleRowDragDragendEvent(evnt) {
|
|
8717
|
+
const {
|
|
8718
|
+
treeConfig
|
|
8719
|
+
} = props;
|
|
8720
|
+
const {
|
|
8721
|
+
fullAllDataRowIdData,
|
|
8722
|
+
prevDragToChild
|
|
8723
|
+
} = internalData;
|
|
8724
|
+
const {
|
|
8725
|
+
dragRow
|
|
8726
|
+
} = reactData;
|
|
8727
|
+
const treeOpts = computeTreeOpts.value;
|
|
8728
|
+
const {
|
|
8729
|
+
lazy
|
|
8730
|
+
} = treeOpts;
|
|
8731
|
+
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
8732
|
+
const {
|
|
8733
|
+
prevDragRow,
|
|
8734
|
+
prevDragPos
|
|
8735
|
+
} = internalData;
|
|
8736
|
+
if (treeConfig && prevDragToChild) {
|
|
8737
|
+
// 懒加载
|
|
8738
|
+
if (lazy) {
|
|
8739
|
+
const newRowid = (0, _util.getRowid)($xeTable, prevDragRow);
|
|
8740
|
+
const rowRest = fullAllDataRowIdData[newRowid];
|
|
8741
|
+
if (prevDragRow[hasChildField]) {
|
|
8742
|
+
if (rowRest && rowRest.treeLoaded) {
|
|
8743
|
+
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
8744
|
+
}
|
|
8745
|
+
} else {
|
|
8746
|
+
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
8747
|
+
}
|
|
8748
|
+
}
|
|
8749
|
+
} else {
|
|
8750
|
+
$xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild);
|
|
8751
|
+
}
|
|
8721
8752
|
hideDropTip();
|
|
8722
8753
|
clearRowDropOrigin();
|
|
8723
8754
|
internalData.prevDragToChild = false;
|
|
@@ -8739,9 +8770,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8739
8770
|
} = reactData;
|
|
8740
8771
|
const treeOpts = computeTreeOpts.value;
|
|
8741
8772
|
const {
|
|
8773
|
+
lazy,
|
|
8742
8774
|
transform,
|
|
8743
8775
|
parentField
|
|
8744
8776
|
} = treeOpts;
|
|
8777
|
+
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
8745
8778
|
const rowDragOpts = computeRowDragOpts.value;
|
|
8746
8779
|
const {
|
|
8747
8780
|
isPeerDrag,
|
|
@@ -8758,19 +8791,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8758
8791
|
const rest = fullAllDataRowIdData[rowid];
|
|
8759
8792
|
if (rest) {
|
|
8760
8793
|
const row = rest.row;
|
|
8794
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
8795
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
8761
8796
|
evnt.preventDefault();
|
|
8762
8797
|
const {
|
|
8763
8798
|
dragRow
|
|
8764
8799
|
} = reactData;
|
|
8765
8800
|
const offsetY = evnt.clientY - trEl.getBoundingClientRect().y;
|
|
8766
8801
|
const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom';
|
|
8767
|
-
if ($xeTable.eqRow(dragRow, row) || !isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rest.level)) {
|
|
8768
|
-
showDropTip(evnt, trEl, null, false, dragPos);
|
|
8769
|
-
return;
|
|
8770
|
-
}
|
|
8771
8802
|
internalData.prevDragToChild = !!(treeConfig && transform && isCrossDrag && isToChildDrag && hasCtrlKey);
|
|
8772
8803
|
internalData.prevDragRow = row;
|
|
8773
8804
|
internalData.prevDragPos = dragPos;
|
|
8805
|
+
if ($xeTable.eqRow(dragRow, row) || hasCtrlKey && treeConfig && lazy && row[hasChildField] && rowRest && !rowRest.treeLoaded || !isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rest.level)) {
|
|
8806
|
+
showDropTip(evnt, trEl, null, false, dragPos);
|
|
8807
|
+
return;
|
|
8808
|
+
}
|
|
8774
8809
|
showDropTip(evnt, trEl, null, true, dragPos);
|
|
8775
8810
|
dispatchEvent('row-dragover', {
|
|
8776
8811
|
oldRow: dragRow,
|
|
@@ -9046,13 +9081,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9046
9081
|
} = evnt;
|
|
9047
9082
|
const offsetX = clientX - thEl.getBoundingClientRect().x;
|
|
9048
9083
|
const dragPos = offsetX < thEl.clientWidth / 2 ? 'left' : 'right';
|
|
9084
|
+
internalData.prevDragToChild = !!(isCrossDrag && isToChildDrag && hasCtrlKey);
|
|
9085
|
+
internalData.prevDragCol = column;
|
|
9086
|
+
internalData.prevDragPos = dragPos;
|
|
9049
9087
|
if (column.fixed || dragCol && dragCol.id === column.id || !isCrossDrag && (isPeerDrag ? dragCol.parentId !== column.parentId : column.parentId)) {
|
|
9050
9088
|
showDropTip(evnt, null, thEl, false, dragPos);
|
|
9051
9089
|
return;
|
|
9052
9090
|
}
|
|
9053
|
-
internalData.prevDragToChild = !!(isCrossDrag && isToChildDrag && hasCtrlKey);
|
|
9054
|
-
internalData.prevDragCol = column;
|
|
9055
|
-
internalData.prevDragPos = dragPos;
|
|
9056
9091
|
showDropTip(evnt, null, thEl, true, dragPos);
|
|
9057
9092
|
dispatchEvent('column-dragover', {
|
|
9058
9093
|
oldColumn: dragCol,
|