@form-create/iview 2.5.15 → 2.5.18

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * @form-create/iview v2.5.15
3
- * (c) 2018-2021 xaboy
2
+ * @form-create/iview v2.5.18
3
+ * (c) 2018-2022 xaboy
4
4
  * Github https://github.com/xaboy/form-create
5
5
  * Released under the MIT License.
6
6
  */
@@ -401,8 +401,8 @@
401
401
  "default": 500
402
402
  },
403
403
  height: {
404
- type: [Number, String],
405
- "default": 370
404
+ type: String,
405
+ "default": '370px'
406
406
  },
407
407
  maxLength: {
408
408
  type: Number,
@@ -686,6 +686,7 @@
686
686
  try {
687
687
  if (this.helper === true) {
688
688
  iframe['form_create_helper'] = {
689
+ api: this.formCreateInject.api,
689
690
  close: function close(field) {
690
691
  _this7.valid(field);
691
692
 
@@ -778,17 +779,14 @@
778
779
  }
779
780
  }
780
781
  }, [h("img", {
782
+ "style": "width: 100%",
781
783
  "attrs": {
782
- "alt": "example",
783
784
  "src": this.previewImage
784
- },
785
- "style": "width: 100%"
786
- })]), h("Modal", helper([{}, {
787
- "props": _objectSpread2({
788
- width: width,
789
- title: title
790
- }, this.modal)
791
- }, {
785
+ }
786
+ })]), h("Modal", helper([{}, _objectSpread2({
787
+ width: width,
788
+ title: title
789
+ }, this.modal), {
792
790
  "on": {
793
791
  "on-cancel": function onCancel() {
794
792
  return _this9.closeModel(true);
@@ -914,9 +912,28 @@
914
912
  },
915
913
  trueArray: function trueArray(data) {
916
914
  return Array.isArray(data) && data.length > 0;
915
+ },
916
+ Function: function Function(v) {
917
+ var type = this.getType(v);
918
+ return type === 'Function' || type === 'AsyncFunction';
919
+ },
920
+ getType: function getType(v) {
921
+ var str = Object.prototype.toString.call(v);
922
+ return /^\[object (.*)\]$/.exec(str)[1];
923
+ },
924
+ empty: function empty(value) {
925
+ if (value === undefined || value === null) {
926
+ return true;
927
+ }
928
+
929
+ if (Array.isArray(value) && Array.isArray(value) && !value.length) {
930
+ return true;
931
+ }
932
+
933
+ return typeof value === 'string' && !value;
917
934
  }
918
935
  };
919
- ['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
936
+ ['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
920
937
  is[t] = function (arg) {
921
938
  return is.type(arg, t);
922
939
  };
@@ -1076,7 +1093,8 @@
1076
1093
  return {
1077
1094
  uploadList: [],
1078
1095
  previewVisible: false,
1079
- previewImage: ''
1096
+ previewImage: '',
1097
+ cacheFiles: []
1080
1098
  };
1081
1099
  },
1082
1100
  created: function created() {
@@ -1223,7 +1241,11 @@
1223
1241
  }).filter(function (url) {
1224
1242
  return url !== undefined;
1225
1243
  });
1226
- this.$emit('input', this.maxLength === 1 ? files[0] || '' : files);
1244
+
1245
+ if (this.cacheFiles.length !== files.length) {
1246
+ this.cacheFiles = _toConsumableArray(files);
1247
+ this.$emit('input', this.maxLength === 1 ? files[0] || '' : files);
1248
+ }
1227
1249
  },
1228
1250
  handleCancel: function handleCancel() {
1229
1251
  this.previewVisible = false;
@@ -1284,6 +1306,81 @@
1284
1306
  imgUpIcon: 'image'
1285
1307
  });
1286
1308
 
1309
+ function $set(target, field, value) {
1310
+ Vue.set(target, field, value);
1311
+ }
1312
+ function $del(target, field) {
1313
+ Vue["delete"](target, field);
1314
+ }
1315
+
1316
+ function deepExtend(origin) {
1317
+ var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1318
+ var mode = arguments.length > 2 ? arguments[2] : undefined;
1319
+ var isArr = false;
1320
+
1321
+ for (var key in target) {
1322
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
1323
+ var clone = target[key];
1324
+
1325
+ if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
1326
+ var nst = origin[key] === undefined;
1327
+
1328
+ if (isArr) {
1329
+ isArr = false;
1330
+ nst && $set(origin, key, []);
1331
+ } else if (clone._clone && mode !== undefined) {
1332
+ if (mode) {
1333
+ clone = clone.getRule();
1334
+ nst && $set(origin, key, {});
1335
+ } else {
1336
+ $set(origin, key, clone._clone());
1337
+ continue;
1338
+ }
1339
+ } else {
1340
+ nst && $set(origin, key, {});
1341
+ }
1342
+
1343
+ origin[key] = deepExtend(origin[key], clone, mode);
1344
+ } else {
1345
+ $set(origin, key, clone);
1346
+
1347
+ if (!is.Undef(clone)) {
1348
+ if (!is.Undef(clone.__json)) {
1349
+ origin[key].__json = clone.__json;
1350
+ }
1351
+
1352
+ if (!is.Undef(clone.__origin)) {
1353
+ origin[key].__origin = clone.__origin;
1354
+ }
1355
+ }
1356
+ }
1357
+ }
1358
+ }
1359
+
1360
+ return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
1361
+ return !v || !v.__ctrl;
1362
+ }) : origin;
1363
+ }
1364
+ function deepCopy(value) {
1365
+ return deepExtend({}, {
1366
+ value: value
1367
+ }).value;
1368
+ }
1369
+
1370
+ var _extends$1 = Object.assign || function (a) {
1371
+ for (var b, c = 1; c < arguments.length; c++) {
1372
+ for (var d in b = arguments[c], b) {
1373
+ Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1374
+ }
1375
+ }
1376
+
1377
+ return a;
1378
+ };
1379
+
1380
+ function extend() {
1381
+ return _extends$1.apply(this, arguments);
1382
+ }
1383
+
1287
1384
  var NAME$6 = 'fcGroup';
1288
1385
  function createGroup(config) {
1289
1386
  return {
@@ -1316,6 +1413,7 @@
1316
1413
  return [];
1317
1414
  }
1318
1415
  },
1416
+ defaultValue: Object,
1319
1417
  disabled: {
1320
1418
  type: Boolean,
1321
1419
  "default": false
@@ -1461,7 +1559,13 @@
1461
1559
  submitBtn: false,
1462
1560
  resetBtn: false
1463
1561
  };
1464
- options.formData = this.field ? _defineProperty({}, this.field, this._value(this.value[i])) : this.value[i] || {};
1562
+
1563
+ if (this.defaultValue) {
1564
+ if (!options.formData) options.formData = {};
1565
+ var defVal = deepCopy(this.defaultValue);
1566
+ extend(options.formData, this.field ? _defineProperty({}, this.field, defVal) : defVal);
1567
+ }
1568
+
1465
1569
  this.$set(this.cacheRule, ++this.len, {
1466
1570
  rule: rule,
1467
1571
  options: options
@@ -1478,6 +1582,7 @@
1478
1582
 
1479
1583
  this.cacheRule[key].$f = $f;
1480
1584
  this.subForm();
1585
+ this.formData(key, $f.formData());
1481
1586
  this.$nextTick(function () {
1482
1587
  if (_this4.syncDisabled) {
1483
1588
  $f.disabled(_this4.disabled);
@@ -1654,6 +1759,7 @@
1654
1759
  }
1655
1760
  }, {
1656
1761
  "attrs": {
1762
+ "value": _this9.field ? _defineProperty({}, _this9.field, _this9._value(_this9.value[index])) : _this9.value[index],
1657
1763
  "rule": rule,
1658
1764
  "option": options,
1659
1765
  "extendOption": true
@@ -1796,27 +1902,6 @@
1796
1902
 
1797
1903
  var components = [Checkbox, Radio, Select, Tree, Sub, frame, upload, group];
1798
1904
 
1799
- function $set(target, field, value) {
1800
- Vue.set(target, field, value);
1801
- }
1802
- function $del(target, field) {
1803
- Vue["delete"](target, field);
1804
- }
1805
-
1806
- var _extends$1 = Object.assign || function (a) {
1807
- for (var b, c = 1; c < arguments.length; c++) {
1808
- for (var d in b = arguments[c], b) {
1809
- Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1810
- }
1811
- }
1812
-
1813
- return a;
1814
- };
1815
-
1816
- function extend() {
1817
- return _extends$1.apply(this, arguments);
1818
- }
1819
-
1820
1905
  var NAME$8 = 'FormCreate';
1821
1906
  function $FormCreate(FormCreate) {
1822
1907
  return {
@@ -1848,7 +1933,8 @@
1848
1933
  },
1849
1934
  extendOption: Boolean,
1850
1935
  value: Object,
1851
- api: Object
1936
+ api: Object,
1937
+ name: String
1852
1938
  },
1853
1939
  data: function data() {
1854
1940
  return {
@@ -2010,60 +2096,6 @@
2010
2096
  console.error(e);
2011
2097
  }
2012
2098
 
2013
- function deepExtend(origin) {
2014
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2015
- var mode = arguments.length > 2 ? arguments[2] : undefined;
2016
- var isArr = false;
2017
-
2018
- for (var key in target) {
2019
- if (Object.prototype.hasOwnProperty.call(target, key)) {
2020
- var clone = target[key];
2021
-
2022
- if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
2023
- var nst = origin[key] === undefined;
2024
-
2025
- if (isArr) {
2026
- isArr = false;
2027
- nst && $set(origin, key, []);
2028
- } else if (clone._clone && mode !== undefined) {
2029
- if (mode) {
2030
- clone = clone.getRule();
2031
- nst && $set(origin, key, {});
2032
- } else {
2033
- $set(origin, key, clone._clone());
2034
- continue;
2035
- }
2036
- } else {
2037
- nst && $set(origin, key, {});
2038
- }
2039
-
2040
- origin[key] = deepExtend(origin[key], clone, mode);
2041
- } else {
2042
- $set(origin, key, clone);
2043
-
2044
- if (!is.Undef(clone)) {
2045
- if (clone.__json !== undefined) {
2046
- origin[key].__json = clone.__json;
2047
- }
2048
-
2049
- if (clone.__origin !== undefined) {
2050
- origin[key].__origin = clone.__origin;
2051
- }
2052
- }
2053
- }
2054
- }
2055
- }
2056
-
2057
- return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
2058
- return !v || !v.__ctrl;
2059
- }) : origin;
2060
- }
2061
- function deepCopy(value) {
2062
- return deepExtend({}, {
2063
- value: value
2064
- }).value;
2065
- }
2066
-
2067
2099
  var PREFIX = '[[FORM-CREATE-PREFIX-';
2068
2100
  var SUFFIX = '-FORM-CREATE-SUFFIX]]';
2069
2101
  var $T = '$FN:';
@@ -2077,7 +2109,7 @@
2077
2109
  return val;
2078
2110
  }
2079
2111
 
2080
- if (hasProperty(val, '__json')) {
2112
+ if (val.__json) {
2081
2113
  return val.__json;
2082
2114
  }
2083
2115
 
@@ -2188,39 +2220,6 @@
2188
2220
  return def;
2189
2221
  }
2190
2222
 
2191
- function toString$1(val) {
2192
- return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2193
- }
2194
-
2195
- function toLine(name) {
2196
- var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2197
- if (line.indexOf('-') === 0) line = line.substr(1);
2198
- return line;
2199
- }
2200
-
2201
- var id = 0;
2202
- function uniqueId() {
2203
- return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2204
- }
2205
-
2206
- function deepSet(data, idx, val) {
2207
- var _data = data,
2208
- to;
2209
- (idx || '').split('.').forEach(function (v) {
2210
- if (to) {
2211
- if (!_data[to] || _typeof(_data[to]) != 'object') {
2212
- _data[to] = {};
2213
- }
2214
-
2215
- _data = _data[to];
2216
- }
2217
-
2218
- to = v;
2219
- });
2220
- _data[to] = val;
2221
- return _data;
2222
- }
2223
-
2224
2223
  function baseRule() {
2225
2224
  return {
2226
2225
  props: {},
@@ -2470,7 +2469,7 @@
2470
2469
  disabled: function disabled(_disabled, fields) {
2471
2470
  tidyFields(fields).forEach(function (field) {
2472
2471
  h.getCtxs(field).forEach(function (ctx) {
2473
- $set(ctx.rule.props, 'disabled', !!_disabled);
2472
+ ctx.rule.props && $set(ctx.rule.props, 'disabled', !!_disabled);
2474
2473
  });
2475
2474
  });
2476
2475
  h.refresh();
@@ -2742,6 +2741,39 @@
2742
2741
  return str.replace(str[0], str[0].toLowerCase());
2743
2742
  }
2744
2743
 
2744
+ function toString$1(val) {
2745
+ return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2746
+ }
2747
+
2748
+ function toLine(name) {
2749
+ var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2750
+ if (line.indexOf('-') === 0) line = line.substr(1);
2751
+ return line;
2752
+ }
2753
+
2754
+ var id = 0;
2755
+ function uniqueId() {
2756
+ return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2757
+ }
2758
+
2759
+ function deepSet(data, idx, val) {
2760
+ var _data = data,
2761
+ to;
2762
+ (idx || '').split('.').forEach(function (v) {
2763
+ if (to) {
2764
+ if (!_data[to] || _typeof(_data[to]) != 'object') {
2765
+ _data[to] = {};
2766
+ }
2767
+
2768
+ _data = _data[to];
2769
+ }
2770
+
2771
+ to = v;
2772
+ });
2773
+ _data[to] = val;
2774
+ return _data;
2775
+ }
2776
+
2745
2777
  function useRender(Render) {
2746
2778
  extend(Render.prototype, {
2747
2779
  initRender: function initRender() {
@@ -2762,6 +2794,23 @@
2762
2794
  clearOrgChildren: function clearOrgChildren() {
2763
2795
  this.orgChildren = {};
2764
2796
  },
2797
+ getTypeSlot: function getTypeSlot(type) {
2798
+ var name = 'type-' + toLine(type);
2799
+
2800
+ var _fn = function _fn(vm) {
2801
+ if (vm) {
2802
+ var slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];
2803
+
2804
+ if (slot) {
2805
+ return slot;
2806
+ }
2807
+
2808
+ return _fn(vm.$pfc);
2809
+ }
2810
+ };
2811
+
2812
+ return _fn(this.vm);
2813
+ },
2765
2814
  render: function render() {
2766
2815
  var _this = this;
2767
2816
 
@@ -2957,10 +3006,10 @@
2957
3006
  children = this.renderChildren(ctx);
2958
3007
  }
2959
3008
 
2960
- var slot = 'type-' + toLine(ctx.type);
3009
+ var slot = this.getTypeSlot(ctx.type);
2961
3010
 
2962
- if (this.vm.$scopedSlots[slot]) {
2963
- vn = this.vm.$scopedSlots[slot]({
3011
+ if (slot) {
3012
+ vn = slot({
2964
3013
  rule: rule,
2965
3014
  prop: prop,
2966
3015
  preview: preview,
@@ -3087,15 +3136,13 @@
3087
3136
  }];
3088
3137
 
3089
3138
  if (!custom && ctx.input) {
3090
- props.push({
3091
- model: {
3092
- value: this.$handle.getFormData(ctx),
3093
- callback: function callback(value) {
3094
- _this8.onInput(ctx, value);
3095
- },
3096
- expression: "formData.".concat(ctx.id)
3097
- }
3098
- });
3139
+ ctx.prop.model = {
3140
+ value: this.$handle.getFormData(ctx),
3141
+ callback: function callback(value) {
3142
+ _this8.onInput(ctx, value);
3143
+ },
3144
+ expression: "formData.".concat(ctx.id)
3145
+ };
3099
3146
  }
3100
3147
 
3101
3148
  mergeProps(props, ctx.prop);
@@ -4014,7 +4061,7 @@
4014
4061
  this.setFormData(ctx, formValue);
4015
4062
  this.syncValue();
4016
4063
  this.valueChange(ctx, value);
4017
- this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);
4064
+ this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);
4018
4065
  this.effect(ctx, 'value');
4019
4066
  },
4020
4067
  onInput: function onInput(ctx, value) {
@@ -4025,7 +4072,7 @@
4025
4072
  }
4026
4073
  },
4027
4074
  setFormData: function setFormData(ctx, value) {
4028
- $set(this.formData, ctx.id, value);
4075
+ $set(this.formData, ctx.id, value === null ? undefined : value);
4029
4076
  },
4030
4077
  getFormData: function getFormData(ctx) {
4031
4078
  return this.formData[ctx.id];
@@ -4120,10 +4167,10 @@
4120
4167
  this.vm._updateValue(_objectSpread2({}, this.form));
4121
4168
  },
4122
4169
  isChange: function isChange(ctx, value) {
4123
- return JSON.stringify(ctx.rule.value) !== JSON.stringify(value);
4170
+ return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value, strFn);
4124
4171
  },
4125
4172
  isQuote: function isQuote(ctx, value) {
4126
- return value === ctx.rule.value || is.Object(value) || Array.isArray(value) || is.Function(value);
4173
+ return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
4127
4174
  },
4128
4175
  refreshUpdate: function refreshUpdate(ctx, val) {
4129
4176
  var _this4 = this;
@@ -4172,6 +4219,10 @@
4172
4219
  });
4173
4220
  }
4174
4221
 
4222
+ function strFn(key, val) {
4223
+ return typeof val === 'function' ? '' + val : val;
4224
+ }
4225
+
4175
4226
  function toEmpty(obj) {
4176
4227
  Object.keys(obj).forEach(function (k) {
4177
4228
  return delete obj[k];
@@ -4275,7 +4326,7 @@
4275
4326
  var vm = this.vm;
4276
4327
  var none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];
4277
4328
  Object.keys(ctx.rule).filter(function (k) {
4278
- return none.indexOf(k) === -1;
4329
+ return k[0] !== '_' && k[0] !== '$' && none.indexOf(k) === -1;
4279
4330
  }).forEach(function (key) {
4280
4331
  var flag = key === 'children';
4281
4332
  ctx.watch.push(vm.$watch(function () {
@@ -4460,10 +4511,21 @@
4460
4511
  var _this3 = this;
4461
4512
 
4462
4513
  var vm = this.vm;
4514
+ var effect = {};
4463
4515
  Object.keys(ctx.rule.effect || {}).forEach(function (k) {
4464
- ctx.watch.push(vm.$watch(function () {
4516
+ effect[k] = function () {
4465
4517
  return ctx.rule.effect[k];
4466
- }, function (n) {
4518
+ };
4519
+ });
4520
+ Object.keys(ctx.rule).forEach(function (k) {
4521
+ if (k[0] === '$') {
4522
+ effect[k.substr(1)] = function () {
4523
+ return ctx.rule[k];
4524
+ };
4525
+ }
4526
+ });
4527
+ Object.keys(effect || {}).forEach(function (k) {
4528
+ ctx.watch.push(vm.$watch(effect[k], function (n) {
4467
4529
  _this3.effect(ctx, 'watch', _defineProperty({}, k, n));
4468
4530
  }, {
4469
4531
  deep: true
@@ -4487,7 +4549,12 @@
4487
4549
  }, event);
4488
4550
  },
4489
4551
  getEffect: function getEffect(rule, name) {
4490
- if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];else return undefined;
4552
+ if (hasProperty(rule, '$' + name)) {
4553
+ return rule['$' + name];
4554
+ }
4555
+
4556
+ if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];
4557
+ return undefined;
4491
4558
  },
4492
4559
  emitEffect: function emitEffect(_ref, event, append) {
4493
4560
  var _this4 = this;
@@ -4498,7 +4565,13 @@
4498
4565
  type = _ref.type,
4499
4566
  custom = _ref.custom;
4500
4567
  if (!type || type === 'fcFragment') return;
4501
- var effect = custom ? custom : rule.effect || {};
4568
+ var effect = custom ? custom : Object.keys(rule).reduce(function (i, k) {
4569
+ if (k[0] === '$') {
4570
+ i[k.substr(1)] = rule[k];
4571
+ }
4572
+
4573
+ return i;
4574
+ }, _objectSpread2({}, rule.effect || {}));
4502
4575
  Object.keys(effect).forEach(function (attr) {
4503
4576
  var p = _this4.providers[attr];
4504
4577
  if (!p || p.input && !input) return;
@@ -4842,6 +4915,42 @@
4842
4915
  }
4843
4916
  }
4844
4917
  };
4918
+ var $required = {
4919
+ name: 'required',
4920
+ load: function load(inject, rule) {
4921
+ var val = parseVa(inject.getValue());
4922
+
4923
+ var validate = _objectSpread2(_objectSpread2({}, val), {}, {
4924
+ required: true,
4925
+ validator: function validator(_, v, c) {
4926
+ is.empty(v) ? c(validate.message) : c();
4927
+ }
4928
+ });
4929
+
4930
+ if (!validate.message) {
4931
+ validate.message = rule.title + ' is required';
4932
+ }
4933
+
4934
+ inject.getProp().validate = [validate];
4935
+ },
4936
+ watch: function watch() {
4937
+ $required.load.apply($required, arguments);
4938
+ }
4939
+ };
4940
+
4941
+ function parseVa(val) {
4942
+ if (is.Boolean(val)) {
4943
+ return {};
4944
+ } else if (is.String(val)) {
4945
+ return {
4946
+ message: val
4947
+ };
4948
+ } else if (!is.Object(val)) {
4949
+ return {};
4950
+ } else {
4951
+ return val;
4952
+ }
4953
+ }
4845
4954
 
4846
4955
  function parseOpt(option) {
4847
4956
  if (is.String(option)) {
@@ -4912,6 +5021,31 @@
4912
5021
  return true;
4913
5022
  }
4914
5023
 
5024
+ var $provider = {
5025
+ fetch: $fetch,
5026
+ required: $required
5027
+ };
5028
+
5029
+ var name = 'html';
5030
+ var html = {
5031
+ name: name,
5032
+ loadChildren: false,
5033
+ render: function render(children, ctx) {
5034
+ if (!ctx.prop.domProps) ctx.prop.domProps = {};
5035
+ ctx.prop.domProps.innerHTML = children;
5036
+ return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);
5037
+ },
5038
+ renderChildren: function renderChildren(ctx) {
5039
+ if (Array.isArray(ctx.rule.children)) {
5040
+ return ctx.rule.children.filter(function (v) {
5041
+ return is.String(v);
5042
+ }).join('');
5043
+ }
5044
+
5045
+ return '';
5046
+ }
5047
+ };
5048
+
4915
5049
  var _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;
4916
5050
 
4917
5051
  function _parseProp(name, id) {
@@ -4967,17 +5101,19 @@
4967
5101
  arrayAttrs.push.apply(arrayAttrs, _toConsumableArray(array));
4968
5102
  normalAttrs.push.apply(normalAttrs, _toConsumableArray(normal));
4969
5103
  appendProto([].concat(_toConsumableArray(key), _toConsumableArray(array), _toConsumableArray(normal)));
4970
- } //todo 表单嵌套
5104
+ }
4971
5105
 
5106
+ var id$1 = 1;
5107
+ var instance = {}; //todo 表单嵌套
4972
5108
 
4973
5109
  function FormCreateFactory(config) {
4974
5110
  var components = _defineProperty({}, fragment.name, fragment);
4975
5111
 
4976
5112
  var parsers = {};
4977
5113
  var directives = {};
4978
- var providers = {
4979
- fetch: $fetch
4980
- };
5114
+
5115
+ var providers = _objectSpread2({}, $provider);
5116
+
4981
5117
  var maker = makerFactory();
4982
5118
  var globalConfig = {
4983
5119
  global: {}
@@ -4986,6 +5122,10 @@
4986
5122
  var CreateNode = CreateNodeFactory();
4987
5123
  exportAttrs(config.attrs || {});
4988
5124
 
5125
+ function getApi(name) {
5126
+ return instance[name];
5127
+ }
5128
+
4989
5129
  function directive() {
4990
5130
  var data = nameProp.apply(void 0, arguments);
4991
5131
  if (data.id && data.prop) directives[data.id] = data.prop;
@@ -5058,18 +5198,35 @@
5058
5198
  return _this.api();
5059
5199
  }
5060
5200
 
5061
- function factory() {
5062
- return FormCreateFactory(config);
5201
+ function factory(inherit) {
5202
+ var _config = _objectSpread2({}, config);
5203
+
5204
+ if (inherit) {
5205
+ _config.inherit = {
5206
+ components: components,
5207
+ parsers: parsers,
5208
+ directives: directives,
5209
+ providers: providers,
5210
+ maker: maker,
5211
+ data: data
5212
+ };
5213
+ } else {
5214
+ delete _config.inherit;
5215
+ }
5216
+
5217
+ return FormCreateFactory(_config);
5063
5218
  }
5064
5219
 
5065
5220
  function FormCreate(vm, rules, options) {
5066
5221
  extend(this, {
5222
+ id: id$1++,
5067
5223
  vm: vm,
5068
5224
  create: create,
5069
5225
  manager: createManager(config.manager),
5070
5226
  parsers: parsers,
5071
5227
  providers: providers,
5072
5228
  rules: Array.isArray(rules) ? rules : [],
5229
+ name: vm.$options.propsData.name,
5073
5230
  prop: {
5074
5231
  components: components,
5075
5232
  directives: directives
@@ -5083,6 +5240,10 @@
5083
5240
  });
5084
5241
  this.init();
5085
5242
  this.initOptions(options || {});
5243
+
5244
+ if (this.name) {
5245
+ instance[this.name] = this.api();
5246
+ }
5086
5247
  }
5087
5248
 
5088
5249
  extend(FormCreate.prototype, {
@@ -5118,6 +5279,10 @@
5118
5279
  vm.destroyed = true;
5119
5280
  _this2.unwatch && _this2.unwatch();
5120
5281
  h.reloadRule([]);
5282
+
5283
+ if (_this2.name) {
5284
+ delete instance[_this2.name];
5285
+ }
5121
5286
  });
5122
5287
  vm.$on('hook:updated', function () {
5123
5288
  h.bindNextTick(function () {
@@ -5195,6 +5360,7 @@
5195
5360
  parseFn: parseFn,
5196
5361
  parseJson: parseJson,
5197
5362
  toJson: toJson,
5363
+ getApi: getApi,
5198
5364
  init: function init(rules) {
5199
5365
  var _opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5200
5366
 
@@ -5248,7 +5414,19 @@
5248
5414
  CreateNode.use({
5249
5415
  fragment: 'fcFragment'
5250
5416
  });
5417
+ parser(html);
5251
5418
  if (config.install) create.use(config);
5419
+
5420
+ if (config.inherit) {
5421
+ var inherit = config.inherit;
5422
+ inherit.components && extend(components, inherit.components);
5423
+ inherit.parsers && extend(parsers, inherit.parsers);
5424
+ inherit.directives && extend(directives, inherit.directives);
5425
+ inherit.providers && extend(providers, inherit.providers);
5426
+ inherit.maker && extend(maker, inherit.maker);
5427
+ inherit.data && extend(data, inherit.data);
5428
+ }
5429
+
5252
5430
  return create;
5253
5431
  }
5254
5432
 
@@ -5258,12 +5436,12 @@
5258
5436
  return date.toString() === 'Invalid Date' ? timeStamp : date;
5259
5437
  }
5260
5438
  }
5261
- var name = 'datePicker';
5439
+ var name$1 = 'datePicker';
5262
5440
  var datePicker = {
5263
- name: name,
5441
+ name: name$1,
5264
5442
  maker: function () {
5265
5443
  return ['date', 'dateRange', 'datetime', 'datetimeRange', 'year', 'month'].reduce(function (maker, type) {
5266
- maker[type] = creatorFactory(name, {
5444
+ maker[type] = creatorFactory(name$1, {
5267
5445
  type: type.toLowerCase()
5268
5446
  });
5269
5447
  return maker;
@@ -5328,28 +5506,28 @@
5328
5506
  }
5329
5507
  };
5330
5508
 
5331
- var name$1 = 'hidden';
5509
+ var name$2 = 'hidden';
5332
5510
  var hidden = {
5333
- name: name$1,
5334
- maker: _defineProperty({}, name$1, function (field, value) {
5335
- return creatorFactory(name$1)('', field, value);
5511
+ name: name$2,
5512
+ maker: _defineProperty({}, name$2, function (field, value) {
5513
+ return creatorFactory(name$2)('', field, value);
5336
5514
  }),
5337
5515
  render: function render() {
5338
5516
  return [];
5339
5517
  }
5340
5518
  };
5341
5519
 
5342
- var name$2 = 'input';
5520
+ var name$3 = 'input';
5343
5521
  var input = {
5344
- name: name$2,
5522
+ name: name$3,
5345
5523
  maker: function () {
5346
5524
  var maker = ['password', 'url', 'email', 'text', 'textarea'].reduce(function (maker, type) {
5347
- maker[type] = creatorFactory(name$2, {
5525
+ maker[type] = creatorFactory(name$3, {
5348
5526
  type: type
5349
5527
  });
5350
5528
  return maker;
5351
5529
  }, {});
5352
- maker.idate = creatorFactory(name$2, {
5530
+ maker.idate = creatorFactory(name$3, {
5353
5531
  type: 'date'
5354
5532
  });
5355
5533
  return maker;
@@ -5363,11 +5541,11 @@
5363
5541
  }
5364
5542
  };
5365
5543
 
5366
- var name$3 = 'slider';
5544
+ var name$4 = 'slider';
5367
5545
  var slider = {
5368
- name: name$3,
5546
+ name: name$4,
5369
5547
  maker: {
5370
- sliderRange: creatorFactory(name$3, {
5548
+ sliderRange: creatorFactory(name$4, {
5371
5549
  range: true
5372
5550
  })
5373
5551
  },
@@ -5851,7 +6029,7 @@
5851
6029
  useFrame(maker);
5852
6030
  useTimePicker(maker);
5853
6031
 
5854
- var css_248z$2 = ".form-create .form-create .ivu-form-item {\n margin-bottom: 24px;\n}\n\n.form-create .form-create .ivu-form-item .ivu-form-item {\n margin-bottom: 0px;\n}\n\n.form-create{\n transform: rotateZ(0);\n}\n";
6032
+ var css_248z$2 = ".form-create .form-create .ivu-form-item {\n margin-bottom: 24px;\n}\n\n.form-create .form-create .ivu-form-item .ivu-form-item {\n margin-bottom: 0px;\n}\n";
5855
6033
  styleInject(css_248z$2);
5856
6034
 
5857
6035
  function tidyBtnProp(btn, def) {
@@ -6091,7 +6269,7 @@
6091
6269
  function ivuFormCreate() {
6092
6270
  return FormCreateFactory({
6093
6271
  ui: "".concat("iview"),
6094
- version: "".concat("2.5.15"),
6272
+ version: "".concat("2.5.18"),
6095
6273
  manager: manager,
6096
6274
  install: install,
6097
6275
  extendApi: extendApi,