vxe-table 4.2.7-beta.2 → 4.2.8

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 (47) hide show
  1. package/es/button/src/button.js +5 -0
  2. package/es/edit/src/hook.js +11 -9
  3. package/es/filter/src/panel.js +0 -1
  4. package/es/form/src/form-config-item.js +3 -6
  5. package/es/form/src/form-item.js +9 -10
  6. package/es/form/src/form.js +3 -3
  7. package/es/form/src/util.js +25 -2
  8. package/es/header/src/header.js +3 -2
  9. package/es/tools/log.js +1 -1
  10. package/es/v-x-e-table/index.js +1 -1
  11. package/es/v-x-e-table/src/store.js +8 -4
  12. package/lib/button/src/button.js +4 -0
  13. package/lib/button/src/button.min.js +1 -1
  14. package/lib/edit/src/hook.js +12 -9
  15. package/lib/edit/src/hook.min.js +1 -1
  16. package/lib/filter/src/panel.js +1 -1
  17. package/lib/filter/src/panel.min.js +1 -1
  18. package/lib/form/src/form-config-item.js +3 -7
  19. package/lib/form/src/form-config-item.min.js +1 -1
  20. package/lib/form/src/form-item.js +7 -9
  21. package/lib/form/src/form-item.min.js +1 -1
  22. package/lib/form/src/form.js +2 -2
  23. package/lib/form/src/form.min.js +1 -1
  24. package/lib/form/src/util.js +46 -4
  25. package/lib/form/src/util.min.js +1 -1
  26. package/lib/header/src/header.js +5 -2
  27. package/lib/header/src/header.min.js +1 -1
  28. package/lib/index.umd.js +415 -362
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/tools/log.js +1 -1
  31. package/lib/tools/log.min.js +1 -1
  32. package/lib/v-x-e-table/index.js +1 -1
  33. package/lib/v-x-e-table/index.min.js +1 -1
  34. package/lib/v-x-e-table/src/store.js +10 -5
  35. package/lib/v-x-e-table/src/store.min.js +1 -1
  36. package/package.json +1 -1
  37. package/packages/button/src/button.ts +6 -0
  38. package/packages/edit/src/hook.ts +10 -7
  39. package/packages/filter/src/panel.ts +0 -1
  40. package/packages/form/src/form-config-item.ts +3 -6
  41. package/packages/form/src/form-item.ts +9 -10
  42. package/packages/form/src/form.ts +3 -3
  43. package/packages/form/src/util.ts +26 -1
  44. package/packages/header/src/header.ts +3 -2
  45. package/packages/v-x-e-table/src/store.ts +8 -4
  46. package/types/table.d.ts +3 -1
  47. package/types/v-x-e-table/renderer.d.ts +1 -1
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.7-beta.2" + "] " + _conf.default.i18n(message, params);
15
+ return "[vxe-table v" + "4.2.8" + "] " + _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.7-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.8] "+_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.7-beta.2",
215
+ version: "4.2.8",
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.7-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.8",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;
@@ -35,14 +35,19 @@ function () {
35
35
  };
36
36
 
37
37
  Store.prototype.add = function (name, render) {
38
- // 检测是否覆盖
38
+ var conf = this.store[name]; // 检测是否覆盖
39
+
39
40
  if (process.env.NODE_ENV === 'development') {
40
- if (!_xeUtils.default.eqNull(this.store[name]) && this.store[name] !== render) {
41
- (0, _log.warnLog)('vxe.error.coverProp', [this._name, name]);
42
- }
41
+ var confKeys_1 = _xeUtils.default.keys(conf);
42
+
43
+ _xeUtils.default.each(render, function (item, key) {
44
+ if (confKeys_1.includes(key)) {
45
+ (0, _log.warnLog)('vxe.error.coverProp', [name, key]);
46
+ }
47
+ });
43
48
  }
44
49
 
45
- this.store[name] = render;
50
+ this.store[name] = conf ? _xeUtils.default.merge(conf, render) : render;
46
51
  return this;
47
52
  };
48
53
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Store=void 0;var _log=require("../../tools/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var Store=function(){function t(){this.store={}}return t.prototype.mixin=function(t){return Object.assign(this.store,t),this},t.prototype.has=function(t){return!!this.get(t)},t.prototype.get=function(t){return this.store[t]},t.prototype.add=function(t,e){return"development"===process.env.NODE_ENV&&(_xeUtils.default.eqNull(this.store[t])||this.store[t]===e||(0,_log.warnLog)("vxe.error.coverProp",[this._name,t])),this.store[t]=e,this},t.prototype.delete=function(t){delete this.store[t]},t.prototype.forEach=function(t){_xeUtils.default.objectEach(this.store,t)},t}(),_default=exports.Store=Store;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Store=void 0;var _log=require("../../tools/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var Store=function(){function e(){this.store={}}return e.prototype.mixin=function(e){return Object.assign(this.store,e),this},e.prototype.has=function(e){return!!this.get(e)},e.prototype.get=function(e){return this.store[e]},e.prototype.add=function(o,e){var r,t=this.store[o];return"development"===process.env.NODE_ENV&&(r=_xeUtils.default.keys(t),_xeUtils.default.each(e,function(e,t){r.includes(t)&&(0,_log.warnLog)("vxe.error.coverProp",[o,t])})),this.store[o]=t?_xeUtils.default.merge(t,e):e,this},e.prototype.delete=function(e){delete this.store[e]},e.prototype.forEach=function(e){_xeUtils.default.objectEach(this.store,e)},e}(),_default=exports.Store=Store;exports.default=_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.2.7-beta.2",
3
+ "version": "4.2.8",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -298,6 +298,12 @@ export default defineComponent({
298
298
  class: ['vxe-button--loading-icon', GlobalConfig.icon.BUTTON_LOADING]
299
299
  })
300
300
  )
301
+ } else if (slots.icon) {
302
+ contVNs.push(
303
+ h('span', {
304
+ class: 'vxe-button--custom-icon'
305
+ }, slots.icon({}))
306
+ )
301
307
  } else if (icon) {
302
308
  contVNs.push(
303
309
  h('i', {
@@ -669,18 +669,21 @@ const editHook: VxeGlobalHooksHandles.HookOptions = {
669
669
  const { editRender } = column
670
670
  if (isEnableConf(editRender)) {
671
671
  const compRender = renderer.get(editRender.name)
672
- const { autofocus, autoselect } = editRender
672
+ let { autofocus, autoselect } = editRender
673
673
  let inputElem
674
+ if (!autofocus && compRender) {
675
+ autofocus = compRender.autofocus
676
+ }
674
677
  // 如果指定了聚焦 class
675
- if (autofocus) {
678
+ if (XEUtils.isFunction(autofocus)) {
679
+ inputElem = autofocus.call(this, params)
680
+ } else if (autofocus) {
676
681
  inputElem = cell.querySelector(autofocus)
677
- }
678
- // 渲染器的聚焦处理
679
- if (!inputElem && compRender && compRender.autofocus) {
680
- inputElem = cell.querySelector(compRender.autofocus)
682
+ if (inputElem) {
683
+ inputElem.focus()
684
+ }
681
685
  }
682
686
  if (inputElem) {
683
- inputElem.focus()
684
687
  if (autoselect) {
685
688
  inputElem.select()
686
689
  } else {
@@ -220,7 +220,6 @@ export default defineComponent({
220
220
  class: [
221
221
  'vxe-table--filter-wrapper',
222
222
  'filter--prevent-default',
223
- compConf && compConf.className ? compConf.className : '',
224
223
  getPropClass(filterClassName, params),
225
224
  {
226
225
  'is--animat': $xetable.props.animat,
@@ -4,6 +4,7 @@ import GlobalConfig from '../../v-x-e-table/src/conf'
4
4
  import { VXETable } from '../../v-x-e-table'
5
5
  import { getFuncText, isEnableConf } from '../../tools/utils'
6
6
  import { renderTitle } from './render'
7
+ import { isActivetem } from './util'
7
8
 
8
9
  import { VxeFormConstructor, VxeFormDefines, VxeFormPrivateMethods } from '../../../types/all'
9
10
 
@@ -27,7 +28,7 @@ const VxeFormConfigItem = defineComponent({
27
28
  const item = props.itemConfig as VxeFormDefines.ItemInfo
28
29
  const { collapseAll } = reactData
29
30
  const validOpts = computeValidOpts.value
30
- const { slots, title, visible, folding, visibleMethod, field, collapseNode, itemRender, showError, errRule, className, titleOverflow, children } = item
31
+ const { slots, title, visible, folding, field, collapseNode, itemRender, showError, errRule, className, titleOverflow, children } = item
31
32
  const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
32
33
  const itemClassName = compConf ? compConf.itemClassName : ''
33
34
  const defaultSlot = slots ? slots.default : null
@@ -43,7 +44,6 @@ const VxeFormConfigItem = defineComponent({
43
44
  const showTitle = itemOverflow === 'title'
44
45
  const showTooltip = itemOverflow === true || itemOverflow === 'tooltip'
45
46
  const hasEllipsis = showTitle || showTooltip || showEllipsis
46
- let itemVisibleMethod = visibleMethod
47
47
  const params = { data, field, property: field, item, $form: $xeform }
48
48
  if (visible === false) {
49
49
  return createCommentVNode()
@@ -68,9 +68,6 @@ const VxeFormConfigItem = defineComponent({
68
68
  class: ['vxe-form--gather vxe-row', item.id, span ? `vxe-col--${span} is--span` : '', className ? (XEUtils.isFunction(className) ? className(params) : className) : '']
69
69
  }, childVNs) : createCommentVNode()
70
70
  }
71
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
72
- itemVisibleMethod = compConf.itemVisibleMethod
73
- }
74
71
  let contentVNs: any[] = []
75
72
  if (defaultSlot) {
76
73
  contentVNs = $xeform.callSlot(defaultSlot, params)
@@ -123,7 +120,7 @@ const VxeFormConfigItem = defineComponent({
123
120
  'is--asterisk': titleAsterisk,
124
121
  'is--required': isRequired,
125
122
  'is--hidden': folding && collapseAll,
126
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
123
+ 'is--active': isActivetem($xeform, item),
127
124
  'is--error': showError
128
125
  }
129
126
  ],
@@ -1,9 +1,9 @@
1
- import { defineComponent, h, onUnmounted, inject, ref, Ref, provide, onMounted, PropType } from 'vue'
1
+ import { defineComponent, h, onUnmounted, inject, ref, Ref, provide, onMounted, PropType, createCommentVNode, reactive } 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'
5
5
  import { getFuncText, isEnableConf } from '../../tools/utils'
6
- import { createItem, watchItem, destroyItem, assemItem, XEFormItemProvide } from './util'
6
+ import { createItem, watchItem, destroyItem, assemItem, XEFormItemProvide, isActivetem } from './util'
7
7
  import { renderTitle } from './render'
8
8
 
9
9
  import { VxeFormConstructor, VxeFormDefines, VxeFormItemPropTypes, VxeFormPrivateMethods } from '../../../types/all'
@@ -42,7 +42,7 @@ export default defineComponent({
42
42
  const refElem = ref() as Ref<HTMLDivElement>
43
43
  const $xeform = inject('$xeform', {} as VxeFormConstructor & VxeFormPrivateMethods)
44
44
  const formGather = inject('$xeformgather', null as XEFormItemProvide | null)
45
- const formItem = createItem($xeform, props)
45
+ const formItem = reactive(createItem($xeform, props))
46
46
  const xeformitem: XEFormItemProvide = { formItem }
47
47
  const xeformiteminfo = { itemConfig: formItem }
48
48
  formItem.slots = slots
@@ -67,7 +67,7 @@ export default defineComponent({
67
67
  const { collapseAll } = reactData
68
68
  const { computeValidOpts } = $xeform.getComputeMaps()
69
69
  const validOpts = computeValidOpts.value
70
- const { slots, title, visible, folding, visibleMethod, field, collapseNode, itemRender, showError, errRule, className, titleOverflow } = item
70
+ const { slots, title, visible, folding, field, collapseNode, itemRender, showError, errRule, className, titleOverflow } = item
71
71
  const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
72
72
  const itemClassName = compConf ? compConf.itemClassName : ''
73
73
  const defaultSlot = slots ? slots.default : null
@@ -81,18 +81,17 @@ export default defineComponent({
81
81
  const showTitle = itemOverflow === 'title'
82
82
  const showTooltip = itemOverflow === true || itemOverflow === 'tooltip'
83
83
  const hasEllipsis = showTitle || showTooltip || showEllipsis
84
- let itemVisibleMethod = visibleMethod
85
84
  const params = { data, field, property: field, item, $form: $xeform }
86
85
  let isRequired = false
86
+ if (visible === false) {
87
+ return createCommentVNode()
88
+ }
87
89
  if (rules) {
88
90
  const itemRules = rules[field]
89
91
  if (itemRules) {
90
92
  isRequired = itemRules.some((rule) => rule.required)
91
93
  }
92
94
  }
93
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
94
- itemVisibleMethod = compConf.itemVisibleMethod
95
- }
96
95
  let contentVNs: any[] = []
97
96
  if (defaultSlot) {
98
97
  contentVNs = $xeform.callSlot(defaultSlot, params)
@@ -143,8 +142,8 @@ export default defineComponent({
143
142
  {
144
143
  'is--title': title,
145
144
  'is--required': isRequired,
146
- 'is--hidden': visible === false || (folding && collapseAll),
147
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
145
+ 'is--hidden': folding && collapseAll,
146
+ 'is--active': isActivetem($xeform, item),
148
147
  'is--error': showError
149
148
  }
150
149
  ]
@@ -5,7 +5,7 @@ import { VXETable } from '../../v-x-e-table'
5
5
  import { getFuncText, isEnableConf, eqEmptyValue } from '../../tools/utils'
6
6
  import { errLog } from '../../tools/log'
7
7
  import { scrollToView } from '../../tools/dom'
8
- import { createItem, handleFieldOrItem } from './util'
8
+ import { createItem, handleFieldOrItem, isHiddenItem, isActivetem } from './util'
9
9
  import { useSize } from '../../hooks/size'
10
10
  import VxeFormConfigItem from './form-config-item'
11
11
  import VxeLoading from '../../loading/index'
@@ -361,7 +361,7 @@ export default defineComponent({
361
361
  if (data && formRules) {
362
362
  itemList.forEach((item) => {
363
363
  const { field } = item
364
- if (field) {
364
+ if (field && !isHiddenItem($xeform, item) && isActivetem($xeform, item)) {
365
365
  itemValids.push(
366
366
  validItemRules(type || 'all', field).then(() => {
367
367
  item.errRule = null
@@ -494,7 +494,7 @@ export default defineComponent({
494
494
 
495
495
  const triggerItemEvent = (evnt: Event, field: string, itemValue?: any) => {
496
496
  if (field) {
497
- return validItemRules(evnt ? evnt.type : 'all', field, itemValue)
497
+ return validItemRules(evnt ? (['blur'].includes(evnt.type) ? 'blur' : 'change') : 'all', field, itemValue)
498
498
  .then(() => {
499
499
  clearValidate(field)
500
500
  })
@@ -1,6 +1,8 @@
1
1
  import { watch } from 'vue'
2
+ import { VXETable } from '../../v-x-e-table'
2
3
  import XEUtils from 'xe-utils'
3
4
  import { ItemInfo } from './itemInfo'
5
+ import { isEnableConf } from '../../tools/utils'
4
6
 
5
7
  import { VxeFormConstructor, VxeFormDefines } from '../../../types/all'
6
8
 
@@ -16,13 +18,36 @@ export function createItem ($xeform: VxeFormConstructor, _vm: any) {
16
18
  return isFormItem(_vm) ? _vm : new ItemInfo($xeform, _vm)
17
19
  }
18
20
 
19
- export const handleFieldOrItem = ($xeform: VxeFormConstructor, fieldOrItem: string | VxeFormDefines.ItemInfo) => {
21
+ export function handleFieldOrItem ($xeform: VxeFormConstructor, fieldOrItem: string | VxeFormDefines.ItemInfo) {
20
22
  if (fieldOrItem) {
21
23
  return XEUtils.isString(fieldOrItem) ? $xeform.getItemByField(fieldOrItem) : fieldOrItem
22
24
  }
23
25
  return null
24
26
  }
25
27
 
28
+ export function isHiddenItem ($xeform: VxeFormConstructor, formItem: VxeFormDefines.ItemInfo) {
29
+ const { reactData } = $xeform
30
+ const { collapseAll } = reactData
31
+ const { folding, visible } = formItem
32
+ return visible === false || (folding && collapseAll)
33
+ }
34
+
35
+ export function isActivetem ($xeform: VxeFormConstructor, formItem: VxeFormDefines.ItemInfo) {
36
+ let { visibleMethod, itemRender, visible, field } = formItem
37
+ if (visible === false) {
38
+ return visible
39
+ }
40
+ const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
41
+ if (!visibleMethod && compConf && compConf.itemVisibleMethod) {
42
+ visibleMethod = compConf.itemVisibleMethod
43
+ }
44
+ if (!visibleMethod) {
45
+ return true
46
+ }
47
+ const { data } = $xeform.props
48
+ return visibleMethod({ data, field, property: field, item: formItem, $form: $xeform })
49
+ }
50
+
26
51
  export function watchItem (props: any, formItem: ItemInfo) {
27
52
  Object.keys(props).forEach(name => {
28
53
  watch(() => props[name], (value: any) => {
@@ -110,7 +110,8 @@ export default defineComponent({
110
110
  document.onmouseup = function (evnt) {
111
111
  document.onmousemove = domMousemove
112
112
  document.onmouseup = domMouseup
113
- column.resizeWidth = column.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)
113
+ const resizeWidth = column.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)
114
+ column.resizeWidth = resizeWidth
114
115
  resizeBarElem.style.display = 'none'
115
116
  tableInternalData._isResize = false
116
117
  tableInternalData._lastResizeTime = Date.now()
@@ -118,7 +119,7 @@ export default defineComponent({
118
119
  $xetable.recalculate(true).then(() => {
119
120
  $xetable.saveCustomResizable()
120
121
  $xetable.updateCellAreas()
121
- $xetable.dispatchEvent('resizable-change', params, evnt)
122
+ $xetable.dispatchEvent('resizable-change', { ...params, resizeWidth }, evnt)
122
123
  })
123
124
  removeClass(tableEl, 'drag--resize')
124
125
  }
@@ -21,13 +21,17 @@ export class Store {
21
21
  }
22
22
 
23
23
  add (name: string, render: any): Store {
24
+ const conf = this.store[name]
24
25
  // 检测是否覆盖
25
26
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
26
- if (!XEUtils.eqNull(this.store[name]) && this.store[name] !== render) {
27
- warnLog('vxe.error.coverProp', [(this as any)._name, name])
28
- }
27
+ const confKeys = XEUtils.keys(conf)
28
+ XEUtils.each(render, (item, key) => {
29
+ if (confKeys.includes(key)) {
30
+ warnLog('vxe.error.coverProp', [name, key])
31
+ }
32
+ })
29
33
  }
30
- this.store[name] = render
34
+ this.store[name] = conf ? XEUtils.merge(conf, render) : render
31
35
  return this
32
36
  }
33
37
 
package/types/table.d.ts CHANGED
@@ -2466,7 +2466,9 @@ export namespace VxeTableDefines {
2466
2466
  export interface FilterVisibleEventParams extends TableEventParams, FilterVisibleParams { }
2467
2467
 
2468
2468
  export interface ResizableChangeParams extends TableBaseHeaderCellParams { }
2469
- export interface ResizableChangeEventParams extends TableEventParams, ResizableChangeParams { }
2469
+ export interface ResizableChangeEventParams extends TableEventParams, ResizableChangeParams {
2470
+ resizeWidth: number
2471
+ }
2470
2472
 
2471
2473
  export interface ToggleRowExpandParams extends TableBaseCellParams { }
2472
2474
  export interface ToggleRowExpandEventParams extends TableEventParams, ToggleRowExpandParams { }
@@ -30,7 +30,7 @@ export interface DefineRendererOption<T> {
30
30
  footerExportMethod?(params: VxeGlobalRendererHandles.FooterExportMethodParams): string
31
31
 
32
32
  // 编辑渲染
33
- autofocus?: string
33
+ autofocus?: string | ((params: VxeGlobalRendererHandles.RenderEditParams | VxeGlobalRendererHandles.RenderCellParams) => HTMLElement | null)
34
34
  renderEdit?(renderOpts: VxeGlobalRendererHandles.RenderEditOptions, params: VxeGlobalRendererHandles.RenderEditParams): T
35
35
  renderCell?(renderOpts: VxeGlobalRendererHandles.RenderCellOptions, params: VxeGlobalRendererHandles.RenderCellParams): T
36
36