@tmagic/editor 1.8.0-beta.25 → 1.8.0-beta.26
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 +10 -16
- package/dist/es/components/CodeParams.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/es/components/CompareForm.vue_vue_type_script_setup_true_lang.js +5 -8
- package/dist/es/components/ViewForm.vue_vue_type_script_setup_true_lang.js +3 -5
- package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +3 -11
- package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +29 -124
- package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +5 -6
- package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +4 -5
- package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +6 -10
- package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +5 -7
- package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +1 -4
- package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +4 -6
- package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +9 -142
- package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +51 -326
- package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +2 -4
- package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +3 -34
- package/dist/es/fields/StyleSetter/configs.js +663 -0
- package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +5 -108
- package/dist/es/fields/StyleSetter/pro/Border.vue_vue_type_script_setup_true_lang.js +3 -9
- package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +5 -102
- package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +5 -265
- package/dist/es/fields/StyleSetter/pro/Position.vue_vue_type_script_setup_true_lang.js +5 -85
- package/dist/es/fields/StyleSetter/pro/Transform.vue_vue_type_script_setup_true_lang.js +3 -22
- package/dist/es/fields/configs/codeSelect.js +98 -0
- package/dist/es/fields/configs/displayConds.js +158 -0
- package/dist/es/fields/configs/eventSelect.js +225 -0
- package/dist/es/fields/configs/stickyAddButton.js +20 -0
- package/dist/es/fields/headless-validation.js +139 -0
- package/dist/es/headless.js +2 -0
- package/dist/es/hooks/use-compare-form.js +6 -23
- package/dist/es/hooks/use-form-context.js +19 -0
- package/dist/es/index.js +2 -1
- package/dist/es/initService.js +17 -1
- package/dist/es/layouts/history-list/HistoryDiffDialog.vue_vue_type_script_setup_true_lang.js +1 -7
- package/dist/es/layouts/history-list/HistoryListPanel.vue_vue_type_script_setup_true_lang.js +1 -11
- package/dist/es/layouts/history-list/useHistoryRevert.js +3 -11
- package/dist/es/layouts/props-panel/FormPanel.vue_vue_type_script_setup_true_lang.js +10 -23
- package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +3 -13
- package/dist/es/layouts/sidebar/code-block/CodeBlockListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/code-block/useContentMenu.js +1 -1
- package/dist/es/layouts/sidebar/data-source/DataSourceListPanel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/layouts/sidebar/data-source/useContentMenu.js +1 -1
- package/dist/es/plugin.js +33 -32
- package/dist/es/style.css +116 -60
- package/dist/es/utils/data-source/index.js +2 -1
- package/dist/es/utils/props.js +1 -4
- package/dist/es/utils/type-match-rules.js +2 -2
- package/dist/style.css +116 -60
- package/dist/themes/magic-admin.css +128 -67
- package/dist/tmagic-editor-headless.umd.cjs +10867 -0
- package/dist/tmagic-editor.umd.cjs +2123 -2015
- package/package.json +12 -7
- package/src/Editor.vue +12 -16
- package/src/components/CodeParams.vue +10 -4
- package/src/components/CompareForm.vue +4 -5
- package/src/components/ViewForm.vue +2 -3
- package/src/editorProps.ts +1 -2
- package/src/fields/Code.vue +2 -10
- package/src/fields/CodeSelect.vue +20 -116
- package/src/fields/CodeSelectCol.vue +3 -5
- package/src/fields/DataSourceFieldSelect/FieldSelect.vue +1 -1
- package/src/fields/DataSourceFieldSelect/Index.vue +3 -5
- package/src/fields/DataSourceFields.vue +0 -7
- package/src/fields/DataSourceMethodSelect.vue +2 -5
- package/src/fields/DataSourceMethods.vue +1 -6
- package/src/fields/DataSourceMocks.vue +1 -10
- package/src/fields/DataSourceSelect.vue +1 -1
- package/src/fields/DisplayConds.vue +17 -157
- package/src/fields/EventSelect.vue +28 -375
- package/src/fields/KeyValue.vue +3 -4
- package/src/fields/StyleSetter/components/Border.vue +4 -38
- package/src/fields/StyleSetter/configs.ts +690 -0
- package/src/fields/StyleSetter/pro/Background.vue +4 -104
- package/src/fields/StyleSetter/pro/Border.vue +3 -12
- package/src/fields/StyleSetter/pro/Font.vue +4 -123
- package/src/fields/StyleSetter/pro/Layout.vue +4 -219
- package/src/fields/StyleSetter/pro/Position.vue +6 -110
- package/src/fields/StyleSetter/pro/Transform.vue +4 -30
- package/src/fields/configs/codeSelect.ts +127 -0
- package/src/fields/configs/displayConds.ts +184 -0
- package/src/fields/configs/eventSelect.ts +309 -0
- package/src/fields/configs/stickyAddButton.ts +31 -0
- package/src/fields/headless-validation.ts +177 -0
- package/src/headless.ts +33 -0
- package/src/hooks/use-compare-form.ts +7 -25
- package/src/hooks/use-form-context.ts +40 -0
- package/src/index.ts +2 -0
- package/src/initService.ts +23 -1
- package/src/layouts/history-list/HistoryDiffDialog.vue +0 -10
- package/src/layouts/history-list/HistoryListPanel.vue +1 -13
- package/src/layouts/history-list/useHistoryRevert.ts +7 -13
- package/src/layouts/props-panel/FormPanel.vue +17 -28
- package/src/layouts/props-panel/PropsPanel.vue +1 -4
- package/src/layouts/sidebar/code-block/CodeBlockListPanel.vue +1 -1
- package/src/layouts/sidebar/code-block/useContentMenu.ts +1 -1
- package/src/layouts/sidebar/data-source/DataSourceListPanel.vue +1 -1
- package/src/layouts/sidebar/data-source/useContentMenu.ts +1 -1
- package/src/plugin.ts +32 -33
- package/src/theme/code-block.scss +0 -37
- package/src/theme/display-conds.scss +4 -0
- package/src/theme/event.scss +22 -45
- package/src/theme/props-panel.scss +17 -3
- package/src/theme/themes/magic-admin/index.scss +12 -1
- package/src/type.ts +10 -29
- package/src/utils/data-source/index.ts +1 -0
- package/src/utils/props.ts +1 -4
- package/src/utils/type-match-rules.ts +8 -3
- package/types/headless.d.ts +18 -0
- package/types/index.d.ts +154 -179
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useEditorFormContext } from "./hooks/use-form-context.js";
|
|
1
2
|
import props_default from "./services/props.js";
|
|
2
3
|
import history_default from "./services/history.js";
|
|
3
4
|
import storage_default from "./services/storage.js";
|
|
@@ -18,8 +19,9 @@ import dep_default from "./services/dep.js";
|
|
|
18
19
|
import keybinding_default from "./services/keybinding.js";
|
|
19
20
|
import stageOverlay_default from "./services/stageOverlay.js";
|
|
20
21
|
import { initServiceEvents, initServiceState } from "./initService.js";
|
|
22
|
+
import { FORM_CONTEXT_KEY } from "@tmagic/form";
|
|
21
23
|
import { M_THEME_KEY } from "@tmagic/design";
|
|
22
|
-
import { computed, createBlock, createVNode, defineComponent, mergeDefaults, openBlock, provide,
|
|
24
|
+
import { computed, createBlock, createVNode, defineComponent, mergeDefaults, openBlock, provide, renderSlot, unref, withCtx } from "vue";
|
|
23
25
|
import { EventEmitter } from "events";
|
|
24
26
|
//#region packages/editor/src/Editor.vue?vue&type=script&setup=true&lang.ts
|
|
25
27
|
var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -75,7 +77,6 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
75
77
|
canDropIn: { type: Function },
|
|
76
78
|
beforeDblclick: { type: Function },
|
|
77
79
|
beforeLayerNodeDblclick: { type: Function },
|
|
78
|
-
extendFormState: { type: Function },
|
|
79
80
|
historyListExtraTabs: {},
|
|
80
81
|
pageBarSortOptions: {},
|
|
81
82
|
pageFilterFunction: { type: Function }
|
|
@@ -131,25 +132,21 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
131
132
|
beforeDblclick: props.beforeDblclick
|
|
132
133
|
};
|
|
133
134
|
stageOverlay_default.set("stageOptions", stageOptions);
|
|
134
|
-
const propsPanelRef = ref(null);
|
|
135
135
|
provide("services", services);
|
|
136
136
|
provide("codeOptions", props.codeOptions);
|
|
137
137
|
provide("stageOptions", stageOptions);
|
|
138
138
|
/** 是否启用「属性配置表单校验」联动能力,供 PropsPanel / FormPanel 判断校验失败时是否仍更新节点并记录错误 */
|
|
139
139
|
provide(ENABLE_PROPS_FORM_VALIDATE, props.enablePropsFormValidate ?? false);
|
|
140
140
|
/**
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
141
|
+
* 编辑器注入给整棵表单树的业务上下文(`services` / `stage`),属性面板、对比表单、
|
|
142
|
+
* 侧边栏里的嵌套 MForm 都通过 inject 自动继承。
|
|
143
|
+
*
|
|
144
|
+
* 业务方要追加自己的字段,在 `<MEditor>` 外层再 `provide(FORM_CONTEXT_KEY, computed(...))`
|
|
145
|
+
* 即可,配置回调统一通过 `mForm.xxx` 读取。
|
|
144
146
|
*/
|
|
145
|
-
provide(
|
|
147
|
+
provide(FORM_CONTEXT_KEY, useEditorFormContext(() => services));
|
|
146
148
|
provide("isLargeStageContainer", computed(() => props.isLargeStageContainer));
|
|
147
149
|
/**
|
|
148
|
-
* 提供 PropsPanel 主属性表单的 formState getter,供历史差异弹窗复用,
|
|
149
|
-
* 让 CompareForm 与 PropsPanel 的 filterFunction 上下文保持一致。
|
|
150
|
-
*/
|
|
151
|
-
provide("getPropsPanelFormState", () => propsPanelRef.value?.configForm?.formState);
|
|
152
|
-
/**
|
|
153
150
|
* 把历史记录面板的自定义扩展 tab 提供给深层的 HistoryListPanel(它挂在 NavMenu 中,
|
|
154
151
|
* 以 markRaw component 形式渲染,无法直接通过 props 透传)。业务方可借此在历史记录
|
|
155
152
|
* 面板内追加自定义模块的历史 tab。
|
|
@@ -163,11 +160,9 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
163
160
|
*/
|
|
164
161
|
provide(M_THEME_KEY, computed(() => props.theme ?? ""));
|
|
165
162
|
const propsPanelMountedHandler = (e) => {
|
|
166
|
-
propsPanelRef.value = e;
|
|
167
163
|
emit("props-panel-mounted", e);
|
|
168
164
|
};
|
|
169
165
|
const propsPanelUnmountedHandler = () => {
|
|
170
|
-
propsPanelRef.value = null;
|
|
171
166
|
emit("props-panel-unmounted");
|
|
172
167
|
};
|
|
173
168
|
const propsPanelSubmitErrorHandler = (e) => {
|
|
@@ -244,7 +239,6 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
244
239
|
"custom-content-menu"
|
|
245
240
|
])])]),
|
|
246
241
|
"props-panel": withCtx(() => [renderSlot(_ctx.$slots, "props-panel", {}, () => [createVNode(PropsPanel_default, {
|
|
247
|
-
"extend-state": __props.extendFormState,
|
|
248
242
|
"disabled-show-src": __props.disabledShowSrc,
|
|
249
243
|
onMounted: propsPanelMountedHandler,
|
|
250
244
|
onUnmounted: propsPanelUnmountedHandler,
|
|
@@ -253,7 +247,7 @@ var Editor_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
253
247
|
}, {
|
|
254
248
|
"props-panel-header": withCtx(() => [renderSlot(_ctx.$slots, "props-panel-header")]),
|
|
255
249
|
_: 3
|
|
256
|
-
}, 8, ["
|
|
250
|
+
}, 8, ["disabled-show-src"])])]),
|
|
257
251
|
empty: withCtx(() => [renderSlot(_ctx.$slots, "empty", { editorService: unref(editor_default) })]),
|
|
258
252
|
"content-after": withCtx(() => [renderSlot(_ctx.$slots, "content-after")]),
|
|
259
253
|
footer: withCtx(() => [renderSlot(_ctx.$slots, "footer")]),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { error } from "../utils/logger.js";
|
|
2
|
-
import { MForm } from "@tmagic/form";
|
|
2
|
+
import { MForm, defineFormItem } from "@tmagic/form";
|
|
3
3
|
import { computed, createBlock, defineComponent, openBlock, unref, useTemplateRef } from "vue";
|
|
4
4
|
//#region packages/editor/src/components/CodeParams.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var CodeParams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -19,13 +19,13 @@ var CodeParams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
19
19
|
const props = __props;
|
|
20
20
|
const emit = __emit;
|
|
21
21
|
const formRef = useTemplateRef("form");
|
|
22
|
-
const getFormConfig = (items = []) => [{
|
|
22
|
+
const getFormConfig = (items = []) => [defineFormItem({
|
|
23
23
|
type: "fieldset",
|
|
24
24
|
items,
|
|
25
25
|
legend: "参数",
|
|
26
|
-
|
|
26
|
+
labelPosition: "top",
|
|
27
27
|
name: props.name
|
|
28
|
-
}];
|
|
28
|
+
})];
|
|
29
29
|
const codeParamsConfig = computed(() => getFormConfig(props.paramsConfig.map(({ name, text, extra, ...config }) => {
|
|
30
30
|
let { type } = config;
|
|
31
31
|
if (typeof type === "function") type = type(void 0, { model: props.model[props.name] });
|
|
@@ -14,8 +14,6 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
14
14
|
dataSourceType: {},
|
|
15
15
|
labelWidth: { default: "120px" },
|
|
16
16
|
height: {},
|
|
17
|
-
extendState: {},
|
|
18
|
-
baseFormState: {},
|
|
19
17
|
size: {},
|
|
20
18
|
loadConfig: {},
|
|
21
19
|
services: {},
|
|
@@ -24,7 +22,7 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
24
22
|
},
|
|
25
23
|
setup(__props, { expose: __expose }) {
|
|
26
24
|
const props = __props;
|
|
27
|
-
const { config, currentValues, wrapperStyle,
|
|
25
|
+
const { config, currentValues, wrapperStyle, formContext, loadConfig, formRef, normalizeCodeBlockValue } = useCompareForm(props);
|
|
28
26
|
const lastValuesProcessed = computed(() => {
|
|
29
27
|
if (props.category === "code-block") return normalizeCodeBlockValue(props.lastValue);
|
|
30
28
|
return props.lastValue || {};
|
|
@@ -32,9 +30,8 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
32
30
|
/**
|
|
33
31
|
* `code-select` 字段在历史数据中存在两种"语义为空"的形态:
|
|
34
32
|
* - 字符串 `''`(旧数据 / 用户从未配置过钩子);
|
|
35
|
-
* - `{ hookType: HookType.CODE, hookData: [] }
|
|
36
|
-
*
|
|
37
|
-
* `props.model[props.name] = { hookType: HookType.CODE, hookData: [] }`)。
|
|
33
|
+
* - `{ hookType: HookType.CODE, hookData: [] }`(`normalizeCodeSelectValue`
|
|
34
|
+
* 写入的默认结构)。
|
|
38
35
|
*
|
|
39
36
|
* 直接 `isEqual` 会把两者判为不等,从而在历史对比里对每个未配置过钩子的组件
|
|
40
37
|
* 都展示一份"差异",体验很糟糕。这里把它们视为相等,跳过对比。
|
|
@@ -71,7 +68,7 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
71
68
|
"is-compare": true,
|
|
72
69
|
disabled: true,
|
|
73
70
|
"label-width": __props.labelWidth,
|
|
74
|
-
|
|
71
|
+
context: unref(formContext),
|
|
75
72
|
"show-diff": showDiff,
|
|
76
73
|
"self-diff-field-types": __props.selfDiffFieldTypes,
|
|
77
74
|
size: __props.size
|
|
@@ -80,7 +77,7 @@ var CompareForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
80
77
|
"init-values",
|
|
81
78
|
"last-values",
|
|
82
79
|
"label-width",
|
|
83
|
-
"
|
|
80
|
+
"context",
|
|
84
81
|
"self-diff-field-types",
|
|
85
82
|
"size"
|
|
86
83
|
])) : createCommentVNode("v-if", true)], 4);
|
|
@@ -12,8 +12,6 @@ var ViewForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
12
12
|
dataSourceType: {},
|
|
13
13
|
labelWidth: { default: "120px" },
|
|
14
14
|
height: {},
|
|
15
|
-
extendState: {},
|
|
16
|
-
baseFormState: {},
|
|
17
15
|
size: {},
|
|
18
16
|
loadConfig: {},
|
|
19
17
|
services: {},
|
|
@@ -23,7 +21,7 @@ var ViewForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
23
21
|
}
|
|
24
22
|
},
|
|
25
23
|
setup(__props, { expose: __expose }) {
|
|
26
|
-
const { config, currentValues, wrapperStyle,
|
|
24
|
+
const { config, currentValues, wrapperStyle, formContext, loadConfig, formRef } = useCompareForm(__props);
|
|
27
25
|
__expose({
|
|
28
26
|
form: formRef,
|
|
29
27
|
config,
|
|
@@ -41,14 +39,14 @@ var ViewForm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
41
39
|
"init-values": unref(currentValues),
|
|
42
40
|
disabled: __props.disabled,
|
|
43
41
|
"label-width": __props.labelWidth,
|
|
44
|
-
|
|
42
|
+
context: unref(formContext),
|
|
45
43
|
size: __props.size
|
|
46
44
|
}, null, 8, [
|
|
47
45
|
"config",
|
|
48
46
|
"init-values",
|
|
49
47
|
"disabled",
|
|
50
48
|
"label-width",
|
|
51
|
-
"
|
|
49
|
+
"context",
|
|
52
50
|
"size"
|
|
53
51
|
])) : createCommentVNode("v-if", true)], 4);
|
|
54
52
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import CodeEditor_default from "../layouts/CodeEditor.js";
|
|
2
|
-
import {
|
|
3
|
-
import { computed, createBlock, createCommentVNode, defineComponent, inject, openBlock, unref } from "vue";
|
|
2
|
+
import { computed, createBlock, defineComponent, openBlock } from "vue";
|
|
4
3
|
//#region packages/editor/src/fields/Code.vue?vue&type=script&setup=true&lang.ts
|
|
5
4
|
var Code_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
5
|
name: "MFieldsVsCode",
|
|
@@ -25,12 +24,6 @@ var Code_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
|
|
|
25
24
|
},
|
|
26
25
|
emits: ["change"],
|
|
27
26
|
setup(__props, { emit: __emit }) {
|
|
28
|
-
/**
|
|
29
|
-
* 静默模式(submitForm/validateForm 隐藏挂载)下跳过 monaco 渲染:
|
|
30
|
-
* 校验由 FormItem 针对 model 中的值完成,与编辑器实例无关;本组件挂载无值副作用
|
|
31
|
-
* (save 仅由用户操作/编辑器内容变更触发),跳过可省去 monaco worker/model 的无谓实例化。
|
|
32
|
-
*/
|
|
33
|
-
const silentMode = inject(FORM_SILENT_MODE_KEY, false);
|
|
34
27
|
const emit = __emit;
|
|
35
28
|
const props = __props;
|
|
36
29
|
/**
|
|
@@ -48,8 +41,7 @@ var Code_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
|
|
|
48
41
|
emit("change", v);
|
|
49
42
|
};
|
|
50
43
|
return (_ctx, _cache) => {
|
|
51
|
-
return
|
|
52
|
-
key: 0,
|
|
44
|
+
return openBlock(), createBlock(CodeEditor_default, {
|
|
53
45
|
height: __props.config.height,
|
|
54
46
|
type: diffMode.value ? "diff" : void 0,
|
|
55
47
|
"init-values": diffMode.value ? (__props.lastValues || {})[__props.name] : __props.model[__props.name],
|
|
@@ -73,7 +65,7 @@ var Code_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
|
|
|
73
65
|
"autosize",
|
|
74
66
|
"parse",
|
|
75
67
|
"editor-custom-type"
|
|
76
|
-
])
|
|
68
|
+
]);
|
|
77
69
|
};
|
|
78
70
|
}
|
|
79
71
|
});
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createCodeSelectConfig, normalizeCodeSelectValue } from "./configs/codeSelect.js";
|
|
2
2
|
import { MContainer } from "@tmagic/form";
|
|
3
|
-
import {
|
|
4
|
-
import { HookCodeType, HookType } from "@tmagic/core";
|
|
5
|
-
import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, watch, withCtx } from "vue";
|
|
6
|
-
import { isEmpty } from "lodash-es";
|
|
7
|
-
import { Plus } from "@element-plus/icons-vue";
|
|
3
|
+
import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, unref, watch } from "vue";
|
|
8
4
|
//#region packages/editor/src/fields/CodeSelect.vue?vue&type=script&setup=true&lang.ts
|
|
9
5
|
var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
10
6
|
name: "MFieldsCodeSelect",
|
|
@@ -27,7 +23,6 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
27
23
|
emits: ["change"],
|
|
28
24
|
setup(__props, { emit: __emit }) {
|
|
29
25
|
const emit = __emit;
|
|
30
|
-
const { dataSourceService, codeBlockService } = useServices();
|
|
31
26
|
const props = __props;
|
|
32
27
|
/**
|
|
33
28
|
* 对比模式判定:
|
|
@@ -43,125 +38,35 @@ var CodeSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
43
38
|
* 仅当存在历史值时才启用对比,避免 lastValues 缺失时退化为「全部新增」的空对比。
|
|
44
39
|
*/
|
|
45
40
|
const isCompareMode = computed(() => Boolean(props.isCompare && props.lastValues));
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
const name = props.config.name || "";
|
|
52
|
-
const hookData = props.model[name]?.hookData || [];
|
|
53
|
-
emit("change", defaultCode, { modifyKey: `hookData.${hookData.length}` });
|
|
54
|
-
};
|
|
55
|
-
const codeConfig = computed(() => ({
|
|
56
|
-
type: "group-list",
|
|
57
|
-
name: "hookData",
|
|
58
|
-
enableToggleMode: false,
|
|
59
|
-
expandAll: true,
|
|
60
|
-
addable: () => false,
|
|
61
|
-
title: (mForm, { model, index }) => {
|
|
62
|
-
if (model.codeType === HookCodeType.DATA_SOURCE_METHOD) {
|
|
63
|
-
if (Array.isArray(model.codeId)) {
|
|
64
|
-
if (model.codeId.length < 2) return index;
|
|
65
|
-
return `${dataSourceService.getDataSourceById(model.codeId[0])?.title} / ${model.codeId[1]}`;
|
|
66
|
-
}
|
|
67
|
-
return Array.isArray(model.codeId) ? model.codeId.join("/") : index;
|
|
68
|
-
}
|
|
69
|
-
const codeContent = codeBlockService.getCodeContentById(model.codeId);
|
|
70
|
-
if (codeContent) return codeContent.name;
|
|
71
|
-
return model.codeId || index;
|
|
72
|
-
},
|
|
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;
|
|
96
|
-
}
|
|
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
|
-
]
|
|
121
|
-
}));
|
|
122
|
-
watch(() => props.model[props.name], (value) => {
|
|
123
|
-
if (isEmpty(value)) props.model[props.name] = {
|
|
124
|
-
hookType: HookType.CODE,
|
|
125
|
-
hookData: []
|
|
126
|
-
};
|
|
127
|
-
}, { immediate: true });
|
|
41
|
+
const codeConfig = computed(() => createCodeSelectConfig(props.config));
|
|
42
|
+
watch(() => props.model[props.name], () => {
|
|
43
|
+
normalizeCodeSelectValue(props.model, props.name);
|
|
44
|
+
});
|
|
128
45
|
const changeHandler = (v, eventData) => emit("change", v, eventData);
|
|
129
46
|
return (_ctx, _cache) => {
|
|
130
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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"
|
|
162
|
-
])]),
|
|
163
|
-
_: 1
|
|
164
|
-
}, 8, ["flat"])], 2);
|
|
47
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-code-select", __props.config.className]) }, [createVNode(unref(MContainer), {
|
|
48
|
+
config: codeConfig.value,
|
|
49
|
+
size: __props.size,
|
|
50
|
+
class: "code-select-content",
|
|
51
|
+
prop: __props.prop,
|
|
52
|
+
disabled: __props.disabled,
|
|
53
|
+
"is-compare": isCompareMode.value,
|
|
54
|
+
"last-values": __props.lastValues?.[__props.name],
|
|
55
|
+
model: __props.model[__props.name],
|
|
56
|
+
"label-position": __props.config.labelPosition,
|
|
57
|
+
"label-width": __props.config.labelWidth,
|
|
58
|
+
onChange: changeHandler
|
|
59
|
+
}, null, 8, [
|
|
60
|
+
"config",
|
|
61
|
+
"size",
|
|
62
|
+
"prop",
|
|
63
|
+
"disabled",
|
|
64
|
+
"is-compare",
|
|
65
|
+
"last-values",
|
|
66
|
+
"model",
|
|
67
|
+
"label-position",
|
|
68
|
+
"label-width"
|
|
69
|
+
])], 2);
|
|
165
70
|
};
|
|
166
71
|
}
|
|
167
72
|
});
|
|
@@ -2,7 +2,7 @@ import { SideItemKey } from "../type.js";
|
|
|
2
2
|
import { useServices } from "../hooks/use-services.js";
|
|
3
3
|
import Icon_default from "../components/Icon.js";
|
|
4
4
|
import CodeParams_default from "../components/CodeParams.js";
|
|
5
|
-
import {
|
|
5
|
+
import { MContainer, MSelect, createValues, filterFunction } from "@tmagic/form";
|
|
6
6
|
import { TMagicButton } from "@tmagic/design";
|
|
7
7
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, openBlock, ref, unref, watch, withCtx } from "vue";
|
|
8
8
|
import { isEmpty, map } from "lodash-es";
|
|
@@ -34,9 +34,8 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
34
34
|
emits: ["change"],
|
|
35
35
|
setup(__props, { emit: __emit }) {
|
|
36
36
|
const mForm = inject("mForm");
|
|
37
|
-
const silentMode = inject(FORM_SILENT_MODE_KEY, false);
|
|
38
37
|
const { codeBlockService, uiService } = useServices();
|
|
39
|
-
const eventBus = inject("eventBus");
|
|
38
|
+
const eventBus = inject("eventBus", null);
|
|
40
39
|
const emit = __emit;
|
|
41
40
|
const props = __props;
|
|
42
41
|
/**
|
|
@@ -131,7 +130,7 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
131
130
|
"last-values",
|
|
132
131
|
"size",
|
|
133
132
|
"prop"
|
|
134
|
-
])) :
|
|
133
|
+
])) : (openBlock(), createBlock(unref(MSelect), {
|
|
135
134
|
key: 1,
|
|
136
135
|
class: "select",
|
|
137
136
|
config: selectConfig,
|
|
@@ -145,9 +144,9 @@ var CodeSelectCol_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
145
144
|
"model",
|
|
146
145
|
"size",
|
|
147
146
|
"prop"
|
|
148
|
-
]))
|
|
147
|
+
])),
|
|
149
148
|
createCommentVNode(" 查看/编辑按钮:对比模式为只读,不展示 "),
|
|
150
|
-
!isCompareMode.value &&
|
|
149
|
+
!isCompareMode.value && __props.model[__props.name] && hasCodeBlockSidePanel.value ? (openBlock(), createBlock(unref(TMagicButton), {
|
|
151
150
|
key: 2,
|
|
152
151
|
class: "m-fields-select-action-button",
|
|
153
152
|
size: __props.size,
|
package/dist/es/fields/DataSourceFieldSelect/FieldSelect.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -31,7 +31,7 @@ var FieldSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
31
31
|
const optionComponent = getDesignConfig("components")?.option;
|
|
32
32
|
const { dataSourceService, uiService } = useServices();
|
|
33
33
|
const mForm = inject("mForm");
|
|
34
|
-
const eventBus = inject("eventBus");
|
|
34
|
+
const eventBus = inject("eventBus", null);
|
|
35
35
|
const allDataSources = computed(() => dataSourceService.get("dataSources") || []);
|
|
36
36
|
const dataSources = computed(() => {
|
|
37
37
|
if (!props.dataSourceId) return allDataSources.value;
|
|
@@ -2,7 +2,7 @@ import { useServices } from "../../hooks/use-services.js";
|
|
|
2
2
|
import Icon_default from "../../components/Icon.js";
|
|
3
3
|
import DatasourceIcon_default from "../../icons/DatasourceIcon.js";
|
|
4
4
|
import FieldSelect_default from "./FieldSelect.js";
|
|
5
|
-
import {
|
|
5
|
+
import { getFormField } from "@tmagic/form";
|
|
6
6
|
import { TMagicButton, TMagicTooltip, tMagicMessage } from "@tmagic/design";
|
|
7
7
|
import { DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX, removeDataSourceFieldPrefix } from "@tmagic/utils";
|
|
8
8
|
import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, inject, normalizeClass, openBlock, ref, resolveComponent, resolveDynamicComponent, unref, watch, withCtx } from "vue";
|
|
@@ -40,7 +40,6 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
40
40
|
}, { immediate: true });
|
|
41
41
|
const { dataSourceService, propsService } = useServices();
|
|
42
42
|
const mForm = inject("mForm");
|
|
43
|
-
const silentMode = inject(FORM_SILENT_MODE_KEY, false);
|
|
44
43
|
const dataSources = computed(() => dataSourceService.get("dataSources") || []);
|
|
45
44
|
const disabledDataSource = computed(() => propsService.getDisabledDataSource());
|
|
46
45
|
const type = computed(() => {
|
|
@@ -106,7 +105,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
106
105
|
showDataSourceFieldSelect.value = !showDataSourceFieldSelect.value;
|
|
107
106
|
};
|
|
108
107
|
return (_ctx, _cache) => {
|
|
109
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(["m-fields-data-source-field-select", { [`data-source-field-${type.value}`]: !isSelectValid.value }]) }, [isSelectValid.value
|
|
108
|
+
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, {
|
|
110
109
|
key: 0,
|
|
111
110
|
"model-value": __props.model[__props.name],
|
|
112
111
|
disabled: __props.disabled,
|
|
@@ -124,7 +123,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
124
123
|
"checkStrictly",
|
|
125
124
|
"dataSourceFieldType",
|
|
126
125
|
"dataSourceId"
|
|
127
|
-
])) :
|
|
126
|
+
])) : (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
|
|
128
127
|
key: 1,
|
|
129
128
|
config: __props.config.fieldConfig,
|
|
130
129
|
model: __props.model,
|
|
@@ -146,7 +145,7 @@ var Index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
146
145
|
"init-values",
|
|
147
146
|
"values",
|
|
148
147
|
"prop"
|
|
149
|
-
]))
|
|
148
|
+
])), __props.config.fieldConfig && !disabledDataSource.value && !unref(mForm)?.isCompare ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
150
149
|
key: 2,
|
|
151
150
|
disabled: showDataSourceFieldSelect.value,
|
|
152
151
|
content: "选择数据源"
|
|
@@ -3,11 +3,11 @@ import { useEditorContentHeight } from "../hooks/use-editor-content-height.js";
|
|
|
3
3
|
import { useNextFloatBoxPosition } from "../hooks/use-next-float-box-position.js";
|
|
4
4
|
import { error } from "../utils/logger.js";
|
|
5
5
|
import FloatingBox_default from "../components/FloatingBox.js";
|
|
6
|
-
import {
|
|
6
|
+
import { MFormBox } from "@tmagic/form";
|
|
7
7
|
import { MagicTable } from "@tmagic/table";
|
|
8
8
|
import { TMagicButton, tMagicMessage, tMagicMessageBox } from "@tmagic/design";
|
|
9
9
|
import { getDefaultValueFromFields } from "@tmagic/utils";
|
|
10
|
-
import { computed,
|
|
10
|
+
import { computed, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, isRef, mergeModels, onMounted, openBlock, provide, ref, unref, useModel, withCtx } from "vue";
|
|
11
11
|
//#region packages/editor/src/fields/DataSourceFields.vue?vue&type=script&setup=true&lang.ts
|
|
12
12
|
var _hoisted_1 = { class: "m-editor-data-source-fields" };
|
|
13
13
|
var _hoisted_2 = {
|
|
@@ -58,7 +58,6 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
58
58
|
const emit = __emit;
|
|
59
59
|
const { uiService } = useServices();
|
|
60
60
|
const mForm = inject("mForm");
|
|
61
|
-
const silentMode = inject(FORM_SILENT_MODE_KEY, false);
|
|
62
61
|
/** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
|
|
63
62
|
const isCompare = computed(() => Boolean(mForm?.isCompare));
|
|
64
63
|
const fieldValues = ref({});
|
|
@@ -326,7 +325,6 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
326
325
|
const editingFieldPath = inject("editingDataSourceFieldPath", computed(() => []));
|
|
327
326
|
provide("editingDataSourceFieldPath", computed(() => editingFieldPath.value.slice(1)));
|
|
328
327
|
onMounted(() => {
|
|
329
|
-
if (silentMode) return;
|
|
330
328
|
const path = editingFieldPath.value;
|
|
331
329
|
if (!path.length) return;
|
|
332
330
|
const fields = props.model[props.name] || [];
|
|
@@ -359,8 +357,7 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
359
357
|
default: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode("添加", -1)])]),
|
|
360
358
|
_: 1
|
|
361
359
|
}, 8, ["disabled"])])) : createCommentVNode("v-if", true),
|
|
362
|
-
|
|
363
|
-
key: 1,
|
|
360
|
+
createVNode(FloatingBox_default, {
|
|
364
361
|
"body-style": { padding: "0 16px" },
|
|
365
362
|
visible: addDialogVisible.value,
|
|
366
363
|
"onUpdate:visible": _cache[2] || (_cache[2] = ($event) => addDialogVisible.value = $event),
|
|
@@ -394,9 +391,8 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
394
391
|
"title",
|
|
395
392
|
"framework-width",
|
|
396
393
|
"position"
|
|
397
|
-
])
|
|
398
|
-
|
|
399
|
-
key: 2,
|
|
394
|
+
]),
|
|
395
|
+
createVNode(FloatingBox_default, {
|
|
400
396
|
"body-style": { padding: "0 16px" },
|
|
401
397
|
visible: addFromJsonDialogVisible.value,
|
|
402
398
|
"onUpdate:visible": _cache[5] || (_cache[5] = ($event) => addFromJsonDialogVisible.value = $event),
|
|
@@ -421,7 +417,7 @@ var DataSourceFields_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
421
417
|
"height",
|
|
422
418
|
"framework-width",
|
|
423
419
|
"position"
|
|
424
|
-
])
|
|
420
|
+
])
|
|
425
421
|
]);
|
|
426
422
|
};
|
|
427
423
|
}
|
package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useServices } from "../hooks/use-services.js";
|
|
|
3
3
|
import { getFieldType } from "../utils/data-source/index.js";
|
|
4
4
|
import Icon_default from "../components/Icon.js";
|
|
5
5
|
import CodeParams_default from "../components/CodeParams.js";
|
|
6
|
-
import {
|
|
6
|
+
import { MCascader, createValues, filterFunction } from "@tmagic/form";
|
|
7
7
|
import { TMagicButton, TMagicTooltip } from "@tmagic/design";
|
|
8
8
|
import { DATA_SOURCE_SET_DATA_METHOD_NAME } from "@tmagic/utils";
|
|
9
9
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, inject, openBlock, ref, unref, withCtx } from "vue";
|
|
@@ -36,8 +36,7 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
|
|
|
36
36
|
setup(__props, { emit: __emit }) {
|
|
37
37
|
const { dataSourceService, uiService } = useServices();
|
|
38
38
|
const mForm = inject("mForm");
|
|
39
|
-
const
|
|
40
|
-
const eventBus = inject("eventBus");
|
|
39
|
+
const eventBus = inject("eventBus", null);
|
|
41
40
|
const emit = __emit;
|
|
42
41
|
const props = __props;
|
|
43
42
|
const dataSourceSidePanel = computed(() => (uiService.get("sideBarItems") || []).find((item) => item.$key === SideItemKey.DATA_SOURCE));
|
|
@@ -135,8 +134,7 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
|
|
|
135
134
|
eventBus?.emit("edit-data-source-method", id, methodName);
|
|
136
135
|
};
|
|
137
136
|
return (_ctx, _cache) => {
|
|
138
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [
|
|
139
|
-
key: 0,
|
|
137
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createVNode(unref(MCascader), {
|
|
140
138
|
class: "select",
|
|
141
139
|
config: cascaderConfig.value,
|
|
142
140
|
model: __props.model,
|
|
@@ -152,8 +150,8 @@ var DataSourceMethodSelect_vue_vue_type_script_setup_true_name_true_lang_default
|
|
|
152
150
|
"size",
|
|
153
151
|
"disabled",
|
|
154
152
|
"prop"
|
|
155
|
-
])
|
|
156
|
-
key:
|
|
153
|
+
]), __props.model[__props.name] && isCustomMethod.value && dataSourceSidePanel.value && !isCompare.value ? (openBlock(), createBlock(unref(TMagicTooltip), {
|
|
154
|
+
key: 0,
|
|
157
155
|
content: notEditable.value ? "查看" : "编辑"
|
|
158
156
|
}, {
|
|
159
157
|
default: withCtx(() => [createVNode(unref(TMagicButton), {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import CodeBlockEditor_default from "../components/CodeBlockEditor.js";
|
|
2
|
-
import { FORM_SILENT_MODE_KEY } from "@tmagic/form";
|
|
3
2
|
import { MagicTable } from "@tmagic/table";
|
|
4
3
|
import { TMagicButton, tMagicMessageBox } from "@tmagic/design";
|
|
5
4
|
import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, inject, nextTick, onMounted, openBlock, ref, unref, useTemplateRef, withCtx } from "vue";
|
|
@@ -36,7 +35,6 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
|
|
|
36
35
|
const props = __props;
|
|
37
36
|
const emit = __emit;
|
|
38
37
|
const mForm = inject("mForm");
|
|
39
|
-
const silentMode = inject(FORM_SILENT_MODE_KEY, false);
|
|
40
38
|
/** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
|
|
41
39
|
const isCompare = computed(() => Boolean(mForm?.isCompare));
|
|
42
40
|
const codeConfig = ref();
|
|
@@ -130,7 +128,6 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
|
|
|
130
128
|
/** 由 DataSourceConfigPanel 注入:打开数据源详情后需要直接打开的方法名 */
|
|
131
129
|
const editingMethodName = inject("editingDataSourceMethodName", computed(() => ""));
|
|
132
130
|
onMounted(() => {
|
|
133
|
-
if (silentMode) return;
|
|
134
131
|
const methodName = editingMethodName.value;
|
|
135
132
|
if (!methodName) return;
|
|
136
133
|
const methods = props.model[props.name] || [];
|
|
@@ -155,7 +152,7 @@ var DataSourceMethods_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
|
|
|
155
152
|
default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode("添加", -1)])]),
|
|
156
153
|
_: 1
|
|
157
154
|
}, 8, ["disabled"])])) : createCommentVNode("v-if", true),
|
|
158
|
-
codeConfig.value
|
|
155
|
+
codeConfig.value ? (openBlock(), createBlock(CodeBlockEditor_default, {
|
|
159
156
|
key: 1,
|
|
160
157
|
ref: "codeBlockEditor",
|
|
161
158
|
disabled: __props.disabled,
|