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.
- package/es/form/src/form-config-item.js +3 -6
- package/es/form/src/form-item.js +9 -10
- package/es/form/src/form.js +3 -3
- package/es/form/src/util.js +25 -2
- package/es/tools/log.js +1 -1
- package/es/v-x-e-table/index.js +1 -1
- package/lib/form/src/form-config-item.js +3 -7
- package/lib/form/src/form-config-item.min.js +1 -1
- package/lib/form/src/form-item.js +7 -9
- package/lib/form/src/form-item.min.js +1 -1
- package/lib/form/src/form.js +2 -2
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/util.js +46 -4
- package/lib/form/src/util.min.js +1 -1
- package/lib/index.umd.js +57 -24
- package/lib/index.umd.min.js +1 -1
- package/lib/tools/log.js +1 -1
- package/lib/tools/log.min.js +1 -1
- package/lib/v-x-e-table/index.js +1 -1
- package/lib/v-x-e-table/index.min.js +1 -1
- package/package.json +1 -1
- package/packages/form/src/form-config-item.ts +3 -6
- package/packages/form/src/form-item.ts +9 -10
- package/packages/form/src/form.ts +3 -3
- package/packages/form/src/util.ts +26 -1
|
@@ -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,
|
|
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':
|
|
127
|
+
'is--active': isActivetem($xeform, item),
|
|
131
128
|
'is--error': showError
|
|
132
129
|
}
|
|
133
130
|
],
|
package/es/form/src/form-item.js
CHANGED
|
@@ -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,
|
|
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':
|
|
148
|
-
'is--active':
|
|
146
|
+
'is--hidden': folding && collapseAll,
|
|
147
|
+
'is--active': isActivetem($xeform, item),
|
|
149
148
|
'is--error': showError
|
|
150
149
|
}
|
|
151
150
|
]
|
package/es/form/src/form.js
CHANGED
|
@@ -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
|
})
|
package/es/form/src/util.js
CHANGED
|
@@ -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
|
|
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.
|
|
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) {
|
package/es/v-x-e-table/index.js
CHANGED
|
@@ -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':
|
|
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
|
|
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':
|
|
203
|
-
'is--active':
|
|
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,
|
|
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;
|
package/lib/form/src/form.js
CHANGED
|
@@ -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;
|
package/lib/form/src/form.min.js
CHANGED
|
@@ -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;
|
package/lib/form/src/util.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|
package/lib/form/src/util.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assemItem=assemItem,exports.createItem=createItem,exports.destroyItem=destroyItem,exports.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)}
|