@tmagic/form 1.8.0-beta.1 → 1.8.0-beta.11
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/es/Form.vue_vue_type_script_setup_true_lang.js +25 -6
- package/dist/es/FormBox.vue_vue_type_script_setup_true_lang.js +7 -1
- package/dist/es/FormDialog.vue_vue_type_script_setup_true_lang.js +7 -1
- package/dist/es/FormDrawer.vue_vue_type_script_setup_true_lang.js +7 -1
- package/dist/es/containers/Col.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/Container.vue_vue_type_script_setup_true_lang.js +195 -78
- package/dist/es/containers/Fieldset.vue_vue_type_script_setup_true_lang.js +5 -3
- package/dist/es/containers/FlexLayout.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/FormLabel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/GroupList.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/es/containers/GroupListItem.vue_vue_type_script_setup_true_lang.js +10 -9
- package/dist/es/containers/Panel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/Row.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/Step.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/Tabs.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/es/containers/table/ActionsColumn.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/table/SortColumn.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/containers/table/Table.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/containers/table-group-list/TableGroupList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Cascader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Checkbox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/ColorPicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Date.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/DateTime.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Daterange.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Display.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/DynamicField.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Hidden.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Link.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Number.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/NumberRange.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/RadioGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Select.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Switch.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Text.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Textarea.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Time.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/Timerange.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/index.js +2 -1
- package/dist/es/schema.js +4 -0
- package/dist/es/style.css +4 -1
- package/dist/es/submitForm.js +111 -8
- package/dist/es/utils/form.js +2 -2
- package/dist/style.css +4 -1
- package/dist/tmagic-form.umd.cjs +1865 -1598
- package/package.json +5 -5
- package/src/Form.vue +64 -3
- package/src/FormBox.vue +4 -0
- package/src/FormDialog.vue +4 -0
- package/src/FormDrawer.vue +4 -0
- package/src/containers/Container.vue +178 -54
- package/src/containers/Fieldset.vue +5 -2
- package/src/containers/GroupList.vue +1 -1
- package/src/containers/GroupListItem.vue +4 -3
- package/src/containers/Tabs.vue +10 -2
- package/src/containers/table/Table.vue +9 -3
- package/src/schema.ts +47 -0
- package/src/submitForm.ts +196 -16
- package/src/theme/container.scss +4 -1
- package/types/index.d.ts +1021 -421
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { FORM_DIFF_CONFIG_KEY } from "./schema.js";
|
|
1
2
|
import { getConfig } from "./utils/config.js";
|
|
2
3
|
import { initValue } from "./utils/form.js";
|
|
3
4
|
import Container_default from "./containers/Container.js";
|
|
4
|
-
import { Fragment, createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeStyle, openBlock, provide, reactive, ref, renderList, shallowRef, toRaw, unref, useTemplateRef, watch, watchEffect, withCtx } from "vue";
|
|
5
|
+
import { Fragment, createBlock, createCommentVNode, createElementBlock, createSlots, defineComponent, mergeProps, normalizeStyle, openBlock, provide, reactive, ref, renderList, renderSlot, shallowRef, toRaw, unref, useTemplateRef, watch, watchEffect, withCtx } from "vue";
|
|
5
6
|
import { cloneDeep, isEqual } from "lodash-es";
|
|
6
7
|
import { TMagicForm, tMagicMessage, tMagicMessageBox } from "@tmagic/design";
|
|
7
8
|
import { setValueByKeyPath } from "@tmagic/utils";
|
|
8
9
|
//#region packages/form/src/Form.vue?vue&type=script&setup=true&lang.ts
|
|
9
|
-
var Form_vue_vue_type_script_setup_true_lang_default =
|
|
10
|
+
var Form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
10
11
|
name: "MForm",
|
|
11
12
|
__name: "Form",
|
|
12
13
|
props: {
|
|
@@ -34,7 +35,13 @@ var Form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
34
35
|
keyProp: { default: "__key" },
|
|
35
36
|
popperClass: {},
|
|
36
37
|
preventSubmitDefault: { type: Boolean },
|
|
37
|
-
|
|
38
|
+
useFieldTextInError: {
|
|
39
|
+
type: Boolean,
|
|
40
|
+
default: true
|
|
41
|
+
},
|
|
42
|
+
extendState: {},
|
|
43
|
+
showDiff: {},
|
|
44
|
+
selfDiffFieldTypes: {}
|
|
38
45
|
},
|
|
39
46
|
emits: [
|
|
40
47
|
"change",
|
|
@@ -150,6 +157,14 @@ var Form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
150
157
|
}
|
|
151
158
|
});
|
|
152
159
|
provide("mForm", formState);
|
|
160
|
+
provide(FORM_DIFF_CONFIG_KEY, {
|
|
161
|
+
get showDiff() {
|
|
162
|
+
return props.showDiff;
|
|
163
|
+
},
|
|
164
|
+
get selfDiffFieldTypes() {
|
|
165
|
+
return props.selfDiffFieldTypes;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
153
168
|
const changeRecords = shallowRef([]);
|
|
154
169
|
watch([() => props.config, () => props.initValues], ([config], [preConfig]) => {
|
|
155
170
|
changeRecords.value = [];
|
|
@@ -234,7 +249,7 @@ var Form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
234
249
|
Object.entries(invalidFields).forEach(([prop, ValidateError]) => {
|
|
235
250
|
ValidateError.forEach(({ field, message }) => {
|
|
236
251
|
const name = field || prop;
|
|
237
|
-
const text = getTextByName(name, props.config) || name;
|
|
252
|
+
const text = (props.useFieldTextInError ? getTextByName(name, props.config) : void 0) || name;
|
|
238
253
|
error.push(`${text} -> ${message}`);
|
|
239
254
|
});
|
|
240
255
|
});
|
|
@@ -266,7 +281,11 @@ var Form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
266
281
|
"step-active": __props.stepActive,
|
|
267
282
|
size: __props.size,
|
|
268
283
|
onChange: changeHandler
|
|
269
|
-
},
|
|
284
|
+
}, createSlots({ _: 2 }, [_ctx.$slots.label ? {
|
|
285
|
+
name: "label",
|
|
286
|
+
fn: withCtx((labelProps) => [renderSlot(_ctx.$slots, "label", mergeProps({ ref_for: true }, labelProps))]),
|
|
287
|
+
key: "0"
|
|
288
|
+
} : void 0]), 1032, [
|
|
270
289
|
"disabled",
|
|
271
290
|
"config",
|
|
272
291
|
"model",
|
|
@@ -277,7 +296,7 @@ var Form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
277
296
|
"size"
|
|
278
297
|
]);
|
|
279
298
|
}), 128)) : createCommentVNode("v-if", true)]),
|
|
280
|
-
_:
|
|
299
|
+
_: 3
|
|
281
300
|
}, 8, [
|
|
282
301
|
"model",
|
|
283
302
|
"label-width",
|
|
@@ -3,7 +3,7 @@ import { computed, createElementBlock, createElementVNode, createTextVNode, crea
|
|
|
3
3
|
import { TMagicButton, TMagicScrollbar } from "@tmagic/design";
|
|
4
4
|
//#region packages/form/src/FormBox.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var footerHeight = 60;
|
|
6
|
-
var FormBox_vue_vue_type_script_setup_true_lang_default =
|
|
6
|
+
var FormBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
7
|
name: "MFormBox",
|
|
8
8
|
__name: "FormBox",
|
|
9
9
|
props: {
|
|
@@ -19,6 +19,10 @@ var FormBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
19
19
|
inline: { type: Boolean },
|
|
20
20
|
labelPosition: {},
|
|
21
21
|
preventSubmitDefault: { type: Boolean },
|
|
22
|
+
useFieldTextInError: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: true
|
|
25
|
+
},
|
|
22
26
|
extendState: {}
|
|
23
27
|
},
|
|
24
28
|
emits: [
|
|
@@ -81,6 +85,7 @@ var FormBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
81
85
|
"label-position": __props.labelPosition,
|
|
82
86
|
inline: __props.inline,
|
|
83
87
|
"prevent-submit-default": __props.preventSubmitDefault,
|
|
88
|
+
"use-field-text-in-error": __props.useFieldTextInError,
|
|
84
89
|
"extend-state": __props.extendState,
|
|
85
90
|
onChange: changeHandler
|
|
86
91
|
}, null, 8, [
|
|
@@ -93,6 +98,7 @@ var FormBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
93
98
|
"label-position",
|
|
94
99
|
"inline",
|
|
95
100
|
"prevent-submit-default",
|
|
101
|
+
"use-field-text-in-error",
|
|
96
102
|
"extend-state"
|
|
97
103
|
]), renderSlot(_ctx.$slots, "default")]),
|
|
98
104
|
_: 3
|
|
@@ -3,7 +3,7 @@ import { computed, createBlock, createCommentVNode, createElementBlock, createEl
|
|
|
3
3
|
import { TMagicButton, TMagicCol, TMagicDialog, TMagicRow } from "@tmagic/design";
|
|
4
4
|
//#region packages/form/src/FormDialog.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = { style: { "min-height": "1px" } };
|
|
6
|
-
var FormDialog_vue_vue_type_script_setup_true_lang_default =
|
|
6
|
+
var FormDialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
7
|
name: "MFormDialog",
|
|
8
8
|
__name: "FormDialog",
|
|
9
9
|
props: {
|
|
@@ -41,6 +41,10 @@ var FormDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
41
41
|
type: Boolean,
|
|
42
42
|
default: true
|
|
43
43
|
},
|
|
44
|
+
useFieldTextInError: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
default: true
|
|
47
|
+
},
|
|
44
48
|
extendState: {}
|
|
45
49
|
},
|
|
46
50
|
emits: [
|
|
@@ -191,6 +195,7 @@ var FormDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
191
195
|
"label-position": __props.labelPosition,
|
|
192
196
|
inline: __props.inline,
|
|
193
197
|
"prevent-submit-default": __props.preventSubmitDefault,
|
|
198
|
+
"use-field-text-in-error": __props.useFieldTextInError,
|
|
194
199
|
"extend-state": __props.extendState,
|
|
195
200
|
onChange: changeHandler
|
|
196
201
|
}, null, 8, [
|
|
@@ -204,6 +209,7 @@ var FormDialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
204
209
|
"label-position",
|
|
205
210
|
"inline",
|
|
206
211
|
"prevent-submit-default",
|
|
212
|
+
"use-field-text-in-error",
|
|
207
213
|
"extend-state"
|
|
208
214
|
]), renderSlot(_ctx.$slots, "default")], 4)) : createCommentVNode("v-if", true)]),
|
|
209
215
|
_: 3
|
|
@@ -3,7 +3,7 @@ import { createBlock, createCommentVNode, createElementBlock, createElementVNode
|
|
|
3
3
|
import { TMagicButton, TMagicCol, TMagicDrawer, TMagicRow } from "@tmagic/design";
|
|
4
4
|
//#region packages/form/src/FormDrawer.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = { style: { "min-height": "1px" } };
|
|
6
|
-
var FormDrawer_vue_vue_type_script_setup_true_lang_default =
|
|
6
|
+
var FormDrawer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
7
|
name: "MFormDialog",
|
|
8
8
|
__name: "FormDrawer",
|
|
9
9
|
props: {
|
|
@@ -24,6 +24,10 @@ var FormDrawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
24
24
|
inline: { type: Boolean },
|
|
25
25
|
labelPosition: {},
|
|
26
26
|
preventSubmitDefault: { type: Boolean },
|
|
27
|
+
useFieldTextInError: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
default: true
|
|
30
|
+
},
|
|
27
31
|
beforeClose: {},
|
|
28
32
|
extendState: {}
|
|
29
33
|
},
|
|
@@ -149,6 +153,7 @@ var FormDrawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
149
153
|
"label-position": __props.labelPosition,
|
|
150
154
|
inline: __props.inline,
|
|
151
155
|
"prevent-submit-default": __props.preventSubmitDefault,
|
|
156
|
+
"use-field-text-in-error": __props.useFieldTextInError,
|
|
152
157
|
"extend-state": __props.extendState,
|
|
153
158
|
onChange: changeHandler
|
|
154
159
|
}, null, 8, [
|
|
@@ -161,6 +166,7 @@ var FormDrawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
161
166
|
"label-position",
|
|
162
167
|
"inline",
|
|
163
168
|
"prevent-submit-default",
|
|
169
|
+
"use-field-text-in-error",
|
|
164
170
|
"extend-state"
|
|
165
171
|
]), renderSlot(_ctx.$slots, "default")], 512)) : createCommentVNode("v-if", true)]),
|
|
166
172
|
_: 3
|
|
@@ -3,7 +3,7 @@ import Container_default from "./Container.js";
|
|
|
3
3
|
import { computed, createBlock, createVNode, defineComponent, inject, openBlock, unref, vShow, withCtx, withDirectives } from "vue";
|
|
4
4
|
import { TMagicCol } from "@tmagic/design";
|
|
5
5
|
//#region packages/form/src/containers/Col.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
var Col_vue_vue_type_script_setup_true_lang_default =
|
|
6
|
+
var Col_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
7
|
name: "MFormCol",
|
|
8
8
|
__name: "Col",
|
|
9
9
|
props: {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { FORM_DIFF_CONFIG_KEY } from "../schema.js";
|
|
1
2
|
import Hidden_default from "../fields/Hidden.js";
|
|
2
3
|
import { getField } from "../utils/config.js";
|
|
3
4
|
import { createObjectProp, display, filterFunction, getRules } from "../utils/form.js";
|
|
4
5
|
import FormLabel_default from "./FormLabel.js";
|
|
5
|
-
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, mergeProps, normalizeClass, normalizeStyle, openBlock, readonly, ref, renderList, resolveComponent, resolveDynamicComponent, toDisplayString, toRaw, unref, watch, watchEffect, withCtx } from "vue";
|
|
6
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, inject, mergeProps, normalizeClass, normalizeStyle, openBlock, readonly, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, toDisplayString, toRaw, unref, watch, watchEffect, withCtx } from "vue";
|
|
6
7
|
import { isEqual } from "lodash-es";
|
|
7
8
|
import { TMagicButton, TMagicFormItem, TMagicIcon, TMagicTooltip } from "@tmagic/design";
|
|
8
9
|
import { getValueByKeyPath } from "@tmagic/utils";
|
|
@@ -15,11 +16,12 @@ var _hoisted_4 = ["innerHTML"];
|
|
|
15
16
|
var _hoisted_5 = ["innerHTML"];
|
|
16
17
|
var _hoisted_6 = ["innerHTML"];
|
|
17
18
|
var _hoisted_7 = ["innerHTML"];
|
|
18
|
-
var _hoisted_8 =
|
|
19
|
+
var _hoisted_8 = ["innerHTML"];
|
|
20
|
+
var _hoisted_9 = {
|
|
19
21
|
key: 5,
|
|
20
22
|
style: { "text-align": "center" }
|
|
21
23
|
};
|
|
22
|
-
var Container_vue_vue_type_script_setup_true_lang_default =
|
|
24
|
+
var Container_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
23
25
|
name: "MFormContainer",
|
|
24
26
|
__name: "Container",
|
|
25
27
|
props: {
|
|
@@ -45,11 +47,21 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
45
47
|
const props = __props;
|
|
46
48
|
const emit = __emit;
|
|
47
49
|
const mForm = inject("mForm");
|
|
50
|
+
const diffConfig = inject(FORM_DIFF_CONFIG_KEY, {});
|
|
48
51
|
const expand = ref(false);
|
|
49
52
|
const name = computed(() => props.config.name || "");
|
|
50
53
|
const showDiff = computed(() => {
|
|
51
54
|
if (!props.isCompare) return false;
|
|
52
|
-
|
|
55
|
+
if (!name.value) return false;
|
|
56
|
+
const curValue = props.model[name.value];
|
|
57
|
+
const lastValue = props.lastValues[name.value];
|
|
58
|
+
const customShowDiff = diffConfig.showDiff;
|
|
59
|
+
if (typeof customShowDiff === "function") return Boolean(customShowDiff({
|
|
60
|
+
curValue,
|
|
61
|
+
lastValue,
|
|
62
|
+
config: props.config
|
|
63
|
+
}));
|
|
64
|
+
return !isEqual(curValue, lastValue);
|
|
53
65
|
});
|
|
54
66
|
const items = computed(() => props.config.items);
|
|
55
67
|
const itemProp = computed(() => {
|
|
@@ -70,6 +82,35 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
70
82
|
if (type.value === "component" && props.config.component) return props.config.component;
|
|
71
83
|
return getField(type.value || "container") || `m-${items.value ? "form" : "fields"}-${type.value}`;
|
|
72
84
|
});
|
|
85
|
+
/**
|
|
86
|
+
* 自接管对比的字段类型白名单。
|
|
87
|
+
*
|
|
88
|
+
* 这类字段在 `isCompare === true` 且存在差异时,不再由 Container 渲染前后两份独立组件来对比,
|
|
89
|
+
* 而是只渲染一次组件,将 `model` / `lastValues` / `isCompare` 一并传给字段组件,
|
|
90
|
+
* 由字段组件内部自行展示前后差异(典型场景:vs-code 字段使用 monaco 自带的 diff 编辑器)。
|
|
91
|
+
*
|
|
92
|
+
* 这样做的好处:
|
|
93
|
+
* 1. 避免重型字段(如 monaco 编辑器)在对比模式下被实例化两次,节省资源;
|
|
94
|
+
* 2. 提供更专业的对比视觉效果(如 monaco diff 的行级高亮、左右滚动同步等)。
|
|
95
|
+
*
|
|
96
|
+
* 注意:像 `event-select` / `code-select-col` 这类内部由列表 / 嵌套子表单组成的复合字段,若按默认逻辑
|
|
97
|
+
* 渲染前后两份独立组件,会出现两套下拉框 + 两份参数表单(或两套「添加事件」按钮、两份完整面板),
|
|
98
|
+
* 体验很差。这类字段在内部把 `is-compare`/`lastValues` 透传给子级容器,由子级逐项展示差异,
|
|
99
|
+
* 因此同样归类为自接管对比字段。
|
|
100
|
+
*/
|
|
101
|
+
const DEFAULT_SELF_DIFF_FIELD_TYPES = [
|
|
102
|
+
"vs-code",
|
|
103
|
+
"event-select",
|
|
104
|
+
"code-select-col",
|
|
105
|
+
"code-select"
|
|
106
|
+
];
|
|
107
|
+
const effectiveSelfDiffFieldTypes = computed(() => {
|
|
108
|
+
const custom = diffConfig.selfDiffFieldTypes;
|
|
109
|
+
if (typeof custom === "function") return new Set(custom([...DEFAULT_SELF_DIFF_FIELD_TYPES]));
|
|
110
|
+
if (Array.isArray(custom)) return /* @__PURE__ */ new Set([...DEFAULT_SELF_DIFF_FIELD_TYPES, ...custom]);
|
|
111
|
+
return new Set(DEFAULT_SELF_DIFF_FIELD_TYPES);
|
|
112
|
+
});
|
|
113
|
+
const isSelfDiffField = computed(() => effectiveSelfDiffFieldTypes.value.has(type.value));
|
|
73
114
|
const disabled = computed(() => props.disabled || filterFunction(mForm, props.config.disabled, props));
|
|
74
115
|
const text = computed(() => filterFunction(mForm, props.config.text, props));
|
|
75
116
|
const tooltip = computed(() => {
|
|
@@ -238,7 +279,13 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
238
279
|
"label-width",
|
|
239
280
|
"style"
|
|
240
281
|
])) : type.value && display$1.value && !showDiff.value ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [createVNode(unref(TMagicFormItem), mergeProps(formItemProps.value, { class: { "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value } }), {
|
|
241
|
-
label: withCtx(() => [
|
|
282
|
+
label: withCtx(() => [renderSlot(_ctx.$slots, "label", {
|
|
283
|
+
config: __props.config,
|
|
284
|
+
type: type.value,
|
|
285
|
+
text: text.value,
|
|
286
|
+
prop: itemProp.value,
|
|
287
|
+
disabled: disabled.value
|
|
288
|
+
}, () => [createVNode(FormLabel_default, {
|
|
242
289
|
tip: __props.config.tip,
|
|
243
290
|
type: type.value,
|
|
244
291
|
"use-label": __props.config.useLabel,
|
|
@@ -250,7 +297,7 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
250
297
|
"use-label",
|
|
251
298
|
"label-title",
|
|
252
299
|
"text"
|
|
253
|
-
])]),
|
|
300
|
+
])])]),
|
|
254
301
|
default: withCtx(() => [tooltip.value.text ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
255
302
|
key: 0,
|
|
256
303
|
placement: tooltip.value.placement
|
|
@@ -279,7 +326,7 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
279
326
|
"last-values",
|
|
280
327
|
"is-compare"
|
|
281
328
|
]))]),
|
|
282
|
-
_:
|
|
329
|
+
_: 3
|
|
283
330
|
}, 16, ["class"]), __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
284
331
|
key: 0,
|
|
285
332
|
placement: "top"
|
|
@@ -295,12 +342,18 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
295
342
|
_: 1
|
|
296
343
|
})) : createCommentVNode("v-if", true)], 64)) : type.value && display$1.value && showDiff.value ? (openBlock(), createElementBlock(Fragment, { key: 3 }, [
|
|
297
344
|
createCommentVNode(" 对比 "),
|
|
298
|
-
createCommentVNode("
|
|
299
|
-
|
|
345
|
+
createCommentVNode(" 自接管对比的字段类型(如 vs-code):只渲染一次组件,由字段内部用 diff 编辑器/视图自行展示前后差异 "),
|
|
346
|
+
isSelfDiffField.value ? (openBlock(), createBlock(unref(TMagicFormItem), mergeProps({ key: 0 }, formItemProps.value, { class: {
|
|
300
347
|
"tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value,
|
|
301
|
-
"
|
|
348
|
+
"self-diff": true
|
|
302
349
|
} }), {
|
|
303
|
-
label: withCtx(() => [
|
|
350
|
+
label: withCtx(() => [renderSlot(_ctx.$slots, "label", {
|
|
351
|
+
config: __props.config,
|
|
352
|
+
type: type.value,
|
|
353
|
+
text: text.value,
|
|
354
|
+
prop: itemProp.value,
|
|
355
|
+
disabled: disabled.value
|
|
356
|
+
}, () => [createVNode(FormLabel_default, {
|
|
304
357
|
tip: __props.config.tip,
|
|
305
358
|
type: type.value,
|
|
306
359
|
"use-label": __props.config.useLabel,
|
|
@@ -312,88 +365,148 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
312
365
|
"use-label",
|
|
313
366
|
"label-title",
|
|
314
367
|
"text"
|
|
315
|
-
])]),
|
|
368
|
+
])])]),
|
|
316
369
|
default: withCtx(() => [tooltip.value.text ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
317
370
|
key: 0,
|
|
318
371
|
placement: tooltip.value.placement
|
|
319
372
|
}, {
|
|
320
373
|
content: withCtx(() => [createElementVNode("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_4)]),
|
|
321
374
|
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(tagName.value), mergeProps(fieldsProps.value, {
|
|
322
|
-
model: __props.
|
|
375
|
+
model: __props.model,
|
|
376
|
+
"last-values": __props.lastValues,
|
|
377
|
+
"is-compare": __props.isCompare,
|
|
323
378
|
onChange: onChangeHandler
|
|
324
|
-
}), null, 16, [
|
|
379
|
+
}), null, 16, [
|
|
380
|
+
"model",
|
|
381
|
+
"last-values",
|
|
382
|
+
"is-compare"
|
|
383
|
+
]))]),
|
|
325
384
|
_: 1
|
|
326
385
|
}, 8, ["placement"])) : (openBlock(), createBlock(resolveDynamicComponent(tagName.value), mergeProps({ key: 1 }, fieldsProps.value, {
|
|
327
|
-
model: __props.
|
|
386
|
+
model: __props.model,
|
|
387
|
+
"last-values": __props.lastValues,
|
|
388
|
+
"is-compare": __props.isCompare,
|
|
328
389
|
onChange: onChangeHandler
|
|
329
|
-
}), null, 16, [
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
}, {
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
"margin-left": "5px"
|
|
340
|
-
} }, {
|
|
341
|
-
default: withCtx(() => [createVNode(unref(WarningFilled))]),
|
|
342
|
-
_: 1
|
|
343
|
-
})]),
|
|
344
|
-
_: 1
|
|
345
|
-
})) : createCommentVNode("v-if", true),
|
|
346
|
-
createCommentVNode(" 当前内容 "),
|
|
347
|
-
createVNode(unref(TMagicFormItem), mergeProps(formItemProps.value, {
|
|
348
|
-
style: __props.config.tip ? "flex: 1" : "",
|
|
349
|
-
class: {
|
|
390
|
+
}), null, 16, [
|
|
391
|
+
"model",
|
|
392
|
+
"last-values",
|
|
393
|
+
"is-compare"
|
|
394
|
+
]))]),
|
|
395
|
+
_: 3
|
|
396
|
+
}, 16, ["class"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
397
|
+
createCommentVNode(" 普通字段:渲染前后两份独立的组件用于对比 "),
|
|
398
|
+
createCommentVNode(" 上次内容 "),
|
|
399
|
+
createVNode(unref(TMagicFormItem), mergeProps(formItemProps.value, { class: {
|
|
350
400
|
"tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value,
|
|
351
|
-
"show-diff": true
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
401
|
+
"show-before-diff": true
|
|
402
|
+
} }), {
|
|
403
|
+
label: withCtx(() => [renderSlot(_ctx.$slots, "label", {
|
|
404
|
+
config: __props.config,
|
|
405
|
+
type: type.value,
|
|
406
|
+
text: text.value,
|
|
407
|
+
prop: itemProp.value,
|
|
408
|
+
disabled: disabled.value
|
|
409
|
+
}, () => [createVNode(FormLabel_default, {
|
|
410
|
+
tip: __props.config.tip,
|
|
411
|
+
type: type.value,
|
|
412
|
+
"use-label": __props.config.useLabel,
|
|
413
|
+
"label-title": __props.config.labelTitle,
|
|
414
|
+
text: text.value
|
|
415
|
+
}, null, 8, [
|
|
416
|
+
"tip",
|
|
417
|
+
"type",
|
|
418
|
+
"use-label",
|
|
419
|
+
"label-title",
|
|
420
|
+
"text"
|
|
421
|
+
])])]),
|
|
422
|
+
default: withCtx(() => [tooltip.value.text ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
423
|
+
key: 0,
|
|
424
|
+
placement: tooltip.value.placement
|
|
425
|
+
}, {
|
|
426
|
+
content: withCtx(() => [createElementVNode("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_5)]),
|
|
427
|
+
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(tagName.value), mergeProps(fieldsProps.value, {
|
|
428
|
+
model: __props.lastValues,
|
|
429
|
+
onChange: onChangeHandler
|
|
430
|
+
}), null, 16, ["model"]))]),
|
|
431
|
+
_: 1
|
|
432
|
+
}, 8, ["placement"])) : (openBlock(), createBlock(resolveDynamicComponent(tagName.value), mergeProps({ key: 1 }, fieldsProps.value, {
|
|
433
|
+
model: __props.lastValues,
|
|
434
|
+
onChange: onChangeHandler
|
|
435
|
+
}), null, 16, ["model"]))]),
|
|
436
|
+
_: 3
|
|
437
|
+
}, 16, ["class"]),
|
|
438
|
+
__props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
368
439
|
key: 0,
|
|
369
|
-
placement:
|
|
440
|
+
placement: "top"
|
|
370
441
|
}, {
|
|
371
|
-
content: withCtx(() => [createElementVNode("div", { innerHTML:
|
|
372
|
-
default: withCtx(() => [(
|
|
442
|
+
content: withCtx(() => [createElementVNode("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_6)]),
|
|
443
|
+
default: withCtx(() => [createVNode(unref(TMagicIcon), { style: {
|
|
444
|
+
"line-height": "40px",
|
|
445
|
+
"margin-left": "5px"
|
|
446
|
+
} }, {
|
|
447
|
+
default: withCtx(() => [createVNode(unref(WarningFilled))]),
|
|
448
|
+
_: 1
|
|
449
|
+
})]),
|
|
450
|
+
_: 1
|
|
451
|
+
})) : createCommentVNode("v-if", true),
|
|
452
|
+
createCommentVNode(" 当前内容 "),
|
|
453
|
+
createVNode(unref(TMagicFormItem), mergeProps(formItemProps.value, {
|
|
454
|
+
style: __props.config.tip ? "flex: 1" : "",
|
|
455
|
+
class: {
|
|
456
|
+
"tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value,
|
|
457
|
+
"show-after-diff": true
|
|
458
|
+
}
|
|
459
|
+
}), {
|
|
460
|
+
label: withCtx(() => [renderSlot(_ctx.$slots, "label", {
|
|
461
|
+
config: __props.config,
|
|
462
|
+
type: type.value,
|
|
463
|
+
text: text.value,
|
|
464
|
+
prop: itemProp.value,
|
|
465
|
+
disabled: disabled.value
|
|
466
|
+
}, () => [createVNode(FormLabel_default, {
|
|
467
|
+
tip: __props.config.tip,
|
|
468
|
+
type: type.value,
|
|
469
|
+
"use-label": __props.config.useLabel,
|
|
470
|
+
"label-title": __props.config.labelTitle,
|
|
471
|
+
text: text.value
|
|
472
|
+
}, null, 8, [
|
|
473
|
+
"tip",
|
|
474
|
+
"type",
|
|
475
|
+
"use-label",
|
|
476
|
+
"label-title",
|
|
477
|
+
"text"
|
|
478
|
+
])])]),
|
|
479
|
+
default: withCtx(() => [tooltip.value.text ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
480
|
+
key: 0,
|
|
481
|
+
placement: tooltip.value.placement
|
|
482
|
+
}, {
|
|
483
|
+
content: withCtx(() => [createElementVNode("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_7)]),
|
|
484
|
+
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(tagName.value), mergeProps(fieldsProps.value, {
|
|
485
|
+
model: __props.model,
|
|
486
|
+
onChange: onChangeHandler
|
|
487
|
+
}), null, 16, ["model"]))]),
|
|
488
|
+
_: 1
|
|
489
|
+
}, 8, ["placement"])) : (openBlock(), createBlock(resolveDynamicComponent(tagName.value), mergeProps({ key: 1 }, fieldsProps.value, {
|
|
373
490
|
model: __props.model,
|
|
374
491
|
onChange: onChangeHandler
|
|
375
492
|
}), null, 16, ["model"]))]),
|
|
493
|
+
_: 3
|
|
494
|
+
}, 16, ["style", "class"]),
|
|
495
|
+
__props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
496
|
+
key: 1,
|
|
497
|
+
placement: "top"
|
|
498
|
+
}, {
|
|
499
|
+
content: withCtx(() => [createElementVNode("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_8)]),
|
|
500
|
+
default: withCtx(() => [createVNode(unref(TMagicIcon), { style: {
|
|
501
|
+
"line-height": "40px",
|
|
502
|
+
"margin-left": "5px"
|
|
503
|
+
} }, {
|
|
504
|
+
default: withCtx(() => [createVNode(unref(WarningFilled))]),
|
|
505
|
+
_: 1
|
|
506
|
+
})]),
|
|
376
507
|
_: 1
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
onChange: onChangeHandler
|
|
380
|
-
}), null, 16, ["model"]))]),
|
|
381
|
-
_: 1
|
|
382
|
-
}, 16, ["style", "class"]),
|
|
383
|
-
__props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
384
|
-
key: 1,
|
|
385
|
-
placement: "top"
|
|
386
|
-
}, {
|
|
387
|
-
content: withCtx(() => [createElementVNode("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_7)]),
|
|
388
|
-
default: withCtx(() => [createVNode(unref(TMagicIcon), { style: {
|
|
389
|
-
"line-height": "40px",
|
|
390
|
-
"margin-left": "5px"
|
|
391
|
-
} }, {
|
|
392
|
-
default: withCtx(() => [createVNode(unref(WarningFilled))]),
|
|
393
|
-
_: 1
|
|
394
|
-
})]),
|
|
395
|
-
_: 1
|
|
396
|
-
})) : createCommentVNode("v-if", true)
|
|
508
|
+
})) : createCommentVNode("v-if", true)
|
|
509
|
+
], 64))
|
|
397
510
|
], 64)) : items.value && display$1.value ? (openBlock(), createElementBlock(Fragment, { key: 4 }, [(isValidName() ? __props.model[name.value] : __props.model) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(items.value, (item) => {
|
|
398
511
|
return openBlock(), createBlock(_component_Container, {
|
|
399
512
|
key: key(item),
|
|
@@ -409,7 +522,11 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
409
522
|
prop: itemProp.value,
|
|
410
523
|
onChange: onChangeHandler,
|
|
411
524
|
onAddDiffCount
|
|
412
|
-
},
|
|
525
|
+
}, createSlots({ _: 2 }, [_ctx.$slots.label ? {
|
|
526
|
+
name: "label",
|
|
527
|
+
fn: withCtx((labelProps) => [renderSlot(_ctx.$slots, "label", mergeProps({ ref_for: true }, labelProps))]),
|
|
528
|
+
key: "0"
|
|
529
|
+
} : void 0]), 1032, [
|
|
413
530
|
"model",
|
|
414
531
|
"last-values",
|
|
415
532
|
"is-compare",
|
|
@@ -421,7 +538,7 @@ var Container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
421
538
|
"label-width",
|
|
422
539
|
"prop"
|
|
423
540
|
]);
|
|
424
|
-
}), 128)) : createCommentVNode("v-if", true)], 64)) : createCommentVNode("v-if", true), __props.config.expand && type.value !== "fieldset" ? (openBlock(), createElementBlock("div",
|
|
541
|
+
}), 128)) : createCommentVNode("v-if", true)], 64)) : createCommentVNode("v-if", true), __props.config.expand && type.value !== "fieldset" ? (openBlock(), createElementBlock("div", _hoisted_9, [createVNode(unref(TMagicButton), {
|
|
425
542
|
type: "primary",
|
|
426
543
|
size: "small",
|
|
427
544
|
disabled: false,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { filterFunction } from "../utils/form.js";
|
|
1
2
|
import Container_default from "./Container.js";
|
|
2
3
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, normalizeStyle, openBlock, renderList, resolveDynamicComponent, unref, withCtx } from "vue";
|
|
3
4
|
import { TMagicCheckbox } from "@tmagic/design";
|
|
@@ -13,7 +14,7 @@ var _hoisted_6 = {
|
|
|
13
14
|
};
|
|
14
15
|
var _hoisted_7 = { style: { "flex": "1" } };
|
|
15
16
|
var _hoisted_8 = ["src"];
|
|
16
|
-
var Fieldset_vue_vue_type_script_setup_true_lang_default =
|
|
17
|
+
var Fieldset_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
18
|
name: "MFormFieldset",
|
|
18
19
|
__name: "Fieldset",
|
|
19
20
|
props: {
|
|
@@ -36,6 +37,7 @@ var Fieldset_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
36
37
|
const emit = __emit;
|
|
37
38
|
const mForm = inject("mForm");
|
|
38
39
|
const name = computed(() => props.config.name || "");
|
|
40
|
+
const legend = computed(() => filterFunction(mForm, props.config.legend, props));
|
|
39
41
|
const checkboxName = computed(() => {
|
|
40
42
|
if (typeof props.config.checkbox === "object" && typeof props.config.checkbox.name === "string") return props.config.checkbox.name;
|
|
41
43
|
return "value";
|
|
@@ -75,7 +77,7 @@ var Fieldset_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
75
77
|
"false-value": checkboxFalseValue.value,
|
|
76
78
|
"onUpdate:modelValue": valueChangeHandler
|
|
77
79
|
}, {
|
|
78
|
-
default: withCtx(() => [createElementVNode("span", { innerHTML:
|
|
80
|
+
default: withCtx(() => [createElementVNode("span", { innerHTML: legend.value }, null, 8, _hoisted_1), __props.config.extra ? (openBlock(), createElementBlock("span", {
|
|
79
81
|
key: 0,
|
|
80
82
|
innerHTML: __props.config.extra,
|
|
81
83
|
class: "m-form-tip"
|
|
@@ -88,7 +90,7 @@ var Fieldset_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
88
90
|
"false-value"
|
|
89
91
|
])]),
|
|
90
92
|
_: 1
|
|
91
|
-
})) : (openBlock(), createElementBlock("legend", _hoisted_3, [createElementVNode("span", { innerHTML:
|
|
93
|
+
})) : (openBlock(), createElementBlock("legend", _hoisted_3, [createElementVNode("span", { innerHTML: legend.value }, null, 8, _hoisted_4), __props.config.extra ? (openBlock(), createElementBlock("span", {
|
|
92
94
|
key: 0,
|
|
93
95
|
innerHTML: __props.config.extra,
|
|
94
96
|
class: "m-form-tip"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Container_default from "./Container.js";
|
|
2
2
|
import { Fragment, computed, createBlock, createElementBlock, defineComponent, inject, normalizeStyle, openBlock, renderList, unref } from "vue";
|
|
3
3
|
//#region packages/form/src/containers/FlexLayout.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var FlexLayout_vue_vue_type_script_setup_true_lang_default =
|
|
4
|
+
var FlexLayout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
5
|
name: "MFormFlexLayout",
|
|
6
6
|
__name: "FlexLayout",
|
|
7
7
|
props: {
|
|
@@ -12,7 +12,7 @@ var _hoisted_1 = {
|
|
|
12
12
|
var _hoisted_2 = ["innerHTML", "title"];
|
|
13
13
|
var _hoisted_3 = ["innerHTML"];
|
|
14
14
|
var _hoisted_4 = ["innerHTML", "title"];
|
|
15
|
-
var FormLabel_vue_vue_type_script_setup_true_lang_default =
|
|
15
|
+
var FormLabel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
16
16
|
__name: "FormLabel",
|
|
17
17
|
props: {
|
|
18
18
|
tip: {},
|
|
@@ -8,13 +8,16 @@ var _hoisted_3 = {
|
|
|
8
8
|
key: 1,
|
|
9
9
|
class: "el-table__empty-block"
|
|
10
10
|
};
|
|
11
|
-
var _hoisted_4 = {
|
|
11
|
+
var _hoisted_4 = {
|
|
12
|
+
key: 3,
|
|
13
|
+
class: "m-fields-group-list-footer"
|
|
14
|
+
};
|
|
12
15
|
var _hoisted_5 = { style: {
|
|
13
16
|
"display": "flex",
|
|
14
17
|
"justify-content": "flex-end",
|
|
15
18
|
"flex": "1"
|
|
16
19
|
} };
|
|
17
|
-
var GroupList_vue_vue_type_script_setup_true_lang_default =
|
|
20
|
+
var GroupList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
18
21
|
name: "MFormGroupList",
|
|
19
22
|
__name: "GroupList",
|
|
20
23
|
props: {
|
|
@@ -91,7 +94,7 @@ var GroupList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
91
94
|
"group-model"
|
|
92
95
|
]);
|
|
93
96
|
}), 128)),
|
|
94
|
-
|
|
97
|
+
!__props.isCompare ? (openBlock(), createElementBlock("div", _hoisted_4, [renderSlot(_ctx.$slots, "toggle-button"), createElementVNode("div", _hoisted_5, [renderSlot(_ctx.$slots, "add-button")])])) : createCommentVNode("v-if", true)
|
|
95
98
|
]);
|
|
96
99
|
};
|
|
97
100
|
}
|