UNPKG

vxe-table

Version:

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

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