@zhangqingcq/vgce 0.1.4 → 0.1.5
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/package.json
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
<!--左侧工具栏-->
|
2
2
|
<script lang="ts" setup>
|
3
|
+
import { isEmpty } from 'lodash-es'
|
3
4
|
import { ElCollapse, ElCollapseItem, ElIcon, ElMessage } from 'element-plus'
|
4
5
|
import type { IConfig, IConfigItem } from '@/config/types'
|
5
6
|
import { pinia } from '@/hooks'
|
@@ -23,7 +24,16 @@
|
|
23
24
|
'echarts'
|
24
25
|
])
|
25
26
|
const createBegin = (svg_item: IConfigItem) => {
|
26
|
-
globalStore.setCreateInfo(svg_item)
|
27
|
+
globalStore.setCreateInfo(sortProps(svg_item))
|
28
|
+
}
|
29
|
+
|
30
|
+
const sortProps = (svg_item: IConfigItem): IConfigItem => {
|
31
|
+
if (svg_item?.props && !isEmpty(svg_item.props)) {
|
32
|
+
Object.keys(svg_item.props).forEach((k, i) => {
|
33
|
+
svg_item.props[k].sort = String(i)
|
34
|
+
})
|
35
|
+
}
|
36
|
+
return svg_item
|
27
37
|
}
|
28
38
|
const dragEndEvent = (e: DragEvent) => {
|
29
39
|
//拖动时记录拖动的svg信息
|
@@ -21,6 +21,38 @@
|
|
21
21
|
code: false
|
22
22
|
})
|
23
23
|
|
24
|
+
const _objInfo = computed(() => {
|
25
|
+
const keys: Record<string, any> = {}
|
26
|
+
let l = 0
|
27
|
+
let t = []
|
28
|
+
for (let k of Object.keys(props.objInfo)) {
|
29
|
+
const s = props.objInfo[k]?.sort
|
30
|
+
if (s) {
|
31
|
+
const _s = Number(s)
|
32
|
+
if (_s > l) {
|
33
|
+
l = _s
|
34
|
+
}
|
35
|
+
}
|
36
|
+
if (s) {
|
37
|
+
keys[s] = k
|
38
|
+
} else {
|
39
|
+
return Object.keys(props.objInfo).map((k) => ({
|
40
|
+
...props.objInfo[k],
|
41
|
+
_key: k
|
42
|
+
}))
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
for (let i = 0; i < l + 1; i++) {
|
47
|
+
const _i = String(i)
|
48
|
+
t.push({
|
49
|
+
...props.objInfo[keys[_i]],
|
50
|
+
_key: keys[_i]
|
51
|
+
})
|
52
|
+
}
|
53
|
+
return t
|
54
|
+
})
|
55
|
+
|
24
56
|
function propsChangeHandle(e: any) {
|
25
57
|
let t: any = window.setTimeout(function () {
|
26
58
|
emit('change', e)
|
@@ -31,19 +63,19 @@
|
|
31
63
|
</script>
|
32
64
|
|
33
65
|
<template>
|
34
|
-
<div v-for="
|
66
|
+
<div v-for="attr_item in _objInfo" :key="attr_item._key">
|
35
67
|
<!--表单项上显示的灰色值-->
|
36
68
|
<el-form-item v-if="props.code" class="props-row" size="small">
|
37
69
|
<template #label>
|
38
70
|
<el-tooltip
|
39
|
-
:content="String(
|
40
|
-
v-if="getStringWidth(String(
|
71
|
+
:content="String(attr_item._key)"
|
72
|
+
v-if="getStringWidth(String(attr_item._key)) > 78"
|
41
73
|
placement="left"
|
42
74
|
popper-class="props-popper"
|
43
75
|
>
|
44
|
-
<div class="one-row-txt" style="width: 78px">{{
|
76
|
+
<div class="one-row-txt" style="width: 78px">{{ attr_item._key }}</div>
|
45
77
|
</el-tooltip>
|
46
|
-
<span v-else>{{
|
78
|
+
<span v-else>{{ attr_item._key }}</span>
|
47
79
|
</template>
|
48
80
|
<el-tooltip
|
49
81
|
:content="JSON.stringify(attr_item.val)"
|
@@ -56,10 +88,10 @@
|
|
56
88
|
<span v-else>{{ attr_item.val }}</span>
|
57
89
|
</el-form-item>
|
58
90
|
<!--props-->
|
59
|
-
<el-form-item :label="attr_item.title" size="small" v-if="props.hide.indexOf(String(
|
91
|
+
<el-form-item :label="attr_item.title" size="small" v-if="props.hide.indexOf(String(attr_item._key)) < 0">
|
60
92
|
<el-select
|
61
93
|
v-if="attr_item.type === EConfigItemPropsType.Select"
|
62
|
-
v-model="attr_item.val"
|
94
|
+
v-model="props.objInfo[attr_item._key].val"
|
63
95
|
placeholder="Select"
|
64
96
|
size="small"
|
65
97
|
:disabled="Boolean(attr_item?.disabled)"
|
@@ -69,19 +101,19 @@
|
|
69
101
|
</el-select>
|
70
102
|
<el-input-number
|
71
103
|
v-else-if="attr_item.type === EConfigItemPropsType.InputNumber"
|
72
|
-
v-model="attr_item.val"
|
104
|
+
v-model="props.objInfo[attr_item._key].val"
|
73
105
|
:disabled="Boolean(attr_item?.disabled)"
|
74
106
|
@change="propsChangeHandle"
|
75
107
|
/>
|
76
108
|
<el-input
|
77
109
|
v-else-if="attr_item.type === EConfigItemPropsType.Input"
|
78
|
-
v-model="attr_item.val"
|
110
|
+
v-model="props.objInfo[attr_item._key].val"
|
79
111
|
:disabled="Boolean(attr_item?.disabled)"
|
80
112
|
@change="propsChangeHandle"
|
81
113
|
/>
|
82
114
|
<el-input
|
83
115
|
v-else-if="attr_item.type === EConfigItemPropsType.Textarea"
|
84
|
-
v-model="attr_item.val"
|
116
|
+
v-model="props.objInfo[attr_item._key].val"
|
85
117
|
autosize
|
86
118
|
type="textarea"
|
87
119
|
:disabled="Boolean(attr_item?.disabled)"
|
@@ -89,19 +121,19 @@
|
|
89
121
|
/>
|
90
122
|
<el-color-picker
|
91
123
|
v-else-if="attr_item.type === EConfigItemPropsType.Color"
|
92
|
-
v-model="attr_item.val"
|
124
|
+
v-model="props.objInfo[attr_item._key].val"
|
93
125
|
:disabled="Boolean(attr_item?.disabled)"
|
94
126
|
@change="propsChangeHandle"
|
95
127
|
/>
|
96
128
|
<el-switch
|
97
129
|
v-else-if="attr_item.type === EConfigItemPropsType.Switch"
|
98
|
-
v-model="attr_item.val"
|
130
|
+
v-model="props.objInfo[attr_item._key].val"
|
99
131
|
:disabled="Boolean(attr_item?.disabled)"
|
100
132
|
@change="propsChangeHandle"
|
101
133
|
/>
|
102
134
|
<code-edit-modal
|
103
135
|
v-else-if="attr_item.type === EConfigItemPropsType.JsonEdit"
|
104
|
-
v-model="attr_item.val"
|
136
|
+
v-model="props.objInfo[attr_item._key].val"
|
105
137
|
:disabled="Boolean(attr_item?.disabled)"
|
106
138
|
@close="propsChangeHandle"
|
107
139
|
/>
|
@@ -119,8 +151,4 @@
|
|
119
151
|
.props-popper {
|
120
152
|
max-width: 350px;
|
121
153
|
}
|
122
|
-
sdf {
|
123
|
-
color: rgb(245, 247, 250);
|
124
|
-
background-color: rgb(92, 184, 122);
|
125
|
-
}
|
126
154
|
</style>
|