openatc-components 0.4.56 → 0.4.58

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.
@@ -141,6 +141,10 @@ export default {
141
141
  initSelection () {
142
142
  this.getIntersectionInfo()
143
143
  this.getPlatform()
144
+ },
145
+ refresh () {
146
+ // 刷新底图
147
+ this.$refs.intersectionMap2.resetCrossDiagram()
144
148
  }
145
149
  },
146
150
  mounted () {
@@ -94,6 +94,10 @@
94
94
  <BusMapSvg v-for="(item, index) in comdireBusPhaseData" :key="'Busmap-' + item.key + '-' + index" :Data="item" />
95
95
  <PhaseIconSvg v-for="(item, index) in comdireBusPhaseData" :key="item.key + '-' + index" :Data="item"/>
96
96
  </div>
97
+ <!-- 有效方向 -->
98
+ <div v-if="isVipRoute" class="effectDir">
99
+ <PhaseIconSvg v-for="(item, index) in effectDirData" :key="item.key + '-' + index" :Data="item" />
100
+ </div>
97
101
  </div>
98
102
  <!-- 匝道状态 -->
99
103
  <!-- 车道相位 -->
@@ -200,6 +204,7 @@ import { getMessageByCode } from '../../../../utils/responseMessage.js'
200
204
 
201
205
  import CrossDirectionConflictList from '../../../../utils/conflictList.js'
202
206
  import RingDataModel from '../../../../utils/RingDataModel.js'
207
+ import { getValidDirections } from '../../../../api/cross.js'
203
208
 
204
209
  export default {
205
210
  name: 'crossDiagram',
@@ -395,7 +400,8 @@ export default {
395
400
  isHasStageCountdown: false,
396
401
  contrloType: 'ring',
397
402
  isMphaseStatusDataReturnMap: new Map(), // 每个跟随相位的母相位是否返回了相位状态数据
398
- overlapStatusCompareSum: 0 // 首次加载跳过比较母相位状态数据是否返回
403
+ overlapStatusCompareSum: 0, // 首次加载跳过比较母相位状态数据是否返回
404
+ effectDirData: [] // 路口有效方向
399
405
  }
400
406
  },
401
407
  methods: {
@@ -859,6 +865,9 @@ export default {
859
865
  // 获取车道相位、行人相位信息(坐标、名称)
860
866
  this.mainType = this.tempType.split('-')[0]
861
867
  this.mainDirection = this.tempType.split('-')[1]
868
+ if (this.isVipRoute) {
869
+ this.getValidDirections()
870
+ }
862
871
  if (this.isVipRoute && !this.isThirdSignal) {
863
872
  // 特勤、分组管控下,非第三方设备,按通道显示相位方向;第三方设备还是按路口相位配置显示相位方向
864
873
  this.getChannelInfo()
@@ -1066,6 +1075,21 @@ export default {
1066
1075
  this.overlapsidewalkPhaseData = Array.from(new Set(this.overlapsidewalkPhaseData.map(item => item.id)))
1067
1076
  .map(id => this.overlapsidewalkPhaseData.find(item => item.id === id))
1068
1077
  },
1078
+ getEffectDirectionPos () {
1079
+ this.effectDirData = []
1080
+ // this.effectiveDirection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
1081
+ this.effectiveDirection.forEach((dir, i) => {
1082
+ this.effectDirData.push({
1083
+ key: this.CrossDiagramMgr.getUniqueKey('effectiveDir'),
1084
+ id: dir,
1085
+ name: this.PhaseDataModel.getEffectPos(dir).name,
1086
+ left: this.PhaseDataModel.getEffectPos(dir).x,
1087
+ top: this.PhaseDataModel.getEffectPos(dir).y,
1088
+ color: 'rgba(9, 31, 64, 0.5)'
1089
+ })
1090
+ })
1091
+ console.log(this.effectDirData)
1092
+ },
1069
1093
  getCrossType () {
1070
1094
  // 路口类型对应底图决策
1071
1095
  if (this.mainType === '101') {
@@ -1459,6 +1483,16 @@ export default {
1459
1483
  }
1460
1484
  }
1461
1485
  this.compSidewalkPhaseData = JSON.parse(JSON.stringify(curPedStatus))
1486
+ },
1487
+ getValidDirections () {
1488
+ getValidDirections(this.agentId).then((data) => {
1489
+ if (!data.data.success) {
1490
+ this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
1491
+ return
1492
+ }
1493
+ this.effectiveDirection = data.data.data.validDirections || []
1494
+ this.getEffectDirectionPos()
1495
+ })
1462
1496
  }
1463
1497
  },
1464
1498
  mounted () {
@@ -0,0 +1,115 @@
1
+ {
2
+ "effectDirectionList": [{
3
+ "id": 1,
4
+ "name": "东直行",
5
+ "ename": "East-Straight",
6
+ "x": "530px",
7
+ "y": "267px"
8
+ },
9
+ {
10
+ "id": 2,
11
+ "name": "东左转",
12
+ "ename": "East-Left",
13
+ "x": "530px",
14
+ "y": "297px"
15
+ },
16
+ {
17
+ "id": 3,
18
+ "name": "东右转",
19
+ "ename": "East-Right",
20
+ "x": "530px",
21
+ "y": "238px"
22
+ },
23
+ {
24
+ "id": 4,
25
+ "name": "东掉头",
26
+ "ename": "East-Back",
27
+ "x": "530px",
28
+ "y": "325px"
29
+ },
30
+ {
31
+ "id": 5,
32
+ "name": "西直行",
33
+ "ename": "West-Straight",
34
+ "x": "306px",
35
+ "y": "359px"
36
+ },
37
+ {
38
+ "id": 6,
39
+ "name": "西左转",
40
+ "ename": "West-Left",
41
+ "x": "306px",
42
+ "y": "329px"
43
+ },
44
+ {
45
+ "id": 7,
46
+ "name": "西右转",
47
+ "ename": "West-Right",
48
+ "x": "306px",
49
+ "y": "388px"
50
+ },
51
+ {
52
+ "id": 8,
53
+ "name": "西掉头",
54
+ "ename": "West-Back",
55
+ "x": "306px",
56
+ "y": "300px"
57
+ },
58
+ {
59
+ "id": 9,
60
+ "name": "北直行",
61
+ "ename": "North-Straight",
62
+ "x": "379px",
63
+ "y": "196px"
64
+ },
65
+ {
66
+ "id": 10,
67
+ "name": "北左转",
68
+ "ename": "North-Left",
69
+ "x": "408px",
70
+ "y": "196px"
71
+ },
72
+ {
73
+ "id": 11,
74
+ "name": "北右转",
75
+ "ename": "North-Right",
76
+ "x": "348px",
77
+ "y": "196px"
78
+ },
79
+ {
80
+ "id": 12,
81
+ "name": "北掉头",
82
+ "ename": "North-Back",
83
+ "x": "436px",
84
+ "y": "196px"
85
+ },
86
+ {
87
+ "id": 13,
88
+ "name": "南直行",
89
+ "ename": "South-Straight",
90
+ "x": "470px",
91
+ "y": "421px"
92
+ },
93
+ {
94
+ "id": 14,
95
+ "name": "南左转",
96
+ "ename": "South-Left",
97
+ "x": "440px",
98
+ "y": "421px"
99
+ },
100
+ {
101
+ "id": 15,
102
+ "name": "南右转",
103
+ "ename": "South-Right",
104
+ "x": "500px",
105
+ "y": "421px"
106
+ },
107
+ {
108
+ "id": 16,
109
+ "name": "南掉头",
110
+ "ename": "South-Back",
111
+ "x": "412px",
112
+ "y": "421px"
113
+ }
114
+ ]
115
+ }
@@ -19,6 +19,7 @@ export default class PhaseDataModel {
19
19
  this.RampSidePosMap = new Map() // 匝道支路坐标
20
20
  this.BusMapMap = new Map() // 公交相位底图坐标
21
21
  this.BusPhaseMap = new Map() // 公交相位坐标
22
+ this.EffectPosMap = new Map() // 有效方向坐标
22
23
  this.roadDirection = roadDirection
23
24
  this.Init()
24
25
  }
@@ -28,6 +29,7 @@ export default class PhaseDataModel {
28
29
  let rampJson = require('./posJson/rampPos.json')
29
30
  let busMapJson = require('./posJson/busPos.json').busMap
30
31
  let busPhaseJson = require('./posJson/busPos.json').busphases
32
+ let effectJson = require('./posJson/effectPos.json').effectDirectionList
31
33
  if (this.roadDirection === 'left') {
32
34
  phaseJson = require('./posJson/phasePos.left.json').phaseList
33
35
  busMapJson = require('./posJson/busPos.left.json').busMap
@@ -39,6 +41,7 @@ export default class PhaseDataModel {
39
41
  this.handlePos(rampJson.rampSidePhaseList, this.RampSidePosMap)
40
42
  this.handlePos(busMapJson, this.BusMapMap)
41
43
  this.handlePos(busPhaseJson, this.BusPhaseMap)
44
+ this.handlePos(effectJson, this.EffectPosMap)
42
45
  }
43
46
 
44
47
  handlePos (phaseJson, phaseMap) {
@@ -81,4 +84,8 @@ export default class PhaseDataModel {
81
84
  getBusPhasePos (id) {
82
85
  return this.BusPhaseMap.get(id)
83
86
  }
87
+
88
+ getEffectPos (id) {
89
+ return this.EffectPosMap.get(id)
90
+ }
84
91
  }