@form-create/element-ui 3.1.35 → 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/README.md +1 -1
- package/dist/form-create.esm.js +683 -259
- package/dist/form-create.esm.min.js +2 -2
- package/dist/form-create.js +683 -259
- package/dist/form-create.min.js +2 -2
- package/package.json +11 -11
- package/src/core/manager.js +2 -0
- package/src/style/index.css +35 -4
package/dist/form-create.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/element-ui v3.1
|
|
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.
|
|
@@ -213,9 +213,9 @@
|
|
|
213
213
|
return Array.isArray(value) ? value : [null, undefined, ''].indexOf(value) > -1 ? [] : [value];
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
var NAME$
|
|
216
|
+
var NAME$8 = 'fcCheckbox';
|
|
217
217
|
var Checkbox = vue.defineComponent({
|
|
218
|
-
name: NAME$
|
|
218
|
+
name: NAME$8,
|
|
219
219
|
inheritAttrs: false,
|
|
220
220
|
props: {
|
|
221
221
|
formCreateInject: Object,
|
|
@@ -525,9 +525,9 @@
|
|
|
525
525
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
526
526
|
}
|
|
527
527
|
|
|
528
|
-
var NAME$
|
|
528
|
+
var NAME$7 = 'fcFrame';
|
|
529
529
|
var Frame = vue.defineComponent({
|
|
530
|
-
name: NAME$
|
|
530
|
+
name: NAME$7,
|
|
531
531
|
props: {
|
|
532
532
|
type: {
|
|
533
533
|
type: String,
|
|
@@ -1008,9 +1008,9 @@
|
|
|
1008
1008
|
}
|
|
1009
1009
|
});
|
|
1010
1010
|
|
|
1011
|
-
var NAME$
|
|
1011
|
+
var NAME$6 = 'fcRadio';
|
|
1012
1012
|
var Radio = vue.defineComponent({
|
|
1013
|
-
name: NAME$
|
|
1013
|
+
name: NAME$6,
|
|
1014
1014
|
inheritAttrs: false,
|
|
1015
1015
|
props: {
|
|
1016
1016
|
formCreateInject: Object,
|
|
@@ -1161,9 +1161,9 @@
|
|
|
1161
1161
|
return {}.hasOwnProperty.call(rule, k);
|
|
1162
1162
|
}
|
|
1163
1163
|
|
|
1164
|
-
var NAME$
|
|
1164
|
+
var NAME$5 = 'fcSelect';
|
|
1165
1165
|
var Select = vue.defineComponent({
|
|
1166
|
-
name: NAME$
|
|
1166
|
+
name: NAME$5,
|
|
1167
1167
|
inheritAttrs: false,
|
|
1168
1168
|
props: {
|
|
1169
1169
|
formCreateInject: Object,
|
|
@@ -1231,9 +1231,9 @@
|
|
|
1231
1231
|
}
|
|
1232
1232
|
});
|
|
1233
1233
|
|
|
1234
|
-
var NAME$
|
|
1234
|
+
var NAME$4 = 'fcTree';
|
|
1235
1235
|
var Tree = vue.defineComponent({
|
|
1236
|
-
name: NAME$
|
|
1236
|
+
name: NAME$4,
|
|
1237
1237
|
inheritAttrs: false,
|
|
1238
1238
|
formCreateParser: {
|
|
1239
1239
|
mergeProp: function mergeProp(ctx) {
|
|
@@ -1333,9 +1333,9 @@
|
|
|
1333
1333
|
return ('' + file).split('/').pop();
|
|
1334
1334
|
}
|
|
1335
1335
|
|
|
1336
|
-
var NAME$
|
|
1336
|
+
var NAME$3 = 'fcUpload';
|
|
1337
1337
|
var Upload = vue.defineComponent({
|
|
1338
|
-
name: NAME$
|
|
1338
|
+
name: NAME$3,
|
|
1339
1339
|
inheritAttrs: false,
|
|
1340
1340
|
formCreateParser: {
|
|
1341
1341
|
toFormValue: function toFormValue(value) {
|
|
@@ -1527,9 +1527,9 @@
|
|
|
1527
1527
|
var css_248z$1 = "._fc-group{display:flex;flex-direction:column;justify-content:center;min-height:38px;width:100%}._fc-group-disabled ._fc-group-add,._fc-group-disabled ._fc-group-btn{cursor:not-allowed}._fc-group-handle{background-color:#fff;border:1px dashed #d9d9d9;border-radius:15px;bottom:-15px;display:flex;flex-direction:row;padding:3px 8px;position:absolute;right:30px}._fc-group-btn{cursor:pointer}._fc-group-idx{align-items:center;background:#eee;border-radius:15px;bottom:-15px;display:flex;font-weight:700;height:30px;justify-content:center;left:10px;position:absolute;width:30px}._fc-group-handle ._fc-group-btn+._fc-group-btn{margin-left:7px}._fc-group-container{border:1px dashed #d9d9d9;border-radius:5px;display:flex;flex-direction:column;margin:5px 5px 25px;padding:20px 20px 25px;position:relative}._fc-group-arrow{height:20px;position:relative;width:20px}._fc-group-arrow:before{border-left:2px solid #999;border-top:2px solid #999;content:\"\";height:9px;left:5px;position:absolute;top:8px;transform:rotate(45deg);width:9px}._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group-plus-minus{cursor:pointer;height:20px;position:relative;width:20px}._fc-group-plus-minus:after,._fc-group-plus-minus:before{background-color:#409eff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60%}._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group-plus-minus._fc-group-minus:after{background-color:#f56c6c}._fc-group-add{border:1px solid rgba(64,158,255,.5);border-radius:15px;cursor:pointer;height:25px;width:25px}._fc-group-add._fc-group-plus-minus:after,._fc-group-add._fc-group-plus-minus:before{width:50%}";
|
|
1528
1528
|
styleInject(css_248z$1);
|
|
1529
1529
|
|
|
1530
|
-
var NAME$
|
|
1530
|
+
var NAME$2 = 'fcGroup';
|
|
1531
1531
|
var Group = vue.defineComponent({
|
|
1532
|
-
name: NAME$
|
|
1532
|
+
name: NAME$2,
|
|
1533
1533
|
props: {
|
|
1534
1534
|
field: String,
|
|
1535
1535
|
rule: Array,
|
|
@@ -1939,9 +1939,9 @@
|
|
|
1939
1939
|
}
|
|
1940
1940
|
});
|
|
1941
1941
|
|
|
1942
|
-
var NAME$
|
|
1942
|
+
var NAME$1 = 'fcSubForm';
|
|
1943
1943
|
var Sub = vue.defineComponent({
|
|
1944
|
-
name: NAME$
|
|
1944
|
+
name: NAME$1,
|
|
1945
1945
|
props: {
|
|
1946
1946
|
rule: Array,
|
|
1947
1947
|
options: {
|
|
@@ -2046,8 +2046,20 @@
|
|
|
2046
2046
|
|
|
2047
2047
|
var components = [Checkbox, Frame, Radio, Select, Tree, Upload, Group, Sub, script];
|
|
2048
2048
|
|
|
2049
|
-
function
|
|
2050
|
-
|
|
2049
|
+
function debounce(fn, wait) {
|
|
2050
|
+
var timeout = null;
|
|
2051
|
+
return function () {
|
|
2052
|
+
var _this = this;
|
|
2053
|
+
|
|
2054
|
+
for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2055
|
+
arg[_key] = arguments[_key];
|
|
2056
|
+
}
|
|
2057
|
+
|
|
2058
|
+
if (timeout !== null) clearTimeout(timeout);
|
|
2059
|
+
timeout = setTimeout(function () {
|
|
2060
|
+
return fn.call.apply(fn, [_this].concat(arg));
|
|
2061
|
+
}, wait);
|
|
2062
|
+
};
|
|
2051
2063
|
}
|
|
2052
2064
|
|
|
2053
2065
|
function toLine(name) {
|
|
@@ -2059,131 +2071,6 @@
|
|
|
2059
2071
|
return str.replace(str[0], str[0].toLocaleUpperCase());
|
|
2060
2072
|
}
|
|
2061
2073
|
|
|
2062
|
-
function format(type, msg, rule) {
|
|
2063
|
-
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2064
|
-
}
|
|
2065
|
-
function err(msg, rule) {
|
|
2066
|
-
console.error(format('err', msg, rule));
|
|
2067
|
-
}
|
|
2068
|
-
function logError(e) {
|
|
2069
|
-
err(e.toString());
|
|
2070
|
-
console.error(e);
|
|
2071
|
-
}
|
|
2072
|
-
|
|
2073
|
-
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2074
|
-
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2075
|
-
var $T = '$FN:';
|
|
2076
|
-
var $TX = '$FNX:';
|
|
2077
|
-
var $ON = '$GLOBAL:';
|
|
2078
|
-
var FUNCTION = 'function';
|
|
2079
|
-
function toJson(obj, space) {
|
|
2080
|
-
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2081
|
-
if (val && val._isVue === true) return undefined;
|
|
2082
|
-
|
|
2083
|
-
if (_typeof(val) !== FUNCTION) {
|
|
2084
|
-
return val;
|
|
2085
|
-
}
|
|
2086
|
-
|
|
2087
|
-
if (val.__json) {
|
|
2088
|
-
return val.__json;
|
|
2089
|
-
}
|
|
2090
|
-
|
|
2091
|
-
if (val.__origin) val = val.__origin;
|
|
2092
|
-
if (val.__emit) return undefined;
|
|
2093
|
-
return PREFIX + val + SUFFIX;
|
|
2094
|
-
}, space);
|
|
2095
|
-
}
|
|
2096
|
-
|
|
2097
|
-
function makeFn(fn) {
|
|
2098
|
-
return new Function('return ' + fn)();
|
|
2099
|
-
}
|
|
2100
|
-
|
|
2101
|
-
function parseFn(fn, mode) {
|
|
2102
|
-
if (fn && is.String(fn) && fn.length > 4) {
|
|
2103
|
-
var v = fn.trim();
|
|
2104
|
-
var flag = false;
|
|
2105
|
-
|
|
2106
|
-
try {
|
|
2107
|
-
if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {
|
|
2108
|
-
v = v.replace(SUFFIX, '').replace(PREFIX, '');
|
|
2109
|
-
flag = true;
|
|
2110
|
-
} else if (v.indexOf($T) === 0) {
|
|
2111
|
-
v = v.replace($T, '');
|
|
2112
|
-
flag = true;
|
|
2113
|
-
} else if (v.indexOf($ON) === 0) {
|
|
2114
|
-
var name = v.replace($ON, '');
|
|
2115
|
-
|
|
2116
|
-
v = function v() {
|
|
2117
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2118
|
-
args[_key] = arguments[_key];
|
|
2119
|
-
}
|
|
2120
|
-
|
|
2121
|
-
var callback = args[0].api.getGlobalEvent(name);
|
|
2122
|
-
|
|
2123
|
-
if (callback) {
|
|
2124
|
-
return callback.call.apply(callback, [this].concat(args));
|
|
2125
|
-
}
|
|
2126
|
-
|
|
2127
|
-
return undefined;
|
|
2128
|
-
};
|
|
2129
|
-
|
|
2130
|
-
v.__json = fn;
|
|
2131
|
-
v.__inject = true;
|
|
2132
|
-
return v;
|
|
2133
|
-
} else if (v.indexOf($TX) === 0) {
|
|
2134
|
-
v = makeFn('function($inject){' + v.replace($TX, '') + '}');
|
|
2135
|
-
v.__json = fn;
|
|
2136
|
-
v.__inject = true;
|
|
2137
|
-
return v;
|
|
2138
|
-
} else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {
|
|
2139
|
-
flag = true;
|
|
2140
|
-
}
|
|
2141
|
-
|
|
2142
|
-
if (!flag) return fn;
|
|
2143
|
-
var val = makeFn(v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0 ? FUNCTION + ' ' + v : v);
|
|
2144
|
-
val.__json = fn;
|
|
2145
|
-
return val;
|
|
2146
|
-
} catch (e) {
|
|
2147
|
-
err("\u89E3\u6790\u5931\u8D25:".concat(v, "\n\nerr: ").concat(e));
|
|
2148
|
-
return undefined;
|
|
2149
|
-
}
|
|
2150
|
-
}
|
|
2151
|
-
|
|
2152
|
-
return fn;
|
|
2153
|
-
}
|
|
2154
|
-
function parseJson(json, mode) {
|
|
2155
|
-
return JSON.parse(json, function (k, v) {
|
|
2156
|
-
if (is.Undef(v) || !v.indexOf) return v;
|
|
2157
|
-
return parseFn(v, mode);
|
|
2158
|
-
});
|
|
2159
|
-
}
|
|
2160
|
-
|
|
2161
|
-
var id$2 = 0;
|
|
2162
|
-
function uniqueId() {
|
|
2163
|
-
var num = 370 + ++id$2;
|
|
2164
|
-
return 'F' + Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now())).toString(36) + num.toString(36) + 'c';
|
|
2165
|
-
}
|
|
2166
|
-
|
|
2167
|
-
function deepSet(data, idx, val) {
|
|
2168
|
-
var _data = data,
|
|
2169
|
-
to;
|
|
2170
|
-
(idx || '').split('.').forEach(function (v) {
|
|
2171
|
-
if (to) {
|
|
2172
|
-
if (!_data[to] || _typeof(_data[to]) != 'object') {
|
|
2173
|
-
_data[to] = {};
|
|
2174
|
-
}
|
|
2175
|
-
|
|
2176
|
-
_data = _data[to];
|
|
2177
|
-
}
|
|
2178
|
-
|
|
2179
|
-
to = v;
|
|
2180
|
-
});
|
|
2181
|
-
_data[to] = val;
|
|
2182
|
-
return _data;
|
|
2183
|
-
}
|
|
2184
|
-
|
|
2185
|
-
var NAME$1 = 'FormCreate';
|
|
2186
|
-
|
|
2187
2074
|
var getRuleInject = function getRuleInject(vm, parent) {
|
|
2188
2075
|
if (!vm || vm === parent) {
|
|
2189
2076
|
return;
|
|
@@ -2200,7 +2087,7 @@
|
|
|
2200
2087
|
|
|
2201
2088
|
function $FormCreate(FormCreate, components, directives) {
|
|
2202
2089
|
return vue.defineComponent({
|
|
2203
|
-
name:
|
|
2090
|
+
name: 'FormCreate' + (FormCreate.isMobile ? 'Mobile' : ''),
|
|
2204
2091
|
components: components,
|
|
2205
2092
|
directives: directives,
|
|
2206
2093
|
props: {
|
|
@@ -2328,10 +2215,24 @@
|
|
|
2328
2215
|
document.head.appendChild(styleEl);
|
|
2329
2216
|
}
|
|
2330
2217
|
});
|
|
2218
|
+
var emit$topForm = debounce(function () {
|
|
2219
|
+
fc.bus.$emit('$loadData.$topForm');
|
|
2220
|
+
}, 100);
|
|
2221
|
+
var emit$form = debounce(function () {
|
|
2222
|
+
fc.bus.$emit('$loadData.$form');
|
|
2223
|
+
}, 100);
|
|
2331
2224
|
vue.onMounted(function () {
|
|
2225
|
+
if (parent) {
|
|
2226
|
+
fapi.top.bus.$on('$loadData.$form', emit$topForm);
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2332
2229
|
fc.mounted();
|
|
2333
2230
|
});
|
|
2334
2231
|
vue.onBeforeUnmount(function () {
|
|
2232
|
+
if (parent) {
|
|
2233
|
+
fapi.top.bus.$off('$loadData.$form', emit$topForm);
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2335
2236
|
styleEl && document.head.removeChild(styleEl);
|
|
2336
2237
|
rmSubForm();
|
|
2337
2238
|
data.destroyed = true;
|
|
@@ -2394,6 +2295,13 @@
|
|
|
2394
2295
|
|
|
2395
2296
|
data.updateValue = json;
|
|
2396
2297
|
vm.emit('update:modelValue', value);
|
|
2298
|
+
vue.nextTick(function () {
|
|
2299
|
+
emit$form();
|
|
2300
|
+
|
|
2301
|
+
if (!parent) {
|
|
2302
|
+
emit$topForm();
|
|
2303
|
+
}
|
|
2304
|
+
});
|
|
2397
2305
|
}
|
|
2398
2306
|
});
|
|
2399
2307
|
},
|
|
@@ -2481,6 +2389,105 @@
|
|
|
2481
2389
|
return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
|
|
2482
2390
|
}
|
|
2483
2391
|
|
|
2392
|
+
function format(type, msg, rule) {
|
|
2393
|
+
return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
|
|
2394
|
+
}
|
|
2395
|
+
function err(msg, rule) {
|
|
2396
|
+
console.error(format('err', msg, rule));
|
|
2397
|
+
}
|
|
2398
|
+
function logError(e) {
|
|
2399
|
+
err(e.toString());
|
|
2400
|
+
console.error(e);
|
|
2401
|
+
}
|
|
2402
|
+
|
|
2403
|
+
var PREFIX = '[[FORM-CREATE-PREFIX-';
|
|
2404
|
+
var SUFFIX = '-FORM-CREATE-SUFFIX]]';
|
|
2405
|
+
var $T = '$FN:';
|
|
2406
|
+
var $TX = '$FNX:';
|
|
2407
|
+
var $ON = '$GLOBAL:';
|
|
2408
|
+
var FUNCTION = 'function';
|
|
2409
|
+
function toJson(obj, space) {
|
|
2410
|
+
return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {
|
|
2411
|
+
if (val && val._isVue === true) return undefined;
|
|
2412
|
+
|
|
2413
|
+
if (_typeof(val) !== FUNCTION) {
|
|
2414
|
+
return val;
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
if (val.__json) {
|
|
2418
|
+
return val.__json;
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
if (val.__origin) val = val.__origin;
|
|
2422
|
+
if (val.__emit) return undefined;
|
|
2423
|
+
return PREFIX + val + SUFFIX;
|
|
2424
|
+
}, space);
|
|
2425
|
+
}
|
|
2426
|
+
|
|
2427
|
+
function makeFn(fn) {
|
|
2428
|
+
return new Function('return ' + fn)();
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2431
|
+
function parseFn(fn, mode) {
|
|
2432
|
+
if (fn && is.String(fn) && fn.length > 4) {
|
|
2433
|
+
var v = fn.trim();
|
|
2434
|
+
var flag = false;
|
|
2435
|
+
|
|
2436
|
+
try {
|
|
2437
|
+
if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {
|
|
2438
|
+
v = v.replace(SUFFIX, '').replace(PREFIX, '');
|
|
2439
|
+
flag = true;
|
|
2440
|
+
} else if (v.indexOf($T) === 0) {
|
|
2441
|
+
v = v.replace($T, '');
|
|
2442
|
+
flag = true;
|
|
2443
|
+
} else if (v.indexOf($ON) === 0) {
|
|
2444
|
+
var name = v.replace($ON, '');
|
|
2445
|
+
|
|
2446
|
+
v = function v() {
|
|
2447
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2448
|
+
args[_key] = arguments[_key];
|
|
2449
|
+
}
|
|
2450
|
+
|
|
2451
|
+
var callback = args[0].api.getGlobalEvent(name);
|
|
2452
|
+
|
|
2453
|
+
if (callback) {
|
|
2454
|
+
return callback.call.apply(callback, [this].concat(args));
|
|
2455
|
+
}
|
|
2456
|
+
|
|
2457
|
+
return undefined;
|
|
2458
|
+
};
|
|
2459
|
+
|
|
2460
|
+
v.__json = fn;
|
|
2461
|
+
v.__inject = true;
|
|
2462
|
+
return v;
|
|
2463
|
+
} else if (v.indexOf($TX) === 0) {
|
|
2464
|
+
v = makeFn('function($inject){' + v.replace($TX, '') + '}');
|
|
2465
|
+
v.__json = fn;
|
|
2466
|
+
v.__inject = true;
|
|
2467
|
+
return v;
|
|
2468
|
+
} else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {
|
|
2469
|
+
flag = true;
|
|
2470
|
+
}
|
|
2471
|
+
|
|
2472
|
+
if (!flag) return fn;
|
|
2473
|
+
var val = makeFn(v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0 ? FUNCTION + ' ' + v : v);
|
|
2474
|
+
val.__json = fn;
|
|
2475
|
+
return val;
|
|
2476
|
+
} catch (e) {
|
|
2477
|
+
err("\u89E3\u6790\u5931\u8D25:".concat(v, "\n\nerr: ").concat(e));
|
|
2478
|
+
return undefined;
|
|
2479
|
+
}
|
|
2480
|
+
}
|
|
2481
|
+
|
|
2482
|
+
return fn;
|
|
2483
|
+
}
|
|
2484
|
+
function parseJson(json, mode) {
|
|
2485
|
+
return JSON.parse(json, function (k, v) {
|
|
2486
|
+
if (is.Undef(v) || !v.indexOf) return v;
|
|
2487
|
+
return parseFn(v, mode);
|
|
2488
|
+
});
|
|
2489
|
+
}
|
|
2490
|
+
|
|
2484
2491
|
function enumerable(value, writable) {
|
|
2485
2492
|
return {
|
|
2486
2493
|
value: value,
|
|
@@ -2698,7 +2705,28 @@
|
|
|
2698
2705
|
pattern: function pattern(a, b) {
|
|
2699
2706
|
return new RegExp(b, 'g').test(a);
|
|
2700
2707
|
}
|
|
2701
|
-
};
|
|
2708
|
+
};
|
|
2709
|
+
function deepGet(val, split) {
|
|
2710
|
+
(Array.isArray(split) ? split : (split || '').split('.')).forEach(function (k) {
|
|
2711
|
+
if (val != null) {
|
|
2712
|
+
val = val[k];
|
|
2713
|
+
}
|
|
2714
|
+
});
|
|
2715
|
+
return val;
|
|
2716
|
+
}
|
|
2717
|
+
function extractVar(str) {
|
|
2718
|
+
var regex = /{{\s*(.*?)\s*}}/g;
|
|
2719
|
+
var match;
|
|
2720
|
+
var matches = {};
|
|
2721
|
+
|
|
2722
|
+
while ((match = regex.exec(str)) !== null) {
|
|
2723
|
+
if (match[1]) {
|
|
2724
|
+
matches[match[1]] = true;
|
|
2725
|
+
}
|
|
2726
|
+
}
|
|
2727
|
+
|
|
2728
|
+
return Object.keys(matches);
|
|
2729
|
+
}
|
|
2702
2730
|
|
|
2703
2731
|
function baseRule() {
|
|
2704
2732
|
return {
|
|
@@ -2838,7 +2866,7 @@
|
|
|
2838
2866
|
|
|
2839
2867
|
var headers = option.headers || {};
|
|
2840
2868
|
Object.keys(headers).forEach(function (item) {
|
|
2841
|
-
if (headers[item]
|
|
2869
|
+
if (headers[item] != null) {
|
|
2842
2870
|
xhr.setRequestHeader(item, headers[item]);
|
|
2843
2871
|
}
|
|
2844
2872
|
});
|
|
@@ -2858,12 +2886,7 @@
|
|
|
2858
2886
|
fn = parse;
|
|
2859
2887
|
} else if (parse && is.String(parse)) {
|
|
2860
2888
|
fn = function fn(v) {
|
|
2861
|
-
|
|
2862
|
-
if (v) {
|
|
2863
|
-
v = v[k];
|
|
2864
|
-
}
|
|
2865
|
-
});
|
|
2866
|
-
return v;
|
|
2889
|
+
return deepGet(v, parse);
|
|
2867
2890
|
};
|
|
2868
2891
|
}
|
|
2869
2892
|
|
|
@@ -3328,6 +3351,18 @@
|
|
|
3328
3351
|
findRules(ctx ? ctx.loadChildrenPending() : rule.children);
|
|
3329
3352
|
return rules;
|
|
3330
3353
|
},
|
|
3354
|
+
getParentSubRule: function getParentSubRule(id) {
|
|
3355
|
+
var flag = _typeof(id) === 'object';
|
|
3356
|
+
var ctx = flag ? byCtx(id) : h.getCtx(id);
|
|
3357
|
+
|
|
3358
|
+
if (ctx) {
|
|
3359
|
+
var group = ctx.getParentGroup();
|
|
3360
|
+
|
|
3361
|
+
if (group) {
|
|
3362
|
+
return group.rule;
|
|
3363
|
+
}
|
|
3364
|
+
}
|
|
3365
|
+
},
|
|
3331
3366
|
getChildrenFormData: function getChildrenFormData(id) {
|
|
3332
3367
|
var rules = api.getChildrenRuleList(id);
|
|
3333
3368
|
return rules.reduce(function (formData, rule) {
|
|
@@ -3337,12 +3372,14 @@
|
|
|
3337
3372
|
},
|
|
3338
3373
|
setChildrenFormData: function setChildrenFormData(id, formData, cover) {
|
|
3339
3374
|
var rules = api.getChildrenRuleList(id);
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3375
|
+
h.deferSyncValue(function () {
|
|
3376
|
+
rules.forEach(function (rule) {
|
|
3377
|
+
if (hasProperty(formData, rule.field)) {
|
|
3378
|
+
rule.value = formData[rule.field];
|
|
3379
|
+
} else if (cover) {
|
|
3380
|
+
rule.value = undefined;
|
|
3381
|
+
}
|
|
3382
|
+
});
|
|
3346
3383
|
});
|
|
3347
3384
|
},
|
|
3348
3385
|
getGlobalEvent: function getGlobalEvent(name) {
|
|
@@ -3404,7 +3441,7 @@
|
|
|
3404
3441
|
});
|
|
3405
3442
|
},
|
|
3406
3443
|
getData: function getData(id, def) {
|
|
3407
|
-
return h.fc.
|
|
3444
|
+
return h.fc.getLoadData(id, def);
|
|
3408
3445
|
},
|
|
3409
3446
|
setData: function setData(id, data) {
|
|
3410
3447
|
return h.fc.setData(id, data);
|
|
@@ -3487,6 +3524,34 @@
|
|
|
3487
3524
|
return str.replace(str[0], str[0].toLowerCase());
|
|
3488
3525
|
}
|
|
3489
3526
|
|
|
3527
|
+
function toString(val) {
|
|
3528
|
+
return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
|
|
3529
|
+
}
|
|
3530
|
+
|
|
3531
|
+
var id$2 = 0;
|
|
3532
|
+
function uniqueId() {
|
|
3533
|
+
var num = 370 + ++id$2;
|
|
3534
|
+
return 'F' + Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now())).toString(36) + num.toString(36) + 'c';
|
|
3535
|
+
}
|
|
3536
|
+
|
|
3537
|
+
function deepSet(data, idx, val) {
|
|
3538
|
+
var _data = data,
|
|
3539
|
+
to;
|
|
3540
|
+
(idx || '').split('.').forEach(function (v) {
|
|
3541
|
+
if (to) {
|
|
3542
|
+
if (!_data[to] || _typeof(_data[to]) != 'object') {
|
|
3543
|
+
_data[to] = {};
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
_data = _data[to];
|
|
3547
|
+
}
|
|
3548
|
+
|
|
3549
|
+
to = v;
|
|
3550
|
+
});
|
|
3551
|
+
_data[to] = val;
|
|
3552
|
+
return _data;
|
|
3553
|
+
}
|
|
3554
|
+
|
|
3490
3555
|
function useRender$1(Render) {
|
|
3491
3556
|
extend(Render.prototype, {
|
|
3492
3557
|
initRender: function initRender() {
|
|
@@ -3798,6 +3863,9 @@
|
|
|
3798
3863
|
|
|
3799
3864
|
_this7.onMounted(ctx, vn.el);
|
|
3800
3865
|
},
|
|
3866
|
+
'fc.updateValue': function fcUpdateValue(data) {
|
|
3867
|
+
_this7.$handle.onUpdateValue(ctx, data);
|
|
3868
|
+
},
|
|
3801
3869
|
'fc.el': function fcEl(el) {
|
|
3802
3870
|
ctx.exportEl = el;
|
|
3803
3871
|
|
|
@@ -4068,6 +4136,52 @@
|
|
|
4068
4136
|
fn.__origin = _fn;
|
|
4069
4137
|
fn.__json = _fn.__json;
|
|
4070
4138
|
return fn;
|
|
4139
|
+
},
|
|
4140
|
+
loadStrVar: function loadStrVar(str, get) {
|
|
4141
|
+
var _this3 = this;
|
|
4142
|
+
|
|
4143
|
+
if (str && typeof str === 'string' && str.indexOf('{{') > -1 && str.indexOf('}}') > -1) {
|
|
4144
|
+
var vars = extractVar(str);
|
|
4145
|
+
vars.forEach(function (v) {
|
|
4146
|
+
var split = v.split('||');
|
|
4147
|
+
var field = split[0].trim();
|
|
4148
|
+
|
|
4149
|
+
if (field) {
|
|
4150
|
+
var def = (split[1] || '').trim();
|
|
4151
|
+
var val = get ? get(field, def) : _this3.fc.getLoadData(field, def);
|
|
4152
|
+
str = str.replaceAll("{{".concat(v, "}}"), val == null ? '' : val);
|
|
4153
|
+
}
|
|
4154
|
+
});
|
|
4155
|
+
}
|
|
4156
|
+
|
|
4157
|
+
return str;
|
|
4158
|
+
},
|
|
4159
|
+
loadFetchVar: function loadFetchVar(options, get) {
|
|
4160
|
+
var _this4 = this;
|
|
4161
|
+
|
|
4162
|
+
var loadVal = function loadVal(str) {
|
|
4163
|
+
return _this4.loadStrVar(str, get);
|
|
4164
|
+
};
|
|
4165
|
+
|
|
4166
|
+
options.action = loadVal(options.action);
|
|
4167
|
+
|
|
4168
|
+
if (options.headers) {
|
|
4169
|
+
var _headers = {};
|
|
4170
|
+
Object.keys(options.headers).forEach(function (k) {
|
|
4171
|
+
_headers[loadVal(k)] = loadVal(options.headers[k]);
|
|
4172
|
+
});
|
|
4173
|
+
options.headers = _headers;
|
|
4174
|
+
}
|
|
4175
|
+
|
|
4176
|
+
if (options.data) {
|
|
4177
|
+
var _data = {};
|
|
4178
|
+
Object.keys(options.data).forEach(function (k) {
|
|
4179
|
+
_data[loadVal(k)] = loadVal(options.data[k]);
|
|
4180
|
+
});
|
|
4181
|
+
options.data = _data;
|
|
4182
|
+
}
|
|
4183
|
+
|
|
4184
|
+
return options;
|
|
4071
4185
|
}
|
|
4072
4186
|
});
|
|
4073
4187
|
}
|
|
@@ -4187,7 +4301,6 @@
|
|
|
4187
4301
|
defaultValue: isInput ? deepCopy(defaultValue) : undefined,
|
|
4188
4302
|
field: rule.field || undefined
|
|
4189
4303
|
});
|
|
4190
|
-
this.updateType();
|
|
4191
4304
|
this.updateKey();
|
|
4192
4305
|
bind(this);
|
|
4193
4306
|
this.update(handle, true);
|
|
@@ -4323,6 +4436,7 @@
|
|
|
4323
4436
|
updateType: function updateType() {
|
|
4324
4437
|
this.originType = this.rule.type;
|
|
4325
4438
|
this.type = toCase(this.rule.type);
|
|
4439
|
+
this.trueType = this.$handle.getType(this.originType);
|
|
4326
4440
|
},
|
|
4327
4441
|
setParser: function setParser(parser) {
|
|
4328
4442
|
this.parser = parser;
|
|
@@ -4411,7 +4525,6 @@
|
|
|
4411
4525
|
computed: {},
|
|
4412
4526
|
el: undef,
|
|
4413
4527
|
$handle: undef,
|
|
4414
|
-
$render: undef,
|
|
4415
4528
|
$api: undef,
|
|
4416
4529
|
vm: undef,
|
|
4417
4530
|
vNode: undef,
|
|
@@ -4467,7 +4580,6 @@
|
|
|
4467
4580
|
$render: handle.$render,
|
|
4468
4581
|
$api: handle.api,
|
|
4469
4582
|
vm: handle.vm,
|
|
4470
|
-
trueType: handle.getType(this.originType),
|
|
4471
4583
|
vNode: handle.$render.vNode,
|
|
4472
4584
|
updated: false,
|
|
4473
4585
|
cacheValue: this.rule.value
|
|
@@ -4475,6 +4587,7 @@
|
|
|
4475
4587
|
!init && this.unwatch();
|
|
4476
4588
|
this.watchTo();
|
|
4477
4589
|
this.link();
|
|
4590
|
+
this.updateType();
|
|
4478
4591
|
}
|
|
4479
4592
|
});
|
|
4480
4593
|
|
|
@@ -4946,6 +5059,28 @@
|
|
|
4946
5059
|
this.setValue(ctx, val, value);
|
|
4947
5060
|
}
|
|
4948
5061
|
},
|
|
5062
|
+
onUpdateValue: function onUpdateValue(ctx, data) {
|
|
5063
|
+
var _this = this;
|
|
5064
|
+
|
|
5065
|
+
this.deferSyncValue(function () {
|
|
5066
|
+
var group = ctx.getParentGroup();
|
|
5067
|
+
var subForm = group ? _this.subRuleData[group.id] : null;
|
|
5068
|
+
var subData = {};
|
|
5069
|
+
Object.keys(data || {}).forEach(function (k) {
|
|
5070
|
+
if (subForm && hasProperty(subForm, k)) {
|
|
5071
|
+
subData[k] = data[k];
|
|
5072
|
+
} else if (hasProperty(_this.api.form, k)) {
|
|
5073
|
+
_this.api.form[k] = data[k];
|
|
5074
|
+
} else if (_this.api.top !== _this.api && hasProperty(_this.api.top.form, k)) {
|
|
5075
|
+
_this.api.top.form[k] = data[k];
|
|
5076
|
+
}
|
|
5077
|
+
});
|
|
5078
|
+
|
|
5079
|
+
if (Object.keys(subData).length) {
|
|
5080
|
+
_this.api.setChildrenFormData(group.rule, subData);
|
|
5081
|
+
}
|
|
5082
|
+
});
|
|
5083
|
+
},
|
|
4949
5084
|
onBaseInput: function onBaseInput(ctx, value) {
|
|
4950
5085
|
this.setFormData(ctx, value);
|
|
4951
5086
|
ctx.modelValue = value;
|
|
@@ -4977,11 +5112,11 @@
|
|
|
4977
5112
|
return this.formData[ctx.id];
|
|
4978
5113
|
},
|
|
4979
5114
|
syncForm: function syncForm() {
|
|
4980
|
-
var
|
|
5115
|
+
var _this2 = this;
|
|
4981
5116
|
|
|
4982
5117
|
var data = vue.reactive({});
|
|
4983
5118
|
this.fields().reduce(function (initial, field) {
|
|
4984
|
-
var ctx =
|
|
5119
|
+
var ctx = _this2.getCtx(field);
|
|
4985
5120
|
|
|
4986
5121
|
initial[field] = vue.toRef(ctx.rule, 'value');
|
|
4987
5122
|
return initial;
|
|
@@ -5030,11 +5165,11 @@
|
|
|
5030
5165
|
return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;
|
|
5031
5166
|
},
|
|
5032
5167
|
refreshUpdate: function refreshUpdate(ctx, val, origin, field) {
|
|
5033
|
-
var
|
|
5168
|
+
var _this3 = this;
|
|
5034
5169
|
|
|
5035
5170
|
if (is.Function(ctx.rule.update)) {
|
|
5036
5171
|
var state = invoke(function () {
|
|
5037
|
-
return ctx.rule.update(val, ctx.origin,
|
|
5172
|
+
return ctx.rule.update(val, ctx.origin, _this3.api, {
|
|
5038
5173
|
origin: origin || 'change',
|
|
5039
5174
|
linkField: field
|
|
5040
5175
|
});
|
|
@@ -5058,18 +5193,18 @@
|
|
|
5058
5193
|
this.refreshUpdate(ctx, val, origin, field);
|
|
5059
5194
|
},
|
|
5060
5195
|
appendLink: function appendLink(ctx) {
|
|
5061
|
-
var
|
|
5196
|
+
var _this4 = this;
|
|
5062
5197
|
|
|
5063
5198
|
var link = ctx.rule.link;
|
|
5064
5199
|
is.trueArray(link) && link.forEach(function (field) {
|
|
5065
5200
|
var fn = function fn() {
|
|
5066
|
-
return
|
|
5201
|
+
return _this4.refreshRule(ctx, ctx.rule.value, 'link', field);
|
|
5067
5202
|
};
|
|
5068
5203
|
|
|
5069
|
-
|
|
5204
|
+
_this4.bus.$on('change-' + field, fn);
|
|
5070
5205
|
|
|
5071
5206
|
ctx.linkOn.push(function () {
|
|
5072
|
-
return
|
|
5207
|
+
return _this4.bus.$off('change-' + field, fn);
|
|
5073
5208
|
});
|
|
5074
5209
|
});
|
|
5075
5210
|
},
|
|
@@ -5920,39 +6055,37 @@
|
|
|
5920
6055
|
var loadData = {
|
|
5921
6056
|
name: 'loadData',
|
|
5922
6057
|
_fn: [],
|
|
5923
|
-
|
|
6058
|
+
mounted: function mounted(inject, rule, api) {
|
|
5924
6059
|
this.deleted(inject);
|
|
5925
6060
|
var attrs = toArray(inject.getValue());
|
|
5926
|
-
var
|
|
6061
|
+
var unwatchs = [];
|
|
5927
6062
|
attrs.forEach(function (attr) {
|
|
5928
|
-
if (attr) {
|
|
5929
|
-
var
|
|
5930
|
-
|
|
5931
|
-
fc.bus.$off('p.loadData.' + attr.attr, on);
|
|
5932
|
-
fc.bus.$once('p.loadData.' + attr.attr, on);
|
|
5933
|
-
}
|
|
6063
|
+
if (attr && (attr.attr || attr.template)) {
|
|
6064
|
+
var unwatch = fc.watchLoadData(debounce(function (get) {
|
|
6065
|
+
var value;
|
|
5934
6066
|
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
value =
|
|
6067
|
+
if (attr.template) {
|
|
6068
|
+
value = fc.$handle.loadStrVar(attr.template, get);
|
|
6069
|
+
} else {
|
|
6070
|
+
value = get(attr.attr, attr["default"]);
|
|
6071
|
+
}
|
|
5939
6072
|
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
}
|
|
6073
|
+
if (attr.copy !== false) {
|
|
6074
|
+
value = deepCopy(value);
|
|
5943
6075
|
}
|
|
5944
6076
|
|
|
5945
6077
|
deepSet(inject.getProp(), attr.to || 'options', value);
|
|
5946
6078
|
api.sync(rule);
|
|
5947
|
-
};
|
|
6079
|
+
}, attr.wait || 300));
|
|
5948
6080
|
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
}
|
|
5952
|
-
|
|
6081
|
+
if (attr.watch !== false) {
|
|
6082
|
+
unwatchs.push(unwatch);
|
|
6083
|
+
} else {
|
|
6084
|
+
unwatch();
|
|
6085
|
+
}
|
|
5953
6086
|
}
|
|
5954
6087
|
});
|
|
5955
|
-
this._fn[inject.id] =
|
|
6088
|
+
this._fn[inject.id] = unwatchs;
|
|
5956
6089
|
},
|
|
5957
6090
|
deleted: function deleted(inject) {
|
|
5958
6091
|
if (this._fn[inject.id]) {
|
|
@@ -6015,6 +6148,7 @@
|
|
|
6015
6148
|
|
|
6016
6149
|
function run(inject, rule, api) {
|
|
6017
6150
|
var option = inject.value;
|
|
6151
|
+
fetchAttr.deleted(inject);
|
|
6018
6152
|
|
|
6019
6153
|
if (is.Function(option)) {
|
|
6020
6154
|
option = option(rule, api);
|
|
@@ -6069,76 +6203,85 @@
|
|
|
6069
6203
|
}
|
|
6070
6204
|
};
|
|
6071
6205
|
|
|
6072
|
-
|
|
6073
|
-
|
|
6074
|
-
}, option), {}, {
|
|
6075
|
-
onSuccess: function onSuccess(body, flag) {
|
|
6076
|
-
if (check()) return;
|
|
6077
|
-
|
|
6078
|
-
var fn = function fn(v) {
|
|
6079
|
-
return flag ? v : hasProperty(v, 'data') ? v.data : v;
|
|
6080
|
-
};
|
|
6206
|
+
fetchAttr._fn[inject.id] = fc.watchLoadData(debounce(function (get) {
|
|
6207
|
+
var _option = fc.$handle.loadFetchVar(deepCopy(option), get);
|
|
6081
6208
|
|
|
6082
|
-
|
|
6209
|
+
var config = _objectSpread2(_objectSpread2({
|
|
6210
|
+
headers: {}
|
|
6211
|
+
}, _option), {}, {
|
|
6212
|
+
onSuccess: function onSuccess(body, flag) {
|
|
6213
|
+
if (check()) return;
|
|
6083
6214
|
|
|
6084
|
-
|
|
6085
|
-
|
|
6086
|
-
} else if (parse && is.String(parse)) {
|
|
6087
|
-
fn = function fn(v) {
|
|
6088
|
-
parse.split('.').forEach(function (k) {
|
|
6089
|
-
if (v) {
|
|
6090
|
-
v = v[k];
|
|
6091
|
-
}
|
|
6092
|
-
});
|
|
6093
|
-
return v;
|
|
6215
|
+
var fn = function fn(v) {
|
|
6216
|
+
return flag ? v : hasProperty(v, 'data') ? v.data : v;
|
|
6094
6217
|
};
|
|
6095
|
-
}
|
|
6096
6218
|
|
|
6097
|
-
|
|
6098
|
-
api.sync(rule);
|
|
6099
|
-
},
|
|
6100
|
-
onError: function onError(e) {
|
|
6101
|
-
set(undefined);
|
|
6102
|
-
if (check()) return;
|
|
6219
|
+
var parse = parseFn(_option.parse);
|
|
6103
6220
|
|
|
6104
|
-
|
|
6105
|
-
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6221
|
+
if (is.Function(parse)) {
|
|
6222
|
+
fn = parse;
|
|
6223
|
+
} else if (parse && is.String(parse)) {
|
|
6224
|
+
fn = function fn(v) {
|
|
6225
|
+
return deepGet(v, parse);
|
|
6226
|
+
};
|
|
6227
|
+
}
|
|
6109
6228
|
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
|
|
6113
|
-
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
config.onSuccess(val, true);
|
|
6117
|
-
})["catch"](function (e) {
|
|
6118
|
-
config.onError(e);
|
|
6119
|
-
});
|
|
6120
|
-
return;
|
|
6121
|
-
}
|
|
6229
|
+
set(fn(body, rule, api));
|
|
6230
|
+
api.sync(rule);
|
|
6231
|
+
},
|
|
6232
|
+
onError: function onError(e) {
|
|
6233
|
+
set(undefined);
|
|
6234
|
+
if (check()) return;
|
|
6122
6235
|
|
|
6123
|
-
|
|
6124
|
-
|
|
6125
|
-
|
|
6126
|
-
|
|
6127
|
-
|
|
6236
|
+
(_onError || function (e) {
|
|
6237
|
+
return err(e.message || 'fetch fail ' + _option.action);
|
|
6238
|
+
})(e, rule, api);
|
|
6239
|
+
}
|
|
6240
|
+
});
|
|
6241
|
+
|
|
6242
|
+
fc.$handle.beforeFetch(config, {
|
|
6243
|
+
rule: rule,
|
|
6244
|
+
api: api
|
|
6245
|
+
}).then(function () {
|
|
6246
|
+
if (is.Function(_option.action)) {
|
|
6247
|
+
_option.action(rule, api).then(function (val) {
|
|
6248
|
+
config.onSuccess(val, true);
|
|
6249
|
+
})["catch"](function (e) {
|
|
6250
|
+
config.onError(e);
|
|
6251
|
+
});
|
|
6252
|
+
|
|
6253
|
+
return;
|
|
6254
|
+
}
|
|
6255
|
+
|
|
6256
|
+
invoke(function () {
|
|
6257
|
+
return fc.create.fetch(config, {
|
|
6258
|
+
inject: inject,
|
|
6259
|
+
rule: rule,
|
|
6260
|
+
api: api
|
|
6261
|
+
});
|
|
6128
6262
|
});
|
|
6129
6263
|
});
|
|
6130
|
-
});
|
|
6264
|
+
}, option.wait || 1000));
|
|
6131
6265
|
}
|
|
6132
6266
|
|
|
6133
|
-
|
|
6267
|
+
var fetchAttr = {
|
|
6134
6268
|
name: 'fetch',
|
|
6135
|
-
|
|
6269
|
+
_fn: [],
|
|
6270
|
+
mounted: function mounted() {
|
|
6136
6271
|
run.apply(void 0, arguments);
|
|
6137
6272
|
},
|
|
6138
6273
|
watch: function watch() {
|
|
6139
6274
|
run.apply(void 0, arguments);
|
|
6275
|
+
},
|
|
6276
|
+
deleted: function deleted(inject) {
|
|
6277
|
+
if (this._fn[inject.id]) {
|
|
6278
|
+
this._fn[inject.id]();
|
|
6279
|
+
}
|
|
6280
|
+
|
|
6281
|
+
inject.clearProp();
|
|
6140
6282
|
}
|
|
6141
6283
|
};
|
|
6284
|
+
return fetchAttr;
|
|
6142
6285
|
};
|
|
6143
6286
|
|
|
6144
6287
|
var $provider = {
|
|
@@ -6166,6 +6309,71 @@
|
|
|
6166
6309
|
}
|
|
6167
6310
|
};
|
|
6168
6311
|
|
|
6312
|
+
function getCookie(name) {
|
|
6313
|
+
name = name + '=';
|
|
6314
|
+
var decodedCookie = decodeURIComponent(document.cookie);
|
|
6315
|
+
var cookieArray = decodedCookie.split(';');
|
|
6316
|
+
|
|
6317
|
+
for (var i = 0; i < cookieArray.length; i++) {
|
|
6318
|
+
var cookie = cookieArray[i];
|
|
6319
|
+
|
|
6320
|
+
while (cookie.charAt(0) === ' ') {
|
|
6321
|
+
cookie = cookie.substring(1);
|
|
6322
|
+
}
|
|
6323
|
+
|
|
6324
|
+
if (cookie.indexOf(name) === 0) {
|
|
6325
|
+
cookie = cookie.substring(name.length, cookie.length);
|
|
6326
|
+
|
|
6327
|
+
try {
|
|
6328
|
+
return JSON.parse(cookie);
|
|
6329
|
+
} catch (e) {
|
|
6330
|
+
return cookie;
|
|
6331
|
+
}
|
|
6332
|
+
}
|
|
6333
|
+
}
|
|
6334
|
+
|
|
6335
|
+
return null;
|
|
6336
|
+
}
|
|
6337
|
+
|
|
6338
|
+
function getLocalStorage(name) {
|
|
6339
|
+
var value = localStorage.getItem(name);
|
|
6340
|
+
|
|
6341
|
+
if (value) {
|
|
6342
|
+
try {
|
|
6343
|
+
return JSON.parse(value);
|
|
6344
|
+
} catch (e) {
|
|
6345
|
+
return value;
|
|
6346
|
+
}
|
|
6347
|
+
}
|
|
6348
|
+
|
|
6349
|
+
return null;
|
|
6350
|
+
}
|
|
6351
|
+
|
|
6352
|
+
function baseDriver(driver, name) {
|
|
6353
|
+
if (!name) {
|
|
6354
|
+
return null;
|
|
6355
|
+
}
|
|
6356
|
+
|
|
6357
|
+
var split = name.split('.');
|
|
6358
|
+
var value = driver(split.shift());
|
|
6359
|
+
|
|
6360
|
+
if (!split.length) {
|
|
6361
|
+
return value;
|
|
6362
|
+
}
|
|
6363
|
+
|
|
6364
|
+
if (value == null) {
|
|
6365
|
+
return null;
|
|
6366
|
+
}
|
|
6367
|
+
|
|
6368
|
+
return deepGet(value, split);
|
|
6369
|
+
}
|
|
6370
|
+
function cookieDriver(name) {
|
|
6371
|
+
return baseDriver(getCookie, name);
|
|
6372
|
+
}
|
|
6373
|
+
function localStorageDriver(name) {
|
|
6374
|
+
return baseDriver(getLocalStorage, name);
|
|
6375
|
+
}
|
|
6376
|
+
|
|
6169
6377
|
function parseProp(name, id) {
|
|
6170
6378
|
var prop;
|
|
6171
6379
|
|
|
@@ -6206,6 +6414,7 @@
|
|
|
6206
6414
|
var directives = {};
|
|
6207
6415
|
var modelFields = {};
|
|
6208
6416
|
var useApps = [];
|
|
6417
|
+
var listener = [];
|
|
6209
6418
|
var extendApiFn = [config.extendApi];
|
|
6210
6419
|
|
|
6211
6420
|
var providers = _objectSpread2({}, $provider);
|
|
@@ -6217,6 +6426,7 @@
|
|
|
6217
6426
|
var loadData = vue.reactive({});
|
|
6218
6427
|
var CreateNode = CreateNodeFactory();
|
|
6219
6428
|
var formulas = {};
|
|
6429
|
+
var isMobile = config.isMobile === true;
|
|
6220
6430
|
exportAttrs(config.attrs || {});
|
|
6221
6431
|
|
|
6222
6432
|
function getApi(name) {
|
|
@@ -6361,23 +6571,53 @@
|
|
|
6361
6571
|
formulas[name] = fn;
|
|
6362
6572
|
}
|
|
6363
6573
|
|
|
6364
|
-
function
|
|
6574
|
+
function emitData(id) {
|
|
6365
6575
|
Object.keys(instance).forEach(function (v) {
|
|
6366
6576
|
var apis = Array.isArray(instance[v]) ? instance[v] : [instance[v]];
|
|
6367
6577
|
apis.forEach(function (that) {
|
|
6368
|
-
that.bus.$emit('
|
|
6578
|
+
that.bus.$emit('$loadData.' + id);
|
|
6369
6579
|
});
|
|
6370
6580
|
});
|
|
6371
6581
|
}
|
|
6372
6582
|
|
|
6373
6583
|
function setData(id, data) {
|
|
6374
6584
|
loadData[id] = data;
|
|
6585
|
+
emitData(id);
|
|
6586
|
+
}
|
|
6587
|
+
|
|
6588
|
+
function setDataDriver(id, data) {
|
|
6589
|
+
var callback = function callback() {
|
|
6590
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
6591
|
+
args[_key] = arguments[_key];
|
|
6592
|
+
}
|
|
6593
|
+
|
|
6594
|
+
return invoke(function () {
|
|
6595
|
+
return data.apply(void 0, args);
|
|
6596
|
+
});
|
|
6597
|
+
};
|
|
6375
6598
|
|
|
6376
|
-
|
|
6599
|
+
callback._driver = true;
|
|
6600
|
+
setData(id, callback);
|
|
6377
6601
|
}
|
|
6378
6602
|
|
|
6379
6603
|
function getData(id, def) {
|
|
6380
|
-
|
|
6604
|
+
var split = (id || '').split('.');
|
|
6605
|
+
id = split.shift();
|
|
6606
|
+
var field = split.join('.');
|
|
6607
|
+
|
|
6608
|
+
if (hasProperty(loadData, id)) {
|
|
6609
|
+
var val = loadData[id];
|
|
6610
|
+
|
|
6611
|
+
if (val && val._driver) {
|
|
6612
|
+
val = val(field);
|
|
6613
|
+
} else if (split.length) {
|
|
6614
|
+
val = deepGet(val, split);
|
|
6615
|
+
}
|
|
6616
|
+
|
|
6617
|
+
return val == null || val === '' ? def : val;
|
|
6618
|
+
} else {
|
|
6619
|
+
return def;
|
|
6620
|
+
}
|
|
6381
6621
|
}
|
|
6382
6622
|
|
|
6383
6623
|
function extendApi(fn) {
|
|
@@ -6386,8 +6626,14 @@
|
|
|
6386
6626
|
|
|
6387
6627
|
function removeData(id) {
|
|
6388
6628
|
delete loadData[id];
|
|
6629
|
+
emitData(id);
|
|
6630
|
+
}
|
|
6389
6631
|
|
|
6390
|
-
|
|
6632
|
+
function on(name, callback) {
|
|
6633
|
+
listener.push({
|
|
6634
|
+
name: name,
|
|
6635
|
+
callback: callback
|
|
6636
|
+
});
|
|
6391
6637
|
}
|
|
6392
6638
|
|
|
6393
6639
|
function FormCreate(vm) {
|
|
@@ -6402,6 +6648,7 @@
|
|
|
6402
6648
|
providers: providers,
|
|
6403
6649
|
modelFields: modelFields,
|
|
6404
6650
|
formulas: formulas,
|
|
6651
|
+
isMobile: isMobile,
|
|
6405
6652
|
rules: vm.props.rule,
|
|
6406
6653
|
name: vm.props.name || uniqueId(),
|
|
6407
6654
|
inFor: vm.props.inFor,
|
|
@@ -6411,12 +6658,17 @@
|
|
|
6411
6658
|
},
|
|
6412
6659
|
setData: setData,
|
|
6413
6660
|
getData: getData,
|
|
6661
|
+
emitData: emitData,
|
|
6414
6662
|
loadData: loadData,
|
|
6415
6663
|
CreateNode: CreateNode,
|
|
6416
6664
|
bus: new Mitt(),
|
|
6417
6665
|
unwatch: null,
|
|
6418
6666
|
options: vue.ref({}),
|
|
6419
|
-
extendApiFn: extendApiFn
|
|
6667
|
+
extendApiFn: extendApiFn,
|
|
6668
|
+
fetchCache: new WeakMap()
|
|
6669
|
+
});
|
|
6670
|
+
listener.forEach(function (item) {
|
|
6671
|
+
_this.bus.$on(item.name, item.callback);
|
|
6420
6672
|
});
|
|
6421
6673
|
vue.nextTick(function () {
|
|
6422
6674
|
vue.watch(_this.options, function () {
|
|
@@ -6441,6 +6693,7 @@
|
|
|
6441
6693
|
}
|
|
6442
6694
|
}
|
|
6443
6695
|
|
|
6696
|
+
FormCreate.isMobile = isMobile;
|
|
6444
6697
|
extend(FormCreate.prototype, {
|
|
6445
6698
|
init: function init() {
|
|
6446
6699
|
var _this2 = this;
|
|
@@ -6460,6 +6713,159 @@
|
|
|
6460
6713
|
this.initOptions();
|
|
6461
6714
|
this.$handle.init();
|
|
6462
6715
|
},
|
|
6716
|
+
globalDataDriver: function globalDataDriver(id) {
|
|
6717
|
+
var _this3 = this;
|
|
6718
|
+
|
|
6719
|
+
var split = id.split('.');
|
|
6720
|
+
var key = split.shift();
|
|
6721
|
+
var option = this.options.value.globalData && this.options.value.globalData[key];
|
|
6722
|
+
|
|
6723
|
+
if (option) {
|
|
6724
|
+
if (option.type === 'static') {
|
|
6725
|
+
return deepGet(option.data, split);
|
|
6726
|
+
} else {
|
|
6727
|
+
var val;
|
|
6728
|
+
var res = this.fetchCache.get(option);
|
|
6729
|
+
|
|
6730
|
+
if (res) {
|
|
6731
|
+
if (res.status) {
|
|
6732
|
+
val = deepGet(res.data, split);
|
|
6733
|
+
}
|
|
6734
|
+
|
|
6735
|
+
if (!res.loading) {
|
|
6736
|
+
return val;
|
|
6737
|
+
}
|
|
6738
|
+
|
|
6739
|
+
res.loading = false;
|
|
6740
|
+
this.fetchCache.set(option, res);
|
|
6741
|
+
} else {
|
|
6742
|
+
this.fetchCache.set(option, {
|
|
6743
|
+
status: false
|
|
6744
|
+
});
|
|
6745
|
+
}
|
|
6746
|
+
|
|
6747
|
+
var reload = debounce(function () {
|
|
6748
|
+
unwatch();
|
|
6749
|
+
|
|
6750
|
+
var res = _this3.fetchCache.get(option);
|
|
6751
|
+
|
|
6752
|
+
if (_this3.options.value.globalData && Object.values(_this3.options.value.globalData).indexOf(option) !== -1) {
|
|
6753
|
+
if (res) {
|
|
6754
|
+
res.loading = true;
|
|
6755
|
+
|
|
6756
|
+
_this3.fetchCache.set(option, res);
|
|
6757
|
+
}
|
|
6758
|
+
|
|
6759
|
+
_this3.bus.$emit('$loadData.$globalData');
|
|
6760
|
+
} else {
|
|
6761
|
+
_this3.fetchCache["delete"](option);
|
|
6762
|
+
}
|
|
6763
|
+
}, option.wait || 1000);
|
|
6764
|
+
|
|
6765
|
+
var callback = function callback(get, change) {
|
|
6766
|
+
if (change) {
|
|
6767
|
+
reload();
|
|
6768
|
+
return;
|
|
6769
|
+
}
|
|
6770
|
+
|
|
6771
|
+
var options = _this3.$handle.loadFetchVar(copy$1(option), get);
|
|
6772
|
+
|
|
6773
|
+
_this3.$handle.api.fetch(options).then(function (res) {
|
|
6774
|
+
_this3.fetchCache.set(option, {
|
|
6775
|
+
status: true,
|
|
6776
|
+
data: res
|
|
6777
|
+
});
|
|
6778
|
+
|
|
6779
|
+
_this3.bus.$emit('$loadData.$globalData');
|
|
6780
|
+
});
|
|
6781
|
+
};
|
|
6782
|
+
|
|
6783
|
+
var unwatch = this.watchLoadData(callback);
|
|
6784
|
+
return val;
|
|
6785
|
+
}
|
|
6786
|
+
}
|
|
6787
|
+
},
|
|
6788
|
+
getLoadData: function getLoadData(id, def) {
|
|
6789
|
+
var val = null;
|
|
6790
|
+
|
|
6791
|
+
if (id != null) {
|
|
6792
|
+
var split = id.split('.');
|
|
6793
|
+
var key = split.shift();
|
|
6794
|
+
|
|
6795
|
+
if (key === '$form') {
|
|
6796
|
+
val = this.$handle.api.top.formData();
|
|
6797
|
+
} else if (key === '$subForm') {
|
|
6798
|
+
val = this.$handle.api.formData();
|
|
6799
|
+
} else if (key === '$options') {
|
|
6800
|
+
val = this.options.value;
|
|
6801
|
+
} else if (key === '$globalData') {
|
|
6802
|
+
val = this.globalDataDriver(split.join('.'));
|
|
6803
|
+
split = [];
|
|
6804
|
+
} else {
|
|
6805
|
+
val = getData(id, def);
|
|
6806
|
+
split = [];
|
|
6807
|
+
}
|
|
6808
|
+
|
|
6809
|
+
if (split.length) {
|
|
6810
|
+
val = deepGet(val, split);
|
|
6811
|
+
}
|
|
6812
|
+
}
|
|
6813
|
+
|
|
6814
|
+
console.log(id, val);
|
|
6815
|
+
return val == null || val === '' ? def : val;
|
|
6816
|
+
},
|
|
6817
|
+
watchLoadData: function watchLoadData(fn) {
|
|
6818
|
+
var _this4 = this;
|
|
6819
|
+
|
|
6820
|
+
var unwatch = {};
|
|
6821
|
+
|
|
6822
|
+
var run = function run(flag) {
|
|
6823
|
+
invoke(function () {
|
|
6824
|
+
fn(get, flag);
|
|
6825
|
+
});
|
|
6826
|
+
};
|
|
6827
|
+
|
|
6828
|
+
var get = function get(id, def) {
|
|
6829
|
+
if (unwatch[id]) {
|
|
6830
|
+
return unwatch[id].val;
|
|
6831
|
+
}
|
|
6832
|
+
|
|
6833
|
+
var val = _this4.getLoadData(id, def);
|
|
6834
|
+
|
|
6835
|
+
var key = id.split('.').shift();
|
|
6836
|
+
|
|
6837
|
+
var callback = function callback() {
|
|
6838
|
+
if (key !== id) {
|
|
6839
|
+
var temp = _this4.getLoadData(id, def);
|
|
6840
|
+
|
|
6841
|
+
if (JSON.stringify(temp) !== JSON.stringify(unwatch[id].val)) {
|
|
6842
|
+
unwatch[id].val = temp;
|
|
6843
|
+
run(true);
|
|
6844
|
+
}
|
|
6845
|
+
} else {
|
|
6846
|
+
run(true);
|
|
6847
|
+
}
|
|
6848
|
+
};
|
|
6849
|
+
|
|
6850
|
+
_this4.bus.$on('$loadData.' + key, callback);
|
|
6851
|
+
|
|
6852
|
+
unwatch[id] = {
|
|
6853
|
+
fn: function fn() {
|
|
6854
|
+
_this4.bus.$off('$loadData.' + key, callback);
|
|
6855
|
+
},
|
|
6856
|
+
val: val
|
|
6857
|
+
};
|
|
6858
|
+
return val;
|
|
6859
|
+
};
|
|
6860
|
+
|
|
6861
|
+
run(false);
|
|
6862
|
+
return function () {
|
|
6863
|
+
Object.keys(unwatch).forEach(function (k) {
|
|
6864
|
+
return unwatch[k].fn();
|
|
6865
|
+
});
|
|
6866
|
+
unwatch = {};
|
|
6867
|
+
};
|
|
6868
|
+
},
|
|
6463
6869
|
isSub: function isSub() {
|
|
6464
6870
|
return this.vm.setupState.parent && this.vm.props.extendOption;
|
|
6465
6871
|
},
|
|
@@ -6498,6 +6904,7 @@
|
|
|
6498
6904
|
updateOptions: function updateOptions(options) {
|
|
6499
6905
|
this.options.value = this.mergeOptions(this.options.value, options);
|
|
6500
6906
|
this.$handle.$manager.updateOptions(this.options.value);
|
|
6907
|
+
this.bus.$emit('$loadData.$options');
|
|
6501
6908
|
},
|
|
6502
6909
|
api: function api() {
|
|
6503
6910
|
return this.$handle.api;
|
|
@@ -6509,6 +6916,8 @@
|
|
|
6509
6916
|
this.$handle.mounted();
|
|
6510
6917
|
},
|
|
6511
6918
|
unmount: function unmount() {
|
|
6919
|
+
var _this5 = this;
|
|
6920
|
+
|
|
6512
6921
|
if (this.name) {
|
|
6513
6922
|
if (this.inFor) {
|
|
6514
6923
|
var idx = instance[this.name].indexOf(this);
|
|
@@ -6518,14 +6927,17 @@
|
|
|
6518
6927
|
}
|
|
6519
6928
|
}
|
|
6520
6929
|
|
|
6930
|
+
listener.forEach(function (item) {
|
|
6931
|
+
_this5.bus.$off(item.name, item.callback);
|
|
6932
|
+
});
|
|
6521
6933
|
this.unwatch && this.unwatch();
|
|
6522
6934
|
this.$handle.reloadRule([]);
|
|
6523
6935
|
},
|
|
6524
6936
|
updated: function updated() {
|
|
6525
|
-
var
|
|
6937
|
+
var _this6 = this;
|
|
6526
6938
|
|
|
6527
6939
|
this.$handle.bindNextTick(function () {
|
|
6528
|
-
return
|
|
6940
|
+
return _this6.bus.$emit('next-tick', _this6.$handle.api);
|
|
6529
6941
|
});
|
|
6530
6942
|
}
|
|
6531
6943
|
});
|
|
@@ -6536,6 +6948,7 @@
|
|
|
6536
6948
|
ui: config.ui,
|
|
6537
6949
|
extendApi: extendApi,
|
|
6538
6950
|
getData: getData,
|
|
6951
|
+
setDataDriver: setDataDriver,
|
|
6539
6952
|
setData: setData,
|
|
6540
6953
|
removeData: removeData,
|
|
6541
6954
|
maker: maker,
|
|
@@ -6557,17 +6970,20 @@
|
|
|
6557
6970
|
parseJson: parseJson,
|
|
6558
6971
|
toJson: toJson,
|
|
6559
6972
|
useApp: useApp,
|
|
6560
|
-
getApi: getApi
|
|
6973
|
+
getApi: getApi,
|
|
6974
|
+
on: on
|
|
6561
6975
|
});
|
|
6562
6976
|
}
|
|
6563
6977
|
|
|
6564
6978
|
function useStatic(formCreate) {
|
|
6565
6979
|
extend(formCreate, {
|
|
6566
6980
|
create: create,
|
|
6981
|
+
isMobile: isMobile,
|
|
6567
6982
|
install: function install(app, options) {
|
|
6568
6983
|
globalConfig = _objectSpread2(_objectSpread2({}, globalConfig), options || {});
|
|
6569
|
-
|
|
6570
|
-
app
|
|
6984
|
+
var key = '_installedFormCreate_' + config.ui;
|
|
6985
|
+
if (app[key] === true) return;
|
|
6986
|
+
app[key] = true;
|
|
6571
6987
|
|
|
6572
6988
|
var $formCreate = function $formCreate(rules) {
|
|
6573
6989
|
var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
@@ -6576,7 +6992,8 @@
|
|
|
6576
6992
|
|
|
6577
6993
|
useAttr($formCreate);
|
|
6578
6994
|
app.config.globalProperties.$formCreate = $formCreate;
|
|
6579
|
-
|
|
6995
|
+
var $component = $form();
|
|
6996
|
+
app.component($component.name, $component);
|
|
6580
6997
|
useApps.forEach(function (v) {
|
|
6581
6998
|
invoke(function () {
|
|
6582
6999
|
return v(formCreate, app);
|
|
@@ -6588,6 +7005,8 @@
|
|
|
6588
7005
|
|
|
6589
7006
|
useAttr(create);
|
|
6590
7007
|
useStatic(create);
|
|
7008
|
+
setDataDriver('$cookie', cookieDriver);
|
|
7009
|
+
setDataDriver('$localStorage', localStorageDriver);
|
|
6591
7010
|
CreateNode.use({
|
|
6592
7011
|
fragment: 'fcFragment'
|
|
6593
7012
|
});
|
|
@@ -6612,7 +7031,10 @@
|
|
|
6612
7031
|
inherit.formulas && extend(formulas, inherit.formulas);
|
|
6613
7032
|
}
|
|
6614
7033
|
|
|
6615
|
-
|
|
7034
|
+
var FcComponent = $form();
|
|
7035
|
+
setPrototypeOf(FcComponent, create);
|
|
7036
|
+
FcComponent.util = create;
|
|
7037
|
+
return FcComponent;
|
|
6616
7038
|
}
|
|
6617
7039
|
|
|
6618
7040
|
var DEFAULT_FORMATS = {
|
|
@@ -7119,6 +7541,7 @@
|
|
|
7119
7541
|
return this.$r({
|
|
7120
7542
|
type: 'button',
|
|
7121
7543
|
props: resetBtn,
|
|
7544
|
+
"class": '_fc-reset-btn',
|
|
7122
7545
|
style: {
|
|
7123
7546
|
width: resetBtn.width
|
|
7124
7547
|
},
|
|
@@ -7144,6 +7567,7 @@
|
|
|
7144
7567
|
return this.$r({
|
|
7145
7568
|
type: 'button',
|
|
7146
7569
|
props: submitBtn,
|
|
7570
|
+
"class": '_fc-submit-btn',
|
|
7147
7571
|
style: {
|
|
7148
7572
|
width: submitBtn.width
|
|
7149
7573
|
},
|
|
@@ -7240,7 +7664,7 @@
|
|
|
7240
7664
|
return maker;
|
|
7241
7665
|
}
|
|
7242
7666
|
|
|
7243
|
-
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 .
|
|
7667
|
+
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}";
|
|
7244
7668
|
styleInject(css_248z);
|
|
7245
7669
|
|
|
7246
7670
|
function tidyBtnProp(btn, def) {
|
|
@@ -7493,7 +7917,7 @@
|
|
|
7493
7917
|
function elmFormCreate() {
|
|
7494
7918
|
return FormCreateFactory({
|
|
7495
7919
|
ui: 'element-ui',
|
|
7496
|
-
version: '3.1
|
|
7920
|
+
version: '3.2.1',
|
|
7497
7921
|
manager: manager,
|
|
7498
7922
|
extendApi: extendApi,
|
|
7499
7923
|
install: install,
|