@tmagic/editor 1.8.0-beta.12 → 1.8.0-beta.14
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/Editor.vue_vue_type_script_setup_true_lang.js +15 -3
- package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +13 -121
- package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +11 -4
- package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/es/components/ViewForm.js +5 -0
- package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +80 -55
- package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +10 -7
- package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +4 -1
- package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +8 -2
- package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +99 -64
- package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +5 -4
- package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/StyleSetter/icons/align-items/Center.js +31 -0
- package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +31 -0
- package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +31 -0
- package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +50 -0
- package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +50 -0
- package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +6 -6
- package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +5 -2
- package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +28 -5
- package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +31 -5
- package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +10 -2
- package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +10 -2
- package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +10 -2
- package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +10 -2
- package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +16 -2
- package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +18 -2
- package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +18 -2
- package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +36 -2
- package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +32 -2
- package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +7 -6
- package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +47 -25
- package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/hooks/use-compare-form.js +119 -0
- package/dist/es/icons/DatasourceIcon.js +17 -0
- package/dist/es/index.js +6 -4
- package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +14 -10
- package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +10 -1
- package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/es/plugin.js +2 -1
- package/dist/es/services/codeBlock.js +1 -1
- package/dist/es/services/editor.js +54 -13
- package/dist/es/services/history.js +1 -1
- package/dist/es/services/props.js +1 -1
- package/dist/es/services/storage.js +1 -1
- package/dist/es/services/ui.js +5 -3
- package/dist/es/style.css +303 -40
- package/dist/es/utils/config.js +4 -1
- package/dist/es/utils/const.js +2 -2
- package/dist/es/utils/props.js +69 -30
- package/dist/style.css +303 -40
- package/dist/themes/magic-admin.css +3000 -0
- package/dist/tmagic-editor.umd.cjs +1748 -1079
- package/package.json +7 -7
- package/src/Editor.vue +22 -1
- package/src/components/CompareForm.vue +15 -202
- package/src/components/ContentMenu.vue +10 -2
- package/src/components/FloatingBox.vue +8 -2
- package/src/components/ViewForm.vue +55 -0
- package/src/editorProps.ts +4 -0
- package/src/fields/CodeSelect.vue +54 -43
- package/src/fields/CodeSelectCol.vue +1 -0
- package/src/fields/DataSourceFieldSelect/Index.vue +14 -5
- package/src/fields/DisplayConds.vue +4 -1
- package/src/fields/EventSelect.vue +56 -32
- package/src/fields/StyleSetter/Index.vue +1 -4
- package/src/fields/StyleSetter/components/Border.vue +1 -1
- package/src/fields/StyleSetter/icons/align-items/Center.vue +19 -0
- package/src/fields/StyleSetter/icons/align-items/FlexEnd.vue +19 -0
- package/src/fields/StyleSetter/icons/align-items/FlexStart.vue +19 -0
- package/src/fields/StyleSetter/icons/align-items/SpaceAround.vue +34 -0
- package/src/fields/StyleSetter/icons/align-items/SpaceBetween.vue +34 -0
- package/src/fields/StyleSetter/icons/align-items/index.ts +5 -0
- package/src/fields/StyleSetter/icons/background-repeat/NoRepeat.vue +20 -4
- package/src/fields/StyleSetter/icons/background-repeat/Repeat.vue +10 -28
- package/src/fields/StyleSetter/icons/background-repeat/RepeatX.vue +4 -5
- package/src/fields/StyleSetter/icons/background-repeat/RepeatY.vue +4 -5
- package/src/fields/StyleSetter/icons/flex-direction/Column.vue +4 -3
- package/src/fields/StyleSetter/icons/flex-direction/ColumnReverse.vue +4 -3
- package/src/fields/StyleSetter/icons/flex-direction/Row.vue +4 -3
- package/src/fields/StyleSetter/icons/flex-direction/RowReverse.vue +4 -3
- package/src/fields/StyleSetter/icons/justify-content/Center.vue +5 -2
- package/src/fields/StyleSetter/icons/justify-content/FlexEnd.vue +15 -2
- package/src/fields/StyleSetter/icons/justify-content/FlexStart.vue +15 -2
- package/src/fields/StyleSetter/icons/justify-content/SpaceAround.vue +28 -3
- package/src/fields/StyleSetter/icons/justify-content/SpaceBetween.vue +28 -2
- package/src/fields/StyleSetter/pro/Background.vue +7 -2
- package/src/fields/StyleSetter/pro/Font.vue +3 -3
- package/src/fields/StyleSetter/pro/Layout.vue +98 -28
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-compare-form.ts +187 -0
- package/src/icons/DatasourceIcon.vue +7 -0
- package/src/index.ts +4 -0
- package/src/layouts/Framework.vue +7 -1
- package/src/layouts/props-panel/PropsPanel.vue +19 -1
- package/src/layouts/sidebar/Sidebar.vue +3 -3
- package/src/plugin.ts +3 -2
- package/src/services/editor.ts +54 -11
- package/src/services/ui.ts +20 -5
- package/src/theme/code-block.scss +37 -0
- package/src/theme/common/var.scss +1 -1
- package/src/theme/component-list-panel.scss +2 -2
- package/src/theme/data-source-field.scss +4 -0
- package/src/theme/display-conds.scss +11 -0
- package/src/theme/event.scss +58 -4
- package/src/theme/framework.scss +4 -1
- package/src/theme/history-list-panel.scss +9 -9
- package/src/theme/nav-menu.scss +5 -1
- package/src/theme/props-panel.scss +2 -1
- package/src/theme/style-setter/border.scss +14 -5
- package/src/theme/theme.scss +1 -0
- package/src/theme/themes/magic-admin/index.scss +214 -0
- package/src/theme/ui-select.scss +1 -1
- package/src/type.ts +79 -6
- package/src/utils/config.ts +9 -1
- package/src/utils/const.ts +3 -2
- package/src/utils/props.ts +51 -9
- package/types/index.d.ts +314 -203
|
@@ -18,13 +18,16 @@ import dep_default from "./services/dep.js";
|
|
|
18
18
|
import keybinding_default from "./services/keybinding.js";
|
|
19
19
|
import stageOverlay_default from "./services/stageOverlay.js";
|
|
20
20
|
import { initServiceEvents, initServiceState } from "./initService.js";
|
|
21
|
-
import {
|
|
21
|
+
import { M_THEME_KEY } from "@tmagic/design";
|
|
22
|
+
import { computed, createBlock, createVNode, defineComponent, mergeDefaults, openBlock, provide, ref, renderSlot, unref, withCtx } from "vue";
|
|
22
23
|
import { EventEmitter } from "events";
|
|
23
24
|
//#region packages/editor/src/Editor.vue?vue&type=script&setup=true&lang.ts
|
|
24
25
|
var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
25
26
|
name: "MEditor",
|
|
26
27
|
__name: "Editor",
|
|
27
28
|
props: /*@__PURE__*/ mergeDefaults({
|
|
29
|
+
isLargeStageContainer: { type: Boolean },
|
|
30
|
+
theme: {},
|
|
28
31
|
modelValue: {},
|
|
29
32
|
componentGroupList: {},
|
|
30
33
|
datasourceList: {},
|
|
@@ -138,6 +141,7 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
138
141
|
* 与 PropsPanel 通过 `:extend-state` 显式传入的方式保持等价。
|
|
139
142
|
*/
|
|
140
143
|
provide("extendFormState", props.extendFormState);
|
|
144
|
+
provide("isLargeStageContainer", computed(() => props.isLargeStageContainer));
|
|
141
145
|
/**
|
|
142
146
|
* 提供 PropsPanel 主属性表单的 formState getter,供历史差异弹窗复用,
|
|
143
147
|
* 让 CompareForm 与 PropsPanel 的 filterFunction 上下文保持一致。
|
|
@@ -150,6 +154,12 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
150
154
|
*/
|
|
151
155
|
provide("historyListExtraTabs", props.historyListExtraTabs);
|
|
152
156
|
provide("eventBus", new EventEmitter());
|
|
157
|
+
/**
|
|
158
|
+
* 把当前主题以响应式 ref 形式 provide 给后代,供包含 `Teleport` 的组件
|
|
159
|
+
* (如 `TMagicPopover` / `FloatingBox` / `ContentMenu`)在传送目标上挂 `m-theme--<theme>`
|
|
160
|
+
* 类,让主题级 CSS 变量在 portal 节点上也能命中。详见 `@tmagic/design/theme.ts`。
|
|
161
|
+
*/
|
|
162
|
+
provide(M_THEME_KEY, computed(() => props.theme ?? ""));
|
|
153
163
|
const propsPanelMountedHandler = (e) => {
|
|
154
164
|
propsPanelRef.value = e;
|
|
155
165
|
emit("props-panel-mounted", e);
|
|
@@ -173,7 +183,8 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
173
183
|
"disabled-page-fragment": __props.disabledPageFragment,
|
|
174
184
|
"page-bar-sort-options": __props.pageBarSortOptions,
|
|
175
185
|
"page-filter-function": __props.pageFilterFunction,
|
|
176
|
-
"hide-sidebar": __props.hideSidebar
|
|
186
|
+
"hide-sidebar": __props.hideSidebar,
|
|
187
|
+
theme: __props.theme
|
|
177
188
|
}, {
|
|
178
189
|
header: withCtx(() => [renderSlot(_ctx.$slots, "header")]),
|
|
179
190
|
nav: withCtx(() => [renderSlot(_ctx.$slots, "nav", { editorService: unref(editor_default) }, () => [createVNode(NavMenu_default, { data: __props.menu }, null, 8, ["data"])])]),
|
|
@@ -254,7 +265,8 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
254
265
|
"disabled-page-fragment",
|
|
255
266
|
"page-bar-sort-options",
|
|
256
267
|
"page-filter-function",
|
|
257
|
-
"hide-sidebar"
|
|
268
|
+
"hide-sidebar",
|
|
269
|
+
"theme"
|
|
258
270
|
]);
|
|
259
271
|
};
|
|
260
272
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getEditorConfig } from "../utils/config.js";
|
|
2
|
+
import { getCodeBlockFormConfig } from "../utils/code-block.js";
|
|
2
3
|
import { useServices } from "../hooks/use-services.js";
|
|
3
4
|
import { useWindowRect } from "../hooks/use-window-rect.js";
|
|
4
5
|
import { useEditorContentHeight } from "../hooks/use-editor-content-height.js";
|
|
5
6
|
import { useNextFloatBoxPosition } from "../hooks/use-next-float-box-position.js";
|
|
6
|
-
import { getCodeBlockFormConfig } from "../utils/code-block.js";
|
|
7
7
|
import CodeEditor_default from "../layouts/CodeEditor.js";
|
|
8
8
|
import FloatingBox_default from "./FloatingBox.js";
|
|
9
9
|
import { MFormBox } from "@tmagic/form";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useCompareForm } from "../hooks/use-compare-form.js";
|
|
2
2
|
import { MForm } from "@tmagic/form";
|
|
3
3
|
import { HookType } from "@tmagic/core";
|
|
4
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent,
|
|
4
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeStyle, openBlock, unref } from "vue";
|
|
5
5
|
import { isEqual } from "lodash-es";
|
|
6
6
|
//#region packages/editor/src/components/CompareForm.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -9,59 +9,27 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
9
9
|
__name: "CompareForm",
|
|
10
10
|
props: {
|
|
11
11
|
value: {},
|
|
12
|
-
lastValue: {},
|
|
13
12
|
type: {},
|
|
14
13
|
category: { default: "node" },
|
|
15
14
|
dataSourceType: {},
|
|
16
15
|
labelWidth: { default: "120px" },
|
|
17
16
|
height: {},
|
|
18
|
-
extendState: {
|
|
19
|
-
type: Function,
|
|
20
|
-
default: (state) => state
|
|
21
|
-
},
|
|
17
|
+
extendState: {},
|
|
22
18
|
baseFormState: {},
|
|
23
|
-
selfDiffFieldTypes: {},
|
|
24
19
|
size: {},
|
|
25
20
|
loadConfig: {},
|
|
26
|
-
services: {}
|
|
21
|
+
services: {},
|
|
22
|
+
lastValue: {},
|
|
23
|
+
selfDiffFieldTypes: {}
|
|
27
24
|
},
|
|
28
25
|
setup(__props, { expose: __expose }) {
|
|
29
26
|
const props = __props;
|
|
30
|
-
|
|
31
|
-
const config = ref([]);
|
|
32
|
-
/** vs-code 编辑器的 monaco 配置项,沿用 Editor 顶层 provide('codeOptions', ...) 的注入。 */
|
|
33
|
-
const codeOptions = inject("codeOptions", {});
|
|
34
|
-
/** 将代码块的 content 字段统一成字符串,便于在表单/对比中展示 */
|
|
35
|
-
const normalizeCodeBlockValue = (v) => {
|
|
36
|
-
if (!v) return {};
|
|
37
|
-
const next = { ...v };
|
|
38
|
-
if (next.content && typeof next.content !== "string") try {
|
|
39
|
-
next.content = next.content.toString();
|
|
40
|
-
} catch {
|
|
41
|
-
next.content = "";
|
|
42
|
-
}
|
|
43
|
-
return next;
|
|
44
|
-
};
|
|
45
|
-
const currentValues = computed(() => {
|
|
46
|
-
if (props.category === "code-block") return normalizeCodeBlockValue(props.value);
|
|
47
|
-
return props.value || {};
|
|
48
|
-
});
|
|
27
|
+
const { config, currentValues, wrapperStyle, mergedExtendState, loadConfig, formRef, normalizeCodeBlockValue } = useCompareForm(props);
|
|
49
28
|
const lastValuesProcessed = computed(() => {
|
|
50
29
|
if (props.category === "code-block") return normalizeCodeBlockValue(props.lastValue);
|
|
51
30
|
return props.lastValue || {};
|
|
52
31
|
});
|
|
53
32
|
/**
|
|
54
|
-
* 外层包裹层的样式:当传入 `height` 时启用固定高度 + 内部滚动,
|
|
55
|
-
* 这样滚动条会出现在 CompareForm 内部,避免父容器(如 Dialog)自身也产生滚动。
|
|
56
|
-
*/
|
|
57
|
-
const wrapperStyle = computed(() => {
|
|
58
|
-
if (!props.height) return void 0;
|
|
59
|
-
return {
|
|
60
|
-
height: props.height,
|
|
61
|
-
overflow: "auto"
|
|
62
|
-
};
|
|
63
|
-
});
|
|
64
|
-
/**
|
|
65
33
|
* `code-select` 字段在历史数据中存在两种"语义为空"的形态:
|
|
66
34
|
* - 字符串 `''`(旧数据 / 用户从未配置过钩子);
|
|
67
35
|
* - `{ hookType: HookType.CODE, hookData: [] }`(CodeSelect.vue 在挂载时
|
|
@@ -84,83 +52,6 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
84
52
|
}
|
|
85
53
|
return !isEqual(curValue, lastValue);
|
|
86
54
|
};
|
|
87
|
-
const removeStyleDisplayConfig = (formConfig) => formConfig.map((item) => {
|
|
88
|
-
if (!("type" in item)) return item;
|
|
89
|
-
if (item?.type !== "tab" || !Array.isArray(item.items)) return item;
|
|
90
|
-
return {
|
|
91
|
-
...item,
|
|
92
|
-
items: item.items.map((tabPane) => {
|
|
93
|
-
if (tabPane?.title !== "样式" || !Array.isArray(tabPane.items)) return tabPane;
|
|
94
|
-
return {
|
|
95
|
-
...tabPane,
|
|
96
|
-
display: true
|
|
97
|
-
};
|
|
98
|
-
})
|
|
99
|
-
};
|
|
100
|
-
});
|
|
101
|
-
const mergedExtendState = (state) => {
|
|
102
|
-
return props.extendState(props.baseFormState || state);
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
* 内置的默认 FormConfig 加载逻辑:按 `category` 从对应 service / 工具取配置。
|
|
106
|
-
* 作为 ctx.defaultLoadConfig 透传给自定义 `loadConfig`,方便复用与二次加工。
|
|
107
|
-
*/
|
|
108
|
-
const defaultLoadConfig = async () => {
|
|
109
|
-
if (!props.services) return [];
|
|
110
|
-
switch (props.category) {
|
|
111
|
-
case "node":
|
|
112
|
-
if (!props.type) return [];
|
|
113
|
-
return removeStyleDisplayConfig(await props.services.propsService.getPropsConfig(props.type, { node: props.value }));
|
|
114
|
-
case "data-source": return props.services.dataSourceService.getFormConfig(props.type || "base").map((item) => "type" in item && item.type === "tab" ? {
|
|
115
|
-
...item,
|
|
116
|
-
active: "fields"
|
|
117
|
-
} : item);
|
|
118
|
-
case "code-block": return getCodeBlockFormConfig({
|
|
119
|
-
paramColConfig: props.services.codeBlockService.getParamsColConfig(),
|
|
120
|
-
isDataSource: () => Boolean(props.dataSourceType),
|
|
121
|
-
dataSourceType: () => props.dataSourceType,
|
|
122
|
-
codeOptions,
|
|
123
|
-
editable: false
|
|
124
|
-
});
|
|
125
|
-
default: return [];
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
const loadConfig = async () => {
|
|
129
|
-
if (props.loadConfig) {
|
|
130
|
-
config.value = await props.loadConfig({
|
|
131
|
-
category: props.category,
|
|
132
|
-
type: props.type,
|
|
133
|
-
dataSourceType: props.dataSourceType,
|
|
134
|
-
defaultLoadConfig
|
|
135
|
-
});
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
config.value = await defaultLoadConfig();
|
|
139
|
-
};
|
|
140
|
-
watch([
|
|
141
|
-
() => props.category,
|
|
142
|
-
() => props.type,
|
|
143
|
-
() => props.dataSourceType,
|
|
144
|
-
() => props.loadConfig
|
|
145
|
-
], () => {
|
|
146
|
-
loadConfig();
|
|
147
|
-
}, { immediate: true });
|
|
148
|
-
const formRef = useTemplateRef("form");
|
|
149
|
-
/**
|
|
150
|
-
* 把 services / stage 注入 MForm 的 formState,避免 propsService 注入的表单配置中
|
|
151
|
-
* 形如 `display: ({ services }) => services.uiService.get(...)` 的 filterFunction
|
|
152
|
-
* 在执行时拿不到 `formState.services` 而报错。
|
|
153
|
-
*
|
|
154
|
-
* 与 props-panel/FormPanel.vue 中的注入方式保持一致:
|
|
155
|
-
* - services:整个 useServices() 返回的服务集合;
|
|
156
|
-
* - stage:当前 editorService.get('stage') 的最新值。
|
|
157
|
-
*/
|
|
158
|
-
watchEffect(() => {
|
|
159
|
-
if (formRef.value && props.services) {
|
|
160
|
-
formRef.value.formState.stage = props.services.editorService.get("stage");
|
|
161
|
-
formRef.value.formState.services = props.services;
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
55
|
__expose({
|
|
165
56
|
form: formRef,
|
|
166
57
|
config,
|
|
@@ -169,18 +60,18 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
169
60
|
return (_ctx, _cache) => {
|
|
170
61
|
return openBlock(), createElementBlock("div", {
|
|
171
62
|
class: "m-editor-compare-form-wrapper",
|
|
172
|
-
style: normalizeStyle(wrapperStyle
|
|
173
|
-
}, [config.
|
|
63
|
+
style: normalizeStyle(unref(wrapperStyle))
|
|
64
|
+
}, [unref(config).length ? (openBlock(), createBlock(unref(MForm), {
|
|
174
65
|
key: 0,
|
|
175
66
|
ref: "form",
|
|
176
67
|
class: "m-editor-compare-form",
|
|
177
|
-
config: config
|
|
178
|
-
"init-values": currentValues
|
|
68
|
+
config: unref(config),
|
|
69
|
+
"init-values": unref(currentValues),
|
|
179
70
|
"last-values": lastValuesProcessed.value,
|
|
180
71
|
"is-compare": true,
|
|
181
72
|
disabled: true,
|
|
182
73
|
"label-width": __props.labelWidth,
|
|
183
|
-
"extend-state": mergedExtendState,
|
|
74
|
+
"extend-state": unref(mergedExtendState),
|
|
184
75
|
"show-diff": showDiff,
|
|
185
76
|
"self-diff-field-types": __props.selfDiffFieldTypes,
|
|
186
77
|
size: __props.size
|
|
@@ -189,6 +80,7 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
189
80
|
"init-values",
|
|
190
81
|
"last-values",
|
|
191
82
|
"label-width",
|
|
83
|
+
"extend-state",
|
|
192
84
|
"self-diff-field-types",
|
|
193
85
|
"size"
|
|
194
86
|
])) : createCommentVNode("v-if", true)], 4);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ToolButton_default from "./ToolButton.js";
|
|
2
|
-
import { useZIndex } from "@tmagic/design";
|
|
3
|
-
import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveComponent, useTemplateRef, vShow, withCtx, withDirectives, withModifiers } from "vue";
|
|
2
|
+
import { useThemeClass, useZIndex } from "@tmagic/design";
|
|
3
|
+
import { Fragment, Teleport, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveComponent, unref, useTemplateRef, vShow, withCtx, withDirectives, withModifiers } from "vue";
|
|
4
4
|
//#region packages/editor/src/components/ContentMenu.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var ContentMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
6
|
name: "MEditorContentMenu",
|
|
@@ -29,6 +29,13 @@ var ContentMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
29
29
|
const buttonRefs = useTemplateRef("buttons");
|
|
30
30
|
const subMenuRef = useTemplateRef("subMenu");
|
|
31
31
|
const visible = ref(false);
|
|
32
|
+
/**
|
|
33
|
+
* 主题修饰类(来自最近的 `<MEditor>` / `<MForm>` 祖先 provide)。
|
|
34
|
+
* - 顶层 `ContentMenu` 渲染在编辑器子树中,加上去是冗余但无害;
|
|
35
|
+
* - 子菜单(递归 `<content-menu :is-sub-menu="true">` 被 `<teleport to="body">` 送到 body)
|
|
36
|
+
* 不在编辑器子树中,必须显式挂上主题类,主题级 CSS 变量才能命中。
|
|
37
|
+
*/
|
|
38
|
+
const themeClass = useThemeClass();
|
|
32
39
|
const subMenuData = ref([]);
|
|
33
40
|
const zIndex = useZIndex();
|
|
34
41
|
const curZIndex = ref(0);
|
|
@@ -118,8 +125,8 @@ var ContentMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
118
125
|
persisted: ""
|
|
119
126
|
}, {
|
|
120
127
|
default: withCtx(() => [withDirectives(createElementVNode("div", {
|
|
121
|
-
class: "magic-editor-content-menu",
|
|
122
128
|
ref: "menu",
|
|
129
|
+
class: normalizeClass(["magic-editor-content-menu", unref(themeClass)]),
|
|
123
130
|
style: normalizeStyle(menuStyle.value),
|
|
124
131
|
onMouseenter: _cache[0] || (_cache[0] = ($event) => mouseenterHandler()),
|
|
125
132
|
onContextmenu: _cache[1] || (_cache[1] = withModifiers(() => {}, ["prevent"]))
|
|
@@ -150,7 +157,7 @@ var ContentMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
150
157
|
"is-sub-menu": true,
|
|
151
158
|
onHide: hide
|
|
152
159
|
}, null, 8, ["active", "menu-data"])) : createCommentVNode("v-if", true)]))
|
|
153
|
-
],
|
|
160
|
+
], 38), [[vShow, visible.value]])]),
|
|
154
161
|
_: 3
|
|
155
162
|
});
|
|
156
163
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Icon_default from "./Icon.js";
|
|
2
|
-
import { TMagicButton, useZIndex } from "@tmagic/design";
|
|
2
|
+
import { TMagicButton, useThemeClass, useZIndex } from "@tmagic/design";
|
|
3
3
|
import { Teleport, computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeStyle, onBeforeUnmount, openBlock, provide, ref, renderSlot, toDisplayString, unref, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
4
4
|
import { Close } from "@element-plus/icons-vue";
|
|
5
5
|
import VanillaMoveable from "moveable";
|
|
@@ -43,6 +43,11 @@ var FloatingBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
43
43
|
const props = __props;
|
|
44
44
|
const targetEl = useTemplateRef("target");
|
|
45
45
|
const titleEl = useTemplateRef("title");
|
|
46
|
+
/**
|
|
47
|
+
* 主题修饰类(来自最近的 `<MEditor>` / `<MForm>` 祖先 provide)。
|
|
48
|
+
* 挂在 `Teleport` 出去的浮动面板根节点上,让主题级 CSS 变量在 portal 节点上也能命中。
|
|
49
|
+
*/
|
|
50
|
+
const themeClass = useThemeClass();
|
|
46
51
|
const zIndex = useZIndex();
|
|
47
52
|
const curZIndex = ref(0);
|
|
48
53
|
const titleHeight = ref(0);
|
|
@@ -179,7 +184,7 @@ var FloatingBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
179
184
|
to: "body"
|
|
180
185
|
}, [createElementVNode("div", mergeProps({
|
|
181
186
|
ref: "target",
|
|
182
|
-
class: "m-editor-float-box"
|
|
187
|
+
class: ["m-editor-float-box", unref(themeClass)]
|
|
183
188
|
}, _ctx.$attrs, {
|
|
184
189
|
style: {
|
|
185
190
|
...style.value,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import ViewForm_vue_vue_type_script_setup_true_lang_default from "./ViewForm.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/editor/src/components/ViewForm.vue
|
|
3
|
+
var ViewForm_default = ViewForm_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ViewForm_default as default };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useCompareForm } from "../hooks/use-compare-form.js";
|
|
2
|
+
import { MForm } from "@tmagic/form";
|
|
3
|
+
import { createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeStyle, openBlock, unref } from "vue";
|
|
4
|
+
//#region packages/editor/src/components/ViewForm.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var ViewForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
|
+
name: "MEditorViewForm",
|
|
7
|
+
__name: "ViewForm",
|
|
8
|
+
props: {
|
|
9
|
+
value: {},
|
|
10
|
+
type: {},
|
|
11
|
+
category: { default: "node" },
|
|
12
|
+
dataSourceType: {},
|
|
13
|
+
labelWidth: { default: "120px" },
|
|
14
|
+
height: {},
|
|
15
|
+
extendState: {},
|
|
16
|
+
baseFormState: {},
|
|
17
|
+
size: {},
|
|
18
|
+
loadConfig: {},
|
|
19
|
+
services: {},
|
|
20
|
+
disabled: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
default: true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
setup(__props, { expose: __expose }) {
|
|
26
|
+
const { config, currentValues, wrapperStyle, mergedExtendState, loadConfig, formRef } = useCompareForm(__props);
|
|
27
|
+
__expose({
|
|
28
|
+
form: formRef,
|
|
29
|
+
config,
|
|
30
|
+
reload: loadConfig
|
|
31
|
+
});
|
|
32
|
+
return (_ctx, _cache) => {
|
|
33
|
+
return openBlock(), createElementBlock("div", {
|
|
34
|
+
class: "m-editor-view-form-wrapper",
|
|
35
|
+
style: normalizeStyle(unref(wrapperStyle))
|
|
36
|
+
}, [unref(config).length ? (openBlock(), createBlock(unref(MForm), {
|
|
37
|
+
key: 0,
|
|
38
|
+
ref: "form",
|
|
39
|
+
class: "m-editor-view-form",
|
|
40
|
+
config: unref(config),
|
|
41
|
+
"init-values": unref(currentValues),
|
|
42
|
+
disabled: __props.disabled,
|
|
43
|
+
"label-width": __props.labelWidth,
|
|
44
|
+
"extend-state": unref(mergedExtendState),
|
|
45
|
+
size: __props.size
|
|
46
|
+
}, null, 8, [
|
|
47
|
+
"config",
|
|
48
|
+
"init-values",
|
|
49
|
+
"disabled",
|
|
50
|
+
"label-width",
|
|
51
|
+
"extend-state",
|
|
52
|
+
"size"
|
|
53
|
+
])) : createCommentVNode("v-if", true)], 4);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//#endregion
|
|
58
|
+
export { ViewForm_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -17,7 +17,10 @@ var Code_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
|
|
|
17
17
|
},
|
|
18
18
|
size: {},
|
|
19
19
|
lastValues: {},
|
|
20
|
-
isCompare: { type: Boolean }
|
|
20
|
+
isCompare: { type: Boolean },
|
|
21
|
+
text: {},
|
|
22
|
+
labelWidth: {},
|
|
23
|
+
labelPosition: {}
|
|
21
24
|
},
|
|
22
25
|
emits: ["change"],
|
|
23
26
|
setup(__props, { emit: __emit }) {
|
|
@@ -15,7 +15,10 @@ var CodeLink_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
15
15
|
disabled: { type: Boolean },
|
|
16
16
|
size: {},
|
|
17
17
|
lastValues: {},
|
|
18
|
-
isCompare: { type: Boolean }
|
|
18
|
+
isCompare: { type: Boolean },
|
|
19
|
+
text: {},
|
|
20
|
+
labelWidth: {},
|
|
21
|
+
labelPosition: {}
|
|
19
22
|
},
|
|
20
23
|
emits: ["change"],
|
|
21
24
|
setup(__props, { emit: __emit }) {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { useServices } from "../hooks/use-services.js";
|
|
2
2
|
import { MContainer } from "@tmagic/form";
|
|
3
|
-
import { TMagicCard } from "@tmagic/design";
|
|
3
|
+
import { TMagicButton, TMagicCard } from "@tmagic/design";
|
|
4
4
|
import { HookCodeType, HookType } from "@tmagic/core";
|
|
5
|
-
import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, unref, watch, withCtx } from "vue";
|
|
5
|
+
import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, watch, withCtx } from "vue";
|
|
6
6
|
import { isEmpty } from "lodash-es";
|
|
7
|
+
import { Plus } from "@element-plus/icons-vue";
|
|
7
8
|
//#region packages/editor/src/fields/CodeSelect.vue?vue&type=script&setup=true&lang.ts
|
|
8
9
|
var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
9
10
|
name: "MFieldsCodeSelect",
|
|
@@ -18,7 +19,10 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
18
19
|
disabled: { type: Boolean },
|
|
19
20
|
size: {},
|
|
20
21
|
lastValues: {},
|
|
21
|
-
isCompare: { type: Boolean }
|
|
22
|
+
isCompare: { type: Boolean },
|
|
23
|
+
text: {},
|
|
24
|
+
labelWidth: {},
|
|
25
|
+
labelPosition: {}
|
|
22
26
|
},
|
|
23
27
|
emits: ["change"],
|
|
24
28
|
setup(__props, { emit: __emit }) {
|
|
@@ -39,11 +43,21 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
39
43
|
* 仅当存在历史值时才启用对比,避免 lastValues 缺失时退化为「全部新增」的空对比。
|
|
40
44
|
*/
|
|
41
45
|
const isCompareMode = computed(() => Boolean(props.isCompare && props.lastValues));
|
|
46
|
+
const newHandler = () => {
|
|
47
|
+
const defaultCode = {
|
|
48
|
+
codeType: HookCodeType.CODE,
|
|
49
|
+
codeId: ""
|
|
50
|
+
};
|
|
51
|
+
const name = props.config.name || "";
|
|
52
|
+
const hookData = props.model[name]?.hookData || [];
|
|
53
|
+
emit("change", defaultCode, { modifyKey: `hookData.${hookData.length}` });
|
|
54
|
+
};
|
|
42
55
|
const codeConfig = computed(() => ({
|
|
43
56
|
type: "group-list",
|
|
44
57
|
name: "hookData",
|
|
45
58
|
enableToggleMode: false,
|
|
46
59
|
expandAll: true,
|
|
60
|
+
addable: () => false,
|
|
47
61
|
title: (mForm, { model, index }) => {
|
|
48
62
|
if (model.codeType === HookCodeType.DATA_SOURCE_METHOD) {
|
|
49
63
|
if (Array.isArray(model.codeId)) {
|
|
@@ -56,57 +70,54 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
56
70
|
if (codeContent) return codeContent.name;
|
|
57
71
|
return model.codeId || index;
|
|
58
72
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
type: "code-select-col",
|
|
86
|
-
name: "codeId",
|
|
87
|
-
span: 18,
|
|
88
|
-
labelWidth: 0,
|
|
89
|
-
display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
|
|
90
|
-
notEditable: () => !codeBlockService.getEditStatus(),
|
|
91
|
-
rules: [{
|
|
92
|
-
typeMatch: true,
|
|
93
|
-
trigger: "change"
|
|
94
|
-
}]
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
type: "data-source-method-select",
|
|
98
|
-
name: "codeId",
|
|
99
|
-
span: 18,
|
|
100
|
-
labelWidth: 0,
|
|
101
|
-
display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
|
|
102
|
-
notEditable: () => !dataSourceService.get("editable"),
|
|
103
|
-
rules: [{
|
|
104
|
-
typeMatch: true,
|
|
105
|
-
trigger: "change"
|
|
106
|
-
}]
|
|
73
|
+
titlePrefix: props.config.name === void 0 ? void 0 : String(props.config.name),
|
|
74
|
+
items: [
|
|
75
|
+
{
|
|
76
|
+
text: "代码类型",
|
|
77
|
+
type: "select",
|
|
78
|
+
name: "codeType",
|
|
79
|
+
labelPosition: "right",
|
|
80
|
+
rules: [{
|
|
81
|
+
typeMatch: true,
|
|
82
|
+
trigger: "change"
|
|
83
|
+
}],
|
|
84
|
+
options: [{
|
|
85
|
+
value: HookCodeType.CODE,
|
|
86
|
+
text: "代码块"
|
|
87
|
+
}, {
|
|
88
|
+
value: HookCodeType.DATA_SOURCE_METHOD,
|
|
89
|
+
text: "数据源方法"
|
|
90
|
+
}],
|
|
91
|
+
defaultValue: HookCodeType.CODE,
|
|
92
|
+
onChange: (_mForm, v, { setModel }) => {
|
|
93
|
+
if (v === HookCodeType.DATA_SOURCE_METHOD) setModel("codeId", []);
|
|
94
|
+
else setModel("codeId", "");
|
|
95
|
+
return v;
|
|
107
96
|
}
|
|
108
|
-
|
|
109
|
-
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: "code-select-col",
|
|
100
|
+
name: "codeId",
|
|
101
|
+
text: "代码块",
|
|
102
|
+
rules: [{
|
|
103
|
+
typeMatch: true,
|
|
104
|
+
trigger: "change"
|
|
105
|
+
}],
|
|
106
|
+
display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
|
|
107
|
+
notEditable: () => !codeBlockService.getEditStatus()
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: "data-source-method-select",
|
|
111
|
+
name: "codeId",
|
|
112
|
+
text: "数据源字段",
|
|
113
|
+
rules: [{
|
|
114
|
+
typeMatch: true,
|
|
115
|
+
trigger: "change"
|
|
116
|
+
}],
|
|
117
|
+
display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
|
|
118
|
+
notEditable: () => !dataSourceService.get("editable")
|
|
119
|
+
}
|
|
120
|
+
]
|
|
110
121
|
}));
|
|
111
122
|
watch(() => props.model[props.name], (value) => {
|
|
112
123
|
if (isEmpty(value)) props.model[props.name] = {
|
|
@@ -116,10 +127,11 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
116
127
|
}, { immediate: true });
|
|
117
128
|
const changeHandler = (v, eventData) => emit("change", v, eventData);
|
|
118
129
|
return (_ctx, _cache) => {
|
|
119
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard),
|
|
130
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard), { flat: __props.config.flat }, {
|
|
120
131
|
default: withCtx(() => [createVNode(unref(MContainer), {
|
|
121
132
|
config: codeConfig.value,
|
|
122
133
|
size: __props.size,
|
|
134
|
+
class: "code-select-content",
|
|
123
135
|
prop: __props.prop,
|
|
124
136
|
disabled: __props.disabled,
|
|
125
137
|
"is-compare": isCompareMode.value,
|
|
@@ -134,9 +146,22 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
134
146
|
"is-compare",
|
|
135
147
|
"last-values",
|
|
136
148
|
"model"
|
|
149
|
+
]), createVNode(unref(TMagicButton), {
|
|
150
|
+
class: "create-button fullWidth",
|
|
151
|
+
icon: unref(Plus),
|
|
152
|
+
size: __props.size,
|
|
153
|
+
disabled: __props.disabled,
|
|
154
|
+
onClick: _cache[0] || (_cache[0] = ($event) => newHandler())
|
|
155
|
+
}, {
|
|
156
|
+
default: withCtx(() => [createTextVNode("添加" + toDisplayString(__props.config.text), 1)]),
|
|
157
|
+
_: 1
|
|
158
|
+
}, 8, [
|
|
159
|
+
"icon",
|
|
160
|
+
"size",
|
|
161
|
+
"disabled"
|
|
137
162
|
])]),
|
|
138
163
|
_: 1
|
|
139
|
-
})], 2);
|
|
164
|
+
}, 8, ["flat"])], 2);
|
|
140
165
|
};
|
|
141
166
|
}
|
|
142
167
|
});
|
|
@@ -26,7 +26,10 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
26
26
|
},
|
|
27
27
|
size: {},
|
|
28
28
|
lastValues: {},
|
|
29
|
-
isCompare: { type: Boolean }
|
|
29
|
+
isCompare: { type: Boolean },
|
|
30
|
+
text: {},
|
|
31
|
+
labelWidth: {},
|
|
32
|
+
labelPosition: {}
|
|
30
33
|
},
|
|
31
34
|
emits: ["change"],
|
|
32
35
|
setup(__props, { emit: __emit }) {
|
|
@@ -72,6 +75,7 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
72
75
|
type: "select",
|
|
73
76
|
name: props.name,
|
|
74
77
|
disabled: props.disabled,
|
|
78
|
+
text: props.config.text,
|
|
75
79
|
options: () => {
|
|
76
80
|
if (codeDsl.value) return map(codeDsl.value, (value, key) => ({
|
|
77
81
|
text: `${value.name}(${key})`,
|
|
@@ -17,7 +17,10 @@ var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
17
17
|
disabled: { type: Boolean },
|
|
18
18
|
size: {},
|
|
19
19
|
lastValues: {},
|
|
20
|
-
isCompare: { type: Boolean }
|
|
20
|
+
isCompare: { type: Boolean },
|
|
21
|
+
text: {},
|
|
22
|
+
labelWidth: {},
|
|
23
|
+
labelPosition: {}
|
|
21
24
|
},
|
|
22
25
|
emits: ["change"],
|
|
23
26
|
setup(__props, { emit: __emit }) {
|