vxe-table 3.3.12 → 3.3.14-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/helper/vetur/attributes.json +8 -0
  2. package/helper/vetur/tags.json +2 -0
  3. package/lib/form/src/form-gather.js +13 -0
  4. package/lib/form/src/form-gather.min.js +1 -1
  5. package/lib/form/src/form-item.js +123 -1
  6. package/lib/form/src/form-item.min.js +1 -1
  7. package/lib/form/src/form.js +72 -102
  8. package/lib/form/src/form.min.js +1 -1
  9. package/lib/form/src/render.js +81 -0
  10. package/lib/form/src/render.min.js +1 -0
  11. package/lib/grid/src/grid.js +26 -9
  12. package/lib/grid/src/grid.min.js +1 -1
  13. package/lib/index.css +1 -1
  14. package/lib/index.umd.js +1173 -226
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/modal/src/modal.js +16 -4
  17. package/lib/modal/src/modal.min.js +1 -1
  18. package/lib/modal/style/style.css +2 -2
  19. package/lib/modal/style/style.min.css +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/style.min.css +1 -1
  22. package/lib/table/src/body.js +15 -1
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/methods.js +45 -30
  25. package/lib/table/src/methods.min.js +1 -1
  26. package/lib/textarea/src/textarea.js +11 -3
  27. package/lib/textarea/src/textarea.min.js +1 -1
  28. package/lib/textarea/style/style.css +11 -12
  29. package/lib/textarea/style/style.min.css +1 -1
  30. package/lib/v-x-e-table/src/conf.js +1 -0
  31. package/lib/v-x-e-table/src/conf.min.js +1 -1
  32. package/package.json +5 -5
  33. package/packages/form/src/form-gather.js +10 -0
  34. package/packages/form/src/form-item.js +101 -1
  35. package/packages/form/src/form.js +49 -107
  36. package/packages/form/src/render.js +79 -0
  37. package/packages/grid/src/grid.js +16 -5
  38. package/packages/modal/src/modal.js +9 -4
  39. package/packages/table/src/body.js +12 -4
  40. package/packages/table/src/methods.js +19 -9
  41. package/packages/textarea/src/textarea.js +8 -3
  42. package/packages/v-x-e-table/src/conf.js +1 -0
  43. package/styles/modal.scss +3 -3
  44. package/styles/textarea.scss +11 -11
  45. package/styles/variable.scss +198 -198
  46. package/types/form.d.ts +5 -0
@@ -1667,6 +1667,10 @@
1667
1667
  "type": "boolean",
1668
1668
  "description": "是否允许窗口边缘拖动调整窗口大小"
1669
1669
  },
1670
+ "vxe-modal/margin-size": {
1671
+ "type": "number",
1672
+ "description": "只对 resize 启用后有效,用于设置可拖动界限范围,如果为负数则允许拖动超出屏幕边界"
1673
+ },
1670
1674
  "vxe-modal/show-close": {
1671
1675
  "type": "boolean",
1672
1676
  "description": "是否显示关闭按钮"
@@ -1715,6 +1719,10 @@
1715
1719
  "type": "boolean",
1716
1720
  "description": "默认最大化显示"
1717
1721
  },
1722
+ "vxe-modal/draggable": {
1723
+ "type": "boolean",
1724
+ "description": "是否启用窗口拖动"
1725
+ },
1718
1726
  "vxe-modal/dblclick-zoom": {
1719
1727
  "type": "boolean",
1720
1728
  "description": "只对 type=modal 有效,是否允许通过双击头部放大或还原窗口"
@@ -544,6 +544,7 @@
544
544
  "esc-closable",
545
545
  "show-zoom",
546
546
  "resize",
547
+ "margin-size",
547
548
  "show-close",
548
549
  "duration",
549
550
  "width",
@@ -556,6 +557,7 @@
556
557
  "show-title-overflow",
557
558
  "transfer",
558
559
  "fullscreen",
560
+ "draggable",
559
561
  "dblclick-zoom",
560
562
  "remember",
561
563
  "destroy-on-close",
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _formItem = _interopRequireDefault(require("./form-item"));
9
9
 
10
+ var _tools = require("../../tools");
11
+
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
13
 
12
14
  var _default = {
@@ -17,6 +19,17 @@ var _default = {
17
19
  xeformgather: this
18
20
  };
19
21
  },
22
+ created: function created() {
23
+ var _this = this;
24
+
25
+ if (process.env.NODE_ENV === 'development') {
26
+ this.$nextTick(function () {
27
+ if (_this.$xeform && _this.$xeform.customLayout) {
28
+ _tools.UtilTools.error('vxe.error.errConflicts', ['custom-layout', '<form-gather ...>']);
29
+ }
30
+ });
31
+ }
32
+ },
20
33
  render: function render(h) {
21
34
  return h('div', this.$slots.default);
22
35
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _formItem=_interopRequireDefault(require("./form-item"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default={name:"VxeFormGather",extends:_formItem.default,provide:function(){return{xeformgather:this}},render:function(e){return e("div",this.$slots.default)}};exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _formItem=_interopRequireDefault(require("./form-item")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default={name:"VxeFormGather",extends:_formItem.default,provide:function(){return{xeformgather:this}},created:function(){var e=this;"development"===process.env.NODE_ENV&&this.$nextTick(function(){e.$xeform&&e.$xeform.customLayout&&_tools.UtilTools.error("vxe.error.errConflicts",["custom-layout","<form-gather ...>"])})},render:function(e){return e("div",this.$slots.default)}};exports.default=_default;
@@ -5,8 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
+
10
+ var _conf = _interopRequireDefault(require("../../v-x-e-table/src/conf"));
11
+
12
+ var _vXETable = _interopRequireDefault(require("../../v-x-e-table"));
13
+
14
+ var _tools = require("../../tools");
15
+
8
16
  var _util = require("./util");
9
17
 
18
+ var _render = require("./render");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
10
22
  var props = {
11
23
  title: String,
12
24
  field: String,
@@ -40,6 +52,115 @@ Object.keys(props).forEach(function (name) {
40
52
  this.itemConfig.update(name, value);
41
53
  };
42
54
  });
55
+
56
+ var renderItem = function renderItem(h, _vm, item, slots) {
57
+ var rules = _vm.rules,
58
+ data = _vm.data,
59
+ collapseAll = _vm.collapseAll,
60
+ validOpts = _vm.validOpts,
61
+ allTitleOverflow = _vm.titleOverflow;
62
+ var title = item.title,
63
+ folding = item.folding,
64
+ visible = item.visible,
65
+ visibleMethod = item.visibleMethod,
66
+ field = item.field,
67
+ collapseNode = item.collapseNode,
68
+ itemRender = item.itemRender,
69
+ showError = item.showError,
70
+ errRule = item.errRule,
71
+ className = item.className,
72
+ titleOverflow = item.titleOverflow;
73
+ var compConf = (0, _tools.isEnableConf)(itemRender) ? _vXETable.default.renderer.get(itemRender.name) : null;
74
+ var span = item.span || _vm.span;
75
+ var align = item.align || _vm.align;
76
+ var titleAlign = item.titleAlign || _vm.titleAlign;
77
+ var titleWidth = item.titleWidth || _vm.titleWidth;
78
+ var itemVisibleMethod = visibleMethod;
79
+ var itemOverflow = _xeUtils.default.isUndefined(titleOverflow) || _xeUtils.default.isNull(titleOverflow) ? allTitleOverflow : titleOverflow;
80
+ var showEllipsis = itemOverflow === 'ellipsis';
81
+ var showTitle = itemOverflow === 'title';
82
+ var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
83
+ var hasEllipsis = showTitle || showTooltip || showEllipsis;
84
+ var params = {
85
+ data: data,
86
+ property: field,
87
+ item: item,
88
+ $form: _vm
89
+ };
90
+ var isRequired;
91
+
92
+ if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
93
+ itemVisibleMethod = compConf.itemVisibleMethod;
94
+ }
95
+
96
+ if (rules) {
97
+ var itemRules = rules[field];
98
+
99
+ if (itemRules) {
100
+ isRequired = itemRules.some(function (rule) {
101
+ return rule.required;
102
+ });
103
+ }
104
+ }
105
+
106
+ var contentVNs = [];
107
+
108
+ if (slots && slots.default) {
109
+ contentVNs = _vm.callSlot(slots.default, params, h);
110
+ } else if (compConf && compConf.renderItemContent) {
111
+ contentVNs = compConf.renderItemContent.call(_vm, h, itemRender, params);
112
+ } else if (compConf && compConf.renderItem) {
113
+ contentVNs = compConf.renderItem.call(_vm, h, itemRender, params);
114
+ } else if (field) {
115
+ contentVNs = ["".concat(_xeUtils.default.get(data, field))];
116
+ }
117
+
118
+ var ons = showTooltip ? {
119
+ mouseenter: function mouseenter(evnt) {
120
+ _vm.triggerHeaderHelpEvent(evnt, params);
121
+ },
122
+ mouseleave: _vm.handleTargetLeaveEvent
123
+ } : {};
124
+ return h('div', {
125
+ class: ['vxe-form--item', item.id, span ? "vxe-col--".concat(span, " is--span") : null, className ? _xeUtils.default.isFunction(className) ? className(params) : className : '', {
126
+ 'is--title': title,
127
+ 'is--required': isRequired,
128
+ 'is--hidden': visible === false || folding && collapseAll,
129
+ 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
130
+ 'is--error': showError
131
+ }]
132
+ }, [h('div', {
133
+ class: 'vxe-form--item-inner'
134
+ }, [title || slots && slots.title ? h('div', {
135
+ class: ['vxe-form--item-title', titleAlign ? "align--".concat(titleAlign) : null, {
136
+ 'is--ellipsis': hasEllipsis
137
+ }],
138
+ style: titleWidth ? {
139
+ width: isNaN(titleWidth) ? titleWidth : "".concat(titleWidth, "px")
140
+ } : null,
141
+ attrs: {
142
+ title: showTitle ? _tools.UtilTools.getFuncText(title) : null
143
+ },
144
+ on: ons
145
+ }, (0, _render.renderTitle)(h, _vm, item)) : null, h('div', {
146
+ class: ['vxe-form--item-content', align ? "align--".concat(align) : null]
147
+ }, contentVNs.concat([collapseNode ? h('div', {
148
+ class: 'vxe-form--item-trigger-node',
149
+ on: {
150
+ click: _vm.toggleCollapseEvent
151
+ }
152
+ }, [h('span', {
153
+ class: 'vxe-form--item-trigger-text'
154
+ }, collapseAll ? _conf.default.i18n('vxe.form.unfolding') : _conf.default.i18n('vxe.form.folding')), h('i', {
155
+ class: ['vxe-form--item-trigger-icon', collapseAll ? _conf.default.icon.FORM_FOLDING : _conf.default.icon.FORM_UNFOLDING]
156
+ })]) : null, errRule && validOpts.showMessage ? h('div', {
157
+ class: 'vxe-form--item-valid',
158
+ style: errRule.maxWidth ? {
159
+ width: "".concat(errRule.maxWidth, "px")
160
+ } : null
161
+ }, errRule.message) : null]))])]);
162
+ };
163
+
43
164
  var _default = {
44
165
  name: 'VxeFormItem',
45
166
  props: props,
@@ -62,7 +183,8 @@ var _default = {
62
183
  (0, _util.destroyItem)(this);
63
184
  },
64
185
  render: function render(h) {
65
- return h('div');
186
+ var $xeform = this.$xeform;
187
+ return $xeform && $xeform.customLayout ? renderItem(h, $xeform, this.itemConfig, this.$scopedSlots) : h('div');
66
188
  }
67
189
  };
68
190
  exports.default = _default;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _util=require("./util"),props={title:String,field:String,size:String,span:[String,Number],align:String,titleAlign:String,titleWidth:[String,Number],className:[String,Function],titleOverflow:{type:[Boolean,String],default:null},titlePrefix:Object,titleSuffix:Object,resetValue:{default:null},visible:{type:Boolean,default:null},visibleMethod:Function,folding:Boolean,collapseNode:Boolean,itemRender:Object},watch={};Object.keys(props).forEach(function(e){watch[e]=function(t){this.itemConfig.update(e,t)}});var _default={name:"VxeFormItem",props:props,inject:{$xeform:{default:null},xeformgather:{default:null}},watch:watch,mounted:function(){(0,_util.assemItem)(this)},created:function(){this.itemConfig=(0,_util.createItem)(this.$xeform,this)},destroyed:function(){(0,_util.destroyItem)(this)},render:function(t){return t("div")}};exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools"),_util=require("./util"),_render=require("./render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var props={title:String,field:String,size:String,span:[String,Number],align:String,titleAlign:String,titleWidth:[String,Number],className:[String,Function],titleOverflow:{type:[Boolean,String],default:null},titlePrefix:Object,titleSuffix:Object,resetValue:{default:null},visible:{type:Boolean,default:null},visibleMethod:Function,folding:Boolean,collapseNode:Boolean,itemRender:Object},watch={};Object.keys(props).forEach(function(t){watch[t]=function(e){this.itemConfig.update(t,e)}});var renderItem=function(e,t,i,l){var n,r=t.rules,o=t.data,a=t.collapseAll,s=t.validOpts,u=t.titleOverflow,d=i.title,c=i.folding,f=i.visible,m=i.visibleMethod,v=i.field,g=i.collapseNode,p=i.itemRender,x=i.showError,_=i.errRule,h=i.className,b=i.titleOverflow,O=(0,_tools.isEnableConf)(p)?_vXETable.default.renderer.get(p.name):null,q=i.span||t.span,I=i.align||t.align,N=i.titleAlign||t.titleAlign,S=i.titleWidth||t.titleWidth,w=m,m=_xeUtils.default.isUndefined(b)||_xeUtils.default.isNull(b)?u:b,u="title"===m,b=!0===m||"tooltip"===m,m=u||b||"ellipsis"===m,y={data:o,property:v,item:i,$form:t};!w&&O&&O.itemVisibleMethod&&(w=O.itemVisibleMethod),!r||(F=r[v])&&(n=F.some(function(e){return e.required}));var F=[];l&&l.default?F=t.callSlot(l.default,y,e):O&&O.renderItemContent?F=O.renderItemContent.call(t,e,p,y):O&&O.renderItem?F=O.renderItem.call(t,e,p,y):v&&(F=["".concat(_xeUtils.default.get(o,v))]);b=b?{mouseenter:function(e){t.triggerHeaderHelpEvent(e,y)},mouseleave:t.handleTargetLeaveEvent}:{};return e("div",{class:["vxe-form--item",i.id,q?"vxe-col--".concat(q," is--span"):null,h?_xeUtils.default.isFunction(h)?h(y):h:"",{"is--title":d,"is--required":n,"is--hidden":!1===f||c&&a,"is--active":!w||w(y),"is--error":x}]},[e("div",{class:"vxe-form--item-inner"},[d||l&&l.title?e("div",{class:["vxe-form--item-title",N?"align--".concat(N):null,{"is--ellipsis":m}],style:S?{width:isNaN(S)?S:"".concat(S,"px")}:null,attrs:{title:u?_tools.UtilTools.getFuncText(d):null},on:b},(0,_render.renderTitle)(e,t,i)):null,e("div",{class:["vxe-form--item-content",I?"align--".concat(I):null]},F.concat([g?e("div",{class:"vxe-form--item-trigger-node",on:{click:t.toggleCollapseEvent}},[e("span",{class:"vxe-form--item-trigger-text"},a?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),e("i",{class:["vxe-form--item-trigger-icon",a?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})]):null,_&&s.showMessage?e("div",{class:"vxe-form--item-valid",style:_.maxWidth?{width:"".concat(_.maxWidth,"px")}:null},_.message):null]))])])},_default={name:"VxeFormItem",props:props,inject:{$xeform:{default:null},xeformgather:{default:null}},watch:watch,mounted:function(){(0,_util.assemItem)(this)},created:function(){this.itemConfig=(0,_util.createItem)(this.$xeform,this)},destroyed:function(){(0,_util.destroyItem)(this)},render:function(e){var t=this.$xeform;return t&&t.customLayout?renderItem(e,t,this.itemConfig,this.$scopedSlots):e("div")}};exports.default=_default;
@@ -17,6 +17,8 @@ var _tools = require("../../tools");
17
17
 
18
18
  var _util = require("./util");
19
19
 
20
+ var _render = require("./render");
21
+
20
22
  var _utils = require("../../tools/src/utils");
21
23
 
22
24
  var _dom = require("../../tools/src/dom");
@@ -100,89 +102,6 @@ function getResetValue(value, resetValue) {
100
102
  return resetValue;
101
103
  }
102
104
 
103
- function callSlot(_vm, slotFunc, params, h) {
104
- if (slotFunc) {
105
- var $scopedSlots = _vm.$scopedSlots;
106
-
107
- if (_xeUtils.default.isString(slotFunc)) {
108
- slotFunc = $scopedSlots[slotFunc] || null;
109
- }
110
-
111
- if (_xeUtils.default.isFunction(slotFunc)) {
112
- return slotFunc.call(_vm, params, h);
113
- }
114
- }
115
-
116
- return [];
117
- }
118
-
119
- function renderPrefixIcon(h, titlePrefix) {
120
- return h('span', {
121
- class: 'vxe-form--item-title-prefix'
122
- }, [h('i', {
123
- class: titlePrefix.icon || _conf.default.icon.FORM_PREFIX
124
- })]);
125
- }
126
-
127
- function renderSuffixIcon(h, titleSuffix) {
128
- return h('span', {
129
- class: 'vxe-form--item-title-suffix'
130
- }, [h('i', {
131
- class: titleSuffix.icon || _conf.default.icon.FORM_SUFFIX
132
- })]);
133
- }
134
-
135
- function renderTitle(h, _vm, item) {
136
- var data = _vm.data;
137
- var slots = item.slots,
138
- field = item.field,
139
- itemRender = item.itemRender,
140
- titlePrefix = item.titlePrefix,
141
- titleSuffix = item.titleSuffix;
142
- var compConf = (0, _tools.isEnableConf)(itemRender) ? _vXETable.default.renderer.get(itemRender.name) : null;
143
- var params = {
144
- data: data,
145
- property: field,
146
- item: item,
147
- $form: _vm
148
- };
149
- var contVNs = [];
150
- var titVNs = [];
151
-
152
- if (titlePrefix) {
153
- titVNs.push(titlePrefix.message ? h('vxe-tooltip', {
154
- props: {
155
- content: _tools.UtilTools.getFuncText(titlePrefix.message),
156
- enterable: titlePrefix.enterable,
157
- theme: titlePrefix.theme
158
- }
159
- }, [renderPrefixIcon(h, titlePrefix)]) : renderPrefixIcon(h, titlePrefix));
160
- }
161
-
162
- titVNs.push(h('span', {
163
- class: 'vxe-form--item-title-label'
164
- }, compConf && compConf.renderItemTitle ? compConf.renderItemTitle(itemRender, params) : slots && slots.title ? callSlot(_vm, slots.title, params, h) : _tools.UtilTools.getFuncText(item.title)));
165
- contVNs.push(h('div', {
166
- class: 'vxe-form--item-title-content'
167
- }, titVNs));
168
- var fixVNs = [];
169
-
170
- if (titleSuffix) {
171
- fixVNs.push(titleSuffix.message ? h('vxe-tooltip', {
172
- props: {
173
- content: _tools.UtilTools.getFuncText(titleSuffix.message),
174
- enterable: titleSuffix.enterable,
175
- theme: titleSuffix.theme
176
- }
177
- }, [renderSuffixIcon(h, titleSuffix)]) : renderSuffixIcon(h, titleSuffix));
178
- }
179
-
180
- contVNs.push(h('div', {
181
- class: 'vxe-form--item-title-postfix'
182
- }, fixVNs));
183
- return contVNs;
184
- }
185
-
186
105
  function renderItems(h, _vm, itemList) {
187
106
  var _e = _vm._e,
188
107
  rules = _vm.rules,
@@ -254,7 +173,7 @@ function renderItems(h, _vm, itemList) {
254
173
  var contentVNs = [];
255
174
 
256
175
  if (slots && slots.default) {
257
- contentVNs = callSlot(_vm, slots.default, params, h);
176
+ contentVNs = _vm.callSlot(slots.default, params, h);
258
177
  } else if (compConf && compConf.renderItemContent) {
259
178
  contentVNs = compConf.renderItemContent.call(_vm, h, itemRender, params);
260
179
  } else if (compConf && compConf.renderItem) {
@@ -291,7 +210,7 @@ function renderItems(h, _vm, itemList) {
291
210
  title: showTitle ? _tools.UtilTools.getFuncText(title) : null
292
211
  },
293
212
  on: ons
294
- }, renderTitle(h, _vm, item)) : null, h('div', {
213
+ }, (0, _render.renderTitle)(h, _vm, item)) : null, h('div', {
295
214
  class: ['vxe-form--item-content', align ? "align--".concat(align) : null]
296
215
  }, contentVNs.concat([collapseNode ? h('div', {
297
216
  class: 'vxe-form--item-trigger-node',
@@ -315,6 +234,10 @@ var _default2 = {
315
234
  name: 'VxeForm',
316
235
  mixins: [_size.default],
317
236
  props: {
237
+ collapseStatus: {
238
+ type: Boolean,
239
+ default: true
240
+ },
318
241
  loading: Boolean,
319
242
  data: Object,
320
243
  size: {
@@ -362,11 +285,17 @@ var _default2 = {
362
285
  return _conf.default.form.preventSubmit;
363
286
  }
364
287
  },
365
- validConfig: Object
288
+ validConfig: Object,
289
+ customLayout: {
290
+ type: Boolean,
291
+ default: function _default() {
292
+ return _conf.default.form.customLayout;
293
+ }
294
+ }
366
295
  },
367
296
  data: function data() {
368
297
  return {
369
- collapseAll: true,
298
+ collapseAll: this.collapseStatus,
370
299
  staticItems: [],
371
300
  formItems: [],
372
301
  tooltipTimeout: null,
@@ -398,25 +327,34 @@ var _default2 = {
398
327
  return opts;
399
328
  }
400
329
  },
330
+ watch: {
331
+ staticItems: function staticItems(value) {
332
+ this.formItems = value;
333
+ },
334
+ items: function items(value) {
335
+ this.loadItem(value);
336
+ },
337
+ collapseStatus: function collapseStatus(value) {
338
+ this.collapseAll = !!value;
339
+ }
340
+ },
401
341
  created: function created() {
402
342
  var _this = this;
403
343
 
404
344
  this.$nextTick(function () {
405
345
  var items = _this.items;
406
346
 
347
+ if (process.env.NODE_ENV === 'development') {
348
+ if (_this.customLayout && _this.items) {
349
+ _tools.UtilTools.error('vxe.error.errConflicts', ['custom-layout', 'items']);
350
+ }
351
+ }
352
+
407
353
  if (items) {
408
354
  _this.loadItem(items);
409
355
  }
410
356
  });
411
357
  },
412
- watch: {
413
- staticItems: function staticItems(value) {
414
- this.formItems = value;
415
- },
416
- items: function items(value) {
417
- this.loadItem(value);
418
- }
419
- },
420
358
  render: function render(h) {
421
359
  var _ref;
422
360
 
@@ -426,7 +364,8 @@ var _default2 = {
426
364
  data = this.data,
427
365
  vSize = this.vSize,
428
366
  tooltipOpts = this.tooltipOpts,
429
- formItems = this.formItems;
367
+ formItems = this.formItems,
368
+ customLayout = this.customLayout;
430
369
  var hasUseTooltip = _vXETable.default._tooltip;
431
370
  return h('form', {
432
371
  class: ['vxe-form', className ? _xeUtils.default.isFunction(className) ? className({
@@ -440,10 +379,10 @@ var _default2 = {
440
379
  }
441
380
  }, [h('div', {
442
381
  class: 'vxe-form--wrapper vxe-row'
443
- }, renderItems(h, this, formItems)), h('div', {
382
+ }, customLayout ? this.$slots.default : renderItems(h, this, formItems)), h('div', {
444
383
  class: 'vxe-form-slots',
445
384
  ref: 'hideItem'
446
- }, this.$slots.default), h('div', {
385
+ }, customLayout ? [] : this.$slots.default), h('div', {
447
386
  class: ['vxe-loading', {
448
387
  'is--visible': loading
449
388
  }]
@@ -458,6 +397,21 @@ var _default2 = {
458
397
  }, tooltipOpts)) : _e()]);
459
398
  },
460
399
  methods: {
400
+ callSlot: function callSlot(slotFunc, params, h) {
401
+ if (slotFunc) {
402
+ var $scopedSlots = this.$scopedSlots;
403
+
404
+ if (_xeUtils.default.isString(slotFunc)) {
405
+ slotFunc = $scopedSlots[slotFunc] || null;
406
+ }
407
+
408
+ if (_xeUtils.default.isFunction(slotFunc)) {
409
+ return slotFunc.call(this, params, h);
410
+ }
411
+ }
412
+
413
+ return [];
414
+ },
461
415
  loadItem: function loadItem(list) {
462
416
  var _this2 = this;
463
417
 
@@ -495,13 +449,24 @@ var _default2 = {
495
449
  return itemList;
496
450
  },
497
451
  toggleCollapse: function toggleCollapse() {
498
- this.collapseAll = !this.collapseAll;
452
+ var status = !this.collapseAll;
453
+ this.collapseAll = status;
454
+ this.$emit('update:collapseStatus', status);
499
455
  return this.$nextTick();
500
456
  },
501
457
  toggleCollapseEvent: function toggleCollapseEvent(evnt) {
502
458
  this.toggleCollapse();
459
+ var status = this.collapseAll;
503
460
  this.$emit('toggle-collapse', {
504
- collapse: !this.collapseAll,
461
+ status: status,
462
+ collapse: status,
463
+ data: this.data,
464
+ $form: this,
465
+ $event: evnt
466
+ }, evnt);
467
+ this.$emit('collapse', {
468
+ status: status,
469
+ collapse: status,
505
470
  data: this.data,
506
471
  $form: this,
507
472
  $event: evnt
@@ -831,7 +796,7 @@ var _default2 = {
831
796
  handleFocus: function handleFocus(fields) {
832
797
  var $el = this.$el;
833
798
  var itemList = this.getItems();
834
- fields.some(function (property) {
799
+ fields.some(function (property, index) {
835
800
  var item = itemList.find(function (item) {
836
801
  return item.field === property;
837
802
  });
@@ -841,7 +806,12 @@ var _default2 = {
841
806
 
842
807
  var compConf = _vXETable.default.renderer.get(itemRender.name);
843
808
 
844
- var inputElem; // 如果指定了聚焦 class
809
+ var inputElem; // 定位到第一个
810
+
811
+ if (!index) {
812
+ _tools.DomTools.scrollToView($el.querySelector(".".concat(item.id)));
813
+ } // 如果指定了聚焦 class
814
+
845
815
 
846
816
  if (itemRender.autofocus) {
847
817
  inputElem = $el.querySelector(".".concat(item.id, " ").concat(itemRender.autofocus));
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools"),_util=require("./util"),_utils=require("../../tools/src/utils"),_dom=require("../../tools/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var i,r=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,i)),r}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(i),!0).forEach(function(e){_defineProperty(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ownKeys(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))})}return t}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,i){return t&&_defineProperties(e.prototype,t),i&&_defineProperties(e,i),e}var Rule=function(){function t(e){_classCallCheck(this,t),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 _createClass(t,[{key:"message",get:function(){return _tools.UtilTools.getFuncText(this.$options.message)}}]),t}();function validErrorRuleValue(e,t){var i=e.type,r=e.min,l=e.max,n=e.pattern,e="number"===i,i=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(r)&&i<_xeUtils.default.toNumber(r)||(!_xeUtils.default.eqNull(l)&&i>_xeUtils.default.toNumber(l)||!(!n||(_xeUtils.default.isRegExp(n)?n:new RegExp(n)).test(t))))}function getResetValue(e,t){return t=_xeUtils.default.isArray(e)?[]:t}function callSlot(e,t,i,r){if(t){var l=e.$scopedSlots;if(_xeUtils.default.isString(t)&&(t=l[t]||null),_xeUtils.default.isFunction(t))return t.call(e,i,r)}return[]}function renderPrefixIcon(e,t){return e("span",{class:"vxe-form--item-title-prefix"},[e("i",{class:t.icon||_conf.default.icon.FORM_PREFIX})])}function renderSuffixIcon(e,t){return e("span",{class:"vxe-form--item-title-suffix"},[e("i",{class:t.icon||_conf.default.icon.FORM_SUFFIX})])}function renderTitle(e,t,i){var r=t.data,l=i.slots,n=i.field,o=i.itemRender,s=i.titlePrefix,a=i.titleSuffix,u=(0,_tools.isEnableConf)(o)?_vXETable.default.renderer.get(o.name):null,c={data:r,property:n,item:i,$form:t},r=[],n=[];s&&n.push(s.message?e("vxe-tooltip",{props:{content:_tools.UtilTools.getFuncText(s.message),enterable:s.enterable,theme:s.theme}},[renderPrefixIcon(e,s)]):renderPrefixIcon(e,s)),n.push(e("span",{class:"vxe-form--item-title-label"},u&&u.renderItemTitle?u.renderItemTitle(o,c):l&&l.title?callSlot(t,l.title,c,e):_tools.UtilTools.getFuncText(i.title))),r.push(e("div",{class:"vxe-form--item-title-content"},n));n=[];return a&&n.push(a.message?e("vxe-tooltip",{props:{content:_tools.UtilTools.getFuncText(a.message),enterable:a.enterable,theme:a.theme}},[renderSuffixIcon(e,a)]):renderSuffixIcon(e,a)),r.push(e("div",{class:"vxe-form--item-title-postfix"},n)),r}function renderItems(I,R,e){var U=R._e,w=R.rules,S=R.data,$=R.collapseAll,P=R.validOpts,j=R.titleOverflow;return e.map(function(e,t){var i,r=e.slots,l=e.title,n=e.folding,o=e.visible,s=e.visibleMethod,a=e.field,u=e.collapseNode,c=e.itemRender,f=e.showError,d=e.errRule,m=e.className,p=e.titleOverflow,h=e.children,v=(0,_tools.isEnableConf)(c)?_vXETable.default.renderer.get(c.name):null,g=e.span||R.span,_=e.align||R.align,x=e.titleAlign||R.titleAlign,b=e.titleWidth||R.titleWidth,y=s,T=_xeUtils.default.isUndefined(p)||_xeUtils.default.isNull(p)?j:p,s="title"===T,p=!0===T||"tooltip"===T,T=s||p||"ellipsis"===T,E={data:S,property:a,item:e,$form:R};if(!1===o)return U();if(h&&0<h.length){h=renderItems(I,R,e.children);return h.length?I("div",{class:["vxe-form--gather vxe-row",e.id,g?"vxe-col--".concat(g," is--span"):"",m?_xeUtils.default.isFunction(m)?m(E):m:""]},h):U()}!y&&v&&v.itemVisibleMethod&&(y=v.itemVisibleMethod),!w||(O=w[a])&&(i=O.some(function(e){return e.required}));var O=[];r&&r.default?O=callSlot(R,r.default,E,I):v&&v.renderItemContent?O=v.renderItemContent.call(R,I,c,E):v&&v.renderItem?O=v.renderItem.call(R,I,c,E):a&&(O=["".concat(_xeUtils.default.get(S,a))]);p=p?{mouseenter:function(e){R.triggerHeaderHelpEvent(e,E)},mouseleave:R.handleTargetLeaveEvent}:{};return I("div",{class:["vxe-form--item",e.id,g?"vxe-col--".concat(g," is--span"):null,m?_xeUtils.default.isFunction(m)?m(E):m:"",{"is--title":l,"is--required":i,"is--hidden":n&&$,"is--active":!y||y(E),"is--error":f}],key:t},[I("div",{class:"vxe-form--item-inner"},[l||r&&r.title?I("div",{class:["vxe-form--item-title",x?"align--".concat(x):null,{"is--ellipsis":T}],style:b?{width:isNaN(b)?b:"".concat(b,"px")}:null,attrs:{title:s?_tools.UtilTools.getFuncText(l):null},on:p},renderTitle(I,R,e)):null,I("div",{class:["vxe-form--item-content",_?"align--".concat(_):null]},O.concat([u?I("div",{class:"vxe-form--item-trigger-node",on:{click:R.toggleCollapseEvent}},[I("span",{class:"vxe-form--item-trigger-text"},$?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),I("i",{class:["vxe-form--item-trigger-icon",$?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})]):null,d&&P.showMessage?I("div",{class:"vxe-form--item-valid",style:d.maxWidth?{width:"".concat(d.maxWidth,"px")}:null},d.message):null]))])])})}var _default2={name:"VxeForm",mixins:[_size.default],props:{loading:Boolean,data:Object,size:{type:String,default:function(){return _conf.default.form.size||_conf.default.size}},span:[String,Number],align:{type:String,default:function(){return _conf.default.form.align}},titleAlign:{type:String,default:function(){return _conf.default.form.titleAlign}},titleWidth:[String,Number],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},data:function(){return{collapseAll:!0,staticItems:[],formItems:[],tooltipTimeout:null,tooltipActive:!1,tooltipStore:{item:null,visible:!1}}},provide:function(){return{$xeform:this}},computed:{validOpts:function(){return Object.assign({},_conf.default.form.validConfig,this.validConfig)},tooltipOpts:function(){var e=Object.assign({leaveDelay:300},_conf.default.form.tooltipConfig,this.tooltipConfig);return e.enterable&&(e.leaveMethod=this.handleTooltipLeaveMethod),e}},created:function(){var t=this;this.$nextTick(function(){var e=t.items;e&&t.loadItem(e)})},watch:{staticItems:function(e){this.formItems=e},items:function(e){this.loadItem(e)}},render:function(e){var t=this._e,i=this.loading,r=this.className,l=this.data,n=this.vSize,o=this.tooltipOpts,s=this.formItems,a=_vXETable.default._tooltip;return e("form",{class:["vxe-form",r?_xeUtils.default.isFunction(r)?r({items:s,data:l,$form:this}):r:"",(_defineProperty(r={},"size--".concat(n),n),_defineProperty(r,"is--colon",this.titleColon),_defineProperty(r,"is--asterisk",this.titleAsterisk),_defineProperty(r,"is--loading",i),r)],on:{submit:this.submitEvent,reset:this.resetEvent}},[e("div",{class:"vxe-form--wrapper vxe-row"},renderItems(e,this,s)),e("div",{class:"vxe-form-slots",ref:"hideItem"},this.$slots.default),e("div",{class:["vxe-loading",{"is--visible":i}]},[e("div",{class:"vxe-loading--spinner"})]),a?e("vxe-tooltip",_objectSpread({ref:"tooltip"},o)):t()])},methods:{loadItem:function(e){var t,i=this;return"development"===process.env.NODE_ENV&&(t=this.$scopedSlots,e.forEach(function(e){e.slots&&_xeUtils.default.each(e.slots,function(e){_xeUtils.default.isFunction(e)||t[e]||_tools.UtilTools.error("vxe.error.notSlot",[e])})})),this.staticItems=_xeUtils.default.mapTree(e,function(e){return(0,_util.createItem)(i,e)},{children:"children"}),this.$nextTick()},getItems:function(){var t=[];return _xeUtils.default.eachTree(this.formItems,function(e){t.push(e)},{children:"children"}),t},toggleCollapse:function(){return this.collapseAll=!this.collapseAll,this.$nextTick()},toggleCollapseEvent:function(e){this.toggleCollapse(),this.$emit("toggle-collapse",{collapse:!this.collapseAll,data:this.data,$form:this,$event:e},e)},submitEvent:function(t){var i=this;t.preventDefault(),this.preventSubmit||this.beginValidate(this.getItems()).then(function(){i.$emit("submit",{data:i.data,$form:i,$event:t})}).catch(function(e){i.$emit("submit-invalid",{data:i.data,errMap:e,$form:i,$event:t})})},reset:function(){var l=this,n=this.data;return n&&this.getItems().forEach(function(e){var t=e.field,i=e.resetValue,r=e.itemRender;(0,_tools.isEnableConf)(r)&&((r=_vXETable.default.renderer.get(r.name))&&r.itemResetMethod?r.itemResetMethod({data:n,property:t,item:e,$form:l}):t&&_xeUtils.default.set(n,t,null===i?getResetValue(_xeUtils.default.get(n,t),void 0):i))}),this.clearValidate()},resetEvent:function(e){e.preventDefault(),this.reset(),this.$emit("reset",{data:this.data,$form:this,$event:e})},handleTooltipLeaveMethod:function(){var e=this,t=this.tooltipOpts;return setTimeout(function(){e.tooltipActive||e.closeTooltip()},t.leaveDelay),!1},closeTooltip:function(){var e=this.tooltipStore,t=this.$refs.tooltip;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t&&t.close()),this.$nextTick()},triggerHeaderHelpEvent:function(e,t){var i=t.item,r=this.tooltipStore,l=this.$refs.tooltip,n=e.currentTarget.children[0],t=(n.textContent||"").trim(),e=n.scrollWidth>n.clientWidth;clearTimeout(this.tooltipTimeout),this.tooltipActive=!0,this.closeTooltip(),t&&e&&(Object.assign(r,{item:i,visible:!0}),l&&l.open(n,t))},handleTargetLeaveEvent:function(){var t=this,e=this.tooltipOpts;this.tooltipActive=!1,e.enterable?this.tooltipTimeout=setTimeout(function(){var e=t.$refs.tooltip;e&&!e.isHover&&t.closeTooltip()},e.leaveDelay):this.closeTooltip()},clearValidate:function(t){var e,i=this.getItems();return t?(e=i.find(function(e){return e.field===t}))&&(e.showError=!1):i.forEach(function(e){e.showError=!1}),this.$nextTick()},validate:function(e){return this.beginValidate(this.getItems(),"",e)},validateField:function(t,e){return this.beginValidate(this.getItems().filter(function(e){return e.field===t}),"",e)},beginValidate:function(i,e,r){var l=this,n=this.data,t=this.rules,o=this.validOpts,s={},a=[],u=[];return this.clearValidate(),clearTimeout(this.showErrTime),n&&t?(i.forEach(function(i){var r=i.field;r&&u.push(l.validItemRules(e||"all",r).then(function(){i.errRule=null}).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,data:n,property:r,$form:l};return s[r]||(s[r]=[]),s[r].push(e),a.push(r),i.errRule=t,Promise.reject(e)}))}),Promise.all(u).then(function(){r&&r()}).catch(function(){return new Promise(function(e,t){l.showErrTime=setTimeout(function(){i.forEach(function(e){e.errRule&&(e.showError=!0)})},20),o.autoPos&&l.$nextTick(function(){l.handleFocus(a)}),r?(r(s),e()):t(s)})})):(r&&r(),Promise.resolve())},validItemRules:function(n,o,e){var s,a,u=this,c=this.data,t=this.rules,f=[],d=[];return o&&t&&((s=_xeUtils.default.get(t,o))&&(a=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(c,o):e,s.forEach(function(t){var e,i=t.type,r=t.trigger,l=t.required;"all"!==n&&r&&n!==t.trigger||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({itemValue:a,rule:t,rules:s,data:c,property:o,$form:u}))&&(_xeUtils.default.isError(e)?f.push(new Rule({type:"custom",trigger:r,message:e.message,rule:new Rule(t)})):e.catch&&d.push(e.catch(function(e){f.push(new Rule({type:"custom",trigger:r,message:(e||t).message,rule:new Rule(t)}))}))):(i="array"===i?!_xeUtils.default.isArray(a)||!a.length:(0,_utils.eqEmptyValue)(a),(l?i||validErrorRuleValue(t,a):!i&&validErrorRuleValue(t,a))&&f.push(new Rule(t))))}))),Promise.all(d).then(function(){if(f.length){var e={rules:f,rule:f[0]};return Promise.reject(e)}})},handleFocus:function(e){var n=this.$el,o=this.getItems();e.some(function(t){var e=o.find(function(e){return e.field===t});if(e&&(0,_tools.isEnableConf)(e.itemRender)){var i,r=e.itemRender,l=_vXETable.default.renderer.get(r.name);if(r.autofocus&&(i=n.querySelector(".".concat(e.id," ").concat(r.autofocus))),!i&&l&&l.autofocus&&(i=n.querySelector(".".concat(e.id," ").concat(l.autofocus))),i)return i.focus(),_dom.browse.msie&&((i=i.createTextRange()).collapse(!1),i.select()),!0}})},updateStatus:function(e,t){var i=this,r=e.property;r&&this.validItemRules("change",r,t).then(function(){i.clearValidate(r)}).catch(function(e){var t=e.rule,e=i.getItems().find(function(e){return e.field===r});e&&(e.showError=!0,e.errRule=t)})}}};exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools"),_util=require("./util"),_render=require("./render"),_utils=require("../../tools/src/utils"),_dom=require("../../tools/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var i,r=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,i)),r}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(i),!0).forEach(function(e){_defineProperty(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ownKeys(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))})}return t}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,i){return t&&_defineProperties(e.prototype,t),i&&_defineProperties(e,i),e}var Rule=function(){function t(e){_classCallCheck(this,t),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 _createClass(t,[{key:"message",get:function(){return _tools.UtilTools.getFuncText(this.$options.message)}}]),t}();function validErrorRuleValue(e,t){var i=e.type,r=e.min,l=e.max,o=e.pattern,e="number"===i,i=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||(!_xeUtils.default.eqNull(r)&&i<_xeUtils.default.toNumber(r)||(!_xeUtils.default.eqNull(l)&&i>_xeUtils.default.toNumber(l)||!(!o||(_xeUtils.default.isRegExp(o)?o:new RegExp(o)).test(t))))}function getResetValue(e,t){return t=_xeUtils.default.isArray(e)?[]:t}function renderItems(w,$,e){var U=$._e,R=$.rules,S=$.data,I=$.collapseAll,P=$.validOpts,j=$.titleOverflow;return e.map(function(e,t){var i,r=e.slots,l=e.title,o=e.folding,n=e.visible,s=e.visibleMethod,a=e.field,u=e.collapseNode,c=e.itemRender,f=e.showError,d=e.errRule,m=e.className,h=e.titleOverflow,p=e.children,v=(0,_tools.isEnableConf)(c)?_vXETable.default.renderer.get(c.name):null,g=e.span||$.span,_=e.align||$.align,x=e.titleAlign||$.titleAlign,b=e.titleWidth||$.titleWidth,y=s,E=_xeUtils.default.isUndefined(h)||_xeUtils.default.isNull(h)?j:h,s="title"===E,h=!0===E||"tooltip"===E,E=s||h||"ellipsis"===E,O={data:S,property:a,item:e,$form:$};if(!1===n)return U();if(p&&0<p.length){p=renderItems(w,$,e.children);return p.length?w("div",{class:["vxe-form--gather vxe-row",e.id,g?"vxe-col--".concat(g," is--span"):"",m?_xeUtils.default.isFunction(m)?m(O):m:""]},p):U()}!y&&v&&v.itemVisibleMethod&&(y=v.itemVisibleMethod),!R||(T=R[a])&&(i=T.some(function(e){return e.required}));var T=[];r&&r.default?T=$.callSlot(r.default,O,w):v&&v.renderItemContent?T=v.renderItemContent.call($,w,c,O):v&&v.renderItem?T=v.renderItem.call($,w,c,O):a&&(T=["".concat(_xeUtils.default.get(S,a))]);h=h?{mouseenter:function(e){$.triggerHeaderHelpEvent(e,O)},mouseleave:$.handleTargetLeaveEvent}:{};return w("div",{class:["vxe-form--item",e.id,g?"vxe-col--".concat(g," is--span"):null,m?_xeUtils.default.isFunction(m)?m(O):m:"",{"is--title":l,"is--required":i,"is--hidden":o&&I,"is--active":!y||y(O),"is--error":f}],key:t},[w("div",{class:"vxe-form--item-inner"},[l||r&&r.title?w("div",{class:["vxe-form--item-title",x?"align--".concat(x):null,{"is--ellipsis":E}],style:b?{width:isNaN(b)?b:"".concat(b,"px")}:null,attrs:{title:s?_tools.UtilTools.getFuncText(l):null},on:h},(0,_render.renderTitle)(w,$,e)):null,w("div",{class:["vxe-form--item-content",_?"align--".concat(_):null]},T.concat([u?w("div",{class:"vxe-form--item-trigger-node",on:{click:$.toggleCollapseEvent}},[w("span",{class:"vxe-form--item-trigger-text"},I?_conf.default.i18n("vxe.form.unfolding"):_conf.default.i18n("vxe.form.folding")),w("i",{class:["vxe-form--item-trigger-icon",I?_conf.default.icon.FORM_FOLDING:_conf.default.icon.FORM_UNFOLDING]})]):null,d&&P.showMessage?w("div",{class:"vxe-form--item-valid",style:d.maxWidth?{width:"".concat(d.maxWidth,"px")}:null},d.message):null]))])])})}var _default2={name:"VxeForm",mixins:[_size.default],props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:function(){return _conf.default.form.size||_conf.default.size}},span:[String,Number],align:{type:String,default:function(){return _conf.default.form.align}},titleAlign:{type:String,default:function(){return _conf.default.form.titleAlign}},titleWidth:[String,Number],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,customLayout:{type:Boolean,default:function(){return _conf.default.form.customLayout}}},data:function(){return{collapseAll:this.collapseStatus,staticItems:[],formItems:[],tooltipTimeout:null,tooltipActive:!1,tooltipStore:{item:null,visible:!1}}},provide:function(){return{$xeform:this}},computed:{validOpts:function(){return Object.assign({},_conf.default.form.validConfig,this.validConfig)},tooltipOpts:function(){var e=Object.assign({leaveDelay:300},_conf.default.form.tooltipConfig,this.tooltipConfig);return e.enterable&&(e.leaveMethod=this.handleTooltipLeaveMethod),e}},watch:{staticItems:function(e){this.formItems=e},items:function(e){this.loadItem(e)},collapseStatus:function(e){this.collapseAll=!!e}},created:function(){var t=this;this.$nextTick(function(){var e=t.items;"development"===process.env.NODE_ENV&&t.customLayout&&t.items&&_tools.UtilTools.error("vxe.error.errConflicts",["custom-layout","items"]),e&&t.loadItem(e)})},render:function(e){var t=this._e,i=this.loading,r=this.className,l=this.data,o=this.vSize,n=this.tooltipOpts,s=this.formItems,a=this.customLayout,u=_vXETable.default._tooltip;return e("form",{class:["vxe-form",r?_xeUtils.default.isFunction(r)?r({items:s,data:l,$form:this}):r:"",(_defineProperty(r={},"size--".concat(o),o),_defineProperty(r,"is--colon",this.titleColon),_defineProperty(r,"is--asterisk",this.titleAsterisk),_defineProperty(r,"is--loading",i),r)],on:{submit:this.submitEvent,reset:this.resetEvent}},[e("div",{class:"vxe-form--wrapper vxe-row"},a?this.$slots.default:renderItems(e,this,s)),e("div",{class:"vxe-form-slots",ref:"hideItem"},a?[]:this.$slots.default),e("div",{class:["vxe-loading",{"is--visible":i}]},[e("div",{class:"vxe-loading--spinner"})]),u?e("vxe-tooltip",_objectSpread({ref:"tooltip"},n)):t()])},methods:{callSlot:function(e,t,i){if(e){var r=this.$scopedSlots;if(_xeUtils.default.isString(e)&&(e=r[e]||null),_xeUtils.default.isFunction(e))return e.call(this,t,i)}return[]},loadItem:function(e){var t,i=this;return"development"===process.env.NODE_ENV&&(t=this.$scopedSlots,e.forEach(function(e){e.slots&&_xeUtils.default.each(e.slots,function(e){_xeUtils.default.isFunction(e)||t[e]||_tools.UtilTools.error("vxe.error.notSlot",[e])})})),this.staticItems=_xeUtils.default.mapTree(e,function(e){return(0,_util.createItem)(i,e)},{children:"children"}),this.$nextTick()},getItems:function(){var t=[];return _xeUtils.default.eachTree(this.formItems,function(e){t.push(e)},{children:"children"}),t},toggleCollapse:function(){var e=!this.collapseAll;return this.collapseAll=e,this.$emit("update:collapseStatus",e),this.$nextTick()},toggleCollapseEvent:function(e){this.toggleCollapse();var t=this.collapseAll;this.$emit("toggle-collapse",{status:t,collapse:t,data:this.data,$form:this,$event:e},e),this.$emit("collapse",{status:t,collapse:t,data:this.data,$form:this,$event:e},e)},submitEvent:function(t){var i=this;t.preventDefault(),this.preventSubmit||this.beginValidate(this.getItems()).then(function(){i.$emit("submit",{data:i.data,$form:i,$event:t})}).catch(function(e){i.$emit("submit-invalid",{data:i.data,errMap:e,$form:i,$event:t})})},reset:function(){var l=this,o=this.data;return o&&this.getItems().forEach(function(e){var t=e.field,i=e.resetValue,r=e.itemRender;(0,_tools.isEnableConf)(r)&&((r=_vXETable.default.renderer.get(r.name))&&r.itemResetMethod?r.itemResetMethod({data:o,property:t,item:e,$form:l}):t&&_xeUtils.default.set(o,t,null===i?getResetValue(_xeUtils.default.get(o,t),void 0):i))}),this.clearValidate()},resetEvent:function(e){e.preventDefault(),this.reset(),this.$emit("reset",{data:this.data,$form:this,$event:e})},handleTooltipLeaveMethod:function(){var e=this,t=this.tooltipOpts;return setTimeout(function(){e.tooltipActive||e.closeTooltip()},t.leaveDelay),!1},closeTooltip:function(){var e=this.tooltipStore,t=this.$refs.tooltip;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t&&t.close()),this.$nextTick()},triggerHeaderHelpEvent:function(e,t){var i=t.item,r=this.tooltipStore,l=this.$refs.tooltip,o=e.currentTarget.children[0],t=(o.textContent||"").trim(),e=o.scrollWidth>o.clientWidth;clearTimeout(this.tooltipTimeout),this.tooltipActive=!0,this.closeTooltip(),t&&e&&(Object.assign(r,{item:i,visible:!0}),l&&l.open(o,t))},handleTargetLeaveEvent:function(){var t=this,e=this.tooltipOpts;this.tooltipActive=!1,e.enterable?this.tooltipTimeout=setTimeout(function(){var e=t.$refs.tooltip;e&&!e.isHover&&t.closeTooltip()},e.leaveDelay):this.closeTooltip()},clearValidate:function(t){var e,i=this.getItems();return t?(e=i.find(function(e){return e.field===t}))&&(e.showError=!1):i.forEach(function(e){e.showError=!1}),this.$nextTick()},validate:function(e){return this.beginValidate(this.getItems(),"",e)},validateField:function(t,e){return this.beginValidate(this.getItems().filter(function(e){return e.field===t}),"",e)},beginValidate:function(i,e,r){var l=this,o=this.data,t=this.rules,n=this.validOpts,s={},a=[],u=[];return this.clearValidate(),clearTimeout(this.showErrTime),o&&t?(i.forEach(function(i){var r=i.field;r&&u.push(l.validItemRules(e||"all",r).then(function(){i.errRule=null}).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,data:o,property:r,$form:l};return s[r]||(s[r]=[]),s[r].push(e),a.push(r),i.errRule=t,Promise.reject(e)}))}),Promise.all(u).then(function(){r&&r()}).catch(function(){return new Promise(function(e,t){l.showErrTime=setTimeout(function(){i.forEach(function(e){e.errRule&&(e.showError=!0)})},20),n.autoPos&&l.$nextTick(function(){l.handleFocus(a)}),r?(r(s),e()):t(s)})})):(r&&r(),Promise.resolve())},validItemRules:function(o,n,e){var s,a,u=this,c=this.data,t=this.rules,f=[],d=[];return n&&t&&((s=_xeUtils.default.get(t,n))&&(a=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(c,n):e,s.forEach(function(t){var e,i=t.type,r=t.trigger,l=t.required;"all"!==o&&r&&o!==t.trigger||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({itemValue:a,rule:t,rules:s,data:c,property:n,$form:u}))&&(_xeUtils.default.isError(e)?f.push(new Rule({type:"custom",trigger:r,message:e.message,rule:new Rule(t)})):e.catch&&d.push(e.catch(function(e){f.push(new Rule({type:"custom",trigger:r,message:(e||t).message,rule:new Rule(t)}))}))):(i="array"===i?!_xeUtils.default.isArray(a)||!a.length:(0,_utils.eqEmptyValue)(a),(l?i||validErrorRuleValue(t,a):!i&&validErrorRuleValue(t,a))&&f.push(new Rule(t))))}))),Promise.all(d).then(function(){if(f.length){var e={rules:f,rule:f[0]};return Promise.reject(e)}})},handleFocus:function(e){var n=this.$el,s=this.getItems();e.some(function(t,e){var i=s.find(function(e){return e.field===t});if(i&&(0,_tools.isEnableConf)(i.itemRender)){var r,l=i.itemRender,o=_vXETable.default.renderer.get(l.name);if(e||_tools.DomTools.scrollToView(n.querySelector(".".concat(i.id))),l.autofocus&&(r=n.querySelector(".".concat(i.id," ").concat(l.autofocus))),!r&&o&&o.autofocus&&(r=n.querySelector(".".concat(i.id," ").concat(o.autofocus))),r)return r.focus(),_dom.browse.msie&&((r=r.createTextRange()).collapse(!1),r.select()),!0}})},updateStatus:function(e,t){var i=this,r=e.property;r&&this.validItemRules("change",r,t).then(function(){i.clearValidate(r)}).catch(function(e){var t=e.rule,e=i.getItems().find(function(e){return e.field===r});e&&(e.showError=!0,e.errRule=t)})}}};exports.default=_default2;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderTitle = renderTitle;
7
+
8
+ var _conf = _interopRequireDefault(require("../../v-x-e-table/src/conf"));
9
+
10
+ var _vXETable = _interopRequireDefault(require("../../v-x-e-table"));
11
+
12
+ var _tools = require("../../tools");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function renderPrefixIcon(h, titlePrefix) {
17
+ return h('span', {
18
+ class: 'vxe-form--item-title-prefix'
19
+ }, [h('i', {
20
+ class: titlePrefix.icon || _conf.default.icon.FORM_PREFIX
21
+ })]);
22
+ }
23
+
24
+ function renderSuffixIcon(h, titleSuffix) {
25
+ return h('span', {
26
+ class: 'vxe-form--item-title-suffix'
27
+ }, [h('i', {
28
+ class: titleSuffix.icon || _conf.default.icon.FORM_SUFFIX
29
+ })]);
30
+ }
31
+
32
+ function renderTitle(h, _vm, item) {
33
+ var data = _vm.data;
34
+ var slots = item.slots,
35
+ field = item.field,
36
+ itemRender = item.itemRender,
37
+ titlePrefix = item.titlePrefix,
38
+ titleSuffix = item.titleSuffix;
39
+ var compConf = (0, _tools.isEnableConf)(itemRender) ? _vXETable.default.renderer.get(itemRender.name) : null;
40
+ var params = {
41
+ data: data,
42
+ property: field,
43
+ item: item,
44
+ $form: _vm
45
+ };
46
+ var contVNs = [];
47
+ var titVNs = [];
48
+
49
+ if (titlePrefix) {
50
+ titVNs.push(titlePrefix.message ? h('vxe-tooltip', {
51
+ props: {
52
+ content: _tools.UtilTools.getFuncText(titlePrefix.message),
53
+ enterable: titlePrefix.enterable,
54
+ theme: titlePrefix.theme
55
+ }
56
+ }, [renderPrefixIcon(h, titlePrefix)]) : renderPrefixIcon(h, titlePrefix));
57
+ }
58
+
59
+ titVNs.push(h('span', {
60
+ class: 'vxe-form--item-title-label'
61
+ }, compConf && compConf.renderItemTitle ? compConf.renderItemTitle(itemRender, params) : slots && slots.title ? _vm.callSlot(slots.title, params, h) : _tools.UtilTools.getFuncText(item.title)));
62
+ contVNs.push(h('div', {
63
+ class: 'vxe-form--item-title-content'
64
+ }, titVNs));
65
+ var fixVNs = [];
66
+
67
+ if (titleSuffix) {
68
+ fixVNs.push(titleSuffix.message ? h('vxe-tooltip', {
69
+ props: {
70
+ content: _tools.UtilTools.getFuncText(titleSuffix.message),
71
+ enterable: titleSuffix.enterable,
72
+ theme: titleSuffix.theme
73
+ }
74
+ }, [renderSuffixIcon(h, titleSuffix)]) : renderSuffixIcon(h, titleSuffix));
75
+ }
76
+
77
+ contVNs.push(h('div', {
78
+ class: 'vxe-form--item-title-postfix'
79
+ }, fixVNs));
80
+ return contVNs;
81
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderTitle=renderTitle;var _conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function renderPrefixIcon(e,t){return e("span",{class:"vxe-form--item-title-prefix"},[e("i",{class:t.icon||_conf.default.icon.FORM_PREFIX})])}function renderSuffixIcon(e,t){return e("span",{class:"vxe-form--item-title-suffix"},[e("i",{class:t.icon||_conf.default.icon.FORM_SUFFIX})])}function renderTitle(e,t,r){var l=t.data,o=r.slots,i=r.field,n=r.itemRender,s=r.titlePrefix,a=r.titleSuffix,f=(0,_tools.isEnableConf)(n)?_vXETable.default.renderer.get(n.name):null,u={data:l,property:i,item:r,$form:t},l=[],i=[];s&&i.push(s.message?e("vxe-tooltip",{props:{content:_tools.UtilTools.getFuncText(s.message),enterable:s.enterable,theme:s.theme}},[renderPrefixIcon(e,s)]):renderPrefixIcon(e,s)),i.push(e("span",{class:"vxe-form--item-title-label"},f&&f.renderItemTitle?f.renderItemTitle(n,u):o&&o.title?t.callSlot(o.title,u,e):_tools.UtilTools.getFuncText(r.title))),l.push(e("div",{class:"vxe-form--item-title-content"},i));i=[];return a&&i.push(a.message?e("vxe-tooltip",{props:{content:_tools.UtilTools.getFuncText(a.message),enterable:a.enterable,theme:a.theme}},[renderSuffixIcon(e,a)]):renderSuffixIcon(e,a)),l.push(e("div",{class:"vxe-form--item-title-postfix"},i)),l}