@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 +35 -6
- package/dist/tmagic-editor.js +73 -49
- package/dist/tmagic-editor.umd.cjs +72 -48
- package/package.json +7 -7
- package/src/components/ToolButton.vue +13 -6
- package/src/fields/DisplayConds.vue +2 -2
- package/src/fields/StyleSetter/Index.vue +1 -1
- package/src/fields/StyleSetter/components/Box.vue +1 -1
- package/src/fields/StyleSetter/components/Position.vue +1 -1
- package/src/layouts/sidebar/ComponentListPanel.vue +15 -6
- package/src/services/editor.ts +1 -2
- package/src/theme/nav-menu.scss +6 -0
- package/src/theme/style-setter/background.scss +10 -3
- package/src/utils/props.ts +1 -0
- package/types/index.d.ts +11 -10
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 .
|
|
170
|
+
.m-form .tmagic-design-table .cell > div.m-form-container {
|
|
160
171
|
display: block;
|
|
161
172
|
}
|
|
162
|
-
.m-form .
|
|
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 .
|
|
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 .
|
|
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 .
|
|
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(
|
|
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;
|
package/dist/tmagic-editor.js
CHANGED
|
@@ -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,
|
|
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:
|
|
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:
|
|
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 = ["
|
|
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
|
-
|
|
7388
|
-
"
|
|
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
|
-
|
|
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, ["
|
|
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
|
-
|
|
8693
|
-
|
|
8694
|
-
|
|
8695
|
-
|
|
8696
|
-
|
|
8697
|
-
|
|
8698
|
-
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
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
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8728
|
-
|
|
8729
|
-
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
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 =
|
|
12309
|
-
|
|
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
|
-
|
|
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, ["
|
|
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:
|
|
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:
|
|
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 = ["
|
|
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.
|
|
12181
|
-
"
|
|
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
|
-
|
|
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, ["
|
|
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
|
-
|
|
13486
|
-
|
|
13487
|
-
|
|
13488
|
-
|
|
13489
|
-
|
|
13490
|
-
vue.
|
|
13491
|
-
|
|
13492
|
-
|
|
13493
|
-
|
|
13494
|
-
|
|
13495
|
-
|
|
13496
|
-
|
|
13497
|
-
|
|
13498
|
-
|
|
13499
|
-
|
|
13500
|
-
|
|
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
|
-
|
|
13512
|
-
|
|
13513
|
-
|
|
13514
|
-
|
|
13515
|
-
|
|
13516
|
-
vue.
|
|
13517
|
-
|
|
13518
|
-
|
|
13519
|
-
|
|
13520
|
-
|
|
13521
|
-
|
|
13522
|
-
|
|
13523
|
-
|
|
13524
|
-
|
|
13525
|
-
|
|
13526
|
-
|
|
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.
|
|
17102
|
-
|
|
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
|
-
|
|
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, ["
|
|
17259
|
+
}, 8, ["modelValue"])
|
|
17236
17260
|
])
|
|
17237
17261
|
]),
|
|
17238
17262
|
_: 3
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "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.
|
|
62
|
-
"@tmagic/
|
|
63
|
-
"@tmagic/
|
|
64
|
-
"@tmagic/
|
|
65
|
-
"@tmagic/
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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:
|
|
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:
|
|
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"
|
|
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>
|
|
@@ -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"
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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;
|
package/src/services/editor.ts
CHANGED
|
@@ -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
|
*/
|
package/src/theme/nav-menu.scss
CHANGED
|
@@ -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
|
-
.
|
|
10
|
-
& + .
|
|
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(
|
|
31
|
+
background-color: var($theme-color);
|
|
25
32
|
&::after {
|
|
26
33
|
border: 1px solid #fff;
|
|
27
34
|
}
|
package/src/utils/props.ts
CHANGED
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[];
|