@tmagic/form 1.0.0-rc.1 → 1.0.0-rc.12
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/tmagic-form.es.js +53 -19
- package/dist/tmagic-form.es.js.map +1 -1
- package/dist/tmagic-form.umd.js +54 -20
- package/dist/tmagic-form.umd.js.map +1 -1
- package/dist/types/src/fields/DynamicField.vue.d.ts +2 -2
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/schema.d.ts +8 -0
- package/package.json +10 -14
- package/src/containers/Container.vue +15 -2
- package/src/containers/Table.vue +1 -1
- package/src/containers/Tabs.vue +13 -5
- package/src/fields/Daterange.vue +8 -0
- package/src/fields/Select.vue +3 -0
- package/src/schema.ts +8 -0
- package/src/utils/form.ts +2 -0
- package/LICENSE +0 -5432
- package/coverage/clover.xml +0 -1360
- package/coverage/coverage-final.json +0 -38
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -176
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/Form.vue.html +0 -676
- package/coverage/lcov-report/src/FormDialog.vue.html +0 -583
- package/coverage/lcov-report/src/containers/Col.vue.html +0 -253
- package/coverage/lcov-report/src/containers/Container.vue.html +0 -925
- package/coverage/lcov-report/src/containers/Fieldset.vue.html +0 -499
- package/coverage/lcov-report/src/containers/GroupList.vue.html +0 -541
- package/coverage/lcov-report/src/containers/GroupListItem.vue.html +0 -562
- package/coverage/lcov-report/src/containers/Panel.vue.html +0 -403
- package/coverage/lcov-report/src/containers/Row.vue.html +0 -277
- package/coverage/lcov-report/src/containers/Step.vue.html +0 -331
- package/coverage/lcov-report/src/containers/Table.vue.html +0 -1987
- package/coverage/lcov-report/src/containers/Tabs.vue.html +0 -625
- package/coverage/lcov-report/src/containers/index.html +0 -251
- package/coverage/lcov-report/src/fields/Cascader.vue.html +0 -526
- package/coverage/lcov-report/src/fields/Checkbox.vue.html +0 -286
- package/coverage/lcov-report/src/fields/CheckboxGroup.vue.html +0 -217
- package/coverage/lcov-report/src/fields/ColorPicker.vue.html +0 -199
- package/coverage/lcov-report/src/fields/Date.vue.html +0 -238
- package/coverage/lcov-report/src/fields/DateTime.vue.html +0 -262
- package/coverage/lcov-report/src/fields/Daterange.vue.html +0 -310
- package/coverage/lcov-report/src/fields/Display.vue.html +0 -187
- package/coverage/lcov-report/src/fields/DynamicField.vue.html +0 -412
- package/coverage/lcov-report/src/fields/Hidden.vue.html +0 -172
- package/coverage/lcov-report/src/fields/Link.vue.html +0 -421
- package/coverage/lcov-report/src/fields/Number.vue.html +0 -244
- package/coverage/lcov-report/src/fields/RadioGroup.vue.html +0 -184
- package/coverage/lcov-report/src/fields/Select.vue.html +0 -1243
- package/coverage/lcov-report/src/fields/Switch.vue.html +0 -280
- package/coverage/lcov-report/src/fields/Text.vue.html +0 -487
- package/coverage/lcov-report/src/fields/Textarea.vue.html +0 -265
- package/coverage/lcov-report/src/fields/Time.vue.html +0 -229
- package/coverage/lcov-report/src/fields/index.html +0 -371
- package/coverage/lcov-report/src/index.html +0 -146
- package/coverage/lcov-report/src/index.ts.html +0 -466
- package/coverage/lcov-report/src/theme/index.html +0 -116
- package/coverage/lcov-report/src/theme/index.scss.html +0 -112
- package/coverage/lcov-report/src/utils/config.ts.html +0 -166
- package/coverage/lcov-report/src/utils/createForm.ts.html +0 -160
- package/coverage/lcov-report/src/utils/fieldProps.ts.html +0 -202
- package/coverage/lcov-report/src/utils/form.ts.html +0 -895
- package/coverage/lcov-report/src/utils/index.html +0 -176
- package/coverage/lcov-report/src/utils/useAddField.ts.html +0 -205
- package/coverage/lcov.info +0 -3061
- package/dist/types/src/Form.vue.d.ts +0 -362
- package/dist/types/src/FormDialog.vue.d.ts +0 -757
- package/dist/types/src/containers/Table.vue.d.ts +0 -2601
- package/dist/types/src/fields/Link.vue.d.ts +0 -1596
package/dist/tmagic-form.es.js
CHANGED
|
@@ -114,7 +114,8 @@ const filterFunction = (mForm, config, props) => {
|
|
|
114
114
|
model: props.model,
|
|
115
115
|
parent: mForm?.parentValues || {},
|
|
116
116
|
formValue: mForm?.values || props.model,
|
|
117
|
-
prop: props.prop
|
|
117
|
+
prop: props.prop,
|
|
118
|
+
config: props.config
|
|
118
119
|
});
|
|
119
120
|
};
|
|
120
121
|
const display = function(mForm, config, props) {
|
|
@@ -145,7 +146,8 @@ const getRules = function(mForm, rules = [], props) {
|
|
|
145
146
|
model: props.model,
|
|
146
147
|
parent: mForm?.parentValues || {},
|
|
147
148
|
formValue: mForm?.values || props.model,
|
|
148
|
-
prop: props.prop
|
|
149
|
+
prop: props.prop,
|
|
150
|
+
config: props.config
|
|
149
151
|
}, mForm);
|
|
150
152
|
}
|
|
151
153
|
return item;
|
|
@@ -205,7 +207,18 @@ const _sfc_main$t = defineComponent({
|
|
|
205
207
|
const expand = ref(false);
|
|
206
208
|
const name = computed(() => props.config.name || "");
|
|
207
209
|
const items = computed(() => props.config.items);
|
|
208
|
-
const itemProp = computed(() =>
|
|
210
|
+
const itemProp = computed(() => {
|
|
211
|
+
let n = "";
|
|
212
|
+
const { names } = props.config;
|
|
213
|
+
if (names?.[0]) {
|
|
214
|
+
[n] = names;
|
|
215
|
+
} else if (name.value) {
|
|
216
|
+
n = name.value;
|
|
217
|
+
} else {
|
|
218
|
+
return props.prop;
|
|
219
|
+
}
|
|
220
|
+
return `${props.prop}${props.prop ? "." : ""}${n}`;
|
|
221
|
+
});
|
|
209
222
|
const tagName = computed(() => {
|
|
210
223
|
const component = resolveComponent(`m-${items.value ? "form" : "fields"}-${type.value}`);
|
|
211
224
|
if (typeof component !== "string")
|
|
@@ -245,7 +258,8 @@ const _sfc_main$t = defineComponent({
|
|
|
245
258
|
model: props.model,
|
|
246
259
|
values: mForm?.initValues,
|
|
247
260
|
formValue: mForm?.values,
|
|
248
|
-
prop: itemProp.value
|
|
261
|
+
prop: itemProp.value,
|
|
262
|
+
config: props.config
|
|
249
263
|
});
|
|
250
264
|
}
|
|
251
265
|
if (filter === "number") {
|
|
@@ -259,7 +273,8 @@ const _sfc_main$t = defineComponent({
|
|
|
259
273
|
model: props.model,
|
|
260
274
|
values: mForm?.initValues,
|
|
261
275
|
formValue: mForm?.values,
|
|
262
|
-
prop: itemProp.value
|
|
276
|
+
prop: itemProp.value,
|
|
277
|
+
config: props.config
|
|
263
278
|
});
|
|
264
279
|
}
|
|
265
280
|
};
|
|
@@ -344,10 +359,10 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
344
359
|
"expand-more": _ctx.expand,
|
|
345
360
|
"label-width": _ctx.itemLabelWidth,
|
|
346
361
|
onChange: _ctx.onChangeHandler
|
|
347
|
-
}, null,
|
|
362
|
+
}, null, 40, ["size", "model", "config", "name", "prop", "step-active", "expand-more", "label-width", "onChange"])) : _ctx.type && _ctx.display ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
|
|
348
363
|
createVNode(_component_el_form_item, {
|
|
349
364
|
style: normalizeStyle(_ctx.config.tip ? "flex: 1" : ""),
|
|
350
|
-
class: normalizeClass({ hidden: _ctx.itemLabelWidth === 0 || !_ctx.config.text }),
|
|
365
|
+
class: normalizeClass({ hidden: `${_ctx.itemLabelWidth}` === "0" || !_ctx.config.text }),
|
|
351
366
|
prop: _ctx.itemProp,
|
|
352
367
|
"label-width": _ctx.itemLabelWidth,
|
|
353
368
|
rules: _ctx.rule
|
|
@@ -372,7 +387,7 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
372
387
|
disabled: _ctx.disabled,
|
|
373
388
|
prop: _ctx.itemProp,
|
|
374
389
|
onChange: _ctx.onChangeHandler
|
|
375
|
-
}, null,
|
|
390
|
+
}, null, 40, ["size", "model", "config", "name", "disabled", "prop", "onChange"]))
|
|
376
391
|
]),
|
|
377
392
|
_: 1
|
|
378
393
|
})) : (openBlock(), createBlock(resolveDynamicComponent(_ctx.tagName), {
|
|
@@ -384,7 +399,7 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
384
399
|
disabled: _ctx.disabled,
|
|
385
400
|
prop: _ctx.itemProp,
|
|
386
401
|
onChange: _ctx.onChangeHandler
|
|
387
|
-
}, null,
|
|
402
|
+
}, null, 40, ["size", "model", "config", "name", "disabled", "prop", "onChange"])),
|
|
388
403
|
_ctx.extra ? (openBlock(), createElementBlock("div", {
|
|
389
404
|
key: 2,
|
|
390
405
|
innerHTML: _ctx.extra,
|
|
@@ -1475,7 +1490,7 @@ const _sfc_main$l = defineComponent({
|
|
|
1475
1490
|
}
|
|
1476
1491
|
emit("select", selection, row);
|
|
1477
1492
|
if (typeof props.config.onSelect === "function") {
|
|
1478
|
-
props.config.onSelect(mForm, { selection, row });
|
|
1493
|
+
props.config.onSelect(mForm, { selection, row, config: props.config });
|
|
1479
1494
|
}
|
|
1480
1495
|
},
|
|
1481
1496
|
toggleRowSelection(row, selected) {
|
|
@@ -1880,11 +1895,11 @@ const tabClickHandler = (mForm, tab, props) => {
|
|
|
1880
1895
|
const { config, model, prop } = props;
|
|
1881
1896
|
tab.name = tab.paneName;
|
|
1882
1897
|
if (typeof config.onTabClick === "function") {
|
|
1883
|
-
config.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop });
|
|
1898
|
+
config.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop, config });
|
|
1884
1899
|
}
|
|
1885
1900
|
const tabConfig = config.items.find((item) => tab.name === item.status);
|
|
1886
1901
|
if (tabConfig && typeof tabConfig.onTabClick === "function") {
|
|
1887
|
-
tabConfig.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop });
|
|
1902
|
+
tabConfig.onTabClick(mForm, tab, { model, formValue: mForm?.values, prop, config });
|
|
1888
1903
|
}
|
|
1889
1904
|
};
|
|
1890
1905
|
const Tab = defineComponent({
|
|
@@ -1939,7 +1954,11 @@ const Tab = defineComponent({
|
|
|
1939
1954
|
if (!props.config.name)
|
|
1940
1955
|
throw new Error("dynamic tab \u5FC5\u987B\u914D\u7F6Ename");
|
|
1941
1956
|
if (typeof props.config.onTabAdd === "function") {
|
|
1942
|
-
props.config.onTabAdd(mForm, {
|
|
1957
|
+
props.config.onTabAdd(mForm, {
|
|
1958
|
+
model: props.model,
|
|
1959
|
+
prop: props.prop,
|
|
1960
|
+
config: props.config
|
|
1961
|
+
});
|
|
1943
1962
|
} else if (tabs.value.length > 0) {
|
|
1944
1963
|
const newObj = cloneDeep(tabs.value[0]);
|
|
1945
1964
|
newObj.title = `\u6807\u7B7E${tabs.value.length + 1}`;
|
|
@@ -1952,7 +1971,11 @@ const Tab = defineComponent({
|
|
|
1952
1971
|
if (!props.config.name)
|
|
1953
1972
|
throw new Error("dynamic tab \u5FC5\u987B\u914D\u7F6Ename");
|
|
1954
1973
|
if (typeof props.config.onTabRemove === "function") {
|
|
1955
|
-
props.config.onTabRemove(mForm, tabName, {
|
|
1974
|
+
props.config.onTabRemove(mForm, tabName, {
|
|
1975
|
+
model: props.model,
|
|
1976
|
+
prop: props.prop,
|
|
1977
|
+
config: props.config
|
|
1978
|
+
});
|
|
1956
1979
|
} else {
|
|
1957
1980
|
props.model[props.config.name].splice(+tabName, 1);
|
|
1958
1981
|
if (tabName < activeTabName.value || activeTabName.value >= props.model[props.config.name].length) {
|
|
@@ -1967,7 +1990,7 @@ const Tab = defineComponent({
|
|
|
1967
1990
|
changeHandler: () => {
|
|
1968
1991
|
emit("change", props.model);
|
|
1969
1992
|
if (typeof props.config.onChange === "function") {
|
|
1970
|
-
props.config.onChange(mForm, { model: props.model });
|
|
1993
|
+
props.config.onChange(mForm, { model: props.model, prop: props.prop, config: props.config });
|
|
1971
1994
|
}
|
|
1972
1995
|
}
|
|
1973
1996
|
};
|
|
@@ -2390,6 +2413,14 @@ const _sfc_main$e = defineComponent({
|
|
|
2390
2413
|
});
|
|
2391
2414
|
} else if (props.model && props.name && v instanceof Date) {
|
|
2392
2415
|
props.model[props.name] = datetimeFormatter(v.toString(), "");
|
|
2416
|
+
} else if (names?.length) {
|
|
2417
|
+
names.forEach((item) => {
|
|
2418
|
+
if (props.model) {
|
|
2419
|
+
props.model[item] = void 0;
|
|
2420
|
+
}
|
|
2421
|
+
});
|
|
2422
|
+
} else if (props.name) {
|
|
2423
|
+
props.model[props.name] = void 0;
|
|
2393
2424
|
}
|
|
2394
2425
|
};
|
|
2395
2426
|
return {
|
|
@@ -2886,7 +2917,8 @@ const _sfc_main$6 = defineComponent({
|
|
|
2886
2917
|
body = body(mForm, {
|
|
2887
2918
|
model: props.model,
|
|
2888
2919
|
formValue: mForm?.values,
|
|
2889
|
-
formValues: mForm?.values
|
|
2920
|
+
formValues: mForm?.values,
|
|
2921
|
+
config: props.config
|
|
2890
2922
|
});
|
|
2891
2923
|
}
|
|
2892
2924
|
body.query = query.value;
|
|
@@ -2909,7 +2941,8 @@ const _sfc_main$6 = defineComponent({
|
|
|
2909
2941
|
res = option.afterRequest(mForm, res, {
|
|
2910
2942
|
model: props.model,
|
|
2911
2943
|
formValue: mForm?.values,
|
|
2912
|
-
formValues: mForm?.values
|
|
2944
|
+
formValues: mForm?.values,
|
|
2945
|
+
config: props.config
|
|
2913
2946
|
});
|
|
2914
2947
|
}
|
|
2915
2948
|
const optionsData = res[option.root];
|
|
@@ -3001,7 +3034,8 @@ const _sfc_main$6 = defineComponent({
|
|
|
3001
3034
|
model: props.model,
|
|
3002
3035
|
prop: props.prop,
|
|
3003
3036
|
formValues: mForm?.values,
|
|
3004
|
-
formValue: mForm?.values
|
|
3037
|
+
formValue: mForm?.values,
|
|
3038
|
+
config: props.config
|
|
3005
3039
|
})).then((data) => {
|
|
3006
3040
|
options.value = data;
|
|
3007
3041
|
});
|
|
@@ -3770,7 +3804,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3770
3804
|
}
|
|
3771
3805
|
var FormDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
3772
3806
|
|
|
3773
|
-
var index$1 =
|
|
3807
|
+
var index$1 = /* #__PURE__ */ (() => ".m-form-dialog .el-dialog__body {\n padding: 0 !important;\n}\n.m-form-dialog .m-dialog-body {\n padding: 0 20px;\n}\n.m-form-dialog .el-table .m-form-item .el-form-item {\n margin-bottom: 0;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.5s;\n}\n\n.fade-enter, .fade-leave-to {\n opacity: 0;\n}\n\n.m-form .m-form-tip {\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n.m-form .m-form-schematic {\n max-width: 50%;\n height: 100%;\n}\n.m-form .el-table .cell > div.m-form-container {\n display: block;\n}\n.m-form .el-tabs {\n margin-bottom: 10px;\n}\n.m-form .el-form-item.hidden .el-form-item__label {\n display: none;\n}\n\n.magic-datetime-picker-popper .el-picker-panel__footer button:first-child {\n display: none;\n}\n\ndiv.m-fields-link {\n width: fit-content;\n}\n\nfieldset.m-fieldset {\n position: relative;\n border: 1px solid rgb(229, 229, 229);\n margin-top: 10px;\n margin-bottom: 10px;\n min-inline-size: auto;\n}\nfieldset.m-fieldset legend {\n font-size: 14px;\n position: absolute;\n border: 0;\n top: -10px;\n left: 20px;\n background: rgb(255, 255, 255);\n width: auto;\n padding: 0px 3px;\n font-weight: bold;\n line-height: 20px;\n}\nfieldset.m-fieldset .m-form-tip {\n margin-left: 5px;\n}\n\n.m-fields-group-list .el-button--text {\n padding: 0;\n margin-bottom: 7px;\n}\n.m-fields-group-list .el-tree-node__expand-icon {\n padding: 0;\n margin-bottom: 7px;\n}\n.m-fields-group-list .el-tree-node__expand-icon.expand {\n transform: rotate(90deg);\n}\n.m-fields-group-list .m-fields-group-list-item {\n border-bottom: 1px solid #ebeef5;\n margin-bottom: 7px;\n}\n.m-fields-group-list .m-fields-group-list-item:last-of-type {\n border-bottom: 0;\n}\n\n.m-form-panel .el-card__header:hover {\n background: #f2f6fc;\n}\n.m-form-panel .el-card__header a {\n color: #409eff;\n}\n.m-form-panel .el-card__body {\n padding: 10px;\n}\n.m-form-panel .m-form-tip {\n margin-left: 5px;\n}\n\n.m-fields-table {\n width: 100%;\n}\n.m-fields-table.fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n z-index: 100;\n}\n.m-fields-table.fixed::before {\n content: \" \";\n display: block;\n background: rgba(0, 0, 0, 0.5);\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n z-index: 100;\n}\n.m-fields-table.fixed > .el-form-item__content {\n z-index: 101;\n position: relative;\n margin: 10vh auto;\n max-width: fit-content;\n}\n.m-fields-table.fixed table {\n width: 95vw !important;\n}\n.m-fields-table th {\n background-color: #f2f2f2 !important;\n color: #333 !important;\n}\n.m-fields-table .el-table th {\n padding: 0 !important;\n}\n.m-fields-table .el-table__column--dropable {\n cursor: move;\n}\n.m-fields-table .el-form-item__content .el-input-group {\n vertical-align: middle;\n}\n.m-fields-table.m-fields-table-item-extra tr.expanded td {\n border-bottom: 0;\n}\n.m-fields-table .el-table__expanded-cell .m-form-tip {\n margin-left: 80px;\n}\n.m-fields-table .el-form-item {\n margin-bottom: 0;\n}\n\n.m-select {\n width: 100%;\n}")();
|
|
3774
3808
|
|
|
3775
3809
|
const defaultInstallOpt = {};
|
|
3776
3810
|
const install = (app, opt) => {
|