vxe-table 4.7.82 → 4.7.84

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 (94) hide show
  1. package/es/locale/lang/en-US.js +2 -1
  2. package/es/locale/lang/es-ES.js +2 -1
  3. package/es/locale/lang/hu-HU.js +2 -1
  4. package/es/locale/lang/ja-JP.js +2 -1
  5. package/es/locale/lang/ko-KR.js +2 -1
  6. package/es/locale/lang/pt-BR.js +2 -1
  7. package/es/locale/lang/ru-RU.js +2 -1
  8. package/es/locale/lang/uk-UA.js +2 -1
  9. package/es/locale/lang/vi-VN.js +2 -1
  10. package/es/locale/lang/zh-CHT.js +2 -1
  11. package/es/locale/lang/zh-CN.js +2 -1
  12. package/es/style.css +1 -1
  13. package/es/style.min.css +1 -1
  14. package/es/table/module/edit/hook.js +25 -16
  15. package/es/table/render/index.js +10 -0
  16. package/es/table/src/table.js +227 -227
  17. package/es/table/style.css +3 -3
  18. package/es/table/style.min.css +1 -1
  19. package/es/ui/index.js +4 -3
  20. package/es/ui/src/log.js +1 -1
  21. package/es/vxe-table/style.css +3 -3
  22. package/es/vxe-table/style.min.css +1 -1
  23. package/lib/index.umd.js +281 -253
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/locale/lang/en-US.js +2 -1
  26. package/lib/locale/lang/en-US.min.js +1 -1
  27. package/lib/locale/lang/en-US.umd.js +2 -1
  28. package/lib/locale/lang/es-ES.js +2 -1
  29. package/lib/locale/lang/es-ES.min.js +1 -1
  30. package/lib/locale/lang/es-ES.umd.js +2 -1
  31. package/lib/locale/lang/hu-HU.js +2 -1
  32. package/lib/locale/lang/hu-HU.min.js +1 -1
  33. package/lib/locale/lang/hu-HU.umd.js +2 -1
  34. package/lib/locale/lang/ja-JP.js +2 -1
  35. package/lib/locale/lang/ja-JP.min.js +1 -1
  36. package/lib/locale/lang/ja-JP.umd.js +2 -1
  37. package/lib/locale/lang/ko-KR.js +2 -1
  38. package/lib/locale/lang/ko-KR.min.js +1 -1
  39. package/lib/locale/lang/ko-KR.umd.js +2 -1
  40. package/lib/locale/lang/pt-BR.js +2 -1
  41. package/lib/locale/lang/pt-BR.min.js +1 -1
  42. package/lib/locale/lang/pt-BR.umd.js +2 -1
  43. package/lib/locale/lang/ru-RU.js +2 -1
  44. package/lib/locale/lang/ru-RU.min.js +1 -1
  45. package/lib/locale/lang/ru-RU.umd.js +2 -1
  46. package/lib/locale/lang/uk-UA.js +2 -1
  47. package/lib/locale/lang/uk-UA.min.js +1 -1
  48. package/lib/locale/lang/uk-UA.umd.js +2 -1
  49. package/lib/locale/lang/vi-VN.js +2 -1
  50. package/lib/locale/lang/vi-VN.min.js +1 -1
  51. package/lib/locale/lang/zh-CHT.js +2 -1
  52. package/lib/locale/lang/zh-CHT.min.js +1 -1
  53. package/lib/locale/lang/zh-CN.js +2 -1
  54. package/lib/locale/lang/zh-CN.min.js +1 -1
  55. package/lib/locale/lang/zh-CN.umd.js +2 -1
  56. package/lib/style.css +1 -1
  57. package/lib/style.min.css +1 -1
  58. package/lib/table/module/edit/hook.js +24 -15
  59. package/lib/table/module/edit/hook.min.js +1 -1
  60. package/lib/table/render/index.js +15 -0
  61. package/lib/table/render/index.min.js +1 -1
  62. package/lib/table/src/table.js +232 -232
  63. package/lib/table/src/table.min.js +1 -1
  64. package/lib/table/style/style.css +3 -3
  65. package/lib/table/style/style.min.css +1 -1
  66. package/lib/ui/index.js +4 -3
  67. package/lib/ui/index.min.js +1 -1
  68. package/lib/ui/src/log.js +1 -1
  69. package/lib/ui/src/log.min.js +1 -1
  70. package/lib/vxe-table/style/style.css +3 -3
  71. package/lib/vxe-table/style/style.min.css +1 -1
  72. package/package.json +2 -2
  73. package/packages/locale/lang/en-US.ts +2 -1
  74. package/packages/locale/lang/es-ES.ts +2 -1
  75. package/packages/locale/lang/hu-HU.ts +2 -1
  76. package/packages/locale/lang/ja-JP.ts +2 -1
  77. package/packages/locale/lang/ko-KR.ts +2 -1
  78. package/packages/locale/lang/pt-BR.ts +2 -1
  79. package/packages/locale/lang/ru-RU.ts +2 -1
  80. package/packages/locale/lang/uk-UA.ts +2 -1
  81. package/packages/locale/lang/vi-VN.ts +2 -1
  82. package/packages/locale/lang/zh-CHT.ts +2 -1
  83. package/packages/locale/lang/zh-CN.ts +2 -1
  84. package/packages/table/module/edit/hook.ts +24 -15
  85. package/packages/table/render/index.ts +14 -0
  86. package/packages/table/src/table.ts +233 -233
  87. package/packages/ui/index.ts +2 -1
  88. package/styles/components/table.scss +7 -3
  89. /package/es/{iconfont.1727228895510.ttf → iconfont.1727430214486.ttf} +0 -0
  90. /package/es/{iconfont.1727228895510.woff → iconfont.1727430214486.woff} +0 -0
  91. /package/es/{iconfont.1727228895510.woff2 → iconfont.1727430214486.woff2} +0 -0
  92. /package/lib/{iconfont.1727228895510.ttf → iconfont.1727430214486.ttf} +0 -0
  93. /package/lib/{iconfont.1727228895510.woff → iconfont.1727430214486.woff} +0 -0
  94. /package/lib/{iconfont.1727228895510.woff2 → iconfont.1727430214486.woff2} +0 -0
@@ -1 +1 @@
1
- "use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("../../table/src/util"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,renderer,getI18n}=_ui.VxeUI,componentDefaultModelProp="modelValue",defaultCompProps={transfer:!0};function parseDate(e,t){return e&&t.valueFormat?_xeUtils.default.toStringDate(e,t.valueFormat):e}function getFormatDate(e,t,l){var{dateConfig:n={}}=t;return _xeUtils.default.toDateString(parseDate(e,t),n.labelFormat||l)}function getLabelFormatDate(e,t){return getFormatDate(e,t,getI18n("vxe.input.date.labelFormat."+(t.type||"date")))}function getOldComponentName(e){return"vxe-"+e.replace("$","")}function getDefaultComponent({name:e}){return(0,_vue.resolveComponent)(e)}function getOldComponent({name:e}){return(0,_vue.resolveComponent)(getOldComponentName(e))}function handleConfirmFilter(e,t,l){e=e.$panel;e.changeOption({},t,l)}function getNativeAttrs(e){let{name:t,attrs:l}=e;return l="input"===t?Object.assign({type:"text"},l):l}function getInputImmediateModel(e){var{name:e,immediate:t,props:l}=e;return t||("VxeInput"===e||"$input"===e?(t=(l||{})["type"],!(!t||"text"===t||"number"===t||"integer"===t||"float"===t)):"input"!==e&&"textarea"!==e&&"$textarea"!==e)}function getCellEditProps(e,t,l,n){return _xeUtils.default.assign({immediate:getInputImmediateModel(e)},defaultCompProps,n,e.props,{[componentDefaultModelProp]:l})}function getCellEditFilterProps(e,t,l,n){return _xeUtils.default.assign({},defaultCompProps,n,e.props,{[componentDefaultModelProp]:l})}function isImmediateCell(e,t){return"cell"===t.$type||getInputImmediateModel(e)}function getCellLabelVNs(e,t,l){var{name:e,placeholder:n}=e;return[(0,_vue.h)("span",{class:["vxe-cell--label",["VxeTextarea","textarea"].includes(e)?"is--textarea":""]},n&&(0,_utils.isEmptyValue)(l)?[(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(n),1))]:(0,_utils.formatText)(l,1))]}function getNativeElementOns(e,l,t,n){const r=e["events"],o=(0,_vn.getModelEvent)(e),a=(0,_vn.getChangeEvent)(e),i=a===o,u={};return r&&_xeUtils.default.objectEach(r,(t,e)=>{u[(0,_vn.getOnName)(e)]=function(...e){t(l,...e)}}),t&&(u[(0,_vn.getOnName)(o)]=function(e){t(e),i&&n&&n(e),r&&r[o]&&r[o](l,e)}),!i&&n&&(u[(0,_vn.getOnName)(a)]=function(...e){n(...e),r&&r[a]&&r[a](l,...e)}),u}function getComponentOns(e,l,t,n){const r=e["events"],o=(0,_vn.getModelEvent)(e),a=(0,_vn.getChangeEvent)(e),i={};return _xeUtils.default.objectEach(r,(t,e)=>{i[(0,_vn.getOnName)(e)]=function(...e){"development"!==process.env.NODE_ENV||_xeUtils.default.isFunction(t)||(0,_log.errLog)("vxe.error.errFunc",[t]),t(l,...e)}}),t&&(i[(0,_vn.getOnName)(o)]=function(e){t(e),r&&r[o]&&r[o](l,e)}),n&&(i[(0,_vn.getOnName)(a)]=function(...e){n(...e),r&&r[a]&&r[a](l,...e)}),i}function getEditOns(e,t){const{$table:l,row:n,column:r}=t,o=e["name"],a=r["model"],i=isImmediateCell(e,t);return getComponentOns(e,t,e=>{a.update=!0,a.value=e,i&&(0,_util.setCellValue)(n,r,e)},e=>{!i&&["VxeInput","VxeNumberInput","VxeTextarea","$input","$textarea"].includes(o)?(e=e.value,a.update=!0,a.value=e,l.updateStatus(t,e)):l.updateStatus(t)})}function getFilterOns(e,t,l){return getComponentOns(e,t,e=>{l.data=e},()=>{handleConfirmFilter(t,!_xeUtils.default.eqNull(l.data),l)})}function getNativeEditOns(t,l){const{$table:n,row:r,column:o}=l,a=o["model"];return getNativeElementOns(t,l,e=>{e=e.target.value;isImmediateCell(t,l)?(0,_util.setCellValue)(r,o,e):(a.update=!0,a.value=e)},e=>{e=e.target.value;n.updateStatus(l,e)})}function getNativeFilterOns(e,t,l){return getNativeElementOns(e,t,e=>{l.data=e.target.value},()=>{handleConfirmFilter(t,!_xeUtils.default.eqNull(l.data),l)})}function nativeEditRender(e,t){var{row:l,column:n}=t,r=e["name"],l=isImmediateCell(e,t)?(0,_util.getCellValue)(l,n):n.model.value;return[(0,_vue.h)(r,Object.assign(Object.assign(Object.assign({class:"vxe-default-"+r},getNativeAttrs(e)),{value:l}),getNativeEditOns(e,t)))]}function buttonCellRender(e,t){return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,null)),getComponentOns(e,t)))]}function defaultEditRender(e,t){var{row:l,column:n}=t,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l)),getEditOns(e,t)))]}function radioAndCheckboxEditRender(e,t){var l=e["options"],{row:n,column:r}=t,n=(0,_util.getCellValue)(n,r);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({options:l},getCellEditProps(e,t,n)),getEditOns(e,t)))]}function oldEditRender(e,t){var{row:l,column:n}=t,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getOldComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l)),getEditOns(e,t)))]}function oldButtonEditRender(e,t){return[(0,_vue.h)((0,_vue.resolveComponent)("vxe-button"),Object.assign(Object.assign({},getCellEditProps(e,t,null)),getComponentOns(e,t)))]}function oldButtonsEditRender(e,t){return e.children.map(e=>oldButtonEditRender(e,t)[0])}function renderNativeOptgroups(l,n,r){var{optionGroups:e,optionGroupProps:t={}}=l;const o=t.options||"options",a=t.label||"label";return e.map((e,t)=>(0,_vue.h)("optgroup",{key:t,label:e[a]},r(e[o],l,n)))}function renderNativeOptions(e,t,l){var{optionProps:n={}}=t,{row:r,column:o}=l;const a=n.label||"label",i=n.value||"value",u=n.disabled||"disabled",d=isImmediateCell(t,l)?(0,_util.getCellValue)(r,o):o.model.value;return e.map((e,t)=>(0,_vue.h)("option",{key:t,value:e[i],disabled:e[u],selected:e[i]==d},e[a]))}function nativeFilterRender(l,n){var e=n["column"];const r=l["name"],o=getNativeAttrs(l);return e.filters.map((e,t)=>(0,_vue.h)(r,Object.assign(Object.assign(Object.assign({key:t,class:"vxe-default-"+r},o),{value:e.data}),getNativeFilterOns(l,n,e))))}function defaultFilterRender(n,r){var e=r["column"];return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getDefaultComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,n,l)),getFilterOns(n,r,e)))})}function oldFilterRender(n,r){var e=r["column"];return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getOldComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,n,l)),getFilterOns(n,r,e)))})}function handleFilterMethod({option:e,row:t,column:l}){e=e.data;return _xeUtils.default.get(t,l.field)==e}function handleInputFilterMethod({option:e,row:t,column:l}){e=e.data,t=_xeUtils.default.get(t,l.field);return-1<_xeUtils.default.toValueString(t).indexOf(e)}function nativeSelectEditRender(e,t){return[(0,_vue.h)("select",Object.assign(Object.assign({class:"vxe-default-select"},getNativeAttrs(e)),getNativeEditOns(e,t)),e.optionGroups?renderNativeOptgroups(e,t,renderNativeOptions):renderNativeOptions(e.options,e,t))]}function defaultSelectEditRender(e,t){var{row:l,column:n}=t,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i}=e,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i})),getEditOns(e,t)))]}function defaultTreeSelectEditRender(e,t){var{row:l,column:n}=t,{options:r,optionProps:o}=e,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l,{options:r,optionProps:o})),getEditOns(e,t)))]}function oldSelectEditRender(e,t){var{row:l,column:n}=t,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i}=e,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getOldComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i})),getEditOns(e,t)))]}function getSelectCellValue(e,{row:t,column:l}){const{options:n,optionGroups:r,optionProps:o={},optionGroupProps:a={}}=e;e=_xeUtils.default.get(t,l.field);let i;const u=o.label||"label",d=o.value||"value";return null!=e?_xeUtils.default.map(_xeUtils.default.isArray(e)?e:[e],r?t=>{var l=a.options||"options";for(let e=0;e<r.length&&!(i=_xeUtils.default.find(r[e][l],e=>e[d]==t));e++);return i?i[u]:t}:t=>(i=_xeUtils.default.find(n,e=>e[d]==t))?i[u]:t).join(", "):""}function handleExportSelectMethod(e){var{row:t,column:l,options:n}=e;return n.original?(0,_util.getCellValue)(t,l):getSelectCellValue(l.editRender||l.cellRender,e)}function getTreeSelectCellValue(e,{row:t,column:l}){var{options:e,optionProps:n={}}=e,t=_xeUtils.default.get(t,l.field);const r=n.label||"label",o=n.value||"value";l=n.children||"children";if(null==t)return"";{const a={};return _xeUtils.default.eachTree(e,e=>{a[_xeUtils.default.get(e,o)]=e},{children:l}),_xeUtils.default.map(_xeUtils.default.isArray(t)?t:[t],e=>{e=a[e];return e&&_xeUtils.default.get(e,r)}).join(", ")}}function handleExportTreeSelectMethod(e){var{row:t,column:l,options:n}=e;return n.original?(0,_util.getCellValue)(t,l):getTreeSelectCellValue(l.editRender||l.cellRender,e)}renderer.mixin({input:{tableAutoFocus:"input",renderTableEdit:nativeEditRender,renderTableDefault:nativeEditRender,renderTableFilter:nativeFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},textarea:{tableAutoFocus:"textarea",renderTableEdit:nativeEditRender},select:{renderTableEdit:nativeSelectEditRender,renderTableDefault:nativeSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getSelectCellValue(e,t))},renderTableFilter(l,n){var e=n["column"];return e.filters.map((e,t)=>(0,_vue.h)("select",Object.assign(Object.assign({key:t,class:"vxe-default-select"},getNativeAttrs(l)),getNativeFilterOns(l,n,e)),l.optionGroups?renderNativeOptgroups(l,n,renderNativeOptions):renderNativeOptions(l.options,l,n)))},tableFilterDefaultMethod:handleFilterMethod,tableExportMethod:handleExportSelectMethod},VxeInput:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var l,{props:n={}}=e,{row:r,column:o}=t,a=n.digits||(null==(l=getConfig().input)?void 0:l.digits)||2;let i=_xeUtils.default.get(r,o.field);if(i)switch(n.type){case"date":case"week":case"month":case"quarter":case"year":i=getLabelFormatDate(i,n);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,a),a)}return getCellLabelVNs(e,t,i)},renderTableDefault:defaultEditRender,renderTableFilter:defaultFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},VxeNumberInput:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{props:l={}}=e,{row:n,column:r}=t,o=l.digits||(null==(o=getConfig().numberInput)?void 0:o.digits)||2;let a=_xeUtils.default.get(n,r.field);return getCellLabelVNs(e,t,a=a&&"float"===l.type?_xeUtils.default.toFixed(_xeUtils.default.floor(a,o),o):a)},renderTableDefault:defaultEditRender,renderTableFilter:defaultFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},VxeDatePicker:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{props:l={}}=e,{row:n,column:r}=t;let o=_xeUtils.default.get(n,r.field);return getCellLabelVNs(e,t,o=o&&getLabelFormatDate(o,l))},renderTableDefault:defaultEditRender,renderTableFilter:defaultFilterRender,tableFilterDefaultMethod:handleFilterMethod},VxeTextarea:{tableAutoFocus:"textarea",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{row:l,column:n}=t;return getCellLabelVNs(e,t,_xeUtils.default.get(l,n.field))}},VxeButton:{renderTableDefault:buttonCellRender},VxeButtonGroup:{renderTableDefault(e,t){var l=e["options"];return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({options:l},getCellEditProps(e,t,null)),getComponentOns(e,t)))]}},VxeSelect:{tableAutoFocus:"input",renderTableEdit:defaultSelectEditRender,renderTableDefault:defaultSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getSelectCellValue(e,t))},renderTableFilter(n,r){var e=r["column"];const{options:o,optionProps:a,optionGroups:i,optionGroupProps:u}=n;return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getDefaultComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,r,l,{options:o,optionProps:a,optionGroups:i,optionGroupProps:u})),getFilterOns(n,r,e)))})},tableFilterDefaultMethod:handleFilterMethod,tableExportMethod:handleExportSelectMethod},VxeTreeSelect:{tableAutoFocus:"input",renderTableEdit:defaultTreeSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getTreeSelectCellValue(e,t))},tableExportMethod:handleExportTreeSelectMethod},VxeIconPicker:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{row:t,column:l}=t,t=_xeUtils.default.get(t,l.field);return(0,_vue.h)("i",{class:t})}},VxeRadioGroup:{renderTableDefault:radioAndCheckboxEditRender},VxeCheckboxGroup:{renderTableDefault:radioAndCheckboxEditRender},VxeSwitch:{tableAutoFocus:"button",renderTableEdit:defaultEditRender,renderTableDefault:defaultEditRender},VxeUpload:{renderTableEdit:defaultEditRender,renderTableCell:defaultEditRender,renderTableDefault:defaultEditRender},VxeImage:{renderTableDefault(e,t){var{row:l,column:n}=t,r=e["props"],l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{src:l}),getEditOns(e,t)))]}},VxeImageGroup:{renderTableDefault(e,t){var{row:l,column:n}=t,r=e["props"],l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{urlList:l}),getEditOns(e,t)))]}},$input:{tableAutoFocus:".vxe-input--inner",renderTableEdit:oldEditRender,renderTableCell(e,t){var l,{props:n={}}=e,{row:r,column:o}=t,a=n.digits||(null==(l=getConfig().input)?void 0:l.digits)||2;let i=_xeUtils.default.get(r,o.field);if(i)switch(n.type){case"date":case"week":case"month":case"year":i=getLabelFormatDate(i,n);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,a),a)}return getCellLabelVNs(e,t,i)},renderTableDefault:oldEditRender,renderTableFilter:oldFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},$textarea:{tableAutoFocus:".vxe-textarea--inner"},$button:{renderTableDefault:oldButtonEditRender},$buttons:{renderTableDefault:oldButtonsEditRender},$select:{tableAutoFocus:".vxe-input--inner",renderTableEdit:oldSelectEditRender,renderTableDefault:oldSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getSelectCellValue(e,t))},renderTableFilter(n,r){var e=r["column"];const{options:o,optionProps:a,optionGroups:i,optionGroupProps:u}=n;return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getOldComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,r,l,{options:o,optionProps:a,optionGroups:i,optionGroupProps:u})),getFilterOns(n,r,e)))})},tableFilterDefaultMethod:handleFilterMethod,tableExportMethod:handleExportSelectMethod},$radio:{tableAutoFocus:".vxe-radio--input"},$checkbox:{tableAutoFocus:".vxe-checkbox--input"},$switch:{tableAutoFocus:".vxe-switch--button",renderTableEdit:oldEditRender,renderTableDefault:oldEditRender}});
1
+ "use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("../../table/src/util"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,renderer,getI18n}=_ui.VxeUI,componentDefaultModelProp="modelValue",defaultCompProps={transfer:!0};function parseDate(e,t){return e&&t.valueFormat?_xeUtils.default.toStringDate(e,t.valueFormat):e}function getFormatDate(e,t,l){var{dateConfig:n={}}=t;return _xeUtils.default.toDateString(parseDate(e,t),n.labelFormat||l)}function getLabelFormatDate(e,t){return getFormatDate(e,t,getI18n("vxe.input.date.labelFormat."+(t.type||"date")))}function getOldComponentName(e){return"vxe-"+e.replace("$","")}function getDefaultComponent({name:e}){return(0,_vue.resolveComponent)(e)}function getOldComponent({name:e}){return(0,_vue.resolveComponent)(getOldComponentName(e))}function handleConfirmFilter(e,t,l){e=e.$panel;e.changeOption({},t,l)}function getNativeAttrs(e){let{name:t,attrs:l}=e;return l="input"===t?Object.assign({type:"text"},l):l}function getInputImmediateModel(e){var{name:e,immediate:t,props:l}=e;return t||("VxeInput"===e||"$input"===e?(t=(l||{})["type"],!(!t||"text"===t||"number"===t||"integer"===t||"float"===t)):"input"!==e&&"textarea"!==e&&"$textarea"!==e)}function getCellEditProps(e,t,l,n){return _xeUtils.default.assign({immediate:getInputImmediateModel(e)},defaultCompProps,n,e.props,{[componentDefaultModelProp]:l})}function getCellEditFilterProps(e,t,l,n){return _xeUtils.default.assign({},defaultCompProps,n,e.props,{[componentDefaultModelProp]:l})}function isImmediateCell(e,t){return"cell"===t.$type||getInputImmediateModel(e)}function getCellLabelVNs(e,t,l){var{name:e,placeholder:n}=e;return[(0,_vue.h)("span",{class:["vxe-cell--label",["VxeTextarea","textarea"].includes(e)?"is--textarea":""]},n&&(0,_utils.isEmptyValue)(l)?[(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(n),1))]:(0,_utils.formatText)(l,1))]}function getNativeElementOns(e,l,t,n){const r=e["events"],o=(0,_vn.getModelEvent)(e),a=(0,_vn.getChangeEvent)(e),i=a===o,u={};return r&&_xeUtils.default.objectEach(r,(t,e)=>{u[(0,_vn.getOnName)(e)]=function(...e){t(l,...e)}}),t&&(u[(0,_vn.getOnName)(o)]=function(e){t(e),i&&n&&n(e),r&&r[o]&&r[o](l,e)}),!i&&n&&(u[(0,_vn.getOnName)(a)]=function(...e){n(...e),r&&r[a]&&r[a](l,...e)}),u}function getComponentOns(e,l,t,n){const r=e["events"],o=(0,_vn.getModelEvent)(e),a=(0,_vn.getChangeEvent)(e),i={};return _xeUtils.default.objectEach(r,(t,e)=>{i[(0,_vn.getOnName)(e)]=function(...e){"development"!==process.env.NODE_ENV||_xeUtils.default.isFunction(t)||(0,_log.errLog)("vxe.error.errFunc",[t]),t(l,...e)}}),t&&(i[(0,_vn.getOnName)(o)]=function(e){t(e),r&&r[o]&&r[o](l,e)}),n&&(i[(0,_vn.getOnName)(a)]=function(...e){n(...e),r&&r[a]&&r[a](l,...e)}),i}function getEditOns(e,t){const{$table:l,row:n,column:r}=t,o=e["name"],a=r["model"],i=isImmediateCell(e,t);return getComponentOns(e,t,e=>{a.update=!0,a.value=e,i&&(0,_util.setCellValue)(n,r,e)},e=>{!i&&["VxeInput","VxeNumberInput","VxeTextarea","$input","$textarea"].includes(o)?(e=e.value,a.update=!0,a.value=e,l.updateStatus(t,e)):l.updateStatus(t)})}function getFilterOns(e,t,l){return getComponentOns(e,t,e=>{l.data=e},()=>{handleConfirmFilter(t,!_xeUtils.default.eqNull(l.data),l)})}function getNativeEditOns(t,l){const{$table:n,row:r,column:o}=l,a=o["model"];return getNativeElementOns(t,l,e=>{e=e.target.value;isImmediateCell(t,l)?(0,_util.setCellValue)(r,o,e):(a.update=!0,a.value=e)},e=>{e=e.target.value;n.updateStatus(l,e)})}function getNativeFilterOns(e,t,l){return getNativeElementOns(e,t,e=>{l.data=e.target.value},()=>{handleConfirmFilter(t,!_xeUtils.default.eqNull(l.data),l)})}function nativeEditRender(e,t){var{row:l,column:n}=t,r=e["name"],l=isImmediateCell(e,t)?(0,_util.getCellValue)(l,n):n.model.value;return[(0,_vue.h)(r,Object.assign(Object.assign(Object.assign({class:"vxe-default-"+r},getNativeAttrs(e)),{value:l}),getNativeEditOns(e,t)))]}function buttonCellRender(e,t){return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,null)),getComponentOns(e,t)))]}function defaultEditRender(e,t){var{row:l,column:n}=t,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l)),getEditOns(e,t)))]}function radioAndCheckboxEditRender(e,t){var l=e["options"],{row:n,column:r}=t,n=(0,_util.getCellValue)(n,r);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({options:l},getCellEditProps(e,t,n)),getEditOns(e,t)))]}function oldEditRender(e,t){var{row:l,column:n}=t,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getOldComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l)),getEditOns(e,t)))]}function oldButtonEditRender(e,t){return[(0,_vue.h)((0,_vue.resolveComponent)("vxe-button"),Object.assign(Object.assign({},getCellEditProps(e,t,null)),getComponentOns(e,t)))]}function oldButtonsEditRender(e,t){return e.children.map(e=>oldButtonEditRender(e,t)[0])}function renderNativeOptgroups(l,n,r){var{optionGroups:e,optionGroupProps:t={}}=l;const o=t.options||"options",a=t.label||"label";return e.map((e,t)=>(0,_vue.h)("optgroup",{key:t,label:e[a]},r(e[o],l,n)))}function renderNativeOptions(e,t,l){var{optionProps:n={}}=t,{row:r,column:o}=l;const a=n.label||"label",i=n.value||"value",u=n.disabled||"disabled",d=isImmediateCell(t,l)?(0,_util.getCellValue)(r,o):o.model.value;return e.map((e,t)=>(0,_vue.h)("option",{key:t,value:e[i],disabled:e[u],selected:e[i]==d},e[a]))}function nativeFilterRender(l,n){var e=n["column"];const r=l["name"],o=getNativeAttrs(l);return e.filters.map((e,t)=>(0,_vue.h)(r,Object.assign(Object.assign(Object.assign({key:t,class:"vxe-default-"+r},o),{value:e.data}),getNativeFilterOns(l,n,e))))}function defaultFilterRender(n,r){var e=r["column"];return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getDefaultComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,n,l)),getFilterOns(n,r,e)))})}function oldFilterRender(n,r){var e=r["column"];return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getOldComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,n,l)),getFilterOns(n,r,e)))})}function handleFilterMethod({option:e,row:t,column:l}){e=e.data;return _xeUtils.default.get(t,l.field)==e}function handleInputFilterMethod({option:e,row:t,column:l}){e=e.data,t=_xeUtils.default.get(t,l.field);return-1<_xeUtils.default.toValueString(t).indexOf(e)}function nativeSelectEditRender(e,t){return[(0,_vue.h)("select",Object.assign(Object.assign({class:"vxe-default-select"},getNativeAttrs(e)),getNativeEditOns(e,t)),e.optionGroups?renderNativeOptgroups(e,t,renderNativeOptions):renderNativeOptions(e.options,e,t))]}function defaultSelectEditRender(e,t){var{row:l,column:n}=t,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i}=e,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i})),getEditOns(e,t)))]}function defaultTreeSelectEditRender(e,t){var{row:l,column:n}=t,{options:r,optionProps:o}=e,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l,{options:r,optionProps:o})),getEditOns(e,t)))]}function oldSelectEditRender(e,t){var{row:l,column:n}=t,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i}=e,l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getOldComponent(e),Object.assign(Object.assign({},getCellEditProps(e,t,l,{options:r,optionProps:o,optionGroups:a,optionGroupProps:i})),getEditOns(e,t)))]}function getSelectCellValue(e,{row:t,column:l}){const{options:n,optionGroups:r,optionProps:o={},optionGroupProps:a={}}=e;e=_xeUtils.default.get(t,l.field);let i;const u=o.label||"label",d=o.value||"value";return null!=e?_xeUtils.default.map(_xeUtils.default.isArray(e)?e:[e],r?t=>{var l=a.options||"options";for(let e=0;e<r.length&&!(i=_xeUtils.default.find(r[e][l],e=>e[d]==t));e++);return i?i[u]:t}:t=>(i=_xeUtils.default.find(n,e=>e[d]==t))?i[u]:t).join(", "):""}function handleExportSelectMethod(e){var{row:t,column:l,options:n}=e;return n.original?(0,_util.getCellValue)(t,l):getSelectCellValue(l.editRender||l.cellRender,e)}function getTreeSelectCellValue(e,{row:t,column:l}){var{options:e,optionProps:n={}}=e,t=_xeUtils.default.get(t,l.field);const r=n.label||"label",o=n.value||"value";l=n.children||"children";if(null==t)return"";{const a={};return _xeUtils.default.eachTree(e,e=>{a[_xeUtils.default.get(e,o)]=e},{children:l}),_xeUtils.default.map(_xeUtils.default.isArray(t)?t:[t],e=>{e=a[e];return e&&_xeUtils.default.get(e,r)}).join(", ")}}function handleExportTreeSelectMethod(e){var{row:t,column:l,options:n}=e;return n.original?(0,_util.getCellValue)(t,l):getTreeSelectCellValue(l.editRender||l.cellRender,e)}renderer.mixin({input:{tableAutoFocus:"input",renderTableEdit:nativeEditRender,renderTableDefault:nativeEditRender,renderTableFilter:nativeFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},textarea:{tableAutoFocus:"textarea",renderTableEdit:nativeEditRender},select:{renderTableEdit:nativeSelectEditRender,renderTableDefault:nativeSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getSelectCellValue(e,t))},renderTableFilter(l,n){var e=n["column"];return e.filters.map((e,t)=>(0,_vue.h)("select",Object.assign(Object.assign({key:t,class:"vxe-default-select"},getNativeAttrs(l)),getNativeFilterOns(l,n,e)),l.optionGroups?renderNativeOptgroups(l,n,renderNativeOptions):renderNativeOptions(l.options,l,n)))},tableFilterDefaultMethod:handleFilterMethod,tableExportMethod:handleExportSelectMethod},VxeInput:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var l,{props:n={}}=e,{row:r,column:o}=t,a=n.digits||(null==(l=getConfig().input)?void 0:l.digits)||2;let i=_xeUtils.default.get(r,o.field);if(i)switch(n.type){case"date":case"week":case"month":case"quarter":case"year":i=getLabelFormatDate(i,n);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,a),a)}return getCellLabelVNs(e,t,i)},renderTableDefault:defaultEditRender,renderTableFilter:defaultFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},VxeNumberInput:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{props:l={}}=e,{row:n,column:r}=t,o=l.digits||(null==(o=getConfig().numberInput)?void 0:o.digits)||2;let a=_xeUtils.default.get(n,r.field);return getCellLabelVNs(e,t,a=a&&"float"===l.type?_xeUtils.default.toFixed(_xeUtils.default.floor(a,o),o):a)},renderTableDefault:defaultEditRender,renderTableFilter:defaultFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},VxeDatePicker:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{props:l={}}=e,{row:n,column:r}=t;let o=_xeUtils.default.get(n,r.field);return getCellLabelVNs(e,t,o=o&&getLabelFormatDate(o,l))},renderTableDefault:defaultEditRender,renderTableFilter:defaultFilterRender,tableFilterDefaultMethod:handleFilterMethod},VxeTextarea:{tableAutoFocus:"textarea",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{row:l,column:n}=t;return getCellLabelVNs(e,t,_xeUtils.default.get(l,n.field))}},VxeButton:{renderTableDefault:buttonCellRender},VxeButtonGroup:{renderTableDefault(e,t){var l=e["options"];return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({options:l},getCellEditProps(e,t,null)),getComponentOns(e,t)))]}},VxeSelect:{tableAutoFocus:"input",renderTableEdit:defaultSelectEditRender,renderTableDefault:defaultSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getSelectCellValue(e,t))},renderTableFilter(n,r){var e=r["column"];const{options:o,optionProps:a,optionGroups:i,optionGroupProps:u}=n;return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getDefaultComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,r,l,{options:o,optionProps:a,optionGroups:i,optionGroupProps:u})),getFilterOns(n,r,e)))})},tableFilterDefaultMethod:handleFilterMethod,tableExportMethod:handleExportSelectMethod},VxeTreeSelect:{tableAutoFocus:"input",renderTableEdit:defaultTreeSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getTreeSelectCellValue(e,t))},tableExportMethod:handleExportTreeSelectMethod},VxeIconPicker:{tableAutoFocus:"input",renderTableEdit:defaultEditRender,renderTableCell(e,t){var{row:t,column:l}=t,t=_xeUtils.default.get(t,l.field);return(0,_vue.h)("i",{class:t})}},VxeRadioGroup:{renderTableDefault:radioAndCheckboxEditRender},VxeCheckboxGroup:{renderTableDefault:radioAndCheckboxEditRender},VxeSwitch:{tableAutoFocus:"button",renderTableEdit:defaultEditRender,renderTableDefault:defaultEditRender},VxeUpload:{renderTableEdit:defaultEditRender,renderTableCell:defaultEditRender,renderTableDefault:defaultEditRender},VxeImage:{renderTableDefault(e,t){var{row:l,column:n}=t,r=e["props"],l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{src:l}),getEditOns(e,t)))]}},VxeImageGroup:{renderTableDefault(e,t){var{row:l,column:n}=t,r=e["props"],l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{urlList:l}),getEditOns(e,t)))]}},VxeTextEllipsis:{renderTableDefault(e,t){var{row:l,column:n}=t,r=e["props"],l=(0,_util.getCellValue)(l,n);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{content:l}),getEditOns(e,t)))]}},$input:{tableAutoFocus:".vxe-input--inner",renderTableEdit:oldEditRender,renderTableCell(e,t){var l,{props:n={}}=e,{row:r,column:o}=t,a=n.digits||(null==(l=getConfig().input)?void 0:l.digits)||2;let i=_xeUtils.default.get(r,o.field);if(i)switch(n.type){case"date":case"week":case"month":case"year":i=getLabelFormatDate(i,n);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,a),a)}return getCellLabelVNs(e,t,i)},renderTableDefault:oldEditRender,renderTableFilter:oldFilterRender,tableFilterDefaultMethod:handleInputFilterMethod},$textarea:{tableAutoFocus:".vxe-textarea--inner"},$button:{renderTableDefault:oldButtonEditRender},$buttons:{renderTableDefault:oldButtonsEditRender},$select:{tableAutoFocus:".vxe-input--inner",renderTableEdit:oldSelectEditRender,renderTableDefault:oldSelectEditRender,renderTableCell(e,t){return getCellLabelVNs(e,t,getSelectCellValue(e,t))},renderTableFilter(n,r){var e=r["column"];const{options:o,optionProps:a,optionGroups:i,optionGroupProps:u}=n;return e.filters.map((e,t)=>{var l=e.data;return(0,_vue.h)(getOldComponent(n),Object.assign(Object.assign({key:t},getCellEditFilterProps(n,r,l,{options:o,optionProps:a,optionGroups:i,optionGroupProps:u})),getFilterOns(n,r,e)))})},tableFilterDefaultMethod:handleFilterMethod,tableExportMethod:handleExportSelectMethod},$radio:{tableAutoFocus:".vxe-radio--input"},$checkbox:{tableAutoFocus:".vxe-checkbox--input"},$switch:{tableAutoFocus:".vxe-switch--button",renderTableEdit:oldEditRender,renderTableDefault:oldEditRender}});
@@ -7700,6 +7700,237 @@ var _default = exports.default = (0, _vue.defineComponent)({
7700
7700
  tableMethods.recalculate();
7701
7701
  }
7702
7702
  }
7703
+ const renderVN = () => {
7704
+ const {
7705
+ loading,
7706
+ stripe,
7707
+ showHeader,
7708
+ height,
7709
+ treeConfig,
7710
+ mouseConfig,
7711
+ showFooter,
7712
+ highlightCell,
7713
+ highlightHoverRow,
7714
+ highlightHoverColumn,
7715
+ editConfig,
7716
+ editRules
7717
+ } = props;
7718
+ const {
7719
+ isCalcColumn,
7720
+ isGroup,
7721
+ overflowX,
7722
+ overflowY,
7723
+ scrollXLoad,
7724
+ scrollYLoad,
7725
+ scrollbarHeight,
7726
+ tableData,
7727
+ tableColumn,
7728
+ tableGroupColumn,
7729
+ footerTableData,
7730
+ initStore,
7731
+ columnStore,
7732
+ filterStore,
7733
+ customStore,
7734
+ tooltipStore
7735
+ } = reactData;
7736
+ const {
7737
+ leftList,
7738
+ rightList
7739
+ } = columnStore;
7740
+ const loadingSlot = slots.loading;
7741
+ const tipConfig = computeTipConfig.value;
7742
+ const validOpts = computeValidOpts.value;
7743
+ const checkboxOpts = computeCheckboxOpts.value;
7744
+ const treeOpts = computeTreeOpts.value;
7745
+ const rowOpts = computeRowOpts.value;
7746
+ const columnOpts = computeColumnOpts.value;
7747
+ const vSize = computeSize.value;
7748
+ const tableBorder = computeTableBorder.value;
7749
+ const mouseOpts = computeMouseOpts.value;
7750
+ const validTipOpts = computeValidTipOpts.value;
7751
+ const loadingOpts = computeLoadingOpts.value;
7752
+ const isMenu = computeIsMenu.value;
7753
+ const currLoading = reactData._isLoading || loading;
7754
+ return (0, _vue.h)('div', {
7755
+ ref: refElem,
7756
+ class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
7757
+ [`size--${vSize}`]: vSize,
7758
+ [`valid-msg--${validOpts.msgMode}`]: !!editRules,
7759
+ 'vxe-editable': !!editConfig,
7760
+ 'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete',
7761
+ 'cell--highlight': highlightCell,
7762
+ 'cell--selected': mouseConfig && mouseOpts.selected,
7763
+ 'cell--area': mouseConfig && mouseOpts.area,
7764
+ 'row--highlight': rowOpts.isHover || highlightHoverRow,
7765
+ 'column--highlight': columnOpts.isHover || highlightHoverColumn,
7766
+ 'checkbox--range': checkboxOpts.range,
7767
+ 'column--calc': isCalcColumn,
7768
+ 'is--header': showHeader,
7769
+ 'is--footer': showFooter,
7770
+ 'is--group': isGroup,
7771
+ 'is--tree-line': treeConfig && (treeOpts.showLine || treeOpts.line),
7772
+ 'is--fixed-left': leftList.length,
7773
+ 'is--fixed-right': rightList.length,
7774
+ 'is--animat': !!props.animat,
7775
+ 'is--padding': props.padding,
7776
+ 'is--round': props.round,
7777
+ 'is--stripe': !treeConfig && stripe,
7778
+ 'is--loading': currLoading,
7779
+ 'is--empty': !currLoading && !tableData.length,
7780
+ 'is--scroll-y': overflowY,
7781
+ 'is--scroll-x': overflowX,
7782
+ 'is--virtual-x': scrollXLoad,
7783
+ 'is--virtual-y': scrollYLoad
7784
+ }],
7785
+ spellcheck: false,
7786
+ onKeydown: keydownEvent
7787
+ }, [
7788
+ /**
7789
+ * 隐藏列
7790
+ */
7791
+ (0, _vue.h)('div', {
7792
+ class: 'vxe-table-slots'
7793
+ }, slots.default ? slots.default({}) : []), (0, _vue.h)('div', {
7794
+ class: 'vxe-table--render-wrapper'
7795
+ }, [(0, _vue.h)('div', {
7796
+ class: 'vxe-table--main-wrapper'
7797
+ }, [
7798
+ /**
7799
+ * 表头
7800
+ */
7801
+ showHeader ? (0, _vue.h)(_header.default, {
7802
+ ref: refTableHeader,
7803
+ tableData,
7804
+ tableColumn,
7805
+ tableGroupColumn
7806
+ }) : (0, _vue.createCommentVNode)(),
7807
+ /**
7808
+ * 表体
7809
+ */
7810
+ (0, _vue.h)(_body.default, {
7811
+ ref: refTableBody,
7812
+ tableData,
7813
+ tableColumn
7814
+ }),
7815
+ /**
7816
+ * 表尾
7817
+ */
7818
+ showFooter ? (0, _vue.h)(_footer.default, {
7819
+ ref: refTableFooter,
7820
+ footerTableData,
7821
+ tableColumn
7822
+ }) : (0, _vue.createCommentVNode)()]), (0, _vue.h)('div', {
7823
+ class: 'vxe-table--fixed-wrapper'
7824
+ }, [
7825
+ /**
7826
+ * 左侧固定区域
7827
+ */
7828
+ leftList && leftList.length && overflowX ? renderFixed('left') : (0, _vue.createCommentVNode)(),
7829
+ /**
7830
+ * 右侧固定区域
7831
+ */
7832
+ rightList && rightList.length && overflowX ? renderFixed('right') : (0, _vue.createCommentVNode)()])]),
7833
+ /**
7834
+ * 空数据
7835
+ */
7836
+ (0, _vue.h)('div', {
7837
+ ref: refEmptyPlaceholder,
7838
+ class: 'vxe-table--empty-placeholder'
7839
+ }, [(0, _vue.h)('div', {
7840
+ class: 'vxe-table--empty-content'
7841
+ }, renderEmptyContenet())]),
7842
+ /**
7843
+ * 边框线
7844
+ */
7845
+ (0, _vue.h)('div', {
7846
+ class: 'vxe-table--border-line'
7847
+ }),
7848
+ /**
7849
+ * 列宽线
7850
+ */
7851
+ (0, _vue.h)('div', {
7852
+ ref: refCellResizeBar,
7853
+ class: 'vxe-table--resizable-bar',
7854
+ style: overflowX ? {
7855
+ 'padding-bottom': `${scrollbarHeight}px`
7856
+ } : null
7857
+ }),
7858
+ /**
7859
+ * 加载中
7860
+ */
7861
+ VxeUILoadingComponent ? (0, _vue.h)(VxeUILoadingComponent, {
7862
+ class: 'vxe-table--loading',
7863
+ modelValue: currLoading,
7864
+ icon: loadingOpts.icon,
7865
+ text: loadingOpts.text
7866
+ }, loadingSlot ? {
7867
+ default: () => loadingSlot({
7868
+ $table: $xeTable,
7869
+ $grid: $xeGrid
7870
+ })
7871
+ } : {}) : (0, _vue.createCommentVNode)(),
7872
+ /**
7873
+ * 自定义列
7874
+ */
7875
+ initStore.custom ? (0, _vue.h)(_panel.default, {
7876
+ ref: refTableCustom,
7877
+ customStore
7878
+ }) : (0, _vue.createCommentVNode)(),
7879
+ /**
7880
+ * 筛选
7881
+ */
7882
+ initStore.filter ? (0, _vue.h)(_panel2.default, {
7883
+ ref: refTableFilter,
7884
+ filterStore
7885
+ }) : (0, _vue.createCommentVNode)(),
7886
+ /**
7887
+ * 导入
7888
+ */
7889
+ initStore.import && props.importConfig ? (0, _vue.h)(_importPanel.default, {
7890
+ defaultOptions: reactData.importParams,
7891
+ storeData: reactData.importStore
7892
+ }) : (0, _vue.createCommentVNode)(),
7893
+ /**
7894
+ * 导出
7895
+ */
7896
+ initStore.export && (props.exportConfig || props.printConfig) ? (0, _vue.h)(_exportPanel.default, {
7897
+ defaultOptions: reactData.exportParams,
7898
+ storeData: reactData.exportStore
7899
+ }) : (0, _vue.createCommentVNode)(),
7900
+ /**
7901
+ * 快捷菜单
7902
+ */
7903
+ isMenu ? (0, _vue.h)(_panel3.default, {
7904
+ ref: refTableMenu
7905
+ }) : (0, _vue.createCommentVNode)(),
7906
+ /**
7907
+ * 提示相关
7908
+ */
7909
+ VxeUITooltipComponent ? (0, _vue.h)('div', {}, [
7910
+ /**
7911
+ * 通用提示
7912
+ */
7913
+ (0, _vue.h)(VxeUITooltipComponent, {
7914
+ ref: refCommTooltip,
7915
+ isArrow: false,
7916
+ enterable: false
7917
+ }),
7918
+ /**
7919
+ * 工具提示
7920
+ */
7921
+ (0, _vue.h)(VxeUITooltipComponent, Object.assign({
7922
+ ref: refTooltip
7923
+ }, tipConfig, tooltipStore.currOpts)),
7924
+ /**
7925
+ * 校验提示
7926
+ */
7927
+ props.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip') ? (0, _vue.h)(VxeUITooltipComponent, Object.assign({
7928
+ ref: refValidTooltip,
7929
+ class: [{
7930
+ 'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
7931
+ }, 'vxe-table--valid-error']
7932
+ }, validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {})) : (0, _vue.createCommentVNode)()]) : (0, _vue.createCommentVNode)()]);
7933
+ };
7703
7934
  const dataFlag = (0, _vue.ref)(0);
7704
7935
  (0, _vue.watch)(() => props.data ? props.data.length : -1, () => {
7705
7936
  dataFlag.value++;
@@ -8087,238 +8318,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
8087
8318
  $table: $xeTable
8088
8319
  });
8089
8320
  });
8090
- const renderVN = () => {
8091
- const {
8092
- loading,
8093
- stripe,
8094
- showHeader,
8095
- height,
8096
- treeConfig,
8097
- mouseConfig,
8098
- showFooter,
8099
- highlightCell,
8100
- highlightHoverRow,
8101
- highlightHoverColumn,
8102
- editConfig,
8103
- editRules
8104
- } = props;
8105
- const {
8106
- isCalcColumn,
8107
- isGroup,
8108
- overflowX,
8109
- overflowY,
8110
- scrollXLoad,
8111
- scrollYLoad,
8112
- scrollbarHeight,
8113
- tableData,
8114
- tableColumn,
8115
- tableGroupColumn,
8116
- footerTableData,
8117
- initStore,
8118
- columnStore,
8119
- filterStore,
8120
- customStore,
8121
- tooltipStore
8122
- } = reactData;
8123
- const {
8124
- leftList,
8125
- rightList
8126
- } = columnStore;
8127
- const loadingSlot = slots.loading;
8128
- const tipConfig = computeTipConfig.value;
8129
- const validOpts = computeValidOpts.value;
8130
- const checkboxOpts = computeCheckboxOpts.value;
8131
- const treeOpts = computeTreeOpts.value;
8132
- const rowOpts = computeRowOpts.value;
8133
- const columnOpts = computeColumnOpts.value;
8134
- const vSize = computeSize.value;
8135
- const tableBorder = computeTableBorder.value;
8136
- const mouseOpts = computeMouseOpts.value;
8137
- const validTipOpts = computeValidTipOpts.value;
8138
- const loadingOpts = computeLoadingOpts.value;
8139
- const isMenu = computeIsMenu.value;
8140
- const currLoading = reactData._isLoading || loading;
8141
- return (0, _vue.h)('div', {
8142
- ref: refElem,
8143
- class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
8144
- [`size--${vSize}`]: vSize,
8145
- [`valid-msg--${validOpts.msgMode}`]: !!editRules,
8146
- 'vxe-editable': !!editConfig,
8147
- 'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete',
8148
- 'cell--highlight': highlightCell,
8149
- 'cell--selected': mouseConfig && mouseOpts.selected,
8150
- 'cell--area': mouseConfig && mouseOpts.area,
8151
- 'row--highlight': rowOpts.isHover || highlightHoverRow,
8152
- 'column--highlight': columnOpts.isHover || highlightHoverColumn,
8153
- 'checkbox--range': checkboxOpts.range,
8154
- 'column--calc': isCalcColumn,
8155
- 'is--header': showHeader,
8156
- 'is--footer': showFooter,
8157
- 'is--group': isGroup,
8158
- 'is--tree-line': treeConfig && (treeOpts.showLine || treeOpts.line),
8159
- 'is--fixed-left': leftList.length,
8160
- 'is--fixed-right': rightList.length,
8161
- 'is--animat': !!props.animat,
8162
- 'is--padding': props.padding,
8163
- 'is--round': props.round,
8164
- 'is--stripe': !treeConfig && stripe,
8165
- 'is--loading': currLoading,
8166
- 'is--empty': !currLoading && !tableData.length,
8167
- 'is--scroll-y': overflowY,
8168
- 'is--scroll-x': overflowX,
8169
- 'is--virtual-x': scrollXLoad,
8170
- 'is--virtual-y': scrollYLoad
8171
- }],
8172
- spellcheck: false,
8173
- onKeydown: keydownEvent
8174
- }, [
8175
- /**
8176
- * 隐藏列
8177
- */
8178
- (0, _vue.h)('div', {
8179
- class: 'vxe-table-slots'
8180
- }, slots.default ? slots.default({}) : []), (0, _vue.h)('div', {
8181
- class: 'vxe-table--render-wrapper'
8182
- }, [(0, _vue.h)('div', {
8183
- class: 'vxe-table--main-wrapper'
8184
- }, [
8185
- /**
8186
- * 表头
8187
- */
8188
- showHeader ? (0, _vue.h)(_header.default, {
8189
- ref: refTableHeader,
8190
- tableData,
8191
- tableColumn,
8192
- tableGroupColumn
8193
- }) : (0, _vue.createCommentVNode)(),
8194
- /**
8195
- * 表体
8196
- */
8197
- (0, _vue.h)(_body.default, {
8198
- ref: refTableBody,
8199
- tableData,
8200
- tableColumn
8201
- }),
8202
- /**
8203
- * 表尾
8204
- */
8205
- showFooter ? (0, _vue.h)(_footer.default, {
8206
- ref: refTableFooter,
8207
- footerTableData,
8208
- tableColumn
8209
- }) : (0, _vue.createCommentVNode)()]), (0, _vue.h)('div', {
8210
- class: 'vxe-table--fixed-wrapper'
8211
- }, [
8212
- /**
8213
- * 左侧固定区域
8214
- */
8215
- leftList && leftList.length && overflowX ? renderFixed('left') : (0, _vue.createCommentVNode)(),
8216
- /**
8217
- * 右侧固定区域
8218
- */
8219
- rightList && rightList.length && overflowX ? renderFixed('right') : (0, _vue.createCommentVNode)()])]),
8220
- /**
8221
- * 空数据
8222
- */
8223
- (0, _vue.h)('div', {
8224
- ref: refEmptyPlaceholder,
8225
- class: 'vxe-table--empty-placeholder'
8226
- }, [(0, _vue.h)('div', {
8227
- class: 'vxe-table--empty-content'
8228
- }, renderEmptyContenet())]),
8229
- /**
8230
- * 边框线
8231
- */
8232
- (0, _vue.h)('div', {
8233
- class: 'vxe-table--border-line'
8234
- }),
8235
- /**
8236
- * 列宽线
8237
- */
8238
- (0, _vue.h)('div', {
8239
- ref: refCellResizeBar,
8240
- class: 'vxe-table--resizable-bar',
8241
- style: overflowX ? {
8242
- 'padding-bottom': `${scrollbarHeight}px`
8243
- } : null
8244
- }),
8245
- /**
8246
- * 加载中
8247
- */
8248
- VxeUILoadingComponent ? (0, _vue.h)(VxeUILoadingComponent, {
8249
- class: 'vxe-table--loading',
8250
- modelValue: currLoading,
8251
- icon: loadingOpts.icon,
8252
- text: loadingOpts.text
8253
- }, loadingSlot ? {
8254
- default: () => loadingSlot({
8255
- $table: $xeTable,
8256
- $grid: $xeGrid
8257
- })
8258
- } : {}) : (0, _vue.createCommentVNode)(),
8259
- /**
8260
- * 自定义列
8261
- */
8262
- initStore.custom ? (0, _vue.h)(_panel.default, {
8263
- ref: refTableCustom,
8264
- customStore
8265
- }) : (0, _vue.createCommentVNode)(),
8266
- /**
8267
- * 筛选
8268
- */
8269
- initStore.filter ? (0, _vue.h)(_panel2.default, {
8270
- ref: refTableFilter,
8271
- filterStore
8272
- }) : (0, _vue.createCommentVNode)(),
8273
- /**
8274
- * 导入
8275
- */
8276
- initStore.import && props.importConfig ? (0, _vue.h)(_importPanel.default, {
8277
- defaultOptions: reactData.importParams,
8278
- storeData: reactData.importStore
8279
- }) : (0, _vue.createCommentVNode)(),
8280
- /**
8281
- * 导出
8282
- */
8283
- initStore.export && (props.exportConfig || props.printConfig) ? (0, _vue.h)(_exportPanel.default, {
8284
- defaultOptions: reactData.exportParams,
8285
- storeData: reactData.exportStore
8286
- }) : (0, _vue.createCommentVNode)(),
8287
- /**
8288
- * 快捷菜单
8289
- */
8290
- isMenu ? (0, _vue.h)(_panel3.default, {
8291
- ref: refTableMenu
8292
- }) : (0, _vue.createCommentVNode)(),
8293
- /**
8294
- * 提示相关
8295
- */
8296
- VxeUITooltipComponent ? (0, _vue.h)('div', {}, [
8297
- /**
8298
- * 通用提示
8299
- */
8300
- (0, _vue.h)(VxeUITooltipComponent, {
8301
- ref: refCommTooltip,
8302
- isArrow: false,
8303
- enterable: false
8304
- }),
8305
- /**
8306
- * 工具提示
8307
- */
8308
- (0, _vue.h)(VxeUITooltipComponent, Object.assign({
8309
- ref: refTooltip
8310
- }, tipConfig, tooltipStore.currOpts)),
8311
- /**
8312
- * 校验提示
8313
- */
8314
- props.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip') ? (0, _vue.h)(VxeUITooltipComponent, Object.assign({
8315
- ref: refValidTooltip,
8316
- class: [{
8317
- 'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
8318
- }, 'vxe-table--valid-error']
8319
- }, validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {})) : (0, _vue.createCommentVNode)()]) : (0, _vue.createCommentVNode)()]);
8320
- };
8321
- $xeTable.renderVN = renderVN;
8322
8321
  if (process.env.NODE_ENV === 'development') {
8323
8322
  (0, _vue.nextTick)(() => {
8324
8323
  if (props.loading) {
@@ -8335,6 +8334,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8335
8334
  }
8336
8335
  (0, _vue.provide)('$xeColgroup', null);
8337
8336
  (0, _vue.provide)('$xeTable', $xeTable);
8337
+ $xeTable.renderVN = renderVN;
8338
8338
  return $xeTable;
8339
8339
  },
8340
8340
  render() {