openatc-components 0.2.70 → 0.2.72
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.
- package/package/kisscomps/components/BoardCard/BoardCard.vue +0 -4
- package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +429 -0
- package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +65 -11
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +17 -94
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +5 -98
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +11 -7
- package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +9 -5
- package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +7 -5
- package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +41 -10
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +9 -5
- package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +12 -8
- package/package/kisscomps/components/Stages/index.vue +2 -1
- package/package/kisscomps/components/patternList/patternList.vue +0 -4
- package/package/kissui.min.js +1 -1
- package/package.json +1 -1
- package/src/api/cross.js +4 -0
- package/src/api/template.js +4 -0
- package/src/i18n/language/zh.js +2 -2
- package/src/kisscomps/components/BoardCard/BoardCard.vue +0 -4
- package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +65 -11
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +17 -94
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +5 -98
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +11 -7
- package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +9 -5
- package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +7 -5
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +41 -10
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +9 -5
- package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +12 -8
- package/src/kisscomps/components/Stages/index.vue +2 -1
- package/src/kisscomps/components/patternList/patternList.vue +0 -4
- package/src/views/overView.vue +1 -1
- package/static/styles/commonkanban.scss +3 -3
- package/static/styles/overview.scss +2 -2
- package/static/styles/schemeconfig.scss +38 -23
- package/src/node_modules/.package_versions.json +0 -1
package/package.json
CHANGED
package/src/api/cross.js
CHANGED
|
@@ -22,6 +22,10 @@ export const getDuration = (data) => {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export const getChannelizatonChart = (agentid) => {
|
|
25
|
+
if (!agentid || agentid === '0') {
|
|
26
|
+
console.log('getChannelizatonChart agentid:', agentid)
|
|
27
|
+
return false
|
|
28
|
+
}
|
|
25
29
|
let api = new Authapi('getChannelizatonChart')
|
|
26
30
|
return api.Send({}, {}, [agentid])
|
|
27
31
|
}
|
package/src/api/template.js
CHANGED
|
@@ -20,6 +20,10 @@ export function createTemplate (param) {
|
|
|
20
20
|
return api.Send({}, param, [])
|
|
21
21
|
}
|
|
22
22
|
export function getIntersectionInfo (agentid) {
|
|
23
|
+
if (!agentid || agentid === '0') {
|
|
24
|
+
console.log('getIntersectionInfo agentid:', agentid)
|
|
25
|
+
return false
|
|
26
|
+
}
|
|
23
27
|
// 获取路口类型和相位信息
|
|
24
28
|
let api = new Authapi('getIntersectionInfo')
|
|
25
29
|
let paramList = [agentid]
|
package/src/i18n/language/zh.js
CHANGED
|
@@ -264,7 +264,7 @@ const zh = {
|
|
|
264
264
|
'modelList21': '预留21',
|
|
265
265
|
'modelList22': '相位锁定',
|
|
266
266
|
'modelList25': '方位锁定',
|
|
267
|
-
'modelList23': '
|
|
267
|
+
'modelList23': '相位关断',
|
|
268
268
|
'modelList100': '临时方案',
|
|
269
269
|
'modelList101': '方向锁定',
|
|
270
270
|
'modelList24': '优先控制',
|
|
@@ -446,7 +446,7 @@ const zh = {
|
|
|
446
446
|
'delaystart': '晚启动时间 ',
|
|
447
447
|
'advanceend': '早结束时间',
|
|
448
448
|
'stageConfig': '阶段配置',
|
|
449
|
-
'parameters': '
|
|
449
|
+
'parameters': '扩展参数',
|
|
450
450
|
'overLap': '跟随相位',
|
|
451
451
|
'plan': '方案',
|
|
452
452
|
'patternOptimize': '方案优化',
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
:controlPhase="controlPhase"
|
|
13
13
|
:localPatternList="localPatternList"
|
|
14
14
|
:showCondition="showCondition"
|
|
15
|
-
:patternType="patternType"
|
|
16
15
|
:contrloType="contrloType"
|
|
17
16
|
:allPatternList="allPatternList"
|
|
18
17
|
:stagesChange="stagesChange"
|
|
@@ -88,9 +87,6 @@ export default {
|
|
|
88
87
|
patternId: {
|
|
89
88
|
type: Number
|
|
90
89
|
},
|
|
91
|
-
patternType: {
|
|
92
|
-
type: String
|
|
93
|
-
},
|
|
94
90
|
agentId: {
|
|
95
91
|
type: String
|
|
96
92
|
},
|
|
@@ -32,11 +32,14 @@
|
|
|
32
32
|
<div class="right-dir-road" v-if="roadDir === 'right'">
|
|
33
33
|
<div class="centerText" v-if="crossType !== 'Customroads' && isHasPhase">
|
|
34
34
|
<!-- 相位倒计时 -->
|
|
35
|
-
<div class="phaseCountdown" v-show="isShowInterval" v-if="isLoaded && isHasPhase" :class="{'countdownBg': isLoaded}">
|
|
35
|
+
<div class="phaseCountdown" v-show="isShowInterval" v-if="isLoaded && isHasPhase && isHasCountdown" :class="{'countdownBg': isLoaded}">
|
|
36
36
|
<div v-for="curPhase in phaseCountdownList" :key="curPhase.id" :style="{color: curPhase.phaseCountdownColor}">
|
|
37
|
-
<div v-if="curPhase.phaseCountdown !== -1">
|
|
38
|
-
<span style="float: left;
|
|
39
|
-
|
|
37
|
+
<div v-if="curPhase.phaseCountdown !== undefined && curPhase.phaseCountdown !== -1" style="overflow: hidden;margin-bottom: 4px;">
|
|
38
|
+
<span style="float: left;width: 33px;height: 33px;position: relative;border: 1px solid rgba(255, 255, 255, 0.1);margin-right: 7px;">
|
|
39
|
+
<xdr-dir-selector :Data="xdrData" :Datas="xdrpedData" Width="42px" Height="42px" Widths="42px" Heights="42px" :showlist="curPhase.showlist" :roadDirection="roadDirection"></xdr-dir-selector>
|
|
40
|
+
</span>
|
|
41
|
+
<span style="float: left;color: #fff;margin-right: 10px;width: 30px;">P{{curPhase.id}}:</span>
|
|
42
|
+
<span style="float: left;font-size: 20px;">{{curPhase.phaseCountdown}}</span>
|
|
40
43
|
</div>
|
|
41
44
|
</div>
|
|
42
45
|
</div>
|
|
@@ -375,7 +378,16 @@ export default {
|
|
|
375
378
|
comdirePhaseData: [], // 对比相同方向车道相位数据后,被删减的唯一direction的数组
|
|
376
379
|
comdireOverlapPhaseData: [], // 对比相同方向车道跟随相位数据后,被删减的唯一direction的数组
|
|
377
380
|
busPhaseData: [], // 公交相位数据
|
|
378
|
-
comdireBusPhaseData: [] // 对比相同方向公交车道数据后,被删减的唯一direction的数组
|
|
381
|
+
comdireBusPhaseData: [], // 对比相同方向公交车道数据后,被删减的唯一direction的数组
|
|
382
|
+
phaseDirMap: new Map(),
|
|
383
|
+
xdrData: {
|
|
384
|
+
left: '5px',
|
|
385
|
+
top: '4px'
|
|
386
|
+
},
|
|
387
|
+
xdrpedData: {
|
|
388
|
+
left: '1px',
|
|
389
|
+
top: '1px'
|
|
390
|
+
}
|
|
379
391
|
}
|
|
380
392
|
},
|
|
381
393
|
methods: {
|
|
@@ -627,6 +639,7 @@ export default {
|
|
|
627
639
|
getCurPhaseCountdown () {
|
|
628
640
|
// 获取当前相位倒计时颜色
|
|
629
641
|
this.phaseCountdownList = []
|
|
642
|
+
this.isHasCountdown = false
|
|
630
643
|
this.curPhase.forEach(curP => {
|
|
631
644
|
this.phaseStatusList.forEach(phaseInfo => {
|
|
632
645
|
if (phaseInfo.id === curP) {
|
|
@@ -634,11 +647,35 @@ export default {
|
|
|
634
647
|
countdownObj.id = phaseInfo.id
|
|
635
648
|
countdownObj.phaseCountdown = phaseInfo.countdown
|
|
636
649
|
countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
|
|
650
|
+
let curphasedir = this.phaseDirMap.get(phaseInfo.id)
|
|
651
|
+
if (curphasedir !== undefined) {
|
|
652
|
+
countdownObj.showlist = curphasedir.direction.map(dir => {
|
|
653
|
+
return {
|
|
654
|
+
id: dir,
|
|
655
|
+
peddirection: this.getshowped(curphasedir.peddirection),
|
|
656
|
+
color: '#fff'
|
|
657
|
+
}
|
|
658
|
+
})
|
|
659
|
+
} else {
|
|
660
|
+
countdownObj.showlist = []
|
|
661
|
+
}
|
|
662
|
+
|
|
637
663
|
this.phaseCountdownList.push(countdownObj)
|
|
664
|
+
if (phaseInfo.countdown !== undefined && phaseInfo.countdown !== -1) {
|
|
665
|
+
this.isHasCountdown = true
|
|
666
|
+
}
|
|
638
667
|
}
|
|
639
668
|
})
|
|
640
669
|
})
|
|
641
670
|
},
|
|
671
|
+
getshowped (peddirection) {
|
|
672
|
+
let peddirarr = peddirection.map(peddir => ({
|
|
673
|
+
id: peddir,
|
|
674
|
+
name: this.PhaseDataModel.getSidePos(peddir).name,
|
|
675
|
+
color: 'rgba(255, 255, 255, 0.4)'
|
|
676
|
+
}))
|
|
677
|
+
return peddirarr
|
|
678
|
+
},
|
|
642
679
|
getIntersectionInfo () {
|
|
643
680
|
// 获取路口信息
|
|
644
681
|
const agentid = this.agentId || '0'
|
|
@@ -670,6 +707,7 @@ export default {
|
|
|
670
707
|
return
|
|
671
708
|
}
|
|
672
709
|
this.crossInfo = res.data.data.param
|
|
710
|
+
this.crossInfo.phaseList.forEach(cross => this.phaseDirMap.set(cross.id, {direction: cross.direction, peddirection: cross.peddirection}))
|
|
673
711
|
if (this.mainType === '100' || this.mainType === '101' || this.mainType === '104') {
|
|
674
712
|
// 城市道路加载车道相位坐标和人行道坐标
|
|
675
713
|
this.getPhasePos()
|
|
@@ -966,19 +1004,33 @@ export default {
|
|
|
966
1004
|
},
|
|
967
1005
|
handleRepeatRealdir (channelList) {
|
|
968
1006
|
// 按realdir去掉重复方向的数据
|
|
1007
|
+
let dirChannelList = channelList.filter(ele => ele.type === 0 || ele.type === 1 || ele.type === 3)
|
|
1008
|
+
let pedDirChannelList = channelList.filter(ele => ele.type === 2)
|
|
969
1009
|
let map = new Map()
|
|
970
|
-
|
|
1010
|
+
let map2 = new Map()
|
|
1011
|
+
dirChannelList.forEach(ele => {
|
|
971
1012
|
ele.realdir.forEach(dir => {
|
|
972
1013
|
if (map.get(dir) === undefined) {
|
|
973
1014
|
map.set(dir, ele)
|
|
974
1015
|
}
|
|
975
1016
|
})
|
|
976
1017
|
})
|
|
1018
|
+
pedDirChannelList.forEach(ele => {
|
|
1019
|
+
ele.realdir.forEach(dir => {
|
|
1020
|
+
if (map2.get(dir) === undefined) {
|
|
1021
|
+
map2.set(dir, ele)
|
|
1022
|
+
}
|
|
1023
|
+
})
|
|
1024
|
+
})
|
|
977
1025
|
let arr = Array.from(map)
|
|
1026
|
+
let pedarr = Array.from(map2)
|
|
978
1027
|
let newarr = []
|
|
979
1028
|
arr.forEach(ele => {
|
|
980
1029
|
newarr.push(ele[1])
|
|
981
1030
|
})
|
|
1031
|
+
pedarr.forEach(ele => {
|
|
1032
|
+
newarr.push(ele[1])
|
|
1033
|
+
})
|
|
982
1034
|
// console.log(newarr)
|
|
983
1035
|
return newarr
|
|
984
1036
|
},
|
|
@@ -1172,8 +1224,8 @@ export default {
|
|
|
1172
1224
|
/* padding-left: 16px; */
|
|
1173
1225
|
}
|
|
1174
1226
|
.phaseCountdown {
|
|
1175
|
-
line-height:
|
|
1176
|
-
font-size:
|
|
1227
|
+
line-height: 32PX;
|
|
1228
|
+
font-size: 14px;
|
|
1177
1229
|
font-weight: normal;
|
|
1178
1230
|
font-stretch: normal;
|
|
1179
1231
|
letter-spacing: 0px;
|
|
@@ -1182,14 +1234,16 @@ export default {
|
|
|
1182
1234
|
margin: 0 auto;
|
|
1183
1235
|
}
|
|
1184
1236
|
.countdownBg {
|
|
1185
|
-
border-radius:
|
|
1237
|
+
border-radius: 10PX;
|
|
1186
1238
|
background-color: rgba(94, 90, 90, 0.8);
|
|
1187
|
-
padding-left:
|
|
1239
|
+
padding-left: 16PX;
|
|
1240
|
+
padding-top: 10PX;
|
|
1241
|
+
padding-bottom: 10PX;
|
|
1188
1242
|
}
|
|
1189
1243
|
.centerText .text {
|
|
1190
1244
|
display: inline-block;
|
|
1191
1245
|
color: #299BCC;
|
|
1192
|
-
margin-top:
|
|
1246
|
+
margin-top: 20PX;
|
|
1193
1247
|
}
|
|
1194
1248
|
|
|
1195
1249
|
.baseImg {
|
|
@@ -11,33 +11,8 @@
|
|
|
11
11
|
**/
|
|
12
12
|
<template>
|
|
13
13
|
<div class="main-patternstatus">
|
|
14
|
-
<!-- rcp模式 -->
|
|
15
|
-
<div v-if="patternType === 'rcp'">
|
|
16
|
-
<div class="ring-first" v-for="(list, index1) in patternRcp" :key="index1">
|
|
17
|
-
<div style="position: relative" :style="{height: '34px',paddingRight: '1px',float: 'left',width:
|
|
18
|
-
((item.split + (item.sum ? item.sum : 0)) /(item.cycle > cycles ? item.cycle : cycles)) *100 +'%',}"
|
|
19
|
-
v-for="(item, index2) in list" :key="index2">
|
|
20
|
-
<div class="first-1" :style="{ width:
|
|
21
|
-
(Number(item.greenWidth.replace('%', '')) /
|
|
22
|
-
Number((((item.split + (item.sum ? item.sum : 0)) /
|
|
23
|
-
(item.cycle > cycles ? item.cycle : cycles)) * 100 + '%').replace('%', ''))) * 100 + '%', height: '34px',background: '#7ccc66'}">
|
|
24
|
-
</div>
|
|
25
|
-
<el-tooltip placement="top-start" effect="light">
|
|
26
|
-
<div v-if="item.id" slot="content">P{{ item.id }}:{{ item.split }}</div>
|
|
27
|
-
<div v-if="item.id" style="cursor: pointer">
|
|
28
|
-
<div
|
|
29
|
-
class="box"
|
|
30
|
-
style="position: absolute; width:40px; left: 0; top: 5px"
|
|
31
|
-
>
|
|
32
|
-
<div class="ring-nums">P{{ item.id }}:{{ item.split }}</div>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</el-tooltip>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
14
|
<!-- 环模式true -->
|
|
40
|
-
<div v-if="
|
|
15
|
+
<div v-if="this.contrloType === 'ring' || !this.contrloType">
|
|
41
16
|
<div class="ring-first" v-for="(list, index1) in patternInfo" :key="index1">
|
|
42
17
|
<div style="position: relative;" :style="{'height': '34px','float':'left','width':((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%'}" v-for="(item,index2) in list" :key="index2" :class="item.mode===7?'direction': ''">
|
|
43
18
|
<div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :style="{'width':Number(item.greenWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%').replace('%', ''))*100+'%','height':'34px','background':'#7ccc66'}">
|
|
@@ -73,7 +48,7 @@
|
|
|
73
48
|
<div class="divider" :style="{'left':item, 'height':barrierHeight}"></div>
|
|
74
49
|
</div>
|
|
75
50
|
</div>
|
|
76
|
-
<div v-show="(
|
|
51
|
+
<div v-show="(cycle && cycle>0 && this.isControl) || (newCycle && newCycle>0 && this.isControl)">
|
|
77
52
|
<div class="curTimeDiv" :style="{'left':paddingLeft }">{{ timeNumDevide }}</div>
|
|
78
53
|
<div class="curTimeLine" :style="{'left':paddingLeft, 'height':barrierHeight}"></div>
|
|
79
54
|
</div>
|
|
@@ -132,7 +107,6 @@ export default {
|
|
|
132
107
|
newCycle: this.cycles,
|
|
133
108
|
patternIds: this.patternId,
|
|
134
109
|
newPatterns: [],
|
|
135
|
-
patternRcp: [],
|
|
136
110
|
newList: [],
|
|
137
111
|
isControl: true,
|
|
138
112
|
contrloCycle: 0,
|
|
@@ -157,9 +131,6 @@ export default {
|
|
|
157
131
|
controlPhase: {
|
|
158
132
|
type: Object
|
|
159
133
|
},
|
|
160
|
-
patternType: {
|
|
161
|
-
type: String
|
|
162
|
-
},
|
|
163
134
|
contrloType: {
|
|
164
135
|
type: String
|
|
165
136
|
},
|
|
@@ -242,7 +213,7 @@ export default {
|
|
|
242
213
|
watch: {
|
|
243
214
|
controlPhase: {
|
|
244
215
|
handler: function (val, oldVal) {
|
|
245
|
-
if (val && val.curTime) {
|
|
216
|
+
if ((val && val.curTime) || val.curTime === 0) {
|
|
246
217
|
this.curtime = val.curTime
|
|
247
218
|
if (val.control === 4 || val.control === 16 || val.control === 22) {
|
|
248
219
|
this.isControl = false
|
|
@@ -271,7 +242,7 @@ export default {
|
|
|
271
242
|
}
|
|
272
243
|
this.handleBarrierHeight()
|
|
273
244
|
}
|
|
274
|
-
if (val && val.curTime) {
|
|
245
|
+
if ((val && val.curTime) || val.curTime === 0) {
|
|
275
246
|
this.curtime = val.curTime
|
|
276
247
|
if (val.control === 4 || val.control === 16 || val.control === 22) {
|
|
277
248
|
this.isControl = false
|
|
@@ -319,9 +290,6 @@ export default {
|
|
|
319
290
|
cycles: {
|
|
320
291
|
handler: function (val, oldVal) {
|
|
321
292
|
this.newCycle = this.cycles
|
|
322
|
-
if (this.patternType === 'rcp') {
|
|
323
|
-
this.handleRcp(this.patternStatusList)
|
|
324
|
-
}
|
|
325
293
|
},
|
|
326
294
|
// 深度观察监听
|
|
327
295
|
deep: true
|
|
@@ -346,9 +314,6 @@ export default {
|
|
|
346
314
|
},
|
|
347
315
|
patternStatusList: {
|
|
348
316
|
handler: function (val, oldVal) {
|
|
349
|
-
if (this.patternType === 'rcp') {
|
|
350
|
-
this.handleRcp(this.patternStatusList)
|
|
351
|
-
}
|
|
352
317
|
this.handleBarrierHeight() // 计算屏障高度
|
|
353
318
|
if (this.patternStatusList && this.newCycle) {
|
|
354
319
|
setTimeout(() => {
|
|
@@ -381,9 +346,6 @@ export default {
|
|
|
381
346
|
if (this.contrloType === 'stage') {
|
|
382
347
|
this.getStage()
|
|
383
348
|
}
|
|
384
|
-
if (this.patternType === 'rcp') {
|
|
385
|
-
this.handleRcp(this.patternStatusList)
|
|
386
|
-
}
|
|
387
349
|
},
|
|
388
350
|
methods: {
|
|
389
351
|
getPed (data) {
|
|
@@ -412,48 +374,6 @@ export default {
|
|
|
412
374
|
}
|
|
413
375
|
return ped
|
|
414
376
|
},
|
|
415
|
-
handleRcp (val) {
|
|
416
|
-
this.patternRcp = []
|
|
417
|
-
let valSplit = val.map(item => {
|
|
418
|
-
return item.map(val => {
|
|
419
|
-
return val.splitchain
|
|
420
|
-
})
|
|
421
|
-
})
|
|
422
|
-
let splitCycle = valSplit.length > 0 ? valSplit.map(item => {
|
|
423
|
-
return item.length > 0 ? item.reduce((a, b) => {
|
|
424
|
-
return a + b
|
|
425
|
-
}) : 0
|
|
426
|
-
}) : 0
|
|
427
|
-
let cycle = Math.max(...splitCycle)// 每个环的周期最大值
|
|
428
|
-
for (let rings of val) {
|
|
429
|
-
if (rings.length === 0) continue
|
|
430
|
-
let list = []
|
|
431
|
-
for (let ring of rings) {
|
|
432
|
-
if (ring.splitchain === 0) continue
|
|
433
|
-
let obj = {}
|
|
434
|
-
let split = ring.splitchain
|
|
435
|
-
obj.split = split
|
|
436
|
-
obj.cycle = cycle
|
|
437
|
-
obj.id = ring.phases
|
|
438
|
-
// if (ring.sum) {
|
|
439
|
-
// obj.sum = ring.sum
|
|
440
|
-
// obj.redWidth = ((currPhase.redclear + ring.sum) / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
441
|
-
// } else {
|
|
442
|
-
// obj.redWidth = (currPhase.redclear / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
443
|
-
// }
|
|
444
|
-
// obj.mode = ring.mode
|
|
445
|
-
obj.greenWidth = (split / (cycle > this.cycles ? cycle : this.cycles)) * 100 + '%'
|
|
446
|
-
// obj.flashgreen = (currPhase.flashgreen / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
447
|
-
// obj.yellowWidth = (currPhase.yellow / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
448
|
-
// 忽略相位不显示
|
|
449
|
-
// let mode = ring.mode
|
|
450
|
-
// if (mode !== 7) { // 忽略相位不显示
|
|
451
|
-
list.push(obj)
|
|
452
|
-
// }
|
|
453
|
-
}
|
|
454
|
-
this.patternRcp.push(list)
|
|
455
|
-
}
|
|
456
|
-
},
|
|
457
377
|
handleStageData (data) {
|
|
458
378
|
if (!data) return
|
|
459
379
|
let peddirections = this.getPed(data)
|
|
@@ -690,6 +610,7 @@ export default {
|
|
|
690
610
|
// if (stg === walk.phaseid) {
|
|
691
611
|
let objs = {}
|
|
692
612
|
objs.name = walk.name
|
|
613
|
+
objs.color = 'rgba(48,49,51,0.6)'
|
|
693
614
|
objs.id = walk.id
|
|
694
615
|
if (ped === walk.id) {
|
|
695
616
|
peddirections.push(objs)
|
|
@@ -705,7 +626,7 @@ export default {
|
|
|
705
626
|
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
706
627
|
return {
|
|
707
628
|
id: item.id,
|
|
708
|
-
color: '#
|
|
629
|
+
color: '#303133'
|
|
709
630
|
}
|
|
710
631
|
})
|
|
711
632
|
} else {
|
|
@@ -714,14 +635,14 @@ export default {
|
|
|
714
635
|
return {
|
|
715
636
|
id: item,
|
|
716
637
|
peddirection: peddirections,
|
|
717
|
-
color: '#
|
|
638
|
+
color: '#303133'
|
|
718
639
|
}
|
|
719
640
|
})
|
|
720
641
|
} else {
|
|
721
642
|
obj.direction = [
|
|
722
643
|
{
|
|
723
644
|
id: '',
|
|
724
|
-
color: '#
|
|
645
|
+
color: '#303133',
|
|
725
646
|
peddirection: peddirections
|
|
726
647
|
}
|
|
727
648
|
]
|
|
@@ -942,6 +863,7 @@ export default {
|
|
|
942
863
|
let objs = {}
|
|
943
864
|
objs.name = walk.name
|
|
944
865
|
objs.id = walk.id
|
|
866
|
+
objs.color = 'rgba(48,49,51,0.6)'
|
|
945
867
|
if (ped === walk.id) {
|
|
946
868
|
peddirections.push(objs)
|
|
947
869
|
peddirections = Array.from(new Set(peddirections))
|
|
@@ -956,7 +878,7 @@ export default {
|
|
|
956
878
|
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
957
879
|
return {
|
|
958
880
|
id: item.id,
|
|
959
|
-
color: '#
|
|
881
|
+
color: '#303133'
|
|
960
882
|
}
|
|
961
883
|
})
|
|
962
884
|
} else {
|
|
@@ -965,14 +887,14 @@ export default {
|
|
|
965
887
|
return {
|
|
966
888
|
id: item,
|
|
967
889
|
peddirection: peddirections,
|
|
968
|
-
color: '#
|
|
890
|
+
color: '#303133'
|
|
969
891
|
}
|
|
970
892
|
})
|
|
971
893
|
} else {
|
|
972
894
|
obj.direction = [
|
|
973
895
|
{
|
|
974
896
|
id: '',
|
|
975
|
-
color: '#
|
|
897
|
+
color: '#303133',
|
|
976
898
|
peddirection: peddirections
|
|
977
899
|
}
|
|
978
900
|
]
|
|
@@ -1169,6 +1091,7 @@ export default {
|
|
|
1169
1091
|
let objs = {}
|
|
1170
1092
|
objs.name = walk.name
|
|
1171
1093
|
objs.id = walk.id
|
|
1094
|
+
objs.color = 'rgba(48,49,51,0.6)'
|
|
1172
1095
|
if (ped === walk.id) {
|
|
1173
1096
|
peddirections.push(objs)
|
|
1174
1097
|
peddirections = Array.from(new Set(peddirections))
|
|
@@ -1183,7 +1106,7 @@ export default {
|
|
|
1183
1106
|
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
1184
1107
|
return {
|
|
1185
1108
|
id: item.id,
|
|
1186
|
-
color: '#
|
|
1109
|
+
color: '#303133',
|
|
1187
1110
|
peddirection: peddirections
|
|
1188
1111
|
}
|
|
1189
1112
|
})
|
|
@@ -1192,7 +1115,7 @@ export default {
|
|
|
1192
1115
|
obj.direction = currPhase.direction.map(item => {
|
|
1193
1116
|
return {
|
|
1194
1117
|
id: item,
|
|
1195
|
-
color: '#
|
|
1118
|
+
color: '#303133',
|
|
1196
1119
|
peddirection: peddirections
|
|
1197
1120
|
}
|
|
1198
1121
|
})
|
|
@@ -1200,7 +1123,7 @@ export default {
|
|
|
1200
1123
|
obj.direction = [
|
|
1201
1124
|
{
|
|
1202
1125
|
id: '',
|
|
1203
|
-
color: '#
|
|
1126
|
+
color: '#303133',
|
|
1204
1127
|
peddirection: peddirections
|
|
1205
1128
|
}
|
|
1206
1129
|
]
|
|
@@ -1449,7 +1372,7 @@ export default {
|
|
|
1449
1372
|
<style lang="scss" scoped>
|
|
1450
1373
|
.main-patternstatus {
|
|
1451
1374
|
position: relative;
|
|
1452
|
-
margin-bottom: 20px;
|
|
1375
|
+
/* margin-bottom: 20px; */
|
|
1453
1376
|
}
|
|
1454
1377
|
.main-patternstatus {
|
|
1455
1378
|
position: relative;
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
:overlap="overlap"
|
|
39
39
|
:patternSelect="patternSelect"
|
|
40
40
|
:allPatternList="allPatternList"
|
|
41
|
+
:isShowBack="isShowBack"
|
|
41
42
|
@closeManualModal="closeManualModal"
|
|
42
43
|
@selectModel="selectModel"
|
|
43
44
|
@selectStages="selectStages"
|
|
@@ -45,76 +46,8 @@
|
|
|
45
46
|
@closePhaseBack="closePhaseBack"
|
|
46
47
|
@closePhaseControl="closePhaseControl"
|
|
47
48
|
@selectSpecialModel="selectSpecialModelNew" />
|
|
48
|
-
<!-- <ManualControlModal
|
|
49
|
-
:controlData="controlData"
|
|
50
|
-
:modelList="modelList"
|
|
51
|
-
:patternSelect="patternSelect"
|
|
52
|
-
:patternAll="patternAll"
|
|
53
|
-
:crossStatusData="crossStatusData"
|
|
54
|
-
:phaseList="phaseList"
|
|
55
|
-
:specialcontrolList="specialcontrolList"
|
|
56
|
-
:currModel="currModel"
|
|
57
|
-
:preselectModel="preselectModel"
|
|
58
|
-
:preselectStages="preselectStages"
|
|
59
|
-
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
60
|
-
:funcSort="funcSort"
|
|
61
|
-
:roadDirection="roadDirection"
|
|
62
|
-
@closeManualModal="closeManualModal"
|
|
63
|
-
@selectModel="selectModel"
|
|
64
|
-
@selectStages="selectStages"
|
|
65
|
-
@patternCommit="patternCommit"
|
|
66
|
-
@selectSpecialModel="selectSpecialModel" /> -->
|
|
67
49
|
</div>
|
|
68
50
|
</transition>
|
|
69
|
-
<!-- <transition name="fade-left" mode="out-in"
|
|
70
|
-
enter-active-class="animated fadeInRight"
|
|
71
|
-
leave-active-class="animated fadeOutRight">
|
|
72
|
-
<div style="position: absolute;width: 100%;height:100%" v-show="(isOperation && isClosePhase)">
|
|
73
|
-
<ClosePhaseControlModal
|
|
74
|
-
v-if="specialPage === 'closephase'"
|
|
75
|
-
:controlData="controlData"
|
|
76
|
-
:closePhaseRings="phaseRings"
|
|
77
|
-
:sidewalkPhaseData="sidewalkPhaseData"
|
|
78
|
-
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
79
|
-
:roadDirection="roadDirection"
|
|
80
|
-
@closePhaseBack="closePhaseBack"
|
|
81
|
-
@closePhaseControl="closePhaseControl" /> -->
|
|
82
|
-
<!-- <LockingPhaseControlModal
|
|
83
|
-
v-if="specialPage === 'lockingphase'"
|
|
84
|
-
:roadDirection="roadDirection"
|
|
85
|
-
:phaseList="phaseList"
|
|
86
|
-
:patternStatus="statusData"
|
|
87
|
-
:lockPhaseBtnName="lockPhaseBtnName"
|
|
88
|
-
@closePhaseBack="closePhaseBack"
|
|
89
|
-
@closePhaseControl="closePhaseControl" /> -->
|
|
90
|
-
<!-- <TentativePlanControlModal
|
|
91
|
-
v-if="specialPage === 'tentativeplan'"
|
|
92
|
-
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
93
|
-
:controlData="controlData"
|
|
94
|
-
:phaseList="phaseList"
|
|
95
|
-
:overlap="overlap"
|
|
96
|
-
:patternSelect="patternSelect"
|
|
97
|
-
:allPatternList="allPatternList"
|
|
98
|
-
@closePhaseBack="closePhaseBack"
|
|
99
|
-
@closePhaseControl="closePhaseControl"
|
|
100
|
-
/>
|
|
101
|
-
<priorityControl
|
|
102
|
-
v-if="specialPage === 'prioritycontrol'"
|
|
103
|
-
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
104
|
-
:phaseList="phaseList"
|
|
105
|
-
@closePhaseBack="closePhaseBack"
|
|
106
|
-
@closePhaseControl="closePhaseControl"
|
|
107
|
-
/> -->
|
|
108
|
-
<!-- <AzimuthLocking
|
|
109
|
-
v-if="specialPage === 'azimuthlocking'"
|
|
110
|
-
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
111
|
-
:phaseList="phaseList"
|
|
112
|
-
:patternStatus="statusData"
|
|
113
|
-
@closePhaseBack="closePhaseBack"
|
|
114
|
-
@closePhaseControl="closePhaseControl"
|
|
115
|
-
/> -->
|
|
116
|
-
<!-- </div>
|
|
117
|
-
</transition> -->
|
|
118
51
|
|
|
119
52
|
<transition name="fade-left" mode="out-in"
|
|
120
53
|
enter-active-class="animated fadeInLeft"
|
|
@@ -240,6 +173,10 @@ export default {
|
|
|
240
173
|
isFromAtc: {
|
|
241
174
|
type: Boolean,
|
|
242
175
|
default: true
|
|
176
|
+
},
|
|
177
|
+
isShowBack: {
|
|
178
|
+
type: Boolean,
|
|
179
|
+
default: true
|
|
243
180
|
}
|
|
244
181
|
},
|
|
245
182
|
data () {
|
|
@@ -473,32 +410,6 @@ export default {
|
|
|
473
410
|
faultvisible: false,
|
|
474
411
|
isClosePhase: false, // 是否在相位关断
|
|
475
412
|
toPage: 1, // 与哪一个页面交互,1 代表路口信息页面,3代表 相位关断页面
|
|
476
|
-
specialcontrolList: [{ // 特殊控制
|
|
477
|
-
id: 23,
|
|
478
|
-
isShow: true,
|
|
479
|
-
permission: 'configer:manual:optimize',
|
|
480
|
-
iconClass: 'closephase'
|
|
481
|
-
}, {
|
|
482
|
-
id: 22,
|
|
483
|
-
isShow: true,
|
|
484
|
-
permission: 'configer:manual:optimize',
|
|
485
|
-
iconClass: 'lockingphase'
|
|
486
|
-
}, {
|
|
487
|
-
id: 100,
|
|
488
|
-
isShow: true,
|
|
489
|
-
permission: 'configer:manual:optimize',
|
|
490
|
-
iconClass: 'tentativeplan'
|
|
491
|
-
}, {
|
|
492
|
-
id: 24,
|
|
493
|
-
isShow: true,
|
|
494
|
-
permission: 'configer:manual:preempt',
|
|
495
|
-
iconClass: 'prioritycontrol'
|
|
496
|
-
}, {
|
|
497
|
-
id: 25,
|
|
498
|
-
permission: 'configer:manual:optimize',
|
|
499
|
-
isShow: this.realtimeStatusModalvisible,
|
|
500
|
-
iconClass: 'azimuthlocking'
|
|
501
|
-
}],
|
|
502
413
|
phaseRings: [],
|
|
503
414
|
curFaultList: [],
|
|
504
415
|
confirmedFault: [],
|
|
@@ -862,10 +773,6 @@ export default {
|
|
|
862
773
|
}
|
|
863
774
|
},
|
|
864
775
|
closePhaseBack () {
|
|
865
|
-
// if (!this.realtimeStatusModalvisible) {
|
|
866
|
-
// this.$emit('closePhaseBack')
|
|
867
|
-
// return
|
|
868
|
-
// }
|
|
869
776
|
this.toPage = 3
|
|
870
777
|
this.isClosePhase = false
|
|
871
778
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="tentativeplan-control">
|
|
2
|
+
<div class="tentativeplan-control manual-common-content">
|
|
3
3
|
<!-- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.azimuthlocking')}}</div> -->
|
|
4
4
|
<el-row>
|
|
5
5
|
<el-col :span="12">
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
</el-col>
|
|
46
46
|
</el-row>
|
|
47
47
|
<el-row style="margin-top: 6px;">
|
|
48
|
-
<el-col :span="
|
|
48
|
+
<el-col :span="24">
|
|
49
49
|
<span class="model-label-title">{{$t('openatccomponents.overview.indirection')}}:</span>
|
|
50
50
|
</el-col>
|
|
51
|
-
<el-col :span="
|
|
51
|
+
<el-col :span="24">
|
|
52
52
|
<div class="control-model" v-for="(item, index) in imgs" :key="index">
|
|
53
53
|
<div :style="{'backgroundColor': item.bgcolor}" :class="{'single-model-select':spanIndex.indexOf(index)>-1}" class="single-model" @click="boxShow(index,item)">
|
|
54
54
|
<div v-if="item.class" :style="{color: themeColor}" :class="item.class" style="border:0px;font-size: 50px;"></div>
|
|
@@ -89,13 +89,13 @@
|
|
|
89
89
|
</div>
|
|
90
90
|
</div> -->
|
|
91
91
|
<div class="footer" v-if="realtimeStatusModalvisible">
|
|
92
|
-
<el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
93
|
-
<el-button
|
|
92
|
+
<el-button v-if="isShowBack" @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
93
|
+
<el-button @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
|
|
94
94
|
<el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.implement')}}</el-button>
|
|
95
95
|
</div>
|
|
96
96
|
<div class="footer" v-if="!realtimeStatusModalvisible">
|
|
97
|
-
<el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
98
|
-
<el-button
|
|
97
|
+
<el-button v-if="isShowBack" @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
98
|
+
<el-button @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
|
|
99
99
|
<el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.comfirm')}}</el-button>
|
|
100
100
|
</div>
|
|
101
101
|
</div>
|
|
@@ -117,6 +117,10 @@ export default {
|
|
|
117
117
|
realtimeStatusModalvisible: {
|
|
118
118
|
type: Boolean,
|
|
119
119
|
default: true
|
|
120
|
+
},
|
|
121
|
+
isShowBack: {
|
|
122
|
+
type: Boolean,
|
|
123
|
+
default: true
|
|
120
124
|
}
|
|
121
125
|
},
|
|
122
126
|
watch: {
|