vxe-table 4.2.7-beta.5 → 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.
@@ -15,6 +15,7 @@ import GlobalConfig from '../../v-x-e-table/src/conf';
15
15
  import { VXETable } from '../../v-x-e-table';
16
16
  import { getFuncText, isEnableConf } from '../../tools/utils';
17
17
  import { renderTitle } from './render';
18
+ import { isActivetem } from './util';
18
19
  var VxeFormConfigItem = defineComponent({
19
20
  name: 'VxeFormConfigItem',
20
21
  props: {
@@ -33,7 +34,7 @@ var VxeFormConfigItem = defineComponent({
33
34
  var item = props.itemConfig;
34
35
  var collapseAll = reactData.collapseAll;
35
36
  var validOpts = computeValidOpts.value;
36
- var slots = item.slots, title = item.title, visible = item.visible, folding = item.folding, visibleMethod = item.visibleMethod, field = item.field, collapseNode = item.collapseNode, itemRender = item.itemRender, showError = item.showError, errRule = item.errRule, className = item.className, titleOverflow = item.titleOverflow, children = item.children;
37
+ var slots = item.slots, title = item.title, visible = item.visible, folding = item.folding, field = item.field, collapseNode = item.collapseNode, itemRender = item.itemRender, showError = item.showError, errRule = item.errRule, className = item.className, titleOverflow = item.titleOverflow, children = item.children;
37
38
  var compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null;
38
39
  var itemClassName = compConf ? compConf.itemClassName : '';
39
40
  var defaultSlot = slots ? slots.default : null;
@@ -49,7 +50,6 @@ var VxeFormConfigItem = defineComponent({
49
50
  var showTitle = itemOverflow === 'title';
50
51
  var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
51
52
  var hasEllipsis = showTitle || showTooltip || showEllipsis;
52
- var itemVisibleMethod = visibleMethod;
53
53
  var params = { data: data, field: field, property: field, item: item, $form: $xeform };
54
54
  if (visible === false) {
55
55
  return createCommentVNode();
@@ -74,9 +74,6 @@ var VxeFormConfigItem = defineComponent({
74
74
  class: ['vxe-form--gather vxe-row', item.id, span ? "vxe-col--" + span + " is--span" : '', className ? (XEUtils.isFunction(className) ? className(params) : className) : '']
75
75
  }, childVNs) : createCommentVNode();
76
76
  }
77
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
78
- itemVisibleMethod = compConf.itemVisibleMethod;
79
- }
80
77
  var contentVNs = [];
81
78
  if (defaultSlot) {
82
79
  contentVNs = $xeform.callSlot(defaultSlot, params);
@@ -127,7 +124,7 @@ var VxeFormConfigItem = defineComponent({
127
124
  'is--asterisk': titleAsterisk,
128
125
  'is--required': isRequired,
129
126
  'is--hidden': folding && collapseAll,
130
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
127
+ 'is--active': isActivetem($xeform, item),
131
128
  'is--error': showError
132
129
  }
133
130
  ],
@@ -9,12 +9,12 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { defineComponent, h, onUnmounted, inject, ref, provide, onMounted } from 'vue';
12
+ import { defineComponent, h, onUnmounted, inject, ref, provide, onMounted, createCommentVNode, reactive } from 'vue';
13
13
  import XEUtils from 'xe-utils';
14
14
  import GlobalConfig from '../../v-x-e-table/src/conf';
15
15
  import { VXETable } from '../../v-x-e-table';
16
16
  import { getFuncText, isEnableConf } from '../../tools/utils';
17
- import { createItem, watchItem, destroyItem, assemItem } from './util';
17
+ import { createItem, watchItem, destroyItem, assemItem, isActivetem } from './util';
18
18
  import { renderTitle } from './render';
19
19
  export var formItemProps = {
20
20
  title: String,
@@ -50,7 +50,7 @@ export default defineComponent({
50
50
  var refElem = ref();
51
51
  var $xeform = inject('$xeform', {});
52
52
  var formGather = inject('$xeformgather', null);
53
- var formItem = createItem($xeform, props);
53
+ var formItem = reactive(createItem($xeform, props));
54
54
  var xeformitem = { formItem: formItem };
55
55
  var xeformiteminfo = { itemConfig: formItem };
56
56
  formItem.slots = slots;
@@ -70,7 +70,7 @@ export default defineComponent({
70
70
  var collapseAll = reactData.collapseAll;
71
71
  var computeValidOpts = $xeform.getComputeMaps().computeValidOpts;
72
72
  var validOpts = computeValidOpts.value;
73
- var slots = item.slots, title = item.title, visible = item.visible, folding = item.folding, visibleMethod = item.visibleMethod, field = item.field, collapseNode = item.collapseNode, itemRender = item.itemRender, showError = item.showError, errRule = item.errRule, className = item.className, titleOverflow = item.titleOverflow;
73
+ var slots = item.slots, title = item.title, visible = item.visible, folding = item.folding, field = item.field, collapseNode = item.collapseNode, itemRender = item.itemRender, showError = item.showError, errRule = item.errRule, className = item.className, titleOverflow = item.titleOverflow;
74
74
  var compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null;
75
75
  var itemClassName = compConf ? compConf.itemClassName : '';
76
76
  var defaultSlot = slots ? slots.default : null;
@@ -84,18 +84,17 @@ export default defineComponent({
84
84
  var showTitle = itemOverflow === 'title';
85
85
  var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
86
86
  var hasEllipsis = showTitle || showTooltip || showEllipsis;
87
- var itemVisibleMethod = visibleMethod;
88
87
  var params = { data: data, field: field, property: field, item: item, $form: $xeform };
89
88
  var isRequired = false;
89
+ if (visible === false) {
90
+ return createCommentVNode();
91
+ }
90
92
  if (rules) {
91
93
  var itemRules = rules[field];
92
94
  if (itemRules) {
93
95
  isRequired = itemRules.some(function (rule) { return rule.required; });
94
96
  }
95
97
  }
96
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
97
- itemVisibleMethod = compConf.itemVisibleMethod;
98
- }
99
98
  var contentVNs = [];
100
99
  if (defaultSlot) {
101
100
  contentVNs = $xeform.callSlot(defaultSlot, params);
@@ -144,8 +143,8 @@ export default defineComponent({
144
143
  {
145
144
  'is--title': title,
146
145
  'is--required': isRequired,
147
- 'is--hidden': visible === false || (folding && collapseAll),
148
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
146
+ 'is--hidden': folding && collapseAll,
147
+ 'is--active': isActivetem($xeform, item),
149
148
  'is--error': showError
150
149
  }
151
150
  ]
@@ -16,7 +16,7 @@ import { VXETable } from '../../v-x-e-table';
16
16
  import { getFuncText, isEnableConf, eqEmptyValue } from '../../tools/utils';
17
17
  import { errLog } from '../../tools/log';
18
18
  import { scrollToView } from '../../tools/dom';
19
- import { createItem, handleFieldOrItem } from './util';
19
+ import { createItem, handleFieldOrItem, isHiddenItem, isActivetem } from './util';
20
20
  import { useSize } from '../../hooks/size';
21
21
  import VxeFormConfigItem from './form-config-item';
22
22
  import VxeLoading from '../../loading/index';
@@ -347,7 +347,7 @@ export default defineComponent({
347
347
  if (data && formRules) {
348
348
  itemList.forEach(function (item) {
349
349
  var field = item.field;
350
- if (field) {
350
+ if (field && !isHiddenItem($xeform, item) && isActivetem($xeform, item)) {
351
351
  itemValids.push(validItemRules(type || 'all', field).then(function () {
352
352
  item.errRule = null;
353
353
  }).catch(function (_a) {
@@ -473,7 +473,7 @@ export default defineComponent({
473
473
  };
474
474
  var triggerItemEvent = function (evnt, field, itemValue) {
475
475
  if (field) {
476
- return validItemRules(evnt ? evnt.type : 'all', field, itemValue)
476
+ return validItemRules(evnt ? (['blur'].includes(evnt.type) ? 'blur' : 'change') : 'all', field, itemValue)
477
477
  .then(function () {
478
478
  clearValidate(field);
479
479
  })
@@ -1,18 +1,41 @@
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
  export function isFormItem(item) {
5
7
  return item instanceof ItemInfo;
6
8
  }
7
9
  export function createItem($xeform, _vm) {
8
10
  return isFormItem(_vm) ? _vm : new ItemInfo($xeform, _vm);
9
11
  }
10
- export var handleFieldOrItem = function ($xeform, fieldOrItem) {
12
+ export function handleFieldOrItem($xeform, fieldOrItem) {
11
13
  if (fieldOrItem) {
12
14
  return XEUtils.isString(fieldOrItem) ? $xeform.getItemByField(fieldOrItem) : fieldOrItem;
13
15
  }
14
16
  return null;
15
- };
17
+ }
18
+ export function isHiddenItem($xeform, formItem) {
19
+ var reactData = $xeform.reactData;
20
+ var collapseAll = reactData.collapseAll;
21
+ var folding = formItem.folding, visible = formItem.visible;
22
+ return visible === false || (folding && collapseAll);
23
+ }
24
+ export function isActivetem($xeform, formItem) {
25
+ var visibleMethod = formItem.visibleMethod, itemRender = formItem.itemRender, visible = formItem.visible, field = formItem.field;
26
+ if (visible === false) {
27
+ return visible;
28
+ }
29
+ var compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null;
30
+ if (!visibleMethod && compConf && compConf.itemVisibleMethod) {
31
+ visibleMethod = compConf.itemVisibleMethod;
32
+ }
33
+ if (!visibleMethod) {
34
+ return true;
35
+ }
36
+ var data = $xeform.props.data;
37
+ return visibleMethod({ data: data, field: field, property: field, item: formItem, $form: $xeform });
38
+ }
16
39
  export function watchItem(props, formItem) {
17
40
  Object.keys(props).forEach(function (name) {
18
41
  watch(function () { return props[name]; }, function (value) {
package/es/tools/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import GlobalConfig from '../v-x-e-table/src/conf';
2
2
  export function getLog(message, params) {
3
- return "[vxe-table v" + "4.2.7-beta.4" + "] " + GlobalConfig.i18n(message, params);
3
+ return "[vxe-table v" + "4.2.8" + "] " + GlobalConfig.i18n(message, params);
4
4
  }
5
5
  function outLog(type) {
6
6
  return function (message, params) {
@@ -83,7 +83,7 @@ export var config = new VXETableConfig();
83
83
  export var v = 'v4';
84
84
  export var VXETable = {
85
85
  v: v,
86
- version: "4.2.7-beta.4",
86
+ version: "4.2.8",
87
87
  setup: setup,
88
88
  interceptor: interceptor,
89
89
  renderer: renderer,
@@ -17,6 +17,8 @@ var _utils = require("../../tools/utils");
17
17
 
18
18
  var _render = require("./render");
19
19
 
20
+ var _util = require("./util");
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  var __assign = void 0 && (void 0).__assign || function () {
@@ -69,7 +71,6 @@ var VxeFormConfigItem = (0, _vue.defineComponent)({
69
71
  title = item.title,
70
72
  visible = item.visible,
71
73
  folding = item.folding,
72
- visibleMethod = item.visibleMethod,
73
74
  field = item.field,
74
75
  collapseNode = item.collapseNode,
75
76
  itemRender = item.itemRender,
@@ -93,7 +94,6 @@ var VxeFormConfigItem = (0, _vue.defineComponent)({
93
94
  var showTitle = itemOverflow === 'title';
94
95
  var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
95
96
  var hasEllipsis = showTitle || showTooltip || showEllipsis;
96
- var itemVisibleMethod = visibleMethod;
97
97
  var params = {
98
98
  data: data,
99
99
  field: field,
@@ -133,10 +133,6 @@ var VxeFormConfigItem = (0, _vue.defineComponent)({
133
133
  }, childVNs) : (0, _vue.createCommentVNode)();
134
134
  }
135
135
 
136
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
137
- itemVisibleMethod = compConf.itemVisibleMethod;
138
- }
139
-
140
136
  var contentVNs = [];
141
137
 
142
138
  if (defaultSlot) {
@@ -180,7 +176,7 @@ var VxeFormConfigItem = (0, _vue.defineComponent)({
180
176
  'is--asterisk': titleAsterisk,
181
177
  'is--required': isRequired,
182
178
  'is--hidden': folding && collapseAll,
183
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
179
+ 'is--active': (0, _util.isActivetem)($xeform, item),
184
180
  'is--error': showError
185
181
  }],
186
182
  itemConfig: item,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_render=require("./render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,i=1,l=arguments.length;i<l;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},VxeFormConfigItem=(0,_vue.defineComponent)({name:"VxeFormConfigItem",props:{itemConfig2:Object,itemConfig:Object},setup:function(w){var E=(0,_vue.inject)("$xeform",{}),e={itemConfig:w.itemConfig};(0,_vue.provide)("$xeformiteminfo",e),(0,_vue.provide)("$xeformgather",null);return{renderVN:function(){var e=E.reactData,t=E.props,i=t.data,l=t.rules,n=t.span,r=t.align,o=t.titleAlign,s=t.titleWidth,u=t.titleColon,a=t.titleAsterisk,f=t.titleOverflow,d=E.getComputeMaps().computeValidOpts,v=w.itemConfig,m=e.collapseAll,_=d.value,c=v.slots,g=v.title,x=v.visible,p=v.folding,h=v.visibleMethod,C=v.field,N=v.collapseNode,b=v.itemRender,q=v.showError,U=v.errRule,O=v.className,V=v.titleOverflow,F=v.children,M=(0,_utils.isEnableConf)(b)?_vXETable.VXETable.renderer.get(b.name):null,t=M?M.itemClassName:"",e=c?c.default:null,d=c?c.title:null,c=v.span||n,n=v.align||r,r=_xeUtils.default.eqNull(v.titleAlign)?o:v.titleAlign,o=_xeUtils.default.eqNull(v.titleWidth)?s:v.titleWidth,s=_xeUtils.default.eqNull(v.titleColon)?u:v.titleColon,u=_xeUtils.default.eqNull(v.titleAsterisk)?a:v.titleAsterisk,a=_xeUtils.default.isUndefined(V)||_xeUtils.default.isNull(V)?f:V,f="title"===a,V=!0===a||"tooltip"===a,a=f||V||"ellipsis"===a,h=h,y={data:i,field:C,property:C,item:v,$form:E};if(!1===x)return(0,_vue.createCommentVNode)();x=!1;if(!l||(l=l[C])&&(x=l.some(function(e){return e.required})),F&&0<F.length){var T=F.map(function(e,t){return(0,_vue.h)(VxeFormConfigItem,{key:t,itemConfig:e})});return T.length?(0,_vue.h)("div",{class:["vxe-form--gather vxe-row",v.id,c?"vxe-col--"+c+" is--span":"",O?_xeUtils.default.isFunction(O)?O(y):O:""]},T):(0,_vue.createCommentVNode)()}!h&&M&&M.itemVisibleMethod&&(h=M.itemVisibleMethod);T=[];e?T=E.callSlot(e,y):M&&M.renderItemContent?T=M.renderItemContent(b,y):C&&(T=[_xeUtils.default.toValueString(_xeUtils.default.get(i,C))]),N&&T.push((0,_vue.h)("div",{class:"vxe-form--item-trigger-node",onClick:E.toggleCollapseEvent},[(0,_vue.h)("span",{class:"vxe-form--item-trigger-text"},m?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),(0,_vue.h)("i",{class:["vxe-form--item-trigger-icon",m?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})])),U&&_.showMessage&&T.push((0,_vue.h)("div",{class:"vxe-form--item-valid",style:U.maxWidth?{width:U.maxWidth+"px"}:null},U.content));V=V?{onMouseenter:function(e){E.triggerTitleTipEvent(e,y)},onMouseleave:E.handleTitleTipLeaveEvent}:{};return(0,_vue.h)("div",{class:["vxe-form--item",v.id,c?"vxe-col--"+c+" is--span":"",O?_xeUtils.default.isFunction(O)?O(y):O:"",t?_xeUtils.default.isFunction(t)?t(y):t:"",{"is--title":g,"is--colon":s,"is--asterisk":u,"is--required":x,"is--hidden":p&&m,"is--active":!h||h(y),"is--error":q}],itemConfig:v,key:v.id},[(0,_vue.h)("div",{class:"vxe-form--item-inner"},[g||d?(0,_vue.h)("div",__assign({class:["vxe-form--item-title",r?"align--"+r:null,{"is--ellipsis":a}],style:o?{width:isNaN(o)?o:o+"px"}:null,title:f?(0,_utils.getFuncText)(g):null},V),(0,_render.renderTitle)(E,v)):null,(0,_vue.h)("div",{class:["vxe-form--item-content",n?"align--"+n:null]},T)])])}}},render:function(){return this.renderVN()}}),_default=VxeFormConfigItem;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_render=require("./render"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,i=1,l=arguments.length;i<l;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},VxeFormConfigItem=(0,_vue.defineComponent)({name:"VxeFormConfigItem",props:{itemConfig2:Object,itemConfig:Object},setup:function(w){var A=(0,_vue.inject)("$xeform",{}),e={itemConfig:w.itemConfig};(0,_vue.provide)("$xeformiteminfo",e),(0,_vue.provide)("$xeformgather",null);return{renderVN:function(){var e=A.reactData,t=A.props,i=t.data,l=t.rules,n=t.span,r=t.align,o=t.titleAlign,s=t.titleWidth,u=t.titleColon,a=t.titleAsterisk,f=t.titleOverflow,d=A.getComputeMaps().computeValidOpts,v=w.itemConfig,m=e.collapseAll,_=d.value,c=v.slots,g=v.title,x=v.visible,p=v.folding,h=v.field,C=v.collapseNode,N=v.itemRender,q=v.showError,U=v.errRule,O=v.className,b=v.titleOverflow,F=v.children,V=(0,_utils.isEnableConf)(N)?_vXETable.VXETable.renderer.get(N.name):null,t=V?V.itemClassName:"",e=c?c.default:null,d=c?c.title:null,c=v.span||n,n=v.align||r,r=_xeUtils.default.eqNull(v.titleAlign)?o:v.titleAlign,o=_xeUtils.default.eqNull(v.titleWidth)?s:v.titleWidth,s=_xeUtils.default.eqNull(v.titleColon)?u:v.titleColon,u=_xeUtils.default.eqNull(v.titleAsterisk)?a:v.titleAsterisk,a=_xeUtils.default.isUndefined(b)||_xeUtils.default.isNull(b)?f:b,f="title"===a,b=!0===a||"tooltip"===a,a=f||b||"ellipsis"===a,y={data:i,field:h,property:h,item:v,$form:A};if(!1===x)return(0,_vue.createCommentVNode)();x=!1;if(!l||(l=l[h])&&(x=l.some(function(e){return e.required})),F&&0<F.length){var T=F.map(function(e,t){return(0,_vue.h)(VxeFormConfigItem,{key:t,itemConfig:e})});return T.length?(0,_vue.h)("div",{class:["vxe-form--gather vxe-row",v.id,c?"vxe-col--"+c+" is--span":"",O?_xeUtils.default.isFunction(O)?O(y):O:""]},T):(0,_vue.createCommentVNode)()}T=[];e?T=A.callSlot(e,y):V&&V.renderItemContent?T=V.renderItemContent(N,y):h&&(T=[_xeUtils.default.toValueString(_xeUtils.default.get(i,h))]),C&&T.push((0,_vue.h)("div",{class:"vxe-form--item-trigger-node",onClick:A.toggleCollapseEvent},[(0,_vue.h)("span",{class:"vxe-form--item-trigger-text"},m?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),(0,_vue.h)("i",{class:["vxe-form--item-trigger-icon",m?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})])),U&&_.showMessage&&T.push((0,_vue.h)("div",{class:"vxe-form--item-valid",style:U.maxWidth?{width:U.maxWidth+"px"}:null},U.content));b=b?{onMouseenter:function(e){A.triggerTitleTipEvent(e,y)},onMouseleave:A.handleTitleTipLeaveEvent}:{};return(0,_vue.h)("div",{class:["vxe-form--item",v.id,c?"vxe-col--"+c+" is--span":"",O?_xeUtils.default.isFunction(O)?O(y):O:"",t?_xeUtils.default.isFunction(t)?t(y):t:"",{"is--title":g,"is--colon":s,"is--asterisk":u,"is--required":x,"is--hidden":p&&m,"is--active":(0,_util.isActivetem)(A,v),"is--error":q}],itemConfig:v,key:v.id},[(0,_vue.h)("div",{class:"vxe-form--item-inner"},[g||d?(0,_vue.h)("div",__assign({class:["vxe-form--item-title",r?"align--"+r:null,{"is--ellipsis":a}],style:o?{width:isNaN(o)?o:o+"px"}:null,title:f?(0,_utils.getFuncText)(g):null},b),(0,_render.renderTitle)(A,v)):null,(0,_vue.h)("div",{class:["vxe-form--item-content",n?"align--"+n:null]},T)])])}}},render:function(){return this.renderVN()}}),_default=VxeFormConfigItem;exports.default=_default;
@@ -81,7 +81,7 @@ var _default = (0, _vue.defineComponent)({
81
81
  var refElem = (0, _vue.ref)();
82
82
  var $xeform = (0, _vue.inject)('$xeform', {});
83
83
  var formGather = (0, _vue.inject)('$xeformgather', null);
84
- var formItem = (0, _util.createItem)($xeform, props);
84
+ var formItem = (0, _vue.reactive)((0, _util.createItem)($xeform, props));
85
85
  var xeformitem = {
86
86
  formItem: formItem
87
87
  };
@@ -113,7 +113,6 @@ var _default = (0, _vue.defineComponent)({
113
113
  title = item.title,
114
114
  visible = item.visible,
115
115
  folding = item.folding,
116
- visibleMethod = item.visibleMethod,
117
116
  field = item.field,
118
117
  collapseNode = item.collapseNode,
119
118
  itemRender = item.itemRender,
@@ -134,7 +133,6 @@ var _default = (0, _vue.defineComponent)({
134
133
  var showTitle = itemOverflow === 'title';
135
134
  var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
136
135
  var hasEllipsis = showTitle || showTooltip || showEllipsis;
137
- var itemVisibleMethod = visibleMethod;
138
136
  var params = {
139
137
  data: data,
140
138
  field: field,
@@ -144,6 +142,10 @@ var _default = (0, _vue.defineComponent)({
144
142
  };
145
143
  var isRequired = false;
146
144
 
145
+ if (visible === false) {
146
+ return (0, _vue.createCommentVNode)();
147
+ }
148
+
147
149
  if (rules) {
148
150
  var itemRules = rules[field];
149
151
 
@@ -154,10 +156,6 @@ var _default = (0, _vue.defineComponent)({
154
156
  }
155
157
  }
156
158
 
157
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
158
- itemVisibleMethod = compConf.itemVisibleMethod;
159
- }
160
-
161
159
  var contentVNs = [];
162
160
 
163
161
  if (defaultSlot) {
@@ -199,8 +197,8 @@ var _default = (0, _vue.defineComponent)({
199
197
  class: ['vxe-form--item', item.id, span ? "vxe-col--" + span + " is--span" : '', className ? _xeUtils.default.isFunction(className) ? className(params) : className : '', itemClassName ? _xeUtils.default.isFunction(itemClassName) ? itemClassName(params) : itemClassName : '', {
200
198
  'is--title': title,
201
199
  'is--required': isRequired,
202
- 'is--hidden': visible === false || folding && collapseAll,
203
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
200
+ 'is--hidden': folding && collapseAll,
201
+ 'is--active': (0, _util.isActivetem)($xeform, item),
204
202
  'is--error': showError
205
203
  }]
206
204
  }, [(0, _vue.h)('div', {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formItemProps=exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("./util"),_render=require("./render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,i=1,l=arguments.length;i<l;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},formItemProps={title:String,field:String,span:[String,Number],align:String,titleAlign:String,titleWidth:[String,Number],titleColon:{type:Boolean,default:null},titleAsterisk:{type:Boolean,default:null},className:[String,Function],titleOverflow:{type:[Boolean,String],default:null},titlePrefix:Object,titleSuffix:Object,resetValue:{default:null},visibleMethod:Function,visible:{type:Boolean,default:null},folding:Boolean,collapseNode:Boolean,itemRender:Object};exports.formItemProps=formItemProps;var _default=(0,_vue.defineComponent)({name:"VxeFormItem",props:formItemProps,setup:function(e,t){var i=t.slots,w=(0,_vue.ref)(),l=(0,_vue.inject)("$xeform",{}),r=(0,_vue.inject)("$xeformgather",null),n=(0,_util.createItem)(l,e),o={formItem:n},t={itemConfig:n};n.slots=i,(0,_vue.provide)("$xeformiteminfo",t),(0,_vue.provide)("$xeformitem",o),(0,_vue.provide)("$xeformgather",null),(0,_util.watchItem)(e,n),(0,_vue.onMounted)(function(){(0,_util.assemItem)(l,w.value,n,r)}),(0,_vue.onUnmounted)(function(){(0,_util.destroyItem)(l,n)});return{renderVN:function(){var e=l?l.props:null;return e&&e.customLayout?function(t,e){var i=t.props,l=t.reactData,r=i.data,n=i.rules,o=i.titleOverflow,u=l.collapseAll,s=t.getComputeMaps().computeValidOpts.value,a=e.slots,f=e.title,d=e.visible,v=e.folding,m=e.visibleMethod,c=e.field,_=e.collapseNode,p=e.itemRender,g=e.showError,x=e.errRule,h=e.className,b=e.titleOverflow,I=(0,_utils.isEnableConf)(p)?_vXETable.VXETable.renderer.get(p.name):null,N=I?I.itemClassName:"",O=a?a.default:null,y=a?a.title:null,M=e.span||i.span,q=e.align||i.align,C=e.titleAlign||i.titleAlign,l=e.titleWidth||i.titleWidth,a=_xeUtils.default.isUndefined(b)||_xeUtils.default.isNull(b)?o:b,i="title"===a,o=!0===a||"tooltip"===a,b=i||o||"ellipsis"===a,a=m,F={data:r,field:c,property:c,item:e,$form:t},m=!1;!n||(S=n[c])&&(m=S.some(function(e){return e.required})),!a&&I&&I.itemVisibleMethod&&(a=I.itemVisibleMethod);var S=[];O?S=t.callSlot(O,F):I&&I.renderItemContent?S=I.renderItemContent(p,F):c&&(S=[""+_xeUtils.default.get(r,c)]),_&&S.push((0,_vue.h)("div",{class:"vxe-form--item-trigger-node",onClick:t.toggleCollapseEvent},[(0,_vue.h)("span",{class:"vxe-form--item-trigger-text"},u?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),(0,_vue.h)("i",{class:["vxe-form--item-trigger-icon",u?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})])),x&&s.showMessage&&S.push((0,_vue.h)("div",{class:"vxe-form--item-valid",style:x.maxWidth?{width:x.maxWidth+"px"}:null},x.message));o=o?{onMouseenter:function(e){t.triggerTitleTipEvent(e,F)},onMouseleave:t.handleTitleTipLeaveEvent}:{};return(0,_vue.h)("div",{ref:w,class:["vxe-form--item",e.id,M?"vxe-col--"+M+" is--span":"",h?_xeUtils.default.isFunction(h)?h(F):h:"",N?_xeUtils.default.isFunction(N)?N(F):N:"",{"is--title":f,"is--required":m,"is--hidden":!1===d||v&&u,"is--active":!a||a(F),"is--error":g}]},[(0,_vue.h)("div",{class:"vxe-form--item-inner"},[f||y?(0,_vue.h)("div",__assign({class:["vxe-form--item-title",C?"align--"+C:null,{"is--ellipsis":b}],style:l?{width:isNaN(l)?l:l+"px"}:null,title:i?(0,_utils.getFuncText)(f):null},o),(0,_render.renderTitle)(t,e)):null,(0,_vue.h)("div",{class:["vxe-form--item-content",q?"align--"+q:null]},S)])])}(l,n):(0,_vue.h)("div",{ref:w})}}},render:function(){return this.renderVN()}});exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formItemProps=exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("./util"),_render=require("./render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,i=1,l=arguments.length;i<l;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},formItemProps={title:String,field:String,span:[String,Number],align:String,titleAlign:String,titleWidth:[String,Number],titleColon:{type:Boolean,default:null},titleAsterisk:{type:Boolean,default:null},className:[String,Function],titleOverflow:{type:[Boolean,String],default:null},titlePrefix:Object,titleSuffix:Object,resetValue:{default:null},visibleMethod:Function,visible:{type:Boolean,default:null},folding:Boolean,collapseNode:Boolean,itemRender:Object};exports.formItemProps=formItemProps;var _default=(0,_vue.defineComponent)({name:"VxeFormItem",props:formItemProps,setup:function(e,t){var i=t.slots,S=(0,_vue.ref)(),l=(0,_vue.inject)("$xeform",{}),r=(0,_vue.inject)("$xeformgather",null),n=(0,_vue.reactive)((0,_util.createItem)(l,e)),o={formItem:n},t={itemConfig:n};n.slots=i,(0,_vue.provide)("$xeformiteminfo",t),(0,_vue.provide)("$xeformitem",o),(0,_vue.provide)("$xeformgather",null),(0,_util.watchItem)(e,n),(0,_vue.onMounted)(function(){(0,_util.assemItem)(l,S.value,n,r)}),(0,_vue.onUnmounted)(function(){(0,_util.destroyItem)(l,n)});return{renderVN:function(){var e=l?l.props:null;return e&&e.customLayout?function(t,e){var i=t.props,l=t.reactData,r=i.data,n=i.rules,o=i.titleOverflow,u=l.collapseAll,s=t.getComputeMaps().computeValidOpts.value,a=e.slots,f=e.title,d=e.visible,v=e.folding,m=e.field,c=e.collapseNode,_=e.itemRender,p=e.showError,g=e.errRule,x=e.className,h=e.titleOverflow,b=(0,_utils.isEnableConf)(_)?_vXETable.VXETable.renderer.get(_.name):null,N=b?b.itemClassName:"",I=a?a.default:null,O=a?a.title:null,y=e.span||i.span,q=e.align||i.align,C=e.titleAlign||i.titleAlign,l=e.titleWidth||i.titleWidth,a=_xeUtils.default.isUndefined(h)||_xeUtils.default.isNull(h)?o:h,i="title"===a,o=!0===a||"tooltip"===a,h=i||o||"ellipsis"===a,F={data:r,field:m,property:m,item:e,$form:t},a=!1;if(!1===d)return(0,_vue.createCommentVNode)();!n||(M=n[m])&&(a=M.some(function(e){return e.required}));var M=[];I?M=t.callSlot(I,F):b&&b.renderItemContent?M=b.renderItemContent(_,F):m&&(M=[""+_xeUtils.default.get(r,m)]),c&&M.push((0,_vue.h)("div",{class:"vxe-form--item-trigger-node",onClick:t.toggleCollapseEvent},[(0,_vue.h)("span",{class:"vxe-form--item-trigger-text"},u?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),(0,_vue.h)("i",{class:["vxe-form--item-trigger-icon",u?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})])),g&&s.showMessage&&M.push((0,_vue.h)("div",{class:"vxe-form--item-valid",style:g.maxWidth?{width:g.maxWidth+"px"}:null},g.message));o=o?{onMouseenter:function(e){t.triggerTitleTipEvent(e,F)},onMouseleave:t.handleTitleTipLeaveEvent}:{};return(0,_vue.h)("div",{ref:S,class:["vxe-form--item",e.id,y?"vxe-col--"+y+" is--span":"",x?_xeUtils.default.isFunction(x)?x(F):x:"",N?_xeUtils.default.isFunction(N)?N(F):N:"",{"is--title":f,"is--required":a,"is--hidden":v&&u,"is--active":(0,_util.isActivetem)(t,e),"is--error":p}]},[(0,_vue.h)("div",{class:"vxe-form--item-inner"},[f||O?(0,_vue.h)("div",__assign({class:["vxe-form--item-title",C?"align--"+C:null,{"is--ellipsis":h}],style:l?{width:isNaN(l)?l:l+"px"}:null,title:i?(0,_utils.getFuncText)(f):null},o),(0,_render.renderTitle)(t,e)):null,(0,_vue.h)("div",{class:["vxe-form--item-content",q?"align--"+q:null]},M)])])}(l,n):(0,_vue.h)("div",{ref:S})}}},render:function(){return this.renderVN()}});exports.default=_default;
@@ -520,7 +520,7 @@ var _default2 = (0, _vue.defineComponent)({
520
520
  itemList.forEach(function (item) {
521
521
  var field = item.field;
522
522
 
523
- if (field) {
523
+ if (field && !(0, _util.isHiddenItem)($xeform, item) && (0, _util.isActivetem)($xeform, item)) {
524
524
  itemValids.push(validItemRules(type || 'all', field).then(function () {
525
525
  item.errRule = null;
526
526
  }).catch(function (_a) {
@@ -679,7 +679,7 @@ var _default2 = (0, _vue.defineComponent)({
679
679
 
680
680
  var triggerItemEvent = function triggerItemEvent(evnt, field, itemValue) {
681
681
  if (field) {
682
- return validItemRules(evnt ? evnt.type : 'all', field, itemValue).then(function () {
682
+ return validItemRules(evnt ? ['blur'].includes(evnt.type) ? 'blur' : 'change' : 'all', field, itemValue).then(function () {
683
683
  clearValidate(field);
684
684
  }).catch(function (_a) {
685
685
  var rule = _a.rule;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_log=require("../../tools/log"),_dom=require("../../tools/dom"),_util=require("./util"),_size=require("../../hooks/size"),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_index=_interopRequireDefault(require("../../loading/index"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,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}(),validErrorRuleValue=function(e,t){var n=e.type,r=e.min,i=e.max,u=e.pattern,e="number"===n,n=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(r)&&n<_xeUtils.default.toNumber(r)||(!_xeUtils.default.eqNull(i)&&n>_xeUtils.default.toNumber(i)||!(!u||(_xeUtils.default.isRegExp(u)?u:new RegExp(u)).test(t))))};function getResetValue(e,t){return t=_xeUtils.default.isArray(e)?[]:t}var _default2=(0,_vue.defineComponent)({name:"VxeForm",props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:function(){return _conf.default.form.size||_conf.default.size}},span:{type:[String,Number],default:function(){return _conf.default.form.span}},align:{type:String,default:function(){return _conf.default.form.align}},titleAlign:{type:String,default:function(){return _conf.default.form.titleAlign}},titleWidth:{type:[String,Number],default:function(){return _conf.default.form.titleWidth}},titleColon:{type:Boolean,default:function(){return _conf.default.form.titleColon}},titleAsterisk:{type:Boolean,default:function(){return _conf.default.form.titleAsterisk}},titleOverflow:{type:[Boolean,String],default:null},className:[String,Function],items:Array,rules:Object,preventSubmit:{type:Boolean,default:function(){return _conf.default.form.preventSubmit}},validConfig:Object,tooltipConfig:Object,customLayout:{type:Boolean,default:function(){return _conf.default.form.customLayout}}},emits:["update:collapseStatus","collapse","toggle-collapse","submit","submit-invalid","reset"],setup:function(d,e){function t(e){return e.length&&("development"===process.env.NODE_ENV&&e.forEach(function(e){e.slots&&_xeUtils.default.each(e.slots,function(e){_xeUtils.default.isFunction(e)||m[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),v.staticItems=_xeUtils.default.mapTree(e,function(e){return(0,_util.createItem)(R,e)},{children:"children"})),(0,_vue.nextTick)()}function n(){return v.collapseAll}function r(){var e=!n();return v.collapseAll=e,u("update:collapseStatus",e),(0,_vue.nextTick)()}function a(e){e.preventDefault(),O(),x.dispatchEvent("reset",{data:d.data},e)}function s(t){t.preventDefault(),d.preventSubmit||(q(),V(S()).then(function(e){e?x.dispatchEvent("submit-invalid",{data:d.data,errMap:e},t):x.dispatchEvent("submit",{data:d.data},t)}))}function o(){var e=_.tooltipStore,t=h.value;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t&&t.close()),(0,_vue.nextTick)()}function i(e,n,t){return n?C(e?e.type:"all",n,t).then(function(){q(n)}).catch(function(e){var t=e.rule,e=U(n);e&&(e.showError=!0,e.errRule=t)}):(0,_vue.nextTick)()}var f,c=_vXETable.VXETable.tooltip,m=e.slots,u=e.emit,l=_xeUtils.default.uniqueId(),p=(0,_size.useSize)(d),v=(0,_vue.reactive)({collapseAll:d.collapseStatus,staticItems:[],formItems:[]}),_=(0,_vue.reactive)({tooltipTimeout:null,tooltipStore:{item:null,visible:!1}}),g=(0,_vue.ref)(),h=(0,_vue.ref)(),x={},b=(0,_vue.computed)(function(){return Object.assign({},_conf.default.form.validConfig,d.validConfig)}),y=(0,_vue.computed)(function(){return Object.assign({},_conf.default.tooltip,_conf.default.form.tooltipConfig,d.tooltipConfig)}),E={refElem:g},T={computeSize:p,computeValidOpts:b,computeTooltipOpts:y},R={xID:l,props:d,context:e,reactData:v,getRefMaps:function(){return E},getComputeMaps:function(){return T}},S=function(){var t=[];return _xeUtils.default.eachTree(v.formItems,function(e){t.push(e)},{children:"children"}),t},U=function(t){var e=_xeUtils.default.findTree(v.formItems,function(e){return e.field===t},{children:"children"});return e?e.item:null},q=function(e){return e?(e=(0,_util.handleFieldOrItem)(R,e))&&(e.showError=!1):S().forEach(function(e){e.showError=!1}),(0,_vue.nextTick)()},O=function(){var i=d.data,e=S();return i&&e.forEach(function(e){var t=e.field,n=e.resetValue,r=e.itemRender;(0,_utils.isEnableConf)(r)&&((r=_vXETable.VXETable.renderer.get(r.name))&&r.itemResetMethod?r.itemResetMethod({data:i,field:t,property:t,item:e,$form:R}):t&&_xeUtils.default.set(i,t,null===n?getResetValue(_xeUtils.default.get(i,t),void 0):n))}),q()},w=function(e){var u=g.value;e.some(function(e,t){var n=U(e);if(n&&(0,_utils.isEnableConf)(n.itemRender)){var r=n.itemRender,i=_vXETable.VXETable.renderer.get(r.name),e=null;if(t||(0,_dom.scrollToView)(u.querySelector("."+n.id)),e=!(e=r.autofocus?u.querySelector("."+n.id+" "+r.autofocus):e)&&i&&i.autofocus?u.querySelector("."+n.id+" "+i.autofocus):e)return e.focus(),!0}})},C=function(u,o,e){var l,a,s=d.data,t=d.rules,f=[],c=[];return o&&t&&((l=_xeUtils.default.get(t,o))&&(a=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(s,o):e,l.forEach(function(t){var e,n=t.type,r=t.trigger,i=t.required;"all"!==u&&r&&u!==r||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({itemValue:a,rule:t,rules:l,data:s,field:o,property:o,$form:R}))&&(_xeUtils.default.isError(e)?f.push(new Rule({type:"custom",trigger:r,content:e.message,rule:new Rule(t)})):e.catch&&c.push(e.catch(function(e){f.push(new Rule({type:"custom",trigger:r,content:e?e.message:t.content||t.message,rule:new Rule(t)}))}))):(n="array"===n||_xeUtils.default.isArray(a)?!_xeUtils.default.isArray(a)||!a.length:(0,_utils.eqEmptyValue)(a),(i?n||validErrorRuleValue(t,a):!n&&validErrorRuleValue(t,a))&&f.push(new Rule(t))))}))),Promise.all(c).then(function(){if(f.length){var e={rules:f,rule:f[0]};return Promise.reject(e)}})},V=function(t,e,n){var i=d.data,r=d.rules,u=b.value,o={},l=[],a=[];return clearTimeout(f),i&&r?(t.forEach(function(n){var r=n.field;r&&a.push(C(e||"all",r).then(function(){n.errRule=null}).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,data:i,field:r,property:r,$form:R};return o[r]||(o[r]=[]),o[r].push(e),l.push(r),n.errRule=t,Promise.reject(e)}))}),Promise.all(a).then(function(){n&&n()}).catch(function(){return new Promise(function(e){f=window.setTimeout(function(){t.forEach(function(e){e.errRule&&(e.showError=!0)})},20),!1!==u.autoPos&&(0,_vue.nextTick)(function(){w(l)}),n?(n(o),e()):e(o)})})):(n&&n(),Promise.resolve())},x={dispatchEvent:function(e,t,n){u(e,Object.assign({$form:R,$event:n},t))},reset:O,validate:function(e){return q(),V(S(),"",e)},validateField:function(e,t){e=(0,_util.handleFieldOrItem)(R,e);return V(e?[e]:[],"",t)},clearValidate:q,updateStatus:function(e,t){e=e.field;return i(new Event("change"),e,t)},toggleCollapse:r,getItems:S,getItemByField:U,closeTooltip:o},e={callSlot:function(e,t){return e&&(_xeUtils.default.isString(e)&&(e=m[e]||null),_xeUtils.default.isFunction(e))?e(t):[]},triggerItemEvent:i,toggleCollapseEvent:function(e){r();var t=n();x.dispatchEvent("toggle-collapse",{status:t,collapse:t,data:d.data},e),x.dispatchEvent("collapse",{status:t,collapse:t,data:d.data},e)},triggerTitleTipEvent:function(e,t){var n=t.item,r=_.tooltipStore,i=h.value,u=e.currentTarget.children[0],t=(u.textContent||"").trim(),e=u.scrollWidth>u.clientWidth;clearTimeout(_.tooltipTimeout),r.item!==n&&o(),t&&e&&(Object.assign(r,{item:n,visible:!0}),i&&i.open(u,t))},handleTitleTipLeaveEvent:function(){var e=y.value,t=h.value;t&&t.setActived(!1),e.enterable?_.tooltipTimeout=setTimeout(function(){(t=h.value)&&!t.isActived()&&o()},e.leaveDelay):o()}};Object.assign(R,x,e),(0,_vue.watch)(function(){return v.staticItems},function(e){v.formItems=e}),(0,_vue.watch)(function(){return d.items},function(e){t(e||[])}),(0,_vue.watch)(function(){return d.collapseStatus},function(e){v.collapseAll=!!e}),(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){"development"===process.env.NODE_ENV&&d.customLayout&&d.items&&(0,_log.errLog)("vxe.error.errConflicts",["custom-layout","items"]),t(d.items||[])})});return R.renderVN=function(){var e=d.loading,t=d.className,n=d.data,r=d.customLayout,i=v.formItems,u=p.value,o=y.value,l=m.default;return(0,_vue.h)("form",{ref:g,class:["vxe-form",t?_xeUtils.default.isFunction(t)?t({items:i,data:n,$form:R}):t:"",((t={})["size--"+u]=u,t["is--loading"]=e,t)],onSubmit:s,onReset:a},[(0,_vue.h)("div",{class:"vxe-form--wrapper vxe-row"},r?l?l({}):[]:i.map(function(e,t){return(0,_vue.h)(_formConfigItem.default,{key:t,itemConfig2:e,itemConfig:e})})),(0,_vue.h)("div",{class:"vxe-form-slots",ref:"hideItem"},!r&&l?l({}):[]),(0,_vue.h)(_index.default,{class:"vxe-form--loading",loading:e}),c?(0,_vue.h)((0,_vue.resolveComponent)("vxe-tooltip"),__assign({ref:h},o)):(0,_vue.createCommentVNode)()])},(0,_vue.provide)("$xeform",R),(0,_vue.provide)("$xeformgather",null),(0,_vue.provide)("$xeformitem",null),(0,_vue.provide)("$xeformiteminfo",null),R},render:function(){return this.renderVN()}});exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_log=require("../../tools/log"),_dom=require("../../tools/dom"),_util=require("./util"),_size=require("../../hooks/size"),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_index=_interopRequireDefault(require("../../loading/index"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,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}(),validErrorRuleValue=function(e,t){var n=e.type,r=e.min,i=e.max,u=e.pattern,e="number"===n,n=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(r)&&n<_xeUtils.default.toNumber(r)||(!_xeUtils.default.eqNull(i)&&n>_xeUtils.default.toNumber(i)||!(!u||(_xeUtils.default.isRegExp(u)?u:new RegExp(u)).test(t))))};function getResetValue(e,t){return t=_xeUtils.default.isArray(e)?[]:t}var _default2=(0,_vue.defineComponent)({name:"VxeForm",props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:function(){return _conf.default.form.size||_conf.default.size}},span:{type:[String,Number],default:function(){return _conf.default.form.span}},align:{type:String,default:function(){return _conf.default.form.align}},titleAlign:{type:String,default:function(){return _conf.default.form.titleAlign}},titleWidth:{type:[String,Number],default:function(){return _conf.default.form.titleWidth}},titleColon:{type:Boolean,default:function(){return _conf.default.form.titleColon}},titleAsterisk:{type:Boolean,default:function(){return _conf.default.form.titleAsterisk}},titleOverflow:{type:[Boolean,String],default:null},className:[String,Function],items:Array,rules:Object,preventSubmit:{type:Boolean,default:function(){return _conf.default.form.preventSubmit}},validConfig:Object,tooltipConfig:Object,customLayout:{type:Boolean,default:function(){return _conf.default.form.customLayout}}},emits:["update:collapseStatus","collapse","toggle-collapse","submit","submit-invalid","reset"],setup:function(d,e){function t(e){return e.length&&("development"===process.env.NODE_ENV&&e.forEach(function(e){e.slots&&_xeUtils.default.each(e.slots,function(e){_xeUtils.default.isFunction(e)||m[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),v.staticItems=_xeUtils.default.mapTree(e,function(e){return(0,_util.createItem)(R,e)},{children:"children"})),(0,_vue.nextTick)()}function n(){return v.collapseAll}function r(){var e=!n();return v.collapseAll=e,u("update:collapseStatus",e),(0,_vue.nextTick)()}function a(e){e.preventDefault(),O(),x.dispatchEvent("reset",{data:d.data},e)}function s(t){t.preventDefault(),d.preventSubmit||(q(),I(S()).then(function(e){e?x.dispatchEvent("submit-invalid",{data:d.data,errMap:e},t):x.dispatchEvent("submit",{data:d.data},t)}))}function o(){var e=_.tooltipStore,t=h.value;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t&&t.close()),(0,_vue.nextTick)()}function i(e,n,t){return n?C(e?["blur"].includes(e.type)?"blur":"change":"all",n,t).then(function(){q(n)}).catch(function(e){var t=e.rule,e=U(n);e&&(e.showError=!0,e.errRule=t)}):(0,_vue.nextTick)()}var f,c=_vXETable.VXETable.tooltip,m=e.slots,u=e.emit,l=_xeUtils.default.uniqueId(),p=(0,_size.useSize)(d),v=(0,_vue.reactive)({collapseAll:d.collapseStatus,staticItems:[],formItems:[]}),_=(0,_vue.reactive)({tooltipTimeout:null,tooltipStore:{item:null,visible:!1}}),g=(0,_vue.ref)(),h=(0,_vue.ref)(),x={},b=(0,_vue.computed)(function(){return Object.assign({},_conf.default.form.validConfig,d.validConfig)}),y=(0,_vue.computed)(function(){return Object.assign({},_conf.default.tooltip,_conf.default.form.tooltipConfig,d.tooltipConfig)}),E={refElem:g},T={computeSize:p,computeValidOpts:b,computeTooltipOpts:y},R={xID:l,props:d,context:e,reactData:v,getRefMaps:function(){return E},getComputeMaps:function(){return T}},S=function(){var t=[];return _xeUtils.default.eachTree(v.formItems,function(e){t.push(e)},{children:"children"}),t},U=function(t){var e=_xeUtils.default.findTree(v.formItems,function(e){return e.field===t},{children:"children"});return e?e.item:null},q=function(e){return e?(e=(0,_util.handleFieldOrItem)(R,e))&&(e.showError=!1):S().forEach(function(e){e.showError=!1}),(0,_vue.nextTick)()},O=function(){var i=d.data,e=S();return i&&e.forEach(function(e){var t=e.field,n=e.resetValue,r=e.itemRender;(0,_utils.isEnableConf)(r)&&((r=_vXETable.VXETable.renderer.get(r.name))&&r.itemResetMethod?r.itemResetMethod({data:i,field:t,property:t,item:e,$form:R}):t&&_xeUtils.default.set(i,t,null===n?getResetValue(_xeUtils.default.get(i,t),void 0):n))}),q()},w=function(e){var u=g.value;e.some(function(e,t){var n=U(e);if(n&&(0,_utils.isEnableConf)(n.itemRender)){var r=n.itemRender,i=_vXETable.VXETable.renderer.get(r.name),e=null;if(t||(0,_dom.scrollToView)(u.querySelector("."+n.id)),e=!(e=r.autofocus?u.querySelector("."+n.id+" "+r.autofocus):e)&&i&&i.autofocus?u.querySelector("."+n.id+" "+i.autofocus):e)return e.focus(),!0}})},C=function(u,o,e){var l,a,s=d.data,t=d.rules,f=[],c=[];return o&&t&&((l=_xeUtils.default.get(t,o))&&(a=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(s,o):e,l.forEach(function(t){var e,n=t.type,r=t.trigger,i=t.required;"all"!==u&&r&&u!==r||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({itemValue:a,rule:t,rules:l,data:s,field:o,property:o,$form:R}))&&(_xeUtils.default.isError(e)?f.push(new Rule({type:"custom",trigger:r,content:e.message,rule:new Rule(t)})):e.catch&&c.push(e.catch(function(e){f.push(new Rule({type:"custom",trigger:r,content:e?e.message:t.content||t.message,rule:new Rule(t)}))}))):(n="array"===n||_xeUtils.default.isArray(a)?!_xeUtils.default.isArray(a)||!a.length:(0,_utils.eqEmptyValue)(a),(i?n||validErrorRuleValue(t,a):!n&&validErrorRuleValue(t,a))&&f.push(new Rule(t))))}))),Promise.all(c).then(function(){if(f.length){var e={rules:f,rule:f[0]};return Promise.reject(e)}})},I=function(t,e,n){var i=d.data,r=d.rules,u=b.value,o={},l=[],a=[];return clearTimeout(f),i&&r?(t.forEach(function(n){var r=n.field;r&&!(0,_util.isHiddenItem)(R,n)&&(0,_util.isActivetem)(R,n)&&a.push(C(e||"all",r).then(function(){n.errRule=null}).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,data:i,field:r,property:r,$form:R};return o[r]||(o[r]=[]),o[r].push(e),l.push(r),n.errRule=t,Promise.reject(e)}))}),Promise.all(a).then(function(){n&&n()}).catch(function(){return new Promise(function(e){f=window.setTimeout(function(){t.forEach(function(e){e.errRule&&(e.showError=!0)})},20),!1!==u.autoPos&&(0,_vue.nextTick)(function(){w(l)}),n?(n(o),e()):e(o)})})):(n&&n(),Promise.resolve())},x={dispatchEvent:function(e,t,n){u(e,Object.assign({$form:R,$event:n},t))},reset:O,validate:function(e){return q(),I(S(),"",e)},validateField:function(e,t){e=(0,_util.handleFieldOrItem)(R,e);return I(e?[e]:[],"",t)},clearValidate:q,updateStatus:function(e,t){e=e.field;return i(new Event("change"),e,t)},toggleCollapse:r,getItems:S,getItemByField:U,closeTooltip:o},e={callSlot:function(e,t){return e&&(_xeUtils.default.isString(e)&&(e=m[e]||null),_xeUtils.default.isFunction(e))?e(t):[]},triggerItemEvent:i,toggleCollapseEvent:function(e){r();var t=n();x.dispatchEvent("toggle-collapse",{status:t,collapse:t,data:d.data},e),x.dispatchEvent("collapse",{status:t,collapse:t,data:d.data},e)},triggerTitleTipEvent:function(e,t){var n=t.item,r=_.tooltipStore,i=h.value,u=e.currentTarget.children[0],t=(u.textContent||"").trim(),e=u.scrollWidth>u.clientWidth;clearTimeout(_.tooltipTimeout),r.item!==n&&o(),t&&e&&(Object.assign(r,{item:n,visible:!0}),i&&i.open(u,t))},handleTitleTipLeaveEvent:function(){var e=y.value,t=h.value;t&&t.setActived(!1),e.enterable?_.tooltipTimeout=setTimeout(function(){(t=h.value)&&!t.isActived()&&o()},e.leaveDelay):o()}};Object.assign(R,x,e),(0,_vue.watch)(function(){return v.staticItems},function(e){v.formItems=e}),(0,_vue.watch)(function(){return d.items},function(e){t(e||[])}),(0,_vue.watch)(function(){return d.collapseStatus},function(e){v.collapseAll=!!e}),(0,_vue.onMounted)(function(){(0,_vue.nextTick)(function(){"development"===process.env.NODE_ENV&&d.customLayout&&d.items&&(0,_log.errLog)("vxe.error.errConflicts",["custom-layout","items"]),t(d.items||[])})});return R.renderVN=function(){var e=d.loading,t=d.className,n=d.data,r=d.customLayout,i=v.formItems,u=p.value,o=y.value,l=m.default;return(0,_vue.h)("form",{ref:g,class:["vxe-form",t?_xeUtils.default.isFunction(t)?t({items:i,data:n,$form:R}):t:"",((t={})["size--"+u]=u,t["is--loading"]=e,t)],onSubmit:s,onReset:a},[(0,_vue.h)("div",{class:"vxe-form--wrapper vxe-row"},r?l?l({}):[]:i.map(function(e,t){return(0,_vue.h)(_formConfigItem.default,{key:t,itemConfig2:e,itemConfig:e})})),(0,_vue.h)("div",{class:"vxe-form-slots",ref:"hideItem"},!r&&l?l({}):[]),(0,_vue.h)(_index.default,{class:"vxe-form--loading",loading:e}),c?(0,_vue.h)((0,_vue.resolveComponent)("vxe-tooltip"),__assign({ref:h},o)):(0,_vue.createCommentVNode)()])},(0,_vue.provide)("$xeform",R),(0,_vue.provide)("$xeformgather",null),(0,_vue.provide)("$xeformitem",null),(0,_vue.provide)("$xeformiteminfo",null),R},render:function(){return this.renderVN()}});exports.default=_default2;
@@ -6,16 +6,22 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.assemItem = assemItem;
7
7
  exports.createItem = createItem;
8
8
  exports.destroyItem = destroyItem;
9
- exports.handleFieldOrItem = void 0;
9
+ exports.handleFieldOrItem = handleFieldOrItem;
10
+ exports.isActivetem = isActivetem;
10
11
  exports.isFormItem = isFormItem;
12
+ exports.isHiddenItem = isHiddenItem;
11
13
  exports.watchItem = watchItem;
12
14
 
13
15
  var _vue = require("vue");
14
16
 
17
+ var _vXETable = require("../../v-x-e-table");
18
+
15
19
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
16
20
 
17
21
  var _itemInfo = require("./itemInfo");
18
22
 
23
+ var _utils = require("../../tools/utils");
24
+
19
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
26
 
21
27
  function isFormItem(item) {
@@ -26,15 +32,51 @@ function createItem($xeform, _vm) {
26
32
  return isFormItem(_vm) ? _vm : new _itemInfo.ItemInfo($xeform, _vm);
27
33
  }
28
34
 
29
- var handleFieldOrItem = function handleFieldOrItem($xeform, fieldOrItem) {
35
+ function handleFieldOrItem($xeform, fieldOrItem) {
30
36
  if (fieldOrItem) {
31
37
  return _xeUtils.default.isString(fieldOrItem) ? $xeform.getItemByField(fieldOrItem) : fieldOrItem;
32
38
  }
33
39
 
34
40
  return null;
35
- };
41
+ }
36
42
 
37
- exports.handleFieldOrItem = handleFieldOrItem;
43
+ function isHiddenItem($xeform, formItem) {
44
+ var reactData = $xeform.reactData;
45
+ var collapseAll = reactData.collapseAll;
46
+ var folding = formItem.folding,
47
+ visible = formItem.visible;
48
+ return visible === false || folding && collapseAll;
49
+ }
50
+
51
+ function isActivetem($xeform, formItem) {
52
+ var visibleMethod = formItem.visibleMethod,
53
+ itemRender = formItem.itemRender,
54
+ visible = formItem.visible,
55
+ field = formItem.field;
56
+
57
+ if (visible === false) {
58
+ return visible;
59
+ }
60
+
61
+ var compConf = (0, _utils.isEnableConf)(itemRender) ? _vXETable.VXETable.renderer.get(itemRender.name) : null;
62
+
63
+ if (!visibleMethod && compConf && compConf.itemVisibleMethod) {
64
+ visibleMethod = compConf.itemVisibleMethod;
65
+ }
66
+
67
+ if (!visibleMethod) {
68
+ return true;
69
+ }
70
+
71
+ var data = $xeform.props.data;
72
+ return visibleMethod({
73
+ data: data,
74
+ field: field,
75
+ property: field,
76
+ item: formItem,
77
+ $form: $xeform
78
+ });
79
+ }
38
80
 
39
81
  function watchItem(props, formItem) {
40
82
  Object.keys(props).forEach(function (name) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assemItem=assemItem,exports.createItem=createItem,exports.destroyItem=destroyItem,exports.handleFieldOrItem=void 0,exports.isFormItem=isFormItem,exports.watchItem=watchItem;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_itemInfo=require("./itemInfo");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isFormItem(e){return e instanceof _itemInfo.ItemInfo}function createItem(e,t){return isFormItem(t)?t:new _itemInfo.ItemInfo(e,t)}var handleFieldOrItem=function(e,t){return t?_xeUtils.default.isString(t)?e.getItemByField(t):t:null};function watchItem(e,r){Object.keys(e).forEach(function(t){(0,_vue.watch)(function(){return e[t]},function(e){r.update(t,e)})})}function assemItem(e,t,r,i){var n=e.reactData,s=n.staticItems,e=t.parentNode,i=i?i.formItem:null,i=i?i.children:s;e&&(i.splice(_xeUtils.default.arrayIndexOf(e.children,t),0,r),n.staticItems=s.slice(0))}function destroyItem(e,t){var r=e.reactData,i=r.staticItems,e=_xeUtils.default.findIndexOf(i,function(e){return e.id===t.id});-1<e&&i.splice(e,1),r.staticItems=i.slice(0)}exports.handleFieldOrItem=handleFieldOrItem;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assemItem=assemItem,exports.createItem=createItem,exports.destroyItem=destroyItem,exports.handleFieldOrItem=handleFieldOrItem,exports.isActivetem=isActivetem,exports.isFormItem=isFormItem,exports.isHiddenItem=isHiddenItem,exports.watchItem=watchItem;var _vue=require("vue"),_vXETable=require("../../v-x-e-table"),_xeUtils=_interopRequireDefault(require("xe-utils")),_itemInfo=require("./itemInfo"),_utils=require("../../tools/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isFormItem(e){return e instanceof _itemInfo.ItemInfo}function createItem(e,t){return isFormItem(t)?t:new _itemInfo.ItemInfo(e,t)}function handleFieldOrItem(e,t){return t?_xeUtils.default.isString(t)?e.getItemByField(t):t:null}function isHiddenItem(e,t){var i=e.reactData.collapseAll,e=t.folding;return!1===t.visible||e&&i}function isActivetem(e,t){var i=t.visibleMethod,r=t.itemRender,n=t.visible,s=t.field;if(!1===n)return n;r=(0,_utils.isEnableConf)(r)?_vXETable.VXETable.renderer.get(r.name):null;return!(i=!i&&r&&r.itemVisibleMethod?r.itemVisibleMethod:i)||i({data:e.props.data,field:s,property:s,item:t,$form:e})}function watchItem(e,i){Object.keys(e).forEach(function(t){(0,_vue.watch)(function(){return e[t]},function(e){i.update(t,e)})})}function assemItem(e,t,i,r){var n=e.reactData,s=n.staticItems,e=t.parentNode,r=r?r.formItem:null,r=r?r.children:s;e&&(r.splice(_xeUtils.default.arrayIndexOf(e.children,t),0,i),n.staticItems=s.slice(0))}function destroyItem(e,t){var i=e.reactData,r=i.staticItems,e=_xeUtils.default.findIndexOf(r,function(e){return e.id===t.id});-1<e&&r.splice(e,1),i.staticItems=r.slice(0)}