@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.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
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.
|
|
6
6
|
*/
|
|
7
|
-
import { defineComponent, toRef, ref, watch, computed, createVNode, resolveComponent, mergeProps as mergeProps$1, openBlock, createElementBlock, createElementVNode, nextTick, markRaw, reactive, getCurrentInstance, provide, inject, toRefs, onBeforeMount, watchEffect, onMounted, onBeforeUnmount, onUpdated,
|
|
7
|
+
import { defineComponent, toRef, ref, watch, computed, createVNode, resolveComponent, mergeProps as mergeProps$1, openBlock, createElementBlock, createElementVNode, nextTick, markRaw, reactive, isVNode, getCurrentInstance, provide, inject, toRefs, onBeforeMount, watchEffect, onMounted, onBeforeUnmount, onUpdated, withDirectives, resolveDirective, createApp, h } from 'vue';
|
|
8
8
|
|
|
9
9
|
function ownKeys(object, enumerableOnly) {
|
|
10
10
|
var keys = Object.keys(object);
|
|
@@ -2161,410 +2161,122 @@ function upper(str) {
|
|
|
2161
2161
|
return str.replace(str[0], str[0].toLocaleUpperCase());
|
|
2162
2162
|
}
|
|
2163
2163
|
|
|
2164
|
-
var
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
}
|
|
2168
|
-
|
|
2169
|
-
if (vm.props.formCreateInject) {
|
|
2170
|
-
return vm.props.formCreateInject;
|
|
2171
|
-
}
|
|
2172
|
-
|
|
2173
|
-
if (vm.parent) {
|
|
2174
|
-
return _getGroupInject(vm.parent, parent);
|
|
2175
|
-
}
|
|
2176
|
-
};
|
|
2164
|
+
var normalMerge = ['props'];
|
|
2165
|
+
var toArrayMerge = ['class', 'style', 'directives'];
|
|
2166
|
+
var functionalMerge = ['on', 'hook'];
|
|
2177
2167
|
|
|
2178
|
-
function
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
components: components,
|
|
2182
|
-
directives: directives,
|
|
2183
|
-
props: {
|
|
2184
|
-
rule: {
|
|
2185
|
-
type: Array,
|
|
2186
|
-
required: true,
|
|
2187
|
-
"default": function _default() {
|
|
2188
|
-
return [];
|
|
2189
|
-
}
|
|
2190
|
-
},
|
|
2191
|
-
option: {
|
|
2192
|
-
type: Object,
|
|
2193
|
-
"default": function _default() {
|
|
2194
|
-
return {};
|
|
2195
|
-
}
|
|
2196
|
-
},
|
|
2197
|
-
extendOption: Boolean,
|
|
2198
|
-
driver: [String, Object],
|
|
2199
|
-
modelValue: Object,
|
|
2200
|
-
disabled: {
|
|
2201
|
-
type: Boolean,
|
|
2202
|
-
"default": undefined
|
|
2203
|
-
},
|
|
2204
|
-
preview: {
|
|
2205
|
-
type: Boolean,
|
|
2206
|
-
"default": undefined
|
|
2207
|
-
},
|
|
2208
|
-
index: [String, Number],
|
|
2209
|
-
api: Object,
|
|
2210
|
-
locale: [String, Object],
|
|
2211
|
-
name: String,
|
|
2212
|
-
subForm: {
|
|
2213
|
-
type: Boolean,
|
|
2214
|
-
"default": true
|
|
2215
|
-
},
|
|
2216
|
-
inFor: Boolean
|
|
2217
|
-
},
|
|
2218
|
-
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'],
|
|
2219
|
-
render: function render() {
|
|
2220
|
-
return this.fc.render();
|
|
2221
|
-
},
|
|
2222
|
-
setup: function setup(props) {
|
|
2223
|
-
var vm = getCurrentInstance();
|
|
2224
|
-
provide('parentFC', vm);
|
|
2225
|
-
var parent = inject('parentFC', null);
|
|
2226
|
-
var top = parent;
|
|
2168
|
+
var mergeProps = function mergeProps(objects) {
|
|
2169
|
+
var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2170
|
+
var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
2227
2171
|
|
|
2228
|
-
|
|
2229
|
-
while (top.setupState.parent) {
|
|
2230
|
-
top = top.setupState.parent;
|
|
2231
|
-
}
|
|
2232
|
-
} else {
|
|
2233
|
-
top = vm;
|
|
2234
|
-
}
|
|
2172
|
+
var _normalMerge = [].concat(normalMerge, _toConsumableArray(opt['normal'] || []));
|
|
2235
2173
|
|
|
2236
|
-
|
|
2237
|
-
rule = _toRefs.rule,
|
|
2238
|
-
modelValue = _toRefs.modelValue,
|
|
2239
|
-
subForm = _toRefs.subForm,
|
|
2240
|
-
inFor = _toRefs.inFor;
|
|
2174
|
+
var _toArrayMerge = [].concat(toArrayMerge, _toConsumableArray(opt['array'] || []));
|
|
2241
2175
|
|
|
2242
|
-
|
|
2243
|
-
ctxInject: {},
|
|
2244
|
-
destroyed: false,
|
|
2245
|
-
isShow: true,
|
|
2246
|
-
unique: 1,
|
|
2247
|
-
renderRule: _toConsumableArray(rule.value || []),
|
|
2248
|
-
updateValue: JSON.stringify(modelValue.value || {})
|
|
2249
|
-
});
|
|
2250
|
-
var fc = new FormCreate(vm);
|
|
2251
|
-
var fapi = fc.api();
|
|
2252
|
-
var isMore = inFor.value;
|
|
2176
|
+
var _functionalMerge = [].concat(functionalMerge, _toConsumableArray(opt['functional'] || []));
|
|
2253
2177
|
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2178
|
+
var propsMerge = opt['props'] || [];
|
|
2179
|
+
return objects.reduce(function (a, b) {
|
|
2180
|
+
for (var key in b) {
|
|
2181
|
+
if (a[key]) {
|
|
2182
|
+
if (propsMerge.indexOf(key) > -1) {
|
|
2183
|
+
a[key] = mergeProps([b[key]], a[key]);
|
|
2184
|
+
} else if (_normalMerge.indexOf(key) > -1) {
|
|
2185
|
+
a[key] = _objectSpread2(_objectSpread2({}, a[key]), b[key]);
|
|
2186
|
+
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2187
|
+
var arrA = a[key] instanceof Array ? a[key] : [a[key]];
|
|
2188
|
+
var arrB = b[key] instanceof Array ? b[key] : [b[key]];
|
|
2189
|
+
a[key] = [].concat(_toConsumableArray(arrA), _toConsumableArray(arrB));
|
|
2190
|
+
} else if (_functionalMerge.indexOf(key) > -1) {
|
|
2191
|
+
for (var event in b[key]) {
|
|
2192
|
+
if (a[key][event]) {
|
|
2193
|
+
var _arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];
|
|
2257
2194
|
|
|
2258
|
-
|
|
2259
|
-
var sub;
|
|
2195
|
+
var _arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];
|
|
2260
2196
|
|
|
2261
|
-
|
|
2262
|
-
sub = toArray(_inject.getSubForm());
|
|
2263
|
-
sub.push(fapi);
|
|
2197
|
+
a[key][event] = [].concat(_toConsumableArray(_arrA), _toConsumableArray(_arrB));
|
|
2264
2198
|
} else {
|
|
2265
|
-
|
|
2199
|
+
a[key][event] = b[key][event];
|
|
2266
2200
|
}
|
|
2267
|
-
|
|
2268
|
-
_inject.subForm(sub);
|
|
2269
2201
|
}
|
|
2270
|
-
}
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
if (inject) {
|
|
2277
|
-
if (isMore) {
|
|
2278
|
-
var sub = toArray(inject.getSubForm());
|
|
2279
|
-
var idx = sub.indexOf(fapi);
|
|
2280
|
-
|
|
2281
|
-
if (idx > -1) {
|
|
2282
|
-
sub.splice(idx, 1);
|
|
2202
|
+
} else if (key === 'hook') {
|
|
2203
|
+
for (var hook in b[key]) {
|
|
2204
|
+
if (a[key][hook]) {
|
|
2205
|
+
a[key][hook] = mergeFn(a[key][hook], b[key][hook]);
|
|
2206
|
+
} else {
|
|
2207
|
+
a[key][hook] = b[key][hook];
|
|
2283
2208
|
}
|
|
2284
|
-
} else {
|
|
2285
|
-
inject.subForm();
|
|
2286
2209
|
}
|
|
2210
|
+
} else {
|
|
2211
|
+
a[key] = b[key];
|
|
2287
2212
|
}
|
|
2288
|
-
}
|
|
2213
|
+
} else {
|
|
2214
|
+
if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {
|
|
2215
|
+
a[key] = _objectSpread2({}, b[key]);
|
|
2216
|
+
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2217
|
+
a[key] = b[key] instanceof Array ? _toConsumableArray(b[key]) : _typeof(b[key]) === 'object' ? _objectSpread2({}, b[key]) : b[key];
|
|
2218
|
+
} else a[key] = b[key];
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2289
2221
|
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
var content = '';
|
|
2294
|
-
var globalClass = props.option && props.option.globalClass || {};
|
|
2295
|
-
Object.keys(globalClass).forEach(function (k) {
|
|
2296
|
-
var subCss = '';
|
|
2297
|
-
globalClass[k].style && Object.keys(globalClass[k].style).forEach(function (key) {
|
|
2298
|
-
subCss += toLine(key) + ':' + globalClass[k].style[key] + ';';
|
|
2299
|
-
});
|
|
2222
|
+
return a;
|
|
2223
|
+
}, initial);
|
|
2224
|
+
};
|
|
2300
2225
|
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2226
|
+
var mergeFn = function mergeFn(fn1, fn2) {
|
|
2227
|
+
return function () {
|
|
2228
|
+
fn1 && fn1.apply(this, arguments);
|
|
2229
|
+
fn2 && fn2.apply(this, arguments);
|
|
2230
|
+
};
|
|
2231
|
+
};
|
|
2304
2232
|
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2233
|
+
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'];
|
|
2234
|
+
var arrayAttrs = ['validate', 'children', 'control'];
|
|
2235
|
+
var normalAttrs = ['effect', 'deep', 'renderSlots'];
|
|
2236
|
+
function attrs() {
|
|
2237
|
+
return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
|
|
2238
|
+
}
|
|
2309
2239
|
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2240
|
+
function format(type, msg, rule) {
|
|
2241
|
+
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2242
|
+
}
|
|
2243
|
+
function err(msg, rule) {
|
|
2244
|
+
console.error(format('err', msg, rule));
|
|
2245
|
+
}
|
|
2246
|
+
function logError(e) {
|
|
2247
|
+
err(e.toString());
|
|
2248
|
+
console.error(e);
|
|
2249
|
+
}
|
|
2313
2250
|
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2251
|
+
function toCase(str) {
|
|
2252
|
+
var to = str.replace(/(-[a-z])/g, function (v) {
|
|
2253
|
+
return v.replace('-', '').toLocaleUpperCase();
|
|
2254
|
+
});
|
|
2255
|
+
return lower(to);
|
|
2256
|
+
}
|
|
2257
|
+
function lower(str) {
|
|
2258
|
+
return str.replace(str[0], str[0].toLowerCase());
|
|
2259
|
+
}
|
|
2319
2260
|
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
}, 100);
|
|
2326
|
-
var emit$form = debounce(function () {
|
|
2327
|
-
fc.bus.$emit('$loadData.$form');
|
|
2328
|
-
}, 100);
|
|
2261
|
+
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2262
|
+
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2263
|
+
function toJson(obj, space) {
|
|
2264
|
+
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2265
|
+
if (val && val._isVue === true) return undefined;
|
|
2329
2266
|
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2267
|
+
if (typeof val !== 'function') {
|
|
2268
|
+
return val;
|
|
2269
|
+
}
|
|
2333
2270
|
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
fapi.top.bus.$on('change', emit$change);
|
|
2338
|
-
}
|
|
2271
|
+
if (val.__json) {
|
|
2272
|
+
return val.__json;
|
|
2273
|
+
}
|
|
2339
2274
|
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
fapi.top.bus.$off('change', emit$change);
|
|
2346
|
-
}
|
|
2347
|
-
|
|
2348
|
-
styleEl && document.head.removeChild(styleEl);
|
|
2349
|
-
rmSubForm();
|
|
2350
|
-
data.destroyed = true;
|
|
2351
|
-
fc.unmount();
|
|
2352
|
-
});
|
|
2353
|
-
onUpdated(function () {
|
|
2354
|
-
fc.updated();
|
|
2355
|
-
});
|
|
2356
|
-
watch(subForm, function (n) {
|
|
2357
|
-
n ? addSubForm() : rmSubForm();
|
|
2358
|
-
}, {
|
|
2359
|
-
immediate: true
|
|
2360
|
-
});
|
|
2361
|
-
watch(function () {
|
|
2362
|
-
return _toConsumableArray(rule.value);
|
|
2363
|
-
}, function (n) {
|
|
2364
|
-
if (fc.$handle.isBreakWatch() || n.length === data.renderRule.length && n.every(function (v) {
|
|
2365
|
-
return data.renderRule.indexOf(v) > -1;
|
|
2366
|
-
})) return;
|
|
2367
|
-
fc.$handle.updateAppendData();
|
|
2368
|
-
fc.$handle.reloadRule(rule.value);
|
|
2369
|
-
vm.setupState.renderRule();
|
|
2370
|
-
});
|
|
2371
|
-
watch(function () {
|
|
2372
|
-
return props.option;
|
|
2373
|
-
}, function () {
|
|
2374
|
-
fc.initOptions();
|
|
2375
|
-
fapi.refresh();
|
|
2376
|
-
}, {
|
|
2377
|
-
deep: true
|
|
2378
|
-
});
|
|
2379
|
-
watch(function () {
|
|
2380
|
-
return [props.disabled, props.preview];
|
|
2381
|
-
}, function () {
|
|
2382
|
-
fapi.refresh();
|
|
2383
|
-
});
|
|
2384
|
-
watch(modelValue, function (n) {
|
|
2385
|
-
if (JSON.stringify(n || {}) === data.updateValue) return;
|
|
2386
|
-
|
|
2387
|
-
if (fapi.config.forceCoverValue) {
|
|
2388
|
-
fapi.coverValue(n || {});
|
|
2389
|
-
} else {
|
|
2390
|
-
fapi.setValue(n || {});
|
|
2391
|
-
}
|
|
2392
|
-
}, {
|
|
2393
|
-
deep: true,
|
|
2394
|
-
flush: 'post'
|
|
2395
|
-
});
|
|
2396
|
-
watch(function () {
|
|
2397
|
-
return props.index;
|
|
2398
|
-
}, function () {
|
|
2399
|
-
fapi.coverValue({});
|
|
2400
|
-
fc.$handle.updateAppendData();
|
|
2401
|
-
nextTick(function () {
|
|
2402
|
-
nextTick(function () {
|
|
2403
|
-
fapi.clearValidateState();
|
|
2404
|
-
});
|
|
2405
|
-
});
|
|
2406
|
-
}, {
|
|
2407
|
-
flush: 'sync'
|
|
2408
|
-
});
|
|
2409
|
-
return _objectSpread2(_objectSpread2({
|
|
2410
|
-
fc: markRaw(fc),
|
|
2411
|
-
parent: parent ? markRaw(parent) : parent,
|
|
2412
|
-
top: markRaw(top),
|
|
2413
|
-
fapi: markRaw(fapi)
|
|
2414
|
-
}, toRefs(data)), {}, {
|
|
2415
|
-
getGroupInject: function getGroupInject() {
|
|
2416
|
-
return _getGroupInject(vm, parent);
|
|
2417
|
-
},
|
|
2418
|
-
refresh: function refresh() {
|
|
2419
|
-
++data.unique;
|
|
2420
|
-
},
|
|
2421
|
-
renderRule: function renderRule() {
|
|
2422
|
-
data.renderRule = _toConsumableArray(rule.value || []);
|
|
2423
|
-
},
|
|
2424
|
-
updateValue: function updateValue(value) {
|
|
2425
|
-
if (data.destroyed) return;
|
|
2426
|
-
var json = JSON.stringify(value);
|
|
2427
|
-
|
|
2428
|
-
if (data.updateValue === json) {
|
|
2429
|
-
return;
|
|
2430
|
-
}
|
|
2431
|
-
|
|
2432
|
-
data.updateValue = json;
|
|
2433
|
-
vm.emit('update:modelValue', value);
|
|
2434
|
-
nextTick(function () {
|
|
2435
|
-
emit$form();
|
|
2436
|
-
|
|
2437
|
-
if (!parent) {
|
|
2438
|
-
emit$topForm();
|
|
2439
|
-
}
|
|
2440
|
-
});
|
|
2441
|
-
}
|
|
2442
|
-
});
|
|
2443
|
-
},
|
|
2444
|
-
created: function created() {
|
|
2445
|
-
var vm = getCurrentInstance();
|
|
2446
|
-
vm.emit('update:api', vm.setupState.fapi);
|
|
2447
|
-
vm.setupState.fc.init();
|
|
2448
|
-
}
|
|
2449
|
-
});
|
|
2450
|
-
}
|
|
2451
|
-
|
|
2452
|
-
var normalMerge = ['props'];
|
|
2453
|
-
var toArrayMerge = ['class', 'style', 'directives'];
|
|
2454
|
-
var functionalMerge = ['on', 'hook'];
|
|
2455
|
-
|
|
2456
|
-
var mergeProps = function mergeProps(objects) {
|
|
2457
|
-
var initial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2458
|
-
var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
2459
|
-
|
|
2460
|
-
var _normalMerge = [].concat(normalMerge, _toConsumableArray(opt['normal'] || []));
|
|
2461
|
-
|
|
2462
|
-
var _toArrayMerge = [].concat(toArrayMerge, _toConsumableArray(opt['array'] || []));
|
|
2463
|
-
|
|
2464
|
-
var _functionalMerge = [].concat(functionalMerge, _toConsumableArray(opt['functional'] || []));
|
|
2465
|
-
|
|
2466
|
-
var propsMerge = opt['props'] || [];
|
|
2467
|
-
return objects.reduce(function (a, b) {
|
|
2468
|
-
for (var key in b) {
|
|
2469
|
-
if (a[key]) {
|
|
2470
|
-
if (propsMerge.indexOf(key) > -1) {
|
|
2471
|
-
a[key] = mergeProps([b[key]], a[key]);
|
|
2472
|
-
} else if (_normalMerge.indexOf(key) > -1) {
|
|
2473
|
-
a[key] = _objectSpread2(_objectSpread2({}, a[key]), b[key]);
|
|
2474
|
-
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2475
|
-
var arrA = a[key] instanceof Array ? a[key] : [a[key]];
|
|
2476
|
-
var arrB = b[key] instanceof Array ? b[key] : [b[key]];
|
|
2477
|
-
a[key] = [].concat(_toConsumableArray(arrA), _toConsumableArray(arrB));
|
|
2478
|
-
} else if (_functionalMerge.indexOf(key) > -1) {
|
|
2479
|
-
for (var event in b[key]) {
|
|
2480
|
-
if (a[key][event]) {
|
|
2481
|
-
var _arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];
|
|
2482
|
-
|
|
2483
|
-
var _arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];
|
|
2484
|
-
|
|
2485
|
-
a[key][event] = [].concat(_toConsumableArray(_arrA), _toConsumableArray(_arrB));
|
|
2486
|
-
} else {
|
|
2487
|
-
a[key][event] = b[key][event];
|
|
2488
|
-
}
|
|
2489
|
-
}
|
|
2490
|
-
} else if (key === 'hook') {
|
|
2491
|
-
for (var hook in b[key]) {
|
|
2492
|
-
if (a[key][hook]) {
|
|
2493
|
-
a[key][hook] = mergeFn(a[key][hook], b[key][hook]);
|
|
2494
|
-
} else {
|
|
2495
|
-
a[key][hook] = b[key][hook];
|
|
2496
|
-
}
|
|
2497
|
-
}
|
|
2498
|
-
} else {
|
|
2499
|
-
a[key] = b[key];
|
|
2500
|
-
}
|
|
2501
|
-
} else {
|
|
2502
|
-
if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {
|
|
2503
|
-
a[key] = _objectSpread2({}, b[key]);
|
|
2504
|
-
} else if (_toArrayMerge.indexOf(key) > -1) {
|
|
2505
|
-
a[key] = b[key] instanceof Array ? _toConsumableArray(b[key]) : _typeof(b[key]) === 'object' ? _objectSpread2({}, b[key]) : b[key];
|
|
2506
|
-
} else a[key] = b[key];
|
|
2507
|
-
}
|
|
2508
|
-
}
|
|
2509
|
-
|
|
2510
|
-
return a;
|
|
2511
|
-
}, initial);
|
|
2512
|
-
};
|
|
2513
|
-
|
|
2514
|
-
var mergeFn = function mergeFn(fn1, fn2) {
|
|
2515
|
-
return function () {
|
|
2516
|
-
fn1 && fn1.apply(this, arguments);
|
|
2517
|
-
fn2 && fn2.apply(this, arguments);
|
|
2518
|
-
};
|
|
2519
|
-
};
|
|
2520
|
-
|
|
2521
|
-
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'];
|
|
2522
|
-
var arrayAttrs = ['validate', 'children', 'control'];
|
|
2523
|
-
var normalAttrs = ['effect', 'deep', 'renderSlots'];
|
|
2524
|
-
function attrs() {
|
|
2525
|
-
return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
|
|
2526
|
-
}
|
|
2527
|
-
|
|
2528
|
-
function format(type, msg, rule) {
|
|
2529
|
-
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2530
|
-
}
|
|
2531
|
-
function err(msg, rule) {
|
|
2532
|
-
console.error(format('err', msg, rule));
|
|
2533
|
-
}
|
|
2534
|
-
function logError(e) {
|
|
2535
|
-
err(e.toString());
|
|
2536
|
-
console.error(e);
|
|
2537
|
-
}
|
|
2538
|
-
|
|
2539
|
-
function toCase(str) {
|
|
2540
|
-
var to = str.replace(/(-[a-z])/g, function (v) {
|
|
2541
|
-
return v.replace('-', '').toLocaleUpperCase();
|
|
2542
|
-
});
|
|
2543
|
-
return lower(to);
|
|
2544
|
-
}
|
|
2545
|
-
function lower(str) {
|
|
2546
|
-
return str.replace(str[0], str[0].toLowerCase());
|
|
2547
|
-
}
|
|
2548
|
-
|
|
2549
|
-
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2550
|
-
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2551
|
-
function toJson(obj, space) {
|
|
2552
|
-
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2553
|
-
if (val && val._isVue === true) return undefined;
|
|
2554
|
-
|
|
2555
|
-
if (typeof val !== 'function') {
|
|
2556
|
-
return val;
|
|
2557
|
-
}
|
|
2558
|
-
|
|
2559
|
-
if (val.__json) {
|
|
2560
|
-
return val.__json;
|
|
2561
|
-
}
|
|
2562
|
-
|
|
2563
|
-
if (val.__origin) val = val.__origin;
|
|
2564
|
-
if (val.__emit) return undefined;
|
|
2565
|
-
return PREFIX + val + SUFFIX;
|
|
2566
|
-
}, space);
|
|
2567
|
-
}
|
|
2275
|
+
if (val.__origin) val = val.__origin;
|
|
2276
|
+
if (val.__emit) return undefined;
|
|
2277
|
+
return PREFIX + val + SUFFIX;
|
|
2278
|
+
}, space);
|
|
2279
|
+
}
|
|
2568
2280
|
|
|
2569
2281
|
function makeFn(fn) {
|
|
2570
2282
|
return new Function('return ' + fn)();
|
|
@@ -2741,165 +2453,463 @@ function makeSlotBag() {
|
|
|
2741
2453
|
getSlots: function getSlots() {
|
|
2742
2454
|
var _this = this;
|
|
2743
2455
|
|
|
2744
|
-
var slots = {};
|
|
2745
|
-
Object.keys(slotBag).forEach(function (k) {
|
|
2746
|
-
slots[k] = function () {
|
|
2747
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2748
|
-
args[_key] = arguments[_key];
|
|
2456
|
+
var slots = {};
|
|
2457
|
+
Object.keys(slotBag).forEach(function (k) {
|
|
2458
|
+
slots[k] = function () {
|
|
2459
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2460
|
+
args[_key] = arguments[_key];
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2463
|
+
return _this.getSlot(k, args);
|
|
2464
|
+
};
|
|
2465
|
+
});
|
|
2466
|
+
return slots;
|
|
2467
|
+
},
|
|
2468
|
+
slotLen: function slotLen(slot) {
|
|
2469
|
+
slot = slotName(slot);
|
|
2470
|
+
return slotBag[slot] ? slotBag[slot].length : 0;
|
|
2471
|
+
},
|
|
2472
|
+
mergeBag: function mergeBag(bag) {
|
|
2473
|
+
var _this2 = this;
|
|
2474
|
+
|
|
2475
|
+
if (!bag) return this;
|
|
2476
|
+
var slots = is.Function(bag.getSlots) ? bag.getSlots() : bag;
|
|
2477
|
+
|
|
2478
|
+
if (Array.isArray(bag) || isVNode(bag)) {
|
|
2479
|
+
this.setSlot(undefined, function () {
|
|
2480
|
+
return bag;
|
|
2481
|
+
});
|
|
2482
|
+
} else {
|
|
2483
|
+
Object.keys(slots).forEach(function (k) {
|
|
2484
|
+
_this2.setSlot(k, slots[k]);
|
|
2485
|
+
});
|
|
2486
|
+
}
|
|
2487
|
+
|
|
2488
|
+
return this;
|
|
2489
|
+
}
|
|
2490
|
+
};
|
|
2491
|
+
}
|
|
2492
|
+
function toProps(rule) {
|
|
2493
|
+
var prop = _objectSpread2({}, rule.props || {});
|
|
2494
|
+
|
|
2495
|
+
Object.keys(rule.on || {}).forEach(function (k) {
|
|
2496
|
+
if (k.indexOf('-') > 0) {
|
|
2497
|
+
k = toCase(k);
|
|
2498
|
+
}
|
|
2499
|
+
|
|
2500
|
+
var name = "on".concat(upper(k));
|
|
2501
|
+
|
|
2502
|
+
if (Array.isArray(prop[name])) {
|
|
2503
|
+
prop[name] = [].concat(_toConsumableArray(prop[name]), [rule.on[k]]);
|
|
2504
|
+
} else if (prop[name]) {
|
|
2505
|
+
prop[name] = [prop[name], rule.on[k]];
|
|
2506
|
+
} else {
|
|
2507
|
+
prop[name] = rule.on[k];
|
|
2508
|
+
}
|
|
2509
|
+
});
|
|
2510
|
+
prop.key = rule.key;
|
|
2511
|
+
prop.ref = rule.ref;
|
|
2512
|
+
prop["class"] = rule["class"];
|
|
2513
|
+
prop.id = rule.id;
|
|
2514
|
+
prop.style = rule.style;
|
|
2515
|
+
if (prop.slot) delete prop.slot;
|
|
2516
|
+
return prop;
|
|
2517
|
+
}
|
|
2518
|
+
function setPrototypeOf(o, proto) {
|
|
2519
|
+
Object.setPrototypeOf(o, proto);
|
|
2520
|
+
return o;
|
|
2521
|
+
}
|
|
2522
|
+
|
|
2523
|
+
var changeType = function changeType(a, b) {
|
|
2524
|
+
if (typeof a === 'string') {
|
|
2525
|
+
return String(b);
|
|
2526
|
+
} else if (typeof a === 'number') {
|
|
2527
|
+
return Number(b);
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
return b;
|
|
2531
|
+
};
|
|
2532
|
+
|
|
2533
|
+
var condition = {
|
|
2534
|
+
'==': function _(a, b) {
|
|
2535
|
+
return JSON.stringify(a) === JSON.stringify(changeType(a, b));
|
|
2536
|
+
},
|
|
2537
|
+
'!=': function _(a, b) {
|
|
2538
|
+
return !condition['=='](a, b);
|
|
2539
|
+
},
|
|
2540
|
+
'>': function _(a, b) {
|
|
2541
|
+
return a > b;
|
|
2542
|
+
},
|
|
2543
|
+
'>=': function _(a, b) {
|
|
2544
|
+
return a >= b;
|
|
2545
|
+
},
|
|
2546
|
+
'<': function _(a, b) {
|
|
2547
|
+
return a < b;
|
|
2548
|
+
},
|
|
2549
|
+
'<=': function _(a, b) {
|
|
2550
|
+
return a <= b;
|
|
2551
|
+
},
|
|
2552
|
+
on: function on(a, b) {
|
|
2553
|
+
return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;
|
|
2554
|
+
},
|
|
2555
|
+
notOn: function notOn(a, b) {
|
|
2556
|
+
return !condition.on(a, b);
|
|
2557
|
+
},
|
|
2558
|
+
"in": function _in(a, b) {
|
|
2559
|
+
return b && b.indexOf && b.indexOf(a) > -1;
|
|
2560
|
+
},
|
|
2561
|
+
notIn: function notIn(a, b) {
|
|
2562
|
+
return !condition["in"](a, b);
|
|
2563
|
+
},
|
|
2564
|
+
between: function between(a, b) {
|
|
2565
|
+
return a > b[0] && a < b[1];
|
|
2566
|
+
},
|
|
2567
|
+
notBetween: function notBetween(a, b) {
|
|
2568
|
+
return a < b[0] || a > b[1];
|
|
2569
|
+
},
|
|
2570
|
+
empty: function empty(a) {
|
|
2571
|
+
return is.empty(a);
|
|
2572
|
+
},
|
|
2573
|
+
notEmpty: function notEmpty(a) {
|
|
2574
|
+
return !is.empty(a);
|
|
2575
|
+
},
|
|
2576
|
+
pattern: function pattern(a, b) {
|
|
2577
|
+
return new RegExp(b, 'g').test(a);
|
|
2578
|
+
}
|
|
2579
|
+
};
|
|
2580
|
+
function deepGet(val, split) {
|
|
2581
|
+
(Array.isArray(split) ? split : (split || '').split('.')).forEach(function (k) {
|
|
2582
|
+
if (val != null) {
|
|
2583
|
+
val = val[k];
|
|
2584
|
+
}
|
|
2585
|
+
});
|
|
2586
|
+
return val;
|
|
2587
|
+
}
|
|
2588
|
+
function extractVar(str) {
|
|
2589
|
+
var regex = /{{\s*(.*?)\s*}}/g;
|
|
2590
|
+
var match;
|
|
2591
|
+
var matches = {};
|
|
2592
|
+
|
|
2593
|
+
while ((match = regex.exec(str)) !== null) {
|
|
2594
|
+
if (match[1]) {
|
|
2595
|
+
matches[match[1]] = true;
|
|
2596
|
+
}
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2599
|
+
return Object.keys(matches);
|
|
2600
|
+
}
|
|
2601
|
+
function convertFieldToConditions(field) {
|
|
2602
|
+
var parts = field.split('.');
|
|
2603
|
+
var conditions = [];
|
|
2604
|
+
var currentCondition = '';
|
|
2605
|
+
parts.forEach(function (part, index) {
|
|
2606
|
+
if (index === 0) {
|
|
2607
|
+
currentCondition = part;
|
|
2608
|
+
} else {
|
|
2609
|
+
currentCondition += '.' + part;
|
|
2610
|
+
}
|
|
2611
|
+
|
|
2612
|
+
conditions.push(currentCondition);
|
|
2613
|
+
});
|
|
2614
|
+
return conditions.join(' && ');
|
|
2615
|
+
}
|
|
2616
|
+
|
|
2617
|
+
var _getGroupInject = function getGroupInject(vm, parent) {
|
|
2618
|
+
if (!vm || vm === parent) {
|
|
2619
|
+
return;
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2622
|
+
if (vm.props.formCreateInject) {
|
|
2623
|
+
return vm.props.formCreateInject;
|
|
2624
|
+
}
|
|
2625
|
+
|
|
2626
|
+
if (vm.parent) {
|
|
2627
|
+
return _getGroupInject(vm.parent, parent);
|
|
2628
|
+
}
|
|
2629
|
+
};
|
|
2630
|
+
|
|
2631
|
+
function $FormCreate(FormCreate, components, directives) {
|
|
2632
|
+
return defineComponent({
|
|
2633
|
+
name: 'FormCreate' + (FormCreate.isMobile ? 'Mobile' : ''),
|
|
2634
|
+
components: components,
|
|
2635
|
+
directives: directives,
|
|
2636
|
+
props: {
|
|
2637
|
+
rule: {
|
|
2638
|
+
type: Array,
|
|
2639
|
+
required: true,
|
|
2640
|
+
"default": function _default() {
|
|
2641
|
+
return [];
|
|
2642
|
+
}
|
|
2643
|
+
},
|
|
2644
|
+
option: {
|
|
2645
|
+
type: Object,
|
|
2646
|
+
"default": function _default() {
|
|
2647
|
+
return {};
|
|
2648
|
+
}
|
|
2649
|
+
},
|
|
2650
|
+
extendOption: Boolean,
|
|
2651
|
+
driver: [String, Object],
|
|
2652
|
+
modelValue: Object,
|
|
2653
|
+
disabled: {
|
|
2654
|
+
type: Boolean,
|
|
2655
|
+
"default": undefined
|
|
2656
|
+
},
|
|
2657
|
+
preview: {
|
|
2658
|
+
type: Boolean,
|
|
2659
|
+
"default": undefined
|
|
2660
|
+
},
|
|
2661
|
+
index: [String, Number],
|
|
2662
|
+
api: Object,
|
|
2663
|
+
locale: [String, Object],
|
|
2664
|
+
name: String,
|
|
2665
|
+
subForm: {
|
|
2666
|
+
type: Boolean,
|
|
2667
|
+
"default": true
|
|
2668
|
+
},
|
|
2669
|
+
inFor: Boolean
|
|
2670
|
+
},
|
|
2671
|
+
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'],
|
|
2672
|
+
render: function render() {
|
|
2673
|
+
return this.fc.render();
|
|
2674
|
+
},
|
|
2675
|
+
setup: function setup(props) {
|
|
2676
|
+
var vm = getCurrentInstance();
|
|
2677
|
+
provide('parentFC', vm);
|
|
2678
|
+
var parent = inject('parentFC', null);
|
|
2679
|
+
var top = parent;
|
|
2680
|
+
|
|
2681
|
+
if (parent) {
|
|
2682
|
+
while (top.setupState.parent) {
|
|
2683
|
+
top = top.setupState.parent;
|
|
2684
|
+
}
|
|
2685
|
+
} else {
|
|
2686
|
+
top = vm;
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2689
|
+
var _toRefs = toRefs(props),
|
|
2690
|
+
rule = _toRefs.rule,
|
|
2691
|
+
modelValue = _toRefs.modelValue,
|
|
2692
|
+
subForm = _toRefs.subForm,
|
|
2693
|
+
inFor = _toRefs.inFor;
|
|
2694
|
+
|
|
2695
|
+
var data = reactive({
|
|
2696
|
+
ctxInject: {},
|
|
2697
|
+
destroyed: false,
|
|
2698
|
+
isShow: true,
|
|
2699
|
+
unique: 1,
|
|
2700
|
+
renderRule: _toConsumableArray(rule.value || []),
|
|
2701
|
+
updateValue: JSON.stringify(modelValue.value || {})
|
|
2702
|
+
});
|
|
2703
|
+
var fc = new FormCreate(vm);
|
|
2704
|
+
var fapi = fc.api();
|
|
2705
|
+
var isMore = inFor.value;
|
|
2706
|
+
|
|
2707
|
+
var addSubForm = function addSubForm() {
|
|
2708
|
+
if (parent) {
|
|
2709
|
+
var _inject = _getGroupInject(vm, parent);
|
|
2710
|
+
|
|
2711
|
+
if (_inject) {
|
|
2712
|
+
var sub;
|
|
2713
|
+
|
|
2714
|
+
if (isMore) {
|
|
2715
|
+
sub = toArray(_inject.getSubForm());
|
|
2716
|
+
sub.push(fapi);
|
|
2717
|
+
} else {
|
|
2718
|
+
sub = fapi;
|
|
2719
|
+
}
|
|
2720
|
+
|
|
2721
|
+
_inject.subForm(sub);
|
|
2722
|
+
}
|
|
2723
|
+
}
|
|
2724
|
+
};
|
|
2725
|
+
|
|
2726
|
+
var rmSubForm = function rmSubForm() {
|
|
2727
|
+
var inject = _getGroupInject(vm, parent);
|
|
2728
|
+
|
|
2729
|
+
if (inject) {
|
|
2730
|
+
if (isMore) {
|
|
2731
|
+
var sub = toArray(inject.getSubForm());
|
|
2732
|
+
var idx = sub.indexOf(fapi);
|
|
2733
|
+
|
|
2734
|
+
if (idx > -1) {
|
|
2735
|
+
sub.splice(idx, 1);
|
|
2736
|
+
}
|
|
2737
|
+
} else {
|
|
2738
|
+
inject.subForm();
|
|
2739
|
+
}
|
|
2740
|
+
}
|
|
2741
|
+
};
|
|
2742
|
+
|
|
2743
|
+
var styleEl = null;
|
|
2744
|
+
onBeforeMount(function () {
|
|
2745
|
+
watchEffect(function () {
|
|
2746
|
+
var content = '';
|
|
2747
|
+
var globalClass = props.option && props.option.globalClass || {};
|
|
2748
|
+
Object.keys(globalClass).forEach(function (k) {
|
|
2749
|
+
var subCss = '';
|
|
2750
|
+
globalClass[k].style && Object.keys(globalClass[k].style).forEach(function (key) {
|
|
2751
|
+
subCss += toLine(key) + ':' + globalClass[k].style[key] + ';';
|
|
2752
|
+
});
|
|
2753
|
+
|
|
2754
|
+
if (globalClass[k].content) {
|
|
2755
|
+
subCss += globalClass[k].content + ';';
|
|
2756
|
+
}
|
|
2757
|
+
|
|
2758
|
+
if (subCss) {
|
|
2759
|
+
content += ".".concat(k, "{").concat(subCss, "}");
|
|
2760
|
+
}
|
|
2761
|
+
});
|
|
2762
|
+
|
|
2763
|
+
if (props.option && props.option.style) {
|
|
2764
|
+
content += props.option.style;
|
|
2765
|
+
}
|
|
2766
|
+
|
|
2767
|
+
if (!styleEl) {
|
|
2768
|
+
styleEl = document.createElement('style');
|
|
2769
|
+
styleEl.type = 'text/css';
|
|
2770
|
+
document.head.appendChild(styleEl);
|
|
2771
|
+
}
|
|
2772
|
+
|
|
2773
|
+
styleEl.innerHTML = content || '';
|
|
2774
|
+
});
|
|
2775
|
+
});
|
|
2776
|
+
var emit$topForm = debounce(function () {
|
|
2777
|
+
fc.bus.$emit('$loadData.$topForm');
|
|
2778
|
+
}, 100);
|
|
2779
|
+
var emit$scopeForm = debounce(function () {
|
|
2780
|
+
fc.bus.$emit('$loadData.$scopeForm');
|
|
2781
|
+
}, 100);
|
|
2782
|
+
var emit$form = debounce(function () {
|
|
2783
|
+
fc.bus.$emit('$loadData.$form');
|
|
2784
|
+
}, 100);
|
|
2785
|
+
|
|
2786
|
+
var emit$change = function emit$change(field) {
|
|
2787
|
+
fc.bus.$emit('change-$form.' + field);
|
|
2788
|
+
};
|
|
2789
|
+
|
|
2790
|
+
onMounted(function () {
|
|
2791
|
+
if (parent) {
|
|
2792
|
+
fapi.top.bus.$on('$loadData.$form', emit$topForm);
|
|
2793
|
+
fapi.top.bus.$on('change', emit$change);
|
|
2794
|
+
}
|
|
2795
|
+
|
|
2796
|
+
if (fapi !== fapi.scope) {
|
|
2797
|
+
fapi.scope.bus.$on('$loadData.$scopeForm', emit$scopeForm);
|
|
2798
|
+
}
|
|
2799
|
+
|
|
2800
|
+
fc.mounted();
|
|
2801
|
+
});
|
|
2802
|
+
onBeforeUnmount(function () {
|
|
2803
|
+
if (parent) {
|
|
2804
|
+
fapi.top.bus.$off('$loadData.$form', emit$topForm);
|
|
2805
|
+
fapi.top.bus.$off('change', emit$change);
|
|
2806
|
+
}
|
|
2807
|
+
|
|
2808
|
+
if (fapi !== fapi.scope) {
|
|
2809
|
+
fapi.scope.bus.$off('$loadData.$scopeForm', emit$scopeForm);
|
|
2810
|
+
}
|
|
2811
|
+
|
|
2812
|
+
styleEl && document.head.removeChild(styleEl);
|
|
2813
|
+
rmSubForm();
|
|
2814
|
+
data.destroyed = true;
|
|
2815
|
+
fc.unmount();
|
|
2816
|
+
});
|
|
2817
|
+
onUpdated(function () {
|
|
2818
|
+
fc.updated();
|
|
2819
|
+
});
|
|
2820
|
+
addSubForm();
|
|
2821
|
+
watch(function () {
|
|
2822
|
+
return props.option;
|
|
2823
|
+
}, function () {
|
|
2824
|
+
fc.initOptions();
|
|
2825
|
+
fapi.refresh();
|
|
2826
|
+
}, {
|
|
2827
|
+
deep: true
|
|
2828
|
+
});
|
|
2829
|
+
watch(function () {
|
|
2830
|
+
return _toConsumableArray(rule.value);
|
|
2831
|
+
}, function (n) {
|
|
2832
|
+
if (fc.$handle.isBreakWatch() || n.length === data.renderRule.length && n.every(function (v) {
|
|
2833
|
+
return data.renderRule.indexOf(v) > -1;
|
|
2834
|
+
})) return;
|
|
2835
|
+
fc.$handle.updateAppendData();
|
|
2836
|
+
fc.$handle.reloadRule(rule.value);
|
|
2837
|
+
vm.setupState.renderRule();
|
|
2838
|
+
});
|
|
2839
|
+
watch(function () {
|
|
2840
|
+
return [props.disabled, props.preview];
|
|
2841
|
+
}, function () {
|
|
2842
|
+
fapi.refresh();
|
|
2843
|
+
});
|
|
2844
|
+
watch(modelValue, function (n) {
|
|
2845
|
+
if (toJson(n || {}) === data.updateValue) return;
|
|
2846
|
+
|
|
2847
|
+
if (fapi.config.forceCoverValue) {
|
|
2848
|
+
fapi.coverValue(n || {});
|
|
2849
|
+
} else {
|
|
2850
|
+
fapi.setValue(n || {});
|
|
2851
|
+
}
|
|
2852
|
+
}, {
|
|
2853
|
+
deep: true,
|
|
2854
|
+
flush: 'post'
|
|
2855
|
+
});
|
|
2856
|
+
watch(function () {
|
|
2857
|
+
return props.index;
|
|
2858
|
+
}, function () {
|
|
2859
|
+
fapi.coverValue({});
|
|
2860
|
+
fc.$handle.updateAppendData();
|
|
2861
|
+
nextTick(function () {
|
|
2862
|
+
nextTick(function () {
|
|
2863
|
+
fapi.clearValidateState();
|
|
2864
|
+
});
|
|
2865
|
+
});
|
|
2866
|
+
}, {
|
|
2867
|
+
flush: 'sync'
|
|
2868
|
+
});
|
|
2869
|
+
return _objectSpread2(_objectSpread2({
|
|
2870
|
+
fc: markRaw(fc),
|
|
2871
|
+
parent: parent ? markRaw(parent) : parent,
|
|
2872
|
+
top: markRaw(top),
|
|
2873
|
+
fapi: markRaw(fapi)
|
|
2874
|
+
}, toRefs(data)), {}, {
|
|
2875
|
+
getGroupInject: function getGroupInject() {
|
|
2876
|
+
return _getGroupInject(vm, parent);
|
|
2877
|
+
},
|
|
2878
|
+
refresh: function refresh() {
|
|
2879
|
+
++data.unique;
|
|
2880
|
+
},
|
|
2881
|
+
renderRule: function renderRule() {
|
|
2882
|
+
data.renderRule = _toConsumableArray(rule.value || []);
|
|
2883
|
+
},
|
|
2884
|
+
updateValue: function updateValue(value) {
|
|
2885
|
+
if (data.destroyed) return;
|
|
2886
|
+
var json = toJson(value);
|
|
2887
|
+
|
|
2888
|
+
if (data.updateValue === json) {
|
|
2889
|
+
return;
|
|
2749
2890
|
}
|
|
2750
2891
|
|
|
2751
|
-
|
|
2752
|
-
|
|
2892
|
+
data.updateValue = json;
|
|
2893
|
+
vm.emit('update:modelValue', value);
|
|
2894
|
+
nextTick(function () {
|
|
2895
|
+
emit$form();
|
|
2896
|
+
|
|
2897
|
+
if (!parent) {
|
|
2898
|
+
emit$topForm();
|
|
2899
|
+
emit$scopeForm();
|
|
2900
|
+
} else if (!subForm.value) {
|
|
2901
|
+
emit$scopeForm();
|
|
2902
|
+
}
|
|
2903
|
+
});
|
|
2904
|
+
}
|
|
2753
2905
|
});
|
|
2754
|
-
return slots;
|
|
2755
|
-
},
|
|
2756
|
-
slotLen: function slotLen(slot) {
|
|
2757
|
-
slot = slotName(slot);
|
|
2758
|
-
return slotBag[slot] ? slotBag[slot].length : 0;
|
|
2759
2906
|
},
|
|
2760
|
-
|
|
2761
|
-
var
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
var slots = is.Function(bag.getSlots) ? bag.getSlots() : bag;
|
|
2765
|
-
|
|
2766
|
-
if (Array.isArray(bag) || isVNode(bag)) {
|
|
2767
|
-
this.setSlot(undefined, function () {
|
|
2768
|
-
return bag;
|
|
2769
|
-
});
|
|
2770
|
-
} else {
|
|
2771
|
-
Object.keys(slots).forEach(function (k) {
|
|
2772
|
-
_this2.setSlot(k, slots[k]);
|
|
2773
|
-
});
|
|
2774
|
-
}
|
|
2775
|
-
|
|
2776
|
-
return this;
|
|
2777
|
-
}
|
|
2778
|
-
};
|
|
2779
|
-
}
|
|
2780
|
-
function toProps(rule) {
|
|
2781
|
-
var prop = _objectSpread2({}, rule.props || {});
|
|
2782
|
-
|
|
2783
|
-
Object.keys(rule.on || {}).forEach(function (k) {
|
|
2784
|
-
if (k.indexOf('-') > 0) {
|
|
2785
|
-
k = toCase(k);
|
|
2786
|
-
}
|
|
2787
|
-
|
|
2788
|
-
var name = "on".concat(upper(k));
|
|
2789
|
-
|
|
2790
|
-
if (Array.isArray(prop[name])) {
|
|
2791
|
-
prop[name] = [].concat(_toConsumableArray(prop[name]), [rule.on[k]]);
|
|
2792
|
-
} else if (prop[name]) {
|
|
2793
|
-
prop[name] = [prop[name], rule.on[k]];
|
|
2794
|
-
} else {
|
|
2795
|
-
prop[name] = rule.on[k];
|
|
2796
|
-
}
|
|
2797
|
-
});
|
|
2798
|
-
prop.key = rule.key;
|
|
2799
|
-
prop.ref = rule.ref;
|
|
2800
|
-
prop["class"] = rule["class"];
|
|
2801
|
-
prop.id = rule.id;
|
|
2802
|
-
prop.style = rule.style;
|
|
2803
|
-
if (prop.slot) delete prop.slot;
|
|
2804
|
-
return prop;
|
|
2805
|
-
}
|
|
2806
|
-
function setPrototypeOf(o, proto) {
|
|
2807
|
-
Object.setPrototypeOf(o, proto);
|
|
2808
|
-
return o;
|
|
2809
|
-
}
|
|
2810
|
-
|
|
2811
|
-
var changeType = function changeType(a, b) {
|
|
2812
|
-
if (typeof a === 'string') {
|
|
2813
|
-
return String(b);
|
|
2814
|
-
} else if (typeof a === 'number') {
|
|
2815
|
-
return Number(b);
|
|
2816
|
-
}
|
|
2817
|
-
|
|
2818
|
-
return b;
|
|
2819
|
-
};
|
|
2820
|
-
|
|
2821
|
-
var condition = {
|
|
2822
|
-
'==': function _(a, b) {
|
|
2823
|
-
return JSON.stringify(a) === JSON.stringify(changeType(a, b));
|
|
2824
|
-
},
|
|
2825
|
-
'!=': function _(a, b) {
|
|
2826
|
-
return !condition['=='](a, b);
|
|
2827
|
-
},
|
|
2828
|
-
'>': function _(a, b) {
|
|
2829
|
-
return a > b;
|
|
2830
|
-
},
|
|
2831
|
-
'>=': function _(a, b) {
|
|
2832
|
-
return a >= b;
|
|
2833
|
-
},
|
|
2834
|
-
'<': function _(a, b) {
|
|
2835
|
-
return a < b;
|
|
2836
|
-
},
|
|
2837
|
-
'<=': function _(a, b) {
|
|
2838
|
-
return a <= b;
|
|
2839
|
-
},
|
|
2840
|
-
on: function on(a, b) {
|
|
2841
|
-
return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;
|
|
2842
|
-
},
|
|
2843
|
-
notOn: function notOn(a, b) {
|
|
2844
|
-
return !condition.on(a, b);
|
|
2845
|
-
},
|
|
2846
|
-
"in": function _in(a, b) {
|
|
2847
|
-
return b && b.indexOf && b.indexOf(a) > -1;
|
|
2848
|
-
},
|
|
2849
|
-
notIn: function notIn(a, b) {
|
|
2850
|
-
return !condition["in"](a, b);
|
|
2851
|
-
},
|
|
2852
|
-
between: function between(a, b) {
|
|
2853
|
-
return a > b[0] && a < b[1];
|
|
2854
|
-
},
|
|
2855
|
-
notBetween: function notBetween(a, b) {
|
|
2856
|
-
return a < b[0] || a > b[1];
|
|
2857
|
-
},
|
|
2858
|
-
empty: function empty(a) {
|
|
2859
|
-
return is.empty(a);
|
|
2860
|
-
},
|
|
2861
|
-
notEmpty: function notEmpty(a) {
|
|
2862
|
-
return !is.empty(a);
|
|
2863
|
-
},
|
|
2864
|
-
pattern: function pattern(a, b) {
|
|
2865
|
-
return new RegExp(b, 'g').test(a);
|
|
2866
|
-
}
|
|
2867
|
-
};
|
|
2868
|
-
function deepGet(val, split) {
|
|
2869
|
-
(Array.isArray(split) ? split : (split || '').split('.')).forEach(function (k) {
|
|
2870
|
-
if (val != null) {
|
|
2871
|
-
val = val[k];
|
|
2872
|
-
}
|
|
2873
|
-
});
|
|
2874
|
-
return val;
|
|
2875
|
-
}
|
|
2876
|
-
function extractVar(str) {
|
|
2877
|
-
var regex = /{{\s*(.*?)\s*}}/g;
|
|
2878
|
-
var match;
|
|
2879
|
-
var matches = {};
|
|
2880
|
-
|
|
2881
|
-
while ((match = regex.exec(str)) !== null) {
|
|
2882
|
-
if (match[1]) {
|
|
2883
|
-
matches[match[1]] = true;
|
|
2884
|
-
}
|
|
2885
|
-
}
|
|
2886
|
-
|
|
2887
|
-
return Object.keys(matches);
|
|
2888
|
-
}
|
|
2889
|
-
function convertFieldToConditions(field) {
|
|
2890
|
-
var parts = field.split('.');
|
|
2891
|
-
var conditions = [];
|
|
2892
|
-
var currentCondition = '';
|
|
2893
|
-
parts.forEach(function (part, index) {
|
|
2894
|
-
if (index === 0) {
|
|
2895
|
-
currentCondition = part;
|
|
2896
|
-
} else {
|
|
2897
|
-
currentCondition += '.' + part;
|
|
2907
|
+
created: function created() {
|
|
2908
|
+
var vm = getCurrentInstance();
|
|
2909
|
+
vm.emit('update:api', vm.setupState.fapi);
|
|
2910
|
+
vm.setupState.fc.init();
|
|
2898
2911
|
}
|
|
2899
|
-
|
|
2900
|
-
conditions.push(currentCondition);
|
|
2901
2912
|
});
|
|
2902
|
-
return conditions.join(' && ');
|
|
2903
2913
|
}
|
|
2904
2914
|
|
|
2905
2915
|
function baseRule() {
|
|
@@ -3107,8 +3117,15 @@ function Api(h) {
|
|
|
3107
3117
|
}
|
|
3108
3118
|
|
|
3109
3119
|
function props(fields, key, val) {
|
|
3110
|
-
|
|
3111
|
-
|
|
3120
|
+
if (is.Undef(fields)) {
|
|
3121
|
+
fields = Object.keys(_objectSpread2(_objectSpread2({}, h.fieldCtx), h.nameCtx));
|
|
3122
|
+
} else if (!Array.isArray(fields)) {
|
|
3123
|
+
fields = [fields];
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3126
|
+
fields.forEach(function (field) {
|
|
3127
|
+
var ctxs = h.fieldCtx[field] || h.nameCtx[field];
|
|
3128
|
+
ctxs && ctxs.forEach(function (ctx) {
|
|
3112
3129
|
$set(ctx.rule, key, val);
|
|
3113
3130
|
h.$render.clearCache(ctx);
|
|
3114
3131
|
});
|
|
@@ -3126,6 +3143,14 @@ function Api(h) {
|
|
|
3126
3143
|
}
|
|
3127
3144
|
|
|
3128
3145
|
var api = {
|
|
3146
|
+
get isScope() {
|
|
3147
|
+
return h.vm.props.subForm === false;
|
|
3148
|
+
},
|
|
3149
|
+
|
|
3150
|
+
get isPreview() {
|
|
3151
|
+
return h.preview;
|
|
3152
|
+
},
|
|
3153
|
+
|
|
3129
3154
|
get config() {
|
|
3130
3155
|
return h.options;
|
|
3131
3156
|
},
|
|
@@ -3162,6 +3187,20 @@ function Api(h) {
|
|
|
3162
3187
|
return api;
|
|
3163
3188
|
},
|
|
3164
3189
|
|
|
3190
|
+
get scope() {
|
|
3191
|
+
var parent = h.vm;
|
|
3192
|
+
|
|
3193
|
+
while (parent && parent.setupState.fapi) {
|
|
3194
|
+
if (!parent.props.subForm) {
|
|
3195
|
+
return parent.setupState.fapi;
|
|
3196
|
+
} else {
|
|
3197
|
+
parent = parent.setupState.parent;
|
|
3198
|
+
}
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
return api.top;
|
|
3202
|
+
},
|
|
3203
|
+
|
|
3165
3204
|
get children() {
|
|
3166
3205
|
return allSubForm();
|
|
3167
3206
|
},
|
|
@@ -3192,10 +3231,10 @@ function Api(h) {
|
|
|
3192
3231
|
},
|
|
3193
3232
|
|
|
3194
3233
|
formData: function formData(fields) {
|
|
3195
|
-
if (fields == null) {
|
|
3234
|
+
if (fields == null || typeof fields === 'boolean') {
|
|
3196
3235
|
var data = {};
|
|
3197
3236
|
Object.keys(h.form).forEach(function (k) {
|
|
3198
|
-
if (h.ignoreFields.indexOf(k) === -1) {
|
|
3237
|
+
if (fields === true || h.ignoreFields.indexOf(k) === -1) {
|
|
3199
3238
|
data[k] = copy(h.form[k]);
|
|
3200
3239
|
}
|
|
3201
3240
|
});
|
|
@@ -3746,7 +3785,11 @@ function Api(h) {
|
|
|
3746
3785
|
}, opt.wait == null ? 1000 : opt.wait);
|
|
3747
3786
|
},
|
|
3748
3787
|
getData: function getData(id, def) {
|
|
3749
|
-
|
|
3788
|
+
if (h.fc.get) {
|
|
3789
|
+
return h.fc.get(id, def);
|
|
3790
|
+
} else {
|
|
3791
|
+
return h.fc.getLoadData(id, def);
|
|
3792
|
+
}
|
|
3750
3793
|
},
|
|
3751
3794
|
watchData: function watchData(fn) {
|
|
3752
3795
|
return h.fc.watchLoadData(function (get, change) {
|
|
@@ -5304,7 +5347,7 @@ function useLoader(Handler) {
|
|
|
5304
5347
|
hideLst[valid ? 'push' : 'unshift'](function () {
|
|
5305
5348
|
if (method === 'disabled' || method === 'enabled') {
|
|
5306
5349
|
_this7.api.disabled(!valid, rule);
|
|
5307
|
-
} else if (method === 'display') {
|
|
5350
|
+
} else if (method === 'display' || method === 'show') {
|
|
5308
5351
|
_this7.api.display(valid, rule);
|
|
5309
5352
|
} else if (method === 'required') {
|
|
5310
5353
|
rule.forEach(function (item) {
|
|
@@ -5314,6 +5357,8 @@ function useLoader(Handler) {
|
|
|
5314
5357
|
if (!valid) {
|
|
5315
5358
|
_this7.api.clearValidateState(rule);
|
|
5316
5359
|
}
|
|
5360
|
+
} else if (method === 'if') {
|
|
5361
|
+
_this7.api.hidden(!valid, rule);
|
|
5317
5362
|
} else {
|
|
5318
5363
|
_this7.api.hidden(!valid, rule);
|
|
5319
5364
|
}
|
|
@@ -5617,7 +5662,7 @@ function useInput(Handler) {
|
|
|
5617
5662
|
return JSON.stringify(this.getFormData(ctx), strFn) !== JSON.stringify(value, strFn);
|
|
5618
5663
|
},
|
|
5619
5664
|
isQuote: function isQuote(ctx, value) {
|
|
5620
|
-
return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
|
|
5665
|
+
return (value instanceof Function || is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
|
|
5621
5666
|
},
|
|
5622
5667
|
refreshUpdate: function refreshUpdate(ctx, val, origin, field) {
|
|
5623
5668
|
var _this5 = this;
|
|
@@ -5904,8 +5949,10 @@ function useContext(Handler) {
|
|
|
5904
5949
|
var match = temp.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);
|
|
5905
5950
|
|
|
5906
5951
|
if (match) {
|
|
5952
|
+
var _ctx$refRule, _ctx$refRule$__$title;
|
|
5953
|
+
|
|
5907
5954
|
temp.message = _this.api.t(match[1], {
|
|
5908
|
-
title: ctx.refRule.__$title.value
|
|
5955
|
+
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
|
|
5909
5956
|
});
|
|
5910
5957
|
}
|
|
5911
5958
|
}
|
|
@@ -6031,7 +6078,7 @@ function useContext(Handler) {
|
|
|
6031
6078
|
field = JSON.stringify(_this2.fc.getLoadData(one.variable) || '');
|
|
6032
6079
|
} else if (one.field) {
|
|
6033
6080
|
field = convertFieldToConditions(one.field || '');
|
|
6034
|
-
} else {
|
|
6081
|
+
} else if (!one.mode) {
|
|
6035
6082
|
return {
|
|
6036
6083
|
v: true
|
|
6037
6084
|
};
|
|
@@ -6053,7 +6100,7 @@ function useContext(Handler) {
|
|
|
6053
6100
|
});
|
|
6054
6101
|
} else {
|
|
6055
6102
|
flag = invoke(function () {
|
|
6056
|
-
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);
|
|
6103
|
+
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);
|
|
6057
6104
|
});
|
|
6058
6105
|
}
|
|
6059
6106
|
|
|
@@ -6102,6 +6149,8 @@ function useContext(Handler) {
|
|
|
6102
6149
|
return invoke(fn, undefined);
|
|
6103
6150
|
},
|
|
6104
6151
|
computeValue: function computeValue(str, ctx, group) {
|
|
6152
|
+
var _this3 = this;
|
|
6153
|
+
|
|
6105
6154
|
var that = this;
|
|
6106
6155
|
var formulas = Object.keys(this.fc.formulas).reduce(function (obj, k) {
|
|
6107
6156
|
obj[k] = function () {
|
|
@@ -6121,34 +6170,36 @@ function useContext(Handler) {
|
|
|
6121
6170
|
|
|
6122
6171
|
return obj;
|
|
6123
6172
|
}, {});
|
|
6124
|
-
return
|
|
6173
|
+
return invoke(function () {
|
|
6174
|
+
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);
|
|
6175
|
+
}, undefined);
|
|
6125
6176
|
},
|
|
6126
6177
|
updateChildren: function updateChildren(ctx, n, o) {
|
|
6127
|
-
var
|
|
6178
|
+
var _this4 = this;
|
|
6128
6179
|
|
|
6129
6180
|
this.deferSyncValue(function () {
|
|
6130
6181
|
o && o.forEach(function (child) {
|
|
6131
6182
|
if ((n || []).indexOf(child) === -1 && child && !is.String(child) && child.__fc__ && child.__fc__.parent === ctx) {
|
|
6132
|
-
|
|
6183
|
+
_this4.rmCtx(child.__fc__);
|
|
6133
6184
|
}
|
|
6134
6185
|
});
|
|
6135
6186
|
|
|
6136
6187
|
if (is.trueArray(n)) {
|
|
6137
|
-
|
|
6188
|
+
_this4.loadChildren(n, ctx);
|
|
6138
6189
|
|
|
6139
|
-
|
|
6190
|
+
_this4.bus.$emit('update', _this4.api);
|
|
6140
6191
|
}
|
|
6141
6192
|
});
|
|
6142
6193
|
},
|
|
6143
6194
|
rmSub: function rmSub(sub) {
|
|
6144
|
-
var
|
|
6195
|
+
var _this5 = this;
|
|
6145
6196
|
|
|
6146
6197
|
is.trueArray(sub) && sub.forEach(function (r) {
|
|
6147
|
-
r && r.__fc__ &&
|
|
6198
|
+
r && r.__fc__ && _this5.rmCtx(r.__fc__);
|
|
6148
6199
|
});
|
|
6149
6200
|
},
|
|
6150
6201
|
rmCtx: function rmCtx(ctx) {
|
|
6151
|
-
var
|
|
6202
|
+
var _this6 = this;
|
|
6152
6203
|
|
|
6153
6204
|
if (ctx.deleted) return;
|
|
6154
6205
|
var id = ctx.id,
|
|
@@ -6177,19 +6228,19 @@ function useContext(Handler) {
|
|
|
6177
6228
|
}
|
|
6178
6229
|
|
|
6179
6230
|
this.deferSyncValue(function () {
|
|
6180
|
-
if (!
|
|
6231
|
+
if (!_this6.reloading) {
|
|
6181
6232
|
if (ctx.parser.loadChildren !== false) {
|
|
6182
6233
|
var children = ctx.getPending('children', ctx.rule.children);
|
|
6183
6234
|
|
|
6184
6235
|
if (is.trueArray(children)) {
|
|
6185
6236
|
children.forEach(function (h) {
|
|
6186
|
-
return h.__fc__ &&
|
|
6237
|
+
return h.__fc__ && _this6.rmCtx(h.__fc__);
|
|
6187
6238
|
});
|
|
6188
6239
|
}
|
|
6189
6240
|
}
|
|
6190
6241
|
|
|
6191
|
-
if (ctx.root ===
|
|
6192
|
-
|
|
6242
|
+
if (ctx.root === _this6.rules) {
|
|
6243
|
+
_this6.vm.setupState.renderRule();
|
|
6193
6244
|
}
|
|
6194
6245
|
}
|
|
6195
6246
|
}, input);
|
|
@@ -6262,8 +6313,11 @@ function useLifecycle(Handler) {
|
|
|
6262
6313
|
hook.forEach(function (fn) {
|
|
6263
6314
|
invoke(function () {
|
|
6264
6315
|
return fn(_objectSpread2(_objectSpread2({}, args || {}), {}, {
|
|
6316
|
+
self: ctx.rule,
|
|
6265
6317
|
rule: ctx.rule,
|
|
6266
|
-
|
|
6318
|
+
$f: _this2.api,
|
|
6319
|
+
api: _this2.api,
|
|
6320
|
+
option: _this2.vm.props.option
|
|
6267
6321
|
}));
|
|
6268
6322
|
});
|
|
6269
6323
|
});
|
|
@@ -6448,7 +6502,13 @@ function Handler(fc) {
|
|
|
6448
6502
|
return fc.bus;
|
|
6449
6503
|
},
|
|
6450
6504
|
preview: function preview() {
|
|
6451
|
-
|
|
6505
|
+
if (fc.vm.props.preview != null) {
|
|
6506
|
+
return fc.vm.props.preview;
|
|
6507
|
+
} else if (fc.vm.setupState.parent && fc.vm.setupState.parent.props.preview != null) {
|
|
6508
|
+
return fc.vm.setupState.parent.props.preview;
|
|
6509
|
+
}
|
|
6510
|
+
|
|
6511
|
+
return fc.options.value.preview || false;
|
|
6452
6512
|
}
|
|
6453
6513
|
});
|
|
6454
6514
|
extend(this, {
|
|
@@ -6517,10 +6577,10 @@ extend(Handler.prototype, {
|
|
|
6517
6577
|
isBreakWatch: function isBreakWatch() {
|
|
6518
6578
|
return this.loading || this.noWatchFn || this.reloading;
|
|
6519
6579
|
},
|
|
6520
|
-
|
|
6580
|
+
globalBeforeFetch: function globalBeforeFetch(opt) {
|
|
6521
6581
|
var _this2 = this;
|
|
6522
6582
|
|
|
6523
|
-
return new Promise(function (resolve) {
|
|
6583
|
+
return new Promise(function (resolve, reject) {
|
|
6524
6584
|
var source = _this2.options.beforeFetch && invoke(function () {
|
|
6525
6585
|
return _this2.options.beforeFetch(opt, {
|
|
6526
6586
|
api: _this2.api
|
|
@@ -6528,11 +6588,32 @@ extend(Handler.prototype, {
|
|
|
6528
6588
|
});
|
|
6529
6589
|
|
|
6530
6590
|
if (source && is.Function(source.then)) {
|
|
6531
|
-
source.then(resolve);
|
|
6591
|
+
source.then(resolve)["catch"](reject);
|
|
6532
6592
|
} else {
|
|
6533
6593
|
resolve();
|
|
6534
6594
|
}
|
|
6535
6595
|
});
|
|
6596
|
+
},
|
|
6597
|
+
beforeFetch: function beforeFetch(opt) {
|
|
6598
|
+
var _this3 = this;
|
|
6599
|
+
|
|
6600
|
+
return new Promise(function (resolve, reject) {
|
|
6601
|
+
var res = opt && opt.beforeFetch && invoke(function () {
|
|
6602
|
+
return opt.beforeFetch(opt, {
|
|
6603
|
+
api: _this3.api
|
|
6604
|
+
});
|
|
6605
|
+
});
|
|
6606
|
+
|
|
6607
|
+
if (res && is.Function(res.then)) {
|
|
6608
|
+
res.then(resolve)["catch"](reject);
|
|
6609
|
+
} else if (res === false) {
|
|
6610
|
+
reject();
|
|
6611
|
+
} else {
|
|
6612
|
+
resolve();
|
|
6613
|
+
}
|
|
6614
|
+
}).then(function () {
|
|
6615
|
+
return _this3.globalBeforeFetch(opt);
|
|
6616
|
+
})["catch"](function () {});
|
|
6536
6617
|
}
|
|
6537
6618
|
});
|
|
6538
6619
|
useInject(Handler);
|
|
@@ -6735,56 +6816,60 @@ var loadData = function loadData(fc) {
|
|
|
6735
6816
|
name: 'loadData',
|
|
6736
6817
|
_fn: [],
|
|
6737
6818
|
loaded: function loaded(inject, rule, api) {
|
|
6738
|
-
this
|
|
6739
|
-
var attrs = toArray(inject.getValue());
|
|
6740
|
-
var unwatchs = [];
|
|
6741
|
-
attrs.forEach(function (attr) {
|
|
6742
|
-
if (attr && (attr.attr || attr.template)) {
|
|
6743
|
-
var fn = function fn(get) {
|
|
6744
|
-
var value;
|
|
6819
|
+
var _this = this;
|
|
6745
6820
|
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
|
|
6821
|
+
this.deleted(inject);
|
|
6822
|
+
nextTick(function () {
|
|
6823
|
+
var attrs = toArray(inject.getValue());
|
|
6824
|
+
var unwatchs = [];
|
|
6825
|
+
attrs.forEach(function (attr) {
|
|
6826
|
+
if (attr && (attr.attr || attr.template)) {
|
|
6827
|
+
var fn = function fn(get) {
|
|
6828
|
+
var value;
|
|
6829
|
+
|
|
6830
|
+
if (attr.template) {
|
|
6831
|
+
value = fc.$handle.loadStrVar(attr.template, get);
|
|
6832
|
+
} else if (attr.handler && is.Function(attr.handler)) {
|
|
6833
|
+
value = attr.handler(get, rule, api);
|
|
6834
|
+
} else {
|
|
6835
|
+
value = get(attr.attr, attr["default"]);
|
|
6836
|
+
}
|
|
6753
6837
|
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6838
|
+
if (attr.copy !== false) {
|
|
6839
|
+
value = deepCopy(value);
|
|
6840
|
+
}
|
|
6757
6841
|
|
|
6758
|
-
|
|
6842
|
+
var _rule = attr.modify ? rule : inject.getProp();
|
|
6759
6843
|
|
|
6760
|
-
|
|
6761
|
-
|
|
6762
|
-
|
|
6844
|
+
if (attr.to === 'child') {
|
|
6845
|
+
if (_rule.children) {
|
|
6846
|
+
_rule.children[0] = value;
|
|
6847
|
+
} else {
|
|
6848
|
+
_rule.children = [value];
|
|
6849
|
+
}
|
|
6763
6850
|
} else {
|
|
6764
|
-
_rule.
|
|
6851
|
+
deepSet(_rule, attr.to || 'options', value);
|
|
6765
6852
|
}
|
|
6766
|
-
} else {
|
|
6767
|
-
deepSet(_rule, attr.to || 'options', value);
|
|
6768
|
-
}
|
|
6769
6853
|
|
|
6770
|
-
|
|
6771
|
-
|
|
6854
|
+
api.sync(rule);
|
|
6855
|
+
};
|
|
6772
6856
|
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6857
|
+
var callback = function callback(get) {
|
|
6858
|
+
return fn(get);
|
|
6859
|
+
};
|
|
6776
6860
|
|
|
6777
|
-
|
|
6778
|
-
|
|
6861
|
+
var unwatch = fc.watchLoadData(callback);
|
|
6862
|
+
fn = debounce(fn, attr.wait || 300);
|
|
6779
6863
|
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
|
|
6783
|
-
|
|
6864
|
+
if (attr.watch !== false) {
|
|
6865
|
+
unwatchs.push(unwatch);
|
|
6866
|
+
} else {
|
|
6867
|
+
unwatch();
|
|
6868
|
+
}
|
|
6784
6869
|
}
|
|
6785
|
-
}
|
|
6870
|
+
});
|
|
6871
|
+
_this._fn[inject.id] = unwatchs;
|
|
6786
6872
|
});
|
|
6787
|
-
this._fn[inject.id] = unwatchs;
|
|
6788
6873
|
},
|
|
6789
6874
|
deleted: function deleted(inject) {
|
|
6790
6875
|
if (this._fn[inject.id]) {
|
|
@@ -6798,7 +6883,7 @@ var loadData = function loadData(fc) {
|
|
|
6798
6883
|
inject.clearProp();
|
|
6799
6884
|
}
|
|
6800
6885
|
};
|
|
6801
|
-
loadData.watch = loadData.
|
|
6886
|
+
loadData.watch = loadData.loaded;
|
|
6802
6887
|
return loadData;
|
|
6803
6888
|
};
|
|
6804
6889
|
|
|
@@ -7011,7 +7096,6 @@ var fetch = function fetch(fc) {
|
|
|
7011
7096
|
}
|
|
7012
7097
|
|
|
7013
7098
|
set(fn(body, rule, api));
|
|
7014
|
-
api.sync(rule);
|
|
7015
7099
|
},
|
|
7016
7100
|
onError: function onError(e) {
|
|
7017
7101
|
set(undefined);
|
|
@@ -7490,6 +7574,7 @@ function FormCreateFactory(config) {
|
|
|
7490
7574
|
components: components,
|
|
7491
7575
|
directives: directives
|
|
7492
7576
|
},
|
|
7577
|
+
get: null,
|
|
7493
7578
|
drivers: drivers,
|
|
7494
7579
|
renderDriver: null,
|
|
7495
7580
|
refreshData: refreshData,
|
|
@@ -7727,7 +7812,7 @@ function FormCreateFactory(config) {
|
|
|
7727
7812
|
}
|
|
7728
7813
|
});
|
|
7729
7814
|
this.unwatch.push(unwatch);
|
|
7730
|
-
return val;
|
|
7815
|
+
return deepGet(val, split);
|
|
7731
7816
|
}
|
|
7732
7817
|
}
|
|
7733
7818
|
},
|
|
@@ -7747,9 +7832,11 @@ function FormCreateFactory(config) {
|
|
|
7747
7832
|
var key = split.shift();
|
|
7748
7833
|
|
|
7749
7834
|
if (key === '$topForm') {
|
|
7750
|
-
val = this.$handle.api.top.formData();
|
|
7835
|
+
val = this.$handle.api.top.formData(true);
|
|
7836
|
+
} else if (key === '$scopeForm') {
|
|
7837
|
+
val = this.$handle.api.scope.formData(true);
|
|
7751
7838
|
} else if (key === '$form') {
|
|
7752
|
-
val = this.$handle.api.formData();
|
|
7839
|
+
val = this.$handle.api.formData(true);
|
|
7753
7840
|
} else if (key === '$options') {
|
|
7754
7841
|
val = this.options.value;
|
|
7755
7842
|
} else if (key === '$globalData') {
|
|
@@ -7790,9 +7877,17 @@ function FormCreateFactory(config) {
|
|
|
7790
7877
|
var unwatch = {};
|
|
7791
7878
|
|
|
7792
7879
|
var run = function run(flag) {
|
|
7880
|
+
if (!_this6.get) {
|
|
7881
|
+
_this6.get = get;
|
|
7882
|
+
}
|
|
7883
|
+
|
|
7793
7884
|
invoke(function () {
|
|
7794
7885
|
fn(get, flag);
|
|
7795
7886
|
});
|
|
7887
|
+
|
|
7888
|
+
if (_this6.get === get) {
|
|
7889
|
+
_this6.get = undefined;
|
|
7890
|
+
}
|
|
7796
7891
|
};
|
|
7797
7892
|
|
|
7798
7893
|
var get = function get(id, def) {
|
|
@@ -8437,7 +8532,9 @@ var manager = {
|
|
|
8437
8532
|
},
|
|
8438
8533
|
makeInfo: function makeInfo(rule, uni, ctx) {
|
|
8439
8534
|
var _ctx$refRule,
|
|
8535
|
+
_ctx$refRule$__$title,
|
|
8440
8536
|
_ctx$refRule2,
|
|
8537
|
+
_ctx$refRule2$__$titl,
|
|
8441
8538
|
_this5 = this;
|
|
8442
8539
|
|
|
8443
8540
|
var titleProp = _objectSpread2({}, rule.title);
|
|
@@ -8448,10 +8545,10 @@ var manager = {
|
|
|
8448
8545
|
var form = this.options.form;
|
|
8449
8546
|
var titleSlot = this.getSlot('title');
|
|
8450
8547
|
var children = [titleSlot ? titleSlot({
|
|
8451
|
-
title: (_ctx$refRule = ctx.refRule) === null || _ctx$refRule === void 0 ? void 0 : _ctx$refRule.__$title.value,
|
|
8548
|
+
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,
|
|
8452
8549
|
rule: ctx.rule,
|
|
8453
8550
|
options: this.options
|
|
8454
|
-
}) : ((_ctx$refRule2 = ctx.refRule) === null || _ctx$refRule2 === void 0 ? void 0 : _ctx$refRule2.__$title.value) + (form.labelSuffix || form['label-suffix'] || '')];
|
|
8551
|
+
}) : ((_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'] || '')];
|
|
8455
8552
|
|
|
8456
8553
|
if (!isFalse(infoProp.show) && (infoProp.info || infoProp["native"]) && !isFalse(infoProp.icon)) {
|
|
8457
8554
|
var prop = {
|
|
@@ -8467,9 +8564,9 @@ var manager = {
|
|
|
8467
8564
|
var field = 'content';
|
|
8468
8565
|
|
|
8469
8566
|
if (infoProp.info && !hasProperty(prop.props, field)) {
|
|
8470
|
-
var _ctx$refRule3;
|
|
8567
|
+
var _ctx$refRule3, _ctx$refRule3$__$info;
|
|
8471
8568
|
|
|
8472
|
-
prop.props[field] = (_ctx$refRule3 = ctx.refRule) === null || _ctx$refRule3 === void 0 ? void 0 : _ctx$refRule3.__$info.value;
|
|
8569
|
+
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;
|
|
8473
8570
|
}
|
|
8474
8571
|
|
|
8475
8572
|
children[infoProp.align !== 'left' ? 'unshift' : 'push'](this.$r(mergeProps([infoProp, prop]), _defineProperty({}, titleProp.slot || (isTip ? 'default' : 'reference'), function () {
|
|
@@ -8710,7 +8807,9 @@ function extendApi(api, h) {
|
|
|
8710
8807
|
return new Promise(function (resolve, reject) {
|
|
8711
8808
|
var forms = api.children;
|
|
8712
8809
|
var all = [h.$manager.validate()];
|
|
8713
|
-
forms.
|
|
8810
|
+
forms.filter(function (v) {
|
|
8811
|
+
return !v.isScope;
|
|
8812
|
+
}).forEach(function (v) {
|
|
8714
8813
|
all.push(v.validate());
|
|
8715
8814
|
});
|
|
8716
8815
|
Promise.all(all).then(function () {
|
|
@@ -8731,7 +8830,9 @@ function extendApi(api, h) {
|
|
|
8731
8830
|
if (!ctx) return;
|
|
8732
8831
|
var sub = h.subForm[ctx.id];
|
|
8733
8832
|
var all = [h.$manager.validateField(ctx.id)];
|
|
8734
|
-
toArray(sub).
|
|
8833
|
+
toArray(sub).filter(function (v) {
|
|
8834
|
+
return !v.isScope;
|
|
8835
|
+
}).forEach(function (v) {
|
|
8735
8836
|
all.push(v.validate());
|
|
8736
8837
|
});
|
|
8737
8838
|
Promise.all(all).then(function () {
|
|
@@ -8834,7 +8935,8 @@ function extendApi(api, h) {
|
|
|
8834
8935
|
},
|
|
8835
8936
|
submit: function submit(successFn, failFn) {
|
|
8836
8937
|
return new Promise(function (resolve, reject) {
|
|
8837
|
-
|
|
8938
|
+
var promise = h.options.validateOnSubmit === false ? Promise.resolve() : api.validate();
|
|
8939
|
+
promise.then(function () {
|
|
8838
8940
|
var formData = api.formData();
|
|
8839
8941
|
is.Function(successFn) && invoke(function () {
|
|
8840
8942
|
return successFn(formData, api);
|
|
@@ -8868,6 +8970,8 @@ var required = {
|
|
|
8868
8970
|
inject.clearProp();
|
|
8869
8971
|
api.clearValidateState([rule.field]);
|
|
8870
8972
|
} else {
|
|
8973
|
+
var _rule$__fc__$refRule$;
|
|
8974
|
+
|
|
8871
8975
|
var validate = _objectSpread2({
|
|
8872
8976
|
required: true,
|
|
8873
8977
|
validator: function validator(_, v, call) {
|
|
@@ -8875,7 +8979,7 @@ var required = {
|
|
|
8875
8979
|
}
|
|
8876
8980
|
}, val);
|
|
8877
8981
|
|
|
8878
|
-
var title = rule.__fc__.refRule.__$title
|
|
8982
|
+
var title = (_rule$__fc__$refRule$ = rule.__fc__.refRule.__$title) === null || _rule$__fc__$refRule$ === void 0 ? void 0 : _rule$__fc__$refRule$.value;
|
|
8879
8983
|
|
|
8880
8984
|
if (!validate.message) {
|
|
8881
8985
|
validate.message = api.t('required', {
|
|
@@ -8948,7 +9052,7 @@ function install(FormCreate) {
|
|
|
8948
9052
|
function elmFormCreate() {
|
|
8949
9053
|
return FormCreateFactory({
|
|
8950
9054
|
ui: 'element-ui',
|
|
8951
|
-
version: '3.2.
|
|
9055
|
+
version: '3.2.21',
|
|
8952
9056
|
manager: manager,
|
|
8953
9057
|
extendApi: extendApi,
|
|
8954
9058
|
install: install,
|