@tmagic/editor 1.6.1 → 1.7.0-beta.0

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/style.css CHANGED
@@ -119,6 +119,17 @@
119
119
  display: inline-flex;
120
120
  }
121
121
 
122
+ .m-form-container.has-tip {
123
+ display: flex;
124
+ align-items: baseline;
125
+ }
126
+ .m-form-container.has-tip .tmagic-design-form-item {
127
+ flex: 1;
128
+ }
129
+ .m-form-container .tmagic-design-form-item.show-diff {
130
+ background: #f7dadd;
131
+ }
132
+
122
133
  .m-form-dialog .el-dialog__body {
123
134
  padding: 0 !important;
124
135
  }
@@ -156,18 +167,27 @@
156
167
  max-width: 50%;
157
168
  height: 100%;
158
169
  }
159
- .m-form .el-table .cell > div.m-form-container {
170
+ .m-form .tmagic-design-table .cell > div.m-form-container {
160
171
  display: block;
161
172
  }
162
- .m-form .el-tabs {
173
+ .m-form .tmagic-design-table .cell > div.m-form-container.has-tip {
174
+ display: flex;
175
+ }
176
+ .m-form .tmagic-design-tabs {
163
177
  margin-bottom: 10px;
164
178
  }
165
- .m-form .el-form-item.tmagic-form-hidden > .el-form-item__label {
179
+ .m-form .tmagic-design-form-item.tmagic-form-hidden > .el-form-item__label {
166
180
  display: none;
167
181
  }
168
182
  .m-form .t-form__item.tmagic-form-hidden > .t-form__label {
169
183
  display: none;
170
184
  }
185
+ .m-form .t-form__item.tmagic-form-hidden > .t-form__controls {
186
+ margin-left: 0 !important;
187
+ }
188
+ .m-form.t-form:not(.t-form-inline) .t-form__item:last-of-type {
189
+ margin-bottom: var(--td-comp-margin-xxl);
190
+ }
171
191
 
172
192
  .magic-datetime-picker-popper .el-picker-panel__footer button:first-child {
173
193
  display: none;
@@ -437,6 +457,7 @@ fieldset.m-fieldset .m-form-tip {
437
457
  }
438
458
  .m-editor-nav-menu > div {
439
459
  display: flex;
460
+ gap: 3px;
440
461
  height: 100%;
441
462
  z-index: 1;
442
463
  align-items: center;
@@ -485,6 +506,10 @@ fieldset.m-fieldset .m-form-tip {
485
506
  .m-editor-nav-menu .menu-item.rule .el-icon {
486
507
  transform: rotate(-90deg);
487
508
  }
509
+ .m-editor-nav-menu .menu-item .t-button {
510
+ padding-left: 1px;
511
+ padding-right: 1px;
512
+ }
488
513
 
489
514
  .m-editor {
490
515
  display: flex;
@@ -1762,12 +1787,16 @@ fieldset.m-fieldset .m-form-tip {
1762
1787
  width: 80px;
1763
1788
  height: auto;
1764
1789
  }
1765
- .background-position-container .presets-value-list .el-button + .el-button {
1790
+ .background-position-container .presets-value-list .tmagic-design-button + .tmagic-design-button {
1766
1791
  margin-left: 2px;
1767
1792
  }
1768
- .background-position-container .presets-value-list .el-button:nth-child(3n+1) {
1793
+ .background-position-container .presets-value-list .tmagic-design-button:nth-child(3n+1) {
1769
1794
  margin-left: 0 !important;
1770
1795
  }
1796
+ .background-position-container .presets-value-list .t-button--variant-text {
1797
+ padding-left: 2px;
1798
+ padding-right: 2px;
1799
+ }
1771
1800
  .background-position-container .presets-value-list .position-icon {
1772
1801
  position: relative;
1773
1802
  width: 14px;
@@ -1775,7 +1804,7 @@ fieldset.m-fieldset .m-form-tip {
1775
1804
  border: 1px solid #1d1f24;
1776
1805
  }
1777
1806
  .background-position-container .presets-value-list .position-icon.active {
1778
- background-color: var(--el-color-primary);
1807
+ background-color: var(#2882e0);
1779
1808
  }
1780
1809
  .background-position-container .presets-value-list .position-icon.active::after {
1781
1810
  border: 1px solid #fff;
@@ -7,7 +7,7 @@ export { default as formPlugin } from '@tmagic/form';
7
7
  import tablePlugin__default, { MagicTable } from '@tmagic/table';
8
8
  export * from '@tmagic/table';
9
9
  export { default as tablePlugin } from '@tmagic/table';
10
- import { defineComponent, createBlock, createElementBlock, openBlock, unref, withCtx, createVNode, createElementVNode, normalizeClass, resolveDynamicComponent, toRaw, ref, useTemplateRef, watch, onMounted, onBeforeUnmount, onUnmounted, Teleport, normalizeStyle, createCommentVNode, nextTick, computed, reactive, resolveComponent, inject, Fragment, renderList, mergeProps, mergeModels, useModel, provide, renderSlot, toDisplayString, shallowReactive, createTextVNode, isRef, createStaticVNode, watchEffect, markRaw, withDirectives, vModelText, vShow, shallowRef, withModifiers, toHandlers, createSlots, getCurrentInstance, Transition, resolveDirective, mergeDefaults } from 'vue';
10
+ import { defineComponent, createBlock, createElementBlock, openBlock, unref, withCtx, createVNode, createElementVNode, normalizeClass, resolveDynamicComponent, toRaw, ref, useTemplateRef, watch, onMounted, onBeforeUnmount, onUnmounted, Teleport, normalizeStyle, createCommentVNode, nextTick, computed, reactive, resolveComponent, inject, Fragment, renderList, mergeProps, mergeModels, useModel, provide, renderSlot, toDisplayString, shallowReactive, createTextVNode, isRef, createStaticVNode, watchEffect, markRaw, withDirectives, vShow, shallowRef, withModifiers, createSlots, toHandlers, getCurrentInstance, Transition, resolveDirective, mergeDefaults } from 'vue';
11
11
  import { Edit, FullScreen, View, Close, Coin, Delete, Plus, Grid, ArrowDown, ArrowLeftBold, ArrowRightBold, Files, Search, DocumentCopy, CaretBottom, Memo, ScaleToOriginal, ZoomOut, ZoomIn, Right, Back, Document, Sugar, ArrowRight, CopyDocument, Hide, EditPen, List, Goods, CloseBold, Top, Bottom } from '@element-plus/icons-vue';
12
12
  import { throttle, isEmpty, isObject, cloneDeep, mergeWith, uniq, get, map, has, pick, keys } from 'lodash-es';
13
13
  import serialize from 'serialize-javascript';
@@ -2161,6 +2161,7 @@ class Editor extends BaseService {
2161
2161
  }
2162
2162
  /**
2163
2163
  * 更新节点
2164
+ * update后会触发依赖收集,收集完后会掉stage.update方法
2164
2165
  * @param config 新的节点配置,配置中需要有id信息
2165
2166
  * @returns 更新后的节点配置
2166
2167
  */
@@ -6216,7 +6217,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
6216
6217
  {
6217
6218
  type: "table",
6218
6219
  name: "cond",
6219
- operateColWidth: 100,
6220
+ operateColWidth: 80,
6220
6221
  enableToggleMode: false,
6221
6222
  items: [
6222
6223
  parentFields.value.length ? {
@@ -6250,7 +6251,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
6250
6251
  type: "cond-op-select",
6251
6252
  parentFields: parentFields.value,
6252
6253
  label: "条件",
6253
- width: 160,
6254
+ width: 140,
6254
6255
  name: "op"
6255
6256
  },
6256
6257
  {
@@ -7311,7 +7312,7 @@ const _hoisted_2$c = {
7311
7312
  class: "help-txt"
7312
7313
  };
7313
7314
  const _hoisted_3$5 = { class: "next-input" };
7314
- const _hoisted_4$4 = ["onUpdate:modelValue", "title", "disabled", "onChange"];
7315
+ const _hoisted_4$4 = ["model-value", "title", "disabled", "onChange"];
7315
7316
  const _sfc_main$W = /* @__PURE__ */ defineComponent({
7316
7317
  __name: "Box",
7317
7318
  props: {
@@ -7384,15 +7385,13 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
7384
7385
  /* TEXT */
7385
7386
  )) : createCommentVNode("v-if", true),
7386
7387
  createElementVNode("span", _hoisted_3$5, [
7387
- withDirectives(createElementVNode("input", {
7388
- "onUpdate:modelValue": ($event) => __props.model[item.name] = $event,
7388
+ createElementVNode("input", {
7389
+ "model-value": __props.model[item.name],
7389
7390
  placeholder: "0",
7390
7391
  title: __props.model[item.name],
7391
7392
  disabled: __props.disabled,
7392
7393
  onChange: ($event) => change($event, item.name)
7393
- }, null, 40, _hoisted_4$4), [
7394
- [vModelText, __props.model[item.name]]
7395
- ])
7394
+ }, null, 40, _hoisted_4$4)
7396
7395
  ])
7397
7396
  ],
7398
7397
  2
@@ -8129,7 +8128,8 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8129
8128
  return (_ctx, _cache) => {
8130
8129
  return openBlock(), createBlock(unref(TMagicCollapse), {
8131
8130
  class: "m-fields-style-setter",
8132
- "model-value": collapseValue.value
8131
+ modelValue: collapseValue.value,
8132
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => collapseValue.value = $event)
8133
8133
  }, {
8134
8134
  default: withCtx(() => [
8135
8135
  (openBlock(), createElementBlock(
@@ -8167,7 +8167,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8167
8167
  ]),
8168
8168
  _: 1
8169
8169
  /* STABLE */
8170
- }, 8, ["model-value"]);
8170
+ }, 8, ["modelValue"]);
8171
8171
  };
8172
8172
  }
8173
8173
  });
@@ -8688,23 +8688,31 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
8688
8688
  size: "small",
8689
8689
  link: "",
8690
8690
  disabled: disabled.value
8691
- }, {
8692
- default: withCtx(() => [
8693
- __props.data.icon ? (openBlock(), createBlock(_sfc_main$1r, {
8694
- key: 0,
8695
- icon: __props.data.icon
8696
- }, null, 8, ["icon"])) : createCommentVNode("v-if", true),
8697
- createElementVNode(
8698
- "span",
8699
- null,
8700
- toDisplayString(__props.data.text),
8701
- 1
8702
- /* TEXT */
8703
- )
8704
- ]),
8705
- _: 1
8706
- /* STABLE */
8707
- }, 8, ["disabled"])
8691
+ }, createSlots({
8692
+ _: 2
8693
+ /* DYNAMIC */
8694
+ }, [
8695
+ __props.data.icon ? {
8696
+ name: "icon",
8697
+ fn: withCtx(() => [
8698
+ createVNode(_sfc_main$1r, {
8699
+ icon: __props.data.icon
8700
+ }, null, 8, ["icon"])
8701
+ ]),
8702
+ key: "0"
8703
+ } : void 0,
8704
+ __props.data.text ? {
8705
+ name: "default",
8706
+ fn: withCtx(() => [
8707
+ createTextVNode(
8708
+ toDisplayString(__props.data.text),
8709
+ 1
8710
+ /* TEXT */
8711
+ )
8712
+ ]),
8713
+ key: "1"
8714
+ } : void 0
8715
+ ]), 1032, ["disabled"])
8708
8716
  ]),
8709
8717
  _: 1
8710
8718
  /* STABLE */
@@ -8714,23 +8722,31 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
8714
8722
  link: "",
8715
8723
  disabled: disabled.value,
8716
8724
  title: __props.data.text
8717
- }, {
8718
- default: withCtx(() => [
8719
- __props.data.icon ? (openBlock(), createBlock(_sfc_main$1r, {
8720
- key: 0,
8721
- icon: __props.data.icon
8722
- }, null, 8, ["icon"])) : createCommentVNode("v-if", true),
8723
- createElementVNode(
8724
- "span",
8725
- null,
8726
- toDisplayString(__props.data.text),
8727
- 1
8728
- /* TEXT */
8729
- )
8730
- ]),
8731
- _: 1
8732
- /* STABLE */
8733
- }, 8, ["disabled", "title"]))
8725
+ }, createSlots({
8726
+ _: 2
8727
+ /* DYNAMIC */
8728
+ }, [
8729
+ __props.data.icon ? {
8730
+ name: "icon",
8731
+ fn: withCtx(() => [
8732
+ createVNode(_sfc_main$1r, {
8733
+ icon: __props.data.icon
8734
+ }, null, 8, ["icon"])
8735
+ ]),
8736
+ key: "0"
8737
+ } : void 0,
8738
+ __props.data.text ? {
8739
+ name: "default",
8740
+ fn: withCtx(() => [
8741
+ createTextVNode(
8742
+ toDisplayString(__props.data.text),
8743
+ 1
8744
+ /* TEXT */
8745
+ )
8746
+ ]),
8747
+ key: "1"
8748
+ } : void 0
8749
+ ]), 1032, ["disabled", "title"]))
8734
8750
  ],
8735
8751
  64
8736
8752
  /* STABLE_FRAGMENT */
@@ -12305,8 +12321,15 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
12305
12321
  items: group.items.filter((item) => item.text.includes(searchText.value))
12306
12322
  }))
12307
12323
  );
12308
- const collapseValue = computed(
12309
- () => Array(list.value?.length).fill(1).map((x, i) => `${i}`)
12324
+ const collapseValue = ref();
12325
+ watch(
12326
+ list,
12327
+ () => {
12328
+ collapseValue.value = Array(list.value?.length).fill(1).map((x, i) => `${i}`);
12329
+ },
12330
+ {
12331
+ immediate: true
12332
+ }
12310
12333
  );
12311
12334
  let timeout;
12312
12335
  let clientX;
@@ -12364,7 +12387,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
12364
12387
  renderSlot(_ctx.$slots, "component-list", { componentGroupList: list.value }, () => [
12365
12388
  createVNode(unref(TMagicCollapse), {
12366
12389
  class: "ui-component-panel",
12367
- "model-value": collapseValue.value
12390
+ modelValue: collapseValue.value,
12391
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => collapseValue.value = $event)
12368
12392
  }, {
12369
12393
  default: withCtx(() => [
12370
12394
  (openBlock(true), createElementBlock(
@@ -12439,7 +12463,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
12439
12463
  ]),
12440
12464
  _: 3
12441
12465
  /* FORWARDED */
12442
- }, 8, ["model-value"])
12466
+ }, 8, ["modelValue"])
12443
12467
  ])
12444
12468
  ]),
12445
12469
  _: 3
@@ -6954,6 +6954,7 @@
6954
6954
  }
6955
6955
  /**
6956
6956
  * 更新节点
6957
+ * update后会触发依赖收集,收集完后会掉stage.update方法
6957
6958
  * @param config 新的节点配置,配置中需要有id信息
6958
6959
  * @returns 更新后的节点配置
6959
6960
  */
@@ -11009,7 +11010,7 @@
11009
11010
  {
11010
11011
  type: "table",
11011
11012
  name: "cond",
11012
- operateColWidth: 100,
11013
+ operateColWidth: 80,
11013
11014
  enableToggleMode: false,
11014
11015
  items: [
11015
11016
  parentFields.value.length ? {
@@ -11043,7 +11044,7 @@
11043
11044
  type: "cond-op-select",
11044
11045
  parentFields: parentFields.value,
11045
11046
  label: "条件",
11046
- width: 160,
11047
+ width: 140,
11047
11048
  name: "op"
11048
11049
  },
11049
11050
  {
@@ -12104,7 +12105,7 @@
12104
12105
  class: "help-txt"
12105
12106
  };
12106
12107
  const _hoisted_3$5 = { class: "next-input" };
12107
- const _hoisted_4$4 = ["onUpdate:modelValue", "title", "disabled", "onChange"];
12108
+ const _hoisted_4$4 = ["model-value", "title", "disabled", "onChange"];
12108
12109
  const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
12109
12110
  __name: "Box",
12110
12111
  props: {
@@ -12177,15 +12178,13 @@
12177
12178
  /* TEXT */
12178
12179
  )) : vue.createCommentVNode("v-if", true),
12179
12180
  vue.createElementVNode("span", _hoisted_3$5, [
12180
- vue.withDirectives(vue.createElementVNode("input", {
12181
- "onUpdate:modelValue": ($event) => __props.model[item.name] = $event,
12181
+ vue.createElementVNode("input", {
12182
+ "model-value": __props.model[item.name],
12182
12183
  placeholder: "0",
12183
12184
  title: __props.model[item.name],
12184
12185
  disabled: __props.disabled,
12185
12186
  onChange: ($event) => change($event, item.name)
12186
- }, null, 40, _hoisted_4$4), [
12187
- [vue.vModelText, __props.model[item.name]]
12188
- ])
12187
+ }, null, 40, _hoisted_4$4)
12189
12188
  ])
12190
12189
  ],
12191
12190
  2
@@ -12922,7 +12921,8 @@
12922
12921
  return (_ctx, _cache) => {
12923
12922
  return vue.openBlock(), vue.createBlock(vue.unref(designPlugin.TMagicCollapse), {
12924
12923
  class: "m-fields-style-setter",
12925
- "model-value": collapseValue.value
12924
+ modelValue: collapseValue.value,
12925
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => collapseValue.value = $event)
12926
12926
  }, {
12927
12927
  default: vue.withCtx(() => [
12928
12928
  (vue.openBlock(), vue.createElementBlock(
@@ -12960,7 +12960,7 @@
12960
12960
  ]),
12961
12961
  _: 1
12962
12962
  /* STABLE */
12963
- }, 8, ["model-value"]);
12963
+ }, 8, ["modelValue"]);
12964
12964
  };
12965
12965
  }
12966
12966
  });
@@ -13481,23 +13481,31 @@
13481
13481
  size: "small",
13482
13482
  link: "",
13483
13483
  disabled: disabled.value
13484
- }, {
13485
- default: vue.withCtx(() => [
13486
- __props.data.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$1r, {
13487
- key: 0,
13488
- icon: __props.data.icon
13489
- }, null, 8, ["icon"])) : vue.createCommentVNode("v-if", true),
13490
- vue.createElementVNode(
13491
- "span",
13492
- null,
13493
- vue.toDisplayString(__props.data.text),
13494
- 1
13495
- /* TEXT */
13496
- )
13497
- ]),
13498
- _: 1
13499
- /* STABLE */
13500
- }, 8, ["disabled"])
13484
+ }, vue.createSlots({
13485
+ _: 2
13486
+ /* DYNAMIC */
13487
+ }, [
13488
+ __props.data.icon ? {
13489
+ name: "icon",
13490
+ fn: vue.withCtx(() => [
13491
+ vue.createVNode(_sfc_main$1r, {
13492
+ icon: __props.data.icon
13493
+ }, null, 8, ["icon"])
13494
+ ]),
13495
+ key: "0"
13496
+ } : void 0,
13497
+ __props.data.text ? {
13498
+ name: "default",
13499
+ fn: vue.withCtx(() => [
13500
+ vue.createTextVNode(
13501
+ vue.toDisplayString(__props.data.text),
13502
+ 1
13503
+ /* TEXT */
13504
+ )
13505
+ ]),
13506
+ key: "1"
13507
+ } : void 0
13508
+ ]), 1032, ["disabled"])
13501
13509
  ]),
13502
13510
  _: 1
13503
13511
  /* STABLE */
@@ -13507,23 +13515,31 @@
13507
13515
  link: "",
13508
13516
  disabled: disabled.value,
13509
13517
  title: __props.data.text
13510
- }, {
13511
- default: vue.withCtx(() => [
13512
- __props.data.icon ? (vue.openBlock(), vue.createBlock(_sfc_main$1r, {
13513
- key: 0,
13514
- icon: __props.data.icon
13515
- }, null, 8, ["icon"])) : vue.createCommentVNode("v-if", true),
13516
- vue.createElementVNode(
13517
- "span",
13518
- null,
13519
- vue.toDisplayString(__props.data.text),
13520
- 1
13521
- /* TEXT */
13522
- )
13523
- ]),
13524
- _: 1
13525
- /* STABLE */
13526
- }, 8, ["disabled", "title"]))
13518
+ }, vue.createSlots({
13519
+ _: 2
13520
+ /* DYNAMIC */
13521
+ }, [
13522
+ __props.data.icon ? {
13523
+ name: "icon",
13524
+ fn: vue.withCtx(() => [
13525
+ vue.createVNode(_sfc_main$1r, {
13526
+ icon: __props.data.icon
13527
+ }, null, 8, ["icon"])
13528
+ ]),
13529
+ key: "0"
13530
+ } : void 0,
13531
+ __props.data.text ? {
13532
+ name: "default",
13533
+ fn: vue.withCtx(() => [
13534
+ vue.createTextVNode(
13535
+ vue.toDisplayString(__props.data.text),
13536
+ 1
13537
+ /* TEXT */
13538
+ )
13539
+ ]),
13540
+ key: "1"
13541
+ } : void 0
13542
+ ]), 1032, ["disabled", "title"]))
13527
13543
  ],
13528
13544
  64
13529
13545
  /* STABLE_FRAGMENT */
@@ -17098,8 +17114,15 @@
17098
17114
  items: group.items.filter((item) => item.text.includes(searchText.value))
17099
17115
  }))
17100
17116
  );
17101
- const collapseValue = vue.computed(
17102
- () => Array(list.value?.length).fill(1).map((x, i) => `${i}`)
17117
+ const collapseValue = vue.ref();
17118
+ vue.watch(
17119
+ list,
17120
+ () => {
17121
+ collapseValue.value = Array(list.value?.length).fill(1).map((x, i) => `${i}`);
17122
+ },
17123
+ {
17124
+ immediate: true
17125
+ }
17103
17126
  );
17104
17127
  let timeout;
17105
17128
  let clientX;
@@ -17157,7 +17180,8 @@
17157
17180
  vue.renderSlot(_ctx.$slots, "component-list", { componentGroupList: list.value }, () => [
17158
17181
  vue.createVNode(vue.unref(designPlugin.TMagicCollapse), {
17159
17182
  class: "ui-component-panel",
17160
- "model-value": collapseValue.value
17183
+ modelValue: collapseValue.value,
17184
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => collapseValue.value = $event)
17161
17185
  }, {
17162
17186
  default: vue.withCtx(() => [
17163
17187
  (vue.openBlock(true), vue.createElementBlock(
@@ -17232,7 +17256,7 @@
17232
17256
  ]),
17233
17257
  _: 3
17234
17258
  /* FORWARDED */
17235
- }, 8, ["model-value"])
17259
+ }, 8, ["modelValue"])
17236
17260
  ])
17237
17261
  ]),
17238
17262
  _: 3
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.6.1",
2
+ "version": "1.7.0-beta.0",
3
3
  "name": "@tmagic/editor",
4
4
  "type": "module",
5
5
  "sideEffects": [
@@ -58,11 +58,11 @@
58
58
  "moveable": "^0.53.0",
59
59
  "serialize-javascript": "^6.0.2",
60
60
  "sortablejs": "^1.15.6",
61
- "@tmagic/design": "1.6.1",
62
- "@tmagic/table": "1.6.1",
63
- "@tmagic/form": "1.6.1",
64
- "@tmagic/utils": "1.6.1",
65
- "@tmagic/stage": "1.6.1"
61
+ "@tmagic/design": "1.7.0-beta.0",
62
+ "@tmagic/form": "1.7.0-beta.0",
63
+ "@tmagic/utils": "1.7.0-beta.0",
64
+ "@tmagic/stage": "1.7.0-beta.0",
65
+ "@tmagic/table": "1.7.0-beta.0"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@types/events": "^3.0.3",
@@ -76,7 +76,7 @@
76
76
  "monaco-editor": "^0.48.0",
77
77
  "typescript": "^5.9.3",
78
78
  "vue": "^3.5.22",
79
- "@tmagic/core": "1.6.1"
79
+ "@tmagic/core": "1.7.0-beta.0"
80
80
  },
81
81
  "peerDependenciesMeta": {
82
82
  "typescript": {
@@ -12,13 +12,20 @@
12
12
 
13
13
  <template v-else-if="data.type === 'button'">
14
14
  <TMagicTooltip v-if="data.tooltip" effect="dark" placement="bottom-start" :content="data.tooltip">
15
- <TMagicButton size="small" link :disabled="disabled"
16
- ><MIcon v-if="data.icon" :icon="data.icon"></MIcon><span>{{ data.text }}</span></TMagicButton
17
- >
15
+ <TMagicButton size="small" link :disabled="disabled">
16
+ <template #icon v-if="data.icon">
17
+ <MIcon :icon="data.icon"></MIcon>
18
+ </template>
19
+ <template #default v-if="data.text">{{ data.text }}</template>
20
+ </TMagicButton>
18
21
  </TMagicTooltip>
19
- <TMagicButton v-else size="small" link :disabled="disabled" :title="data.text"
20
- ><MIcon v-if="data.icon" :icon="data.icon"></MIcon><span>{{ data.text }}</span></TMagicButton
21
- >
22
+
23
+ <TMagicButton v-else size="small" link :disabled="disabled" :title="data.text">
24
+ <template #icon v-if="data.icon">
25
+ <MIcon :icon="data.icon"></MIcon>
26
+ </template>
27
+ <template #default v-if="data.text">{{ data.text }}</template>
28
+ </TMagicButton>
22
29
  </template>
23
30
 
24
31
  <TMagicDropdown
@@ -55,7 +55,7 @@ const config = computed<GroupListConfig>(() => ({
55
55
  {
56
56
  type: 'table',
57
57
  name: 'cond',
58
- operateColWidth: 100,
58
+ operateColWidth: 80,
59
59
  enableToggleMode: false,
60
60
  items: [
61
61
  parentFields.value.length
@@ -93,7 +93,7 @@ const config = computed<GroupListConfig>(() => ({
93
93
  type: 'cond-op-select',
94
94
  parentFields: parentFields.value,
95
95
  label: '条件',
96
- width: 160,
96
+ width: 140,
97
97
  name: 'op',
98
98
  },
99
99
  {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <TMagicCollapse class="m-fields-style-setter" :model-value="collapseValue">
2
+ <TMagicCollapse class="m-fields-style-setter" v-model="collapseValue">
3
3
  <template v-for="(item, index) in list" :key="index">
4
4
  <TMagicCollapseItem :name="`${index}`">
5
5
  <template #title><MIcon :icon="Grid"></MIcon>{{ item.title }}</template>
@@ -4,7 +4,7 @@
4
4
  <span class="help-txt" v-if="item.text">{{ item.text }}</span>
5
5
  <span class="next-input">
6
6
  <input
7
- v-model="model[item.name]"
7
+ :model-value="model[item.name]"
8
8
  placeholder="0"
9
9
  :title="model[item.name]"
10
10
  :disabled="disabled"
@@ -3,7 +3,7 @@
3
3
  <div v-for="(item, index) in list" :key="index" :class="item.class">
4
4
  <span class="next-input">
5
5
  <input
6
- v-model="model[item.name]"
6
+ :model-value="model[item.name]"
7
7
  placeholder="0"
8
8
  :title="model[item.name]"
9
9
  :disabled="disabled"
@@ -5,7 +5,7 @@
5
5
  <SearchInput @search="filterTextChangeHandler"></SearchInput>
6
6
 
7
7
  <slot name="component-list" :component-group-list="list">
8
- <TMagicCollapse class="ui-component-panel" :model-value="collapseValue">
8
+ <TMagicCollapse class="ui-component-panel" v-model="collapseValue">
9
9
  <template v-for="(group, index) in list">
10
10
  <TMagicCollapseItem v-if="group.items && group.items.length" :key="index" :name="`${index}`">
11
11
  <template #title><MIcon :icon="Grid"></MIcon>{{ group.title }}</template>
@@ -34,7 +34,7 @@
34
34
  </template>
35
35
 
36
36
  <script lang="ts" setup>
37
- import { computed, inject, ref } from 'vue';
37
+ import { computed, inject, ref, watch } from 'vue';
38
38
  import { Grid } from '@element-plus/icons-vue';
39
39
  import serialize from 'serialize-javascript';
40
40
 
@@ -74,10 +74,19 @@ const list = computed<ComponentGroup[]>(() =>
74
74
  items: group.items.filter((item: ComponentItem) => item.text.includes(searchText.value)),
75
75
  })),
76
76
  );
77
- const collapseValue = computed(() =>
78
- Array(list.value?.length)
79
- .fill(1)
80
- .map((x, i) => `${i}`),
77
+
78
+ const collapseValue = ref();
79
+
80
+ watch(
81
+ list,
82
+ () => {
83
+ collapseValue.value = Array(list.value?.length)
84
+ .fill(1)
85
+ .map((x, i) => `${i}`);
86
+ },
87
+ {
88
+ immediate: true,
89
+ },
81
90
  );
82
91
 
83
92
  let timeout: ReturnType<typeof setTimeout> | undefined;
@@ -574,8 +574,6 @@ class Editor extends BaseService {
574
574
  nodes.splice(targetIndex, 1, newConfig);
575
575
  this.set('nodes', [...nodes]);
576
576
 
577
- // update后会触发依赖收集,收集完后会掉stage.update方法
578
-
579
577
  if (isPage(newConfig) || isPageFragment(newConfig)) {
580
578
  this.set('page', newConfig as MPage | MPageFragment);
581
579
  }
@@ -591,6 +589,7 @@ class Editor extends BaseService {
591
589
 
592
590
  /**
593
591
  * 更新节点
592
+ * update后会触发依赖收集,收集完后会掉stage.update方法
594
593
  * @param config 新的节点配置,配置中需要有id信息
595
594
  * @returns 更新后的节点配置
596
595
  */
@@ -18,6 +18,7 @@
18
18
 
19
19
  > div {
20
20
  display: flex;
21
+ gap: 3px;
21
22
  height: 100%;
22
23
  z-index: 1;
23
24
  align-items: center;
@@ -76,5 +77,10 @@
76
77
  transform: rotate(-90deg);
77
78
  }
78
79
  }
80
+
81
+ .t-button {
82
+ padding-left: 1px;
83
+ padding-right: 1px;
84
+ }
79
85
  }
80
86
  }
@@ -1,3 +1,5 @@
1
+ @use "../common/var" as *;
2
+
1
3
  .background-position-container {
2
4
  display: flex;
3
5
  width: 100%;
@@ -6,8 +8,8 @@
6
8
  flex-wrap: wrap;
7
9
  width: 80px;
8
10
  height: auto;
9
- .el-button {
10
- & + .el-button {
11
+ .tmagic-design-button {
12
+ & + .tmagic-design-button {
11
13
  margin-left: 2px;
12
14
  }
13
15
  &:nth-child(3n + 1) {
@@ -15,13 +17,18 @@
15
17
  }
16
18
  }
17
19
 
20
+ .t-button--variant-text {
21
+ padding-left: 2px;
22
+ padding-right: 2px;
23
+ }
24
+
18
25
  .position-icon {
19
26
  position: relative;
20
27
  width: 14px;
21
28
  height: 14px;
22
29
  border: 1px solid #1d1f24;
23
30
  &.active {
24
- background-color: var(--el-color-primary);
31
+ background-color: var($theme-color);
25
32
  &::after {
26
33
  border: 1px solid #fff;
27
34
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
1
2
  /*
2
3
  * Tencent is pleased to support the open source community by making TMagicEditor available.
3
4
  *
package/types/index.d.ts CHANGED
@@ -449,6 +449,7 @@ declare class Editor extends export_default {
449
449
  }>;
450
450
  /**
451
451
  * 更新节点
452
+ * update后会触发依赖收集,收集完后会掉stage.update方法
452
453
  * @param config 新的节点配置,配置中需要有id信息
453
454
  * @returns 更新后的节点配置
454
455
  */
@@ -2669,12 +2670,12 @@ declare const __VLS_base$9: _vue_runtime_core.DefineComponent<__VLS_Props$g, {
2669
2670
  filter: (text: string | string[]) => void;
2670
2671
  deleteCode: (id: string) => Promise<void>;
2671
2672
  }, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, {
2672
- "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
2673
2673
  remove: (id: string) => any;
2674
+ "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
2674
2675
  edit: (id: string) => any;
2675
2676
  }, string, _vue_runtime_core.PublicProps, Readonly<__VLS_Props$g> & Readonly<{
2676
- "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
2677
2677
  onRemove?: ((id: string) => any) | undefined;
2678
+ "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
2678
2679
  onEdit?: ((id: string) => any) | undefined;
2679
2680
  }>, {}, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, false, {}, any>;
2680
2681
  declare const __VLS_export$h: __VLS_WithSlots$9<typeof __VLS_base$9, __VLS_Slots$9>;
@@ -3729,20 +3730,20 @@ type __VLS_Props$5 = {
3729
3730
  emptyText?: string;
3730
3731
  };
3731
3732
  declare const __VLS_base$1: _vue_runtime_core.DefineComponent<__VLS_Props$5, {}, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, {
3732
- "node-click": (event: MouseEvent, data: TreeNodeData) => any;
3733
- "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
3734
3733
  "node-dragstart": (event: DragEvent, data: TreeNodeData) => any;
3735
3734
  "node-dragleave": (event: DragEvent, data: TreeNodeData) => any;
3736
3735
  "node-dragend": (event: DragEvent, data: TreeNodeData) => any;
3736
+ "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
3737
3737
  "node-mouseenter": (event: MouseEvent, data: TreeNodeData) => any;
3738
+ "node-click": (event: MouseEvent, data: TreeNodeData) => any;
3738
3739
  "node-dragover": (event: DragEvent) => any;
3739
3740
  }, string, _vue_runtime_core.PublicProps, Readonly<__VLS_Props$5> & Readonly<{
3740
- "onNode-click"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3741
- "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3742
3741
  "onNode-dragstart"?: ((event: DragEvent, data: TreeNodeData) => any) | undefined;
3743
3742
  "onNode-dragleave"?: ((event: DragEvent, data: TreeNodeData) => any) | undefined;
3744
3743
  "onNode-dragend"?: ((event: DragEvent, data: TreeNodeData) => any) | undefined;
3744
+ "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3745
3745
  "onNode-mouseenter"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3746
+ "onNode-click"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3746
3747
  "onNode-dragover"?: ((event: DragEvent) => any) | undefined;
3747
3748
  }>, {
3748
3749
  emptyText: string;
@@ -3777,19 +3778,19 @@ type __VLS_Props$4 = {
3777
3778
  nextLevelIndentIncrement?: number;
3778
3779
  };
3779
3780
  declare const __VLS_base: _vue_runtime_core.DefineComponent<__VLS_Props$4, {}, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, {
3780
- "node-click": (event: MouseEvent, data: TreeNodeData) => any;
3781
- "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
3782
3781
  "node-dragstart": (event: DragEvent, data: TreeNodeData) => any;
3783
3782
  "node-dragleave": (event: DragEvent, data: TreeNodeData) => any;
3784
3783
  "node-dragend": (event: DragEvent, data: TreeNodeData) => any;
3784
+ "node-contextmenu": (event: MouseEvent, data: TreeNodeData) => any;
3785
3785
  "node-mouseenter": (event: MouseEvent, data: TreeNodeData) => any;
3786
+ "node-click": (event: MouseEvent, data: TreeNodeData) => any;
3786
3787
  }, string, _vue_runtime_core.PublicProps, Readonly<__VLS_Props$4> & Readonly<{
3787
- "onNode-click"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3788
- "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3789
3788
  "onNode-dragstart"?: ((event: DragEvent, data: TreeNodeData) => any) | undefined;
3790
3789
  "onNode-dragleave"?: ((event: DragEvent, data: TreeNodeData) => any) | undefined;
3791
3790
  "onNode-dragend"?: ((event: DragEvent, data: TreeNodeData) => any) | undefined;
3791
+ "onNode-contextmenu"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3792
3792
  "onNode-mouseenter"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3793
+ "onNode-click"?: ((event: MouseEvent, data: TreeNodeData) => any) | undefined;
3793
3794
  }>, {
3794
3795
  indent: number;
3795
3796
  parentsId: Id[];