vxe-table 4.5.5 → 4.5.6

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 (52) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/README.zh-TW.md +1 -1
  4. package/es/export/src/hook.js +2 -1
  5. package/es/icon/style.css +1 -1
  6. package/es/keyboard/src/hook.js +2 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/src/body.js +4 -2
  10. package/es/table/src/table.js +35 -25
  11. package/es/tools/log.js +1 -1
  12. package/es/v-x-e-table/index.js +1 -1
  13. package/es/validator/src/hook.js +2 -1
  14. package/lib/export/src/hook.js +4 -1
  15. package/lib/export/src/hook.min.js +1 -1
  16. package/lib/icon/style/style.css +1 -1
  17. package/lib/icon/style/style.min.css +1 -1
  18. package/lib/index.umd.js +93 -29
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/keyboard/src/hook.js +4 -1
  21. package/lib/keyboard/src/hook.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/table/src/body.js +4 -2
  25. package/lib/table/src/body.min.js +1 -1
  26. package/lib/table/src/table.js +77 -25
  27. package/lib/table/src/table.min.js +1 -1
  28. package/lib/tools/log.js +1 -1
  29. package/lib/tools/log.min.js +1 -1
  30. package/lib/v-x-e-table/index.js +1 -1
  31. package/lib/v-x-e-table/index.min.js +1 -1
  32. package/lib/validator/src/hook.js +4 -1
  33. package/lib/validator/src/hook.min.js +1 -1
  34. package/package.json +2 -2
  35. package/packages/export/src/hook.ts +2 -1
  36. package/packages/keyboard/src/hook.ts +2 -1
  37. package/packages/table/src/body.ts +4 -2
  38. package/packages/table/src/table.ts +33 -23
  39. package/packages/validator/src/hook.ts +2 -1
  40. package/types/v-x-e-table/index.d.ts +1 -1
  41. /package/es/icon/style/{iconfont.1692577799119.ttf → iconfont.1693009504594.ttf} +0 -0
  42. /package/es/icon/style/{iconfont.1692577799119.woff → iconfont.1693009504594.woff} +0 -0
  43. /package/es/icon/style/{iconfont.1692577799119.woff2 → iconfont.1693009504594.woff2} +0 -0
  44. /package/es/{iconfont.1692577799119.ttf → iconfont.1693009504594.ttf} +0 -0
  45. /package/es/{iconfont.1692577799119.woff → iconfont.1693009504594.woff} +0 -0
  46. /package/es/{iconfont.1692577799119.woff2 → iconfont.1693009504594.woff2} +0 -0
  47. /package/lib/icon/style/{iconfont.1692577799119.ttf → iconfont.1693009504594.ttf} +0 -0
  48. /package/lib/icon/style/{iconfont.1692577799119.woff → iconfont.1693009504594.woff} +0 -0
  49. /package/lib/icon/style/{iconfont.1692577799119.woff2 → iconfont.1693009504594.woff2} +0 -0
  50. /package/lib/{iconfont.1692577799119.ttf → iconfont.1693009504594.ttf} +0 -0
  51. /package/lib/{iconfont.1692577799119.woff → iconfont.1693009504594.woff} +0 -0
  52. /package/lib/{iconfont.1692577799119.woff2 → iconfont.1693009504594.woff2} +0 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_dom=require("../../tools/dom"),_log=require("../../tools/log"),_util=require("../../table/src/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return Object.defineProperty(e.prototype,"content",{get:function(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.content},enumerable:!1,configurable:!0}),e}(),tableValidatorMethodKeys=["fullValidate","validate","clearValidate"],validatorHook={setupTable:function(v){function r(e,a,o){var t,r,u={},n=h.editRules,s=h.treeConfig,c=p.afterFullData,l=w.value,d=x.value,i=(!0===e?t=c:e&&(_xeUtils.default.isFunction(e)?a=e:t=_xeUtils.default.isArray(e)?e:[e]),t=t||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]),[]),f=(p._lastCallTime=Date.now(),m=!1,b.clearValidate(),{});return n?(r=v.getColumns(),e=function(l){var e;!o&&m||(e=[],r.forEach(function(r){!o&&m||!_xeUtils.default.has(n,r.property)||e.push(R.validCellRules("all",l,r).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,rowIndex:v.getRowIndex(l),row:l,columnIndex:v.getColumnIndex(r),column:r,field:r.property,$table:v};if(u[r.property]||(u[r.property]=[]),f["".concat((0,_util.getRowid)(v,l),":").concat(r.id)]={column:r,row:l,rule:t,content:t.content},u[r.property].push(e),!o)return m=!0,Promise.reject(e)}))}),i.push(Promise.all(e)))},s?_xeUtils.default.eachTree(t,e,l):t.forEach(e),Promise.all(i).then(function(){var e,t,r,l=Object.keys(u);return g.validErrorMaps=(e=f,"single"===x.value.msgMode?(t=e,(r=Object.keys(e)).length&&(t[r=r[0]]=e[r]),t):e),(0,_vue.nextTick)().then(function(){if(l.length)return Promise.reject(u[l[0]][0]);a&&a()})}).catch(function(i){return new Promise(function(e,t){function r(){var t;i.cell=v.getCell(i.row,i.column),(0,_dom.scrollToView)(i.cell),t=i,new Promise(function(e){!1===x.value.autoPos?(v.dispatchEvent("valid-error",t,null),e()):v.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){e(R.showValidTooltip(t))})}).then(l)}var l=function(){(0,_vue.nextTick)(function(){a?(a(u),e()):("obsolete"===_conf.default.validToReject?t:e)(u)})},o=i.row,n=c.indexOf(o),n=0<n?c[n-1]:o;!1===d.autoPos?l():(s?v.scrollToTreeRow(n):v.scrollToRow(n)).then(r)})})):(g.validErrorMaps={},(0,_vue.nextTick)().then(function(){a&&a()}))}function _(e,t){var r=e.type,l=e.min,o=e.max,e=e.pattern,n=(r="number"===r)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!r||!isNaN(t))||!_xeUtils.default.eqNull(l)&&n<_xeUtils.default.toNumber(l)||!_xeUtils.default.eqNull(o)&&n>_xeUtils.default.toNumber(o)||!(!e||(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}var m,h=v.props,g=v.reactData,p=v.internalData,s=v.getRefMaps().refValidTooltip,e=v.getComputeMaps(),x=e.computeValidOpts,w=e.computeTreeOpts,c=e.computeEditOpts,b={},R={},R={validCellRules:function(u,s,c,e){var d,f,t=h.editRules,r=c.field,g=[],p=[];return r&&t&&(d=_xeUtils.default.get(t,r))&&(f=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(s,r):e,d.forEach(function(t){var e,r,l,o=t.type,n=t.trigger,i=t.required,a=t.validator;"all"!==u&&n&&u!==n||(a?(l={cellValue:f,rule:t,rules:d,row:s,rowIndex:v.getRowIndex(s),column:c,columnIndex:v.getColumnIndex(c),field:c.field,$table:v,$grid:v.xegrid},e=void 0,_xeUtils.default.isString(a)?(r=_vXETable.VXETable.validators.get(a))?r.cellValidatorMethod?e=r.cellValidatorMethod(l):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(l),e&&(_xeUtils.default.isError(e)?(m=!0,g.push(new Rule({type:"custom",trigger:n,content:e.message,rule:new Rule(t)}))):e.catch&&p.push(e.catch(function(e){m=!0,g.push(new Rule({type:"custom",trigger:n,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))})))):(r="array"===o,a=_xeUtils.default.isArray(f),l=!0,l=r||a?!a||!f.length:_xeUtils.default.isString(f)?(0,_utils.eqEmptyValue)(f.trim()):(0,_utils.eqEmptyValue)(f),(i?l||_(t,f):!l&&_(t,f))&&(m=!0,g.push(new Rule(t)))))})),Promise.all(p).then(function(){if(g.length)return Promise.reject({rules:g,rule:g[0]})})},hasCellRules:function(t,e,r){var l=h.editRules,r=r.field;return!(!r||!l)&&(l=_xeUtils.default.get(l,r))&&!!_xeUtils.default.find(l,function(e){return"all"===t||!e.trigger||t===e.trigger})},triggerValidate:function(t){var e=h.editConfig,r=h.editRules,l=g.editStore.actived,o=c.value,n=x.value;if(r&&"single"===n.msgMode&&(g.validErrorMaps={}),e&&r&&l.row){var n=l.args,i=n.row,a=n.column,u=n.cell;if(R.hasCellRules(t,i,a))return R.validCellRules(t,i,a).then(function(){"row"===o.mode&&b.clearValidate(i,a)}).catch(function(e){var e=e.rule;return e.trigger&&t!==e.trigger?Promise.resolve():(R.showValidTooltip(e={rule:e,row:i,column:a,cell:u}),Promise.reject(e))})}return Promise.resolve()},showValidTooltip:function(e){var t=h.height,r=g.tableData,l=g.validStore,o=g.validErrorMaps,n=x.value,i=s.value;if(l.visible=!0,"single"===n.msgMode?g.validErrorMaps=((l={})["".concat((0,_util.getRowid)(v,e.row),":").concat(e.column.id)]={column:e.column,row:e.row,rule:e.rule,content:e.rule.content},l):g.validErrorMaps=Object.assign({},o,((l={})["".concat((0,_util.getRowid)(v,e.row),":").concat(e.column.id)]={column:e.column,row:e.row,rule:e.rule,content:e.rule.content},l)),v.dispatchEvent("valid-error",e,null),i){o=e.cell;if(i&&("tooltip"===n.message||"default"===n.message&&!t&&r.length<2))return i.open(o,e.rule.content)}return(0,_vue.nextTick)()}};return __assign(__assign({},b={fullValidate:function(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),r(e,t,!0)},validate:function(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["validate(rows, callback)","validate(rows)"]),r(e,t)},clearValidate:function(e,t){var r,l,o=g.validErrorMaps,n=s.value,i=x.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[],a=_xeUtils.default.isArray(t)?t:(t?[t]:[]).map(function(e){return(0,_util.handleFieldOrColumn)(v,e)}),u={};return n&&n.reactData.visible&&n.close(),"single"===i.msgMode?g.validErrorMaps={}:(e.length&&a.length?(u=Object.assign({},o),e.forEach(function(t){a.forEach(function(e){e="".concat((0,_util.getRowid)(v,t),":").concat(e.id);u[e]&&delete u[e]})})):e.length?(r=e.map(function(e){return"".concat((0,_util.getRowid)(v,e))}),_xeUtils.default.each(o,function(e,t){-1<r.indexOf(t.split(":")[0])&&(u[t]=e)})):a.length&&(l=a.map(function(e){return"".concat(e.id)}),_xeUtils.default.each(o,function(e,t){-1<l.indexOf(t.split(":")[1])&&(u[t]=e)})),g.validErrorMaps=u),(0,_vue.nextTick)()}}),R)},setupGrid:function(e){return e.extendTableMethods(tableValidatorMethodKeys)}},_default=validatorHook;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_dom=require("../../tools/dom"),_log=require("../../tools/log"),_util=require("../../table/src/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return Object.defineProperty(e.prototype,"content",{get:function(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.content},enumerable:!1,configurable:!0}),e}(),tableValidatorMethodKeys=["fullValidate","validate","clearValidate"],validatorHook={setupTable:function(v){function r(e,a,o){var t,r,u={},n=h.editRules,s=h.treeConfig,c=p.afterFullData,l=(l=w.value).children||l.childrenField,d=x.value,i=(!0===e?t=c:e&&(_xeUtils.default.isFunction(e)?a=e:t=_xeUtils.default.isArray(e)?e:[e]),t=t||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]),[]),f=(p._lastCallTime=Date.now(),m=!1,b.clearValidate(),{});return n?(r=v.getColumns(),e=function(l){var e;!o&&m||(e=[],r.forEach(function(r){!o&&m||!_xeUtils.default.has(n,r.property)||e.push(R.validCellRules("all",l,r).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,rowIndex:v.getRowIndex(l),row:l,columnIndex:v.getColumnIndex(r),column:r,field:r.property,$table:v};if(u[r.property]||(u[r.property]=[]),f["".concat((0,_util.getRowid)(v,l),":").concat(r.id)]={column:r,row:l,rule:t,content:t.content},u[r.property].push(e),!o)return m=!0,Promise.reject(e)}))}),i.push(Promise.all(e)))},s?_xeUtils.default.eachTree(t,e,{children:l}):t.forEach(e),Promise.all(i).then(function(){var e,t,r,l=Object.keys(u);return g.validErrorMaps=(e=f,"single"===x.value.msgMode?(t=e,(r=Object.keys(e)).length&&(t[r=r[0]]=e[r]),t):e),(0,_vue.nextTick)().then(function(){if(l.length)return Promise.reject(u[l[0]][0]);a&&a()})}).catch(function(i){return new Promise(function(e,t){function r(){var t;i.cell=v.getCell(i.row,i.column),(0,_dom.scrollToView)(i.cell),t=i,new Promise(function(e){!1===x.value.autoPos?(v.dispatchEvent("valid-error",t,null),e()):v.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){e(R.showValidTooltip(t))})}).then(l)}var l=function(){(0,_vue.nextTick)(function(){a?(a(u),e()):("obsolete"===_conf.default.validToReject?t:e)(u)})},o=i.row,n=c.indexOf(o),n=0<n?c[n-1]:o;!1===d.autoPos?l():(s?v.scrollToTreeRow(n):v.scrollToRow(n)).then(r)})})):(g.validErrorMaps={},(0,_vue.nextTick)().then(function(){a&&a()}))}function _(e,t){var r=e.type,l=e.min,o=e.max,e=e.pattern,n=(r="number"===r)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!r||!isNaN(t))||!_xeUtils.default.eqNull(l)&&n<_xeUtils.default.toNumber(l)||!_xeUtils.default.eqNull(o)&&n>_xeUtils.default.toNumber(o)||!(!e||(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}var m,h=v.props,g=v.reactData,p=v.internalData,s=v.getRefMaps().refValidTooltip,e=v.getComputeMaps(),x=e.computeValidOpts,w=e.computeTreeOpts,c=e.computeEditOpts,b={},R={},R={validCellRules:function(u,s,c,e){var d,f,t=h.editRules,r=c.field,g=[],p=[];return r&&t&&(d=_xeUtils.default.get(t,r))&&(f=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(s,r):e,d.forEach(function(t){var e,r,l,o=t.type,n=t.trigger,i=t.required,a=t.validator;"all"!==u&&n&&u!==n||(a?(l={cellValue:f,rule:t,rules:d,row:s,rowIndex:v.getRowIndex(s),column:c,columnIndex:v.getColumnIndex(c),field:c.field,$table:v,$grid:v.xegrid},e=void 0,_xeUtils.default.isString(a)?(r=_vXETable.VXETable.validators.get(a))?r.cellValidatorMethod?e=r.cellValidatorMethod(l):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(l),e&&(_xeUtils.default.isError(e)?(m=!0,g.push(new Rule({type:"custom",trigger:n,content:e.message,rule:new Rule(t)}))):e.catch&&p.push(e.catch(function(e){m=!0,g.push(new Rule({type:"custom",trigger:n,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))})))):(r="array"===o,a=_xeUtils.default.isArray(f),l=!0,l=r||a?!a||!f.length:_xeUtils.default.isString(f)?(0,_utils.eqEmptyValue)(f.trim()):(0,_utils.eqEmptyValue)(f),(i?l||_(t,f):!l&&_(t,f))&&(m=!0,g.push(new Rule(t)))))})),Promise.all(p).then(function(){if(g.length)return Promise.reject({rules:g,rule:g[0]})})},hasCellRules:function(t,e,r){var l=h.editRules,r=r.field;return!(!r||!l)&&(l=_xeUtils.default.get(l,r))&&!!_xeUtils.default.find(l,function(e){return"all"===t||!e.trigger||t===e.trigger})},triggerValidate:function(t){var e=h.editConfig,r=h.editRules,l=g.editStore.actived,o=c.value,n=x.value;if(r&&"single"===n.msgMode&&(g.validErrorMaps={}),e&&r&&l.row){var n=l.args,i=n.row,a=n.column,u=n.cell;if(R.hasCellRules(t,i,a))return R.validCellRules(t,i,a).then(function(){"row"===o.mode&&b.clearValidate(i,a)}).catch(function(e){var e=e.rule;return e.trigger&&t!==e.trigger?Promise.resolve():(R.showValidTooltip(e={rule:e,row:i,column:a,cell:u}),Promise.reject(e))})}return Promise.resolve()},showValidTooltip:function(e){var t=h.height,r=g.tableData,l=g.validStore,o=g.validErrorMaps,n=x.value,i=s.value;if(l.visible=!0,"single"===n.msgMode?g.validErrorMaps=((l={})["".concat((0,_util.getRowid)(v,e.row),":").concat(e.column.id)]={column:e.column,row:e.row,rule:e.rule,content:e.rule.content},l):g.validErrorMaps=Object.assign({},o,((l={})["".concat((0,_util.getRowid)(v,e.row),":").concat(e.column.id)]={column:e.column,row:e.row,rule:e.rule,content:e.rule.content},l)),v.dispatchEvent("valid-error",e,null),i){o=e.cell;if(i&&("tooltip"===n.message||"default"===n.message&&!t&&r.length<2))return i.open(o,e.rule.content)}return(0,_vue.nextTick)()}};return __assign(__assign({},b={fullValidate:function(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),r(e,t,!0)},validate:function(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["validate(rows, callback)","validate(rows)"]),r(e,t)},clearValidate:function(e,t){var r,l,o=g.validErrorMaps,n=s.value,i=x.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[],a=_xeUtils.default.isArray(t)?t:(t?[t]:[]).map(function(e){return(0,_util.handleFieldOrColumn)(v,e)}),u={};return n&&n.reactData.visible&&n.close(),"single"===i.msgMode?g.validErrorMaps={}:(e.length&&a.length?(u=Object.assign({},o),e.forEach(function(t){a.forEach(function(e){e="".concat((0,_util.getRowid)(v,t),":").concat(e.id);u[e]&&delete u[e]})})):e.length?(r=e.map(function(e){return"".concat((0,_util.getRowid)(v,e))}),_xeUtils.default.each(o,function(e,t){-1<r.indexOf(t.split(":")[0])&&(u[t]=e)})):a.length&&(l=a.map(function(e){return"".concat(e.id)}),_xeUtils.default.each(o,function(e,t){-1<l.indexOf(t.split(":")[1])&&(u[t]=e)})),g.validErrorMaps=u),(0,_vue.nextTick)()}}),R)},setupGrid:function(e){return e.extendTableMethods(tableValidatorMethodKeys)}},_default=validatorHook;exports.default=_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.5.5",
3
+ "version": "4.5.6",
4
4
  "description": "一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式为低/零代码而设计...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
28
28
  "style": "lib/style.css",
29
29
  "typings": "types/index.d.ts",
30
30
  "dependencies": {
31
- "dom-zindex": "^0.4.0"
31
+ "dom-zindex": "^0.5.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.7",
@@ -330,6 +330,7 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
330
330
  htmlCellElem = document.createElement('div')
331
331
  }
332
332
  if (treeConfig) {
333
+ const childrenField = treeOpts.children || treeOpts.childrenField
333
334
  // 如果是树表格只允许导出数据源
334
335
  const rest: any[] = []
335
336
  const expandMaps: Map<any, number> = new Map()
@@ -396,7 +397,7 @@ const tableExportHook: VxeGlobalHooksHandles.HookOptions = {
396
397
  expandMaps.set(row, 1)
397
398
  rest.push(Object.assign(item, row))
398
399
  }
399
- }, treeOpts)
400
+ }, { children: childrenField })
400
401
  return rest
401
402
  }
402
403
  return datas.map((row, $rowIndex) => {
@@ -295,11 +295,12 @@ const tableKeyboardHook: VxeGlobalHooksHandles.HookOptions = {
295
295
  const { currentRow } = reactData
296
296
  const { afterFullData } = internalData
297
297
  const treeOpts = computeTreeOpts.value
298
+ const childrenField = treeOpts.children || treeOpts.childrenField
298
299
  let targetRow
299
300
  evnt.preventDefault()
300
301
  if (currentRow) {
301
302
  if (treeConfig) {
302
- const { index, items } = XEUtils.findTree(afterFullData, item => item === currentRow, treeOpts)
303
+ const { index, items } = XEUtils.findTree(afterFullData, item => item === currentRow, { children: childrenField })
303
304
  if (isUpArrow && index > 0) {
304
305
  targetRow = items[index - 1]
305
306
  } else if (isDwArrow && index < items.length - 1) {
@@ -725,8 +725,10 @@ export default defineComponent({
725
725
  onBeforeUnmount(() => {
726
726
  const el = refElem.value
727
727
  clearTimeout(wheelTime)
728
- el._onscroll = null
729
- el.onscroll = null
728
+ if (el) {
729
+ el._onscroll = null
730
+ el.onscroll = null
731
+ }
730
732
  })
731
733
 
732
734
  onUnmounted(() => {
@@ -1281,7 +1281,7 @@ export default defineComponent({
1281
1281
  fullDataRowIdData[rowid] = rest
1282
1282
  }
1283
1283
  fullMaps[rowid] = row
1284
- }, { children: treeOpts.transform ? treeOpts.mapChildrenField : (childrenField) })
1284
+ }, { children: treeOpts.transform ? treeOpts.mapChildrenField : childrenField })
1285
1285
  } else {
1286
1286
  afterFullData.forEach((row, index) => {
1287
1287
  const rowid = getRowid($xetable, row)
@@ -1854,6 +1854,7 @@ export default defineComponent({
1854
1854
  const { selectCheckboxMaps } = reactData
1855
1855
  const { afterFullData, afterFullRowMaps, checkboxReserveRowMap } = internalData
1856
1856
  const treeOpts = computeTreeOpts.value
1857
+ const childrenField = treeOpts.children || treeOpts.childrenField
1857
1858
  const checkboxOpts = computeCheckboxOpts.value
1858
1859
  const { checkField, reserve, checkStrictly, checkMethod } = checkboxOpts
1859
1860
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
@@ -1891,7 +1892,7 @@ export default defineComponent({
1891
1892
  // 如果存在选中方法
1892
1893
  // 如果方法成立,则更新值,否则忽略该数据
1893
1894
  if (treeConfig) {
1894
- XEUtils.eachTree(afterFullData, checkValFn, treeOpts)
1895
+ XEUtils.eachTree(afterFullData, checkValFn, { children: childrenField })
1895
1896
  } else {
1896
1897
  afterFullData.forEach(checkValFn)
1897
1898
  }
@@ -1910,7 +1911,7 @@ export default defineComponent({
1910
1911
  if (isForce || (!checkMethod || checkMethod({ row }))) {
1911
1912
  selectRowMaps[getRowid($xetable, row)] = row
1912
1913
  }
1913
- }, treeOpts)
1914
+ }, { children: childrenField })
1914
1915
  } else {
1915
1916
  /**
1916
1917
  * 如果是树取消
@@ -1922,7 +1923,7 @@ export default defineComponent({
1922
1923
  if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
1923
1924
  selectRowMaps[rowid] = row
1924
1925
  }
1925
- }, treeOpts)
1926
+ }, { children: childrenField })
1926
1927
  }
1927
1928
  }
1928
1929
  } else {
@@ -2029,13 +2030,14 @@ export default defineComponent({
2029
2030
  const { tableFullData } = internalData
2030
2031
  const treeOpts = computeTreeOpts.value
2031
2032
  const { expandAll, expandRowKeys } = treeOpts
2033
+ const childrenField = treeOpts.children || treeOpts.childrenField
2032
2034
  if (expandAll) {
2033
2035
  tableMethods.setAllTreeExpand(true)
2034
2036
  } else if (expandRowKeys) {
2035
2037
  const defExpandeds: any[] = []
2036
2038
  const rowkey = getRowkey($xetable)
2037
2039
  expandRowKeys.forEach((rowid: any) => {
2038
- const matchObj = XEUtils.findTree(tableFullData, item => rowid === XEUtils.get(item, rowkey), treeOpts)
2040
+ const matchObj = XEUtils.findTree(tableFullData, item => rowid === XEUtils.get(item, rowkey), { children: childrenField })
2039
2041
  if (matchObj) {
2040
2042
  defExpandeds.push(matchObj.item)
2041
2043
  }
@@ -2557,7 +2559,7 @@ export default defineComponent({
2557
2559
  if (accordion) {
2558
2560
  validRows = validRows.length ? [validRows[validRows.length - 1]] : []
2559
2561
  // 同一级只能展开一个
2560
- const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], treeOpts)
2562
+ const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField })
2561
2563
  if (matchObj) {
2562
2564
  matchObj.items.forEach(item => {
2563
2565
  const rowid = getRowid($xetable, item)
@@ -2803,7 +2805,7 @@ export default defineComponent({
2803
2805
  return tableMethods.createData(childRecords).then((rows) => {
2804
2806
  if (keepSource) {
2805
2807
  const rowid = getRowid($xetable, row)
2806
- const matchObj = XEUtils.findTree(tableSourceData, (item) => rowid === getRowid($xetable, item), treeOpts)
2808
+ const matchObj = XEUtils.findTree(tableSourceData, (item) => rowid === getRowid($xetable, item), { children: childrenField })
2807
2809
  if (matchObj) {
2808
2810
  matchObj.item[childrenField] = XEUtils.clone(rows, true)
2809
2811
  }
@@ -2813,7 +2815,7 @@ export default defineComponent({
2813
2815
  const rest = { row: childRow, rowid, seq: -1, index, _index: -1, $index: -1, items, parent, level: parentLevel + nodes.length }
2814
2816
  fullDataRowIdData[rowid] = rest
2815
2817
  fullAllDataRowIdData[rowid] = rest
2816
- }, treeOpts)
2818
+ }, { children: childrenField })
2817
2819
  row[childrenField] = rows
2818
2820
  if (transform) {
2819
2821
  row[mapChildrenField] = rows
@@ -3462,6 +3464,7 @@ export default defineComponent({
3462
3464
  const { fullDataRowIdData, radioReserveRow, afterFullData } = internalData
3463
3465
  const radioOpts = computeRadioOpts.value
3464
3466
  const treeOpts = computeTreeOpts.value
3467
+ const childrenField = treeOpts.children || treeOpts.childrenField
3465
3468
  if (radioOpts.reserve && radioReserveRow) {
3466
3469
  const rowid = getRowid($xetable, radioReserveRow)
3467
3470
  if (isFull) {
@@ -3471,7 +3474,7 @@ export default defineComponent({
3471
3474
  } else {
3472
3475
  const rowkey = getRowkey($xetable)
3473
3476
  if (treeConfig) {
3474
- const matchObj = XEUtils.findTree(afterFullData, row => rowid === XEUtils.get(row, rowkey), treeOpts)
3477
+ const matchObj = XEUtils.findTree(afterFullData, row => rowid === XEUtils.get(row, rowkey), { children: childrenField })
3475
3478
  if (matchObj) {
3476
3479
  return radioReserveRow
3477
3480
  }
@@ -3496,13 +3499,14 @@ export default defineComponent({
3496
3499
  const { afterFullData, fullDataRowIdData, checkboxReserveRowMap } = internalData
3497
3500
  const checkboxOpts = computeCheckboxOpts.value
3498
3501
  const treeOpts = computeTreeOpts.value
3502
+ const childrenField = treeOpts.children || treeOpts.childrenField
3499
3503
  const reserveSelection: any[] = []
3500
3504
  if (checkboxOpts.reserve) {
3501
3505
  const afterFullIdMaps: { [key: string]: number } = {}
3502
3506
  if (treeConfig) {
3503
3507
  XEUtils.eachTree(afterFullData, row => {
3504
3508
  afterFullIdMaps[getRowid($xetable, row)] = 1
3505
- }, treeOpts)
3509
+ }, { children: childrenField })
3506
3510
  } else {
3507
3511
  afterFullData.forEach(row => {
3508
3512
  afterFullIdMaps[getRowid($xetable, row)] = 1
@@ -3543,6 +3547,7 @@ export default defineComponent({
3543
3547
  const { treeConfig } = props
3544
3548
  const { tableFullData } = internalData
3545
3549
  const treeOpts = computeTreeOpts.value
3550
+ const childrenField = treeOpts.children || treeOpts.childrenField
3546
3551
  const checkboxOpts = computeCheckboxOpts.value
3547
3552
  const { checkField, reserve } = checkboxOpts
3548
3553
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
@@ -3554,7 +3559,7 @@ export default defineComponent({
3554
3559
  XEUtils.set(item, checkField, false)
3555
3560
  }
3556
3561
  if (treeConfig) {
3557
- XEUtils.eachTree(tableFullData, handleClearChecked, treeOpts)
3562
+ XEUtils.eachTree(tableFullData, handleClearChecked, { children: childrenField })
3558
3563
  } else {
3559
3564
  tableFullData.forEach(handleClearChecked)
3560
3565
  }
@@ -3840,11 +3845,12 @@ export default defineComponent({
3840
3845
  setAllRowExpand (expanded) {
3841
3846
  const treeOpts = computeTreeOpts.value
3842
3847
  const { tableFullData, tableFullTreeData } = internalData
3848
+ const childrenField = treeOpts.children || treeOpts.childrenField
3843
3849
  let expandedRows: any[] = []
3844
3850
  if (props.treeConfig) {
3845
3851
  XEUtils.eachTree(tableFullTreeData, (row) => {
3846
3852
  expandedRows.push(row)
3847
- }, treeOpts)
3853
+ }, { children: childrenField })
3848
3854
  } else {
3849
3855
  expandedRows = tableFullData
3850
3856
  }
@@ -4032,7 +4038,7 @@ export default defineComponent({
4032
4038
  if (lazy || (rowChildren && rowChildren.length)) {
4033
4039
  expandeds.push(row)
4034
4040
  }
4035
- }, treeOpts)
4041
+ }, { children: childrenField })
4036
4042
  return tableMethods.setTreeExpand(expandeds, expanded).then(() => {
4037
4043
  if (transform) {
4038
4044
  handleVirtualTreeToList()
@@ -4079,11 +4085,12 @@ export default defineComponent({
4079
4085
  clearTreeExpand () {
4080
4086
  const { tableFullTreeData } = internalData
4081
4087
  const treeOpts = computeTreeOpts.value
4088
+ const childrenField = treeOpts.children || treeOpts.childrenField
4082
4089
  const { transform, reserve } = treeOpts
4083
4090
  const expList = tableMethods.getTreeExpandRecords()
4084
4091
  reactData.treeExpandedMaps = {}
4085
4092
  if (reserve) {
4086
- XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), treeOpts)
4093
+ XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), { children: childrenField })
4087
4094
  }
4088
4095
  return tablePrivateMethods.handleTableData().then(() => {
4089
4096
  if (transform) {
@@ -4697,7 +4704,7 @@ export default defineComponent({
4697
4704
  }
4698
4705
  } else if (isBack && keyboardOpts.isArrow && treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
4699
4706
  // 如果树形表格回退键关闭当前行返回父节点
4700
- const { parent: parentRow } = XEUtils.findTree(internalData.afterFullData, item => item === currentRow, treeOpts)
4707
+ const { parent: parentRow } = XEUtils.findTree(internalData.afterFullData, item => item === currentRow, { children: childrenField })
4701
4708
  if (parentRow) {
4702
4709
  evnt.preventDefault()
4703
4710
  params = {
@@ -5001,7 +5008,7 @@ export default defineComponent({
5001
5008
  }
5002
5009
  fullAllDataRowIdData = internalData.fullAllDataRowIdData = {}
5003
5010
  if (treeConfig) {
5004
- XEUtils.eachTree(tableFullTreeData, handleRow, treeOpts)
5011
+ XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField })
5005
5012
  } else {
5006
5013
  tableFullData.forEach(handleRow)
5007
5014
  }
@@ -5022,8 +5029,9 @@ export default defineComponent({
5022
5029
  sourceDataRowIdData[rowid] = row
5023
5030
  }
5024
5031
  // 源数据缓存
5025
- if (treeConfig && !treeOpts.transform) {
5026
- XEUtils.eachTree(sourceData, handleSourceRow, treeOpts)
5032
+ if (treeConfig) {
5033
+ const childrenField = treeOpts.children || treeOpts.childrenField
5034
+ XEUtils.eachTree(sourceData, handleSourceRow, { children: treeOpts.transform ? treeOpts.mapChildrenField : childrenField })
5027
5035
  } else {
5028
5036
  sourceData.forEach(handleSourceRow)
5029
5037
  }
@@ -5260,6 +5268,7 @@ export default defineComponent({
5260
5268
  const selectRowMaps = { ...selectCheckboxMaps }
5261
5269
  const { afterFullData } = internalData
5262
5270
  const treeOpts = computeTreeOpts.value
5271
+ const childrenField = treeOpts.children || treeOpts.childrenField
5263
5272
  const checkboxOpts = computeCheckboxOpts.value
5264
5273
  const { checkField, checkStrictly, checkMethod } = checkboxOpts
5265
5274
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
@@ -5285,10 +5294,10 @@ export default defineComponent({
5285
5294
  delete treeIndeterminateMaps[getRowid($xetable, item)]
5286
5295
  handleCheckboxReserveRow(row, value)
5287
5296
  }
5288
- }, treeOpts)
5297
+ }, { children: childrenField })
5289
5298
  }
5290
5299
  // 如果存在父节点,更新父节点状态
5291
- const matchObj = XEUtils.findTree(afterFullData, item => $xetable.eqRow(item, row), treeOpts)
5300
+ const matchObj = XEUtils.findTree(afterFullData, item => $xetable.eqRow(item, row), { children: childrenField })
5292
5301
  if (matchObj && matchObj.parent) {
5293
5302
  let parentStatus
5294
5303
  const vItems: any[] = []
@@ -5359,10 +5368,10 @@ export default defineComponent({
5359
5368
  delete treeIndeterminateMaps[getRowid($xetable, item)]
5360
5369
  handleCheckboxReserveRow(row, value)
5361
5370
  }
5362
- }, treeOpts)
5371
+ }, { children: childrenField })
5363
5372
  }
5364
5373
  // 如果存在父节点,更新父节点状态
5365
- const matchObj = XEUtils.findTree(afterFullData, item => $xetable.eqRow(item, row), treeOpts)
5374
+ const matchObj = XEUtils.findTree(afterFullData, item => $xetable.eqRow(item, row), { children: childrenField })
5366
5375
  if (matchObj && matchObj.parent) {
5367
5376
  let parentStatus
5368
5377
  const vItems: any[] = []
@@ -5819,7 +5828,8 @@ export default defineComponent({
5819
5828
  const rests: Promise<any>[] = []
5820
5829
  if (treeConfig) {
5821
5830
  const treeOpts = computeTreeOpts.value
5822
- const matchObj = XEUtils.findTree(tableFullData, item => $xetable.eqRow(item, row), treeOpts)
5831
+ const childrenField = treeOpts.children || treeOpts.childrenField
5832
+ const matchObj = XEUtils.findTree(tableFullData, item => $xetable.eqRow(item, row), { children: childrenField })
5823
5833
  if (matchObj) {
5824
5834
  const nodes = matchObj.nodes
5825
5835
  nodes.forEach((row, index) => {
@@ -110,6 +110,7 @@ const validatorHook: VxeGlobalHooksHandles.HookOptions = {
110
110
  const { editRules, treeConfig } = props
111
111
  const { afterFullData } = internalData
112
112
  const treeOpts = computeTreeOpts.value
113
+ const childrenField = treeOpts.children || treeOpts.childrenField
113
114
  const validOpts = computeValidOpts.value
114
115
  let vaildDatas
115
116
  if (rows === true) {
@@ -180,7 +181,7 @@ const validatorHook: VxeGlobalHooksHandles.HookOptions = {
180
181
  }
181
182
  }
182
183
  if (treeConfig) {
183
- XEUtils.eachTree(vaildDatas, handleVaild, treeOpts)
184
+ XEUtils.eachTree(vaildDatas, handleVaild, { children: childrenField })
184
185
  } else {
185
186
  vaildDatas.forEach(handleVaild)
186
187
  }
@@ -137,7 +137,7 @@ export interface VXETableCore {
137
137
  }
138
138
 
139
139
  /**
140
- * 一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式为低/零代码而设计...
140
+ * 一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...
141
141
  */
142
142
  export const VXETable: VXETableCore
143
143