@zhangqingcq/vgce 0.0.27 → 0.0.28

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 (73) hide show
  1. package/dist/style.css +2 -2
  2. package/dist/vgce.js +9271 -8810
  3. package/dist/vgce.umd.cjs +206 -98
  4. package/package.json +7 -7
  5. package/src/assets/svgs/alert-light.svg +39 -0
  6. package/src/assets/svgs/bot-9.svg +94 -0
  7. package/src/assets/svgs/common-table.svg +1 -7
  8. package/src/assets/svgs/el-button.svg +1 -10
  9. package/src/assets/svgs/hamburger.svg +1 -0
  10. package/src/assets/svgs/hotpot.svg +1 -0
  11. package/src/assets/svgs/now-time.svg +1 -9
  12. package/src/assets/svgs/pie-charts.svg +1 -10
  13. package/src/assets/svgs/progress-a.svg +1 -1
  14. package/src/assets/svgs/svg-text.svg +1 -1
  15. package/src/assets/svgs/switch-on.svg +12 -0
  16. package/src/assets/svgs/switch-r.svg +14 -0
  17. package/src/assets/svgs/thermometer.svg +22 -0
  18. package/src/assets/svgs/thermometer2.svg +16 -0
  19. package/src/components/config/index.ts +11 -0
  20. package/src/components/svg-editor/{center-panel/index.vue → center-panel.vue} +14 -8
  21. package/src/components/svg-editor/{handle-panel/index.vue → handle-panel.vue} +10 -0
  22. package/src/components/svg-editor/index.vue +8 -7
  23. package/src/components/svg-editor/{left-panel/index.vue → left-panel.vue} +2 -2
  24. package/src/components/svg-editor/right-panel/code-edit-modal.vue +2 -2
  25. package/src/components/svg-editor/right-panel/common-animate.vue +1 -1
  26. package/src/components/svg-editor/right-panel/dynamic-el-form-item.vue +22 -0
  27. package/src/components/svg-editor/right-panel/list.vue +1 -1
  28. package/src/components/svg-editor/{right-panel/index.vue → right-panel.vue} +47 -31
  29. package/src/components/svg-editor/{top-panel/index.vue → top-panel.vue} +11 -3
  30. package/src/components/{svg-viewer/index.vue → svg-viewer.vue} +8 -6
  31. package/src/config/files/common-table.vue +48 -48
  32. package/src/config/files/now-time.vue +71 -52
  33. package/src/config/files/pie-charts.vue +72 -71
  34. package/src/config/files/svg-text.vue +17 -37
  35. package/src/config/files/switch-r.vue +72 -0
  36. package/src/config/index.ts +2 -2
  37. package/src/config/svg/animation/index.ts +2 -2
  38. package/src/config/svg/{stateless/alternator.ts → animation/thermometer.ts} +4 -11
  39. package/src/config/svg/custom/index.ts +2 -2
  40. package/src/config/svg/custom/svg-text.ts +25 -1
  41. package/src/config/svg/custom/{switch-a.ts → switch-r.ts} +4 -4
  42. package/src/config/svg/stateful/alert-light.ts +33 -0
  43. package/src/config/svg/stateful/index.ts +2 -2
  44. package/src/config/svg/stateless/{house.ts → bot-9.ts} +3 -3
  45. package/src/config/svg/stateless/{sheet-border.ts → hamburger.ts} +3 -3
  46. package/src/config/svg/{stateful/circuit-breaker.ts → stateless/hotpot.ts} +4 -20
  47. package/src/config/svg/stateless/index.ts +4 -4
  48. package/src/config/types.ts +2 -9
  49. package/src/config/vue/component/button.ts +1 -1
  50. package/src/config/vue/component/common-table.ts +7 -7
  51. package/src/config/vue/component/now-time.ts +36 -2
  52. package/src/config/vue/component/progress.ts +2 -2
  53. package/src/index.ts +12 -12
  54. package/src/utils/index.ts +36 -37
  55. package/src/views/Preview.vue +1 -1
  56. package/src/assets/svgs/alternator.svg +0 -8
  57. package/src/assets/svgs/circuit-breaker.svg +0 -11
  58. package/src/assets/svgs/house.svg +0 -1
  59. package/src/assets/svgs/package.svg +0 -1
  60. package/src/assets/svgs/reservoir.svg +0 -10
  61. package/src/assets/svgs/sheet-border.svg +0 -1
  62. package/src/assets/svgs/switch-a.svg +0 -5
  63. package/src/components/svg-editor/center-panel/types.ts +0 -11
  64. package/src/config/files/switch-a.vue +0 -43
  65. package/src/config/svg/animation/reservoir.ts +0 -32
  66. /package/src/components/{ace-edit/index.ts → ace-edit.ts} +0 -0
  67. /package/src/components/{svg-analysis/index.vue → svg-analysis.vue} +0 -0
  68. /package/src/components/svg-editor/{component-tree/index.vue → component-tree.vue} +0 -0
  69. /package/src/components/svg-editor/{connection-line/index.vue → connection-line.vue} +0 -0
  70. /package/src/components/svg-editor/{connection-panel/index.vue → connection-panel.vue} +0 -0
  71. /package/src/components/svg-editor/{export-json/index.vue → export-json.vue} +0 -0
  72. /package/src/components/svg-editor/{import-json/index.vue → import-json.vue} +0 -0
  73. /package/src/components/{vue3-ruler-tool/index.vue → vue3-ruler-tool.vue} +0 -0
@@ -1,52 +1,71 @@
1
- <script setup lang="ts">
2
- const props = defineProps({
3
- fontColor: {
4
- type: String,
5
- default: '#000000'
6
- }
7
- })
8
- const now_date = ref(new Date())
9
- const timer = ref()
10
- const date = computed(() => {
11
- const year = now_date.value.getFullYear()
12
- const month = now_date.value.getMonth() + 1
13
- const day = now_date.value.getDate()
14
- const time = year.toString() + '' + month.toString() + '' + day.toString() + '日'
15
- return time
16
- })
17
- const week = computed(() => {
18
- const d = now_date.value.getDay()
19
- const weekday = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
20
- const time = weekday[d]
21
- return time
22
- })
23
- const time = computed(() => {
24
- const hour = now_date.value.getHours()
25
- const minute = now_date.value.getMinutes()
26
- const second = now_date.value.getSeconds()
27
- const time =
28
- (hour < 10 ? '0' + hour.toString() : hour.toString()) +
29
- ':' +
30
- (minute < 10 ? '0' + minute.toString() : minute.toString()) +
31
- ':' +
32
- (second < 10 ? '0' + second.toString() : second.toString())
33
- return time
34
- })
35
- onMounted(() => {
36
- timer.value = setInterval(() => {
37
- now_date.value = new Date() // 修改数据date
38
- }, 500)
39
- })
40
- onUnmounted(() => {
41
- clearInterval(timer.value)
42
- })
43
- </script>
44
- <template>
45
- <div>
46
- <div class="text-12px font-bold" :style="{ color: props.fontColor }">{{ date }}</div>
47
- <div class="flex mt-5px">
48
- <div class="text-12px font-bold" :style="{ color: props.fontColor }">{{ week }}</div>
49
- <div class="text-12px font-bold ml-5px" :style="{ color: props.fontColor }">{{ time }}</div>
50
- </div>
51
- </div>
52
- </template>
1
+ <script setup lang="ts">
2
+ const props = defineProps<{
3
+ width: number
4
+ fontFamily: string
5
+ color: string
6
+ fontSize: number
7
+ bold: boolean
8
+ }>()
9
+
10
+ const styles = computed(() => ({
11
+ fontFamily: props.fontFamily,
12
+ color: props.color,
13
+ fontSize: props.fontSize + 'px',
14
+ fontWeight: props.bold ? 'bold' : 'normal'
15
+ }))
16
+
17
+ const now_date = ref(new Date())
18
+ const timer = ref()
19
+ const date = computed(() => {
20
+ const year = now_date.value.getFullYear()
21
+ const month = now_date.value.getMonth() + 1
22
+ const day = now_date.value.getDate()
23
+ return year.toString() + '年' + month.toString() + '月' + day.toString() + '日'
24
+ })
25
+ const week = computed(() => {
26
+ const d = now_date.value.getDay()
27
+ const weekday = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
28
+ return weekday[d]
29
+ })
30
+ const time = computed(() => {
31
+ const hour = now_date.value.getHours()
32
+ const minute = now_date.value.getMinutes()
33
+ const second = now_date.value.getSeconds()
34
+ return (
35
+ (hour < 10 ? '0' + hour.toString() : hour.toString()) +
36
+ ':' +
37
+ (minute < 10 ? '0' + minute.toString() : minute.toString()) +
38
+ ':' +
39
+ (second < 10 ? '0' + second.toString() : second.toString())
40
+ )
41
+ })
42
+
43
+ onMounted(() => {
44
+ timer.value = setInterval(() => {
45
+ now_date.value = new Date() // 修改数据date
46
+ }, 500)
47
+ })
48
+ onUnmounted(() => {
49
+ clearInterval(timer.value)
50
+ })
51
+ </script>
52
+ <template>
53
+ <div class="now-time" :style="{ width: props.width + 'px' }">
54
+ <div :style="styles">{{ date }}</div>
55
+ <div class="flex mt-5px">
56
+ <div :style="styles">{{ week }}</div>
57
+ <div :style="styles">{{ time }}</div>
58
+ </div>
59
+ </div>
60
+ </template>
61
+ <style lang="less" scoped>
62
+ .now-time {
63
+ min-height: 40px;
64
+ min-width: 100px;
65
+ color: #c54e6a;
66
+
67
+ .flex {
68
+ justify-content: space-between;
69
+ }
70
+ }
71
+ </style>
@@ -1,71 +1,72 @@
1
- <script lang="ts" setup>
2
- import { use } from 'echarts/core'
3
- import { SVGRenderer } from 'echarts/renderers'
4
- import { PieChart } from 'echarts/charts'
5
- import { TitleComponent, TooltipComponent, LegendComponent } from 'echarts/components'
6
- import VChart, { THEME_KEY } from 'vue-echarts'
7
- use([SVGRenderer, PieChart, TitleComponent, TooltipComponent, LegendComponent])
8
-
9
- provide(THEME_KEY, 'dark')
10
-
11
- const props = defineProps({
12
- title: {
13
- type: String,
14
- default: '标题'
15
- },
16
- seriesName: {
17
- type: String,
18
- default: '详情'
19
- },
20
- seriesData: {
21
- type: Array,
22
- default: () => []
23
- }
24
- })
25
-
26
- const option = reactive({
27
- title: {
28
- text: props.title,
29
- left: 'center'
30
- },
31
- tooltip: {
32
- trigger: 'item',
33
- formatter: '{a} <br/>{b} : {c} ({d}%)'
34
- },
35
- legend: {
36
- orient: 'vertical',
37
- left: 'left'
38
- },
39
- series: [
40
- {
41
- name: props.seriesName,
42
- type: 'pie',
43
- radius: '55%',
44
- center: ['50%', '60%'],
45
- data: props.seriesData,
46
- emphasis: {
47
- itemStyle: {
48
- shadowBlur: 10,
49
- shadowOffsetX: 0,
50
- shadowColor: 'rgba(0, 0, 0, 0.5)'
51
- }
52
- }
53
- }
54
- ]
55
- })
56
- watch(props, (new_val) => {
57
- option.title.text = new_val.title
58
- option.series[0].name = new_val.seriesName
59
- option.series[0].data = new_val.seriesData
60
- })
61
- </script>
62
-
63
- <template>
64
- <v-chart class="chart" :option="option" autoresize />
65
- </template>
66
-
67
- <style scoped>
68
- .chart {
69
- height: 400px;
70
- }
71
- </style>
1
+ <script lang="ts" setup>
2
+ import { use } from 'echarts/core'
3
+ import { SVGRenderer } from 'echarts/renderers'
4
+ import { PieChart } from 'echarts/charts'
5
+ import { TitleComponent, TooltipComponent, LegendComponent } from 'echarts/components'
6
+ import VChart, { THEME_KEY } from 'vue-echarts'
7
+ use([SVGRenderer, PieChart, TitleComponent, TooltipComponent, LegendComponent])
8
+
9
+ provide(THEME_KEY, 'dark')
10
+
11
+ const props = defineProps({
12
+ title: {
13
+ type: String,
14
+ default: '标题'
15
+ },
16
+ seriesName: {
17
+ type: String,
18
+ default: '详情'
19
+ },
20
+ seriesData: {
21
+ type: Array,
22
+ default: () => []
23
+ }
24
+ })
25
+
26
+ const option = reactive({
27
+ title: {
28
+ text: props.title,
29
+ left: 'center'
30
+ },
31
+ tooltip: {
32
+ trigger: 'item',
33
+ formatter: '{a} <br/>{b} : {c} ({d}%)'
34
+ },
35
+ legend: {
36
+ orient: 'vertical',
37
+ left: 'left'
38
+ },
39
+ series: [
40
+ {
41
+ name: props.seriesName,
42
+ type: 'pie',
43
+ radius: '55%',
44
+ center: ['50%', '60%'],
45
+ data: props.seriesData,
46
+ emphasis: {
47
+ itemStyle: {
48
+ shadowBlur: 10,
49
+ shadowOffsetX: 0,
50
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
51
+ }
52
+ }
53
+ }
54
+ ]
55
+ })
56
+ watch(props, (new_val) => {
57
+ option.title.text = new_val.title
58
+ option.series[0].name = new_val.seriesName
59
+ option.series[0].data = new_val.seriesData
60
+ })
61
+ </script>
62
+
63
+ <template>
64
+ <v-chart class="chart" :option="option" autoresize />
65
+ </template>
66
+
67
+ <style scoped>
68
+ .chart {
69
+ min-height: 300px;
70
+ min-width: 400px;
71
+ }
72
+ </style>
@@ -1,37 +1,17 @@
1
- <script setup lang="ts">
2
- // 文字的内容决定了长度 所以没办法预先定义中心点 导致连线有偏移
3
- const emit = defineEmits(['resize'])
4
-
5
- const props = defineProps({
6
- fontFamily: {
7
- type: String,
8
- default: ''
9
- },
10
- fontSize: {
11
- type: Number,
12
- default: 15
13
- },
14
- text: {
15
- type: String,
16
- default: ''
17
- },
18
- fill: {
19
- type: String,
20
- default: ''
21
- }
22
- })
23
-
24
- watch(
25
- () => [props.text, props.fontSize, props.fontFamily],
26
- () => {
27
- nextTick(function () {
28
- emit('resize')
29
- })
30
- }
31
- )
32
- </script>
33
- <template>
34
- <text x="50" y="55" :font-family="props.fontFamily" :font-size="props.fontSize" :fill="props.fill"
35
- >{{ props.text }}
36
- </text>
37
- </template>
1
+ <script setup lang="ts">
2
+ // 文字的内容决定了长度 所以没办法预先定义中心点 导致连线有偏移
3
+
4
+ const emit = defineEmits(['resize'])
5
+ const props = defineProps<{ text?: string; bold: boolean }>()
6
+ watch(
7
+ () => props.text,
8
+ () => {
9
+ nextTick(function () {
10
+ emit('resize')
11
+ })
12
+ }
13
+ )
14
+ </script>
15
+ <template>
16
+ <text x="50" y="55" :style="{ 'font-weight': props.bold ? 'bold' : 'normal' }">{{ props.text }}</text>
17
+ </template>
@@ -0,0 +1,72 @@
1
+ <script setup lang="ts">
2
+ const props = defineProps({
3
+ id: {
4
+ type: String,
5
+ default: ''
6
+ },
7
+ isOpen: {
8
+ type: Boolean,
9
+ default: true
10
+ }
11
+ })
12
+ const emit = defineEmits(['onChange'])
13
+ watch(
14
+ () => props.isOpen,
15
+ () => {
16
+ emit('onChange')
17
+ }
18
+ )
19
+ </script>
20
+ <template>
21
+ <g :id="props.id">
22
+ <symbol viewBox="0 0 1027 1024" :id="`${props.id}switch-demo-open`">
23
+ <path
24
+ d="M747.52 238.933333 H276.48 C122.88 238.933333 0 361.813333 0 512 s122.88 273.066667 276.48 273.066667 H750.933333 c150.186667 0 276.48-122.88 276.48-273.066667 s-126.293333-273.066667-279.893333-273.066667z"
25
+ fill="white"
26
+ fill-opacity=".01"
27
+ p-id="1537"
28
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i0.1adc3a81uCnBP5"
29
+ />
30
+ <path
31
+ d="M747.52 238.933333 H276.48 C122.88 238.933333 0 361.813333 0 512 s122.88 273.066667 276.48 273.066667 H750.933333 c150.186667 0 276.48-122.88 276.48-273.066667 s-126.293333-273.066667-279.893333-273.066667z m0 512 H276.48 C143.36 750.933333 34.133333 645.12 34.133333 512s109.226667-238.933333 242.346667-238.933333 H750.933333c133.12 0 242.346667 105.813333 242.346667 238.933333s-112.64 238.933333-245.76 238.933333z"
32
+ fill="#2c2c2c"
33
+ p-id="1531"
34
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i0.1adc3a81uCnBP5"
35
+ />
36
+ <path
37
+ d="M238.933333 409.6c-37.546667 0-68.266667 27.306667-68.266666 61.44v85.333333c0 34.133333 30.72 61.44 68.266666 61.44s68.266667-27.306667 68.266667-61.44v-85.333333c0-34.133333-30.72-61.44-68.266667-61.44z m34.133334 146.773333c0 13.653333-17.066667 23.893333-34.133334 23.893334s-34.133333-10.24-34.133333-27.306667v-85.333333c0-13.653333 17.066667-23.893333 34.133333-23.893334s34.133333 10.24 34.133334 27.306667v85.333333zM460.8 409.6c-10.24 0-17.066667 6.826667-17.066667 17.066667v109.226666l-71.68-119.466666c-3.413333-6.826667-10.24-10.24-20.48-6.826667-6.826667 3.413333-13.653333 10.24-13.653333 17.066667v170.666666c0 10.24 6.826667 17.066667 17.066667 17.066667s17.066667-6.826667 17.066666-17.066667v-109.226666l71.68 119.466666c3.413333 6.826667 10.24 6.826667 13.653334 6.826667h3.413333c6.826667-3.413333 13.653333-10.24 13.653333-17.066667v-170.666666c3.413333-10.24-3.413333-17.066667-13.653333-17.066667zM750.933333 341.333333c-95.573333 0-170.666667 75.093333-170.666666 170.666667s75.093333 170.666667 170.666666 170.666667 170.666667-75.093333 170.666667-170.666667-75.093333-170.666667-170.666667-170.666667z"
38
+ fill="#5ad562"
39
+ p-id="1530"
40
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i1.1adc3a81uCnBP5"
41
+ />
42
+ </symbol>
43
+ <symbol viewBox="0 0 1027 1024" :id="`${props.id}switch-demo-close`">
44
+ <path
45
+ d="M747.52 238.933333 H276.48 C122.88 238.933333 0 361.813333 0 512 s122.88 273.066667 276.48 273.066667 H750.933333 c150.186667 0 276.48-122.88 276.48-273.066667 s-126.293333-273.066667-279.893333-273.066667z"
46
+ fill="white"
47
+ fill-opacity=".01"
48
+ p-id="1536"
49
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i0.1adc3a81uCnBP5"
50
+ />
51
+ <path
52
+ d="M747.52 238.933333 H276.48 C122.88 238.933333 0 361.813333 0 512 s122.88 273.066667 276.48 273.066667 H750.933333 c150.186667 0 276.48-122.88 276.48-273.066667 s-126.293333-273.066667-279.893333-273.066667z m0 512 H276.48 C143.36 750.933333 34.133333 645.12 34.133333 512s109.226667-238.933333 242.346667-238.933333 H750.933333c133.12 0 242.346667 105.813333 242.346667 238.933333s-112.64 238.933333-245.76 238.933333z"
53
+ fill="#2c2c2c"
54
+ p-id="1535"
55
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i0.1adc3a81uCnBP5"
56
+ />
57
+ <path
58
+ d="M273.066667 341.333333c-95.573333 0-170.666667 75.093333-170.666667 170.666667s75.093333 170.666667 170.666667 170.666667 170.666667-75.093333 170.666666-170.666667-75.093333-170.666667-170.666666-170.666667z"
59
+ fill="#bfbfbf"
60
+ p-id="1534"
61
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i0.1adc3a81KYNNkt"
62
+ />
63
+ <path
64
+ d="M580.266667 409.6c-37.546667 0-68.266667 27.306667-68.266667 61.44v85.333333c0 34.133333 30.72 61.44 68.266667 61.44s68.266667-27.306667 68.266666-61.44v-85.333333c0-34.133333-30.72-61.44-68.266666-61.44z m34.133333 146.773333c0 13.653333-17.066667 27.306667-34.133333 27.306667s-34.133333-10.24-34.133334-27.306667v-85.333333c0-13.653333 17.066667-27.306667 34.133334-27.306667s34.133333 10.24 34.133333 27.306667v85.333333zM904.533333 409.6h-68.266666c-10.24 0-17.066667 6.826667-17.066667 17.066667v170.666666c0 10.24 6.826667 17.066667 17.066667 17.066667s17.066667-6.826667 17.066666-17.066667V512h17.066667c10.24 0 17.066667-6.826667 17.066667-17.066667s-6.826667-17.066667-17.066667-17.066666H853.333333v-34.133334h51.2c10.24 0 17.066667-6.826667 17.066667-17.066666s-6.826667-17.066667-17.066667-17.066667zM768 409.6h-68.266667c-10.24 0-17.066667 6.826667-17.066666 17.066667v170.666666c0 10.24 6.826667 17.066667 17.066666 17.066667s17.066667-6.826667 17.066667-17.066667V512h17.066667c10.24 0 17.066667-6.826667 17.066666-17.066667s-6.826667-17.066667-17.066666-17.066666H716.8v-34.133334h51.2c10.24 0 17.066667-6.826667 17.066667-17.066666s-6.826667-17.066667-17.066667-17.066667z"
65
+ fill="#707070"
66
+ p-id="1533"
67
+ data-spm-anchor-id="a313x.manage_type_myprojects.0.i2.1adc3a81KYNNkt"
68
+ />
69
+ </symbol>
70
+ <use :xlink:href="`#${props.id}switch-demo-${props.isOpen ? 'open' : 'close'}`" width="100" height="100" />
71
+ </g>
72
+ </template>
@@ -4,7 +4,7 @@ import { vue_config } from './vue'
4
4
 
5
5
  import { ElButton, ElTag } from 'element-plus'
6
6
  import Progress from '@/config/files/progress.vue'
7
- import SwitchA from '@/config/files/switch-a.vue'
7
+ import SwitchR from '@/config/files/switch-r.vue'
8
8
  import SvgText from '@/config/files/svg-text.vue'
9
9
  import CommonTable from '@/config/files/common-table.vue'
10
10
  import NowTime from '@/config/files/now-time.vue'
@@ -19,7 +19,7 @@ export const vueComp: Record<string, any> = {
19
19
  'el-tag': ElTag,
20
20
  'common-table': CommonTable,
21
21
  'pie-charts': PieCharts,
22
- 'switch-a': SwitchA,
22
+ 'switch-r': SwitchR,
23
23
  'now-time': NowTime,
24
24
  'light-a': LightA,
25
25
  'clock-a': ClockA
@@ -1,8 +1,8 @@
1
1
  import type { IConfigComponentGroup } from '../../types'
2
- import { reservoir } from './reservoir'
2
+ import { thermometer } from './thermometer'
3
3
 
4
4
  export const animation_group: IConfigComponentGroup = {
5
5
  groupType: 'have_animation',
6
6
  title: '动画SVG',
7
- list: [reservoir]
7
+ list: [thermometer]
8
8
  }
@@ -1,9 +1,8 @@
1
1
  import { EConfigItemPropsType, EDoneJsonType } from '@/config/types'
2
2
  import type { IConfigItem } from '@/config/types'
3
-
4
- export const alternator_svg_file: IConfigItem = {
5
- name: 'alternator',
6
- title: '发电机',
3
+ export const thermometer: IConfigItem = {
4
+ name: 'thermometer',
5
+ title: '温度计',
7
6
  type: EDoneJsonType.File,
8
7
  config: {
9
8
  can_zoom: true,
@@ -11,13 +10,7 @@ export const alternator_svg_file: IConfigItem = {
11
10
  actual_rect: true
12
11
  },
13
12
  display: true,
14
- props: {
15
- fill: {
16
- title: '填充色',
17
- type: EConfigItemPropsType.Color,
18
- val: '#00ff00'
19
- }
20
- },
13
+ props: {},
21
14
  common_animations: {
22
15
  val: '',
23
16
  delay: 'delay-0s',
@@ -1,11 +1,11 @@
1
1
  import type { IConfigComponentGroup } from '../../types'
2
2
  import { svg_text } from './svg-text'
3
- import { switch_a } from './switch-a'
3
+ import { switch_r } from './switch-r'
4
4
  import { light_a } from '@/config/svg/custom/light'
5
5
  import { clock_a } from '@/config/svg/custom/clock-a'
6
6
 
7
7
  export const custom_svg_group: IConfigComponentGroup = {
8
8
  groupType: 'custom_svg_group',
9
9
  title: 'SVG组件',
10
- list: [svg_text, switch_a, light_a, clock_a]
10
+ list: [svg_text, switch_r, light_a, clock_a]
11
11
  }
@@ -30,18 +30,42 @@ export const svg_text: IConfigItem = {
30
30
  {
31
31
  value: 'NSimSun',
32
32
  label: '新宋体'
33
+ },
34
+ {
35
+ value: 'KaiTi',
36
+ label: '楷体'
33
37
  }
34
38
  ]
35
39
  },
36
40
  fontSize: {
37
41
  title: '文字大小',
38
42
  type: EConfigItemPropsType.InputNumber,
39
- val: 15
43
+ val: 18
40
44
  },
41
45
  fill: {
42
46
  title: '文字颜色',
43
47
  type: EConfigItemPropsType.Color,
44
48
  val: '#000'
49
+ },
50
+ bold: {
51
+ title: '文字加粗',
52
+ type: EConfigItemPropsType.Switch,
53
+ val: false
54
+ },
55
+ writingMode: {
56
+ title: '文字朝向',
57
+ type: EConfigItemPropsType.Select,
58
+ val: 'horizontal-tb',
59
+ options: [
60
+ {
61
+ value: 'horizontal-tb',
62
+ label: '水平'
63
+ },
64
+ {
65
+ value: 'vertical-rl',
66
+ label: '垂直'
67
+ }
68
+ ]
45
69
  }
46
70
  },
47
71
  common_animations: {
@@ -1,10 +1,10 @@
1
1
  import { EConfigItemPropsType, EDoneJsonType } from '@/config/types'
2
2
  import type { IConfigItem } from '@/config/types'
3
3
 
4
- export const switch_a: IConfigItem = {
5
- name: 'switch-a',
4
+ export const switch_r: IConfigItem = {
5
+ name: 'switch-r',
6
6
  title: '开关',
7
- tag: 'switch-a',
7
+ tag: 'switch-r',
8
8
  type: EDoneJsonType.CustomSvg,
9
9
  display: true,
10
10
  config: {
@@ -16,7 +16,7 @@ export const switch_a: IConfigItem = {
16
16
  isOpen: {
17
17
  title: '开关',
18
18
  type: EConfigItemPropsType.Switch,
19
- val: true
19
+ val: false
20
20
  }
21
21
  },
22
22
  common_animations: {
@@ -0,0 +1,33 @@
1
+ import { EDoneJsonType } from '@/config/types'
2
+ import type { IConfigItem } from '@/config/types'
3
+
4
+ export const svg_alert_light: IConfigItem = {
5
+ name: 'alert-light',
6
+ title: '警示灯',
7
+ type: EDoneJsonType.File,
8
+ config: {
9
+ can_zoom: true,
10
+ have_anchor: true,
11
+ actual_rect: true
12
+ },
13
+ display: true,
14
+ props: {},
15
+ defaultState: 'yellow',
16
+ state: {
17
+ green: {
18
+ label: '正常',
19
+ fill: '#00ff00',
20
+ fillOpacity: '1'
21
+ },
22
+ yellow: { label: '请注意', fill: '#ffff00', fillOpacity: '1' },
23
+ red: { label: '报警', fill: '#ff0000', fillOpacity: '1' },
24
+ white: { label: '关闭', fill: '#ffffff', fillOpacity: '0' }
25
+ },
26
+ common_animations: {
27
+ val: '',
28
+ delay: 'delay-0s',
29
+ speed: 'slow',
30
+ repeat: 'infinite'
31
+ },
32
+ events: []
33
+ }
@@ -1,8 +1,8 @@
1
1
  import type { IConfigComponentGroup } from '../../types'
2
- import { circuit_breaker_svg_file } from './circuit-breaker'
2
+ import { svg_alert_light } from './alert-light'
3
3
 
4
4
  export const stateful_group: IConfigComponentGroup = {
5
5
  groupType: 'stateful',
6
6
  title: '状态SVG',
7
- list: [circuit_breaker_svg_file]
7
+ list: [svg_alert_light]
8
8
  }
@@ -1,9 +1,9 @@
1
1
  import { EDoneJsonType } from '@/config/types'
2
2
  import type { IConfigItem } from '@/config/types'
3
3
 
4
- export const svg_house: IConfigItem = {
5
- name: 'house',
6
- title: '房子',
4
+ export const svg_bot_9: IConfigItem = {
5
+ name: 'bot-9',
6
+ title: '9号机',
7
7
  type: EDoneJsonType.File,
8
8
  display: true,
9
9
  config: {
@@ -1,9 +1,9 @@
1
1
  import { EDoneJsonType } from '@/config/types'
2
2
  import type { IConfigItem } from '@/config/types'
3
3
 
4
- export const sheet_border: IConfigItem = {
5
- name: 'sheet-border',
6
- title: '田字格',
4
+ export const svg_hamburger: IConfigItem = {
5
+ name: 'hamburger',
6
+ title: '汉堡',
7
7
  type: EDoneJsonType.File,
8
8
  display: true,
9
9
  config: {
@@ -1,33 +1,17 @@
1
1
  import { EDoneJsonType } from '@/config/types'
2
2
  import type { IConfigItem } from '@/config/types'
3
3
 
4
- export const circuit_breaker_svg_file: IConfigItem = {
5
- name: 'circuit-breaker',
6
- title: '断路器',
4
+ export const svg_hotpot: IConfigItem = {
5
+ name: 'hotpot',
6
+ title: '火锅',
7
7
  type: EDoneJsonType.File,
8
+ display: true,
8
9
  config: {
9
10
  can_zoom: true,
10
11
  have_anchor: true,
11
12
  actual_rect: true
12
13
  },
13
- display: true,
14
14
  props: {},
15
- state: {
16
- OnOff: {
17
- title: '开关',
18
- default: false,
19
- props: {
20
- fill: {
21
- openVal: '#00ff00',
22
- closeVal: '#ff0000'
23
- },
24
- 'fill-opacity': {
25
- openVal: '0',
26
- closeVal: '1'
27
- }
28
- }
29
- }
30
- },
31
15
  common_animations: {
32
16
  val: '',
33
17
  delay: 'delay-0s',