@form-create/element-ui 3.2.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form-create.esm.js +645 -238
- package/dist/form-create.esm.min.js +2 -2
- package/dist/form-create.js +645 -238
- package/dist/form-create.min.js +2 -2
- package/package.json +3 -3
- package/src/style/index.css +35 -0
package/dist/form-create.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/element-ui v3.2.
|
|
2
|
+
* @form-create/element-ui v3.2.1
|
|
3
3
|
* (c) 2018-2024 xaboy
|
|
4
4
|
* Github https://github.com/xaboy/form-create
|
|
5
5
|
* Released under the MIT License.
|
|
@@ -2042,8 +2042,20 @@ script.render = render;
|
|
|
2042
2042
|
|
|
2043
2043
|
var components = [Checkbox, Frame, Radio, Select, Tree, Upload, Group, Sub, script];
|
|
2044
2044
|
|
|
2045
|
-
function
|
|
2046
|
-
|
|
2045
|
+
function debounce(fn, wait) {
|
|
2046
|
+
var timeout = null;
|
|
2047
|
+
return function () {
|
|
2048
|
+
var _this = this;
|
|
2049
|
+
|
|
2050
|
+
for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2051
|
+
arg[_key] = arguments[_key];
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
if (timeout !== null) clearTimeout(timeout);
|
|
2055
|
+
timeout = setTimeout(function () {
|
|
2056
|
+
return fn.call.apply(fn, [_this].concat(arg));
|
|
2057
|
+
}, wait);
|
|
2058
|
+
};
|
|
2047
2059
|
}
|
|
2048
2060
|
|
|
2049
2061
|
function toLine(name) {
|
|
@@ -2055,129 +2067,6 @@ function upper(str) {
|
|
|
2055
2067
|
return str.replace(str[0], str[0].toLocaleUpperCase());
|
|
2056
2068
|
}
|
|
2057
2069
|
|
|
2058
|
-
function format(type, msg, rule) {
|
|
2059
|
-
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2060
|
-
}
|
|
2061
|
-
function err(msg, rule) {
|
|
2062
|
-
console.error(format('err', msg, rule));
|
|
2063
|
-
}
|
|
2064
|
-
function logError(e) {
|
|
2065
|
-
err(e.toString());
|
|
2066
|
-
console.error(e);
|
|
2067
|
-
}
|
|
2068
|
-
|
|
2069
|
-
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2070
|
-
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2071
|
-
var $T = '$FN:';
|
|
2072
|
-
var $TX = '$FNX:';
|
|
2073
|
-
var $ON = '$GLOBAL:';
|
|
2074
|
-
var FUNCTION = 'function';
|
|
2075
|
-
function toJson(obj, space) {
|
|
2076
|
-
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2077
|
-
if (val && val._isVue === true) return undefined;
|
|
2078
|
-
|
|
2079
|
-
if (_typeof(val) !== FUNCTION) {
|
|
2080
|
-
return val;
|
|
2081
|
-
}
|
|
2082
|
-
|
|
2083
|
-
if (val.__json) {
|
|
2084
|
-
return val.__json;
|
|
2085
|
-
}
|
|
2086
|
-
|
|
2087
|
-
if (val.__origin) val = val.__origin;
|
|
2088
|
-
if (val.__emit) return undefined;
|
|
2089
|
-
return PREFIX + val + SUFFIX;
|
|
2090
|
-
}, space);
|
|
2091
|
-
}
|
|
2092
|
-
|
|
2093
|
-
function makeFn(fn) {
|
|
2094
|
-
return new Function('return ' + fn)();
|
|
2095
|
-
}
|
|
2096
|
-
|
|
2097
|
-
function parseFn(fn, mode) {
|
|
2098
|
-
if (fn && is.String(fn) && fn.length > 4) {
|
|
2099
|
-
var v = fn.trim();
|
|
2100
|
-
var flag = false;
|
|
2101
|
-
|
|
2102
|
-
try {
|
|
2103
|
-
if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {
|
|
2104
|
-
v = v.replace(SUFFIX, '').replace(PREFIX, '');
|
|
2105
|
-
flag = true;
|
|
2106
|
-
} else if (v.indexOf($T) === 0) {
|
|
2107
|
-
v = v.replace($T, '');
|
|
2108
|
-
flag = true;
|
|
2109
|
-
} else if (v.indexOf($ON) === 0) {
|
|
2110
|
-
var name = v.replace($ON, '');
|
|
2111
|
-
|
|
2112
|
-
v = function v() {
|
|
2113
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2114
|
-
args[_key] = arguments[_key];
|
|
2115
|
-
}
|
|
2116
|
-
|
|
2117
|
-
var callback = args[0].api.getGlobalEvent(name);
|
|
2118
|
-
|
|
2119
|
-
if (callback) {
|
|
2120
|
-
return callback.call.apply(callback, [this].concat(args));
|
|
2121
|
-
}
|
|
2122
|
-
|
|
2123
|
-
return undefined;
|
|
2124
|
-
};
|
|
2125
|
-
|
|
2126
|
-
v.__json = fn;
|
|
2127
|
-
v.__inject = true;
|
|
2128
|
-
return v;
|
|
2129
|
-
} else if (v.indexOf($TX) === 0) {
|
|
2130
|
-
v = makeFn('function($inject){' + v.replace($TX, '') + '}');
|
|
2131
|
-
v.__json = fn;
|
|
2132
|
-
v.__inject = true;
|
|
2133
|
-
return v;
|
|
2134
|
-
} else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {
|
|
2135
|
-
flag = true;
|
|
2136
|
-
}
|
|
2137
|
-
|
|
2138
|
-
if (!flag) return fn;
|
|
2139
|
-
var val = makeFn(v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0 ? FUNCTION + ' ' + v : v);
|
|
2140
|
-
val.__json = fn;
|
|
2141
|
-
return val;
|
|
2142
|
-
} catch (e) {
|
|
2143
|
-
err("\u89E3\u6790\u5931\u8D25:".concat(v, "\n\nerr: ").concat(e));
|
|
2144
|
-
return undefined;
|
|
2145
|
-
}
|
|
2146
|
-
}
|
|
2147
|
-
|
|
2148
|
-
return fn;
|
|
2149
|
-
}
|
|
2150
|
-
function parseJson(json, mode) {
|
|
2151
|
-
return JSON.parse(json, function (k, v) {
|
|
2152
|
-
if (is.Undef(v) || !v.indexOf) return v;
|
|
2153
|
-
return parseFn(v, mode);
|
|
2154
|
-
});
|
|
2155
|
-
}
|
|
2156
|
-
|
|
2157
|
-
var id$2 = 0;
|
|
2158
|
-
function uniqueId() {
|
|
2159
|
-
var num = 370 + ++id$2;
|
|
2160
|
-
return 'F' + Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now())).toString(36) + num.toString(36) + 'c';
|
|
2161
|
-
}
|
|
2162
|
-
|
|
2163
|
-
function deepSet(data, idx, val) {
|
|
2164
|
-
var _data = data,
|
|
2165
|
-
to;
|
|
2166
|
-
(idx || '').split('.').forEach(function (v) {
|
|
2167
|
-
if (to) {
|
|
2168
|
-
if (!_data[to] || _typeof(_data[to]) != 'object') {
|
|
2169
|
-
_data[to] = {};
|
|
2170
|
-
}
|
|
2171
|
-
|
|
2172
|
-
_data = _data[to];
|
|
2173
|
-
}
|
|
2174
|
-
|
|
2175
|
-
to = v;
|
|
2176
|
-
});
|
|
2177
|
-
_data[to] = val;
|
|
2178
|
-
return _data;
|
|
2179
|
-
}
|
|
2180
|
-
|
|
2181
2070
|
var getRuleInject = function getRuleInject(vm, parent) {
|
|
2182
2071
|
if (!vm || vm === parent) {
|
|
2183
2072
|
return;
|
|
@@ -2322,10 +2211,24 @@ function $FormCreate(FormCreate, components, directives) {
|
|
|
2322
2211
|
document.head.appendChild(styleEl);
|
|
2323
2212
|
}
|
|
2324
2213
|
});
|
|
2214
|
+
var emit$topForm = debounce(function () {
|
|
2215
|
+
fc.bus.$emit('$loadData.$topForm');
|
|
2216
|
+
}, 100);
|
|
2217
|
+
var emit$form = debounce(function () {
|
|
2218
|
+
fc.bus.$emit('$loadData.$form');
|
|
2219
|
+
}, 100);
|
|
2325
2220
|
onMounted(function () {
|
|
2221
|
+
if (parent) {
|
|
2222
|
+
fapi.top.bus.$on('$loadData.$form', emit$topForm);
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2326
2225
|
fc.mounted();
|
|
2327
2226
|
});
|
|
2328
2227
|
onBeforeUnmount(function () {
|
|
2228
|
+
if (parent) {
|
|
2229
|
+
fapi.top.bus.$off('$loadData.$form', emit$topForm);
|
|
2230
|
+
}
|
|
2231
|
+
|
|
2329
2232
|
styleEl && document.head.removeChild(styleEl);
|
|
2330
2233
|
rmSubForm();
|
|
2331
2234
|
data.destroyed = true;
|
|
@@ -2388,6 +2291,13 @@ function $FormCreate(FormCreate, components, directives) {
|
|
|
2388
2291
|
|
|
2389
2292
|
data.updateValue = json;
|
|
2390
2293
|
vm.emit('update:modelValue', value);
|
|
2294
|
+
nextTick(function () {
|
|
2295
|
+
emit$form();
|
|
2296
|
+
|
|
2297
|
+
if (!parent) {
|
|
2298
|
+
emit$topForm();
|
|
2299
|
+
}
|
|
2300
|
+
});
|
|
2391
2301
|
}
|
|
2392
2302
|
});
|
|
2393
2303
|
},
|
|
@@ -2475,6 +2385,105 @@ function attrs() {
|
|
|
2475
2385
|
return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
|
|
2476
2386
|
}
|
|
2477
2387
|
|
|
2388
|
+
function format(type, msg, rule) {
|
|
2389
|
+
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2390
|
+
}
|
|
2391
|
+
function err(msg, rule) {
|
|
2392
|
+
console.error(format('err', msg, rule));
|
|
2393
|
+
}
|
|
2394
|
+
function logError(e) {
|
|
2395
|
+
err(e.toString());
|
|
2396
|
+
console.error(e);
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2399
|
+
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2400
|
+
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2401
|
+
var $T = '$FN:';
|
|
2402
|
+
var $TX = '$FNX:';
|
|
2403
|
+
var $ON = '$GLOBAL:';
|
|
2404
|
+
var FUNCTION = 'function';
|
|
2405
|
+
function toJson(obj, space) {
|
|
2406
|
+
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2407
|
+
if (val && val._isVue === true) return undefined;
|
|
2408
|
+
|
|
2409
|
+
if (_typeof(val) !== FUNCTION) {
|
|
2410
|
+
return val;
|
|
2411
|
+
}
|
|
2412
|
+
|
|
2413
|
+
if (val.__json) {
|
|
2414
|
+
return val.__json;
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
if (val.__origin) val = val.__origin;
|
|
2418
|
+
if (val.__emit) return undefined;
|
|
2419
|
+
return PREFIX + val + SUFFIX;
|
|
2420
|
+
}, space);
|
|
2421
|
+
}
|
|
2422
|
+
|
|
2423
|
+
function makeFn(fn) {
|
|
2424
|
+
return new Function('return ' + fn)();
|
|
2425
|
+
}
|
|
2426
|
+
|
|
2427
|
+
function parseFn(fn, mode) {
|
|
2428
|
+
if (fn && is.String(fn) && fn.length > 4) {
|
|
2429
|
+
var v = fn.trim();
|
|
2430
|
+
var flag = false;
|
|
2431
|
+
|
|
2432
|
+
try {
|
|
2433
|
+
if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {
|
|
2434
|
+
v = v.replace(SUFFIX, '').replace(PREFIX, '');
|
|
2435
|
+
flag = true;
|
|
2436
|
+
} else if (v.indexOf($T) === 0) {
|
|
2437
|
+
v = v.replace($T, '');
|
|
2438
|
+
flag = true;
|
|
2439
|
+
} else if (v.indexOf($ON) === 0) {
|
|
2440
|
+
var name = v.replace($ON, '');
|
|
2441
|
+
|
|
2442
|
+
v = function v() {
|
|
2443
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2444
|
+
args[_key] = arguments[_key];
|
|
2445
|
+
}
|
|
2446
|
+
|
|
2447
|
+
var callback = args[0].api.getGlobalEvent(name);
|
|
2448
|
+
|
|
2449
|
+
if (callback) {
|
|
2450
|
+
return callback.call.apply(callback, [this].concat(args));
|
|
2451
|
+
}
|
|
2452
|
+
|
|
2453
|
+
return undefined;
|
|
2454
|
+
};
|
|
2455
|
+
|
|
2456
|
+
v.__json = fn;
|
|
2457
|
+
v.__inject = true;
|
|
2458
|
+
return v;
|
|
2459
|
+
} else if (v.indexOf($TX) === 0) {
|
|
2460
|
+
v = makeFn('function($inject){' + v.replace($TX, '') + '}');
|
|
2461
|
+
v.__json = fn;
|
|
2462
|
+
v.__inject = true;
|
|
2463
|
+
return v;
|
|
2464
|
+
} else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {
|
|
2465
|
+
flag = true;
|
|
2466
|
+
}
|
|
2467
|
+
|
|
2468
|
+
if (!flag) return fn;
|
|
2469
|
+
var val = makeFn(v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0 ? FUNCTION + ' ' + v : v);
|
|
2470
|
+
val.__json = fn;
|
|
2471
|
+
return val;
|
|
2472
|
+
} catch (e) {
|
|
2473
|
+
err("\u89E3\u6790\u5931\u8D25:".concat(v, "\n\nerr: ").concat(e));
|
|
2474
|
+
return undefined;
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
return fn;
|
|
2479
|
+
}
|
|
2480
|
+
function parseJson(json, mode) {
|
|
2481
|
+
return JSON.parse(json, function (k, v) {
|
|
2482
|
+
if (is.Undef(v) || !v.indexOf) return v;
|
|
2483
|
+
return parseFn(v, mode);
|
|
2484
|
+
});
|
|
2485
|
+
}
|
|
2486
|
+
|
|
2478
2487
|
function enumerable(value, writable) {
|
|
2479
2488
|
return {
|
|
2480
2489
|
value: value,
|
|
@@ -2693,6 +2702,27 @@ var condition = {
|
|
|
2693
2702
|
return new RegExp(b, 'g').test(a);
|
|
2694
2703
|
}
|
|
2695
2704
|
};
|
|
2705
|
+
function deepGet(val, split) {
|
|
2706
|
+
(Array.isArray(split) ? split : (split || '').split('.')).forEach(function (k) {
|
|
2707
|
+
if (val != null) {
|
|
2708
|
+
val = val[k];
|
|
2709
|
+
}
|
|
2710
|
+
});
|
|
2711
|
+
return val;
|
|
2712
|
+
}
|
|
2713
|
+
function extractVar(str) {
|
|
2714
|
+
var regex = /{{\s*(.*?)\s*}}/g;
|
|
2715
|
+
var match;
|
|
2716
|
+
var matches = {};
|
|
2717
|
+
|
|
2718
|
+
while ((match = regex.exec(str)) !== null) {
|
|
2719
|
+
if (match[1]) {
|
|
2720
|
+
matches[match[1]] = true;
|
|
2721
|
+
}
|
|
2722
|
+
}
|
|
2723
|
+
|
|
2724
|
+
return Object.keys(matches);
|
|
2725
|
+
}
|
|
2696
2726
|
|
|
2697
2727
|
function baseRule() {
|
|
2698
2728
|
return {
|
|
@@ -2832,7 +2862,7 @@ function fetch$1(option) {
|
|
|
2832
2862
|
|
|
2833
2863
|
var headers = option.headers || {};
|
|
2834
2864
|
Object.keys(headers).forEach(function (item) {
|
|
2835
|
-
if (headers[item]
|
|
2865
|
+
if (headers[item] != null) {
|
|
2836
2866
|
xhr.setRequestHeader(item, headers[item]);
|
|
2837
2867
|
}
|
|
2838
2868
|
});
|
|
@@ -2852,12 +2882,7 @@ function asyncFetch(config) {
|
|
|
2852
2882
|
fn = parse;
|
|
2853
2883
|
} else if (parse && is.String(parse)) {
|
|
2854
2884
|
fn = function fn(v) {
|
|
2855
|
-
|
|
2856
|
-
if (v) {
|
|
2857
|
-
v = v[k];
|
|
2858
|
-
}
|
|
2859
|
-
});
|
|
2860
|
-
return v;
|
|
2885
|
+
return deepGet(v, parse);
|
|
2861
2886
|
};
|
|
2862
2887
|
}
|
|
2863
2888
|
|
|
@@ -3322,6 +3347,18 @@ function Api(h) {
|
|
|
3322
3347
|
findRules(ctx ? ctx.loadChildrenPending() : rule.children);
|
|
3323
3348
|
return rules;
|
|
3324
3349
|
},
|
|
3350
|
+
getParentSubRule: function getParentSubRule(id) {
|
|
3351
|
+
var flag = _typeof(id) === 'object';
|
|
3352
|
+
var ctx = flag ? byCtx(id) : h.getCtx(id);
|
|
3353
|
+
|
|
3354
|
+
if (ctx) {
|
|
3355
|
+
var group = ctx.getParentGroup();
|
|
3356
|
+
|
|
3357
|
+
if (group) {
|
|
3358
|
+
return group.rule;
|
|
3359
|
+
}
|
|
3360
|
+
}
|
|
3361
|
+
},
|
|
3325
3362
|
getChildrenFormData: function getChildrenFormData(id) {
|
|
3326
3363
|
var rules = api.getChildrenRuleList(id);
|
|
3327
3364
|
return rules.reduce(function (formData, rule) {
|
|
@@ -3331,12 +3368,14 @@ function Api(h) {
|
|
|
3331
3368
|
},
|
|
3332
3369
|
setChildrenFormData: function setChildrenFormData(id, formData, cover) {
|
|
3333
3370
|
var rules = api.getChildrenRuleList(id);
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3371
|
+
h.deferSyncValue(function () {
|
|
3372
|
+
rules.forEach(function (rule) {
|
|
3373
|
+
if (hasProperty(formData, rule.field)) {
|
|
3374
|
+
rule.value = formData[rule.field];
|
|
3375
|
+
} else if (cover) {
|
|
3376
|
+
rule.value = undefined;
|
|
3377
|
+
}
|
|
3378
|
+
});
|
|
3340
3379
|
});
|
|
3341
3380
|
},
|
|
3342
3381
|
getGlobalEvent: function getGlobalEvent(name) {
|
|
@@ -3398,7 +3437,7 @@ function Api(h) {
|
|
|
3398
3437
|
});
|
|
3399
3438
|
},
|
|
3400
3439
|
getData: function getData(id, def) {
|
|
3401
|
-
return h.fc.
|
|
3440
|
+
return h.fc.getLoadData(id, def);
|
|
3402
3441
|
},
|
|
3403
3442
|
setData: function setData(id, data) {
|
|
3404
3443
|
return h.fc.setData(id, data);
|
|
@@ -3481,6 +3520,34 @@ function lower(str) {
|
|
|
3481
3520
|
return str.replace(str[0], str[0].toLowerCase());
|
|
3482
3521
|
}
|
|
3483
3522
|
|
|
3523
|
+
function toString(val) {
|
|
3524
|
+
return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
|
|
3525
|
+
}
|
|
3526
|
+
|
|
3527
|
+
var id$2 = 0;
|
|
3528
|
+
function uniqueId() {
|
|
3529
|
+
var num = 370 + ++id$2;
|
|
3530
|
+
return 'F' + Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now())).toString(36) + num.toString(36) + 'c';
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3533
|
+
function deepSet(data, idx, val) {
|
|
3534
|
+
var _data = data,
|
|
3535
|
+
to;
|
|
3536
|
+
(idx || '').split('.').forEach(function (v) {
|
|
3537
|
+
if (to) {
|
|
3538
|
+
if (!_data[to] || _typeof(_data[to]) != 'object') {
|
|
3539
|
+
_data[to] = {};
|
|
3540
|
+
}
|
|
3541
|
+
|
|
3542
|
+
_data = _data[to];
|
|
3543
|
+
}
|
|
3544
|
+
|
|
3545
|
+
to = v;
|
|
3546
|
+
});
|
|
3547
|
+
_data[to] = val;
|
|
3548
|
+
return _data;
|
|
3549
|
+
}
|
|
3550
|
+
|
|
3484
3551
|
function useRender$1(Render) {
|
|
3485
3552
|
extend(Render.prototype, {
|
|
3486
3553
|
initRender: function initRender() {
|
|
@@ -3792,6 +3859,9 @@ function useRender$1(Render) {
|
|
|
3792
3859
|
|
|
3793
3860
|
_this7.onMounted(ctx, vn.el);
|
|
3794
3861
|
},
|
|
3862
|
+
'fc.updateValue': function fcUpdateValue(data) {
|
|
3863
|
+
_this7.$handle.onUpdateValue(ctx, data);
|
|
3864
|
+
},
|
|
3795
3865
|
'fc.el': function fcEl(el) {
|
|
3796
3866
|
ctx.exportEl = el;
|
|
3797
3867
|
|
|
@@ -4062,6 +4132,52 @@ function useInject(Handler) {
|
|
|
4062
4132
|
fn.__origin = _fn;
|
|
4063
4133
|
fn.__json = _fn.__json;
|
|
4064
4134
|
return fn;
|
|
4135
|
+
},
|
|
4136
|
+
loadStrVar: function loadStrVar(str, get) {
|
|
4137
|
+
var _this3 = this;
|
|
4138
|
+
|
|
4139
|
+
if (str && typeof str === 'string' && str.indexOf('{{') > -1 && str.indexOf('}}') > -1) {
|
|
4140
|
+
var vars = extractVar(str);
|
|
4141
|
+
vars.forEach(function (v) {
|
|
4142
|
+
var split = v.split('||');
|
|
4143
|
+
var field = split[0].trim();
|
|
4144
|
+
|
|
4145
|
+
if (field) {
|
|
4146
|
+
var def = (split[1] || '').trim();
|
|
4147
|
+
var val = get ? get(field, def) : _this3.fc.getLoadData(field, def);
|
|
4148
|
+
str = str.replaceAll("{{".concat(v, "}}"), val == null ? '' : val);
|
|
4149
|
+
}
|
|
4150
|
+
});
|
|
4151
|
+
}
|
|
4152
|
+
|
|
4153
|
+
return str;
|
|
4154
|
+
},
|
|
4155
|
+
loadFetchVar: function loadFetchVar(options, get) {
|
|
4156
|
+
var _this4 = this;
|
|
4157
|
+
|
|
4158
|
+
var loadVal = function loadVal(str) {
|
|
4159
|
+
return _this4.loadStrVar(str, get);
|
|
4160
|
+
};
|
|
4161
|
+
|
|
4162
|
+
options.action = loadVal(options.action);
|
|
4163
|
+
|
|
4164
|
+
if (options.headers) {
|
|
4165
|
+
var _headers = {};
|
|
4166
|
+
Object.keys(options.headers).forEach(function (k) {
|
|
4167
|
+
_headers[loadVal(k)] = loadVal(options.headers[k]);
|
|
4168
|
+
});
|
|
4169
|
+
options.headers = _headers;
|
|
4170
|
+
}
|
|
4171
|
+
|
|
4172
|
+
if (options.data) {
|
|
4173
|
+
var _data = {};
|
|
4174
|
+
Object.keys(options.data).forEach(function (k) {
|
|
4175
|
+
_data[loadVal(k)] = loadVal(options.data[k]);
|
|
4176
|
+
});
|
|
4177
|
+
options.data = _data;
|
|
4178
|
+
}
|
|
4179
|
+
|
|
4180
|
+
return options;
|
|
4065
4181
|
}
|
|
4066
4182
|
});
|
|
4067
4183
|
}
|
|
@@ -4181,7 +4297,6 @@ function RuleContext(handle, rule, defaultValue) {
|
|
|
4181
4297
|
defaultValue: isInput ? deepCopy(defaultValue) : undefined,
|
|
4182
4298
|
field: rule.field || undefined
|
|
4183
4299
|
});
|
|
4184
|
-
this.updateType();
|
|
4185
4300
|
this.updateKey();
|
|
4186
4301
|
bind(this);
|
|
4187
4302
|
this.update(handle, true);
|
|
@@ -4317,6 +4432,7 @@ extend(RuleContext.prototype, {
|
|
|
4317
4432
|
updateType: function updateType() {
|
|
4318
4433
|
this.originType = this.rule.type;
|
|
4319
4434
|
this.type = toCase(this.rule.type);
|
|
4435
|
+
this.trueType = this.$handle.getType(this.originType);
|
|
4320
4436
|
},
|
|
4321
4437
|
setParser: function setParser(parser) {
|
|
4322
4438
|
this.parser = parser;
|
|
@@ -4405,7 +4521,6 @@ extend(RuleContext.prototype, {
|
|
|
4405
4521
|
computed: {},
|
|
4406
4522
|
el: undef,
|
|
4407
4523
|
$handle: undef,
|
|
4408
|
-
$render: undef,
|
|
4409
4524
|
$api: undef,
|
|
4410
4525
|
vm: undef,
|
|
4411
4526
|
vNode: undef,
|
|
@@ -4461,7 +4576,6 @@ extend(RuleContext.prototype, {
|
|
|
4461
4576
|
$render: handle.$render,
|
|
4462
4577
|
$api: handle.api,
|
|
4463
4578
|
vm: handle.vm,
|
|
4464
|
-
trueType: handle.getType(this.originType),
|
|
4465
4579
|
vNode: handle.$render.vNode,
|
|
4466
4580
|
updated: false,
|
|
4467
4581
|
cacheValue: this.rule.value
|
|
@@ -4469,6 +4583,7 @@ extend(RuleContext.prototype, {
|
|
|
4469
4583
|
!init && this.unwatch();
|
|
4470
4584
|
this.watchTo();
|
|
4471
4585
|
this.link();
|
|
4586
|
+
this.updateType();
|
|
4472
4587
|
}
|
|
4473
4588
|
});
|
|
4474
4589
|
|
|
@@ -4940,6 +5055,28 @@ function useInput(Handler) {
|
|
|
4940
5055
|
this.setValue(ctx, val, value);
|
|
4941
5056
|
}
|
|
4942
5057
|
},
|
|
5058
|
+
onUpdateValue: function onUpdateValue(ctx, data) {
|
|
5059
|
+
var _this = this;
|
|
5060
|
+
|
|
5061
|
+
this.deferSyncValue(function () {
|
|
5062
|
+
var group = ctx.getParentGroup();
|
|
5063
|
+
var subForm = group ? _this.subRuleData[group.id] : null;
|
|
5064
|
+
var subData = {};
|
|
5065
|
+
Object.keys(data || {}).forEach(function (k) {
|
|
5066
|
+
if (subForm && hasProperty(subForm, k)) {
|
|
5067
|
+
subData[k] = data[k];
|
|
5068
|
+
} else if (hasProperty(_this.api.form, k)) {
|
|
5069
|
+
_this.api.form[k] = data[k];
|
|
5070
|
+
} else if (_this.api.top !== _this.api && hasProperty(_this.api.top.form, k)) {
|
|
5071
|
+
_this.api.top.form[k] = data[k];
|
|
5072
|
+
}
|
|
5073
|
+
});
|
|
5074
|
+
|
|
5075
|
+
if (Object.keys(subData).length) {
|
|
5076
|
+
_this.api.setChildrenFormData(group.rule, subData);
|
|
5077
|
+
}
|
|
5078
|
+
});
|
|
5079
|
+
},
|
|
4943
5080
|
onBaseInput: function onBaseInput(ctx, value) {
|
|
4944
5081
|
this.setFormData(ctx, value);
|
|
4945
5082
|
ctx.modelValue = value;
|
|
@@ -4971,11 +5108,11 @@ function useInput(Handler) {
|
|
|
4971
5108
|
return this.formData[ctx.id];
|
|
4972
5109
|
},
|
|
4973
5110
|
syncForm: function syncForm() {
|
|
4974
|
-
var
|
|
5111
|
+
var _this2 = this;
|
|
4975
5112
|
|
|
4976
5113
|
var data = reactive({});
|
|
4977
5114
|
this.fields().reduce(function (initial, field) {
|
|
4978
|
-
var ctx =
|
|
5115
|
+
var ctx = _this2.getCtx(field);
|
|
4979
5116
|
|
|
4980
5117
|
initial[field] = toRef(ctx.rule, 'value');
|
|
4981
5118
|
return initial;
|
|
@@ -5024,11 +5161,11 @@ function useInput(Handler) {
|
|
|
5024
5161
|
return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
|
|
5025
5162
|
},
|
|
5026
5163
|
refreshUpdate: function refreshUpdate(ctx, val, origin, field) {
|
|
5027
|
-
var
|
|
5164
|
+
var _this3 = this;
|
|
5028
5165
|
|
|
5029
5166
|
if (is.Function(ctx.rule.update)) {
|
|
5030
5167
|
var state = invoke(function () {
|
|
5031
|
-
return ctx.rule.update(val, ctx.origin,
|
|
5168
|
+
return ctx.rule.update(val, ctx.origin, _this3.api, {
|
|
5032
5169
|
origin: origin || 'change',
|
|
5033
5170
|
linkField: field
|
|
5034
5171
|
});
|
|
@@ -5052,18 +5189,18 @@ function useInput(Handler) {
|
|
|
5052
5189
|
this.refreshUpdate(ctx, val, origin, field);
|
|
5053
5190
|
},
|
|
5054
5191
|
appendLink: function appendLink(ctx) {
|
|
5055
|
-
var
|
|
5192
|
+
var _this4 = this;
|
|
5056
5193
|
|
|
5057
5194
|
var link = ctx.rule.link;
|
|
5058
5195
|
is.trueArray(link) && link.forEach(function (field) {
|
|
5059
5196
|
var fn = function fn() {
|
|
5060
|
-
return
|
|
5197
|
+
return _this4.refreshRule(ctx, ctx.rule.value, 'link', field);
|
|
5061
5198
|
};
|
|
5062
5199
|
|
|
5063
|
-
|
|
5200
|
+
_this4.bus.$on('change-' + field, fn);
|
|
5064
5201
|
|
|
5065
5202
|
ctx.linkOn.push(function () {
|
|
5066
|
-
return
|
|
5203
|
+
return _this4.bus.$off('change-' + field, fn);
|
|
5067
5204
|
});
|
|
5068
5205
|
});
|
|
5069
5206
|
},
|
|
@@ -5914,39 +6051,37 @@ var loadData = function loadData(fc) {
|
|
|
5914
6051
|
var loadData = {
|
|
5915
6052
|
name: 'loadData',
|
|
5916
6053
|
_fn: [],
|
|
5917
|
-
|
|
6054
|
+
mounted: function mounted(inject, rule, api) {
|
|
5918
6055
|
this.deleted(inject);
|
|
5919
6056
|
var attrs = toArray(inject.getValue());
|
|
5920
|
-
var
|
|
6057
|
+
var unwatchs = [];
|
|
5921
6058
|
attrs.forEach(function (attr) {
|
|
5922
|
-
if (attr) {
|
|
5923
|
-
var
|
|
5924
|
-
|
|
5925
|
-
fc.bus.$off('p.loadData.' + attr.attr, on);
|
|
5926
|
-
fc.bus.$once('p.loadData.' + attr.attr, on);
|
|
5927
|
-
}
|
|
6059
|
+
if (attr && (attr.attr || attr.template)) {
|
|
6060
|
+
var unwatch = fc.watchLoadData(debounce(function (get) {
|
|
6061
|
+
var value;
|
|
5928
6062
|
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
-
|
|
5932
|
-
value =
|
|
6063
|
+
if (attr.template) {
|
|
6064
|
+
value = fc.$handle.loadStrVar(attr.template, get);
|
|
6065
|
+
} else {
|
|
6066
|
+
value = get(attr.attr, attr["default"]);
|
|
6067
|
+
}
|
|
5933
6068
|
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
}
|
|
6069
|
+
if (attr.copy !== false) {
|
|
6070
|
+
value = deepCopy(value);
|
|
5937
6071
|
}
|
|
5938
6072
|
|
|
5939
6073
|
deepSet(inject.getProp(), attr.to || 'options', value);
|
|
5940
6074
|
api.sync(rule);
|
|
5941
|
-
};
|
|
6075
|
+
}, attr.wait || 300));
|
|
5942
6076
|
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
}
|
|
5946
|
-
|
|
6077
|
+
if (attr.watch !== false) {
|
|
6078
|
+
unwatchs.push(unwatch);
|
|
6079
|
+
} else {
|
|
6080
|
+
unwatch();
|
|
6081
|
+
}
|
|
5947
6082
|
}
|
|
5948
6083
|
});
|
|
5949
|
-
this._fn[inject.id] =
|
|
6084
|
+
this._fn[inject.id] = unwatchs;
|
|
5950
6085
|
},
|
|
5951
6086
|
deleted: function deleted(inject) {
|
|
5952
6087
|
if (this._fn[inject.id]) {
|
|
@@ -6009,6 +6144,7 @@ var fetch = function fetch(fc) {
|
|
|
6009
6144
|
|
|
6010
6145
|
function run(inject, rule, api) {
|
|
6011
6146
|
var option = inject.value;
|
|
6147
|
+
fetchAttr.deleted(inject);
|
|
6012
6148
|
|
|
6013
6149
|
if (is.Function(option)) {
|
|
6014
6150
|
option = option(rule, api);
|
|
@@ -6063,76 +6199,85 @@ var fetch = function fetch(fc) {
|
|
|
6063
6199
|
}
|
|
6064
6200
|
};
|
|
6065
6201
|
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
}, option), {}, {
|
|
6069
|
-
onSuccess: function onSuccess(body, flag) {
|
|
6070
|
-
if (check()) return;
|
|
6202
|
+
fetchAttr._fn[inject.id] = fc.watchLoadData(debounce(function (get) {
|
|
6203
|
+
var _option = fc.$handle.loadFetchVar(deepCopy(option), get);
|
|
6071
6204
|
|
|
6072
|
-
|
|
6073
|
-
|
|
6074
|
-
|
|
6205
|
+
var config = _objectSpread2(_objectSpread2({
|
|
6206
|
+
headers: {}
|
|
6207
|
+
}, _option), {}, {
|
|
6208
|
+
onSuccess: function onSuccess(body, flag) {
|
|
6209
|
+
if (check()) return;
|
|
6075
6210
|
|
|
6076
|
-
|
|
6077
|
-
|
|
6078
|
-
if (is.Function(parse)) {
|
|
6079
|
-
fn = parse;
|
|
6080
|
-
} else if (parse && is.String(parse)) {
|
|
6081
|
-
fn = function fn(v) {
|
|
6082
|
-
parse.split('.').forEach(function (k) {
|
|
6083
|
-
if (v) {
|
|
6084
|
-
v = v[k];
|
|
6085
|
-
}
|
|
6086
|
-
});
|
|
6087
|
-
return v;
|
|
6211
|
+
var fn = function fn(v) {
|
|
6212
|
+
return flag ? v : hasProperty(v, 'data') ? v.data : v;
|
|
6088
6213
|
};
|
|
6089
|
-
}
|
|
6090
6214
|
|
|
6091
|
-
|
|
6092
|
-
api.sync(rule);
|
|
6093
|
-
},
|
|
6094
|
-
onError: function onError(e) {
|
|
6095
|
-
set(undefined);
|
|
6096
|
-
if (check()) return;
|
|
6215
|
+
var parse = parseFn(_option.parse);
|
|
6097
6216
|
|
|
6098
|
-
|
|
6099
|
-
|
|
6100
|
-
|
|
6101
|
-
|
|
6102
|
-
|
|
6217
|
+
if (is.Function(parse)) {
|
|
6218
|
+
fn = parse;
|
|
6219
|
+
} else if (parse && is.String(parse)) {
|
|
6220
|
+
fn = function fn(v) {
|
|
6221
|
+
return deepGet(v, parse);
|
|
6222
|
+
};
|
|
6223
|
+
}
|
|
6103
6224
|
|
|
6104
|
-
|
|
6105
|
-
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
|
|
6110
|
-
config.onSuccess(val, true);
|
|
6111
|
-
})["catch"](function (e) {
|
|
6112
|
-
config.onError(e);
|
|
6113
|
-
});
|
|
6114
|
-
return;
|
|
6115
|
-
}
|
|
6225
|
+
set(fn(body, rule, api));
|
|
6226
|
+
api.sync(rule);
|
|
6227
|
+
},
|
|
6228
|
+
onError: function onError(e) {
|
|
6229
|
+
set(undefined);
|
|
6230
|
+
if (check()) return;
|
|
6116
6231
|
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6232
|
+
(_onError || function (e) {
|
|
6233
|
+
return err(e.message || 'fetch fail ' + _option.action);
|
|
6234
|
+
})(e, rule, api);
|
|
6235
|
+
}
|
|
6236
|
+
});
|
|
6237
|
+
|
|
6238
|
+
fc.$handle.beforeFetch(config, {
|
|
6239
|
+
rule: rule,
|
|
6240
|
+
api: api
|
|
6241
|
+
}).then(function () {
|
|
6242
|
+
if (is.Function(_option.action)) {
|
|
6243
|
+
_option.action(rule, api).then(function (val) {
|
|
6244
|
+
config.onSuccess(val, true);
|
|
6245
|
+
})["catch"](function (e) {
|
|
6246
|
+
config.onError(e);
|
|
6247
|
+
});
|
|
6248
|
+
|
|
6249
|
+
return;
|
|
6250
|
+
}
|
|
6251
|
+
|
|
6252
|
+
invoke(function () {
|
|
6253
|
+
return fc.create.fetch(config, {
|
|
6254
|
+
inject: inject,
|
|
6255
|
+
rule: rule,
|
|
6256
|
+
api: api
|
|
6257
|
+
});
|
|
6122
6258
|
});
|
|
6123
6259
|
});
|
|
6124
|
-
});
|
|
6260
|
+
}, option.wait || 1000));
|
|
6125
6261
|
}
|
|
6126
6262
|
|
|
6127
|
-
|
|
6263
|
+
var fetchAttr = {
|
|
6128
6264
|
name: 'fetch',
|
|
6129
|
-
|
|
6265
|
+
_fn: [],
|
|
6266
|
+
mounted: function mounted() {
|
|
6130
6267
|
run.apply(void 0, arguments);
|
|
6131
6268
|
},
|
|
6132
6269
|
watch: function watch() {
|
|
6133
6270
|
run.apply(void 0, arguments);
|
|
6271
|
+
},
|
|
6272
|
+
deleted: function deleted(inject) {
|
|
6273
|
+
if (this._fn[inject.id]) {
|
|
6274
|
+
this._fn[inject.id]();
|
|
6275
|
+
}
|
|
6276
|
+
|
|
6277
|
+
inject.clearProp();
|
|
6134
6278
|
}
|
|
6135
6279
|
};
|
|
6280
|
+
return fetchAttr;
|
|
6136
6281
|
};
|
|
6137
6282
|
|
|
6138
6283
|
var $provider = {
|
|
@@ -6160,6 +6305,71 @@ var html = {
|
|
|
6160
6305
|
}
|
|
6161
6306
|
};
|
|
6162
6307
|
|
|
6308
|
+
function getCookie(name) {
|
|
6309
|
+
name = name + '=';
|
|
6310
|
+
var decodedCookie = decodeURIComponent(document.cookie);
|
|
6311
|
+
var cookieArray = decodedCookie.split(';');
|
|
6312
|
+
|
|
6313
|
+
for (var i = 0; i < cookieArray.length; i++) {
|
|
6314
|
+
var cookie = cookieArray[i];
|
|
6315
|
+
|
|
6316
|
+
while (cookie.charAt(0) === ' ') {
|
|
6317
|
+
cookie = cookie.substring(1);
|
|
6318
|
+
}
|
|
6319
|
+
|
|
6320
|
+
if (cookie.indexOf(name) === 0) {
|
|
6321
|
+
cookie = cookie.substring(name.length, cookie.length);
|
|
6322
|
+
|
|
6323
|
+
try {
|
|
6324
|
+
return JSON.parse(cookie);
|
|
6325
|
+
} catch (e) {
|
|
6326
|
+
return cookie;
|
|
6327
|
+
}
|
|
6328
|
+
}
|
|
6329
|
+
}
|
|
6330
|
+
|
|
6331
|
+
return null;
|
|
6332
|
+
}
|
|
6333
|
+
|
|
6334
|
+
function getLocalStorage(name) {
|
|
6335
|
+
var value = localStorage.getItem(name);
|
|
6336
|
+
|
|
6337
|
+
if (value) {
|
|
6338
|
+
try {
|
|
6339
|
+
return JSON.parse(value);
|
|
6340
|
+
} catch (e) {
|
|
6341
|
+
return value;
|
|
6342
|
+
}
|
|
6343
|
+
}
|
|
6344
|
+
|
|
6345
|
+
return null;
|
|
6346
|
+
}
|
|
6347
|
+
|
|
6348
|
+
function baseDriver(driver, name) {
|
|
6349
|
+
if (!name) {
|
|
6350
|
+
return null;
|
|
6351
|
+
}
|
|
6352
|
+
|
|
6353
|
+
var split = name.split('.');
|
|
6354
|
+
var value = driver(split.shift());
|
|
6355
|
+
|
|
6356
|
+
if (!split.length) {
|
|
6357
|
+
return value;
|
|
6358
|
+
}
|
|
6359
|
+
|
|
6360
|
+
if (value == null) {
|
|
6361
|
+
return null;
|
|
6362
|
+
}
|
|
6363
|
+
|
|
6364
|
+
return deepGet(value, split);
|
|
6365
|
+
}
|
|
6366
|
+
function cookieDriver(name) {
|
|
6367
|
+
return baseDriver(getCookie, name);
|
|
6368
|
+
}
|
|
6369
|
+
function localStorageDriver(name) {
|
|
6370
|
+
return baseDriver(getLocalStorage, name);
|
|
6371
|
+
}
|
|
6372
|
+
|
|
6163
6373
|
function parseProp(name, id) {
|
|
6164
6374
|
var prop;
|
|
6165
6375
|
|
|
@@ -6357,23 +6567,53 @@ function FormCreateFactory(config) {
|
|
|
6357
6567
|
formulas[name] = fn;
|
|
6358
6568
|
}
|
|
6359
6569
|
|
|
6360
|
-
function
|
|
6570
|
+
function emitData(id) {
|
|
6361
6571
|
Object.keys(instance).forEach(function (v) {
|
|
6362
6572
|
var apis = Array.isArray(instance[v]) ? instance[v] : [instance[v]];
|
|
6363
6573
|
apis.forEach(function (that) {
|
|
6364
|
-
that.bus.$emit('
|
|
6574
|
+
that.bus.$emit('$loadData.' + id);
|
|
6365
6575
|
});
|
|
6366
6576
|
});
|
|
6367
6577
|
}
|
|
6368
6578
|
|
|
6369
6579
|
function setData(id, data) {
|
|
6370
6580
|
loadData[id] = data;
|
|
6581
|
+
emitData(id);
|
|
6582
|
+
}
|
|
6583
|
+
|
|
6584
|
+
function setDataDriver(id, data) {
|
|
6585
|
+
var callback = function callback() {
|
|
6586
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
6587
|
+
args[_key] = arguments[_key];
|
|
6588
|
+
}
|
|
6589
|
+
|
|
6590
|
+
return invoke(function () {
|
|
6591
|
+
return data.apply(void 0, args);
|
|
6592
|
+
});
|
|
6593
|
+
};
|
|
6371
6594
|
|
|
6372
|
-
|
|
6595
|
+
callback._driver = true;
|
|
6596
|
+
setData(id, callback);
|
|
6373
6597
|
}
|
|
6374
6598
|
|
|
6375
6599
|
function getData(id, def) {
|
|
6376
|
-
|
|
6600
|
+
var split = (id || '').split('.');
|
|
6601
|
+
id = split.shift();
|
|
6602
|
+
var field = split.join('.');
|
|
6603
|
+
|
|
6604
|
+
if (hasProperty(loadData, id)) {
|
|
6605
|
+
var val = loadData[id];
|
|
6606
|
+
|
|
6607
|
+
if (val && val._driver) {
|
|
6608
|
+
val = val(field);
|
|
6609
|
+
} else if (split.length) {
|
|
6610
|
+
val = deepGet(val, split);
|
|
6611
|
+
}
|
|
6612
|
+
|
|
6613
|
+
return val == null || val === '' ? def : val;
|
|
6614
|
+
} else {
|
|
6615
|
+
return def;
|
|
6616
|
+
}
|
|
6377
6617
|
}
|
|
6378
6618
|
|
|
6379
6619
|
function extendApi(fn) {
|
|
@@ -6382,8 +6622,7 @@ function FormCreateFactory(config) {
|
|
|
6382
6622
|
|
|
6383
6623
|
function removeData(id) {
|
|
6384
6624
|
delete loadData[id];
|
|
6385
|
-
|
|
6386
|
-
_emitData(id);
|
|
6625
|
+
emitData(id);
|
|
6387
6626
|
}
|
|
6388
6627
|
|
|
6389
6628
|
function on(name, callback) {
|
|
@@ -6415,12 +6654,14 @@ function FormCreateFactory(config) {
|
|
|
6415
6654
|
},
|
|
6416
6655
|
setData: setData,
|
|
6417
6656
|
getData: getData,
|
|
6657
|
+
emitData: emitData,
|
|
6418
6658
|
loadData: loadData,
|
|
6419
6659
|
CreateNode: CreateNode,
|
|
6420
6660
|
bus: new Mitt(),
|
|
6421
6661
|
unwatch: null,
|
|
6422
6662
|
options: ref({}),
|
|
6423
|
-
extendApiFn: extendApiFn
|
|
6663
|
+
extendApiFn: extendApiFn,
|
|
6664
|
+
fetchCache: new WeakMap()
|
|
6424
6665
|
});
|
|
6425
6666
|
listener.forEach(function (item) {
|
|
6426
6667
|
_this.bus.$on(item.name, item.callback);
|
|
@@ -6468,6 +6709,159 @@ function FormCreateFactory(config) {
|
|
|
6468
6709
|
this.initOptions();
|
|
6469
6710
|
this.$handle.init();
|
|
6470
6711
|
},
|
|
6712
|
+
globalDataDriver: function globalDataDriver(id) {
|
|
6713
|
+
var _this3 = this;
|
|
6714
|
+
|
|
6715
|
+
var split = id.split('.');
|
|
6716
|
+
var key = split.shift();
|
|
6717
|
+
var option = this.options.value.globalData && this.options.value.globalData[key];
|
|
6718
|
+
|
|
6719
|
+
if (option) {
|
|
6720
|
+
if (option.type === 'static') {
|
|
6721
|
+
return deepGet(option.data, split);
|
|
6722
|
+
} else {
|
|
6723
|
+
var val;
|
|
6724
|
+
var res = this.fetchCache.get(option);
|
|
6725
|
+
|
|
6726
|
+
if (res) {
|
|
6727
|
+
if (res.status) {
|
|
6728
|
+
val = deepGet(res.data, split);
|
|
6729
|
+
}
|
|
6730
|
+
|
|
6731
|
+
if (!res.loading) {
|
|
6732
|
+
return val;
|
|
6733
|
+
}
|
|
6734
|
+
|
|
6735
|
+
res.loading = false;
|
|
6736
|
+
this.fetchCache.set(option, res);
|
|
6737
|
+
} else {
|
|
6738
|
+
this.fetchCache.set(option, {
|
|
6739
|
+
status: false
|
|
6740
|
+
});
|
|
6741
|
+
}
|
|
6742
|
+
|
|
6743
|
+
var reload = debounce(function () {
|
|
6744
|
+
unwatch();
|
|
6745
|
+
|
|
6746
|
+
var res = _this3.fetchCache.get(option);
|
|
6747
|
+
|
|
6748
|
+
if (_this3.options.value.globalData && Object.values(_this3.options.value.globalData).indexOf(option) !== -1) {
|
|
6749
|
+
if (res) {
|
|
6750
|
+
res.loading = true;
|
|
6751
|
+
|
|
6752
|
+
_this3.fetchCache.set(option, res);
|
|
6753
|
+
}
|
|
6754
|
+
|
|
6755
|
+
_this3.bus.$emit('$loadData.$globalData');
|
|
6756
|
+
} else {
|
|
6757
|
+
_this3.fetchCache["delete"](option);
|
|
6758
|
+
}
|
|
6759
|
+
}, option.wait || 1000);
|
|
6760
|
+
|
|
6761
|
+
var callback = function callback(get, change) {
|
|
6762
|
+
if (change) {
|
|
6763
|
+
reload();
|
|
6764
|
+
return;
|
|
6765
|
+
}
|
|
6766
|
+
|
|
6767
|
+
var options = _this3.$handle.loadFetchVar(copy$1(option), get);
|
|
6768
|
+
|
|
6769
|
+
_this3.$handle.api.fetch(options).then(function (res) {
|
|
6770
|
+
_this3.fetchCache.set(option, {
|
|
6771
|
+
status: true,
|
|
6772
|
+
data: res
|
|
6773
|
+
});
|
|
6774
|
+
|
|
6775
|
+
_this3.bus.$emit('$loadData.$globalData');
|
|
6776
|
+
});
|
|
6777
|
+
};
|
|
6778
|
+
|
|
6779
|
+
var unwatch = this.watchLoadData(callback);
|
|
6780
|
+
return val;
|
|
6781
|
+
}
|
|
6782
|
+
}
|
|
6783
|
+
},
|
|
6784
|
+
getLoadData: function getLoadData(id, def) {
|
|
6785
|
+
var val = null;
|
|
6786
|
+
|
|
6787
|
+
if (id != null) {
|
|
6788
|
+
var split = id.split('.');
|
|
6789
|
+
var key = split.shift();
|
|
6790
|
+
|
|
6791
|
+
if (key === '$form') {
|
|
6792
|
+
val = this.$handle.api.top.formData();
|
|
6793
|
+
} else if (key === '$subForm') {
|
|
6794
|
+
val = this.$handle.api.formData();
|
|
6795
|
+
} else if (key === '$options') {
|
|
6796
|
+
val = this.options.value;
|
|
6797
|
+
} else if (key === '$globalData') {
|
|
6798
|
+
val = this.globalDataDriver(split.join('.'));
|
|
6799
|
+
split = [];
|
|
6800
|
+
} else {
|
|
6801
|
+
val = getData(id, def);
|
|
6802
|
+
split = [];
|
|
6803
|
+
}
|
|
6804
|
+
|
|
6805
|
+
if (split.length) {
|
|
6806
|
+
val = deepGet(val, split);
|
|
6807
|
+
}
|
|
6808
|
+
}
|
|
6809
|
+
|
|
6810
|
+
console.log(id, val);
|
|
6811
|
+
return val == null || val === '' ? def : val;
|
|
6812
|
+
},
|
|
6813
|
+
watchLoadData: function watchLoadData(fn) {
|
|
6814
|
+
var _this4 = this;
|
|
6815
|
+
|
|
6816
|
+
var unwatch = {};
|
|
6817
|
+
|
|
6818
|
+
var run = function run(flag) {
|
|
6819
|
+
invoke(function () {
|
|
6820
|
+
fn(get, flag);
|
|
6821
|
+
});
|
|
6822
|
+
};
|
|
6823
|
+
|
|
6824
|
+
var get = function get(id, def) {
|
|
6825
|
+
if (unwatch[id]) {
|
|
6826
|
+
return unwatch[id].val;
|
|
6827
|
+
}
|
|
6828
|
+
|
|
6829
|
+
var val = _this4.getLoadData(id, def);
|
|
6830
|
+
|
|
6831
|
+
var key = id.split('.').shift();
|
|
6832
|
+
|
|
6833
|
+
var callback = function callback() {
|
|
6834
|
+
if (key !== id) {
|
|
6835
|
+
var temp = _this4.getLoadData(id, def);
|
|
6836
|
+
|
|
6837
|
+
if (JSON.stringify(temp) !== JSON.stringify(unwatch[id].val)) {
|
|
6838
|
+
unwatch[id].val = temp;
|
|
6839
|
+
run(true);
|
|
6840
|
+
}
|
|
6841
|
+
} else {
|
|
6842
|
+
run(true);
|
|
6843
|
+
}
|
|
6844
|
+
};
|
|
6845
|
+
|
|
6846
|
+
_this4.bus.$on('$loadData.' + key, callback);
|
|
6847
|
+
|
|
6848
|
+
unwatch[id] = {
|
|
6849
|
+
fn: function fn() {
|
|
6850
|
+
_this4.bus.$off('$loadData.' + key, callback);
|
|
6851
|
+
},
|
|
6852
|
+
val: val
|
|
6853
|
+
};
|
|
6854
|
+
return val;
|
|
6855
|
+
};
|
|
6856
|
+
|
|
6857
|
+
run(false);
|
|
6858
|
+
return function () {
|
|
6859
|
+
Object.keys(unwatch).forEach(function (k) {
|
|
6860
|
+
return unwatch[k].fn();
|
|
6861
|
+
});
|
|
6862
|
+
unwatch = {};
|
|
6863
|
+
};
|
|
6864
|
+
},
|
|
6471
6865
|
isSub: function isSub() {
|
|
6472
6866
|
return this.vm.setupState.parent && this.vm.props.extendOption;
|
|
6473
6867
|
},
|
|
@@ -6506,6 +6900,7 @@ function FormCreateFactory(config) {
|
|
|
6506
6900
|
updateOptions: function updateOptions(options) {
|
|
6507
6901
|
this.options.value = this.mergeOptions(this.options.value, options);
|
|
6508
6902
|
this.$handle.$manager.updateOptions(this.options.value);
|
|
6903
|
+
this.bus.$emit('$loadData.$options');
|
|
6509
6904
|
},
|
|
6510
6905
|
api: function api() {
|
|
6511
6906
|
return this.$handle.api;
|
|
@@ -6517,6 +6912,8 @@ function FormCreateFactory(config) {
|
|
|
6517
6912
|
this.$handle.mounted();
|
|
6518
6913
|
},
|
|
6519
6914
|
unmount: function unmount() {
|
|
6915
|
+
var _this5 = this;
|
|
6916
|
+
|
|
6520
6917
|
if (this.name) {
|
|
6521
6918
|
if (this.inFor) {
|
|
6522
6919
|
var idx = instance[this.name].indexOf(this);
|
|
@@ -6526,14 +6923,17 @@ function FormCreateFactory(config) {
|
|
|
6526
6923
|
}
|
|
6527
6924
|
}
|
|
6528
6925
|
|
|
6926
|
+
listener.forEach(function (item) {
|
|
6927
|
+
_this5.bus.$off(item.name, item.callback);
|
|
6928
|
+
});
|
|
6529
6929
|
this.unwatch && this.unwatch();
|
|
6530
6930
|
this.$handle.reloadRule([]);
|
|
6531
6931
|
},
|
|
6532
6932
|
updated: function updated() {
|
|
6533
|
-
var
|
|
6933
|
+
var _this6 = this;
|
|
6534
6934
|
|
|
6535
6935
|
this.$handle.bindNextTick(function () {
|
|
6536
|
-
return
|
|
6936
|
+
return _this6.bus.$emit('next-tick', _this6.$handle.api);
|
|
6537
6937
|
});
|
|
6538
6938
|
}
|
|
6539
6939
|
});
|
|
@@ -6544,6 +6944,7 @@ function FormCreateFactory(config) {
|
|
|
6544
6944
|
ui: config.ui,
|
|
6545
6945
|
extendApi: extendApi,
|
|
6546
6946
|
getData: getData,
|
|
6947
|
+
setDataDriver: setDataDriver,
|
|
6547
6948
|
setData: setData,
|
|
6548
6949
|
removeData: removeData,
|
|
6549
6950
|
maker: maker,
|
|
@@ -6576,8 +6977,9 @@ function FormCreateFactory(config) {
|
|
|
6576
6977
|
isMobile: isMobile,
|
|
6577
6978
|
install: function install(app, options) {
|
|
6578
6979
|
globalConfig = _objectSpread2(_objectSpread2({}, globalConfig), options || {});
|
|
6579
|
-
|
|
6580
|
-
app
|
|
6980
|
+
var key = '_installedFormCreate_' + config.ui;
|
|
6981
|
+
if (app[key] === true) return;
|
|
6982
|
+
app[key] = true;
|
|
6581
6983
|
|
|
6582
6984
|
var $formCreate = function $formCreate(rules) {
|
|
6583
6985
|
var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
@@ -6599,6 +7001,8 @@ function FormCreateFactory(config) {
|
|
|
6599
7001
|
|
|
6600
7002
|
useAttr(create);
|
|
6601
7003
|
useStatic(create);
|
|
7004
|
+
setDataDriver('$cookie', cookieDriver);
|
|
7005
|
+
setDataDriver('$localStorage', localStorageDriver);
|
|
6602
7006
|
CreateNode.use({
|
|
6603
7007
|
fragment: 'fcFragment'
|
|
6604
7008
|
});
|
|
@@ -6623,7 +7027,10 @@ function FormCreateFactory(config) {
|
|
|
6623
7027
|
inherit.formulas && extend(formulas, inherit.formulas);
|
|
6624
7028
|
}
|
|
6625
7029
|
|
|
6626
|
-
|
|
7030
|
+
var FcComponent = $form();
|
|
7031
|
+
setPrototypeOf(FcComponent, create);
|
|
7032
|
+
FcComponent.util = create;
|
|
7033
|
+
return FcComponent;
|
|
6627
7034
|
}
|
|
6628
7035
|
|
|
6629
7036
|
var DEFAULT_FORMATS = {
|
|
@@ -7253,7 +7660,7 @@ function useFrame(maker) {
|
|
|
7253
7660
|
return maker;
|
|
7254
7661
|
}
|
|
7255
7662
|
|
|
7256
|
-
var css_248z = ".form-create .form-create .el-form-item{margin-bottom:22px}.form-create{width:100%}.form-create .fc-none,.form-create.is-preview .el-form-item.is-required>.el-form-item__label-wrap>.el-form-item__label:before,.form-create.is-preview .el-form-item.is-required>.el-form-item__label:before,.form-create.is-preview .fc-clock{display:none!important}";
|
|
7663
|
+
var css_248z = ".form-create .form-create .el-form-item{margin-bottom:22px}.form-create{width:100%}.form-create .fc-none,.form-create.is-preview .el-form-item.is-required>.el-form-item__label-wrap>.el-form-item__label:before,.form-create.is-preview .el-form-item.is-required>.el-form-item__label:before,.form-create.is-preview .fc-clock{display:none!important}.fc-wrap-left .el-form-item__label{justify-content:flex-start;justify-content:flex-end}.fc-wrap-top.el-form-item{display:block}.fc-wrap-top.el-form-item .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;text-align:left}.el-form--large .fc-wrap-top.el-form-item .el-form-item__label{line-height:22px;margin-bottom:12px}.el-form--default .fc-wrap-top.el-form-item .el-form-item__label{line-height:22px;margin-bottom:8px}.el-form--small .fc-wrap-top.el-form-item .el-form-item__label{line-height:20px;margin-bottom:4px}";
|
|
7257
7664
|
styleInject(css_248z);
|
|
7258
7665
|
|
|
7259
7666
|
function tidyBtnProp(btn, def) {
|
|
@@ -7506,7 +7913,7 @@ function install(FormCreate) {
|
|
|
7506
7913
|
function elmFormCreate() {
|
|
7507
7914
|
return FormCreateFactory({
|
|
7508
7915
|
ui: 'element-ui',
|
|
7509
|
-
version: '3.2.
|
|
7916
|
+
version: '3.2.1',
|
|
7510
7917
|
manager: manager,
|
|
7511
7918
|
extendApi: extendApi,
|
|
7512
7919
|
install: install,
|