@tmagic/editor 1.8.0-beta.9 → 1.8.0-manmanyu.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/Editor.vue_vue_type_script_setup_true_lang.js +13 -3
- 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 +9 -4
- 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 +68 -43
- 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 +101 -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 +11 -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 +82 -46
- package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/icons/DatasourceIcon.js +17 -0
- 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/style.css +295 -37
- package/dist/es/utils/const.js +1 -1
- package/dist/es/utils/props.js +48 -29
- package/dist/style.css +295 -37
- package/dist/themes/magic-admin.css +2825 -0
- package/dist/tmagic-editor.umd.cjs +1028 -436
- package/package.json +7 -7
- package/src/Editor.vue +13 -1
- package/src/components/ContentMenu.vue +10 -2
- package/src/components/FloatingBox.vue +13 -2
- package/src/editorProps.ts +9 -0
- package/src/fields/CodeSelect.vue +51 -40
- 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 +58 -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 copy.ts +5 -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 +11 -5
- package/src/fields/StyleSetter/pro/Font.vue +3 -3
- package/src/fields/StyleSetter/pro/Layout.vue +105 -28
- package/src/fields/UISelect.vue +1 -1
- package/src/icons/DatasourceIcon.vue +7 -0
- package/src/layouts/Framework.vue +7 -1
- package/src/layouts/props-panel/PropsPanel.vue +19 -1
- 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 +55 -1
- package/src/theme/history-list-panel.scss +9 -9
- 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 +124 -0
- package/src/utils/const.ts +2 -1
- package/src/utils/props.ts +30 -9
- package/types/index.d.ts +59 -23
|
@@ -18,13 +18,15 @@ import keybinding_default from "./services/keybinding.js";
|
|
|
18
18
|
import stageOverlay_default from "./services/stageOverlay.js";
|
|
19
19
|
import { defaultEditorProps } from "./editorProps.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
|
+
theme: {},
|
|
28
30
|
modelValue: {},
|
|
29
31
|
componentGroupList: {},
|
|
30
32
|
datasourceList: {},
|
|
@@ -147,6 +149,12 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
147
149
|
*/
|
|
148
150
|
provide("historyListExtraTabs", props.historyListExtraTabs);
|
|
149
151
|
provide("eventBus", new EventEmitter());
|
|
152
|
+
/**
|
|
153
|
+
* 把当前主题以响应式 ref 形式 provide 给后代,供包含 `Teleport` 的组件
|
|
154
|
+
* (如 `TMagicPopover` / `FloatingBox` / `ContentMenu`)在传送目标上挂 `m-theme--<theme>`
|
|
155
|
+
* 类,让主题级 CSS 变量在 portal 节点上也能命中。详见 `@tmagic/design/theme.ts`。
|
|
156
|
+
*/
|
|
157
|
+
provide(M_THEME_KEY, computed(() => props.theme ?? ""));
|
|
150
158
|
const propsPanelMountedHandler = (e) => {
|
|
151
159
|
propsPanelRef.value = e;
|
|
152
160
|
emit("props-panel-mounted", e);
|
|
@@ -170,7 +178,8 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
170
178
|
"disabled-page-fragment": __props.disabledPageFragment,
|
|
171
179
|
"page-bar-sort-options": __props.pageBarSortOptions,
|
|
172
180
|
"page-filter-function": __props.pageFilterFunction,
|
|
173
|
-
"hide-sidebar": __props.hideSidebar
|
|
181
|
+
"hide-sidebar": __props.hideSidebar,
|
|
182
|
+
theme: __props.theme
|
|
174
183
|
}, {
|
|
175
184
|
header: withCtx(() => [renderSlot(_ctx.$slots, "header")]),
|
|
176
185
|
nav: withCtx(() => [renderSlot(_ctx.$slots, "nav", { editorService: unref(editor_default) }, () => [createVNode(NavMenu_default, { data: __props.menu }, null, 8, ["data"])])]),
|
|
@@ -251,7 +260,8 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
251
260
|
"disabled-page-fragment",
|
|
252
261
|
"page-bar-sort-options",
|
|
253
262
|
"page-filter-function",
|
|
254
|
-
"hide-sidebar"
|
|
263
|
+
"hide-sidebar",
|
|
264
|
+
"theme"
|
|
255
265
|
]);
|
|
256
266
|
};
|
|
257
267
|
}
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
import { useServices } from "../hooks/use-services.js";
|
|
2
2
|
import Icon_default from "./Icon.js";
|
|
3
|
-
import { TMagicButton, useZIndex } from "@tmagic/design";
|
|
4
|
-
import { Teleport, computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeStyle, onBeforeUnmount, openBlock, provide, ref, renderSlot, toDisplayString, unref, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
3
|
+
import { TMagicButton, useThemeClass, useZIndex } from "@tmagic/design";
|
|
4
|
+
import { Teleport, computed, createBlock, createCommentVNode, createElementVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, provide, ref, renderSlot, toDisplayString, unref, useModel, useTemplateRef, watch, withCtx } from "vue";
|
|
5
5
|
import { Close } from "@element-plus/icons-vue";
|
|
6
6
|
import VanillaMoveable from "moveable";
|
|
7
7
|
//#region packages/editor/src/components/FloatingBox.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -41,6 +41,11 @@ var FloatingBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
41
41
|
const props = __props;
|
|
42
42
|
const targetEl = useTemplateRef("target");
|
|
43
43
|
const titleEl = useTemplateRef("title");
|
|
44
|
+
/**
|
|
45
|
+
* 主题修饰类(来自最近的 `<MEditor>` / `<MForm>` 祖先 provide)。
|
|
46
|
+
* 挂在 `Teleport` 出去的浮动面板根节点上,让主题级 CSS 变量在 portal 节点上也能命中。
|
|
47
|
+
*/
|
|
48
|
+
const themeClass = useThemeClass();
|
|
44
49
|
const zIndex = useZIndex();
|
|
45
50
|
const curZIndex = ref(0);
|
|
46
51
|
const titleHeight = ref(0);
|
|
@@ -137,7 +142,7 @@ var FloatingBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
137
142
|
to: "body"
|
|
138
143
|
}, [createElementVNode("div", {
|
|
139
144
|
ref: "target",
|
|
140
|
-
class: "m-editor-float-box",
|
|
145
|
+
class: normalizeClass(["m-editor-float-box", unref(themeClass)]),
|
|
141
146
|
style: normalizeStyle({
|
|
142
147
|
...style.value,
|
|
143
148
|
zIndex: curZIndex.value
|
|
@@ -153,7 +158,7 @@ var FloatingBox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
153
158
|
})])], 512), createElementVNode("div", {
|
|
154
159
|
class: "m-editor-float-box-body",
|
|
155
160
|
style: normalizeStyle({ height: `${bodyHeight.value}px` })
|
|
156
|
-
}, [renderSlot(_ctx.$slots, "body")], 4)],
|
|
161
|
+
}, [renderSlot(_ctx.$slots, "body")], 4)], 38)])) : createCommentVNode("v-if", true);
|
|
157
162
|
};
|
|
158
163
|
}
|
|
159
164
|
});
|
|
@@ -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
|
+
emit("change", defaultCode, { modifyKey: `hookData.${(props.model[name]?.hookData || []).length}` });
|
|
53
|
+
};
|
|
42
54
|
const codeConfig = computed(() => ({
|
|
43
55
|
type: "group-list",
|
|
44
56
|
name: "hookData",
|
|
45
57
|
enableToggleMode: false,
|
|
46
58
|
expandAll: true,
|
|
59
|
+
flat: 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,45 +70,42 @@ 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
|
-
type: "code-select-col",
|
|
82
|
-
name: "codeId",
|
|
83
|
-
span: 18,
|
|
84
|
-
labelWidth: 0,
|
|
85
|
-
display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
|
|
86
|
-
notEditable: () => !codeBlockService.getEditStatus()
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
type: "data-source-method-select",
|
|
90
|
-
name: "codeId",
|
|
91
|
-
span: 18,
|
|
92
|
-
labelWidth: 0,
|
|
93
|
-
display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
|
|
94
|
-
notEditable: () => !dataSourceService.get("editable")
|
|
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
|
+
options: [{
|
|
81
|
+
value: HookCodeType.CODE,
|
|
82
|
+
text: "代码块"
|
|
83
|
+
}, {
|
|
84
|
+
value: HookCodeType.DATA_SOURCE_METHOD,
|
|
85
|
+
text: "数据源方法"
|
|
86
|
+
}],
|
|
87
|
+
defaultValue: "code",
|
|
88
|
+
onChange: (_mForm, v, { setModel }) => {
|
|
89
|
+
if (v === HookCodeType.DATA_SOURCE_METHOD) setModel("codeId", []);
|
|
90
|
+
else setModel("codeId", "");
|
|
91
|
+
return v;
|
|
95
92
|
}
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: "code-select-col",
|
|
96
|
+
name: "codeId",
|
|
97
|
+
text: "代码块",
|
|
98
|
+
display: (_mForm, { model }) => model.codeType !== HookCodeType.DATA_SOURCE_METHOD,
|
|
99
|
+
notEditable: () => !codeBlockService.getEditStatus()
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: "data-source-method-select",
|
|
103
|
+
name: "codeId",
|
|
104
|
+
text: "数据源字段",
|
|
105
|
+
display: (_mForm, { model }) => model.codeType === HookCodeType.DATA_SOURCE_METHOD,
|
|
106
|
+
notEditable: () => !dataSourceService.get("editable")
|
|
107
|
+
}
|
|
108
|
+
]
|
|
98
109
|
}));
|
|
99
110
|
watch(() => props.model[props.name], (value) => {
|
|
100
111
|
if (isEmpty(value)) props.model[props.name] = {
|
|
@@ -104,10 +115,11 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
104
115
|
}, { immediate: true });
|
|
105
116
|
const changeHandler = (v, eventData) => emit("change", v, eventData);
|
|
106
117
|
return (_ctx, _cache) => {
|
|
107
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard),
|
|
118
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(TMagicCard), { flat: __props.config.flat }, {
|
|
108
119
|
default: withCtx(() => [createVNode(unref(MContainer), {
|
|
109
120
|
config: codeConfig.value,
|
|
110
121
|
size: __props.size,
|
|
122
|
+
class: "code-select-content",
|
|
111
123
|
prop: __props.prop,
|
|
112
124
|
disabled: __props.disabled,
|
|
113
125
|
"is-compare": isCompareMode.value,
|
|
@@ -122,9 +134,22 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
122
134
|
"is-compare",
|
|
123
135
|
"last-values",
|
|
124
136
|
"model"
|
|
137
|
+
]), createVNode(unref(TMagicButton), {
|
|
138
|
+
class: "create-button fullWidth",
|
|
139
|
+
icon: unref(Plus),
|
|
140
|
+
size: __props.size,
|
|
141
|
+
disabled: __props.disabled,
|
|
142
|
+
onClick: _cache[0] || (_cache[0] = ($event) => newHandler())
|
|
143
|
+
}, {
|
|
144
|
+
default: withCtx(() => [createTextVNode("添加" + toDisplayString(__props.config.text), 1)]),
|
|
145
|
+
_: 1
|
|
146
|
+
}, 8, [
|
|
147
|
+
"icon",
|
|
148
|
+
"size",
|
|
149
|
+
"disabled"
|
|
125
150
|
])]),
|
|
126
151
|
_: 1
|
|
127
|
-
})], 2);
|
|
152
|
+
}, 8, ["flat"])], 2);
|
|
128
153
|
};
|
|
129
154
|
}
|
|
130
155
|
});
|
|
@@ -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 }) {
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { useServices } from "../../hooks/use-services.js";
|
|
2
2
|
import Icon_default from "../../components/Icon.js";
|
|
3
|
+
import DatasourceIcon_default from "../../icons/DatasourceIcon.js";
|
|
3
4
|
import FieldSelect_default from "./FieldSelect.js";
|
|
4
5
|
import { getFormField } from "@tmagic/form";
|
|
5
6
|
import { TMagicButton, TMagicTooltip, tMagicMessage } from "@tmagic/design";
|
|
6
7
|
import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, removeDataSourceFieldPrefix } from "@tmagic/utils";
|
|
7
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, openBlock, ref, resolveComponent, resolveDynamicComponent, unref, watch, withCtx } from "vue";
|
|
8
|
-
import { Coin } from "@element-plus/icons-vue";
|
|
8
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, normalizeClass, openBlock, ref, resolveComponent, resolveDynamicComponent, unref, watch, withCtx } from "vue";
|
|
9
9
|
//#region packages/editor/src/fields/DataSourceFieldSelect/Index.vue?vue&type=script&setup=true&lang.ts
|
|
10
|
-
var _hoisted_1 = { class: "m-fields-data-source-field-select" };
|
|
11
10
|
var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
12
11
|
name: "MFieldsDataSourceFieldSelect",
|
|
13
12
|
__name: "Index",
|
|
@@ -24,13 +23,17 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
24
23
|
},
|
|
25
24
|
size: {},
|
|
26
25
|
lastValues: {},
|
|
27
|
-
isCompare: { type: Boolean }
|
|
26
|
+
isCompare: { type: Boolean },
|
|
27
|
+
text: {},
|
|
28
|
+
labelWidth: {},
|
|
29
|
+
labelPosition: {}
|
|
28
30
|
},
|
|
29
31
|
emits: ["change"],
|
|
30
32
|
setup(__props, { emit: __emit }) {
|
|
31
33
|
const emit = __emit;
|
|
32
34
|
const props = __props;
|
|
33
35
|
const showDataSourceFieldSelect = ref(false);
|
|
36
|
+
const isSelectValid = computed(() => !disabledDataSource.value && (showDataSourceFieldSelect.value || !props.config.fieldConfig));
|
|
34
37
|
watch(() => props.model[props.name], (value) => {
|
|
35
38
|
if (Array.isArray(value) && typeof value[0] === "string" && value[0].startsWith(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX)) showDataSourceFieldSelect.value = true;
|
|
36
39
|
else showDataSourceFieldSelect.value = false;
|
|
@@ -100,7 +103,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
100
103
|
showDataSourceFieldSelect.value = !showDataSourceFieldSelect.value;
|
|
101
104
|
};
|
|
102
105
|
return (_ctx, _cache) => {
|
|
103
|
-
return openBlock(), createElementBlock("div",
|
|
106
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-data-source-field-select", { [`data-source-field-${type.value}`]: !isSelectValid.value }]) }, [isSelectValid.value ? (openBlock(), createBlock(FieldSelect_default, {
|
|
104
107
|
key: 0,
|
|
105
108
|
"model-value": __props.model[__props.name],
|
|
106
109
|
disabled: __props.disabled,
|
|
@@ -151,7 +154,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
151
154
|
disabled: __props.disabled,
|
|
152
155
|
onClick: onToggleDataSourceFieldSelectHandler
|
|
153
156
|
}, {
|
|
154
|
-
default: withCtx(() => [createVNode(Icon_default, { icon:
|
|
157
|
+
default: withCtx(() => [createVNode(Icon_default, { icon: DatasourceIcon_default })]),
|
|
155
158
|
_: 1
|
|
156
159
|
}, 8, [
|
|
157
160
|
"type",
|
|
@@ -159,7 +162,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
159
162
|
"disabled"
|
|
160
163
|
])]),
|
|
161
164
|
_: 1
|
|
162
|
-
}, 8, ["disabled"])) : createCommentVNode("v-if", true)]);
|
|
165
|
+
}, 8, ["disabled"])) : createCommentVNode("v-if", true)], 2);
|
|
163
166
|
};
|
|
164
167
|
}
|
|
165
168
|
});
|
|
@@ -30,7 +30,10 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
30
30
|
},
|
|
31
31
|
size: {},
|
|
32
32
|
lastValues: {},
|
|
33
|
-
isCompare: { type: Boolean }
|
|
33
|
+
isCompare: { type: Boolean },
|
|
34
|
+
text: {},
|
|
35
|
+
labelWidth: {},
|
|
36
|
+
labelPosition: {}
|
|
34
37
|
}, {
|
|
35
38
|
"width": { default: 670 },
|
|
36
39
|
"widthModifiers": {},
|
|
@@ -31,7 +31,10 @@ var DataSourceInput_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
31
31
|
},
|
|
32
32
|
size: {},
|
|
33
33
|
lastValues: {},
|
|
34
|
-
isCompare: { type: Boolean }
|
|
34
|
+
isCompare: { type: Boolean },
|
|
35
|
+
text: {},
|
|
36
|
+
labelWidth: {},
|
|
37
|
+
labelPosition: {}
|
|
35
38
|
},
|
|
36
39
|
emits: ["change"],
|
|
37
40
|
setup(__props, { emit: __emit }) {
|
package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js
CHANGED
|
@@ -27,7 +27,10 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
|
|
|
27
27
|
},
|
|
28
28
|
size: {},
|
|
29
29
|
lastValues: {},
|
|
30
|
-
isCompare: { type: Boolean }
|
|
30
|
+
isCompare: { type: Boolean },
|
|
31
|
+
text: {},
|
|
32
|
+
labelWidth: {},
|
|
33
|
+
labelPosition: {}
|
|
31
34
|
},
|
|
32
35
|
emits: ["change"],
|
|
33
36
|
setup(__props, { emit: __emit }) {
|
|
@@ -25,7 +25,10 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
|
|
|
25
25
|
},
|
|
26
26
|
size: {},
|
|
27
27
|
lastValues: {},
|
|
28
|
-
isCompare: { type: Boolean }
|
|
28
|
+
isCompare: { type: Boolean },
|
|
29
|
+
text: {},
|
|
30
|
+
labelWidth: {},
|
|
31
|
+
labelPosition: {}
|
|
29
32
|
},
|
|
30
33
|
emits: ["change"],
|
|
31
34
|
setup(__props, { emit: __emit }) {
|
|
@@ -30,7 +30,10 @@ var DataSourceMocks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
30
30
|
},
|
|
31
31
|
size: {},
|
|
32
32
|
lastValues: {},
|
|
33
|
-
isCompare: { type: Boolean }
|
|
33
|
+
isCompare: { type: Boolean },
|
|
34
|
+
text: {},
|
|
35
|
+
labelWidth: {},
|
|
36
|
+
labelPosition: {}
|
|
34
37
|
}, {
|
|
35
38
|
"width": { default: 670 },
|
|
36
39
|
"widthModifiers": {},
|
|
@@ -23,7 +23,10 @@ var DataSourceSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
23
23
|
},
|
|
24
24
|
size: {},
|
|
25
25
|
lastValues: {},
|
|
26
|
-
isCompare: { type: Boolean }
|
|
26
|
+
isCompare: { type: Boolean },
|
|
27
|
+
text: {},
|
|
28
|
+
labelWidth: {},
|
|
29
|
+
labelPosition: {}
|
|
27
30
|
},
|
|
28
31
|
emits: ["change"],
|
|
29
32
|
setup(__props, { emit: __emit }) {
|
|
@@ -19,7 +19,10 @@ var DisplayConds_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
19
19
|
},
|
|
20
20
|
size: {},
|
|
21
21
|
lastValues: {},
|
|
22
|
-
isCompare: { type: Boolean }
|
|
22
|
+
isCompare: { type: Boolean },
|
|
23
|
+
text: {},
|
|
24
|
+
labelWidth: {},
|
|
25
|
+
labelPosition: {}
|
|
23
26
|
},
|
|
24
27
|
emits: ["change"],
|
|
25
28
|
setup(__props, { emit: __emit }) {
|
|
@@ -43,11 +46,14 @@ var DisplayConds_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
43
46
|
titlePrefix: props.config.titlePrefix,
|
|
44
47
|
expandAll: true,
|
|
45
48
|
enableToggleMode: false,
|
|
49
|
+
flat: props.config.flat,
|
|
46
50
|
items: [{
|
|
47
51
|
type: "table",
|
|
48
52
|
name: "cond",
|
|
49
|
-
operateColWidth:
|
|
53
|
+
operateColWidth: props.config.operateColWidth,
|
|
50
54
|
enableToggleMode: false,
|
|
55
|
+
fixed: props.config.fixed,
|
|
56
|
+
flat: props.config.flat,
|
|
51
57
|
items: [
|
|
52
58
|
parentFields.value.length ? {
|
|
53
59
|
type: "cascader",
|