vue-wiring-diagram 1.1.22 → 1.1.24

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 (32) hide show
  1. package/README.md +93 -93
  2. package/dist/style.css +1 -1
  3. package/dist/vue-wiring-diagram.es.js +5563 -5234
  4. package/dist/vue-wiring-diagram.umd.js +27 -27
  5. package/package.json +1 -1
  6. package/packages/components/Shortcuts.vue +31 -31
  7. package/packages/components/baseShape.js +62 -62
  8. package/packages/components/common.js +105 -105
  9. package/packages/components/edge-control/arrow-line.vue +292 -292
  10. package/packages/components/edge-control/condition.vue +110 -110
  11. package/packages/components/edge-control/default-line.vue +156 -156
  12. package/packages/components/edge-control/index.vue +94 -94
  13. package/packages/components/edge-control/pipe-line.vue +354 -354
  14. package/packages/components/editor/index.vue +590 -590
  15. package/packages/components/enums.js +80 -80
  16. package/packages/components/graph-control/index.vue +121 -121
  17. package/packages/components/image-control/group-form.vue +114 -114
  18. package/packages/components/image-control/image-condition.vue +117 -0
  19. package/packages/components/image-control/image-form.vue +184 -184
  20. package/packages/components/image-control/image-management.vue +213 -213
  21. package/packages/components/image-control/index.vue +290 -124
  22. package/packages/components/portsOptions.js +21 -21
  23. package/packages/components/preview/index.vue +399 -355
  24. package/packages/components/settings.js +262 -262
  25. package/packages/components/text-control/index.vue +457 -457
  26. package/packages/components/tools.js +256 -256
  27. package/packages/http.js +104 -104
  28. package/packages/index.js +43 -43
  29. package/packages/styles/animation.scss +27 -27
  30. package/packages/styles/dialog.scss +4 -4
  31. package/packages/styles/editor.scss +165 -165
  32. package/packages/styles/elPath.scss +257 -257
@@ -1,110 +1,110 @@
1
- /**
2
- * @Author: HuaYJ
3
- * @Date: 2024/10/24 10:23
4
- */
5
- <template>
6
- <div class="form-container">
7
- <el-button type="primary" size="small" @click="addItemBtnClick" style="margin-bottom: 10px">添加条件</el-button>
8
- <el-table :data="items" size="small" border>
9
- <el-table-column prop="min" label="最小值" width="150" align="center">
10
- <template #default="scope">
11
- <el-input-number v-model="scope.row.min" size="small" controls-position="right"></el-input-number>
12
- </template>
13
- </el-table-column>
14
- <el-table-column prop="max" label="最大值" width="150" align="center">
15
- <template #default="scope">
16
- <el-input-number v-model="scope.row.max" size="small" controls-position="right"></el-input-number>
17
- </template>
18
- </el-table-column>
19
- <el-table-column prop="direction" label="流向" v-if="type === 'pipe'" align="center">
20
- <template #default="scope">
21
- <el-select v-model="scope.row.direction" size="small">
22
- <el-option v-for="item in directionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
23
- </el-select>
24
- </template>
25
- </el-table-column>
26
- <el-table-column prop="direction" label="方向" v-if="type === 'arrow'" align="center">
27
- <template #default="scope">
28
- <el-switch v-model="scope.row.direction" :active-value="ARROWFORWARD" active-text="正向" :inactive-value="ARROWBACKWORD"
29
- inactive-text="反向" size="small"/>
30
- </template>
31
- </el-table-column>
32
- <el-table-column prop="direction" label="动作" v-if="type === 'arrow'" align="center">
33
- <template #default="scope">
34
- <el-switch v-model="scope.row.animation" :active-value="FLASHING" active-text="闪烁" :inactive-value="STOP" inactive-text="静止"
35
- size="small"/>
36
- </template>
37
- </el-table-column>
38
- <el-table-column prop="display" label="显示" v-if="type === 'arrow'" align="center">
39
- <template #default="scope">
40
- <el-switch v-model="scope.row.display" :active-value="'block'" active-text="显示" :inactive-value="'none'" inactive-text="隐藏"
41
- size="small"/>
42
- </template>
43
- </el-table-column>
44
- <el-table-column label="操作" align="center">
45
- <template #default="scope">
46
- <el-button type="danger" size="small" @click="deleteItemBtnClick(scope.$index)">删除</el-button>
47
- </template>
48
- </el-table-column>
49
- </el-table>
50
- <div class="footer" style="margin-top: 10px">
51
- <el-button type="primary" @click="saveBtnClick">保存</el-button>
52
- <el-button @click="cancelBtnClick">取消</el-button>
53
- </div>
54
- </div>
55
- </template>
56
-
57
- <script setup>
58
- import {ref} from "vue";
59
- import {ARROWBACKWORD, ARROWFORWARD, directionList, FLASHING, STOP} from "packages/components/enums.js";
60
- import {defaultArrowCondition, defaultPipeCondition} from "packages/components/tools.js";
61
-
62
- const props = defineProps({
63
- payload: {
64
- type: Array,
65
- },
66
- type: {
67
- type: String,
68
- }
69
- })
70
-
71
-
72
- const items = ref(props.payload)
73
-
74
- /**
75
- * 添加条件
76
- */
77
- const addItemBtnClick = () => {
78
- items.value.push(JSON.parse(JSON.stringify(props.type === 'pipe' ? defaultPipeCondition : defaultArrowCondition)))
79
- }
80
-
81
- /**
82
- * 删除条件
83
- * @param index
84
- */
85
- const deleteItemBtnClick = (index) => {
86
- items.value.splice(index, 1)
87
- }
88
-
89
- const emit = defineEmits(['close'])
90
-
91
- /**
92
- * 保存
93
- */
94
- const saveBtnClick = () => {
95
- emit('close', items.value)
96
- }
97
-
98
- /**
99
- * 取消
100
- */
101
- const cancelBtnClick = () => {
102
- emit('close', false)
103
- }
104
-
105
- </script>
106
-
107
- <style scoped lang="scss">
108
- @use '/packages/styles/elPath.scss';
109
- @use '/packages/styles/dialog.scss';
110
- </style>
1
+ /**
2
+ * @Author: HuaYJ
3
+ * @Date: 2024/10/24 10:23
4
+ */
5
+ <template>
6
+ <div class="form-container">
7
+ <el-button type="primary" size="small" @click="addItemBtnClick" style="margin-bottom: 10px">添加条件</el-button>
8
+ <el-table :data="items" size="small" border>
9
+ <el-table-column prop="min" label="最小值" width="150" align="center">
10
+ <template #default="scope">
11
+ <el-input-number v-model="scope.row.min" size="small" controls-position="right"></el-input-number>
12
+ </template>
13
+ </el-table-column>
14
+ <el-table-column prop="max" label="最大值" width="150" align="center">
15
+ <template #default="scope">
16
+ <el-input-number v-model="scope.row.max" size="small" controls-position="right"></el-input-number>
17
+ </template>
18
+ </el-table-column>
19
+ <el-table-column prop="direction" label="流向" v-if="type === 'pipe'" align="center">
20
+ <template #default="scope">
21
+ <el-select v-model="scope.row.direction" size="small">
22
+ <el-option v-for="item in directionList" :key="item.value" :label="item.label" :value="item.value"></el-option>
23
+ </el-select>
24
+ </template>
25
+ </el-table-column>
26
+ <el-table-column prop="direction" label="方向" v-if="type === 'arrow'" align="center">
27
+ <template #default="scope">
28
+ <el-switch v-model="scope.row.direction" :active-value="ARROWFORWARD" active-text="正向" :inactive-value="ARROWBACKWORD"
29
+ inactive-text="反向" size="small"/>
30
+ </template>
31
+ </el-table-column>
32
+ <el-table-column prop="direction" label="动作" v-if="type === 'arrow'" align="center">
33
+ <template #default="scope">
34
+ <el-switch v-model="scope.row.animation" :active-value="FLASHING" active-text="闪烁" :inactive-value="STOP" inactive-text="静止"
35
+ size="small"/>
36
+ </template>
37
+ </el-table-column>
38
+ <el-table-column prop="display" label="显示" v-if="type === 'arrow'" align="center">
39
+ <template #default="scope">
40
+ <el-switch v-model="scope.row.display" :active-value="'block'" active-text="显示" :inactive-value="'none'" inactive-text="隐藏"
41
+ size="small"/>
42
+ </template>
43
+ </el-table-column>
44
+ <el-table-column label="操作" align="center">
45
+ <template #default="scope">
46
+ <el-button type="danger" size="small" @click="deleteItemBtnClick(scope.$index)">删除</el-button>
47
+ </template>
48
+ </el-table-column>
49
+ </el-table>
50
+ <div class="footer" style="margin-top: 10px">
51
+ <el-button type="primary" @click="saveBtnClick">保存</el-button>
52
+ <el-button @click="cancelBtnClick">取消</el-button>
53
+ </div>
54
+ </div>
55
+ </template>
56
+
57
+ <script setup>
58
+ import {ref} from "vue";
59
+ import {ARROWBACKWORD, ARROWFORWARD, directionList, FLASHING, STOP} from "packages/components/enums.js";
60
+ import {defaultArrowCondition, defaultPipeCondition} from "packages/components/tools.js";
61
+
62
+ const props = defineProps({
63
+ payload: {
64
+ type: Array,
65
+ },
66
+ type: {
67
+ type: String,
68
+ }
69
+ })
70
+
71
+
72
+ const items = ref(props.payload)
73
+
74
+ /**
75
+ * 添加条件
76
+ */
77
+ const addItemBtnClick = () => {
78
+ items.value.push(JSON.parse(JSON.stringify(props.type === 'pipe' ? defaultPipeCondition : defaultArrowCondition)))
79
+ }
80
+
81
+ /**
82
+ * 删除条件
83
+ * @param index
84
+ */
85
+ const deleteItemBtnClick = (index) => {
86
+ items.value.splice(index, 1)
87
+ }
88
+
89
+ const emit = defineEmits(['close'])
90
+
91
+ /**
92
+ * 保存
93
+ */
94
+ const saveBtnClick = () => {
95
+ emit('close', items.value)
96
+ }
97
+
98
+ /**
99
+ * 取消
100
+ */
101
+ const cancelBtnClick = () => {
102
+ emit('close', false)
103
+ }
104
+
105
+ </script>
106
+
107
+ <style scoped lang="scss">
108
+ @use '/packages/styles/elPath.scss';
109
+ @use '/packages/styles/dialog.scss';
110
+ </style>
@@ -1,156 +1,156 @@
1
- /**
2
- * @Author: HuaYJ
3
- * @Date: 2025/4/9 09:21
4
- */
5
- <template>
6
- <div class="container">
7
- <el-collapse v-model="activeName" accordion>
8
- <el-collapse-item title="线段设置" name="0">
9
- <div class="row-column">
10
- <el-row :gutter="20">
11
- <el-col :span="12">
12
- <div class="row-label">颜色</div>
13
- </el-col>
14
- <el-col :span="12">
15
- <el-color-picker v-model="stroke" :show-alpha="true" size="small" @change="changeLine"/>
16
- </el-col>
17
- </el-row>
18
- <el-row :gutter="20">
19
- <el-col :span="12">
20
- <div class="row-label">粗细</div>
21
- </el-col>
22
- <el-col :span="12">
23
- <el-input-number v-model="strokeWidth" size="small" controls-position="right" @change="changeLine" :min="1" :max="10"
24
- :step="1"/>
25
- </el-col>
26
- </el-row>
27
- </div>
28
- </el-collapse-item>
29
- <el-collapse-item title="箭头1设置" name="1">
30
- <div class="row-column">
31
- <el-row :gutter="20">
32
- <el-col :span="12">
33
- <div class="row-label">类型</div>
34
- </el-col>
35
- <el-col :span="12">
36
- <el-select v-model="sourceMarker.name" placeholder="请选择箭头类型" clearable size="small" @change="changeLine">
37
- <el-option v-for="item in arrowList" :key="item.value" :label="item.label" :value="item.value">
38
- </el-option>
39
- </el-select>
40
- </el-col>
41
- </el-row>
42
- <el-row :gutter="20">
43
- <el-col :span="12">
44
- <div class="row-label">宽</div>
45
- </el-col>
46
- <el-col :span="12">
47
- <el-input-number v-model="sourceMarker.args.width" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
48
- :step="1"/>
49
- </el-col>
50
- </el-row>
51
- <el-row :gutter="20">
52
- <el-col :span="12">
53
- <div class="row-label">高</div>
54
- </el-col>
55
- <el-col :span="12">
56
- <el-input-number v-model="sourceMarker.args.height" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
57
- :step="1"/>
58
- </el-col>
59
- </el-row>
60
- <el-row :gutter="20">
61
- <el-col :span="12">
62
- <div class="row-label">偏移</div>
63
- </el-col>
64
- <el-col :span="12">
65
- <el-input-number v-model="sourceMarker.args.offset" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
66
- :step="1"/>
67
- </el-col>
68
- </el-row>
69
- </div>
70
- </el-collapse-item>
71
- <el-collapse-item title="箭头2设置" name="2">
72
- <div class="row-column">
73
- <el-row :gutter="20">
74
- <el-col :span="12">
75
- <div class="row-label">类型</div>
76
- </el-col>
77
- <el-col :span="12">
78
- <el-select v-model="targetMarker.name" placeholder="请选择箭头类型" clearable size="small" @change="changeLine">
79
- <el-option v-for="item in arrowList" :key="item.value" :label="item.label" :value="item.value">
80
- </el-option>
81
- </el-select>
82
- </el-col>
83
- </el-row>
84
- <el-row :gutter="20">
85
- <el-col :span="12">
86
- <div class="row-label">宽</div>
87
- </el-col>
88
- <el-col :span="12">
89
- <el-input-number v-model="targetMarker.args.width" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
90
- :step="1"/>
91
- </el-col>
92
- </el-row>
93
- <el-row :gutter="20">
94
- <el-col :span="12">
95
- <div class="row-label">高</div>
96
- </el-col>
97
- <el-col :span="12">
98
- <el-input-number v-model="targetMarker.args.height" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
99
- :step="1"/>
100
- </el-col>
101
- </el-row>
102
- <el-row :gutter="20">
103
- <el-col :span="12">
104
- <div class="row-label">偏移</div>
105
- </el-col>
106
- <el-col :span="12">
107
- <el-input-number v-model="targetMarker.args.offset" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
108
- :step="1"/>
109
- </el-col>
110
- </el-row>
111
- </div>
112
- </el-collapse-item>
113
- </el-collapse>
114
- </div>
115
- </template>
116
-
117
- <script setup>
118
- import {reactive, ref} from "vue";
119
- import {lineOptions} from "packages/components/settings.js";
120
- import {arrowList} from "packages/components/enums.js";
121
-
122
- const props = defineProps({
123
- payload: Object
124
- })
125
-
126
- const activeName = ref('0')
127
-
128
- const stroke = ref(props.payload.attrs.line.stroke) // 线段颜色
129
- const strokeWidth = ref(props.payload.attrs.line.strokeWidth) // 线段粗细
130
- const sourceMarker = reactive({
131
- name: props.payload.attrs.line.sourceMarker?.name ?? null,
132
- args: props.payload.attrs.line.sourceMarker?.args ?? {}
133
- })
134
- const targetMarker = reactive({
135
- name: props.payload.attrs.line.targetMarker?.name ?? null,
136
- args: props.payload.attrs.line.targetMarker?.args ?? {}
137
- })
138
-
139
- /**
140
- * 改变线段属性
141
- */
142
- const changeLine = () => {
143
- props.payload.attr('line/stroke', stroke.value)
144
- props.payload.attr('line/strokeWidth', strokeWidth.value)
145
- props.payload.attr('line/sourceMarker/name', sourceMarker.name)
146
- props.payload.attr('line/sourceMarker/args', sourceMarker.args)
147
- props.payload.attr('line/targetMarker/name', targetMarker.name)
148
- props.payload.attr('line/targetMarker/args', targetMarker.args)
149
- lineOptions.markup = props.payload.markup
150
- lineOptions.attrs = props.payload.attrs
151
- }
152
- </script>
153
-
154
- <style scoped lang="scss">
155
- @use "../../styles/editor.scss";
156
- </style>
1
+ /**
2
+ * @Author: HuaYJ
3
+ * @Date: 2025/4/9 09:21
4
+ */
5
+ <template>
6
+ <div class="container">
7
+ <el-collapse v-model="activeName" accordion>
8
+ <el-collapse-item title="线段设置" name="0">
9
+ <div class="row-column">
10
+ <el-row :gutter="20">
11
+ <el-col :span="12">
12
+ <div class="row-label">颜色</div>
13
+ </el-col>
14
+ <el-col :span="12">
15
+ <el-color-picker v-model="stroke" :show-alpha="true" size="small" @change="changeLine"/>
16
+ </el-col>
17
+ </el-row>
18
+ <el-row :gutter="20">
19
+ <el-col :span="12">
20
+ <div class="row-label">粗细</div>
21
+ </el-col>
22
+ <el-col :span="12">
23
+ <el-input-number v-model="strokeWidth" size="small" controls-position="right" @change="changeLine" :min="1" :max="10"
24
+ :step="1"/>
25
+ </el-col>
26
+ </el-row>
27
+ </div>
28
+ </el-collapse-item>
29
+ <el-collapse-item title="箭头1设置" name="1">
30
+ <div class="row-column">
31
+ <el-row :gutter="20">
32
+ <el-col :span="12">
33
+ <div class="row-label">类型</div>
34
+ </el-col>
35
+ <el-col :span="12">
36
+ <el-select v-model="sourceMarker.name" placeholder="请选择箭头类型" clearable size="small" @change="changeLine">
37
+ <el-option v-for="item in arrowList" :key="item.value" :label="item.label" :value="item.value">
38
+ </el-option>
39
+ </el-select>
40
+ </el-col>
41
+ </el-row>
42
+ <el-row :gutter="20">
43
+ <el-col :span="12">
44
+ <div class="row-label">宽</div>
45
+ </el-col>
46
+ <el-col :span="12">
47
+ <el-input-number v-model="sourceMarker.args.width" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
48
+ :step="1"/>
49
+ </el-col>
50
+ </el-row>
51
+ <el-row :gutter="20">
52
+ <el-col :span="12">
53
+ <div class="row-label">高</div>
54
+ </el-col>
55
+ <el-col :span="12">
56
+ <el-input-number v-model="sourceMarker.args.height" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
57
+ :step="1"/>
58
+ </el-col>
59
+ </el-row>
60
+ <el-row :gutter="20">
61
+ <el-col :span="12">
62
+ <div class="row-label">偏移</div>
63
+ </el-col>
64
+ <el-col :span="12">
65
+ <el-input-number v-model="sourceMarker.args.offset" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
66
+ :step="1"/>
67
+ </el-col>
68
+ </el-row>
69
+ </div>
70
+ </el-collapse-item>
71
+ <el-collapse-item title="箭头2设置" name="2">
72
+ <div class="row-column">
73
+ <el-row :gutter="20">
74
+ <el-col :span="12">
75
+ <div class="row-label">类型</div>
76
+ </el-col>
77
+ <el-col :span="12">
78
+ <el-select v-model="targetMarker.name" placeholder="请选择箭头类型" clearable size="small" @change="changeLine">
79
+ <el-option v-for="item in arrowList" :key="item.value" :label="item.label" :value="item.value">
80
+ </el-option>
81
+ </el-select>
82
+ </el-col>
83
+ </el-row>
84
+ <el-row :gutter="20">
85
+ <el-col :span="12">
86
+ <div class="row-label">宽</div>
87
+ </el-col>
88
+ <el-col :span="12">
89
+ <el-input-number v-model="targetMarker.args.width" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
90
+ :step="1"/>
91
+ </el-col>
92
+ </el-row>
93
+ <el-row :gutter="20">
94
+ <el-col :span="12">
95
+ <div class="row-label">高</div>
96
+ </el-col>
97
+ <el-col :span="12">
98
+ <el-input-number v-model="targetMarker.args.height" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
99
+ :step="1"/>
100
+ </el-col>
101
+ </el-row>
102
+ <el-row :gutter="20">
103
+ <el-col :span="12">
104
+ <div class="row-label">偏移</div>
105
+ </el-col>
106
+ <el-col :span="12">
107
+ <el-input-number v-model="targetMarker.args.offset" size="small" controls-position="right" @change="changeLine" :min="0" :max="10"
108
+ :step="1"/>
109
+ </el-col>
110
+ </el-row>
111
+ </div>
112
+ </el-collapse-item>
113
+ </el-collapse>
114
+ </div>
115
+ </template>
116
+
117
+ <script setup>
118
+ import {reactive, ref} from "vue";
119
+ import {lineOptions} from "packages/components/settings.js";
120
+ import {arrowList} from "packages/components/enums.js";
121
+
122
+ const props = defineProps({
123
+ payload: Object
124
+ })
125
+
126
+ const activeName = ref('0')
127
+
128
+ const stroke = ref(props.payload.attrs.line.stroke) // 线段颜色
129
+ const strokeWidth = ref(props.payload.attrs.line.strokeWidth) // 线段粗细
130
+ const sourceMarker = reactive({
131
+ name: props.payload.attrs.line.sourceMarker?.name ?? null,
132
+ args: props.payload.attrs.line.sourceMarker?.args ?? {}
133
+ })
134
+ const targetMarker = reactive({
135
+ name: props.payload.attrs.line.targetMarker?.name ?? null,
136
+ args: props.payload.attrs.line.targetMarker?.args ?? {}
137
+ })
138
+
139
+ /**
140
+ * 改变线段属性
141
+ */
142
+ const changeLine = () => {
143
+ props.payload.attr('line/stroke', stroke.value)
144
+ props.payload.attr('line/strokeWidth', strokeWidth.value)
145
+ props.payload.attr('line/sourceMarker/name', sourceMarker.name)
146
+ props.payload.attr('line/sourceMarker/args', sourceMarker.args)
147
+ props.payload.attr('line/targetMarker/name', targetMarker.name)
148
+ props.payload.attr('line/targetMarker/args', targetMarker.args)
149
+ lineOptions.markup = props.payload.markup
150
+ lineOptions.attrs = props.payload.attrs
151
+ }
152
+ </script>
153
+
154
+ <style scoped lang="scss">
155
+ @use "../../styles/editor.scss";
156
+ </style>