UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 13.1 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_conf=_interopRequireDefault(require("../../conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function renderHelpIcon(e,r){var l=r.$table,n=r.column.titleHelp;return n?[e("i",{class:["vxe-cell-help-icon",n.icon||_conf.default.icon.TABLE_HELP],on:{mouseenter:function(e){l.triggerHeaderHelpEvent(e,r)},mouseleave:function(e){l.handleTargetLeaveEvent(e)}}})]:[]}function renderTitleContent(e,r,l){var n=r.$table,t=r.column,o=t.showHeaderOverflow,c=n.showHeaderOverflow,a=n.tooltipOpts.enabled,d=_ctor.default.isUndefined(o)||_ctor.default.isNull(o)?c:o,i="title"===d,s=!0===d||"tooltip"===d,u={};return(i||s||a)&&(u.mouseenter=function(e){n._isResize||(i?_tools.DomTools.updateCellTitle(e.currentTarget,t):(s||a)&&n.triggerHeaderTooltipEvent(e,r))}),(s||a)&&(u.mouseleave=function(e){n._isResize||(s||a)&&n.handleTargetLeaveEvent(e)}),[e("span",{class:"vxe-cell--title",on:u},l)]}function getFooterContent(e,r){var l=r.$table,n=r.column,t=r._columnIndex,o=r.items,c=n.slots,a=n.editRender,d=n.cellRender,i=a||d;if(c&&c.footer)return c.footer.call(l,r,e);if(i){var s=_vXETable.default.renderer.get(i.name);if(s&&s.renderFooter)return s.renderFooter.call(l,e,i,r)}return[_tools.UtilTools.formatText(o[t],1)]}function getDefaultCellLabel(e){var r=e.row,l=e.column;return _tools.UtilTools.formatText(_tools.UtilTools.getCellLabel(r,l,e),1)}var Cell={createColumn:function(e,r){var l=r.type,n=r.sortable,t=r.remoteSort,o=r.filters,c=r.editRender,a=r.treeNode,d=e.editConfig,i=e.editOpts,s=e.checkboxOpts,u={renderHeader:this.renderDefaultHeader,renderCell:a?this.renderTreeCell:this.renderDefaultCell,renderFooter:this.renderDefaultFooter};switch(l){case"seq":u.renderHeader=this.renderIndexHeader,u.renderCell=a?this.renderTreeIndexCell:this.renderIndexCell;break;case"radio":u.renderHeader=this.renderRadioHeader,u.renderCell=a?this.renderTreeRadioCell:this.renderRadioCell;break;case"checkbox":u.renderHeader=this.renderSelectionHeader,u.renderCell=s.checkField?a?this.renderTreeSelectionCellByProp:this.renderSelectionCellByProp:a?this.renderTreeSelectionCell:this.renderSelectionCell;break;case"expand":u.renderCell=this.renderExpandCell,u.renderData=this.renderExpandData;break;case"html":u.renderCell=a?this.renderTreeHTMLCell:this.renderHTMLCell,o&&(n||t)?u.renderHeader=this.renderSortAndFilterHeader:n||t?u.renderHeader=this.renderSortHeader:o&&(u.renderHeader=this.renderFilterHeader);break;default:d&&c?(u.renderHeader=this.renderEditHeader,u.renderCell="cell"===i.mode?a?this.renderTreeCellEdit:this.renderCellEdit:a?this.renderTreeRowEdit:this.renderRowEdit):o&&(n||t)?u.renderHeader=this.renderSortAndFilterHeader:n||t?u.renderHeader=this.renderSortHeader:o&&(u.renderHeader=this.renderFilterHeader)}return _tools.UtilTools.getColumnConfig(e,r,u)},renderHeaderTitle:function(e,r){var l=r.$table,n=r.column,t=n.slots,o=n.editRender,c=n.cellRender,a=o||c;if(t&&t.header)return renderTitleContent(e,r,t.header.call(l,r,e));if(a){var d=_vXETable.default.renderer.get(a.name);if(d&&d.renderHeader)return renderTitleContent(e,r,d.renderHeader.call(l,e,a,r))}return renderTitleContent(e,r,_tools.UtilTools.formatText(n.getTitle(),1))},renderDefaultHeader:function(e,r){return renderHelpIcon(e,r).concat(Cell.renderHeaderTitle(e,r))},renderDefaultCell:function(e,r){var l=r.$table,n=r.column,t=n.slots,o=n.editRender,c=n.cellRender,a=o||c;if(t&&t.default)return t.default.call(l,r,e);if(a){var d=o?"renderCell":"renderDefault",i=_vXETable.default.renderer.get(a.name);if(i&&i[d])return i[d].call(l,e,a,Object.assign({$type:o?"edit":"cell"},r))}return[e("span",{class:"vxe-cell--label"},[getDefaultCellLabel(r)])]},renderTreeCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderDefaultCell.call(this,e,r))},renderDefaultFooter:function(e,r){return[e("span",{class:"vxe-cell--item"},getFooterContent(e,r))]},renderTreeIcon:function(e,r,l){var n=r.$table,t=r.isHidden,o=n.treeOpts,c=n.treeExpandeds,a=n.treeLazyLoadeds,d=r.row,i=r.column,s=r.level,u=i.slots,f=o.children,x=o.hasChild,v=o.indent,h=o.lazy,C=o.trigger,b=o.iconLoaded,p=o.showIcon,T=o.iconOpen,_=o.iconClose,E=d[f],k=!1,m=!1,H=!1,g={};return u&&u.icon?u.icon.call(n,r,e,l):(t||(m=-1<c.indexOf(d),h&&(H=-1<a.indexOf(d),k=d[x])),C&&"default"!==C||(g.click=function(e){return n.triggerTreeExpandEvent(e,r)}),[e("div",{class:["vxe-cell--tree-node",{"is--active":m}],style:{paddingLeft:"".concat(s*v,"px")}},[p&&(E&&E.length||k)?[e("div",{class:"vxe-tree--btn-wrapper",on:g},[e("i",{class:["vxe-tree--node-btn",H?b||_conf.default.icon.TABLE_TREE_LOADED:m?T||_conf.default.icon.TABLE_TREE_OPEN:_||_conf.default.icon.TABLE_TREE_CLOSE]})])]:null,e("div",{class:"vxe-tree-cell"},l)])])},renderIndexHeader:function(e,r){var l=r.$table,n=r.column,t=n.slots;return renderTitleContent(e,r,t&&t.header?t.header.call(l,r,e):_tools.UtilTools.formatText(n.getTitle(),1))},renderIndexCell:function(e,r){var l=r.$table,n=r.column,t=l.seqOpts,o=n.slots;if(o&&o.default)return o.default.call(l,r,e);var c=r.$seq,a=r.seq,d=r.level,i=t.seqMethod;return[_tools.UtilTools.formatText(i?i(r):d?"".concat(c,".").concat(a):t.startIndex+a,1)]},renderTreeIndexCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderIndexCell(e,r))},renderRadioHeader:function(e,r){var l=r.$table,n=r.column,t=n.slots;return renderTitleContent(e,r,t&&t.header?t.header.call(l,r,e):[e("span",{class:"vxe-radio--label"},_tools.UtilTools.formatText(n.getTitle(),1))])},renderRadioCell:function(e,r){var l,n=r.$table,t=r.column,o=r.isHidden,c=n.radioOpts,a=n.selectRow,d=t.slots,i=c.labelField,s=c.checkMethod,u=r.row,f=u===a,x=!!s;return o||(l={click:function(e){x||n.triggerRadioRowEvent(e,r)}},s&&(x=!s({row:u}))),[e("span",{class:["vxe-cell--radio",{"is--checked":f,"is--disabled":x}],on:l},[e("span",{class:"vxe-radio--icon vxe-radio--checked-icon"}),e("span",{class:"vxe-radio--icon vxe-radio--unchecked-icon"})].concat(d&&d.default?d.default.call(n,r,e):i?[e("span",{class:"vxe-radio--label"},_ctor.default.get(u,i))]:[]))]},renderTreeRadioCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderRadioCell(e,r))},renderSelectionHeader:function(e,r){var l,n=r.$table,t=r.column,o=r.isHidden,c=n.isIndeterminate,a=n.isAllCheckboxDisabled,d=t.slots,i=n.checkboxOpts,s=t.getTitle(),u=!1;return(i.checkStrictly?i.showHeader:!1!==i.showHeader)?(o||(u=!a&&n.isAllSelected,l={click:function(e){a||n.triggerCheckAllEvent(e,!u)}}),renderTitleContent(e,r,[e("span",{class:["vxe-cell--checkbox",{"is--checked":u,"is--disabled":a,"is--indeterminate":c}],attrs:{title:_conf.default.i18n("vxe.table.allTitle")},on:l},[e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})].concat(d&&d.header?d.header.call(n,r,e):s?[e("span",{class:"vxe-checkbox--label"},s)]:[]))])):renderTitleContent(e,r,d&&d.header?d.header.call(n,r,e):[e("span",{class:"vxe-checkbox--label"},s)])},renderSelectionCell:function(e,r){var l,n=r.$table,t=r.row,o=r.column,c=r.isHidden,a=n.treeConfig,d=n.treeIndeterminates,i=n.checkboxOpts,s=i.labelField,u=i.checkMethod,f=o.slots,x=!1,v=!1,h=!!u;return c||(v=-1<n.selection.indexOf(t),l={click:function(e){h||n.triggerCheckRowEvent(e,r,!v)}},u&&(h=!u({row:t})),a&&(x=-1<d.indexOf(t))),[e("span",{class:["vxe-cell--checkbox",{"is--checked":v,"is--disabled":h,"is--indeterminate":x}],on:l},[e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})].concat(f&&f.default?f.default.call(n,r,e):s?[e("span",{class:"vxe-checkbox--label"},_ctor.default.get(t,s))]:[]))]},renderTreeSelectionCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderSelectionCell(e,r))},renderSelectionCellByProp:function(e,r){var l,n=r.$table,t=r.row,o=r.column,c=r.isHidden,a=n.treeConfig,d=n.treeIndeterminates,i=n.checkboxOpts,s=i.labelField,u=i.checkField,f=i.halfField,x=i.checkMethod,v=o.slots,h=!1,C=!1,b=!!x;return c||(C=_ctor.default.get(t,u),l={click:function(e){b||n.triggerCheckRowEvent(e,r,!C)}},x&&(b=!x({row:t})),a&&(h=-1<d.indexOf(t))),[e("span",{class:["vxe-cell--checkbox",{"is--checked":C,"is--disabled":b,"is--indeterminate":f&&!C?t[f]:h}],on:l},[e("span",{class:"vxe-checkbox--icon vxe-checkbox--checked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--unchecked-icon"}),e("span",{class:"vxe-checkbox--icon vxe-checkbox--indeterminate-icon"})].concat(v&&v.default?v.default.call(n,r,e):s?[e("span",{class:"vxe-checkbox--label"},_ctor.default.get(t,s))]:[]))]},renderTreeSelectionCellByProp:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderSelectionCellByProp(e,r))},renderExpandCell:function(e,r){var l=r.$table,n=r.isHidden,t=r.row,o=r.column,c=l.expandOpts,a=l.rowExpandeds,d=l.expandLazyLoadeds,i=c.lazy,s=c.labelField,u=c.iconLoaded,f=c.showIcon,x=c.iconOpen,v=c.iconClose,h=c.visibleMethod,C=o.slots,b=!1,p=!1;return C&&C.icon?C.icon.call(l,r,e):(n||(b=-1<a.indexOf(r.row),i&&(p=-1<d.indexOf(t))),[!f||h&&!h(r)?null:e("span",{class:["vxe-table--expanded",{"is--active":b}],on:{click:function(e){l.triggerRowExpandEvent(e,r)}}},[e("i",{class:["vxe-table--expand-btn",p?u||_conf.default.icon.TABLE_EXPAND_LOADED:b?x||_conf.default.icon.TABLE_EXPAND_OPEN:v||_conf.default.icon.TABLE_EXPAND_CLOSE]})]),C&&C.default||s?e("span",{class:"vxe-table--expand-label"},C.default?C.default.call(l,r,e):_ctor.default.get(t,s)):null])},renderExpandData:function(e,r){var l=r.$table,n=r.column,t=n.slots,o=n.contentRender;if(t&&t.content)return t.content.call(l,r,e);if(o){var c=_vXETable.default.renderer.get(o.name);if(c&&c.renderExpand)return c.renderExpand.call(l,e,o,r)}return[]},renderHTMLCell:function(e,r){var l=r.$table,n=r.column.slots;return n&&n.default?n.default.call(l,r,e):[e("span",{class:"vxe-cell--html",domProps:{innerHTML:getDefaultCellLabel(r)}})]},renderTreeHTMLCell:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderHTMLCell(e,r))},renderSortAndFilterHeader:function(e,r){return Cell.renderDefaultHeader(e,r).concat(Cell.renderSortIcon(e,r)).concat(Cell.renderFilterIcon(e,r))},renderSortHeader:function(e,r){return Cell.renderDefaultHeader(e,r).concat(Cell.renderSortIcon(e,r))},renderSortIcon:function(e,r){var l=r.$table,n=r.column,t=l.sortOpts,o=t.showIcon,c=t.iconAsc,a=t.iconDesc;return o?[e("span",{class:"vxe-cell--sort"},[e("i",{class:["vxe-sort--asc-btn",c||_conf.default.icon.TABLE_SORT_ASC,{"sort--active":"asc"===n.order}],attrs:{title:_conf.default.i18n("vxe.table.sortAsc")},on:{click:function(e){l.triggerSortEvent(e,n,"asc")}}}),e("i",{class:["vxe-sort--desc-btn",a||_conf.default.icon.TABLE_SORT_DESC,{"sort--active":"desc"===n.order}],attrs:{title:_conf.default.i18n("vxe.table.sortDesc")},on:{click:function(e){l.triggerSortEvent(e,n,"desc")}}})])]:[]},renderFilterHeader:function(e,r){return Cell.renderDefaultHeader(e,r).concat(Cell.renderFilterIcon(e,r))},renderFilterIcon:function(e,r){var l=r.$table,n=r.column,t=r.hasFilter,o=l.filterStore,c=l.filterOpts,a=c.showIcon,d=c.iconNone,i=c.iconMatch;return a?[e("span",{class:["vxe-cell--filter",{"is--active":o.visible&&o.column===n}]},[e("i",{class:["vxe-filter--btn",t?i||_conf.default.icon.TABLE_FILTER_MATCH:d||_conf.default.icon.TABLE_FILTER_NONE],attrs:{title:_conf.default.i18n("vxe.table.filter")},on:{click:function(e){l.triggerFilterEvent(e,r.column,r)}}})])]:[]},renderEditHeader:function(e,r){var l,n=r.$table,t=r.column,o=n.editRules,c=n.editOpts,a=t.sortable,d=t.remoteSort,i=t.filters;if(o){var s=_ctor.default.get(o,r.column.property);s&&(l=s.some(function(e){return e.required}))}return[l&&c.showAsterisk?e("i",{class:"vxe-cell--required-icon"}):null,c.showIcon?e("i",{class:["vxe-cell--edit-icon",c.icon||_conf.default.icon.TABLE_EDIT]}):null].concat(Cell.renderDefaultHeader(e,r)).concat(a||d?Cell.renderSortIcon(e,r):[]).concat(i?Cell.renderFilterIcon(e,r):[])},renderRowEdit:function(e,r){var l=r.$table.editStore.actived;return Cell.runRenderer(e,r,this,l&&l.row===r.row)},renderTreeRowEdit:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderRowEdit(e,r))},renderCellEdit:function(e,r){var l=r.$table.editStore.actived;return Cell.runRenderer(e,r,this,l&&l.row===r.row&&l.column===r.column)},renderTreeCellEdit:function(e,r){return Cell.renderTreeIcon(e,r,Cell.renderCellEdit(e,r))},runRenderer:function(e,r,l,n){var t=r.$table,o=r.column,c=o.slots,a=o.editRender,d=o.formatter,i=_vXETable.default.renderer.get(a.name);return n?c&&c.edit?c.edit.call(t,r,e):i&&i.renderEdit?i.renderEdit.call(t,e,a,Object.assign({$type:"edit"},r)):[]:c&&c.default?c.default.call(t,r,e):d?[e("span",{class:"vxe-cell--label"},[getDefaultCellLabel(r)])]:Cell.renderDefaultCell.call(l,e,r)}},_default=exports.Cell=Cell;exports.default=_default;