@tmagic/editor 1.8.0-beta.13 → 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.
Files changed (120) hide show
  1. package/dist/es/Editor.vue_vue_type_script_setup_true_lang.js +15 -3
  2. package/dist/es/components/ContentMenu.vue_vue_type_script_setup_true_lang.js +11 -4
  3. package/dist/es/components/FloatingBox.vue_vue_type_script_setup_true_lang.js +7 -2
  4. package/dist/es/fields/Code.vue_vue_type_script_setup_true_lang.js +4 -1
  5. package/dist/es/fields/CodeLink.vue_vue_type_script_setup_true_lang.js +4 -1
  6. package/dist/es/fields/CodeSelect.vue_vue_type_script_setup_true_lang.js +80 -55
  7. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +5 -1
  8. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +4 -1
  9. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +10 -7
  10. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +4 -1
  11. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +4 -1
  12. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +4 -1
  13. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +4 -1
  14. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +4 -1
  15. package/dist/es/fields/DataSourceSelect.vue_vue_type_script_setup_true_lang.js +4 -1
  16. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +8 -2
  17. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +99 -64
  18. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +4 -1
  19. package/dist/es/fields/PageFragmentSelect.vue_vue_type_script_setup_true_lang.js +4 -1
  20. package/dist/es/fields/StyleSetter/Index.vue_vue_type_script_setup_true_lang.js +5 -4
  21. package/dist/es/fields/StyleSetter/components/BackgroundPosition.vue_vue_type_script_setup_true_lang.js +4 -1
  22. package/dist/es/fields/StyleSetter/components/Border.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/es/fields/StyleSetter/icons/align-items/Center.js +31 -0
  24. package/dist/es/fields/StyleSetter/icons/align-items/FlexEnd.js +31 -0
  25. package/dist/es/fields/StyleSetter/icons/align-items/FlexStart.js +31 -0
  26. package/dist/es/fields/StyleSetter/icons/align-items/SpaceAround.js +50 -0
  27. package/dist/es/fields/StyleSetter/icons/align-items/SpaceBetween.js +50 -0
  28. package/dist/es/fields/StyleSetter/icons/background-repeat/NoRepeat.js +6 -6
  29. package/dist/es/fields/StyleSetter/icons/background-repeat/Repeat.js +5 -2
  30. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatX.js +28 -5
  31. package/dist/es/fields/StyleSetter/icons/background-repeat/RepeatY.js +31 -5
  32. package/dist/es/fields/StyleSetter/icons/flex-direction/Column.js +10 -2
  33. package/dist/es/fields/StyleSetter/icons/flex-direction/ColumnReverse.js +10 -2
  34. package/dist/es/fields/StyleSetter/icons/flex-direction/Row.js +10 -2
  35. package/dist/es/fields/StyleSetter/icons/flex-direction/RowReverse.js +10 -2
  36. package/dist/es/fields/StyleSetter/icons/justify-content/Center.js +16 -2
  37. package/dist/es/fields/StyleSetter/icons/justify-content/FlexEnd.js +18 -2
  38. package/dist/es/fields/StyleSetter/icons/justify-content/FlexStart.js +18 -2
  39. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceAround.js +36 -2
  40. package/dist/es/fields/StyleSetter/icons/justify-content/SpaceBetween.js +32 -2
  41. package/dist/es/fields/StyleSetter/pro/Background.vue_vue_type_script_setup_true_lang.js +7 -6
  42. package/dist/es/fields/StyleSetter/pro/Font.vue_vue_type_script_setup_true_lang.js +6 -3
  43. package/dist/es/fields/StyleSetter/pro/Layout.vue_vue_type_script_setup_true_lang.js +47 -25
  44. package/dist/es/fields/UISelect.vue_vue_type_script_setup_true_lang.js +4 -1
  45. package/dist/es/icons/DatasourceIcon.js +17 -0
  46. package/dist/es/index.js +2 -2
  47. package/dist/es/layouts/Framework.vue_vue_type_script_setup_true_lang.js +14 -10
  48. package/dist/es/layouts/props-panel/PropsPanel.vue_vue_type_script_setup_true_lang.js +10 -1
  49. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +3 -3
  50. package/dist/es/plugin.js +2 -1
  51. package/dist/es/services/editor.js +54 -13
  52. package/dist/es/services/ui.js +5 -3
  53. package/dist/es/style.css +303 -40
  54. package/dist/es/utils/config.js +4 -1
  55. package/dist/es/utils/const.js +2 -2
  56. package/dist/es/utils/props.js +43 -29
  57. package/dist/style.css +303 -40
  58. package/dist/themes/magic-admin.css +3000 -0
  59. package/dist/tmagic-editor.umd.cjs +1066 -449
  60. package/package.json +7 -7
  61. package/src/Editor.vue +22 -1
  62. package/src/components/ContentMenu.vue +10 -2
  63. package/src/components/FloatingBox.vue +8 -2
  64. package/src/editorProps.ts +4 -0
  65. package/src/fields/CodeSelect.vue +54 -43
  66. package/src/fields/CodeSelectCol.vue +1 -0
  67. package/src/fields/DataSourceFieldSelect/Index.vue +14 -5
  68. package/src/fields/DisplayConds.vue +4 -1
  69. package/src/fields/EventSelect.vue +56 -32
  70. package/src/fields/StyleSetter/Index.vue +1 -4
  71. package/src/fields/StyleSetter/components/Border.vue +1 -1
  72. package/src/fields/StyleSetter/icons/align-items/Center.vue +19 -0
  73. package/src/fields/StyleSetter/icons/align-items/FlexEnd.vue +19 -0
  74. package/src/fields/StyleSetter/icons/align-items/FlexStart.vue +19 -0
  75. package/src/fields/StyleSetter/icons/align-items/SpaceAround.vue +34 -0
  76. package/src/fields/StyleSetter/icons/align-items/SpaceBetween.vue +34 -0
  77. package/src/fields/StyleSetter/icons/align-items/index.ts +5 -0
  78. package/src/fields/StyleSetter/icons/background-repeat/NoRepeat.vue +20 -4
  79. package/src/fields/StyleSetter/icons/background-repeat/Repeat.vue +10 -28
  80. package/src/fields/StyleSetter/icons/background-repeat/RepeatX.vue +4 -5
  81. package/src/fields/StyleSetter/icons/background-repeat/RepeatY.vue +4 -5
  82. package/src/fields/StyleSetter/icons/flex-direction/Column.vue +4 -3
  83. package/src/fields/StyleSetter/icons/flex-direction/ColumnReverse.vue +4 -3
  84. package/src/fields/StyleSetter/icons/flex-direction/Row.vue +4 -3
  85. package/src/fields/StyleSetter/icons/flex-direction/RowReverse.vue +4 -3
  86. package/src/fields/StyleSetter/icons/justify-content/Center.vue +5 -2
  87. package/src/fields/StyleSetter/icons/justify-content/FlexEnd.vue +15 -2
  88. package/src/fields/StyleSetter/icons/justify-content/FlexStart.vue +15 -2
  89. package/src/fields/StyleSetter/icons/justify-content/SpaceAround.vue +28 -3
  90. package/src/fields/StyleSetter/icons/justify-content/SpaceBetween.vue +28 -2
  91. package/src/fields/StyleSetter/pro/Background.vue +7 -2
  92. package/src/fields/StyleSetter/pro/Font.vue +3 -3
  93. package/src/fields/StyleSetter/pro/Layout.vue +98 -28
  94. package/src/icons/DatasourceIcon.vue +7 -0
  95. package/src/index.ts +3 -0
  96. package/src/layouts/Framework.vue +7 -1
  97. package/src/layouts/props-panel/PropsPanel.vue +19 -1
  98. package/src/layouts/sidebar/Sidebar.vue +3 -3
  99. package/src/plugin.ts +3 -2
  100. package/src/services/editor.ts +54 -11
  101. package/src/services/ui.ts +20 -5
  102. package/src/theme/code-block.scss +37 -0
  103. package/src/theme/common/var.scss +1 -1
  104. package/src/theme/component-list-panel.scss +2 -2
  105. package/src/theme/data-source-field.scss +4 -0
  106. package/src/theme/display-conds.scss +11 -0
  107. package/src/theme/event.scss +58 -4
  108. package/src/theme/framework.scss +4 -1
  109. package/src/theme/history-list-panel.scss +9 -9
  110. package/src/theme/nav-menu.scss +5 -1
  111. package/src/theme/props-panel.scss +2 -1
  112. package/src/theme/style-setter/border.scss +14 -5
  113. package/src/theme/theme.scss +1 -0
  114. package/src/theme/themes/magic-admin/index.scss +214 -0
  115. package/src/theme/ui-select.scss +1 -1
  116. package/src/type.ts +27 -6
  117. package/src/utils/config.ts +9 -1
  118. package/src/utils/const.ts +3 -2
  119. package/src/utils/props.ts +22 -9
  120. package/types/index.d.ts +88 -35
@@ -27,6 +27,7 @@
27
27
  @use "./page-fragment-select.scss";
28
28
  @use "./data-source-field.scss";
29
29
  @use "./data-source-field-select.scss";
30
+ @use "./display-conds.scss";
30
31
  @use "./scroll-bar.scss";
31
32
  @use "./ui-select.scss";
32
33
  @use "./layer-node-content.scss";
@@ -0,0 +1,214 @@
1
+ // magic-admin 主题:所有规则均以 `.m-editor.m-editor--magic-admin` 为前缀,
2
+ // 仅在 `<MEditor theme="magic-admin" />` 时生效,避免污染默认样式。
3
+
4
+ @use "@tmagic/design/src/theme/themes/magic-admin/index.scss" as tMagicDesign;
5
+ @use "@tmagic/table/src/theme/index.scss" as tMagicTable;
6
+ @use "@tmagic/form/src/theme/themes/magic-admin/index.scss" as tMagicForm;
7
+ @use "../../theme.scss";
8
+
9
+ .fade-enter-active,
10
+ .fade-leave-active {
11
+ transition: opacity 0.5s;
12
+ }
13
+ .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
14
+ opacity: 0;
15
+ }
16
+
17
+ // 仅作用于编辑器内部 DOM 的具体样式仍保留「双类」,避免误中 portal 上只挂 `m-theme--*`
18
+ // 的节点。
19
+ .m-editor.m-editor--magic-admin {
20
+ // 主题级 CSS 变量入口:想覆盖 nav 高度等 token 时,改这里一行即可;
21
+ // 走 CSS 级联,运行时切主题(换 `.m-editor--magic-admin` class)即可即时生效,
22
+ // 不受 SCSS `@use` 加载顺序限制。fallback 值定义在 common/var.scss,未启用主题
23
+ // 时自动回落 35px。
24
+ --editor-nav-height: 40px;
25
+
26
+ .m-editor-sidebar {
27
+ .m-editor-sidebar-header {
28
+ // padding: 8px 0;
29
+ width: 61px;
30
+ padding-top: 4px;
31
+ // sidebar 父容器是 `display: flex` (row),同级 `.m-editor-sidebar-content` 的 width
32
+ // 是 `calc(100% - 40px)`(sidebar.scss:52,40 是老 header 宽度)。当 header 改成 61px
33
+ // 后,两者之和会溢出 21px 左右,默认 `flex-shrink: 1` 会按权重压缩 header,最终渲染
34
+ // 出 56.3px 而非 61px。这里强制 `flex-shrink: 0` 让 header 守住宽度,多余的部分由
35
+ // content 侧承担(content 的 `100% - 40` 会自然让出)。
36
+ flex-shrink: 0;
37
+ border-right: 1px solid rgba(0, 84, 225, 0.1);
38
+ display: flex;
39
+ background-color: #fff;
40
+ box-sizing: border-box;
41
+ flex-direction: column;
42
+ align-items: center;
43
+ .m-editor-sidebar-header-item {
44
+ display: flex;
45
+ flex-direction: column;
46
+ align-items: center;
47
+ border-radius: 4px;
48
+ padding: 4px 2px;
49
+ width: 52px;
50
+ margin-bottom: 4px;
51
+ box-sizing: border-box;
52
+ background-color: transparent;
53
+ color: #84909d;
54
+ &:hover {
55
+ background-color: rgba(0, 0, 0, 0.05);
56
+ }
57
+ > i {
58
+ color: #84909d;
59
+ font-size: 20px;
60
+ }
61
+ &.is-active {
62
+ background-color: var(--el-button-hover-bg-color, rgb(230, 238, 253));
63
+ color: var(--el-color-primary);
64
+ &:hover {
65
+ background-color: var(
66
+ --el-button-hover-bg-color,
67
+ rgb(230, 238, 253)
68
+ );
69
+ }
70
+ > i {
71
+ color: var(--el-color-primary);
72
+ }
73
+ .magic-editor-tab-panel-title {
74
+ color: var(--el-color-primary);
75
+ }
76
+ }
77
+ .magic-editor-tab-panel-title {
78
+ font-size: 12px;
79
+ line-height: 14px;
80
+ font-weight: 400;
81
+ margin: 0 4px;
82
+ width: 52px;
83
+ text-align: center;
84
+ }
85
+ }
86
+ }
87
+ .m-editor-sidebar-content {
88
+ width: calc(100% - 61px);
89
+ }
90
+ }
91
+ .m-editor-props-panel .el-input__wrapper {
92
+ border-radius: 4px;
93
+ }
94
+
95
+ .border-box-container .border-icon-container .border-icon {
96
+ border-color: #ccc;
97
+ --unuse-border-style: solid;
98
+ &.configured {
99
+ border-color: var(--el-color-success, var(--td-success-color, #2ba471));
100
+ }
101
+
102
+ &.active {
103
+ border-color: var(--el-color-primary);
104
+ background-color: rgba(0, 84, 225, 0.1);
105
+ &.center {
106
+ border-width: 2px;
107
+ }
108
+ // 命中 `.border-icon-<side>` 时只保留该侧 2px,其余三边清零。
109
+ // 用 `@each` 循环避免四面手抄;后续要加禁用、hover 等状态也可以照搬这套结构。
110
+ @each $side in (top, right, bottom, left) {
111
+ &.border-icon-#{$side} {
112
+ border-width: 0;
113
+ border-#{$side}-width: 2px;
114
+ }
115
+ }
116
+ }
117
+
118
+ &.center {
119
+ border-width: 2px;
120
+ }
121
+ border-radius: 2px;
122
+ }
123
+
124
+ .m-container-code-select {
125
+ > .el-form-item:first-child {
126
+ > .el-form-item__label:first-child > :not(.m-form-tip) {
127
+ color: #111;
128
+ font-weight: 500;
129
+ font-size: 16px;
130
+ line-height: 24px;
131
+ }
132
+ }
133
+ }
134
+ }
135
+
136
+ .m-editor.m-theme--magic-admin {
137
+ .m-editor-props-form-panel-form {
138
+ > .m-container-tab {
139
+ > .tmagic-design-tabs {
140
+ > .el-tabs__content {
141
+ background-color: #fafafa;
142
+ border-radius: 8px;
143
+ padding-left: 16px;
144
+ padding-right: 16px;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ .m-editor.m-theme--magic-admin {
152
+ .m-fields-style-setter {
153
+ border: 0;
154
+ .tmagic-design-collapse-item {
155
+ .el-collapse-item__wrap {
156
+ padding: 16px;
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ .m-editor.m-theme--magic-admin {
163
+ .magic-right-panel-tabs-top {
164
+ > .el-tabs {
165
+ > .el-tabs__header {
166
+ .el-tabs__nav-wrap.is-top {
167
+ .el-tabs__nav.is-top {
168
+ .el-tabs__active-bar {
169
+ display: none;
170
+ }
171
+ .el-tabs__item {
172
+ &:not(:last-child)::after {
173
+ content: "";
174
+ position: absolute;
175
+ right: 0;
176
+ top: 50%;
177
+ transform: translateY(-50%);
178
+ height: 12px;
179
+ border-right: 1px solid #e6e6e6;
180
+ }
181
+ }
182
+ }
183
+ &::after {
184
+ display: none;
185
+ }
186
+ }
187
+ }
188
+ }
189
+ }
190
+ }
191
+
192
+ .m-editor.m-theme--magic-admin {
193
+ .m-editor-nav-menu {
194
+ .menu-right,
195
+ .menu-left {
196
+ > .menu-item {
197
+ > button {
198
+ color: #111;
199
+ }
200
+ }
201
+ }
202
+ .menu-item {
203
+ margin-right: 8px;
204
+ .el-button--small {
205
+ font-size: 14px;
206
+ }
207
+ > button {
208
+ > i {
209
+ font-size: 16px;
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
@@ -4,6 +4,6 @@
4
4
  margin-right: 3px;
5
5
  }
6
6
  span {
7
- color: #2882e0;
7
+ color: var(--el-color-primary, #2882e0);
8
8
  }
9
9
  }
package/src/type.ts CHANGED
@@ -140,6 +140,7 @@ export type BeforeAdd = (config: MNode, parent: MContainer) => Promise<MNode> |
140
140
  export type GetConfig = (config: FormConfig) => Promise<FormConfig> | FormConfig;
141
141
 
142
142
  export interface EditorInstallOptions {
143
+ flat?: boolean;
143
144
  parseDSL: <T = any>(dsl: string) => T;
144
145
  customCreateMonacoEditor: (
145
146
  monaco: typeof import('monaco-editor'),
@@ -1338,17 +1339,37 @@ export interface EditorUpdateChangeItem {
1338
1339
  page: StoreState['page'];
1339
1340
  }
1340
1341
 
1342
+ /** {@link EditorEvents.change} 各操作类型共有的历史相关字段。 */
1343
+ export interface EditorChangeEventHistoryMeta {
1344
+ /**
1345
+ * 本次变更的「历史来源」(调用 DSL 操作时传入的 {@link HistoryOpOptions.historySource},
1346
+ * 撤销 / 重做时则为被应用 step 上记录的 `source`),未携带时为 undefined。
1347
+ */
1348
+ historySource?: HistoryOpSource;
1349
+ /**
1350
+ * 本次操作是否未写入历史记录(即调用时传入的 {@link HistoryOpOptions.doNotPushHistory},缺省为 false);
1351
+ * 撤销 / 重做路径补发的事件恒为 true(撤销/重做本身不再入栈)。
1352
+ */
1353
+ doNotPushHistory?: boolean;
1354
+ }
1355
+
1341
1356
  /**
1342
1357
  * {@link EditorEvents.change} 的回调参数:以 `type` 区分操作类型,并携带对应的操作内容。
1343
1358
  * `data` 为本次变更的节点列表,每项包含 node 及其所属的 page(可能为 null);
1344
- * `move-layer` 额外带层级偏移 `offset`,`drag-to` 额外带目标位置 `targetIndex` / `targetParent`。
1359
+ * `move-layer` 额外带层级偏移 `offset`,`drag-to` 额外带目标位置 `targetIndex` / `targetParent`;
1360
+ * 历史相关字段(historySource / doNotPushHistory)见 {@link EditorChangeEventHistoryMeta}。
1345
1361
  */
1346
1362
  export type EditorChangeEvent =
1347
- | { type: 'add'; data: EditorChangeItem[] }
1348
- | { type: 'remove'; data: EditorChangeItem[] }
1349
- | { type: 'update'; data: EditorUpdateChangeItem[] }
1350
- | { type: 'move-layer'; data: EditorChangeItem[]; offset: number | LayerOffset }
1351
- | { type: 'drag-to'; data: EditorChangeItem[]; targetIndex: number; targetParent: MContainer };
1363
+ | ({ type: 'add'; data: EditorChangeItem[] } & EditorChangeEventHistoryMeta)
1364
+ | ({ type: 'remove'; data: EditorChangeItem[] } & EditorChangeEventHistoryMeta)
1365
+ | ({ type: 'update'; data: EditorUpdateChangeItem[] } & EditorChangeEventHistoryMeta)
1366
+ | ({ type: 'move-layer'; data: EditorChangeItem[]; offset: number | LayerOffset } & EditorChangeEventHistoryMeta)
1367
+ | ({
1368
+ type: 'drag-to';
1369
+ data: EditorChangeItem[];
1370
+ targetIndex: number;
1371
+ targetParent: MContainer;
1372
+ } & EditorChangeEventHistoryMeta);
1352
1373
  // #endregion EditorChangeEvent
1353
1374
 
1354
1375
  export interface HistoryEvents {
@@ -16,14 +16,22 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
+ import { ref } from 'vue';
20
+
19
21
  import { EditorInstallOptions } from '@editor/type';
20
22
 
21
23
  let $TMAGIC_EDITOR: EditorInstallOptions = {} as any;
22
24
 
25
+ // 用 ref 持有 flat 全局开关:const 引用本身不可变,符合 `import/no-mutable-exports`;
26
+ // 通过 `.value` 改值仍保持模块级响应式语义,与 editor/plugin.ts、design/index.ts 里
27
+ // 的同名变量写法对齐。
28
+ const isGlobalFlat = ref(false);
29
+
23
30
  const setEditorConfig = (option: EditorInstallOptions): void => {
24
31
  $TMAGIC_EDITOR = option;
32
+ isGlobalFlat.value = option.flat ?? false;
25
33
  };
26
34
 
27
35
  const getEditorConfig = <K extends keyof EditorInstallOptions>(key: K): EditorInstallOptions[K] => $TMAGIC_EDITOR[key];
28
36
 
29
- export { getEditorConfig, setEditorConfig };
37
+ export { getEditorConfig, isGlobalFlat, setEditorConfig };
@@ -5,10 +5,11 @@ export const LEFT_COLUMN_WIDTH_STORAGE_KEY = '$MagicEditorLeftColumnWidthData';
5
5
  export const RIGHT_COLUMN_WIDTH_STORAGE_KEY = '$MagicEditorRightColumnWidthData';
6
6
  export const PROPS_PANEL_WIDTH_STORAGE_KEY = '$MagicEditorPropsPanelWidthData';
7
7
 
8
- export const DEFAULT_LEFT_COLUMN_WIDTH = 310;
8
+ export const DEFAULT_LEFT_COLUMN_WIDTH = 345;
9
9
  export const DEFAULT_RIGHT_COLUMN_WIDTH = 480;
10
10
 
11
- export const MIN_LEFT_COLUMN_WIDTH = 200;
11
+ // 2026-06-11 设计稿修改,固定左侧栏存在时最小宽度为 345
12
+ export const MIN_LEFT_COLUMN_WIDTH = 345;
12
13
  export const MIN_CENTER_COLUMN_WIDTH = 400;
13
14
  export const MIN_RIGHT_COLUMN_WIDTH = 300;
14
15
 
@@ -180,6 +180,7 @@ export const advancedTabConfig: TabPaneConfig = {
180
180
  name: NODE_DISABLE_CODE_BLOCK_KEY,
181
181
  text: '禁用代码块',
182
182
  type: 'switch',
183
+ labelPosition: 'left',
183
184
  defaultValue: false,
184
185
  extra: '开启后,配置的代码块将不会被执行',
185
186
  },
@@ -187,15 +188,16 @@ export const advancedTabConfig: TabPaneConfig = {
187
188
  name: NODE_DISABLE_DATA_SOURCE_KEY,
188
189
  text: '禁用数据源',
189
190
  type: 'switch',
191
+ labelPosition: 'left',
190
192
  defaultValue: false,
191
193
  extra: '开启后,组件内配置的数据源相关配置将不会被编译,显隐条件将失效',
192
194
  },
193
195
  {
194
196
  name: 'created',
195
- text: 'created',
197
+ text: 'Created',
196
198
  labelPosition: 'top',
197
199
  type: 'code-select',
198
- extra: '组件初始化时执行',
200
+ titleExtra: '组件初始化时执行',
199
201
  rules: [
200
202
  { typeMatch: true, trigger: 'change' },
201
203
  {
@@ -210,10 +212,10 @@ export const advancedTabConfig: TabPaneConfig = {
210
212
  },
211
213
  {
212
214
  name: 'mounted',
213
- text: 'mounted',
215
+ text: 'Mounted',
214
216
  labelPosition: 'top',
215
217
  type: 'code-select',
216
- extra: '组件挂载到dom时执行',
218
+ titleExtra: '组件挂载到dom时执行',
217
219
  rules: [
218
220
  { typeMatch: true, trigger: 'change' },
219
221
  {
@@ -228,8 +230,8 @@ export const advancedTabConfig: TabPaneConfig = {
228
230
  },
229
231
  {
230
232
  name: 'display',
231
- text: 'display',
232
- extra: '控制组件是否渲染,关系的代码块返回值为false时不渲染',
233
+ text: 'Display',
234
+ titleExtra: '控制组件是否渲染,关系的代码块返回值为false时不渲染',
233
235
  labelPosition: 'top',
234
236
  type: 'code-select',
235
237
  rules: [
@@ -263,10 +265,17 @@ export const displayTabConfig: TabPaneConfig<DisplayCondsConfig> = {
263
265
  extra: (_state, { model }) =>
264
266
  `条件成立时${model[NODE_CONDS_RESULT_KEY] ? '隐藏' : '显示'},不成立时${model[NODE_CONDS_RESULT_KEY] ? '显示' : '隐藏'};<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系);<br />条件为空时表示成立;`,
265
267
  },
268
+ {
269
+ text: '条件组配置',
270
+ static: true,
271
+ className: 'display-conds-title',
272
+ },
266
273
  {
267
274
  type: 'display-conds',
268
275
  name: NODE_CONDS_KEY,
269
276
  titlePrefix: '条件组',
277
+ fixed: 'right',
278
+ operateColWidth: 112,
270
279
  defaultValue: [],
271
280
  rules: [{ typeMatch: true }],
272
281
  },
@@ -303,10 +312,13 @@ export const fillConfig = (
303
312
  name: 'id',
304
313
  text: 'ID',
305
314
  type: 'text',
306
- disabled: true,
315
+ // 走纯文本渲染,避免出现 disabled 的灰底输入框;append 仍正常显示。
316
+ static: true,
317
+
307
318
  append: {
308
- type: 'button',
309
- text: '复制',
319
+ type: 'icon',
320
+ text: 'https://vip.image.video.qpic.cn/vupload/20260615/36cf7e1781493669935.svg',
321
+ extra: '复制',
310
322
  handler: (vm, { model }) => {
311
323
  navigator.clipboard
312
324
  .writeText(`${model.id}`)
@@ -339,6 +351,7 @@ export const fillConfig = (
339
351
  const tabConfig: TabConfig = {
340
352
  type: 'tab',
341
353
  labelWidth,
354
+ className: 'magic-right-panel-tabs-top',
342
355
  items: [
343
356
  {
344
357
  title: '属性',