vxe-table 4.2.4-beta.2 → 4.2.4

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 (106) hide show
  1. package/es/all.js +0 -2
  2. package/es/button/style.css +0 -5
  3. package/es/checkbox/src/checkbox.js +6 -0
  4. package/es/checkbox/src/group.js +7 -1
  5. package/es/edit/src/hook.js +35 -4
  6. package/es/form/src/form-config-item.js +152 -0
  7. package/es/form/src/form-gather.js +12 -3
  8. package/es/form/src/form-item.js +22 -3
  9. package/es/form/src/form.js +28 -119
  10. package/es/form/src/itemInfo.js +2 -0
  11. package/es/form/style.css +6 -6
  12. package/es/icon/style.css +10 -9
  13. package/es/input/src/input.js +50 -5
  14. package/es/input/style.css +5 -0
  15. package/es/radio/src/button.js +6 -0
  16. package/es/radio/src/group.js +8 -2
  17. package/es/radio/src/radio.js +6 -0
  18. package/es/select/src/select.js +7 -1
  19. package/es/style.css +1 -1
  20. package/es/style.min.css +1 -1
  21. package/es/switch/src/switch.js +7 -1
  22. package/es/table/src/table.js +3 -2
  23. package/es/textarea/src/textarea.js +7 -1
  24. package/es/tools/log.js +1 -1
  25. package/es/v-x-e-table/index.js +1 -1
  26. package/es/validator/src/hook.js +1 -1
  27. package/lib/all.js +15 -15
  28. package/lib/all.min.js +1 -1
  29. package/lib/button/style/style.css +0 -5
  30. package/lib/button/style/style.min.css +1 -1
  31. package/lib/checkbox/src/checkbox.js +7 -1
  32. package/lib/checkbox/src/checkbox.min.js +1 -1
  33. package/lib/checkbox/src/group.js +7 -1
  34. package/lib/checkbox/src/group.min.js +1 -1
  35. package/lib/edit/src/hook.js +35 -4
  36. package/lib/edit/src/hook.min.js +1 -1
  37. package/lib/form/src/form-config-item.js +212 -0
  38. package/lib/form/src/form-config-item.min.js +1 -0
  39. package/lib/form/src/form-gather.js +14 -3
  40. package/lib/form/src/form-gather.min.js +1 -1
  41. package/lib/form/src/form-item.js +25 -2
  42. package/lib/form/src/form-item.min.js +1 -1
  43. package/lib/form/src/form.js +30 -149
  44. package/lib/form/src/form.min.js +1 -1
  45. package/lib/form/src/itemInfo.js +2 -0
  46. package/lib/form/src/itemInfo.min.js +1 -1
  47. package/lib/form/style/style.css +6 -6
  48. package/lib/form/style/style.min.css +1 -1
  49. package/lib/icon/style/style.css +10 -9
  50. package/lib/icon/style/style.min.css +1 -1
  51. package/lib/index.umd.js +2072 -1839
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/input/src/input.js +54 -5
  54. package/lib/input/src/input.min.js +1 -1
  55. package/lib/input/style/style.css +5 -0
  56. package/lib/input/style/style.min.css +1 -1
  57. package/lib/radio/src/button.js +7 -1
  58. package/lib/radio/src/button.min.js +1 -1
  59. package/lib/radio/src/group.js +8 -2
  60. package/lib/radio/src/group.min.js +1 -1
  61. package/lib/radio/src/radio.js +7 -1
  62. package/lib/radio/src/radio.min.js +1 -1
  63. package/lib/select/src/select.js +7 -1
  64. package/lib/select/src/select.min.js +1 -1
  65. package/lib/style.css +1 -1
  66. package/lib/style.min.css +1 -1
  67. package/lib/switch/src/switch.js +8 -1
  68. package/lib/switch/src/switch.min.js +1 -1
  69. package/lib/table/src/table.js +4 -2
  70. package/lib/table/src/table.min.js +1 -1
  71. package/lib/textarea/src/textarea.js +7 -1
  72. package/lib/textarea/src/textarea.min.js +1 -1
  73. package/lib/tools/log.js +1 -1
  74. package/lib/tools/log.min.js +1 -1
  75. package/lib/v-x-e-table/index.js +1 -1
  76. package/lib/v-x-e-table/index.min.js +1 -1
  77. package/lib/validator/src/hook.js +1 -1
  78. package/lib/validator/src/hook.min.js +1 -1
  79. package/package.json +2 -2
  80. package/packages/all.ts +0 -2
  81. package/packages/checkbox/src/checkbox.ts +7 -1
  82. package/packages/checkbox/src/group.ts +8 -2
  83. package/packages/edit/src/hook.ts +35 -4
  84. package/packages/form/src/form-config-item.ts +156 -0
  85. package/packages/form/src/form-gather.ts +13 -3
  86. package/packages/form/src/form-item.ts +24 -3
  87. package/packages/form/src/form.ts +28 -126
  88. package/packages/form/src/itemInfo.ts +2 -0
  89. package/packages/input/src/input.ts +54 -6
  90. package/packages/radio/src/button.ts +7 -1
  91. package/packages/radio/src/group.ts +9 -3
  92. package/packages/radio/src/radio.ts +7 -1
  93. package/packages/select/src/select.ts +8 -2
  94. package/packages/switch/src/switch.ts +8 -2
  95. package/packages/table/src/table.ts +3 -2
  96. package/packages/textarea/src/textarea.ts +8 -2
  97. package/packages/validator/src/hook.ts +1 -1
  98. package/styles/button.scss +0 -5
  99. package/styles/form.scss +17 -19
  100. package/styles/icon.scss +10 -9
  101. package/styles/input.scss +4 -0
  102. package/styles/variable.scss +1 -0
  103. package/types/all.d.ts +0 -1
  104. package/types/edit.d.ts +38 -5
  105. package/types/form-item.d.ts +10 -0
  106. package/types/form.d.ts +14 -2
package/lib/tools/log.js CHANGED
@@ -12,7 +12,7 @@ var _conf = _interopRequireDefault(require("../v-x-e-table/src/conf"));
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
14
  function getLog(message, params) {
15
- return "[vxe-table v" + "4.2.4-beta.2" + "] " + _conf.default.i18n(message, params);
15
+ return "[vxe-table v" + "4.2.4-beta.3" + "] " + _conf.default.i18n(message, params);
16
16
  }
17
17
 
18
18
  function outLog(type) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.errLog=void 0,exports.getLog=getLog,exports.warnLog=void 0;var _conf=_interopRequireDefault(require("../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getLog(e,r){return"[vxe-table v4.2.4-beta.2] "+_conf.default.i18n(e,r)}function outLog(o){return function(e,r){r=getLog(e,r);return console[o](r),r}}var warnLog=outLog("warn");exports.warnLog=warnLog;var errLog=outLog("error");exports.errLog=errLog;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.errLog=void 0,exports.getLog=getLog,exports.warnLog=void 0;var _conf=_interopRequireDefault(require("../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getLog(e,r){return"[vxe-table v4.2.4-beta.3] "+_conf.default.i18n(e,r)}function outLog(o){return function(e,r){r=getLog(e,r);return console[o](r),r}}var warnLog=outLog("warn");exports.warnLog=warnLog;var errLog=outLog("error");exports.errLog=errLog;
@@ -212,7 +212,7 @@ var v = 'v4';
212
212
  exports.v = v;
213
213
  var VXETable = {
214
214
  v: v,
215
- version: "4.2.4-beta.2",
215
+ version: "4.2.4-beta.3",
216
216
  setup: _setup.setup,
217
217
  interceptor: _interceptor.interceptor,
218
218
  renderer: _renderer.renderer,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={use:!0,t:!0,_t:!0,config:!0,v:!0,VXETable:!0};exports.VXETable=void 0,exports._t=_t,exports.default=exports.config=void 0,exports.t=t,exports.use=use,exports.v=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("./src/conf")),_interceptor=require("./src/interceptor");Object.keys(_interceptor).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}}))});var _renderer=require("./src/renderer");Object.keys(_renderer).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}}))});var _commands=require("./src/commands");Object.keys(_commands).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}}))});var _menus=require("./src/menus");Object.keys(_menus).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}}))});var _formats=require("./src/formats");Object.keys(_formats).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}}))});var _hooks=require("./src/hooks");Object.keys(_hooks).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_hooks[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _hooks[e]}}))});var _setup=require("./src/setup");Object.keys(_setup).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_setup[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _setup[e]}}))});var _utils=require("../tools/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getExportOrImpotType(e,r){var o=[];return _xeUtils.default.objectEach(e,function(e,t){0!==e&&e!==r||o.push(t)}),o}var installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VXETable,t),installedPlugins.push(e)),VXETable}function t(e,t){return _conf.default.i18n(e,t)}function _t(e,t){return e?_xeUtils.default.toValueString(_conf.default.translate?_conf.default.translate(e,t):e):""}var VXETableConfig=function(){function e(){}return Object.defineProperty(e.prototype,"zIndex",{get:function(){return(0,_utils.getLastZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextZIndex",{get:function(){return(0,_utils.nextZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"exportTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,1)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"importTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,2)},enumerable:!1,configurable:!0}),e}(),config=new VXETableConfig;exports.config=config;var v="v4",VXETable={v:exports.v=v,version:"4.2.4-beta.2",setup:_setup.setup,interceptor:_interceptor.interceptor,renderer:_renderer.renderer,commands:_commands.commands,formats:_formats.formats,menus:_menus.menus,hooks:_hooks.hooks,config:config,use:use,t:t,_t:_t},_default=exports.VXETable=VXETable;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={use:!0,t:!0,_t:!0,config:!0,v:!0,VXETable:!0};exports.VXETable=void 0,exports._t=_t,exports.default=exports.config=void 0,exports.t=t,exports.use=use,exports.v=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("./src/conf")),_interceptor=require("./src/interceptor");Object.keys(_interceptor).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}}))});var _renderer=require("./src/renderer");Object.keys(_renderer).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}}))});var _commands=require("./src/commands");Object.keys(_commands).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}}))});var _menus=require("./src/menus");Object.keys(_menus).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}}))});var _formats=require("./src/formats");Object.keys(_formats).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}}))});var _hooks=require("./src/hooks");Object.keys(_hooks).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_hooks[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _hooks[e]}}))});var _setup=require("./src/setup");Object.keys(_setup).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_setup[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _setup[e]}}))});var _utils=require("../tools/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getExportOrImpotType(e,r){var o=[];return _xeUtils.default.objectEach(e,function(e,t){0!==e&&e!==r||o.push(t)}),o}var installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VXETable,t),installedPlugins.push(e)),VXETable}function t(e,t){return _conf.default.i18n(e,t)}function _t(e,t){return e?_xeUtils.default.toValueString(_conf.default.translate?_conf.default.translate(e,t):e):""}var VXETableConfig=function(){function e(){}return Object.defineProperty(e.prototype,"zIndex",{get:function(){return(0,_utils.getLastZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextZIndex",{get:function(){return(0,_utils.nextZIndex)()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"exportTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,1)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"importTypes",{get:function(){return getExportOrImpotType(_conf.default.export.types,2)},enumerable:!1,configurable:!0}),e}(),config=new VXETableConfig;exports.config=config;var v="v4",VXETable={v:exports.v=v,version:"4.2.4-beta.3",setup:_setup.setup,interceptor:_interceptor.interceptor,renderer:_renderer.renderer,commands:_commands.commands,formats:_formats.formats,menus:_menus.menus,hooks:_hooks.hooks,config:config,use:use,t:t,_t:_t},_default=exports.VXETable=VXETable;exports.default=_default;
@@ -399,7 +399,7 @@ var validatorHook = {
399
399
  }
400
400
  } else {
401
401
  var isArrType = type === 'array';
402
- var hasEmpty = isArrType ? !_xeUtils.default.isArray(cellValue_1) || !cellValue_1.length : (0, _utils.eqEmptyValue)(cellValue_1);
402
+ var hasEmpty = isArrType || _xeUtils.default.isArray(cellValue_1) ? !_xeUtils.default.isArray(cellValue_1) || !cellValue_1.length : (0, _utils.eqEmptyValue)(cellValue_1);
403
403
 
404
404
  if (required ? hasEmpty || validErrorRuleValue(rule, cellValue_1) : !hasEmpty && validErrorRuleValue(rule, cellValue_1)) {
405
405
  validRuleErr = true;
@@ -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")),_utils=require("../../tools/utils"),_dom=require("../../tools/dom");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 n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);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(f){function r(e,u,l){var a={},n=v.editRules,s=v.treeConfig,c=m.afterFullData,t=x.value,d=_.value;!0===e?r=c:e&&(_xeUtils.default.isFunction(e)?u=e:r=_xeUtils.default.isArray(e)?e:[e]);var r=r||(f.getInsertRecords?f.getInsertRecords().concat(f.getUpdateRecords()):[]),i=[];if(m._lastCallTime=Date.now(),g=!1,w.clearValidate(),n){var o=f.getColumns(),e=function(r){var e;!l&&g||(e=[],o.forEach(function(t){!l&&g||!_xeUtils.default.has(n,t.property)||e.push(b.validCellRules("all",r,t).catch(function(e){e={rule:e.rule,rules:e.rules,rowIndex:f.getRowIndex(r),row:r,columnIndex:f.getColumnIndex(t),column:t,field:t.property,$table:f};if(a[t.property]||(a[t.property]=[]),a[t.property].push(e),!l)return g=!0,Promise.reject(e)}))}),i.push(Promise.all(e)))};return s?_xeUtils.default.eachTree(r,e,t):r.forEach(e),Promise.all(i).then(function(){var e=Object.keys(a);return(0,_vue.nextTick)().then(function(){return e.length?Promise.reject(a[e[0]][0]):void(u&&u())})}).catch(function(o){return new Promise(function(e,t){function r(){var t;o.cell=f.getCell(o.row,o.column),(0,_dom.scrollToView)(o.cell),t=o,new Promise(function(e){!1===_.value.autoPos?(f.dispatchEvent("valid-error",t,null),e()):f.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){setTimeout(function(){e(b.showValidTooltip(t))},10)})}).then(l)}var l=function(){(0,_vue.nextTick)(function(){u?(u(a),e()):("obsolete"===_conf.default.validToReject?t:e)(a)})},n=o.row,i=c.indexOf(n),n=0<i?c[i-1]:n;!1===d.autoPos?l():(s?f.scrollToTreeRow(n):f.scrollToRow(n)).then(r)})})}return(0,_vue.nextTick)().then(function(){u&&u()})}function p(e,t){var r=e.type,l=e.min,n=e.max,i=e.pattern,r=(e="number"===r)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(l)&&r<_xeUtils.default.toNumber(l)||(!_xeUtils.default.eqNull(n)&&r>_xeUtils.default.toNumber(n)||!(!i||(_xeUtils.default.isRegExp(i)?i:new RegExp(i)).test(t))))}var g,v=f.props,d=f.reactData,m=f.internalData,h=f.getRefMaps().refValidTooltip,e=f.getComputeMaps(),_=e.computeValidOpts,x=e.computeTreeOpts,s=e.computeEditOpts,w={},b={},b={validCellRules:function(i,o,u,e){var a,s,t=v.editRules,r=u.property,c=[],d=[];return r&&t&&((a=_xeUtils.default.get(t,r))&&(s=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(o,r):e,a.forEach(function(t){var e,r=t.type,l=t.trigger,n=t.required;"all"!==i&&l&&i!==l||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({cellValue:s,rule:t,rules:a,row:o,rowIndex:f.getRowIndex(o),column:u,columnIndex:f.getColumnIndex(u),field:u.property,$table:f}))&&(_xeUtils.default.isError(e)?(g=!0,c.push(new Rule({type:"custom",trigger:l,content:e.message,rule:new Rule(t)}))):e.catch&&d.push(e.catch(function(e){g=!0,c.push(new Rule({type:"custom",trigger:l,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))}))):(r="array"===r?!_xeUtils.default.isArray(s)||!s.length:(0,_utils.eqEmptyValue)(s),(n?r||p(t,s):!r&&p(t,s))&&(g=!0,c.push(new Rule(t)))))}))),Promise.all(d).then(function(){if(c.length){var e={rules:c,rule:c[0]};return Promise.reject(e)}})},hasCellRules:function(t,e,r){var l=v.editRules,r=r.property;if(r&&l){r=_xeUtils.default.get(l,r);return r&&!!_xeUtils.default.find(r,function(e){return"all"===t||!e.trigger||t===e.trigger})}return!1},triggerValidate:function(t){var e=v.editConfig,r=v.editRules,l=d.editStore,n=d.validStore,l=l.actived,i=s.value;if(e&&r&&l.row){var l=l.args,o=l.row,u=l.column,a=l.cell;if(b.hasCellRules(t,o,u))return b.validCellRules(t,o,u).then(function(){"row"===i.mode&&n.visible&&n.row===o&&n.column===u&&w.clearValidate()}).catch(function(e){e=e.rule;if(e.trigger&&t!==e.trigger)return Promise.resolve();e={rule:e,row:o,column:u,cell:a};return b.showValidTooltip(e),Promise.reject(e)})}return Promise.resolve()},showValidTooltip:function(e){var t=v.height,r=d.tableData,l=d.validStore,n=_.value,i=e.rule,o=e.row,u=e.column,a=e.cell,s=h.value,c=i.content;return(0,_vue.nextTick)().then(function(){if(Object.assign(l,{row:o,column:u,rule:i,content:c,visible:!0}),f.dispatchEvent("valid-error",e,null),s&&("tooltip"===n.message||"default"===n.message&&!t&&r.length<2))return s.open(a,c)})}};return __assign(__assign({},w={fullValidate:function(e,t){return r(e,t,!0)},validate:function(e,t){return r(e,t)},clearValidate:function(){var e=d.validStore,t=h.value;return Object.assign(e,{visible:!1,row:null,column:null,content:"",rule:null}),t&&t.reactData.visible&&t.close(),(0,_vue.nextTick)()}}),b)},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")),_utils=require("../../tools/utils"),_dom=require("../../tools/dom");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 n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);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(f){function r(e,o,l){var a={},n=v.editRules,s=v.treeConfig,c=m.afterFullData,t=x.value,d=_.value;!0===e?r=c:e&&(_xeUtils.default.isFunction(e)?o=e:r=_xeUtils.default.isArray(e)?e:[e]);var r=r||(f.getInsertRecords?f.getInsertRecords().concat(f.getUpdateRecords()):[]),i=[];if(m._lastCallTime=Date.now(),g=!1,w.clearValidate(),n){var u=f.getColumns(),e=function(r){var e;!l&&g||(e=[],u.forEach(function(t){!l&&g||!_xeUtils.default.has(n,t.property)||e.push(y.validCellRules("all",r,t).catch(function(e){e={rule:e.rule,rules:e.rules,rowIndex:f.getRowIndex(r),row:r,columnIndex:f.getColumnIndex(t),column:t,field:t.property,$table:f};if(a[t.property]||(a[t.property]=[]),a[t.property].push(e),!l)return g=!0,Promise.reject(e)}))}),i.push(Promise.all(e)))};return s?_xeUtils.default.eachTree(r,e,t):r.forEach(e),Promise.all(i).then(function(){var e=Object.keys(a);return(0,_vue.nextTick)().then(function(){return e.length?Promise.reject(a[e[0]][0]):void(o&&o())})}).catch(function(u){return new Promise(function(e,t){function r(){var t;u.cell=f.getCell(u.row,u.column),(0,_dom.scrollToView)(u.cell),t=u,new Promise(function(e){!1===_.value.autoPos?(f.dispatchEvent("valid-error",t,null),e()):f.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){setTimeout(function(){e(y.showValidTooltip(t))},10)})}).then(l)}var l=function(){(0,_vue.nextTick)(function(){o?(o(a),e()):("obsolete"===_conf.default.validToReject?t:e)(a)})},n=u.row,i=c.indexOf(n),n=0<i?c[i-1]:n;!1===d.autoPos?l():(s?f.scrollToTreeRow(n):f.scrollToRow(n)).then(r)})})}return(0,_vue.nextTick)().then(function(){o&&o()})}function p(e,t){var r=e.type,l=e.min,n=e.max,i=e.pattern,r=(e="number"===r)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(l)&&r<_xeUtils.default.toNumber(l)||(!_xeUtils.default.eqNull(n)&&r>_xeUtils.default.toNumber(n)||!(!i||(_xeUtils.default.isRegExp(i)?i:new RegExp(i)).test(t))))}var g,v=f.props,d=f.reactData,m=f.internalData,h=f.getRefMaps().refValidTooltip,e=f.getComputeMaps(),_=e.computeValidOpts,x=e.computeTreeOpts,s=e.computeEditOpts,w={},y={},y={validCellRules:function(i,u,o,e){var a,s,t=v.editRules,r=o.property,c=[],d=[];return r&&t&&((a=_xeUtils.default.get(t,r))&&(s=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(u,r):e,a.forEach(function(t){var e,r=t.type,l=t.trigger,n=t.required;"all"!==i&&l&&i!==l||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({cellValue:s,rule:t,rules:a,row:u,rowIndex:f.getRowIndex(u),column:o,columnIndex:f.getColumnIndex(o),field:o.property,$table:f}))&&(_xeUtils.default.isError(e)?(g=!0,c.push(new Rule({type:"custom",trigger:l,content:e.message,rule:new Rule(t)}))):e.catch&&d.push(e.catch(function(e){g=!0,c.push(new Rule({type:"custom",trigger:l,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))}))):(r="array"===r||_xeUtils.default.isArray(s)?!_xeUtils.default.isArray(s)||!s.length:(0,_utils.eqEmptyValue)(s),(n?r||p(t,s):!r&&p(t,s))&&(g=!0,c.push(new Rule(t)))))}))),Promise.all(d).then(function(){if(c.length){var e={rules:c,rule:c[0]};return Promise.reject(e)}})},hasCellRules:function(t,e,r){var l=v.editRules,r=r.property;if(r&&l){r=_xeUtils.default.get(l,r);return r&&!!_xeUtils.default.find(r,function(e){return"all"===t||!e.trigger||t===e.trigger})}return!1},triggerValidate:function(t){var e=v.editConfig,r=v.editRules,l=d.editStore,n=d.validStore,l=l.actived,i=s.value;if(e&&r&&l.row){var l=l.args,u=l.row,o=l.column,a=l.cell;if(y.hasCellRules(t,u,o))return y.validCellRules(t,u,o).then(function(){"row"===i.mode&&n.visible&&n.row===u&&n.column===o&&w.clearValidate()}).catch(function(e){e=e.rule;if(e.trigger&&t!==e.trigger)return Promise.resolve();e={rule:e,row:u,column:o,cell:a};return y.showValidTooltip(e),Promise.reject(e)})}return Promise.resolve()},showValidTooltip:function(e){var t=v.height,r=d.tableData,l=d.validStore,n=_.value,i=e.rule,u=e.row,o=e.column,a=e.cell,s=h.value,c=i.content;return(0,_vue.nextTick)().then(function(){if(Object.assign(l,{row:u,column:o,rule:i,content:c,visible:!0}),f.dispatchEvent("valid-error",e,null),s&&("tooltip"===n.message||"default"===n.message&&!t&&r.length<2))return s.open(a,c)})}};return __assign(__assign({},w={fullValidate:function(e,t){return r(e,t,!0)},validate:function(e,t){return r(e,t)},clearValidate:function(){var e=d.validStore,t=h.value;return Object.assign(e,{visible:!1,row:null,column:null,content:"",rule:null}),t&&t.reactData.visible&&t.close(),(0,_vue.nextTick)()}}),y)},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.2.4-beta.2",
3
+ "version": "4.2.4",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -58,7 +58,7 @@
58
58
  "gulp-sourcemaps": "^2.6.5",
59
59
  "gulp-typescript": "^5.0.1",
60
60
  "gulp-uglify": "^3.0.2",
61
- "sass": "^1.45.1",
61
+ "sass": "^1.52.1",
62
62
  "sass-loader": "^10.0.5",
63
63
  "typescript": "~4.3.5",
64
64
  "vue": "^3.2.31",
package/packages/all.ts CHANGED
@@ -9,7 +9,6 @@ import { Edit } from './edit'
9
9
  import { Export } from './export'
10
10
  import { Keyboard } from './keyboard'
11
11
  import { Validator } from './validator'
12
- import { Header } from './header'
13
12
  import { Footer } from './footer'
14
13
 
15
14
  import { Column } from './column'
@@ -44,7 +43,6 @@ import zhCN from './locale/lang/zh-CN'
44
43
  // 按需加载的组件
45
44
  const components = [
46
45
  // 功能模块
47
- Header,
48
46
  Footer,
49
47
  Icon,
50
48
  Filter,
@@ -4,7 +4,7 @@ import { getFuncText } from '../../tools/utils'
4
4
  import GlobalConfig from '../../v-x-e-table/src/conf'
5
5
  import { useSize } from '../../hooks/size'
6
6
 
7
- import { VxeCheckboxConstructor, VxeCheckboxGroupConstructor, VxeCheckboxEmits, VxeCheckboxGroupPrivateMethods, CheckboxMethods, VxeCheckboxPropTypes } from '../../../types/all'
7
+ import { VxeCheckboxConstructor, VxeCheckboxGroupConstructor, VxeCheckboxEmits, VxeCheckboxGroupPrivateMethods, CheckboxMethods, VxeCheckboxPropTypes, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines } from '../../../types/all'
8
8
 
9
9
  export default defineComponent({
10
10
  name: 'VxeCheckbox',
@@ -25,6 +25,8 @@ export default defineComponent({
25
25
  ] as VxeCheckboxEmits,
26
26
  setup (props, context) {
27
27
  const { slots, emit } = context
28
+ const $xeform = inject<VxeFormConstructor & VxeFormPrivateMethods | null>('$xeform', null)
29
+ const $xeformiteminfo = inject<VxeFormDefines.ProvideItemInfo | null>('$xeformiteminfo', null)
28
30
 
29
31
  const xID = XEUtils.uniqueId()
30
32
 
@@ -60,6 +62,10 @@ export default defineComponent({
60
62
  } else {
61
63
  emit('update:modelValue', value)
62
64
  checkboxMethods.dispatchEvent('change', params, evnt)
65
+ // 自动更新校验状态
66
+ if ($xeform && $xeformiteminfo) {
67
+ $xeform.triggerItemEvent(evnt, $xeformiteminfo.itemConfig.field, value)
68
+ }
63
69
  }
64
70
  }
65
71
  }
@@ -1,9 +1,9 @@
1
- import { defineComponent, h, provide, PropType } from 'vue'
1
+ import { defineComponent, h, provide, PropType, inject } from 'vue'
2
2
  import GlobalConfig from '../../v-x-e-table/src/conf'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { useSize } from '../../hooks/size'
5
5
 
6
- import { VxeCheckboxGroupConstructor, VxeCheckboxGroupEmits, VxeCheckboxGroupPrivateMethods, CheckboxGroupPrivateMethods, CheckboxGroupMethods, VxeCheckboxGroupPropTypes } from '../../../types/all'
6
+ import { VxeCheckboxGroupConstructor, VxeCheckboxGroupEmits, VxeCheckboxGroupPrivateMethods, CheckboxGroupPrivateMethods, CheckboxGroupMethods, VxeCheckboxGroupPropTypes, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines } from '../../../types/all'
7
7
 
8
8
  export default defineComponent({
9
9
  name: 'VxeCheckboxGroup',
@@ -18,6 +18,8 @@ export default defineComponent({
18
18
  ] as VxeCheckboxGroupEmits,
19
19
  setup (props, context) {
20
20
  const { slots, emit } = context
21
+ const $xeform = inject<VxeFormConstructor & VxeFormPrivateMethods | null>('$xeform', null)
22
+ const $xeformiteminfo = inject<VxeFormDefines.ProvideItemInfo | null>('$xeformiteminfo', null)
21
23
 
22
24
  const xID = XEUtils.uniqueId()
23
25
 
@@ -49,6 +51,10 @@ export default defineComponent({
49
51
  }
50
52
  emit('update:modelValue', checklist)
51
53
  $xecheckboxgroup.dispatchEvent('change', Object.assign({ checklist }, params), evnt)
54
+ // 自动更新校验状态
55
+ if ($xeform && $xeformiteminfo) {
56
+ $xeform.triggerItemEvent(evnt, $xeformiteminfo.itemConfig.field, checklist)
57
+ }
52
58
  }
53
59
  }
54
60
 
@@ -440,6 +440,9 @@ const editHook: VxeGlobalHooksHandles.HookOptions = {
440
440
  return []
441
441
  },
442
442
  getActiveRecord () {
443
+ return this.getEditRecord()
444
+ },
445
+ getEditRecord () {
443
446
  const { editStore } = reactData
444
447
  const { afterFullData } = internalData
445
448
  const el = refElem.value
@@ -460,10 +463,17 @@ const editHook: VxeGlobalHooksHandles.HookOptions = {
460
463
  }
461
464
  return null
462
465
  },
466
+ clearActived (evnt) {
467
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
468
+ // warnLog('vxe.error.delFunc', ['clearActived', 'clearEdit'])
469
+ // }
470
+ // 即将废弃
471
+ return this.clearEdit(evnt)
472
+ },
463
473
  /**
464
474
  * 清除激活的编辑
465
475
  */
466
- clearActived (evnt) {
476
+ clearEdit (evnt) {
467
477
  const { editStore } = reactData
468
478
  const { actived } = editStore
469
479
  const { row, column } = actived
@@ -495,25 +505,46 @@ const editHook: VxeGlobalHooksHandles.HookOptions = {
495
505
  removeCellSelectedClass()
496
506
  return nextTick()
497
507
  },
508
+ isActiveByRow (row) {
509
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
510
+ // warnLog('vxe.error.delFunc', ['isActiveByRow', 'isEditByRow'])
511
+ // }
512
+ // 即将废弃
513
+ return this.isEditByRow(row)
514
+ },
498
515
  /**
499
516
  * 判断行是否为激活编辑状态
500
517
  * @param {Row} row 行对象
501
518
  */
502
- isActiveByRow (row) {
519
+ isEditByRow (row) {
503
520
  const { editStore } = reactData
504
521
  return editStore.actived.row === row
505
522
  },
523
+ setActiveRow (row) {
524
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
525
+ // warnLog('vxe.error.delFunc', ['setActiveRow', 'setEditRow'])
526
+ // }
527
+ // 即将废弃
528
+ return editMethods.setEditRow(row)
529
+ },
506
530
  /**
507
531
  * 激活行编辑
508
532
  */
509
- setActiveRow (row) {
533
+ setEditRow (row) {
510
534
  const { visibleColumn } = internalData
511
535
  return $xetable.setActiveCell(row, XEUtils.find(visibleColumn, column => isEnableConf(column.editRender)))
512
536
  },
537
+ setActiveCell (row, fieldOrColumn) {
538
+ // if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
539
+ // warnLog('vxe.error.delFunc', ['setActiveCell', 'setEditCell'])
540
+ // }
541
+ // 即将废弃
542
+ return editMethods.setEditCell(row, fieldOrColumn)
543
+ },
513
544
  /**
514
545
  * 激活单元格编辑
515
546
  */
516
- setActiveCell (row, fieldOrColumn) {
547
+ setEditCell (row, fieldOrColumn) {
517
548
  const { editConfig } = props
518
549
  const column = XEUtils.isString(fieldOrColumn) ? $xetable.getColumnByField(fieldOrColumn) : fieldOrColumn
519
550
  if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender)) {
@@ -0,0 +1,156 @@
1
+ import { defineComponent, h, inject, provide, PropType, createCommentVNode } from 'vue'
2
+ import XEUtils from 'xe-utils'
3
+ import GlobalConfig from '../../v-x-e-table/src/conf'
4
+ import { VXETable } from '../../v-x-e-table'
5
+ import { getFuncText, isEnableConf } from '../../tools/utils'
6
+ import { renderTitle } from './render'
7
+
8
+ import { VxeFormConstructor, VxeFormDefines, VxeFormPrivateMethods } from '../../../types/all'
9
+
10
+ const VxeFormConfigItem = defineComponent({
11
+ name: 'VxeFormConfigItem',
12
+ props: {
13
+ itemConfig2: Object,
14
+ itemConfig: Object as PropType<VxeFormDefines.ItemInfo>
15
+ },
16
+ setup (props) {
17
+ const $xeform = inject('$xeform', {} as VxeFormConstructor & VxeFormPrivateMethods)
18
+ const xeformiteminfo = { itemConfig: props.itemConfig }
19
+
20
+ provide('$xeformiteminfo', xeformiteminfo)
21
+ provide('$xeformgather', null)
22
+
23
+ const renderVN = () => {
24
+ const { reactData } = $xeform
25
+ const { data, rules, span: allSpan, align: allAlign, titleAlign: allTitleAlign, titleWidth: allTitleWidth, titleColon: allTitleColon, titleAsterisk: allTitleAsterisk, titleOverflow: allTitleOverflow } = $xeform.props
26
+ const { computeValidOpts } = $xeform.getComputeMaps()
27
+ const item = props.itemConfig as VxeFormDefines.ItemInfo
28
+ const { collapseAll } = reactData
29
+ const validOpts = computeValidOpts.value
30
+ const { slots, title, visible, folding, visibleMethod, field, collapseNode, itemRender, showError, errRule, className, titleOverflow, children } = item
31
+ const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
32
+ const defaultSlot = slots ? slots.default : null
33
+ const titleSlot = slots ? slots.title : null
34
+ const span = item.span || allSpan
35
+ const align = item.align || allAlign
36
+ const titleAlign = item.titleAlign || allTitleAlign
37
+ const titleWidth = item.titleWidth || allTitleWidth
38
+ const titleColon = item.titleColon === null ? allTitleColon : item.titleColon
39
+ const titleAsterisk = item.titleAsterisk === null ? allTitleAsterisk : item.titleAsterisk
40
+ const itemOverflow = (XEUtils.isUndefined(titleOverflow) || XEUtils.isNull(titleOverflow)) ? allTitleOverflow : titleOverflow
41
+ const showEllipsis = itemOverflow === 'ellipsis'
42
+ const showTitle = itemOverflow === 'title'
43
+ const showTooltip = itemOverflow === true || itemOverflow === 'tooltip'
44
+ const hasEllipsis = showTitle || showTooltip || showEllipsis
45
+ let itemVisibleMethod = visibleMethod
46
+ const params = { data, field, property: field, item, $form: $xeform }
47
+ if (visible === false) {
48
+ return createCommentVNode()
49
+ }
50
+ let isRequired = false
51
+ if (rules) {
52
+ const itemRules = rules[field]
53
+ if (itemRules) {
54
+ isRequired = itemRules.some((rule) => rule.required)
55
+ }
56
+ }
57
+ // 如果为项集合
58
+ const isGather = children && children.length > 0
59
+ if (isGather) {
60
+ const childVNs = children.map((childItem, index) => {
61
+ return h(VxeFormConfigItem, {
62
+ key: index,
63
+ itemConfig: childItem
64
+ })
65
+ })
66
+ return childVNs.length ? h('div', {
67
+ class: ['vxe-form--gather vxe-row', item.id, span ? `vxe-col--${span} is--span` : '', className ? (XEUtils.isFunction(className) ? className(params) : className) : '']
68
+ }, childVNs) : createCommentVNode()
69
+ }
70
+ if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
71
+ itemVisibleMethod = compConf.itemVisibleMethod
72
+ }
73
+ let contentVNs: any[] = []
74
+ if (defaultSlot) {
75
+ contentVNs = $xeform.callSlot(defaultSlot, params)
76
+ } else if (compConf && compConf.renderItemContent) {
77
+ contentVNs = compConf.renderItemContent(itemRender, params)
78
+ } else if (field) {
79
+ contentVNs = [`${XEUtils.get(data, field)}`]
80
+ }
81
+ if (collapseNode) {
82
+ contentVNs.push(
83
+ h('div', {
84
+ class: 'vxe-form--item-trigger-node',
85
+ onClick: $xeform.toggleCollapseEvent
86
+ }, [
87
+ h('span', {
88
+ class: 'vxe-form--item-trigger-text'
89
+ }, collapseAll ? GlobalConfig.i18n('vxe.form.unfolding') : GlobalConfig.i18n('vxe.form.folding')),
90
+ h('i', {
91
+ class: ['vxe-form--item-trigger-icon', collapseAll ? GlobalConfig.icon.FORM_FOLDING : GlobalConfig.icon.FORM_UNFOLDING]
92
+ })
93
+ ])
94
+ )
95
+ }
96
+ if (errRule && validOpts.showMessage) {
97
+ contentVNs.push(
98
+ h('div', {
99
+ class: 'vxe-form--item-valid',
100
+ style: errRule.maxWidth ? {
101
+ width: `${errRule.maxWidth}px`
102
+ } : null
103
+ }, errRule.content)
104
+ )
105
+ }
106
+ const ons = showTooltip ? {
107
+ onMouseenter (evnt: MouseEvent) {
108
+ $xeform.triggerTitleTipEvent(evnt, params)
109
+ },
110
+ onMouseleave: $xeform.handleTitleTipLeaveEvent
111
+ } : {}
112
+ return h('div', {
113
+ class: ['vxe-form--item', item.id, span ? `vxe-col--${span} is--span` : '', className ? (XEUtils.isFunction(className) ? className(params) : className) : '', {
114
+ 'is--title': title,
115
+ 'is--colon': titleColon,
116
+ 'is--asterisk': titleAsterisk,
117
+ 'is--required': isRequired,
118
+ 'is--hidden': folding && collapseAll,
119
+ 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
120
+ 'is--error': showError
121
+ }],
122
+ itemConfig: item,
123
+ key: item.id
124
+ }, [
125
+ h('div', {
126
+ class: 'vxe-form--item-inner'
127
+ }, [
128
+ title || titleSlot ? h('div', {
129
+ class: ['vxe-form--item-title', titleAlign ? `align--${titleAlign}` : null, {
130
+ 'is--ellipsis': hasEllipsis
131
+ }],
132
+ style: titleWidth ? {
133
+ width: isNaN(titleWidth as number) ? titleWidth : `${titleWidth}px`
134
+ } : null,
135
+ title: showTitle ? getFuncText(title) : null,
136
+ ...ons
137
+ }, renderTitle($xeform, item)) : null,
138
+ h('div', {
139
+ class: ['vxe-form--item-content', align ? `align--${align}` : null]
140
+ }, contentVNs)
141
+ ])
142
+ ])
143
+ }
144
+
145
+ const $xeformconfigitem = {
146
+ renderVN
147
+ }
148
+
149
+ return $xeformconfigitem
150
+ },
151
+ render () {
152
+ return this.renderVN()
153
+ }
154
+ })
155
+
156
+ export default VxeFormConfigItem
@@ -11,13 +11,16 @@ export default defineComponent({
11
11
  setup (props, { slots }) {
12
12
  const refElem = ref() as Ref<HTMLDivElement>
13
13
  const $xeform = inject('$xeform', {} as VxeFormConstructor & VxeFormPrivateMethods)
14
- const formGather = inject('xeformgather', null as XEFormItemProvide | null)
14
+ const formGather = inject('$xeformgather', null as XEFormItemProvide | null)
15
15
  const defaultSlot = slots.default
16
16
  const formItem = reactive(createItem($xeform, props))
17
17
  const xeformitem: XEFormItemProvide = { formItem }
18
+ const xeformiteminfo = { itemConfig: formItem }
18
19
  formItem.children = []
19
20
 
20
- provide('xeformgather', xeformitem)
21
+ provide('$xeformiteminfo', xeformiteminfo)
22
+ provide('$xeformgather', xeformitem)
23
+ provide('$xeformitem', null)
21
24
 
22
25
  watchItem(props, formItem)
23
26
 
@@ -43,6 +46,13 @@ export default defineComponent({
43
46
  }, defaultSlot ? defaultSlot() : [])
44
47
  }
45
48
 
46
- return renderVN
49
+ const $xeformgather = {
50
+ renderVN
51
+ }
52
+
53
+ return $xeformgather
54
+ },
55
+ render () {
56
+ return this.renderVN()
47
57
  }
48
58
  })
@@ -1,4 +1,4 @@
1
- import { defineComponent, h, onUnmounted, inject, ref, Ref, onMounted, PropType } from 'vue'
1
+ import { defineComponent, h, onUnmounted, inject, ref, Ref, provide, onMounted, PropType } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
3
  import GlobalConfig from '../../v-x-e-table/src/conf'
4
4
  import { VXETable } from '../../v-x-e-table'
@@ -15,6 +15,14 @@ export const formItemProps = {
15
15
  align: String as PropType<VxeFormItemPropTypes.Align>,
16
16
  titleAlign: String as PropType<VxeFormItemPropTypes.TitleAlign>,
17
17
  titleWidth: [String, Number] as PropType<VxeFormItemPropTypes.TitleWidth>,
18
+ titleColon: {
19
+ type: Boolean as PropType<VxeFormItemPropTypes.TitleColon>,
20
+ default: null
21
+ },
22
+ titleAsterisk: {
23
+ type: Boolean as PropType<VxeFormItemPropTypes.TitleAsterisk>,
24
+ default: null
25
+ },
18
26
  className: [String, Function] as PropType<VxeFormItemPropTypes.ClassName>,
19
27
  titleOverflow: { type: [Boolean, String] as PropType<VxeFormItemPropTypes.TitleOverflow>, default: null },
20
28
  titlePrefix: Object as PropType<VxeFormItemPropTypes.TitlePrefix>,
@@ -33,10 +41,16 @@ export default defineComponent({
33
41
  setup (props, { slots }) {
34
42
  const refElem = ref() as Ref<HTMLDivElement>
35
43
  const $xeform = inject('$xeform', {} as VxeFormConstructor & VxeFormPrivateMethods)
36
- const formGather = inject('xeformgather', null as XEFormItemProvide | null)
44
+ const formGather = inject('$xeformgather', null as XEFormItemProvide | null)
37
45
  const formItem = createItem($xeform, props)
46
+ const xeformitem: XEFormItemProvide = { formItem }
47
+ const xeformiteminfo = { itemConfig: formItem }
38
48
  formItem.slots = slots
39
49
 
50
+ provide('$xeformiteminfo', xeformiteminfo)
51
+ provide('$xeformitem', xeformitem)
52
+ provide('$xeformgather', null)
53
+
40
54
  watchItem(props, formItem)
41
55
 
42
56
  onMounted(() => {
@@ -154,6 +168,13 @@ export default defineComponent({
154
168
  })
155
169
  }
156
170
 
157
- return renderVN
171
+ const $xeformitem = {
172
+ renderVN
173
+ }
174
+
175
+ return $xeformitem
176
+ },
177
+ render () {
178
+ return this.renderVN()
158
179
  }
159
180
  })