openatc-components 0.0.91 → 0.0.94

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 (117) hide show
  1. package/package/kisscomps/components/KanBan/kanban.vue +1 -1
  2. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +6 -3
  3. package/package/kisscomps/index.js +1 -11
  4. package/package/kissui.min.js +1 -1
  5. package/package.json +2 -4
  6. package/src/i18n/language/en.js +2 -77
  7. package/src/i18n/language/zh.js +2 -77
  8. package/src/kisscomps/components/KanBan/kanban.vue +1 -1
  9. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +6 -3
  10. package/src/kisscomps/index.js +1 -11
  11. package/src/main.js +0 -3
  12. package/src/router/index.js +0 -7
  13. package/src/store/index.js +2 -2
  14. package/src/store/modules/globalParam.js +16 -67
  15. package/src/views/intersection.vue +2 -8
  16. package/static/apiconfig.json +0 -15
  17. package/static/styles/common.scss +0 -1
  18. package/package/kisscomps/components/Channelization/Channelization.vue +0 -545
  19. package/package/kisscomps/components/Channelization/index.js +0 -2
  20. package/package/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +0 -498
  21. package/package/kisscomps/components/ChannelizationWithInterface/index.js +0 -2
  22. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +0 -249
  23. package/package/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +0 -152
  24. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +0 -91
  25. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +0 -176
  26. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +0 -108
  27. package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +0 -48
  28. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +0 -182
  29. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +0 -222
  30. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +0 -191
  31. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +0 -78
  32. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +0 -433
  33. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +0 -195
  34. package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +0 -71
  35. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +0 -939
  36. package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +0 -118
  37. package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +0 -563
  38. package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +0 -157
  39. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +0 -191
  40. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +0 -331
  41. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +0 -157
  42. package/package/kisscomps/components/DrawChannelization/drawsvg/table.vue +0 -99
  43. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +0 -43
  44. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +0 -32
  45. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +0 -20
  46. package/package/kisscomps/components/DrawChannelization/index.js +0 -2
  47. package/package/kisscomps/components/DrawChannelization/phaseDataMgr.js +0 -278
  48. package/package/kisscomps/components/MessageBox/index.vue +0 -96
  49. package/src/api/cross.js +0 -33
  50. package/src/icons/svg/custom-BRTlane.svg +0 -40
  51. package/src/icons/svg/custom-bicyclelane.svg +0 -7
  52. package/src/icons/svg/custom-buslane.svg +0 -40
  53. package/src/icons/svg/custom-detector.svg +0 -12
  54. package/src/icons/svg/custom-east-bottom.svg +0 -32
  55. package/src/icons/svg/custom-east-top.svg +0 -32
  56. package/src/icons/svg/custom-ewped.svg +0 -35
  57. package/src/icons/svg/custom-motorway.svg +0 -7
  58. package/src/icons/svg/custom-nonmotorizedlane.svg +0 -40
  59. package/src/icons/svg/custom-north-left.svg +0 -32
  60. package/src/icons/svg/custom-north-right.svg +0 -32
  61. package/src/icons/svg/custom-pedcrossing.svg +0 -7
  62. package/src/icons/svg/custom-peddetector.svg +0 -17
  63. package/src/icons/svg/custom-pedeastward.svg +0 -9
  64. package/src/icons/svg/custom-pedestrian.svg +0 -7
  65. package/src/icons/svg/custom-pednorthward.svg +0 -9
  66. package/src/icons/svg/custom-pedsouthward.svg +0 -9
  67. package/src/icons/svg/custom-pedwestward.svg +0 -9
  68. package/src/icons/svg/custom-secondcrossing.svg +0 -7
  69. package/src/icons/svg/custom-sectionpedestrian.svg +0 -7
  70. package/src/icons/svg/custom-snped.svg +0 -35
  71. package/src/icons/svg/custom-south-left.svg +0 -32
  72. package/src/icons/svg/custom-south-right.svg +0 -32
  73. package/src/icons/svg/custom-straightahead.svg +0 -7
  74. package/src/icons/svg/custom-tramlane.svg +0 -40
  75. package/src/icons/svg/custom-turnaround.svg +0 -7
  76. package/src/icons/svg/custom-turnleft.svg +0 -7
  77. package/src/icons/svg/custom-turnright.svg +0 -7
  78. package/src/icons/svg/custom-vehiclebranch.svg +0 -40
  79. package/src/icons/svg/custom-vehiclemainroad.svg +0 -41
  80. package/src/icons/svg/custom-west-bottom.svg +0 -32
  81. package/src/icons/svg/custom-west-top.svg +0 -32
  82. package/src/icons/svg/custom-xlped.svg +0 -14
  83. package/src/icons/svg/custom-xpedestrian.svg +0 -7
  84. package/src/icons/svg/custom-xrped.svg +0 -14
  85. package/src/kisscomps/components/Channelization/Channelization.vue +0 -545
  86. package/src/kisscomps/components/Channelization/index.js +0 -2
  87. package/src/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +0 -498
  88. package/src/kisscomps/components/ChannelizationWithInterface/index.js +0 -2
  89. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +0 -249
  90. package/src/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +0 -152
  91. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +0 -91
  92. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +0 -176
  93. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +0 -108
  94. package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +0 -48
  95. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +0 -182
  96. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +0 -222
  97. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +0 -191
  98. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +0 -78
  99. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +0 -433
  100. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +0 -195
  101. package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +0 -71
  102. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +0 -939
  103. package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +0 -118
  104. package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +0 -563
  105. package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +0 -157
  106. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +0 -191
  107. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +0 -331
  108. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +0 -157
  109. package/src/kisscomps/components/DrawChannelization/drawsvg/table.vue +0 -99
  110. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +0 -43
  111. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +0 -32
  112. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +0 -20
  113. package/src/kisscomps/components/DrawChannelization/index.js +0 -2
  114. package/src/kisscomps/components/DrawChannelization/phaseDataMgr.js +0 -278
  115. package/src/kisscomps/components/MessageBox/index.vue +0 -96
  116. package/src/views/customchannelization.vue +0 -49
  117. package/static/styles/channelizatioon.scss +0 -365
@@ -1,545 +0,0 @@
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 class="show-channelization" :class="{
14
- 'superlargeCrossImg': bodyDomWidth <= 1680 && bodyDomWidth > 1440,
15
- 'largeCrossImg': bodyDomWidth <= 1440 && bodyDomWidth > 1280,
16
- 'middleCrossImg': bodyDomWidth <= 1280 && bodyDomWidth > 960,
17
- 'smallCrossImg': bodyDomWidth <= 960 && bodyDomWidth > 720,
18
- 'miniCrossImg': bodyDomWidth <= 720 && bodyDomWidth > 650,
19
- 'superminiCrossImg': bodyDomWidth <= 650 && bodyDomWidth > 450,
20
- 'transMiddleCrossImg': bodyDomWidth <= 450 && bodyDomWidth > 350,
21
- 'transMiddleCrossImg2': bodyDomWidth <= 350 && bodyDomWidth > 300,
22
- 'transMiddleCrossImg3': bodyDomWidth <= 300 && bodyDomWidth > 260,
23
- 'transMiniCrossImg': bodyDomWidth <= 260,
24
- 'changePaddingBottom': true }">
25
- <ChannelizationElements
26
- ref="channelizationElements"
27
- UsageMode="show"
28
- :allitem="allitem"
29
- :CrossMapVisible="CrossMapVisible"
30
- :CrossMapData="CrossMapData"
31
- :isSeletable="isSeletable"
32
- :Motorways="LanePhaseData"
33
- :Pedwalk="sidewalkPhaseData"
34
- :Countdown="Countdown"
35
- :CountdownList="phaseCountdownList"
36
- :Detector="DetectorData"
37
- :isHasPhase="isHasPhase"
38
- />
39
- </div>
40
- </template>
41
-
42
- <script>
43
- // import { mapState, mapGetters } from 'vuex'
44
- import ChannelizationElements from '../DrawChannelization/drawsvg/channelizationElements'
45
- // import { getIframdevid } from '../../../utils/auth.js'
46
- import { getChannelizatonChart } from '../../../api/cross'
47
-
48
- export default {
49
- name: 'channelization',
50
- components: {
51
- ChannelizationElements
52
- },
53
- computed: {
54
- // ...mapState({
55
- // curOpenatcAgentid: state => state.globalParam.curOpenatcAgentid
56
- // })
57
- // ,
58
- // ...mapGetters([
59
- // 'isfromatc'
60
- // ])
61
- },
62
- props: {
63
- crossStatusData: {
64
- type: Object
65
- },
66
- detectorStatusData: {
67
- type: Object
68
- },
69
- AgentId: {
70
- type: String,
71
- default: '0'
72
- }
73
- },
74
- watch: {
75
- crossStatusData: {
76
- handler: function (val) {
77
- // 路口状态数据
78
- this.statusData = JSON.parse(JSON.stringify(val))
79
- this.phaseStatusList = val.phase
80
- this.overlapStatusList = val.overlap
81
- if (val.control === 1 || val.control === 2 || val.control === 3) {
82
- // 黄闪、全红、关灯属于特殊控制,优先级最高,直接改变灯色,不用判断phase里的type,也不需要考虑跟随相位的灯色优先级
83
- this.SpecialControl(val)
84
- return
85
- }
86
- if (!val.phase && !this.overlapStatusList) {
87
- // 非特殊控制,相位和跟随相位不存在的情况下,灯色恢复默认
88
- this.handleSpecialControlStatus('默认')
89
- return
90
- }
91
- this.curPhase = val.current_phase
92
- this.isHasPhase = true
93
- this.createPhaseStatusMap()
94
- this.createOverlapPhaseStatusMap()
95
- this.getLanePhaseStatusData()
96
- this.getpedStatus()
97
- this.getCurPhaseCountdown()
98
- },
99
- // 深度观察监听
100
- deep: true
101
- },
102
- detectorStatusData: {
103
- handler: function (detectorsStatus) {
104
- // 检测器状态数据
105
- this.detectorStatusList = detectorsStatus.detector
106
- this.pedDetectorStatusList = detectorsStatus.io
107
- this.createDetectorStatusMap()
108
- this.getDetectorStatus()
109
- },
110
- deep: true
111
- },
112
- AgentId: {
113
- handler: function (val) {
114
- // 平台设备切换时,重载当前路口保存的渠化配置
115
- this.load('all')
116
- },
117
- deep: true
118
- }
119
- },
120
- data () {
121
- return {
122
- isSeletable: false,
123
- bodyDomWidth: 352,
124
- bodyDomSize: {
125
- width: 1920,
126
- height: 1080
127
- },
128
- CrossMapVisible: true, // 控制底图显示隐藏
129
- CrossMapData: {
130
- svgstr: '',
131
- imgfilesrc: ''
132
- }, // 管理底图数据
133
- Motorways: [],
134
- Texts: [],
135
- Pedwalk: [],
136
- Countdown: [],
137
- Detector: [],
138
- allitem: {
139
- x: 435,
140
- y: 325,
141
- w: 870,
142
- h: 650,
143
- angle: 0
144
- },
145
- LanePhaseData: [], // 车道相位数据
146
- // overlapLanePhaseData: [], // 车道跟随相位数据
147
- curPhase: [], // 当前相位列表
148
- phaseStatusList: [], // 相位状态列表
149
- phaseStatusMap: new Map(), // 相位状态映射
150
- phaseCountdownList: [], // 相位倒计时列表
151
- overlapPhaseStatusMap: new Map(), // 跟随相位状态映射
152
- ColorMap: new Map([[0, '#828282'], [1, '#ff2828'], [2, '#f7b500'], [3, '#77fb65'], [4, '#77fb65'], [5, '#f7b500']]), // 当前相位状态 --- 0:关灯, 1:红, 2:黄, 3:绿, 4:绿闪, 5:黄闪
153
- SidewalkColorMap: new Map([[0, '#828282'], [1, '#e24b4b'], [3, '#7bd66b']]),
154
- phaseControlColorMap: new Map([['黄闪', '#f7b500'], ['全红', '#ff2828'], ['关灯', '#828282'], ['默认', '#fff']]),
155
- sidewalkPhaseData: [], // 行人相位
156
- isHasPhase: true, // 是否有相位状态数据
157
-
158
- detectorStatusList: [], // 车辆检测器状态列表
159
- pedDetectorStatusList: [], // 行人检测器状态列表
160
- detectorStatusMap: new Map(), // 车辆检测器状态映射
161
- pedDetectorStatusMap: new Map(), // 行人检测器状态映射
162
- DetectorData: [], // 检测器数据(包括车辆和行人)
163
- DetectorColorMap: new Map([[0, 'transparent'], [1, '#00CCFF'], [2, '#FF0000']]) // 检测器状态填充颜色定义 0: 低电平 无车, 1: 高电平 有车, 2: 故障
164
- }
165
- },
166
- methods: {
167
- createPhaseStatusMap () {
168
- // 生成相位id和相位状态对应数据结构
169
- this.phaseStatusList.map(phase => {
170
- let phaseId = phase.id
171
- let phaseInfo = {
172
- type: phase.type,
173
- phaseCountdown: phase.countdown,
174
- pedtype: phase.pedtype
175
- }
176
- this.phaseStatusMap.set(phaseId, phaseInfo)
177
- })
178
- },
179
- createOverlapPhaseStatusMap () {
180
- if (this.overlapStatusList) {
181
- this.overlapStatusList.map(phase => {
182
- let phaseId = phase.id
183
- let phaseInfo = {
184
- type: phase.type,
185
- phaseCountdown: phase.countdown,
186
- pedtype: phase.pedtype
187
- }
188
- this.overlapPhaseStatusMap.set(phaseId, phaseInfo)
189
- })
190
- }
191
- },
192
- getLanePhaseStatusData () {
193
- let curLanePhaseData = []
194
- for (let i = 0; i < this.LanePhaseData.length; i++) {
195
- let curPhaseStatus
196
- if (this.LanePhaseData[i].phasetype === 'phase') {
197
- curPhaseStatus = this.phaseStatusMap.get(this.LanePhaseData[i].phaseid)
198
- }
199
- if (this.LanePhaseData[i].phasetype === 'overlap') {
200
- curPhaseStatus = this.overlapPhaseStatusMap.get(this.LanePhaseData[i].phaseid)
201
- }
202
- // if (!curPhaseStatus) continue // 没有关联相位的车道不显示
203
- let data
204
- if (curPhaseStatus) {
205
- data = {
206
- ...this.LanePhaseData[i],
207
- type: curPhaseStatus.type,
208
- color: this.ColorMap.get(curPhaseStatus.type),
209
- phaseCountdown: curPhaseStatus.phaseCountdown,
210
- flag: 'phase' // 车道相位数据标识
211
- }
212
- } else {
213
- // 没有关联的,或者没有对应状态的,车道显示默认白色
214
- data = {
215
- ...this.LanePhaseData[i],
216
- type: undefined,
217
- color: '#fff',
218
- flag: 'phase' // 车道相位数据标识
219
- }
220
- }
221
- curLanePhaseData.push(data)
222
- }
223
- this.LanePhaseData = JSON.parse(JSON.stringify(curLanePhaseData))
224
- // console.log(this.LanePhaseData)
225
- },
226
- getpedStatus () {
227
- // 行人相位状态
228
- let curPedStatus = []
229
- for (let i = 0; i < this.sidewalkPhaseData.length; i++) {
230
- let curPhaseStatus
231
- if (this.sidewalkPhaseData[i].phasetype === 'phase') {
232
- curPhaseStatus = this.phaseStatusMap.get(this.sidewalkPhaseData[i].phaseid)
233
- }
234
- if (this.sidewalkPhaseData[i].phasetype === 'overlap') {
235
- curPhaseStatus = this.overlapPhaseStatusMap.get(this.sidewalkPhaseData[i].phaseid)
236
- }
237
- // if (!curPhaseStatus) continue
238
- let data
239
- if (curPhaseStatus) {
240
- data = {
241
- ...this.sidewalkPhaseData[i],
242
- pedtype: curPhaseStatus.pedtype,
243
- color: this.SidewalkColorMap.get(curPhaseStatus.pedtype),
244
- flag: 'ped' // 行人相位数据标识
245
- }
246
- } else {
247
- // 接口没有对应的状态
248
- data = {
249
- ...this.sidewalkPhaseData[i],
250
- pedtype: undefined,
251
- color: '#fff',
252
- flag: 'ped' // 行人相位数据标识
253
- }
254
- }
255
- curPedStatus.push(data)
256
- }
257
- this.sidewalkPhaseData = JSON.parse(JSON.stringify(curPedStatus))
258
- // this.Pedwalk = JSON.parse(JSON.stringify(this.sidewalkPhaseData))
259
- },
260
- getCurPhaseCountdown () {
261
- // 获取当前相位倒计时颜色
262
- let phaseCountdownList = []
263
- this.curPhase.forEach(curP => {
264
- this.phaseStatusList.forEach(phaseInfo => {
265
- if (phaseInfo.id === curP) {
266
- let countdownObj = {}
267
- countdownObj.id = phaseInfo.id
268
- countdownObj.phaseCountdown = phaseInfo.countdown
269
- countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
270
- phaseCountdownList.push(countdownObj)
271
- }
272
- })
273
- })
274
- this.phaseCountdownList = JSON.parse(JSON.stringify(phaseCountdownList))
275
- // console.log(this.phaseCountdownList)
276
- },
277
- // 加载
278
- load (type) {
279
- this.getChannelizatonChart().then((channelizatondata) => {
280
- let savedTemp = JSON.parse(JSON.stringify(channelizatondata))
281
- for (const [key, value] of Object.entries(savedTemp)) {
282
- if (key === 'vehile') {
283
- this.Motorways = value
284
- }
285
- if (key === 'text') {
286
- this.Texts = value
287
- }
288
- if (key === 'ped') {
289
- this.Pedwalk = value
290
- }
291
- if (key === 'countdown') {
292
- this.Countdown = value
293
- }
294
- if (key === 'detector') {
295
- this.Detector = value.filter(ele => ele.detailtype === 'detector')
296
- }
297
- if (key === 'crossMap') {
298
- this.CrossMapData = JSON.parse(JSON.stringify(value))
299
- if (value.type === 'vectorgraph') {
300
- // svg底图,只加载底图870*650区域范围内的元素
301
- let { svgstr, ...allitem } = value
302
- this.allitem = allitem
303
- } else {
304
- this.allitem = {
305
- x: 435,
306
- y: 325,
307
- w: 870,
308
- h: 650,
309
- angle: 0
310
- }
311
- }
312
- }
313
- }
314
- this.isSeletable = false
315
- // 从接口得到所有渠化车道和人行道数据
316
- this.LanePhaseData = JSON.parse(JSON.stringify(this.Motorways))
317
- this.sidewalkPhaseData = JSON.parse(JSON.stringify(this.Pedwalk))
318
- this.DetectorData = JSON.parse(JSON.stringify(this.Detector))
319
- })
320
- },
321
- // 重置
322
- handleReset () {
323
- this.Texts = []
324
- this.Motorways = []
325
- this.Countdown = []
326
- this.phaseCountdownList = []
327
- this.Pedwalk = []
328
- this.Detector = []
329
- this.CrossMapData = {
330
- svgstr: '',
331
- imgfilesrc: ''
332
- }
333
- this.LanePhaseData = []
334
- this.sidewalkPhaseData = []
335
- this.DetectorData = []
336
- this.isHasPhase = true
337
- },
338
- getChannelizatonChart () {
339
- // let agentid = getIframdevid()
340
- // 路口已设置渠化,则总览默认显示渠化路口,未设置显示模版路口
341
- // if (this.isfromatc === true) {
342
- // this.$store.dispatch('SetShowHomePage', 'Graphical')
343
- // }
344
- this.handleReset()
345
- return new Promise((resolve, reject) => {
346
- getChannelizatonChart(this.AgentId).then(data => {
347
- this.$emit('getChannelizationSetting', data)
348
- if (!data.data.success) {
349
- // let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
350
- // if (data.data.data) {
351
- // // 子类型错误
352
- // let childErrorCode = data.data.data.errorCode
353
- // if (childErrorCode) {
354
- // let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
355
- // this.$message.error(parrenterror + ',' + childerror)
356
- // }
357
- // } else {
358
- // this.$message.error(parrenterror)
359
- // }
360
- return
361
- }
362
- if (JSON.stringify(data.data.data) === '{}') return
363
- // if (this.isfromatc === true) {
364
- // this.$store.dispatch('SetShowHomePage', 'Channelization')
365
- // }
366
- this.handleReset()
367
- let channelizatondata = data.data.data
368
- resolve(channelizatondata)
369
- })
370
- })
371
- },
372
- SpecialControl (data) {
373
- switch (data.control) {
374
- case 1: this.handleSpecialControlStatus('黄闪')
375
- break
376
- case 2: this.handleSpecialControlStatus('全红')
377
- break
378
- case 3: this.handleSpecialControlStatus('关灯')
379
- break
380
- default: this.handleSpecialControlStatus('默认')
381
- }
382
- },
383
- handleSpecialControlStatus (Control) {
384
- this.$refs.channelizationElements.resetPhaseStatus()
385
- // 控制黄闪、全红、关灯、默认情况下的车道相位颜色和倒计时颜色
386
- if (Control === '默认') {
387
- // 倒计时恢复默认颜色
388
- this.phaseCountdownList.forEach(item => {
389
- item.phaseCountdown = ''
390
- item.id = ''
391
- item.phaseCountdownColor = '#fff'
392
- })
393
- }
394
- if (this.LanePhaseData.length) {
395
- const LanePhaseData = this.LanePhaseData.map(data => ({
396
- ...data,
397
- color: this.phaseControlColorMap.get(Control)
398
- }))
399
- this.LanePhaseData = JSON.parse(JSON.stringify(LanePhaseData))
400
- }
401
- if (this.sidewalkPhaseData.length) {
402
- const sidewalkPhaseData = this.sidewalkPhaseData.map(data => ({
403
- ...data,
404
- color: this.phaseControlColorMap.get(Control)
405
- }))
406
- this.sidewalkPhaseData = JSON.parse(JSON.stringify(sidewalkPhaseData))
407
- }
408
- this.isHasPhase = false
409
- },
410
- createDetectorStatusMap () {
411
- if (this.detectorStatusList) {
412
- this.detectorStatusList.map(detector => {
413
- let detectorId = detector.id
414
- let detectorInfo = {
415
- state: detector.state
416
- }
417
- this.detectorStatusMap.set(detectorId, detectorInfo)
418
- })
419
- }
420
- if (this.pedDetectorStatusList) {
421
- this.pedDetectorStatusList.map(peddetector => {
422
- let peddetectorId = peddetector.id
423
- let peddetectorInfo = {
424
- state: peddetector.state
425
- }
426
- this.pedDetectorStatusMap.set(peddetectorId, peddetectorInfo)
427
- })
428
- }
429
- // console.log(this.detectorStatusMap)
430
- // console.log(this.pedDetectorStatusMap)
431
- },
432
- getDetectorStatus () {
433
- let curDetectorData = []
434
- for (let i = 0; i < this.DetectorData.length; i++) {
435
- let curDetectorStatus
436
- let curDetectortype = this.DetectorData[i].detectortype
437
- if (curDetectortype === 1) {
438
- // 车辆检测器
439
- curDetectorStatus = this.detectorStatusMap.get(this.DetectorData[i].detectorid)
440
- }
441
- if (curDetectortype === 2) {
442
- // 行人检测器
443
- curDetectorStatus = this.pedDetectorStatusMap.get(this.DetectorData[i].detectorid)
444
- }
445
- // if (!curDetectorStatus) continue // 没有关联检测器不显示
446
- let data
447
- if (curDetectorStatus) {
448
- data = {
449
- ...this.DetectorData[i],
450
- state: curDetectorStatus.state,
451
- fillcolor: this.DetectorColorMap.get(curDetectorStatus.state),
452
- flag: curDetectortype === 1 ? 'detector' : 'peddetector' // 车道相位数据标识
453
- }
454
- } else {
455
- // 没有关联检测器的填充透明
456
- data = {
457
- ...this.DetectorData[i],
458
- state: undefined,
459
- fillcolor: 'transparent',
460
- flag: curDetectortype === 1 ? 'detector' : 'peddetector' // 车道相位数据标识
461
- }
462
- }
463
- curDetectorData.push(data)
464
- }
465
- this.DetectorData = JSON.parse(JSON.stringify(curDetectorData))
466
- },
467
- getParentSize () {
468
- // 获取最外层dom尺寸,适配准备
469
- var _this = this
470
- this.$nextTick(function () {
471
- if (this.$el.parentElement === null || this.$el.parentElement === undefined) return
472
- this.bodyDomSize.width = this.$el.parentElement.clientWidth
473
- this.bodyDomWidth = this.bodyDomSize.width
474
- window.addEventListener('resize', () => {
475
- // 定义窗口大小变更通知事件
476
- _this.bodyDomSize.width = _this.$el.parentElement.clientWidth
477
- this.bodyDomWidth = this.bodyDomSize.width
478
- console.log('resize this.bodyDomSize.width', _this.bodyDomSize.width)
479
- }, false)
480
- })
481
- }
482
- },
483
- created () {
484
- this.load()
485
- },
486
- mounted () {
487
- this.getParentSize()
488
- },
489
- destroyed () {
490
- this.handleReset()
491
- }
492
- }
493
- </script>
494
-
495
- <style lang="css" rel="stylesheet/scss">
496
- .show-channelization {
497
- position: relative;
498
- }
499
- .superlargeCrossImg {
500
- zoom: 1;
501
- }
502
- .largeCrossImg {
503
- zoom: 0.9;
504
-
505
- }
506
- .middleCrossImg {
507
- zoom: 0.8;
508
- }
509
- .smallCrossImg {
510
- zoom: 0.65;
511
- }
512
- .miniCrossImg {
513
- zoom: 0.5;
514
- }
515
- .superminiCrossImg {
516
- zoom: 0.45;
517
- }
518
- .minimumCrossImg {
519
- zoom: 0.35;
520
- }
521
- .transMiddleCrossImg {
522
- -webkit-transform-origin-y: 0;
523
- transform: scale(0.55);
524
- margin-top: 3%;
525
- padding: 0PX;
526
- }
527
- .transMiddleCrossImg2 {
528
- -webkit-transform-origin-y: 0;
529
- transform: scale(0.38);
530
- margin-top: -1.5%;
531
- padding: 0PX;
532
- }
533
- .transMiddleCrossImg3 {
534
- -webkit-transform-origin-y: 0;
535
- transform: scale(0.32);
536
- margin-top: -1%;
537
- padding: 0PX;
538
- }
539
- .transMiniCrossImg {
540
- -webkit-transform-origin-y: 0;
541
- transform: scale(0.28);
542
- margin-top: -1.6%;
543
- padding: 0PX;
544
- }
545
- </style>
@@ -1,2 +0,0 @@
1
- import Channelization from './Channelization.vue'
2
- export default Channelization