@form-create/element-ui 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/element-ui v2.5.15
3
- * (c) 2018-2021 xaboy
2
+ * @form-create/element-ui 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
  */
@@ -710,6 +710,7 @@
710
710
  try {
711
711
  if (this.helper === true) {
712
712
  iframe['form_create_helper'] = {
713
+ api: this.formCreateInject.api,
713
714
  close: function close(field) {
714
715
  _this7.valid(field);
715
716
 
@@ -812,21 +813,18 @@
812
813
  "close": this.handleCancel
813
814
  }
814
815
  }, [h("img", {
816
+ "style": "width: 100%",
815
817
  "attrs": {
816
- "alt": "example",
817
818
  "src": this.previewImage
818
- },
819
- "style": "width: 100%"
819
+ }
820
820
  })]), h("el-dialog", helper([{
821
821
  "attrs": {
822
822
  "appendToBody": true
823
823
  }
824
- }, {
825
- "props": _objectSpread2({
826
- width: width,
827
- title: title
828
- }, this.modal)
829
- }, {
824
+ }, _objectSpread2({
825
+ width: width,
826
+ title: title
827
+ }, this.modal), {
830
828
  "attrs": {
831
829
  "visible": this.frameVisible
832
830
  },
@@ -941,9 +939,28 @@
941
939
  },
942
940
  trueArray: function trueArray(data) {
943
941
  return Array.isArray(data) && data.length > 0;
942
+ },
943
+ Function: function Function(v) {
944
+ var type = this.getType(v);
945
+ return type === 'Function' || type === 'AsyncFunction';
946
+ },
947
+ getType: function getType(v) {
948
+ var str = Object.prototype.toString.call(v);
949
+ return /^\[object (.*)\]$/.exec(str)[1];
950
+ },
951
+ empty: function empty(value) {
952
+ if (value === undefined || value === null) {
953
+ return true;
954
+ }
955
+
956
+ if (Array.isArray(value) && Array.isArray(value) && !value.length) {
957
+ return true;
958
+ }
959
+
960
+ return typeof value === 'string' && !value;
944
961
  }
945
962
  };
946
- ['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
963
+ ['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
947
964
  is[t] = function (arg) {
948
965
  return is.type(arg, t);
949
966
  };
@@ -1113,7 +1130,8 @@
1113
1130
  return {
1114
1131
  uploadList: [],
1115
1132
  previewVisible: false,
1116
- previewImage: ''
1133
+ previewImage: '',
1134
+ cacheFiles: []
1117
1135
  };
1118
1136
  },
1119
1137
  created: function created() {
@@ -1264,7 +1282,11 @@
1264
1282
  }).filter(function (url) {
1265
1283
  return url !== undefined;
1266
1284
  });
1267
- this.$emit('input', this.limit === 1 ? files[0] || '' : files);
1285
+
1286
+ if (this.cacheFiles.length !== files.length) {
1287
+ this.cacheFiles = _toConsumableArray(files);
1288
+ this.$emit('input', this.limit === 1 ? files[0] || '' : files);
1289
+ }
1268
1290
  },
1269
1291
  handleCancel: function handleCancel() {
1270
1292
  this.previewVisible = false;
@@ -1315,6 +1337,81 @@
1315
1337
  }
1316
1338
  };
1317
1339
 
1340
+ function $set(target, field, value) {
1341
+ Vue.set(target, field, value);
1342
+ }
1343
+ function $del(target, field) {
1344
+ Vue["delete"](target, field);
1345
+ }
1346
+
1347
+ function deepExtend(origin) {
1348
+ var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1349
+ var mode = arguments.length > 2 ? arguments[2] : undefined;
1350
+ var isArr = false;
1351
+
1352
+ for (var key in target) {
1353
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
1354
+ var clone = target[key];
1355
+
1356
+ if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
1357
+ var nst = origin[key] === undefined;
1358
+
1359
+ if (isArr) {
1360
+ isArr = false;
1361
+ nst && $set(origin, key, []);
1362
+ } else if (clone._clone && mode !== undefined) {
1363
+ if (mode) {
1364
+ clone = clone.getRule();
1365
+ nst && $set(origin, key, {});
1366
+ } else {
1367
+ $set(origin, key, clone._clone());
1368
+ continue;
1369
+ }
1370
+ } else {
1371
+ nst && $set(origin, key, {});
1372
+ }
1373
+
1374
+ origin[key] = deepExtend(origin[key], clone, mode);
1375
+ } else {
1376
+ $set(origin, key, clone);
1377
+
1378
+ if (!is.Undef(clone)) {
1379
+ if (!is.Undef(clone.__json)) {
1380
+ origin[key].__json = clone.__json;
1381
+ }
1382
+
1383
+ if (!is.Undef(clone.__origin)) {
1384
+ origin[key].__origin = clone.__origin;
1385
+ }
1386
+ }
1387
+ }
1388
+ }
1389
+ }
1390
+
1391
+ return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
1392
+ return !v || !v.__ctrl;
1393
+ }) : origin;
1394
+ }
1395
+ function deepCopy(value) {
1396
+ return deepExtend({}, {
1397
+ value: value
1398
+ }).value;
1399
+ }
1400
+
1401
+ var _extends$1 = Object.assign || function (a) {
1402
+ for (var b, c = 1; c < arguments.length; c++) {
1403
+ for (var d in b = arguments[c], b) {
1404
+ Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1405
+ }
1406
+ }
1407
+
1408
+ return a;
1409
+ };
1410
+
1411
+ function extend() {
1412
+ return _extends$1.apply(this, arguments);
1413
+ }
1414
+
1318
1415
  var NAME$6 = 'fcGroup';
1319
1416
  var Group = {
1320
1417
  name: NAME$6,
@@ -1346,6 +1443,7 @@
1346
1443
  return [];
1347
1444
  }
1348
1445
  },
1446
+ defaultValue: Object,
1349
1447
  disabled: {
1350
1448
  type: Boolean,
1351
1449
  "default": false
@@ -1491,7 +1589,13 @@
1491
1589
  submitBtn: false,
1492
1590
  resetBtn: false
1493
1591
  };
1494
- options.formData = this.field ? _defineProperty({}, this.field, this._value(this.value[i])) : this.value[i] || {};
1592
+
1593
+ if (this.defaultValue) {
1594
+ if (!options.formData) options.formData = {};
1595
+ var defVal = deepCopy(this.defaultValue);
1596
+ extend(options.formData, this.field ? _defineProperty({}, this.field, defVal) : defVal);
1597
+ }
1598
+
1495
1599
  this.$set(this.cacheRule, ++this.len, {
1496
1600
  rule: rule,
1497
1601
  options: options
@@ -1508,6 +1612,7 @@
1508
1612
 
1509
1613
  this.cacheRule[key].$f = $f;
1510
1614
  this.subForm();
1615
+ this.formData(key, $f.formData());
1511
1616
  this.$nextTick(function () {
1512
1617
  if (_this4.syncDisabled) {
1513
1618
  $f.disabled(_this4.disabled);
@@ -1678,6 +1783,7 @@
1678
1783
  }
1679
1784
  }, {
1680
1785
  "attrs": {
1786
+ "value": _this9.field ? _defineProperty({}, _this9.field, _this9._value(_this9.value[index])) : _this9.value[index],
1681
1787
  "rule": rule,
1682
1788
  "option": options,
1683
1789
  "extendOption": true
@@ -1810,27 +1916,6 @@
1810
1916
 
1811
1917
  var components = [Checkbox, Frame, Radio, Select, Tree, Upload, Group, Sub];
1812
1918
 
1813
- function $set(target, field, value) {
1814
- Vue.set(target, field, value);
1815
- }
1816
- function $del(target, field) {
1817
- Vue["delete"](target, field);
1818
- }
1819
-
1820
- var _extends$1 = Object.assign || function (a) {
1821
- for (var b, c = 1; c < arguments.length; c++) {
1822
- for (var d in b = arguments[c], b) {
1823
- Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1824
- }
1825
- }
1826
-
1827
- return a;
1828
- };
1829
-
1830
- function extend() {
1831
- return _extends$1.apply(this, arguments);
1832
- }
1833
-
1834
1919
  var NAME$8 = 'FormCreate';
1835
1920
  function $FormCreate(FormCreate) {
1836
1921
  return {
@@ -1862,7 +1947,8 @@
1862
1947
  },
1863
1948
  extendOption: Boolean,
1864
1949
  value: Object,
1865
- api: Object
1950
+ api: Object,
1951
+ name: String
1866
1952
  },
1867
1953
  data: function data() {
1868
1954
  return {
@@ -2024,60 +2110,6 @@
2024
2110
  console.error(e);
2025
2111
  }
2026
2112
 
2027
- function deepExtend(origin) {
2028
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2029
- var mode = arguments.length > 2 ? arguments[2] : undefined;
2030
- var isArr = false;
2031
-
2032
- for (var key in target) {
2033
- if (Object.prototype.hasOwnProperty.call(target, key)) {
2034
- var clone = target[key];
2035
-
2036
- if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
2037
- var nst = origin[key] === undefined;
2038
-
2039
- if (isArr) {
2040
- isArr = false;
2041
- nst && $set(origin, key, []);
2042
- } else if (clone._clone && mode !== undefined) {
2043
- if (mode) {
2044
- clone = clone.getRule();
2045
- nst && $set(origin, key, {});
2046
- } else {
2047
- $set(origin, key, clone._clone());
2048
- continue;
2049
- }
2050
- } else {
2051
- nst && $set(origin, key, {});
2052
- }
2053
-
2054
- origin[key] = deepExtend(origin[key], clone, mode);
2055
- } else {
2056
- $set(origin, key, clone);
2057
-
2058
- if (!is.Undef(clone)) {
2059
- if (clone.__json !== undefined) {
2060
- origin[key].__json = clone.__json;
2061
- }
2062
-
2063
- if (clone.__origin !== undefined) {
2064
- origin[key].__origin = clone.__origin;
2065
- }
2066
- }
2067
- }
2068
- }
2069
- }
2070
-
2071
- return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
2072
- return !v || !v.__ctrl;
2073
- }) : origin;
2074
- }
2075
- function deepCopy(value) {
2076
- return deepExtend({}, {
2077
- value: value
2078
- }).value;
2079
- }
2080
-
2081
2113
  var PREFIX = '[[FORM-CREATE-PREFIX-';
2082
2114
  var SUFFIX = '-FORM-CREATE-SUFFIX]]';
2083
2115
  var $T = '$FN:';
@@ -2091,7 +2123,7 @@
2091
2123
  return val;
2092
2124
  }
2093
2125
 
2094
- if (hasProperty(val, '__json')) {
2126
+ if (val.__json) {
2095
2127
  return val.__json;
2096
2128
  }
2097
2129
 
@@ -2202,39 +2234,6 @@
2202
2234
  return def;
2203
2235
  }
2204
2236
 
2205
- function toString(val) {
2206
- return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2207
- }
2208
-
2209
- function toLine(name) {
2210
- var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2211
- if (line.indexOf('-') === 0) line = line.substr(1);
2212
- return line;
2213
- }
2214
-
2215
- var id = 0;
2216
- function uniqueId() {
2217
- return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2218
- }
2219
-
2220
- function deepSet(data, idx, val) {
2221
- var _data = data,
2222
- to;
2223
- (idx || '').split('.').forEach(function (v) {
2224
- if (to) {
2225
- if (!_data[to] || _typeof(_data[to]) != 'object') {
2226
- _data[to] = {};
2227
- }
2228
-
2229
- _data = _data[to];
2230
- }
2231
-
2232
- to = v;
2233
- });
2234
- _data[to] = val;
2235
- return _data;
2236
- }
2237
-
2238
2237
  function baseRule() {
2239
2238
  return {
2240
2239
  props: {},
@@ -2484,7 +2483,7 @@
2484
2483
  disabled: function disabled(_disabled, fields) {
2485
2484
  tidyFields(fields).forEach(function (field) {
2486
2485
  h.getCtxs(field).forEach(function (ctx) {
2487
- $set(ctx.rule.props, 'disabled', !!_disabled);
2486
+ ctx.rule.props && $set(ctx.rule.props, 'disabled', !!_disabled);
2488
2487
  });
2489
2488
  });
2490
2489
  h.refresh();
@@ -2756,6 +2755,39 @@
2756
2755
  return str.replace(str[0], str[0].toLowerCase());
2757
2756
  }
2758
2757
 
2758
+ function toString(val) {
2759
+ return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2760
+ }
2761
+
2762
+ function toLine(name) {
2763
+ var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2764
+ if (line.indexOf('-') === 0) line = line.substr(1);
2765
+ return line;
2766
+ }
2767
+
2768
+ var id = 0;
2769
+ function uniqueId() {
2770
+ return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2771
+ }
2772
+
2773
+ function deepSet(data, idx, val) {
2774
+ var _data = data,
2775
+ to;
2776
+ (idx || '').split('.').forEach(function (v) {
2777
+ if (to) {
2778
+ if (!_data[to] || _typeof(_data[to]) != 'object') {
2779
+ _data[to] = {};
2780
+ }
2781
+
2782
+ _data = _data[to];
2783
+ }
2784
+
2785
+ to = v;
2786
+ });
2787
+ _data[to] = val;
2788
+ return _data;
2789
+ }
2790
+
2759
2791
  function useRender(Render) {
2760
2792
  extend(Render.prototype, {
2761
2793
  initRender: function initRender() {
@@ -2776,6 +2808,23 @@
2776
2808
  clearOrgChildren: function clearOrgChildren() {
2777
2809
  this.orgChildren = {};
2778
2810
  },
2811
+ getTypeSlot: function getTypeSlot(type) {
2812
+ var name = 'type-' + toLine(type);
2813
+
2814
+ var _fn = function _fn(vm) {
2815
+ if (vm) {
2816
+ var slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];
2817
+
2818
+ if (slot) {
2819
+ return slot;
2820
+ }
2821
+
2822
+ return _fn(vm.$pfc);
2823
+ }
2824
+ };
2825
+
2826
+ return _fn(this.vm);
2827
+ },
2779
2828
  render: function render() {
2780
2829
  var _this = this;
2781
2830
 
@@ -2971,10 +3020,10 @@
2971
3020
  children = this.renderChildren(ctx);
2972
3021
  }
2973
3022
 
2974
- var slot = 'type-' + toLine(ctx.type);
3023
+ var slot = this.getTypeSlot(ctx.type);
2975
3024
 
2976
- if (this.vm.$scopedSlots[slot]) {
2977
- vn = this.vm.$scopedSlots[slot]({
3025
+ if (slot) {
3026
+ vn = slot({
2978
3027
  rule: rule,
2979
3028
  prop: prop,
2980
3029
  preview: preview,
@@ -3101,15 +3150,13 @@
3101
3150
  }];
3102
3151
 
3103
3152
  if (!custom && ctx.input) {
3104
- props.push({
3105
- model: {
3106
- value: this.$handle.getFormData(ctx),
3107
- callback: function callback(value) {
3108
- _this8.onInput(ctx, value);
3109
- },
3110
- expression: "formData.".concat(ctx.id)
3111
- }
3112
- });
3153
+ ctx.prop.model = {
3154
+ value: this.$handle.getFormData(ctx),
3155
+ callback: function callback(value) {
3156
+ _this8.onInput(ctx, value);
3157
+ },
3158
+ expression: "formData.".concat(ctx.id)
3159
+ };
3113
3160
  }
3114
3161
 
3115
3162
  mergeProps(props, ctx.prop);
@@ -4028,7 +4075,7 @@
4028
4075
  this.setFormData(ctx, formValue);
4029
4076
  this.syncValue();
4030
4077
  this.valueChange(ctx, value);
4031
- this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);
4078
+ this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);
4032
4079
  this.effect(ctx, 'value');
4033
4080
  },
4034
4081
  onInput: function onInput(ctx, value) {
@@ -4039,7 +4086,7 @@
4039
4086
  }
4040
4087
  },
4041
4088
  setFormData: function setFormData(ctx, value) {
4042
- $set(this.formData, ctx.id, value);
4089
+ $set(this.formData, ctx.id, value === null ? undefined : value);
4043
4090
  },
4044
4091
  getFormData: function getFormData(ctx) {
4045
4092
  return this.formData[ctx.id];
@@ -4134,10 +4181,10 @@
4134
4181
  this.vm._updateValue(_objectSpread2({}, this.form));
4135
4182
  },
4136
4183
  isChange: function isChange(ctx, value) {
4137
- return JSON.stringify(ctx.rule.value) !== JSON.stringify(value);
4184
+ return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value, strFn);
4138
4185
  },
4139
4186
  isQuote: function isQuote(ctx, value) {
4140
- return value === ctx.rule.value || is.Object(value) || Array.isArray(value) || is.Function(value);
4187
+ return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
4141
4188
  },
4142
4189
  refreshUpdate: function refreshUpdate(ctx, val) {
4143
4190
  var _this4 = this;
@@ -4186,6 +4233,10 @@
4186
4233
  });
4187
4234
  }
4188
4235
 
4236
+ function strFn(key, val) {
4237
+ return typeof val === 'function' ? '' + val : val;
4238
+ }
4239
+
4189
4240
  function toEmpty(obj) {
4190
4241
  Object.keys(obj).forEach(function (k) {
4191
4242
  return delete obj[k];
@@ -4289,7 +4340,7 @@
4289
4340
  var vm = this.vm;
4290
4341
  var none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];
4291
4342
  Object.keys(ctx.rule).filter(function (k) {
4292
- return none.indexOf(k) === -1;
4343
+ return k[0] !== '_' && k[0] !== '$' && none.indexOf(k) === -1;
4293
4344
  }).forEach(function (key) {
4294
4345
  var flag = key === 'children';
4295
4346
  ctx.watch.push(vm.$watch(function () {
@@ -4474,10 +4525,21 @@
4474
4525
  var _this3 = this;
4475
4526
 
4476
4527
  var vm = this.vm;
4528
+ var effect = {};
4477
4529
  Object.keys(ctx.rule.effect || {}).forEach(function (k) {
4478
- ctx.watch.push(vm.$watch(function () {
4530
+ effect[k] = function () {
4479
4531
  return ctx.rule.effect[k];
4480
- }, function (n) {
4532
+ };
4533
+ });
4534
+ Object.keys(ctx.rule).forEach(function (k) {
4535
+ if (k[0] === '$') {
4536
+ effect[k.substr(1)] = function () {
4537
+ return ctx.rule[k];
4538
+ };
4539
+ }
4540
+ });
4541
+ Object.keys(effect || {}).forEach(function (k) {
4542
+ ctx.watch.push(vm.$watch(effect[k], function (n) {
4481
4543
  _this3.effect(ctx, 'watch', _defineProperty({}, k, n));
4482
4544
  }, {
4483
4545
  deep: true
@@ -4501,7 +4563,12 @@
4501
4563
  }, event);
4502
4564
  },
4503
4565
  getEffect: function getEffect(rule, name) {
4504
- if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];else return undefined;
4566
+ if (hasProperty(rule, '$' + name)) {
4567
+ return rule['$' + name];
4568
+ }
4569
+
4570
+ if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];
4571
+ return undefined;
4505
4572
  },
4506
4573
  emitEffect: function emitEffect(_ref, event, append) {
4507
4574
  var _this4 = this;
@@ -4512,7 +4579,13 @@
4512
4579
  type = _ref.type,
4513
4580
  custom = _ref.custom;
4514
4581
  if (!type || type === 'fcFragment') return;
4515
- var effect = custom ? custom : rule.effect || {};
4582
+ var effect = custom ? custom : Object.keys(rule).reduce(function (i, k) {
4583
+ if (k[0] === '$') {
4584
+ i[k.substr(1)] = rule[k];
4585
+ }
4586
+
4587
+ return i;
4588
+ }, _objectSpread2({}, rule.effect || {}));
4516
4589
  Object.keys(effect).forEach(function (attr) {
4517
4590
  var p = _this4.providers[attr];
4518
4591
  if (!p || p.input && !input) return;
@@ -4856,6 +4929,42 @@
4856
4929
  }
4857
4930
  }
4858
4931
  };
4932
+ var $required = {
4933
+ name: 'required',
4934
+ load: function load(inject, rule) {
4935
+ var val = parseVa(inject.getValue());
4936
+
4937
+ var validate = _objectSpread2(_objectSpread2({}, val), {}, {
4938
+ required: true,
4939
+ validator: function validator(_, v, c) {
4940
+ is.empty(v) ? c(validate.message) : c();
4941
+ }
4942
+ });
4943
+
4944
+ if (!validate.message) {
4945
+ validate.message = rule.title + ' is required';
4946
+ }
4947
+
4948
+ inject.getProp().validate = [validate];
4949
+ },
4950
+ watch: function watch() {
4951
+ $required.load.apply($required, arguments);
4952
+ }
4953
+ };
4954
+
4955
+ function parseVa(val) {
4956
+ if (is.Boolean(val)) {
4957
+ return {};
4958
+ } else if (is.String(val)) {
4959
+ return {
4960
+ message: val
4961
+ };
4962
+ } else if (!is.Object(val)) {
4963
+ return {};
4964
+ } else {
4965
+ return val;
4966
+ }
4967
+ }
4859
4968
 
4860
4969
  function parseOpt(option) {
4861
4970
  if (is.String(option)) {
@@ -4926,6 +5035,31 @@
4926
5035
  return true;
4927
5036
  }
4928
5037
 
5038
+ var $provider = {
5039
+ fetch: $fetch,
5040
+ required: $required
5041
+ };
5042
+
5043
+ var name = 'html';
5044
+ var html = {
5045
+ name: name,
5046
+ loadChildren: false,
5047
+ render: function render(children, ctx) {
5048
+ if (!ctx.prop.domProps) ctx.prop.domProps = {};
5049
+ ctx.prop.domProps.innerHTML = children;
5050
+ return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);
5051
+ },
5052
+ renderChildren: function renderChildren(ctx) {
5053
+ if (Array.isArray(ctx.rule.children)) {
5054
+ return ctx.rule.children.filter(function (v) {
5055
+ return is.String(v);
5056
+ }).join('');
5057
+ }
5058
+
5059
+ return '';
5060
+ }
5061
+ };
5062
+
4929
5063
  var _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;
4930
5064
 
4931
5065
  function _parseProp(name, id) {
@@ -4981,17 +5115,19 @@
4981
5115
  arrayAttrs.push.apply(arrayAttrs, _toConsumableArray(array));
4982
5116
  normalAttrs.push.apply(normalAttrs, _toConsumableArray(normal));
4983
5117
  appendProto([].concat(_toConsumableArray(key), _toConsumableArray(array), _toConsumableArray(normal)));
4984
- } //todo 表单嵌套
5118
+ }
4985
5119
 
5120
+ var id$1 = 1;
5121
+ var instance = {}; //todo 表单嵌套
4986
5122
 
4987
5123
  function FormCreateFactory(config) {
4988
5124
  var components = _defineProperty({}, fragment.name, fragment);
4989
5125
 
4990
5126
  var parsers = {};
4991
5127
  var directives = {};
4992
- var providers = {
4993
- fetch: $fetch
4994
- };
5128
+
5129
+ var providers = _objectSpread2({}, $provider);
5130
+
4995
5131
  var maker = makerFactory();
4996
5132
  var globalConfig = {
4997
5133
  global: {}
@@ -5000,6 +5136,10 @@
5000
5136
  var CreateNode = CreateNodeFactory();
5001
5137
  exportAttrs(config.attrs || {});
5002
5138
 
5139
+ function getApi(name) {
5140
+ return instance[name];
5141
+ }
5142
+
5003
5143
  function directive() {
5004
5144
  var data = nameProp.apply(void 0, arguments);
5005
5145
  if (data.id && data.prop) directives[data.id] = data.prop;
@@ -5072,18 +5212,35 @@
5072
5212
  return _this.api();
5073
5213
  }
5074
5214
 
5075
- function factory() {
5076
- return FormCreateFactory(config);
5215
+ function factory(inherit) {
5216
+ var _config = _objectSpread2({}, config);
5217
+
5218
+ if (inherit) {
5219
+ _config.inherit = {
5220
+ components: components,
5221
+ parsers: parsers,
5222
+ directives: directives,
5223
+ providers: providers,
5224
+ maker: maker,
5225
+ data: data
5226
+ };
5227
+ } else {
5228
+ delete _config.inherit;
5229
+ }
5230
+
5231
+ return FormCreateFactory(_config);
5077
5232
  }
5078
5233
 
5079
5234
  function FormCreate(vm, rules, options) {
5080
5235
  extend(this, {
5236
+ id: id$1++,
5081
5237
  vm: vm,
5082
5238
  create: create,
5083
5239
  manager: createManager(config.manager),
5084
5240
  parsers: parsers,
5085
5241
  providers: providers,
5086
5242
  rules: Array.isArray(rules) ? rules : [],
5243
+ name: vm.$options.propsData.name,
5087
5244
  prop: {
5088
5245
  components: components,
5089
5246
  directives: directives
@@ -5097,6 +5254,10 @@
5097
5254
  });
5098
5255
  this.init();
5099
5256
  this.initOptions(options || {});
5257
+
5258
+ if (this.name) {
5259
+ instance[this.name] = this.api();
5260
+ }
5100
5261
  }
5101
5262
 
5102
5263
  extend(FormCreate.prototype, {
@@ -5132,6 +5293,10 @@
5132
5293
  vm.destroyed = true;
5133
5294
  _this2.unwatch && _this2.unwatch();
5134
5295
  h.reloadRule([]);
5296
+
5297
+ if (_this2.name) {
5298
+ delete instance[_this2.name];
5299
+ }
5135
5300
  });
5136
5301
  vm.$on('hook:updated', function () {
5137
5302
  h.bindNextTick(function () {
@@ -5209,6 +5374,7 @@
5209
5374
  parseFn: parseFn,
5210
5375
  parseJson: parseJson,
5211
5376
  toJson: toJson,
5377
+ getApi: getApi,
5212
5378
  init: function init(rules) {
5213
5379
  var _opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5214
5380
 
@@ -5262,7 +5428,19 @@
5262
5428
  CreateNode.use({
5263
5429
  fragment: 'fcFragment'
5264
5430
  });
5431
+ parser(html);
5265
5432
  if (config.install) create.use(config);
5433
+
5434
+ if (config.inherit) {
5435
+ var inherit = config.inherit;
5436
+ inherit.components && extend(components, inherit.components);
5437
+ inherit.parsers && extend(parsers, inherit.parsers);
5438
+ inherit.directives && extend(directives, inherit.directives);
5439
+ inherit.providers && extend(providers, inherit.providers);
5440
+ inherit.maker && extend(maker, inherit.maker);
5441
+ inherit.data && extend(data, inherit.data);
5442
+ }
5443
+
5266
5444
  return create;
5267
5445
  }
5268
5446
 
@@ -5277,12 +5455,12 @@
5277
5455
  datetimerange: 'yyyy-MM-dd HH:mm:ss',
5278
5456
  year: 'yyyy'
5279
5457
  };
5280
- var name = 'datePicker';
5458
+ var name$1 = 'datePicker';
5281
5459
  var datePicker = {
5282
- name: name,
5460
+ name: name$1,
5283
5461
  maker: function () {
5284
5462
  return ['year', 'month', 'date', 'dates', 'week', 'datetime', 'datetimeRange', 'dateRange', 'monthRange'].reduce(function (initial, type) {
5285
- initial[type] = creatorFactory(name, {
5463
+ initial[type] = creatorFactory(name$1, {
5286
5464
  type: type.toLowerCase()
5287
5465
  });
5288
5466
  return initial;
@@ -5297,28 +5475,28 @@
5297
5475
  }
5298
5476
  };
5299
5477
 
5300
- var name$1 = 'hidden';
5478
+ var name$2 = 'hidden';
5301
5479
  var hidden = {
5302
- name: name$1,
5303
- maker: _defineProperty({}, name$1, function (field, value) {
5304
- return creatorFactory(name$1)('', field, value);
5480
+ name: name$2,
5481
+ maker: _defineProperty({}, name$2, function (field, value) {
5482
+ return creatorFactory(name$2)('', field, value);
5305
5483
  }),
5306
5484
  render: function render() {
5307
5485
  return [];
5308
5486
  }
5309
5487
  };
5310
5488
 
5311
- var name$2 = 'input';
5489
+ var name$3 = 'input';
5312
5490
  var input = {
5313
- name: name$2,
5491
+ name: name$3,
5314
5492
  maker: function () {
5315
5493
  var maker = ['password', 'url', 'email', 'text', 'textarea'].reduce(function (maker, type) {
5316
- maker[type] = creatorFactory(name$2, {
5494
+ maker[type] = creatorFactory(name$3, {
5317
5495
  type: type
5318
5496
  });
5319
5497
  return maker;
5320
5498
  }, {});
5321
- maker.idate = creatorFactory(name$2, {
5499
+ maker.idate = creatorFactory(name$3, {
5322
5500
  type: 'date'
5323
5501
  });
5324
5502
  return maker;
@@ -5332,11 +5510,11 @@
5332
5510
  }
5333
5511
  };
5334
5512
 
5335
- var name$3 = 'slider';
5513
+ var name$4 = 'slider';
5336
5514
  var slider = {
5337
- name: name$3,
5515
+ name: name$4,
5338
5516
  maker: {
5339
- sliderRange: creatorFactory(name$3, {
5517
+ sliderRange: creatorFactory(name$4, {
5340
5518
  range: true
5341
5519
  })
5342
5520
  },
@@ -5356,14 +5534,14 @@
5356
5534
  }
5357
5535
  };
5358
5536
 
5359
- var name$4 = 'timePicker';
5537
+ var name$5 = 'timePicker';
5360
5538
  var timePicker = {
5361
- name: name$4,
5539
+ name: name$5,
5362
5540
  maker: {
5363
- time: creatorFactory(name$4, function (m) {
5541
+ time: creatorFactory(name$5, function (m) {
5364
5542
  return m.props.isRange = false;
5365
5543
  }),
5366
- timeRange: creatorFactory(name$4, function (m) {
5544
+ timeRange: creatorFactory(name$5, function (m) {
5367
5545
  return m.props.isRange = true;
5368
5546
  })
5369
5547
  },
@@ -5387,9 +5565,9 @@
5387
5565
  }
5388
5566
  };
5389
5567
 
5390
- var name$5 = 'select';
5568
+ var name$6 = 'select';
5391
5569
  var select = {
5392
- name: name$5,
5570
+ name: name$6,
5393
5571
  toFormValue: function toFormValue(value, ctx) {
5394
5572
  if (ctx.prop.props.multiple && !Array.isArray(value)) {
5395
5573
  return toArray(value);
@@ -5823,7 +6001,7 @@
5823
6001
  return maker;
5824
6002
  }
5825
6003
 
5826
- var css_248z$2 = ".form-create .form-create .el-form-item {\n margin-bottom: 22px;\n}\n\n.form-create .form-create .el-form-item .el-form-item {\n margin-bottom: 0px;\n}\n\n.form-create{\n transform: rotateZ(0);\n}\n";
6004
+ var css_248z$2 = ".form-create .form-create .el-form-item {\n margin-bottom: 22px;\n}\n\n.form-create .form-create .el-form-item .el-form-item {\n margin-bottom: 0px;\n}\n";
5827
6005
  styleInject(css_248z$2);
5828
6006
 
5829
6007
  function tidyBtnProp(btn, def) {
@@ -6063,7 +6241,7 @@
6063
6241
  function elmFormCreate() {
6064
6242
  return FormCreateFactory({
6065
6243
  ui: "".concat("element-ui"),
6066
- version: "".concat("2.5.15"),
6244
+ version: "".concat("2.5.18"),
6067
6245
  manager: manager,
6068
6246
  extendApi: extendApi,
6069
6247
  install: install,