@form-create/element-ui 3.2.19 → 3.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form-create.esm.js +720 -616
- package/dist/form-create.esm.min.js +2 -2
- package/dist/form-create.js +719 -615
- package/dist/form-create.min.js +2 -2
- package/package.json +3 -3
- package/src/core/api.js +4 -3
- package/src/core/manager.js +3 -3
- package/src/core/provider.js +1 -1
package/dist/form-create.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/element-ui v3.2.
|
|
2
|
+
* @form-create/element-ui v3.2.21
|
|
3
3
|
* (c) 2018-2025 xaboy
|
|
4
4
|
* Github https://github.com/xaboy/form-create
|
|
5
5
|
* Released under the MIT License.
|
|
@@ -2165,410 +2165,122 @@
|
|
|
2165
2165
|
return str.replace(str[0], str[0].toLocaleUpperCase());
|
|
2166
2166
|
}
|
|
2167
2167
|
|
|
2168
|
-
var
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
}
|
|
2172
|
-
|
|
2173
|
-
if (vm.props.formCreateInject) {
|
|
2174
|
-
return vm.props.formCreateInject;
|
|
2175
|
-
}
|
|
2176
|
-
|
|
2177
|
-
if (vm.parent) {
|
|
2178
|
-
return _getGroupInject(vm.parent, parent);
|
|
2179
|
-
}
|
|
2180
|
-
};
|
|
2168
|
+
var normalMerge = ['props'];
|
|
2169
|
+
var toArrayMerge = ['class', 'style', 'directives'];
|
|
2170
|
+
var functionalMerge = ['on', 'hook'];
|
|
2181
2171
|
|
|
2182
|
-
function
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
components: components,
|
|
2186
|
-
directives: directives,
|
|
2187
|
-
props: {
|
|
2188
|
-
rule: {
|
|
2189
|
-
type: Array,
|
|
2190
|
-
required: true,
|
|
2191
|
-
"default": function _default() {
|
|
2192
|
-
return [];
|
|
2193
|
-
}
|
|
2194
|
-
},
|
|
2195
|
-
option: {
|
|
2196
|
-
type: Object,
|
|
2197
|
-
"default": function _default() {
|
|
2198
|
-
return {};
|
|
2199
|
-
}
|
|
2200
|
-
},
|
|
2201
|
-
extendOption: Boolean,
|
|
2202
|
-
driver: [String, Object],
|
|
2203
|
-
modelValue: Object,
|
|
2204
|
-
disabled: {
|
|
2205
|
-
type: Boolean,
|
|
2206
|
-
"default": undefined
|
|
2207
|
-
},
|
|
2208
|
-
preview: {
|
|
2209
|
-
type: Boolean,
|
|
2210
|
-
"default": undefined
|
|
2211
|
-
},
|
|
2212
|
-
index: [String, Number],
|
|
2213
|
-
api: Object,
|
|
2214
|
-
locale: [String, Object],
|
|
2215
|
-
name: String,
|
|
2216
|
-
subForm: {
|
|
2217
|
-
type: Boolean,
|
|
2218
|
-
"default": true
|
|
2219
|
-
},
|
|
2220
|
-
inFor: Boolean
|
|
2221
|
-
},
|
|
2222
|
-
emits: ['update:api', 'update:modelValue', 'mounted', 'submit', 'reset', 'change', 'emit-event', 'control', 'remove-rule', 'remove-field', 'sync', 'reload', 'repeat-field', 'update', 'validate-field-fail', 'validate-fail', 'created'],
|
|
2223
|
-
render: function render() {
|
|
2224
|
-
return this.fc.render();
|
|
2225
|
-
},
|
|
2226
|
-
setup: function setup(props) {
|
|
2227
|
-
var vm = vue.getCurrentInstance();
|
|
2228
|
-
vue.provide('parentFC', vm);
|
|
2229
|
-
var parent = vue.inject('parentFC', null);
|
|
2230
|
-
var top = parent;
|
|
2172
|
+
var mergeProps = function mergeProps(objects) {
|
|
2173
|
+
var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2174
|
+
var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
2231
2175
|
|
|
2232
|
-
|
|
2233
|
-
while (top.setupState.parent) {
|
|
2234
|
-
top = top.setupState.parent;
|
|
2235
|
-
}
|
|
2236
|
-
} else {
|
|
2237
|
-
top = vm;
|
|
2238
|
-
}
|
|
2176
|
+
var _normalMerge = [].concat(normalMerge, _toConsumableArray(opt['normal'] || []));
|
|
2239
2177
|
|
|
2240
|
-
|
|
2241
|
-
rule = _toRefs.rule,
|
|
2242
|
-
modelValue = _toRefs.modelValue,
|
|
2243
|
-
subForm = _toRefs.subForm,
|
|
2244
|
-
inFor = _toRefs.inFor;
|
|
2178
|
+
var _toArrayMerge = [].concat(toArrayMerge, _toConsumableArray(opt['array'] || []));
|
|
2245
2179
|
|
|
2246
|
-
|
|
2247
|
-
ctxInject: {},
|
|
2248
|
-
destroyed: false,
|
|
2249
|
-
isShow: true,
|
|
2250
|
-
unique: 1,
|
|
2251
|
-
renderRule: _toConsumableArray(rule.value || []),
|
|
2252
|
-
updateValue: JSON.stringify(modelValue.value || {})
|
|
2253
|
-
});
|
|
2254
|
-
var fc = new FormCreate(vm);
|
|
2255
|
-
var fapi = fc.api();
|
|
2256
|
-
var isMore = inFor.value;
|
|
2180
|
+
var _functionalMerge = [].concat(functionalMerge, _toConsumableArray(opt['functional'] || []));
|
|
2257
2181
|
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2182
|
+
var propsMerge = opt['props'] || [];
|
|
2183
|
+
return objects.reduce(function (a, b) {
|
|
2184
|
+
for (var key in b) {
|
|
2185
|
+
if (a[key]) {
|
|
2186
|
+
if (propsMerge.indexOf(key) > -1) {
|
|
2187
|
+
a[key] = mergeProps([b[key]], a[key]);
|
|
2188
|
+
} else if (_normalMerge.indexOf(key) > -1) {
|
|
2189
|
+
a[key] = _objectSpread2(_objectSpread2({}, a[key]), b[key]);
|
|
2190
|
+
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2191
|
+
var arrA = a[key] instanceof Array ? a[key] : [a[key]];
|
|
2192
|
+
var arrB = b[key] instanceof Array ? b[key] : [b[key]];
|
|
2193
|
+
a[key] = [].concat(_toConsumableArray(arrA), _toConsumableArray(arrB));
|
|
2194
|
+
} else if (_functionalMerge.indexOf(key) > -1) {
|
|
2195
|
+
for (var event in b[key]) {
|
|
2196
|
+
if (a[key][event]) {
|
|
2197
|
+
var _arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];
|
|
2261
2198
|
|
|
2262
|
-
|
|
2263
|
-
var sub;
|
|
2199
|
+
var _arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];
|
|
2264
2200
|
|
|
2265
|
-
|
|
2266
|
-
sub = toArray(_inject.getSubForm());
|
|
2267
|
-
sub.push(fapi);
|
|
2201
|
+
a[key][event] = [].concat(_toConsumableArray(_arrA), _toConsumableArray(_arrB));
|
|
2268
2202
|
} else {
|
|
2269
|
-
|
|
2203
|
+
a[key][event] = b[key][event];
|
|
2270
2204
|
}
|
|
2271
|
-
|
|
2272
|
-
_inject.subForm(sub);
|
|
2273
2205
|
}
|
|
2274
|
-
}
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
if (inject) {
|
|
2281
|
-
if (isMore) {
|
|
2282
|
-
var sub = toArray(inject.getSubForm());
|
|
2283
|
-
var idx = sub.indexOf(fapi);
|
|
2284
|
-
|
|
2285
|
-
if (idx > -1) {
|
|
2286
|
-
sub.splice(idx, 1);
|
|
2206
|
+
} else if (key === 'hook') {
|
|
2207
|
+
for (var hook in b[key]) {
|
|
2208
|
+
if (a[key][hook]) {
|
|
2209
|
+
a[key][hook] = mergeFn(a[key][hook], b[key][hook]);
|
|
2210
|
+
} else {
|
|
2211
|
+
a[key][hook] = b[key][hook];
|
|
2287
2212
|
}
|
|
2288
|
-
} else {
|
|
2289
|
-
inject.subForm();
|
|
2290
2213
|
}
|
|
2214
|
+
} else {
|
|
2215
|
+
a[key] = b[key];
|
|
2291
2216
|
}
|
|
2292
|
-
}
|
|
2217
|
+
} else {
|
|
2218
|
+
if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {
|
|
2219
|
+
a[key] = _objectSpread2({}, b[key]);
|
|
2220
|
+
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2221
|
+
a[key] = b[key] instanceof Array ? _toConsumableArray(b[key]) : _typeof(b[key]) === 'object' ? _objectSpread2({}, b[key]) : b[key];
|
|
2222
|
+
} else a[key] = b[key];
|
|
2223
|
+
}
|
|
2224
|
+
}
|
|
2293
2225
|
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
var content = '';
|
|
2298
|
-
var globalClass = props.option && props.option.globalClass || {};
|
|
2299
|
-
Object.keys(globalClass).forEach(function (k) {
|
|
2300
|
-
var subCss = '';
|
|
2301
|
-
globalClass[k].style && Object.keys(globalClass[k].style).forEach(function (key) {
|
|
2302
|
-
subCss += toLine(key) + ':' + globalClass[k].style[key] + ';';
|
|
2303
|
-
});
|
|
2226
|
+
return a;
|
|
2227
|
+
}, initial);
|
|
2228
|
+
};
|
|
2304
2229
|
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2230
|
+
var mergeFn = function mergeFn(fn1, fn2) {
|
|
2231
|
+
return function () {
|
|
2232
|
+
fn1 && fn1.apply(this, arguments);
|
|
2233
|
+
fn2 && fn2.apply(this, arguments);
|
|
2234
|
+
};
|
|
2235
|
+
};
|
|
2308
2236
|
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2237
|
+
var keyAttrs = ['type', 'slot', 'ignore', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'slotUpdate', 'computed', 'preview', 'component', 'cache', 'modelEmit'];
|
|
2238
|
+
var arrayAttrs = ['validate', 'children', 'control'];
|
|
2239
|
+
var normalAttrs = ['effect', 'deep', 'renderSlots'];
|
|
2240
|
+
function attrs() {
|
|
2241
|
+
return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
|
|
2242
|
+
}
|
|
2313
2243
|
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2244
|
+
function format(type, msg, rule) {
|
|
2245
|
+
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2246
|
+
}
|
|
2247
|
+
function err(msg, rule) {
|
|
2248
|
+
console.error(format('err', msg, rule));
|
|
2249
|
+
}
|
|
2250
|
+
function logError(e) {
|
|
2251
|
+
err(e.toString());
|
|
2252
|
+
console.error(e);
|
|
2253
|
+
}
|
|
2317
2254
|
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2255
|
+
function toCase(str) {
|
|
2256
|
+
var to = str.replace(/(-[a-z])/g, function (v) {
|
|
2257
|
+
return v.replace('-', '').toLocaleUpperCase();
|
|
2258
|
+
});
|
|
2259
|
+
return lower(to);
|
|
2260
|
+
}
|
|
2261
|
+
function lower(str) {
|
|
2262
|
+
return str.replace(str[0], str[0].toLowerCase());
|
|
2263
|
+
}
|
|
2323
2264
|
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
}, 100);
|
|
2330
|
-
var emit$form = debounce(function () {
|
|
2331
|
-
fc.bus.$emit('$loadData.$form');
|
|
2332
|
-
}, 100);
|
|
2265
|
+
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2266
|
+
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2267
|
+
function toJson(obj, space) {
|
|
2268
|
+
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2269
|
+
if (val && val._isVue === true) return undefined;
|
|
2333
2270
|
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2271
|
+
if (typeof val !== 'function') {
|
|
2272
|
+
return val;
|
|
2273
|
+
}
|
|
2337
2274
|
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
fapi.top.bus.$on('change', emit$change);
|
|
2342
|
-
}
|
|
2275
|
+
if (val.__json) {
|
|
2276
|
+
return val.__json;
|
|
2277
|
+
}
|
|
2343
2278
|
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
fapi.top.bus.$off('change', emit$change);
|
|
2350
|
-
}
|
|
2351
|
-
|
|
2352
|
-
styleEl && document.head.removeChild(styleEl);
|
|
2353
|
-
rmSubForm();
|
|
2354
|
-
data.destroyed = true;
|
|
2355
|
-
fc.unmount();
|
|
2356
|
-
});
|
|
2357
|
-
vue.onUpdated(function () {
|
|
2358
|
-
fc.updated();
|
|
2359
|
-
});
|
|
2360
|
-
vue.watch(subForm, function (n) {
|
|
2361
|
-
n ? addSubForm() : rmSubForm();
|
|
2362
|
-
}, {
|
|
2363
|
-
immediate: true
|
|
2364
|
-
});
|
|
2365
|
-
vue.watch(function () {
|
|
2366
|
-
return _toConsumableArray(rule.value);
|
|
2367
|
-
}, function (n) {
|
|
2368
|
-
if (fc.$handle.isBreakWatch() || n.length === data.renderRule.length && n.every(function (v) {
|
|
2369
|
-
return data.renderRule.indexOf(v) > -1;
|
|
2370
|
-
})) return;
|
|
2371
|
-
fc.$handle.updateAppendData();
|
|
2372
|
-
fc.$handle.reloadRule(rule.value);
|
|
2373
|
-
vm.setupState.renderRule();
|
|
2374
|
-
});
|
|
2375
|
-
vue.watch(function () {
|
|
2376
|
-
return props.option;
|
|
2377
|
-
}, function () {
|
|
2378
|
-
fc.initOptions();
|
|
2379
|
-
fapi.refresh();
|
|
2380
|
-
}, {
|
|
2381
|
-
deep: true
|
|
2382
|
-
});
|
|
2383
|
-
vue.watch(function () {
|
|
2384
|
-
return [props.disabled, props.preview];
|
|
2385
|
-
}, function () {
|
|
2386
|
-
fapi.refresh();
|
|
2387
|
-
});
|
|
2388
|
-
vue.watch(modelValue, function (n) {
|
|
2389
|
-
if (JSON.stringify(n || {}) === data.updateValue) return;
|
|
2390
|
-
|
|
2391
|
-
if (fapi.config.forceCoverValue) {
|
|
2392
|
-
fapi.coverValue(n || {});
|
|
2393
|
-
} else {
|
|
2394
|
-
fapi.setValue(n || {});
|
|
2395
|
-
}
|
|
2396
|
-
}, {
|
|
2397
|
-
deep: true,
|
|
2398
|
-
flush: 'post'
|
|
2399
|
-
});
|
|
2400
|
-
vue.watch(function () {
|
|
2401
|
-
return props.index;
|
|
2402
|
-
}, function () {
|
|
2403
|
-
fapi.coverValue({});
|
|
2404
|
-
fc.$handle.updateAppendData();
|
|
2405
|
-
vue.nextTick(function () {
|
|
2406
|
-
vue.nextTick(function () {
|
|
2407
|
-
fapi.clearValidateState();
|
|
2408
|
-
});
|
|
2409
|
-
});
|
|
2410
|
-
}, {
|
|
2411
|
-
flush: 'sync'
|
|
2412
|
-
});
|
|
2413
|
-
return _objectSpread2(_objectSpread2({
|
|
2414
|
-
fc: vue.markRaw(fc),
|
|
2415
|
-
parent: parent ? vue.markRaw(parent) : parent,
|
|
2416
|
-
top: vue.markRaw(top),
|
|
2417
|
-
fapi: vue.markRaw(fapi)
|
|
2418
|
-
}, vue.toRefs(data)), {}, {
|
|
2419
|
-
getGroupInject: function getGroupInject() {
|
|
2420
|
-
return _getGroupInject(vm, parent);
|
|
2421
|
-
},
|
|
2422
|
-
refresh: function refresh() {
|
|
2423
|
-
++data.unique;
|
|
2424
|
-
},
|
|
2425
|
-
renderRule: function renderRule() {
|
|
2426
|
-
data.renderRule = _toConsumableArray(rule.value || []);
|
|
2427
|
-
},
|
|
2428
|
-
updateValue: function updateValue(value) {
|
|
2429
|
-
if (data.destroyed) return;
|
|
2430
|
-
var json = JSON.stringify(value);
|
|
2431
|
-
|
|
2432
|
-
if (data.updateValue === json) {
|
|
2433
|
-
return;
|
|
2434
|
-
}
|
|
2435
|
-
|
|
2436
|
-
data.updateValue = json;
|
|
2437
|
-
vm.emit('update:modelValue', value);
|
|
2438
|
-
vue.nextTick(function () {
|
|
2439
|
-
emit$form();
|
|
2440
|
-
|
|
2441
|
-
if (!parent) {
|
|
2442
|
-
emit$topForm();
|
|
2443
|
-
}
|
|
2444
|
-
});
|
|
2445
|
-
}
|
|
2446
|
-
});
|
|
2447
|
-
},
|
|
2448
|
-
created: function created() {
|
|
2449
|
-
var vm = vue.getCurrentInstance();
|
|
2450
|
-
vm.emit('update:api', vm.setupState.fapi);
|
|
2451
|
-
vm.setupState.fc.init();
|
|
2452
|
-
}
|
|
2453
|
-
});
|
|
2454
|
-
}
|
|
2455
|
-
|
|
2456
|
-
var normalMerge = ['props'];
|
|
2457
|
-
var toArrayMerge = ['class', 'style', 'directives'];
|
|
2458
|
-
var functionalMerge = ['on', 'hook'];
|
|
2459
|
-
|
|
2460
|
-
var mergeProps = function mergeProps(objects) {
|
|
2461
|
-
var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2462
|
-
var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
2463
|
-
|
|
2464
|
-
var _normalMerge = [].concat(normalMerge, _toConsumableArray(opt['normal'] || []));
|
|
2465
|
-
|
|
2466
|
-
var _toArrayMerge = [].concat(toArrayMerge, _toConsumableArray(opt['array'] || []));
|
|
2467
|
-
|
|
2468
|
-
var _functionalMerge = [].concat(functionalMerge, _toConsumableArray(opt['functional'] || []));
|
|
2469
|
-
|
|
2470
|
-
var propsMerge = opt['props'] || [];
|
|
2471
|
-
return objects.reduce(function (a, b) {
|
|
2472
|
-
for (var key in b) {
|
|
2473
|
-
if (a[key]) {
|
|
2474
|
-
if (propsMerge.indexOf(key) > -1) {
|
|
2475
|
-
a[key] = mergeProps([b[key]], a[key]);
|
|
2476
|
-
} else if (_normalMerge.indexOf(key) > -1) {
|
|
2477
|
-
a[key] = _objectSpread2(_objectSpread2({}, a[key]), b[key]);
|
|
2478
|
-
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2479
|
-
var arrA = a[key] instanceof Array ? a[key] : [a[key]];
|
|
2480
|
-
var arrB = b[key] instanceof Array ? b[key] : [b[key]];
|
|
2481
|
-
a[key] = [].concat(_toConsumableArray(arrA), _toConsumableArray(arrB));
|
|
2482
|
-
} else if (_functionalMerge.indexOf(key) > -1) {
|
|
2483
|
-
for (var event in b[key]) {
|
|
2484
|
-
if (a[key][event]) {
|
|
2485
|
-
var _arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];
|
|
2486
|
-
|
|
2487
|
-
var _arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];
|
|
2488
|
-
|
|
2489
|
-
a[key][event] = [].concat(_toConsumableArray(_arrA), _toConsumableArray(_arrB));
|
|
2490
|
-
} else {
|
|
2491
|
-
a[key][event] = b[key][event];
|
|
2492
|
-
}
|
|
2493
|
-
}
|
|
2494
|
-
} else if (key === 'hook') {
|
|
2495
|
-
for (var hook in b[key]) {
|
|
2496
|
-
if (a[key][hook]) {
|
|
2497
|
-
a[key][hook] = mergeFn(a[key][hook], b[key][hook]);
|
|
2498
|
-
} else {
|
|
2499
|
-
a[key][hook] = b[key][hook];
|
|
2500
|
-
}
|
|
2501
|
-
}
|
|
2502
|
-
} else {
|
|
2503
|
-
a[key] = b[key];
|
|
2504
|
-
}
|
|
2505
|
-
} else {
|
|
2506
|
-
if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {
|
|
2507
|
-
a[key] = _objectSpread2({}, b[key]);
|
|
2508
|
-
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2509
|
-
a[key] = b[key] instanceof Array ? _toConsumableArray(b[key]) : _typeof(b[key]) === 'object' ? _objectSpread2({}, b[key]) : b[key];
|
|
2510
|
-
} else a[key] = b[key];
|
|
2511
|
-
}
|
|
2512
|
-
}
|
|
2513
|
-
|
|
2514
|
-
return a;
|
|
2515
|
-
}, initial);
|
|
2516
|
-
};
|
|
2517
|
-
|
|
2518
|
-
var mergeFn = function mergeFn(fn1, fn2) {
|
|
2519
|
-
return function () {
|
|
2520
|
-
fn1 && fn1.apply(this, arguments);
|
|
2521
|
-
fn2 && fn2.apply(this, arguments);
|
|
2522
|
-
};
|
|
2523
|
-
};
|
|
2524
|
-
|
|
2525
|
-
var keyAttrs = ['type', 'slot', 'ignore', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'slotUpdate', 'computed', 'preview', 'component', 'cache', 'modelEmit'];
|
|
2526
|
-
var arrayAttrs = ['validate', 'children', 'control'];
|
|
2527
|
-
var normalAttrs = ['effect', 'deep', 'renderSlots'];
|
|
2528
|
-
function attrs() {
|
|
2529
|
-
return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
|
|
2530
|
-
}
|
|
2531
|
-
|
|
2532
|
-
function format(type, msg, rule) {
|
|
2533
|
-
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2534
|
-
}
|
|
2535
|
-
function err(msg, rule) {
|
|
2536
|
-
console.error(format('err', msg, rule));
|
|
2537
|
-
}
|
|
2538
|
-
function logError(e) {
|
|
2539
|
-
err(e.toString());
|
|
2540
|
-
console.error(e);
|
|
2541
|
-
}
|
|
2542
|
-
|
|
2543
|
-
function toCase(str) {
|
|
2544
|
-
var to = str.replace(/(-[a-z])/g, function (v) {
|
|
2545
|
-
return v.replace('-', '').toLocaleUpperCase();
|
|
2546
|
-
});
|
|
2547
|
-
return lower(to);
|
|
2548
|
-
}
|
|
2549
|
-
function lower(str) {
|
|
2550
|
-
return str.replace(str[0], str[0].toLowerCase());
|
|
2551
|
-
}
|
|
2552
|
-
|
|
2553
|
-
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2554
|
-
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2555
|
-
function toJson(obj, space) {
|
|
2556
|
-
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2557
|
-
if (val && val._isVue === true) return undefined;
|
|
2558
|
-
|
|
2559
|
-
if (typeof val !== 'function') {
|
|
2560
|
-
return val;
|
|
2561
|
-
}
|
|
2562
|
-
|
|
2563
|
-
if (val.__json) {
|
|
2564
|
-
return val.__json;
|
|
2565
|
-
}
|
|
2566
|
-
|
|
2567
|
-
if (val.__origin) val = val.__origin;
|
|
2568
|
-
if (val.__emit) return undefined;
|
|
2569
|
-
return PREFIX + val + SUFFIX;
|
|
2570
|
-
}, space);
|
|
2571
|
-
}
|
|
2279
|
+
if (val.__origin) val = val.__origin;
|
|
2280
|
+
if (val.__emit) return undefined;
|
|
2281
|
+
return PREFIX + val + SUFFIX;
|
|
2282
|
+
}, space);
|
|
2283
|
+
}
|
|
2572
2284
|
|
|
2573
2285
|
function makeFn(fn) {
|
|
2574
2286
|
return new Function('return ' + fn)();
|
|
@@ -2745,165 +2457,463 @@
|
|
|
2745
2457
|
getSlots: function getSlots() {
|
|
2746
2458
|
var _this = this;
|
|
2747
2459
|
|
|
2748
|
-
var slots = {};
|
|
2749
|
-
Object.keys(slotBag).forEach(function (k) {
|
|
2750
|
-
slots[k] = function () {
|
|
2751
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2752
|
-
args[_key] = arguments[_key];
|
|
2460
|
+
var slots = {};
|
|
2461
|
+
Object.keys(slotBag).forEach(function (k) {
|
|
2462
|
+
slots[k] = function () {
|
|
2463
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2464
|
+
args[_key] = arguments[_key];
|
|
2465
|
+
}
|
|
2466
|
+
|
|
2467
|
+
return _this.getSlot(k, args);
|
|
2468
|
+
};
|
|
2469
|
+
});
|
|
2470
|
+
return slots;
|
|
2471
|
+
},
|
|
2472
|
+
slotLen: function slotLen(slot) {
|
|
2473
|
+
slot = slotName(slot);
|
|
2474
|
+
return slotBag[slot] ? slotBag[slot].length : 0;
|
|
2475
|
+
},
|
|
2476
|
+
mergeBag: function mergeBag(bag) {
|
|
2477
|
+
var _this2 = this;
|
|
2478
|
+
|
|
2479
|
+
if (!bag) return this;
|
|
2480
|
+
var slots = is.Function(bag.getSlots) ? bag.getSlots() : bag;
|
|
2481
|
+
|
|
2482
|
+
if (Array.isArray(bag) || vue.isVNode(bag)) {
|
|
2483
|
+
this.setSlot(undefined, function () {
|
|
2484
|
+
return bag;
|
|
2485
|
+
});
|
|
2486
|
+
} else {
|
|
2487
|
+
Object.keys(slots).forEach(function (k) {
|
|
2488
|
+
_this2.setSlot(k, slots[k]);
|
|
2489
|
+
});
|
|
2490
|
+
}
|
|
2491
|
+
|
|
2492
|
+
return this;
|
|
2493
|
+
}
|
|
2494
|
+
};
|
|
2495
|
+
}
|
|
2496
|
+
function toProps(rule) {
|
|
2497
|
+
var prop = _objectSpread2({}, rule.props || {});
|
|
2498
|
+
|
|
2499
|
+
Object.keys(rule.on || {}).forEach(function (k) {
|
|
2500
|
+
if (k.indexOf('-') > 0) {
|
|
2501
|
+
k = toCase(k);
|
|
2502
|
+
}
|
|
2503
|
+
|
|
2504
|
+
var name = "on".concat(upper(k));
|
|
2505
|
+
|
|
2506
|
+
if (Array.isArray(prop[name])) {
|
|
2507
|
+
prop[name] = [].concat(_toConsumableArray(prop[name]), [rule.on[k]]);
|
|
2508
|
+
} else if (prop[name]) {
|
|
2509
|
+
prop[name] = [prop[name], rule.on[k]];
|
|
2510
|
+
} else {
|
|
2511
|
+
prop[name] = rule.on[k];
|
|
2512
|
+
}
|
|
2513
|
+
});
|
|
2514
|
+
prop.key = rule.key;
|
|
2515
|
+
prop.ref = rule.ref;
|
|
2516
|
+
prop["class"] = rule["class"];
|
|
2517
|
+
prop.id = rule.id;
|
|
2518
|
+
prop.style = rule.style;
|
|
2519
|
+
if (prop.slot) delete prop.slot;
|
|
2520
|
+
return prop;
|
|
2521
|
+
}
|
|
2522
|
+
function setPrototypeOf(o, proto) {
|
|
2523
|
+
Object.setPrototypeOf(o, proto);
|
|
2524
|
+
return o;
|
|
2525
|
+
}
|
|
2526
|
+
|
|
2527
|
+
var changeType = function changeType(a, b) {
|
|
2528
|
+
if (typeof a === 'string') {
|
|
2529
|
+
return String(b);
|
|
2530
|
+
} else if (typeof a === 'number') {
|
|
2531
|
+
return Number(b);
|
|
2532
|
+
}
|
|
2533
|
+
|
|
2534
|
+
return b;
|
|
2535
|
+
};
|
|
2536
|
+
|
|
2537
|
+
var condition = {
|
|
2538
|
+
'==': function _(a, b) {
|
|
2539
|
+
return JSON.stringify(a) === JSON.stringify(changeType(a, b));
|
|
2540
|
+
},
|
|
2541
|
+
'!=': function _(a, b) {
|
|
2542
|
+
return !condition['=='](a, b);
|
|
2543
|
+
},
|
|
2544
|
+
'>': function _(a, b) {
|
|
2545
|
+
return a > b;
|
|
2546
|
+
},
|
|
2547
|
+
'>=': function _(a, b) {
|
|
2548
|
+
return a >= b;
|
|
2549
|
+
},
|
|
2550
|
+
'<': function _(a, b) {
|
|
2551
|
+
return a < b;
|
|
2552
|
+
},
|
|
2553
|
+
'<=': function _(a, b) {
|
|
2554
|
+
return a <= b;
|
|
2555
|
+
},
|
|
2556
|
+
on: function on(a, b) {
|
|
2557
|
+
return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;
|
|
2558
|
+
},
|
|
2559
|
+
notOn: function notOn(a, b) {
|
|
2560
|
+
return !condition.on(a, b);
|
|
2561
|
+
},
|
|
2562
|
+
"in": function _in(a, b) {
|
|
2563
|
+
return b && b.indexOf && b.indexOf(a) > -1;
|
|
2564
|
+
},
|
|
2565
|
+
notIn: function notIn(a, b) {
|
|
2566
|
+
return !condition["in"](a, b);
|
|
2567
|
+
},
|
|
2568
|
+
between: function between(a, b) {
|
|
2569
|
+
return a > b[0] && a < b[1];
|
|
2570
|
+
},
|
|
2571
|
+
notBetween: function notBetween(a, b) {
|
|
2572
|
+
return a < b[0] || a > b[1];
|
|
2573
|
+
},
|
|
2574
|
+
empty: function empty(a) {
|
|
2575
|
+
return is.empty(a);
|
|
2576
|
+
},
|
|
2577
|
+
notEmpty: function notEmpty(a) {
|
|
2578
|
+
return !is.empty(a);
|
|
2579
|
+
},
|
|
2580
|
+
pattern: function pattern(a, b) {
|
|
2581
|
+
return new RegExp(b, 'g').test(a);
|
|
2582
|
+
}
|
|
2583
|
+
};
|
|
2584
|
+
function deepGet(val, split) {
|
|
2585
|
+
(Array.isArray(split) ? split : (split || '').split('.')).forEach(function (k) {
|
|
2586
|
+
if (val != null) {
|
|
2587
|
+
val = val[k];
|
|
2588
|
+
}
|
|
2589
|
+
});
|
|
2590
|
+
return val;
|
|
2591
|
+
}
|
|
2592
|
+
function extractVar(str) {
|
|
2593
|
+
var regex = /{{\s*(.*?)\s*}}/g;
|
|
2594
|
+
var match;
|
|
2595
|
+
var matches = {};
|
|
2596
|
+
|
|
2597
|
+
while ((match = regex.exec(str)) !== null) {
|
|
2598
|
+
if (match[1]) {
|
|
2599
|
+
matches[match[1]] = true;
|
|
2600
|
+
}
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
return Object.keys(matches);
|
|
2604
|
+
}
|
|
2605
|
+
function convertFieldToConditions(field) {
|
|
2606
|
+
var parts = field.split('.');
|
|
2607
|
+
var conditions = [];
|
|
2608
|
+
var currentCondition = '';
|
|
2609
|
+
parts.forEach(function (part, index) {
|
|
2610
|
+
if (index === 0) {
|
|
2611
|
+
currentCondition = part;
|
|
2612
|
+
} else {
|
|
2613
|
+
currentCondition += '.' + part;
|
|
2614
|
+
}
|
|
2615
|
+
|
|
2616
|
+
conditions.push(currentCondition);
|
|
2617
|
+
});
|
|
2618
|
+
return conditions.join(' && ');
|
|
2619
|
+
}
|
|
2620
|
+
|
|
2621
|
+
var _getGroupInject = function getGroupInject(vm, parent) {
|
|
2622
|
+
if (!vm || vm === parent) {
|
|
2623
|
+
return;
|
|
2624
|
+
}
|
|
2625
|
+
|
|
2626
|
+
if (vm.props.formCreateInject) {
|
|
2627
|
+
return vm.props.formCreateInject;
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2630
|
+
if (vm.parent) {
|
|
2631
|
+
return _getGroupInject(vm.parent, parent);
|
|
2632
|
+
}
|
|
2633
|
+
};
|
|
2634
|
+
|
|
2635
|
+
function $FormCreate(FormCreate, components, directives) {
|
|
2636
|
+
return vue.defineComponent({
|
|
2637
|
+
name: 'FormCreate' + (FormCreate.isMobile ? 'Mobile' : ''),
|
|
2638
|
+
components: components,
|
|
2639
|
+
directives: directives,
|
|
2640
|
+
props: {
|
|
2641
|
+
rule: {
|
|
2642
|
+
type: Array,
|
|
2643
|
+
required: true,
|
|
2644
|
+
"default": function _default() {
|
|
2645
|
+
return [];
|
|
2646
|
+
}
|
|
2647
|
+
},
|
|
2648
|
+
option: {
|
|
2649
|
+
type: Object,
|
|
2650
|
+
"default": function _default() {
|
|
2651
|
+
return {};
|
|
2652
|
+
}
|
|
2653
|
+
},
|
|
2654
|
+
extendOption: Boolean,
|
|
2655
|
+
driver: [String, Object],
|
|
2656
|
+
modelValue: Object,
|
|
2657
|
+
disabled: {
|
|
2658
|
+
type: Boolean,
|
|
2659
|
+
"default": undefined
|
|
2660
|
+
},
|
|
2661
|
+
preview: {
|
|
2662
|
+
type: Boolean,
|
|
2663
|
+
"default": undefined
|
|
2664
|
+
},
|
|
2665
|
+
index: [String, Number],
|
|
2666
|
+
api: Object,
|
|
2667
|
+
locale: [String, Object],
|
|
2668
|
+
name: String,
|
|
2669
|
+
subForm: {
|
|
2670
|
+
type: Boolean,
|
|
2671
|
+
"default": true
|
|
2672
|
+
},
|
|
2673
|
+
inFor: Boolean
|
|
2674
|
+
},
|
|
2675
|
+
emits: ['update:api', 'update:modelValue', 'mounted', 'submit', 'reset', 'change', 'emit-event', 'control', 'remove-rule', 'remove-field', 'sync', 'reload', 'repeat-field', 'update', 'validate-field-fail', 'validate-fail', 'created'],
|
|
2676
|
+
render: function render() {
|
|
2677
|
+
return this.fc.render();
|
|
2678
|
+
},
|
|
2679
|
+
setup: function setup(props) {
|
|
2680
|
+
var vm = vue.getCurrentInstance();
|
|
2681
|
+
vue.provide('parentFC', vm);
|
|
2682
|
+
var parent = vue.inject('parentFC', null);
|
|
2683
|
+
var top = parent;
|
|
2684
|
+
|
|
2685
|
+
if (parent) {
|
|
2686
|
+
while (top.setupState.parent) {
|
|
2687
|
+
top = top.setupState.parent;
|
|
2688
|
+
}
|
|
2689
|
+
} else {
|
|
2690
|
+
top = vm;
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2693
|
+
var _toRefs = vue.toRefs(props),
|
|
2694
|
+
rule = _toRefs.rule,
|
|
2695
|
+
modelValue = _toRefs.modelValue,
|
|
2696
|
+
subForm = _toRefs.subForm,
|
|
2697
|
+
inFor = _toRefs.inFor;
|
|
2698
|
+
|
|
2699
|
+
var data = vue.reactive({
|
|
2700
|
+
ctxInject: {},
|
|
2701
|
+
destroyed: false,
|
|
2702
|
+
isShow: true,
|
|
2703
|
+
unique: 1,
|
|
2704
|
+
renderRule: _toConsumableArray(rule.value || []),
|
|
2705
|
+
updateValue: JSON.stringify(modelValue.value || {})
|
|
2706
|
+
});
|
|
2707
|
+
var fc = new FormCreate(vm);
|
|
2708
|
+
var fapi = fc.api();
|
|
2709
|
+
var isMore = inFor.value;
|
|
2710
|
+
|
|
2711
|
+
var addSubForm = function addSubForm() {
|
|
2712
|
+
if (parent) {
|
|
2713
|
+
var _inject = _getGroupInject(vm, parent);
|
|
2714
|
+
|
|
2715
|
+
if (_inject) {
|
|
2716
|
+
var sub;
|
|
2717
|
+
|
|
2718
|
+
if (isMore) {
|
|
2719
|
+
sub = toArray(_inject.getSubForm());
|
|
2720
|
+
sub.push(fapi);
|
|
2721
|
+
} else {
|
|
2722
|
+
sub = fapi;
|
|
2723
|
+
}
|
|
2724
|
+
|
|
2725
|
+
_inject.subForm(sub);
|
|
2726
|
+
}
|
|
2727
|
+
}
|
|
2728
|
+
};
|
|
2729
|
+
|
|
2730
|
+
var rmSubForm = function rmSubForm() {
|
|
2731
|
+
var inject = _getGroupInject(vm, parent);
|
|
2732
|
+
|
|
2733
|
+
if (inject) {
|
|
2734
|
+
if (isMore) {
|
|
2735
|
+
var sub = toArray(inject.getSubForm());
|
|
2736
|
+
var idx = sub.indexOf(fapi);
|
|
2737
|
+
|
|
2738
|
+
if (idx > -1) {
|
|
2739
|
+
sub.splice(idx, 1);
|
|
2740
|
+
}
|
|
2741
|
+
} else {
|
|
2742
|
+
inject.subForm();
|
|
2743
|
+
}
|
|
2744
|
+
}
|
|
2745
|
+
};
|
|
2746
|
+
|
|
2747
|
+
var styleEl = null;
|
|
2748
|
+
vue.onBeforeMount(function () {
|
|
2749
|
+
vue.watchEffect(function () {
|
|
2750
|
+
var content = '';
|
|
2751
|
+
var globalClass = props.option && props.option.globalClass || {};
|
|
2752
|
+
Object.keys(globalClass).forEach(function (k) {
|
|
2753
|
+
var subCss = '';
|
|
2754
|
+
globalClass[k].style && Object.keys(globalClass[k].style).forEach(function (key) {
|
|
2755
|
+
subCss += toLine(key) + ':' + globalClass[k].style[key] + ';';
|
|
2756
|
+
});
|
|
2757
|
+
|
|
2758
|
+
if (globalClass[k].content) {
|
|
2759
|
+
subCss += globalClass[k].content + ';';
|
|
2760
|
+
}
|
|
2761
|
+
|
|
2762
|
+
if (subCss) {
|
|
2763
|
+
content += ".".concat(k, "{").concat(subCss, "}");
|
|
2764
|
+
}
|
|
2765
|
+
});
|
|
2766
|
+
|
|
2767
|
+
if (props.option && props.option.style) {
|
|
2768
|
+
content += props.option.style;
|
|
2769
|
+
}
|
|
2770
|
+
|
|
2771
|
+
if (!styleEl) {
|
|
2772
|
+
styleEl = document.createElement('style');
|
|
2773
|
+
styleEl.type = 'text/css';
|
|
2774
|
+
document.head.appendChild(styleEl);
|
|
2775
|
+
}
|
|
2776
|
+
|
|
2777
|
+
styleEl.innerHTML = content || '';
|
|
2778
|
+
});
|
|
2779
|
+
});
|
|
2780
|
+
var emit$topForm = debounce(function () {
|
|
2781
|
+
fc.bus.$emit('$loadData.$topForm');
|
|
2782
|
+
}, 100);
|
|
2783
|
+
var emit$scopeForm = debounce(function () {
|
|
2784
|
+
fc.bus.$emit('$loadData.$scopeForm');
|
|
2785
|
+
}, 100);
|
|
2786
|
+
var emit$form = debounce(function () {
|
|
2787
|
+
fc.bus.$emit('$loadData.$form');
|
|
2788
|
+
}, 100);
|
|
2789
|
+
|
|
2790
|
+
var emit$change = function emit$change(field) {
|
|
2791
|
+
fc.bus.$emit('change-$form.' + field);
|
|
2792
|
+
};
|
|
2793
|
+
|
|
2794
|
+
vue.onMounted(function () {
|
|
2795
|
+
if (parent) {
|
|
2796
|
+
fapi.top.bus.$on('$loadData.$form', emit$topForm);
|
|
2797
|
+
fapi.top.bus.$on('change', emit$change);
|
|
2798
|
+
}
|
|
2799
|
+
|
|
2800
|
+
if (fapi !== fapi.scope) {
|
|
2801
|
+
fapi.scope.bus.$on('$loadData.$scopeForm', emit$scopeForm);
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2804
|
+
fc.mounted();
|
|
2805
|
+
});
|
|
2806
|
+
vue.onBeforeUnmount(function () {
|
|
2807
|
+
if (parent) {
|
|
2808
|
+
fapi.top.bus.$off('$loadData.$form', emit$topForm);
|
|
2809
|
+
fapi.top.bus.$off('change', emit$change);
|
|
2810
|
+
}
|
|
2811
|
+
|
|
2812
|
+
if (fapi !== fapi.scope) {
|
|
2813
|
+
fapi.scope.bus.$off('$loadData.$scopeForm', emit$scopeForm);
|
|
2814
|
+
}
|
|
2815
|
+
|
|
2816
|
+
styleEl && document.head.removeChild(styleEl);
|
|
2817
|
+
rmSubForm();
|
|
2818
|
+
data.destroyed = true;
|
|
2819
|
+
fc.unmount();
|
|
2820
|
+
});
|
|
2821
|
+
vue.onUpdated(function () {
|
|
2822
|
+
fc.updated();
|
|
2823
|
+
});
|
|
2824
|
+
addSubForm();
|
|
2825
|
+
vue.watch(function () {
|
|
2826
|
+
return props.option;
|
|
2827
|
+
}, function () {
|
|
2828
|
+
fc.initOptions();
|
|
2829
|
+
fapi.refresh();
|
|
2830
|
+
}, {
|
|
2831
|
+
deep: true
|
|
2832
|
+
});
|
|
2833
|
+
vue.watch(function () {
|
|
2834
|
+
return _toConsumableArray(rule.value);
|
|
2835
|
+
}, function (n) {
|
|
2836
|
+
if (fc.$handle.isBreakWatch() || n.length === data.renderRule.length && n.every(function (v) {
|
|
2837
|
+
return data.renderRule.indexOf(v) > -1;
|
|
2838
|
+
})) return;
|
|
2839
|
+
fc.$handle.updateAppendData();
|
|
2840
|
+
fc.$handle.reloadRule(rule.value);
|
|
2841
|
+
vm.setupState.renderRule();
|
|
2842
|
+
});
|
|
2843
|
+
vue.watch(function () {
|
|
2844
|
+
return [props.disabled, props.preview];
|
|
2845
|
+
}, function () {
|
|
2846
|
+
fapi.refresh();
|
|
2847
|
+
});
|
|
2848
|
+
vue.watch(modelValue, function (n) {
|
|
2849
|
+
if (toJson(n || {}) === data.updateValue) return;
|
|
2850
|
+
|
|
2851
|
+
if (fapi.config.forceCoverValue) {
|
|
2852
|
+
fapi.coverValue(n || {});
|
|
2853
|
+
} else {
|
|
2854
|
+
fapi.setValue(n || {});
|
|
2855
|
+
}
|
|
2856
|
+
}, {
|
|
2857
|
+
deep: true,
|
|
2858
|
+
flush: 'post'
|
|
2859
|
+
});
|
|
2860
|
+
vue.watch(function () {
|
|
2861
|
+
return props.index;
|
|
2862
|
+
}, function () {
|
|
2863
|
+
fapi.coverValue({});
|
|
2864
|
+
fc.$handle.updateAppendData();
|
|
2865
|
+
vue.nextTick(function () {
|
|
2866
|
+
vue.nextTick(function () {
|
|
2867
|
+
fapi.clearValidateState();
|
|
2868
|
+
});
|
|
2869
|
+
});
|
|
2870
|
+
}, {
|
|
2871
|
+
flush: 'sync'
|
|
2872
|
+
});
|
|
2873
|
+
return _objectSpread2(_objectSpread2({
|
|
2874
|
+
fc: vue.markRaw(fc),
|
|
2875
|
+
parent: parent ? vue.markRaw(parent) : parent,
|
|
2876
|
+
top: vue.markRaw(top),
|
|
2877
|
+
fapi: vue.markRaw(fapi)
|
|
2878
|
+
}, vue.toRefs(data)), {}, {
|
|
2879
|
+
getGroupInject: function getGroupInject() {
|
|
2880
|
+
return _getGroupInject(vm, parent);
|
|
2881
|
+
},
|
|
2882
|
+
refresh: function refresh() {
|
|
2883
|
+
++data.unique;
|
|
2884
|
+
},
|
|
2885
|
+
renderRule: function renderRule() {
|
|
2886
|
+
data.renderRule = _toConsumableArray(rule.value || []);
|
|
2887
|
+
},
|
|
2888
|
+
updateValue: function updateValue(value) {
|
|
2889
|
+
if (data.destroyed) return;
|
|
2890
|
+
var json = toJson(value);
|
|
2891
|
+
|
|
2892
|
+
if (data.updateValue === json) {
|
|
2893
|
+
return;
|
|
2753
2894
|
}
|
|
2754
2895
|
|
|
2755
|
-
|
|
2756
|
-
|
|
2896
|
+
data.updateValue = json;
|
|
2897
|
+
vm.emit('update:modelValue', value);
|
|
2898
|
+
vue.nextTick(function () {
|
|
2899
|
+
emit$form();
|
|
2900
|
+
|
|
2901
|
+
if (!parent) {
|
|
2902
|
+
emit$topForm();
|
|
2903
|
+
emit$scopeForm();
|
|
2904
|
+
} else if (!subForm.value) {
|
|
2905
|
+
emit$scopeForm();
|
|
2906
|
+
}
|
|
2907
|
+
});
|
|
2908
|
+
}
|
|
2757
2909
|
});
|
|
2758
|
-
return slots;
|
|
2759
|
-
},
|
|
2760
|
-
slotLen: function slotLen(slot) {
|
|
2761
|
-
slot = slotName(slot);
|
|
2762
|
-
return slotBag[slot] ? slotBag[slot].length : 0;
|
|
2763
2910
|
},
|
|
2764
|
-
|
|
2765
|
-
var
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
var slots = is.Function(bag.getSlots) ? bag.getSlots() : bag;
|
|
2769
|
-
|
|
2770
|
-
if (Array.isArray(bag) || vue.isVNode(bag)) {
|
|
2771
|
-
this.setSlot(undefined, function () {
|
|
2772
|
-
return bag;
|
|
2773
|
-
});
|
|
2774
|
-
} else {
|
|
2775
|
-
Object.keys(slots).forEach(function (k) {
|
|
2776
|
-
_this2.setSlot(k, slots[k]);
|
|
2777
|
-
});
|
|
2778
|
-
}
|
|
2779
|
-
|
|
2780
|
-
return this;
|
|
2781
|
-
}
|
|
2782
|
-
};
|
|
2783
|
-
}
|
|
2784
|
-
function toProps(rule) {
|
|
2785
|
-
var prop = _objectSpread2({}, rule.props || {});
|
|
2786
|
-
|
|
2787
|
-
Object.keys(rule.on || {}).forEach(function (k) {
|
|
2788
|
-
if (k.indexOf('-') > 0) {
|
|
2789
|
-
k = toCase(k);
|
|
2790
|
-
}
|
|
2791
|
-
|
|
2792
|
-
var name = "on".concat(upper(k));
|
|
2793
|
-
|
|
2794
|
-
if (Array.isArray(prop[name])) {
|
|
2795
|
-
prop[name] = [].concat(_toConsumableArray(prop[name]), [rule.on[k]]);
|
|
2796
|
-
} else if (prop[name]) {
|
|
2797
|
-
prop[name] = [prop[name], rule.on[k]];
|
|
2798
|
-
} else {
|
|
2799
|
-
prop[name] = rule.on[k];
|
|
2800
|
-
}
|
|
2801
|
-
});
|
|
2802
|
-
prop.key = rule.key;
|
|
2803
|
-
prop.ref = rule.ref;
|
|
2804
|
-
prop["class"] = rule["class"];
|
|
2805
|
-
prop.id = rule.id;
|
|
2806
|
-
prop.style = rule.style;
|
|
2807
|
-
if (prop.slot) delete prop.slot;
|
|
2808
|
-
return prop;
|
|
2809
|
-
}
|
|
2810
|
-
function setPrototypeOf(o, proto) {
|
|
2811
|
-
Object.setPrototypeOf(o, proto);
|
|
2812
|
-
return o;
|
|
2813
|
-
}
|
|
2814
|
-
|
|
2815
|
-
var changeType = function changeType(a, b) {
|
|
2816
|
-
if (typeof a === 'string') {
|
|
2817
|
-
return String(b);
|
|
2818
|
-
} else if (typeof a === 'number') {
|
|
2819
|
-
return Number(b);
|
|
2820
|
-
}
|
|
2821
|
-
|
|
2822
|
-
return b;
|
|
2823
|
-
};
|
|
2824
|
-
|
|
2825
|
-
var condition = {
|
|
2826
|
-
'==': function _(a, b) {
|
|
2827
|
-
return JSON.stringify(a) === JSON.stringify(changeType(a, b));
|
|
2828
|
-
},
|
|
2829
|
-
'!=': function _(a, b) {
|
|
2830
|
-
return !condition['=='](a, b);
|
|
2831
|
-
},
|
|
2832
|
-
'>': function _(a, b) {
|
|
2833
|
-
return a > b;
|
|
2834
|
-
},
|
|
2835
|
-
'>=': function _(a, b) {
|
|
2836
|
-
return a >= b;
|
|
2837
|
-
},
|
|
2838
|
-
'<': function _(a, b) {
|
|
2839
|
-
return a < b;
|
|
2840
|
-
},
|
|
2841
|
-
'<=': function _(a, b) {
|
|
2842
|
-
return a <= b;
|
|
2843
|
-
},
|
|
2844
|
-
on: function on(a, b) {
|
|
2845
|
-
return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;
|
|
2846
|
-
},
|
|
2847
|
-
notOn: function notOn(a, b) {
|
|
2848
|
-
return !condition.on(a, b);
|
|
2849
|
-
},
|
|
2850
|
-
"in": function _in(a, b) {
|
|
2851
|
-
return b && b.indexOf && b.indexOf(a) > -1;
|
|
2852
|
-
},
|
|
2853
|
-
notIn: function notIn(a, b) {
|
|
2854
|
-
return !condition["in"](a, b);
|
|
2855
|
-
},
|
|
2856
|
-
between: function between(a, b) {
|
|
2857
|
-
return a > b[0] && a < b[1];
|
|
2858
|
-
},
|
|
2859
|
-
notBetween: function notBetween(a, b) {
|
|
2860
|
-
return a < b[0] || a > b[1];
|
|
2861
|
-
},
|
|
2862
|
-
empty: function empty(a) {
|
|
2863
|
-
return is.empty(a);
|
|
2864
|
-
},
|
|
2865
|
-
notEmpty: function notEmpty(a) {
|
|
2866
|
-
return !is.empty(a);
|
|
2867
|
-
},
|
|
2868
|
-
pattern: function pattern(a, b) {
|
|
2869
|
-
return new RegExp(b, 'g').test(a);
|
|
2870
|
-
}
|
|
2871
|
-
};
|
|
2872
|
-
function deepGet(val, split) {
|
|
2873
|
-
(Array.isArray(split) ? split : (split || '').split('.')).forEach(function (k) {
|
|
2874
|
-
if (val != null) {
|
|
2875
|
-
val = val[k];
|
|
2876
|
-
}
|
|
2877
|
-
});
|
|
2878
|
-
return val;
|
|
2879
|
-
}
|
|
2880
|
-
function extractVar(str) {
|
|
2881
|
-
var regex = /{{\s*(.*?)\s*}}/g;
|
|
2882
|
-
var match;
|
|
2883
|
-
var matches = {};
|
|
2884
|
-
|
|
2885
|
-
while ((match = regex.exec(str)) !== null) {
|
|
2886
|
-
if (match[1]) {
|
|
2887
|
-
matches[match[1]] = true;
|
|
2888
|
-
}
|
|
2889
|
-
}
|
|
2890
|
-
|
|
2891
|
-
return Object.keys(matches);
|
|
2892
|
-
}
|
|
2893
|
-
function convertFieldToConditions(field) {
|
|
2894
|
-
var parts = field.split('.');
|
|
2895
|
-
var conditions = [];
|
|
2896
|
-
var currentCondition = '';
|
|
2897
|
-
parts.forEach(function (part, index) {
|
|
2898
|
-
if (index === 0) {
|
|
2899
|
-
currentCondition = part;
|
|
2900
|
-
} else {
|
|
2901
|
-
currentCondition += '.' + part;
|
|
2911
|
+
created: function created() {
|
|
2912
|
+
var vm = vue.getCurrentInstance();
|
|
2913
|
+
vm.emit('update:api', vm.setupState.fapi);
|
|
2914
|
+
vm.setupState.fc.init();
|
|
2902
2915
|
}
|
|
2903
|
-
|
|
2904
|
-
conditions.push(currentCondition);
|
|
2905
2916
|
});
|
|
2906
|
-
return conditions.join(' && ');
|
|
2907
2917
|
}
|
|
2908
2918
|
|
|
2909
2919
|
function baseRule() {
|
|
@@ -3111,8 +3121,15 @@
|
|
|
3111
3121
|
}
|
|
3112
3122
|
|
|
3113
3123
|
function props(fields, key, val) {
|
|
3114
|
-
|
|
3115
|
-
|
|
3124
|
+
if (is.Undef(fields)) {
|
|
3125
|
+
fields = Object.keys(_objectSpread2(_objectSpread2({}, h.fieldCtx), h.nameCtx));
|
|
3126
|
+
} else if (!Array.isArray(fields)) {
|
|
3127
|
+
fields = [fields];
|
|
3128
|
+
}
|
|
3129
|
+
|
|
3130
|
+
fields.forEach(function (field) {
|
|
3131
|
+
var ctxs = h.fieldCtx[field] || h.nameCtx[field];
|
|
3132
|
+
ctxs && ctxs.forEach(function (ctx) {
|
|
3116
3133
|
$set(ctx.rule, key, val);
|
|
3117
3134
|
h.$render.clearCache(ctx);
|
|
3118
3135
|
});
|
|
@@ -3130,6 +3147,14 @@
|
|
|
3130
3147
|
}
|
|
3131
3148
|
|
|
3132
3149
|
var api = {
|
|
3150
|
+
get isScope() {
|
|
3151
|
+
return h.vm.props.subForm === false;
|
|
3152
|
+
},
|
|
3153
|
+
|
|
3154
|
+
get isPreview() {
|
|
3155
|
+
return h.preview;
|
|
3156
|
+
},
|
|
3157
|
+
|
|
3133
3158
|
get config() {
|
|
3134
3159
|
return h.options;
|
|
3135
3160
|
},
|
|
@@ -3166,6 +3191,20 @@
|
|
|
3166
3191
|
return api;
|
|
3167
3192
|
},
|
|
3168
3193
|
|
|
3194
|
+
get scope() {
|
|
3195
|
+
var parent = h.vm;
|
|
3196
|
+
|
|
3197
|
+
while (parent && parent.setupState.fapi) {
|
|
3198
|
+
if (!parent.props.subForm) {
|
|
3199
|
+
return parent.setupState.fapi;
|
|
3200
|
+
} else {
|
|
3201
|
+
parent = parent.setupState.parent;
|
|
3202
|
+
}
|
|
3203
|
+
}
|
|
3204
|
+
|
|
3205
|
+
return api.top;
|
|
3206
|
+
},
|
|
3207
|
+
|
|
3169
3208
|
get children() {
|
|
3170
3209
|
return allSubForm();
|
|
3171
3210
|
},
|
|
@@ -3196,10 +3235,10 @@
|
|
|
3196
3235
|
},
|
|
3197
3236
|
|
|
3198
3237
|
formData: function formData(fields) {
|
|
3199
|
-
if (fields == null) {
|
|
3238
|
+
if (fields == null || typeof fields === 'boolean') {
|
|
3200
3239
|
var data = {};
|
|
3201
3240
|
Object.keys(h.form).forEach(function (k) {
|
|
3202
|
-
if (h.ignoreFields.indexOf(k) === -1) {
|
|
3241
|
+
if (fields === true || h.ignoreFields.indexOf(k) === -1) {
|
|
3203
3242
|
data[k] = copy(h.form[k]);
|
|
3204
3243
|
}
|
|
3205
3244
|
});
|
|
@@ -3750,7 +3789,11 @@
|
|
|
3750
3789
|
}, opt.wait == null ? 1000 : opt.wait);
|
|
3751
3790
|
},
|
|
3752
3791
|
getData: function getData(id, def) {
|
|
3753
|
-
|
|
3792
|
+
if (h.fc.get) {
|
|
3793
|
+
return h.fc.get(id, def);
|
|
3794
|
+
} else {
|
|
3795
|
+
return h.fc.getLoadData(id, def);
|
|
3796
|
+
}
|
|
3754
3797
|
},
|
|
3755
3798
|
watchData: function watchData(fn) {
|
|
3756
3799
|
return h.fc.watchLoadData(function (get, change) {
|
|
@@ -5308,7 +5351,7 @@
|
|
|
5308
5351
|
hideLst[valid ? 'push' : 'unshift'](function () {
|
|
5309
5352
|
if (method === 'disabled' || method === 'enabled') {
|
|
5310
5353
|
_this7.api.disabled(!valid, rule);
|
|
5311
|
-
} else if (method === 'display') {
|
|
5354
|
+
} else if (method === 'display' || method === 'show') {
|
|
5312
5355
|
_this7.api.display(valid, rule);
|
|
5313
5356
|
} else if (method === 'required') {
|
|
5314
5357
|
rule.forEach(function (item) {
|
|
@@ -5318,6 +5361,8 @@
|
|
|
5318
5361
|
if (!valid) {
|
|
5319
5362
|
_this7.api.clearValidateState(rule);
|
|
5320
5363
|
}
|
|
5364
|
+
} else if (method === 'if') {
|
|
5365
|
+
_this7.api.hidden(!valid, rule);
|
|
5321
5366
|
} else {
|
|
5322
5367
|
_this7.api.hidden(!valid, rule);
|
|
5323
5368
|
}
|
|
@@ -5621,7 +5666,7 @@
|
|
|
5621
5666
|
return JSON.stringify(this.getFormData(ctx), strFn) !== JSON.stringify(value, strFn);
|
|
5622
5667
|
},
|
|
5623
5668
|
isQuote: function isQuote(ctx, value) {
|
|
5624
|
-
return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
|
|
5669
|
+
return (value instanceof Function || is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
|
|
5625
5670
|
},
|
|
5626
5671
|
refreshUpdate: function refreshUpdate(ctx, val, origin, field) {
|
|
5627
5672
|
var _this5 = this;
|
|
@@ -5908,8 +5953,10 @@
|
|
|
5908
5953
|
var match = temp.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);
|
|
5909
5954
|
|
|
5910
5955
|
if (match) {
|
|
5956
|
+
var _ctx$refRule, _ctx$refRule$__$title;
|
|
5957
|
+
|
|
5911
5958
|
temp.message = _this.api.t(match[1], {
|
|
5912
|
-
title: ctx.refRule.__$title.value
|
|
5959
|
+
title: (_ctx$refRule = ctx.refRule) === null || _ctx$refRule === void 0 ? void 0 : (_ctx$refRule$__$title = _ctx$refRule.__$title) === null || _ctx$refRule$__$title === void 0 ? void 0 : _ctx$refRule$__$title.value
|
|
5913
5960
|
});
|
|
5914
5961
|
}
|
|
5915
5962
|
}
|
|
@@ -6035,7 +6082,7 @@
|
|
|
6035
6082
|
field = JSON.stringify(_this2.fc.getLoadData(one.variable) || '');
|
|
6036
6083
|
} else if (one.field) {
|
|
6037
6084
|
field = convertFieldToConditions(one.field || '');
|
|
6038
|
-
} else {
|
|
6085
|
+
} else if (!one.mode) {
|
|
6039
6086
|
return {
|
|
6040
6087
|
v: true
|
|
6041
6088
|
};
|
|
@@ -6057,7 +6104,7 @@
|
|
|
6057
6104
|
});
|
|
6058
6105
|
} else {
|
|
6059
6106
|
flag = invoke(function () {
|
|
6060
|
-
return new Function('$condition', '$val', '$form', '$group', '$rule', "with($form){with(this){with($group){ return $condition['".concat(one.condition, "'](").concat(field, ", ").concat(compare ? compare : '$val', "); }}}")).call(_this2.api.form, condition, one.value, _this2.api.top.form, group ? _this2.subRuleData[group.id] || {} : {}, ctx.rule);
|
|
6107
|
+
return new Function('$condition', '$val', '$form', '$scope', '$group', '$rule', "with($form){with($scope){with(this){with($group){ return $condition['".concat(one.condition, "'](").concat(field, ", ").concat(compare ? compare : '$val', "); }}}}")).call(_this2.api.form, condition, one.value, _this2.api.top.form, _this2.api.top === _this2.api.scope ? {} : _this2.api.scope.form, group ? _this2.subRuleData[group.id] || {} : {}, ctx.rule);
|
|
6061
6108
|
});
|
|
6062
6109
|
}
|
|
6063
6110
|
|
|
@@ -6106,6 +6153,8 @@
|
|
|
6106
6153
|
return invoke(fn, undefined);
|
|
6107
6154
|
},
|
|
6108
6155
|
computeValue: function computeValue(str, ctx, group) {
|
|
6156
|
+
var _this3 = this;
|
|
6157
|
+
|
|
6109
6158
|
var that = this;
|
|
6110
6159
|
var formulas = Object.keys(this.fc.formulas).reduce(function (obj, k) {
|
|
6111
6160
|
obj[k] = function () {
|
|
@@ -6125,34 +6174,36 @@
|
|
|
6125
6174
|
|
|
6126
6175
|
return obj;
|
|
6127
6176
|
}, {});
|
|
6128
|
-
return
|
|
6177
|
+
return invoke(function () {
|
|
6178
|
+
return new Function('$formulas', '$form', '$scope', '$group', '$rule', '$api', "with($form){with($scope){with(this){with($group){with($formulas){ return ".concat(str, " }}}}}")).call(_this3.api.form, formulas, _this3.api.top.form, _this3.api.top === _this3.api.scope ? {} : _this3.api.scope.form, group ? _this3.subRuleData[group.id] || {} : {}, ctx.rule, _this3.api);
|
|
6179
|
+
}, undefined);
|
|
6129
6180
|
},
|
|
6130
6181
|
updateChildren: function updateChildren(ctx, n, o) {
|
|
6131
|
-
var
|
|
6182
|
+
var _this4 = this;
|
|
6132
6183
|
|
|
6133
6184
|
this.deferSyncValue(function () {
|
|
6134
6185
|
o && o.forEach(function (child) {
|
|
6135
6186
|
if ((n || []).indexOf(child) === -1 && child && !is.String(child) && child.__fc__ && child.__fc__.parent === ctx) {
|
|
6136
|
-
|
|
6187
|
+
_this4.rmCtx(child.__fc__);
|
|
6137
6188
|
}
|
|
6138
6189
|
});
|
|
6139
6190
|
|
|
6140
6191
|
if (is.trueArray(n)) {
|
|
6141
|
-
|
|
6192
|
+
_this4.loadChildren(n, ctx);
|
|
6142
6193
|
|
|
6143
|
-
|
|
6194
|
+
_this4.bus.$emit('update', _this4.api);
|
|
6144
6195
|
}
|
|
6145
6196
|
});
|
|
6146
6197
|
},
|
|
6147
6198
|
rmSub: function rmSub(sub) {
|
|
6148
|
-
var
|
|
6199
|
+
var _this5 = this;
|
|
6149
6200
|
|
|
6150
6201
|
is.trueArray(sub) && sub.forEach(function (r) {
|
|
6151
|
-
r && r.__fc__ &&
|
|
6202
|
+
r && r.__fc__ && _this5.rmCtx(r.__fc__);
|
|
6152
6203
|
});
|
|
6153
6204
|
},
|
|
6154
6205
|
rmCtx: function rmCtx(ctx) {
|
|
6155
|
-
var
|
|
6206
|
+
var _this6 = this;
|
|
6156
6207
|
|
|
6157
6208
|
if (ctx.deleted) return;
|
|
6158
6209
|
var id = ctx.id,
|
|
@@ -6181,19 +6232,19 @@
|
|
|
6181
6232
|
}
|
|
6182
6233
|
|
|
6183
6234
|
this.deferSyncValue(function () {
|
|
6184
|
-
if (!
|
|
6235
|
+
if (!_this6.reloading) {
|
|
6185
6236
|
if (ctx.parser.loadChildren !== false) {
|
|
6186
6237
|
var children = ctx.getPending('children', ctx.rule.children);
|
|
6187
6238
|
|
|
6188
6239
|
if (is.trueArray(children)) {
|
|
6189
6240
|
children.forEach(function (h) {
|
|
6190
|
-
return h.__fc__ &&
|
|
6241
|
+
return h.__fc__ && _this6.rmCtx(h.__fc__);
|
|
6191
6242
|
});
|
|
6192
6243
|
}
|
|
6193
6244
|
}
|
|
6194
6245
|
|
|
6195
|
-
if (ctx.root ===
|
|
6196
|
-
|
|
6246
|
+
if (ctx.root === _this6.rules) {
|
|
6247
|
+
_this6.vm.setupState.renderRule();
|
|
6197
6248
|
}
|
|
6198
6249
|
}
|
|
6199
6250
|
}, input);
|
|
@@ -6266,8 +6317,11 @@
|
|
|
6266
6317
|
hook.forEach(function (fn) {
|
|
6267
6318
|
invoke(function () {
|
|
6268
6319
|
return fn(_objectSpread2(_objectSpread2({}, args || {}), {}, {
|
|
6320
|
+
self: ctx.rule,
|
|
6269
6321
|
rule: ctx.rule,
|
|
6270
|
-
|
|
6322
|
+
$f: _this2.api,
|
|
6323
|
+
api: _this2.api,
|
|
6324
|
+
option: _this2.vm.props.option
|
|
6271
6325
|
}));
|
|
6272
6326
|
});
|
|
6273
6327
|
});
|
|
@@ -6452,7 +6506,13 @@
|
|
|
6452
6506
|
return fc.bus;
|
|
6453
6507
|
},
|
|
6454
6508
|
preview: function preview() {
|
|
6455
|
-
|
|
6509
|
+
if (fc.vm.props.preview != null) {
|
|
6510
|
+
return fc.vm.props.preview;
|
|
6511
|
+
} else if (fc.vm.setupState.parent && fc.vm.setupState.parent.props.preview != null) {
|
|
6512
|
+
return fc.vm.setupState.parent.props.preview;
|
|
6513
|
+
}
|
|
6514
|
+
|
|
6515
|
+
return fc.options.value.preview || false;
|
|
6456
6516
|
}
|
|
6457
6517
|
});
|
|
6458
6518
|
extend(this, {
|
|
@@ -6521,10 +6581,10 @@
|
|
|
6521
6581
|
isBreakWatch: function isBreakWatch() {
|
|
6522
6582
|
return this.loading || this.noWatchFn || this.reloading;
|
|
6523
6583
|
},
|
|
6524
|
-
|
|
6584
|
+
globalBeforeFetch: function globalBeforeFetch(opt) {
|
|
6525
6585
|
var _this2 = this;
|
|
6526
6586
|
|
|
6527
|
-
return new Promise(function (resolve) {
|
|
6587
|
+
return new Promise(function (resolve, reject) {
|
|
6528
6588
|
var source = _this2.options.beforeFetch && invoke(function () {
|
|
6529
6589
|
return _this2.options.beforeFetch(opt, {
|
|
6530
6590
|
api: _this2.api
|
|
@@ -6532,11 +6592,32 @@
|
|
|
6532
6592
|
});
|
|
6533
6593
|
|
|
6534
6594
|
if (source && is.Function(source.then)) {
|
|
6535
|
-
source.then(resolve);
|
|
6595
|
+
source.then(resolve)["catch"](reject);
|
|
6536
6596
|
} else {
|
|
6537
6597
|
resolve();
|
|
6538
6598
|
}
|
|
6539
6599
|
});
|
|
6600
|
+
},
|
|
6601
|
+
beforeFetch: function beforeFetch(opt) {
|
|
6602
|
+
var _this3 = this;
|
|
6603
|
+
|
|
6604
|
+
return new Promise(function (resolve, reject) {
|
|
6605
|
+
var res = opt && opt.beforeFetch && invoke(function () {
|
|
6606
|
+
return opt.beforeFetch(opt, {
|
|
6607
|
+
api: _this3.api
|
|
6608
|
+
});
|
|
6609
|
+
});
|
|
6610
|
+
|
|
6611
|
+
if (res && is.Function(res.then)) {
|
|
6612
|
+
res.then(resolve)["catch"](reject);
|
|
6613
|
+
} else if (res === false) {
|
|
6614
|
+
reject();
|
|
6615
|
+
} else {
|
|
6616
|
+
resolve();
|
|
6617
|
+
}
|
|
6618
|
+
}).then(function () {
|
|
6619
|
+
return _this3.globalBeforeFetch(opt);
|
|
6620
|
+
})["catch"](function () {});
|
|
6540
6621
|
}
|
|
6541
6622
|
});
|
|
6542
6623
|
useInject(Handler);
|
|
@@ -6739,56 +6820,60 @@
|
|
|
6739
6820
|
name: 'loadData',
|
|
6740
6821
|
_fn: [],
|
|
6741
6822
|
loaded: function loaded(inject, rule, api) {
|
|
6742
|
-
this
|
|
6743
|
-
var attrs = toArray(inject.getValue());
|
|
6744
|
-
var unwatchs = [];
|
|
6745
|
-
attrs.forEach(function (attr) {
|
|
6746
|
-
if (attr && (attr.attr || attr.template)) {
|
|
6747
|
-
var fn = function fn(get) {
|
|
6748
|
-
var value;
|
|
6823
|
+
var _this = this;
|
|
6749
6824
|
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6825
|
+
this.deleted(inject);
|
|
6826
|
+
vue.nextTick(function () {
|
|
6827
|
+
var attrs = toArray(inject.getValue());
|
|
6828
|
+
var unwatchs = [];
|
|
6829
|
+
attrs.forEach(function (attr) {
|
|
6830
|
+
if (attr && (attr.attr || attr.template)) {
|
|
6831
|
+
var fn = function fn(get) {
|
|
6832
|
+
var value;
|
|
6833
|
+
|
|
6834
|
+
if (attr.template) {
|
|
6835
|
+
value = fc.$handle.loadStrVar(attr.template, get);
|
|
6836
|
+
} else if (attr.handler && is.Function(attr.handler)) {
|
|
6837
|
+
value = attr.handler(get, rule, api);
|
|
6838
|
+
} else {
|
|
6839
|
+
value = get(attr.attr, attr["default"]);
|
|
6840
|
+
}
|
|
6757
6841
|
|
|
6758
|
-
|
|
6759
|
-
|
|
6760
|
-
|
|
6842
|
+
if (attr.copy !== false) {
|
|
6843
|
+
value = deepCopy(value);
|
|
6844
|
+
}
|
|
6761
6845
|
|
|
6762
|
-
|
|
6846
|
+
var _rule = attr.modify ? rule : inject.getProp();
|
|
6763
6847
|
|
|
6764
|
-
|
|
6765
|
-
|
|
6766
|
-
|
|
6848
|
+
if (attr.to === 'child') {
|
|
6849
|
+
if (_rule.children) {
|
|
6850
|
+
_rule.children[0] = value;
|
|
6851
|
+
} else {
|
|
6852
|
+
_rule.children = [value];
|
|
6853
|
+
}
|
|
6767
6854
|
} else {
|
|
6768
|
-
_rule.
|
|
6855
|
+
deepSet(_rule, attr.to || 'options', value);
|
|
6769
6856
|
}
|
|
6770
|
-
} else {
|
|
6771
|
-
deepSet(_rule, attr.to || 'options', value);
|
|
6772
|
-
}
|
|
6773
6857
|
|
|
6774
|
-
|
|
6775
|
-
|
|
6858
|
+
api.sync(rule);
|
|
6859
|
+
};
|
|
6776
6860
|
|
|
6777
|
-
|
|
6778
|
-
|
|
6779
|
-
|
|
6861
|
+
var callback = function callback(get) {
|
|
6862
|
+
return fn(get);
|
|
6863
|
+
};
|
|
6780
6864
|
|
|
6781
|
-
|
|
6782
|
-
|
|
6865
|
+
var unwatch = fc.watchLoadData(callback);
|
|
6866
|
+
fn = debounce(fn, attr.wait || 300);
|
|
6783
6867
|
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6868
|
+
if (attr.watch !== false) {
|
|
6869
|
+
unwatchs.push(unwatch);
|
|
6870
|
+
} else {
|
|
6871
|
+
unwatch();
|
|
6872
|
+
}
|
|
6788
6873
|
}
|
|
6789
|
-
}
|
|
6874
|
+
});
|
|
6875
|
+
_this._fn[inject.id] = unwatchs;
|
|
6790
6876
|
});
|
|
6791
|
-
this._fn[inject.id] = unwatchs;
|
|
6792
6877
|
},
|
|
6793
6878
|
deleted: function deleted(inject) {
|
|
6794
6879
|
if (this._fn[inject.id]) {
|
|
@@ -6802,7 +6887,7 @@
|
|
|
6802
6887
|
inject.clearProp();
|
|
6803
6888
|
}
|
|
6804
6889
|
};
|
|
6805
|
-
loadData.watch = loadData.
|
|
6890
|
+
loadData.watch = loadData.loaded;
|
|
6806
6891
|
return loadData;
|
|
6807
6892
|
};
|
|
6808
6893
|
|
|
@@ -7015,7 +7100,6 @@
|
|
|
7015
7100
|
}
|
|
7016
7101
|
|
|
7017
7102
|
set(fn(body, rule, api));
|
|
7018
|
-
api.sync(rule);
|
|
7019
7103
|
},
|
|
7020
7104
|
onError: function onError(e) {
|
|
7021
7105
|
set(undefined);
|
|
@@ -7494,6 +7578,7 @@
|
|
|
7494
7578
|
components: components,
|
|
7495
7579
|
directives: directives
|
|
7496
7580
|
},
|
|
7581
|
+
get: null,
|
|
7497
7582
|
drivers: drivers,
|
|
7498
7583
|
renderDriver: null,
|
|
7499
7584
|
refreshData: refreshData,
|
|
@@ -7731,7 +7816,7 @@
|
|
|
7731
7816
|
}
|
|
7732
7817
|
});
|
|
7733
7818
|
this.unwatch.push(unwatch);
|
|
7734
|
-
return val;
|
|
7819
|
+
return deepGet(val, split);
|
|
7735
7820
|
}
|
|
7736
7821
|
}
|
|
7737
7822
|
},
|
|
@@ -7751,9 +7836,11 @@
|
|
|
7751
7836
|
var key = split.shift();
|
|
7752
7837
|
|
|
7753
7838
|
if (key === '$topForm') {
|
|
7754
|
-
val = this.$handle.api.top.formData();
|
|
7839
|
+
val = this.$handle.api.top.formData(true);
|
|
7840
|
+
} else if (key === '$scopeForm') {
|
|
7841
|
+
val = this.$handle.api.scope.formData(true);
|
|
7755
7842
|
} else if (key === '$form') {
|
|
7756
|
-
val = this.$handle.api.formData();
|
|
7843
|
+
val = this.$handle.api.formData(true);
|
|
7757
7844
|
} else if (key === '$options') {
|
|
7758
7845
|
val = this.options.value;
|
|
7759
7846
|
} else if (key === '$globalData') {
|
|
@@ -7794,9 +7881,17 @@
|
|
|
7794
7881
|
var unwatch = {};
|
|
7795
7882
|
|
|
7796
7883
|
var run = function run(flag) {
|
|
7884
|
+
if (!_this6.get) {
|
|
7885
|
+
_this6.get = get;
|
|
7886
|
+
}
|
|
7887
|
+
|
|
7797
7888
|
invoke(function () {
|
|
7798
7889
|
fn(get, flag);
|
|
7799
7890
|
});
|
|
7891
|
+
|
|
7892
|
+
if (_this6.get === get) {
|
|
7893
|
+
_this6.get = undefined;
|
|
7894
|
+
}
|
|
7800
7895
|
};
|
|
7801
7896
|
|
|
7802
7897
|
var get = function get(id, def) {
|
|
@@ -8441,7 +8536,9 @@
|
|
|
8441
8536
|
},
|
|
8442
8537
|
makeInfo: function makeInfo(rule, uni, ctx) {
|
|
8443
8538
|
var _ctx$refRule,
|
|
8539
|
+
_ctx$refRule$__$title,
|
|
8444
8540
|
_ctx$refRule2,
|
|
8541
|
+
_ctx$refRule2$__$titl,
|
|
8445
8542
|
_this5 = this;
|
|
8446
8543
|
|
|
8447
8544
|
var titleProp = _objectSpread2({}, rule.title);
|
|
@@ -8452,10 +8549,10 @@
|
|
|
8452
8549
|
var form = this.options.form;
|
|
8453
8550
|
var titleSlot = this.getSlot('title');
|
|
8454
8551
|
var children = [titleSlot ? titleSlot({
|
|
8455
|
-
title: (_ctx$refRule = ctx.refRule) === null || _ctx$refRule === void 0 ? void 0 : _ctx$refRule.__$title.value,
|
|
8552
|
+
title: (_ctx$refRule = ctx.refRule) === null || _ctx$refRule === void 0 ? void 0 : (_ctx$refRule$__$title = _ctx$refRule.__$title) === null || _ctx$refRule$__$title === void 0 ? void 0 : _ctx$refRule$__$title.value,
|
|
8456
8553
|
rule: ctx.rule,
|
|
8457
8554
|
options: this.options
|
|
8458
|
-
}) : ((_ctx$refRule2 = ctx.refRule) === null || _ctx$refRule2 === void 0 ? void 0 : _ctx$refRule2.__$title.value) + (form.labelSuffix || form['label-suffix'] || '')];
|
|
8555
|
+
}) : ((_ctx$refRule2 = ctx.refRule) === null || _ctx$refRule2 === void 0 ? void 0 : (_ctx$refRule2$__$titl = _ctx$refRule2.__$title) === null || _ctx$refRule2$__$titl === void 0 ? void 0 : _ctx$refRule2$__$titl.value) + (form.labelSuffix || form['label-suffix'] || '')];
|
|
8459
8556
|
|
|
8460
8557
|
if (!isFalse(infoProp.show) && (infoProp.info || infoProp["native"]) && !isFalse(infoProp.icon)) {
|
|
8461
8558
|
var prop = {
|
|
@@ -8471,9 +8568,9 @@
|
|
|
8471
8568
|
var field = 'content';
|
|
8472
8569
|
|
|
8473
8570
|
if (infoProp.info && !hasProperty(prop.props, field)) {
|
|
8474
|
-
var _ctx$refRule3;
|
|
8571
|
+
var _ctx$refRule3, _ctx$refRule3$__$info;
|
|
8475
8572
|
|
|
8476
|
-
prop.props[field] = (_ctx$refRule3 = ctx.refRule) === null || _ctx$refRule3 === void 0 ? void 0 : _ctx$refRule3.__$info.value;
|
|
8573
|
+
prop.props[field] = (_ctx$refRule3 = ctx.refRule) === null || _ctx$refRule3 === void 0 ? void 0 : (_ctx$refRule3$__$info = _ctx$refRule3.__$info) === null || _ctx$refRule3$__$info === void 0 ? void 0 : _ctx$refRule3$__$info.value;
|
|
8477
8574
|
}
|
|
8478
8575
|
|
|
8479
8576
|
children[infoProp.align !== 'left' ? 'unshift' : 'push'](this.$r(mergeProps([infoProp, prop]), _defineProperty({}, titleProp.slot || (isTip ? 'default' : 'reference'), function () {
|
|
@@ -8714,7 +8811,9 @@
|
|
|
8714
8811
|
return new Promise(function (resolve, reject) {
|
|
8715
8812
|
var forms = api.children;
|
|
8716
8813
|
var all = [h.$manager.validate()];
|
|
8717
|
-
forms.
|
|
8814
|
+
forms.filter(function (v) {
|
|
8815
|
+
return !v.isScope;
|
|
8816
|
+
}).forEach(function (v) {
|
|
8718
8817
|
all.push(v.validate());
|
|
8719
8818
|
});
|
|
8720
8819
|
Promise.all(all).then(function () {
|
|
@@ -8735,7 +8834,9 @@
|
|
|
8735
8834
|
if (!ctx) return;
|
|
8736
8835
|
var sub = h.subForm[ctx.id];
|
|
8737
8836
|
var all = [h.$manager.validateField(ctx.id)];
|
|
8738
|
-
toArray(sub).
|
|
8837
|
+
toArray(sub).filter(function (v) {
|
|
8838
|
+
return !v.isScope;
|
|
8839
|
+
}).forEach(function (v) {
|
|
8739
8840
|
all.push(v.validate());
|
|
8740
8841
|
});
|
|
8741
8842
|
Promise.all(all).then(function () {
|
|
@@ -8838,7 +8939,8 @@
|
|
|
8838
8939
|
},
|
|
8839
8940
|
submit: function submit(successFn, failFn) {
|
|
8840
8941
|
return new Promise(function (resolve, reject) {
|
|
8841
|
-
|
|
8942
|
+
var promise = h.options.validateOnSubmit === false ? Promise.resolve() : api.validate();
|
|
8943
|
+
promise.then(function () {
|
|
8842
8944
|
var formData = api.formData();
|
|
8843
8945
|
is.Function(successFn) && invoke(function () {
|
|
8844
8946
|
return successFn(formData, api);
|
|
@@ -8872,6 +8974,8 @@
|
|
|
8872
8974
|
inject.clearProp();
|
|
8873
8975
|
api.clearValidateState([rule.field]);
|
|
8874
8976
|
} else {
|
|
8977
|
+
var _rule$__fc__$refRule$;
|
|
8978
|
+
|
|
8875
8979
|
var validate = _objectSpread2({
|
|
8876
8980
|
required: true,
|
|
8877
8981
|
validator: function validator(_, v, call) {
|
|
@@ -8879,7 +8983,7 @@
|
|
|
8879
8983
|
}
|
|
8880
8984
|
}, val);
|
|
8881
8985
|
|
|
8882
|
-
var title = rule.__fc__.refRule.__$title
|
|
8986
|
+
var title = (_rule$__fc__$refRule$ = rule.__fc__.refRule.__$title) === null || _rule$__fc__$refRule$ === void 0 ? void 0 : _rule$__fc__$refRule$.value;
|
|
8883
8987
|
|
|
8884
8988
|
if (!validate.message) {
|
|
8885
8989
|
validate.message = api.t('required', {
|
|
@@ -8952,7 +9056,7 @@
|
|
|
8952
9056
|
function elmFormCreate() {
|
|
8953
9057
|
return FormCreateFactory({
|
|
8954
9058
|
ui: 'element-ui',
|
|
8955
|
-
version: '3.2.
|
|
9059
|
+
version: '3.2.21',
|
|
8956
9060
|
manager: manager,
|
|
8957
9061
|
extendApi: extendApi,
|
|
8958
9062
|
install: install,
|