openatc-components 0.0.84 → 0.0.89

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 (120) hide show
  1. package/config/index.js +2 -3
  2. package/package/kisscomps/components/Channelization/Channelization.vue +544 -0
  3. package/package/kisscomps/components/Channelization/index.js +2 -0
  4. package/package/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +498 -0
  5. package/package/kisscomps/components/ChannelizationWithInterface/index.js +2 -0
  6. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +249 -0
  7. package/package/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -0
  8. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -0
  9. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +176 -0
  10. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -0
  11. package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +48 -0
  12. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +182 -0
  13. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +222 -0
  14. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +191 -0
  15. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +78 -0
  16. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +433 -0
  17. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +195 -0
  18. package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +71 -0
  19. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +940 -0
  20. package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +119 -0
  21. package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +563 -0
  22. package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +157 -0
  23. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +191 -0
  24. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +331 -0
  25. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +157 -0
  26. package/package/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -0
  27. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +43 -0
  28. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -0
  29. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -0
  30. package/package/kisscomps/components/DrawChannelization/index.js +2 -0
  31. package/package/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -0
  32. package/package/kisscomps/components/KanBan/kanban.vue +1 -1
  33. package/package/kisscomps/components/MessageBox/index.vue +96 -0
  34. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +6 -2
  35. package/package/kisscomps/index.js +4 -0
  36. package/package/kissui.min.js +1 -1
  37. package/package.json +6 -5
  38. package/src/api/cross.js +33 -0
  39. package/src/i18n/language/en.js +77 -2
  40. package/src/i18n/language/zh.js +77 -2
  41. package/src/icons/svg/custom-BRTlane.svg +40 -0
  42. package/src/icons/svg/custom-bicyclelane.svg +7 -0
  43. package/src/icons/svg/custom-buslane.svg +40 -0
  44. package/src/icons/svg/custom-detector.svg +12 -0
  45. package/src/icons/svg/custom-east-bottom.svg +32 -0
  46. package/src/icons/svg/custom-east-top.svg +32 -0
  47. package/src/icons/svg/custom-ewped.svg +35 -0
  48. package/src/icons/svg/custom-motorway.svg +7 -0
  49. package/src/icons/svg/custom-nonmotorizedlane.svg +40 -0
  50. package/src/icons/svg/custom-north-left.svg +32 -0
  51. package/src/icons/svg/custom-north-right.svg +32 -0
  52. package/src/icons/svg/custom-pedcrossing.svg +7 -0
  53. package/src/icons/svg/custom-peddetector.svg +17 -0
  54. package/src/icons/svg/custom-pedeastward.svg +9 -0
  55. package/src/icons/svg/custom-pedestrian.svg +7 -0
  56. package/src/icons/svg/custom-pednorthward.svg +9 -0
  57. package/src/icons/svg/custom-pedsouthward.svg +9 -0
  58. package/src/icons/svg/custom-pedwestward.svg +9 -0
  59. package/src/icons/svg/custom-secondcrossing.svg +7 -0
  60. package/src/icons/svg/custom-sectionpedestrian.svg +7 -0
  61. package/src/icons/svg/custom-snped.svg +35 -0
  62. package/src/icons/svg/custom-south-left.svg +32 -0
  63. package/src/icons/svg/custom-south-right.svg +32 -0
  64. package/src/icons/svg/custom-straightahead.svg +7 -0
  65. package/src/icons/svg/custom-tramlane.svg +40 -0
  66. package/src/icons/svg/custom-turnaround.svg +7 -0
  67. package/src/icons/svg/custom-turnleft.svg +7 -0
  68. package/src/icons/svg/custom-turnright.svg +7 -0
  69. package/src/icons/svg/custom-vehiclebranch.svg +40 -0
  70. package/src/icons/svg/custom-vehiclemainroad.svg +41 -0
  71. package/src/icons/svg/custom-west-bottom.svg +32 -0
  72. package/src/icons/svg/custom-west-top.svg +32 -0
  73. package/src/icons/svg/custom-xlped.svg +14 -0
  74. package/src/icons/svg/custom-xpedestrian.svg +7 -0
  75. package/src/icons/svg/custom-xrped.svg +14 -0
  76. package/src/kisscomps/components/Channelization/Channelization.vue +544 -0
  77. package/src/kisscomps/components/Channelization/index.js +2 -0
  78. package/src/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +498 -0
  79. package/src/kisscomps/components/ChannelizationWithInterface/index.js +2 -0
  80. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +249 -0
  81. package/src/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -0
  82. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -0
  83. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +176 -0
  84. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -0
  85. package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +48 -0
  86. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +182 -0
  87. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +222 -0
  88. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +191 -0
  89. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +78 -0
  90. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +433 -0
  91. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +195 -0
  92. package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +71 -0
  93. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +940 -0
  94. package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +119 -0
  95. package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +563 -0
  96. package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +157 -0
  97. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +191 -0
  98. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +331 -0
  99. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +157 -0
  100. package/src/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -0
  101. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +43 -0
  102. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -0
  103. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -0
  104. package/src/kisscomps/components/DrawChannelization/index.js +2 -0
  105. package/src/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -0
  106. package/src/kisscomps/components/KanBan/kanban.vue +1 -1
  107. package/src/kisscomps/components/MessageBox/index.vue +96 -0
  108. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +6 -2
  109. package/src/kisscomps/index.js +4 -0
  110. package/src/main.js +3 -0
  111. package/src/router/index.js +7 -0
  112. package/src/store/index.js +2 -2
  113. package/src/store/modules/globalParam.js +67 -16
  114. package/src/utils/RingDataModel.js +11 -0
  115. package/src/views/customchannelization.vue +50 -0
  116. package/src/views/intersection.vue +8 -2
  117. package/src/views/schemeconfig.vue +2 -2
  118. package/static/apiconfig.json +15 -0
  119. package/static/styles/channelizatioon.scss +365 -0
  120. package/static/styles/common.scss +1 -0
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ <template>
13
+ <div v-if="reset" class="pedroad-icon">
14
+ <!-- <div class="phaseText" :style="{'left': PedData.x - PedData.w / 2 - 10 + 'px', 'top': PedData.y - PedData.h / 2 - 10 + 'px'}">{{PedData.phaselabel}}</div> -->
15
+ <drr
16
+ :style="{'z-index': chooseIndex === PedData.index ? 9 : 0}"
17
+ :x="item.x"
18
+ :y="item.y"
19
+ :w="item.w"
20
+ :h="item.h"
21
+ :selected="chooseIndex === PedData.index"
22
+ :selectable="isSeletable"
23
+ :angle="item.angle"
24
+ @select="handleSelectIcon(item)"
25
+ @dragstop="boxDragStop(item, ...arguments)"
26
+ @resizestop="boxResizeStop(item, ...arguments)"
27
+ @rotatestop="boxRotateStop(item, ...arguments)"
28
+ >
29
+ <div class="phaseText"
30
+ style="top: -28px;"
31
+ :style="{'marginLeft': PedData.w / 2 + 'px', 'transform': `translateX(-50%) rotate(${-item.angle}deg)`}">{{PedData.phaselabel}}</div>
32
+
33
+ <svg
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ :viewBox="Viewbox.join(' ')"
36
+ :width="IconW"
37
+ :height="IconH"
38
+ >
39
+ <!-- 绘制模式 -->
40
+ <g v-if="UsageMode === 'draw'" :fill="chooseIndex === PedData.index ? highlightColor : defaultColor">
41
+ <rect v-for="(rectItem, index) in rectArr" :x="rectItem" :key="index" width="4" :height="IconH"></rect>
42
+ </g>
43
+ <!-- 展示模式 -->
44
+ <g v-if="UsageMode === 'show'" :fill="this.GreenFlashColor ? this.GreenFlashColor : (PedData.color ? PedData.color : showDefaultColor)">
45
+ <rect v-for="(rectItem, index) in rectArr" :x="rectItem" :key="index" width="4" :height="IconH"></rect>
46
+ </g>
47
+ </svg>
48
+ </drr>
49
+ </div>
50
+ </template>
51
+ <script>
52
+ export default {
53
+ name: 'ped-icon-svg',
54
+ data () {
55
+ return {
56
+ defaultColor: '#fff', // 默认状态颜色
57
+ highlightColor: '#409EFF', // 选中高亮状态颜色
58
+ item: {},
59
+ reset: true,
60
+ rectArr: [],
61
+ Viewbox: [0, 0, 206, 22],
62
+ showDefaultColor: '#fff', // 默认状态颜色
63
+ GreenFlashColor: undefined,
64
+ lastType: ''
65
+ }
66
+ },
67
+ watch: {
68
+ item: {
69
+ handler: function (newval, oldval) {
70
+ if ((JSON.stringify(oldval) !== '{}')) {
71
+ // 更改原数据的位置大小数据
72
+ let data = {
73
+ ...this.PedData,
74
+ ...newval,
75
+ viewbox: this.Viewbox
76
+ }
77
+ let fields = Object.keys(newval).concat('viewbox')
78
+ this.$emit('changePedItem', data, fields)
79
+ }
80
+ }
81
+ },
82
+ PedData: {
83
+ handler: function (val) {
84
+ if (!val.pedtype) return
85
+ if (val.pedtype === 4 && this.lastType === '') {
86
+ // 绿闪:绿-》灰-》绿 循环效果
87
+ this.GreenFlashColor = '#7bd66b'
88
+ this.GreenIntervalId = setInterval(() => {
89
+ this.GreenFlashColor =
90
+ !this.GreenFlashColor || this.GreenFlashColor === '#828282'
91
+ ? '#7bd66b'
92
+ : '#828282'
93
+ }, 500)
94
+ this.lastType = val.pedtype
95
+ }
96
+ if (
97
+ this.GreenIntervalId &&
98
+ val.pedtype !== 4 &&
99
+ val.pedtype !== this.lastType
100
+ ) {
101
+ clearInterval(this.GreenIntervalId)
102
+ this.GreenFlashColor = undefined
103
+ this.lastType = ''
104
+ }
105
+ },
106
+ deep: true
107
+ }
108
+ // ,
109
+ // chooseIndex: {
110
+ // handler: function (val) {
111
+ // debugger
112
+ // }
113
+ // }
114
+ },
115
+ props: {
116
+ PedData: {
117
+ type: Object
118
+ },
119
+ isSeletable: {
120
+ type: Boolean
121
+ },
122
+ chooseIndex: {
123
+ type: Number
124
+ },
125
+ UsageMode: { // 当前图标模式: 绘制draw 展示show
126
+ type: String,
127
+ default: 'draw'
128
+ }
129
+ },
130
+ methods: {
131
+ boxDragStop (origin, final) {
132
+ this.item = JSON.parse(JSON.stringify(final))
133
+ },
134
+ boxResizeStop (origin, final) {
135
+ this.IconW = final.w + 'px'
136
+ this.IconH = final.h + 'px'
137
+ this.resetSvg()
138
+ this.drawRect(0, final.w, 8)
139
+ this.Viewbox[2] = final.w.toFixed(1)
140
+ this.Viewbox[3] = final.h.toFixed(1)
141
+ this.item = JSON.parse(JSON.stringify(final))
142
+ },
143
+ boxRotateStop (origin, final) {
144
+ this.item = JSON.parse(JSON.stringify(final))
145
+ },
146
+ resetSvg () {
147
+ this.reset = false
148
+ this.$nextTick(() => {
149
+ this.reset = true
150
+ })
151
+ },
152
+ drawRect (startX, length, step) {
153
+ this.rectArr = []
154
+ for (let i = startX; i < length; i = i + step) {
155
+ this.rectArr.push(i)
156
+ }
157
+ },
158
+ handleSelectIcon (iconparams) {
159
+ this.$emit('handleSelectIcon', this.PedData)
160
+ }
161
+ },
162
+ created () {
163
+ this.IconW = this.PedData.w
164
+ this.IconH = this.PedData.h
165
+ this.item = {
166
+ x: this.PedData.x,
167
+ y: this.PedData.y,
168
+ w: this.PedData.w,
169
+ h: this.PedData.h,
170
+ angle: this.PedData.angle
171
+ }
172
+ if (this.PedData.viewbox) {
173
+ this.Viewbox = this.PedData.viewbox
174
+ }
175
+ // this.drawRect(0, 206, 8)
176
+ },
177
+ mounted () {
178
+ if (this.PedData.w) {
179
+ // 按照加载后人行道的长绘制
180
+ this.drawRect(0, this.PedData.w, 8)
181
+ }
182
+ }
183
+ }
184
+ </script>
185
+ <style scoped>
186
+ .invisible {
187
+ visibility: hidden;
188
+ }
189
+ .hide {
190
+ display: none;
191
+ }
192
+ .st0 {
193
+ fill: #ccc;
194
+ }
195
+ </style>
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ <template>
13
+ <el-dialog
14
+ :title="$t('openatccomponents.plan.tip')"
15
+ :visible.sync="dialogVisible"
16
+ width="30%"
17
+ >
18
+ <input
19
+ v-if="dialogVisible"
20
+ type="file"
21
+ id="importimg"
22
+ />
23
+ <span
24
+ slot="footer"
25
+ class="dialog-footer"
26
+ >
27
+ <el-button @click="dialogVisible = false">{{$t('openatccomponents.common.cancel')}}</el-button>
28
+ <el-button
29
+ type="primary"
30
+ @click="readAsText"
31
+ >{{$t('openatccomponents.common.confirm')}}</el-button>
32
+ </span>
33
+ </el-dialog>
34
+ </template>
35
+ <script>
36
+ import Svgmethods from './utils/loadutils.js'
37
+ export default {
38
+ name: 'import-dialog',
39
+ data () {
40
+ return {
41
+ dialogVisible: false
42
+ }
43
+ },
44
+ methods: {
45
+ clickOpen () {
46
+ this.dialogVisible = true
47
+ },
48
+ // 底图加载
49
+ readAsText () {
50
+ this.svgmethods = new Svgmethods()
51
+ this.svgmethods.clickOpen(this.loadSvgString)
52
+ this.dialogVisible = false
53
+ },
54
+ loadSvgString (type, content) {
55
+ if (type === 'error') {
56
+ if (content === 'size') {
57
+ this.$message.error(this.$t('openatccomponents.channelizationmap.importsizeerror'))
58
+ }
59
+ if (content === 'type') {
60
+ this.$message.error(this.$t('openatccomponents.channelizationmap.importtypeerror'))
61
+ }
62
+ } else {
63
+ this.$emit('loadSvgString', type, content)
64
+ }
65
+ }
66
+ },
67
+ mounted () {}
68
+ }
69
+ </script>
70
+ <style scoped>
71
+ </style>