@zhangqingcq/vgce 0.0.27 → 0.0.28

Sign up to get free protection for your applications and to get access to all the features.
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',