openatc-components 0.2.18 → 0.2.20
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/DirectionListConfiguration/DirectionListConfiguration.vue +49 -49
- package/package/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +39 -8
- package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +33 -33
- package/package/kisscomps/components/OverLap/OverLap.vue +3 -24
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +12 -10
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +3 -3
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +5 -28
- package/package/kisscomps/components/patternConfig/pattern/patternTable.vue +49 -2
- package/package/kisscomps/components/patternConfig/planContent.vue +3 -0
- package/package/kissui.min.js +1 -1
- package/package.json +2 -2
- package/src/EdgeMgr/controller/crossDiagramMgr.js +0 -1
- package/src/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +49 -49
- package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +39 -8
- package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +33 -33
- package/src/kisscomps/components/OverLap/OverLap.vue +3 -24
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +12 -10
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +3 -3
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +5 -28
- package/src/kisscomps/components/patternConfig/pattern/patternTable.vue +49 -2
- package/src/kisscomps/components/patternConfig/planContent.vue +3 -0
- package/src/views/intersection.vue +11 -5
- package/src/views/patternConfig.vue +6 -969
- package/static/styles/schemeconfig.scss +3 -8
- package/src/node_modules/.package_versions.json +0 -1
package/package.json
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
import xdrdirselector from '../XRDDirSelector/XRDDirSelector'
|
|
48
48
|
import { uploadSingleTscParam } from '../../../api/param.js'
|
|
49
49
|
import { getMessageByCode } from '../../../utils/responseMessage.js'
|
|
50
|
-
import { getIntersectionInfo } from '../../../api/template.js'
|
|
50
|
+
// import { getIntersectionInfo } from '../../../api/template.js'
|
|
51
51
|
import CrossDiagramMgr from '../../../EdgeMgr/controller/crossDiagramMgr.js'
|
|
52
52
|
import PhaseDataModel from '../IntersectionMap/crossDirection/utils.js'
|
|
53
53
|
// import { getTheme } from '../../../utils/auth'
|
|
@@ -100,57 +100,57 @@ export default {
|
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
methods: {
|
|
103
|
-
init () {
|
|
103
|
+
init (IntersectionInfo) {
|
|
104
104
|
this.CrossDiagramMgr = new CrossDiagramMgr()
|
|
105
105
|
this.PhaseDataModel = new PhaseDataModel(this.roadDirection)
|
|
106
|
-
this.getIntersectionInfo() // 获取路口信息
|
|
106
|
+
this.getIntersectionInfo(IntersectionInfo) // 获取路口信息
|
|
107
107
|
},
|
|
108
|
-
getIntersectionInfo () {
|
|
108
|
+
getIntersectionInfo (res) {
|
|
109
109
|
// 获取路口信息
|
|
110
|
-
const agentid = this.agentId || '0'
|
|
111
|
-
getIntersectionInfo(agentid).then(res => {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
})
|
|
110
|
+
// const agentid = this.agentId || '0'
|
|
111
|
+
// getIntersectionInfo(agentid).then(res => {
|
|
112
|
+
// if (!res.data.success) {
|
|
113
|
+
// this.isLoaded = false
|
|
114
|
+
// let commomMsg = this.$t('openatccomponents.overview.signalID') + ' : ' + agentid
|
|
115
|
+
// let msg = getMessageByCode(res.data.code, this.$i18n.locale)
|
|
116
|
+
// if (res.data.data) {
|
|
117
|
+
// // 子类型错误
|
|
118
|
+
// let childErrorCode = res.data.data.errorCode
|
|
119
|
+
// if (childErrorCode) {
|
|
120
|
+
// let childerror = getMessageByCode(res.data.data.errorCode, this.$i18n.locale)
|
|
121
|
+
// msg = msg + ' - ' + childerror
|
|
122
|
+
// }
|
|
123
|
+
// }
|
|
124
|
+
// msg = msg + ' - ' + commomMsg
|
|
125
|
+
// this.$message.error(msg)
|
|
126
|
+
// return
|
|
127
|
+
// }
|
|
128
|
+
this.tempType = res.data.data.type
|
|
129
|
+
// 获取车道相位、行人相位信息(坐标、名称)
|
|
130
|
+
this.mainType = this.tempType.split('-')[0]
|
|
131
|
+
this.mainDirection = this.tempType.split('-')[1]
|
|
132
|
+
if (!this.isThirdSignal) {
|
|
133
|
+
// 可点击模式下,非第三方设备,按通道显示相位方向
|
|
134
|
+
this.getChannelInfo()
|
|
135
|
+
return
|
|
136
|
+
}
|
|
137
|
+
this.crossInfo = res.data.data.param
|
|
138
|
+
// 城市道路加载车道相位坐标和人行道坐标
|
|
139
|
+
this.getPhasePos()
|
|
140
|
+
this.getOverlapPhasePos()
|
|
141
|
+
this.getPedPhasePos()
|
|
142
|
+
this.getOverlapPedPhasePos()
|
|
143
|
+
if (this.isThirdSignal) {
|
|
144
|
+
// 第三方设备,按相位方向显示相位方向
|
|
145
|
+
this.compLanePhaseData = this.CrossDiagramMgr.compare(this.LanePhaseData, this.overlapLanePhaseData, 'type', 'nostatus')
|
|
146
|
+
this.compSidewalkPhaseData = this.CrossDiagramMgr.compare(this.sidewalkPhaseData, this.overlapsidewalkPhaseData, 'pedtype', 'nostatus')
|
|
147
|
+
let allDir = this.compLanePhaseData.map(ele => ele.id)
|
|
148
|
+
let allPedDir = this.compSidewalkPhaseData.map(ele => ele.id)
|
|
149
|
+
this.inneChoosedDirection = this.choosedDirection.filter(dir => allDir.indexOf(dir) !== -1)
|
|
150
|
+
this.inneChoosedPedDirection = this.choosedPedDirection.filter(dir => allPedDir.indexOf(dir) !== -1)
|
|
151
|
+
this.drawPhaseIcon()
|
|
152
|
+
}
|
|
153
|
+
// })
|
|
154
154
|
},
|
|
155
155
|
getPhasePos () {
|
|
156
156
|
// 车道相位信息
|
|
@@ -448,7 +448,7 @@ export default {
|
|
|
448
448
|
}
|
|
449
449
|
},
|
|
450
450
|
mounted () {
|
|
451
|
-
this.init()
|
|
451
|
+
// this.init()
|
|
452
452
|
}
|
|
453
453
|
}
|
|
454
454
|
</script>
|
package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="intersection-direction-selection">
|
|
2
|
+
<div class="intersection-direction-selection" v-if="isSpecialIntersection !== undefined">
|
|
3
3
|
<intersection-base-map
|
|
4
|
-
v-if="!isSpecialIntersection"
|
|
4
|
+
v-if="!isSpecialIntersection && reset"
|
|
5
5
|
ref="intersectionMap2"
|
|
6
6
|
:crossStatusData="crossStatusData"
|
|
7
7
|
:agentId="agentId"
|
|
8
8
|
isVipRoute
|
|
9
|
-
clickMode
|
|
9
|
+
:clickMode="clickMode"
|
|
10
10
|
:isThirdSignal="isThirdSignal"
|
|
11
11
|
:choosedDirection="choosedDirection"
|
|
12
12
|
:choosedPedDirection="choosedPedDirection"
|
|
13
13
|
:roadDirection="roadDirection"
|
|
14
14
|
@handleClickCrossIcon="handleClickCrossIcon" />
|
|
15
15
|
<direction-list-configuration
|
|
16
|
-
v-if="isSpecialIntersection"
|
|
16
|
+
v-if="isSpecialIntersection && clickMode && reset"
|
|
17
|
+
ref="listConfiguration"
|
|
17
18
|
:agentId="agentId"
|
|
18
19
|
:isThirdSignal="isThirdSignal"
|
|
19
20
|
:choosedDirection="choosedDirection"
|
|
@@ -34,8 +35,9 @@ export default {
|
|
|
34
35
|
data () {
|
|
35
36
|
return {
|
|
36
37
|
crossStatusData: {},
|
|
37
|
-
isSpecialIntersection:
|
|
38
|
-
isThirdSignal: false
|
|
38
|
+
isSpecialIntersection: undefined,
|
|
39
|
+
isThirdSignal: false,
|
|
40
|
+
reset: true
|
|
39
41
|
}
|
|
40
42
|
},
|
|
41
43
|
props: {
|
|
@@ -55,6 +57,23 @@ export default {
|
|
|
55
57
|
},
|
|
56
58
|
thirdSignal: { // 是否是第三方平台(可以直接传,也可以内部接口判断)
|
|
57
59
|
type: Boolean
|
|
60
|
+
},
|
|
61
|
+
clickMode: {
|
|
62
|
+
type: Boolean,
|
|
63
|
+
default: true
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
watch: {
|
|
67
|
+
agentId: {
|
|
68
|
+
handler: function (val, oldVal) {
|
|
69
|
+
if (val) {
|
|
70
|
+
this.reset = false
|
|
71
|
+
this.$nextTick(() => {
|
|
72
|
+
this.reset = true
|
|
73
|
+
this.initSelection()
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
}
|
|
58
77
|
}
|
|
59
78
|
},
|
|
60
79
|
methods: {
|
|
@@ -87,6 +106,11 @@ export default {
|
|
|
87
106
|
this.mainType = this.tempType.split('-')[0]
|
|
88
107
|
if (this.mainType === '999') {
|
|
89
108
|
this.isSpecialIntersection = true
|
|
109
|
+
if (this.clickMode) {
|
|
110
|
+
this.$nextTick(() => {
|
|
111
|
+
this.$refs.listConfiguration.init(res)
|
|
112
|
+
})
|
|
113
|
+
}
|
|
90
114
|
} else {
|
|
91
115
|
this.isSpecialIntersection = false
|
|
92
116
|
}
|
|
@@ -113,15 +137,22 @@ export default {
|
|
|
113
137
|
},
|
|
114
138
|
handleClickCrossIcon (allChoosedDir, curClickedPhase) {
|
|
115
139
|
this.$emit('handleClickCrossIcon', allChoosedDir, curClickedPhase)
|
|
140
|
+
},
|
|
141
|
+
initSelection () {
|
|
142
|
+
this.getIntersectionInfo()
|
|
143
|
+
this.getPlatform()
|
|
116
144
|
}
|
|
117
145
|
},
|
|
118
146
|
mounted () {
|
|
119
|
-
this.
|
|
120
|
-
this.getPlatform()
|
|
147
|
+
this.initSelection()
|
|
121
148
|
},
|
|
122
149
|
destroyed () {
|
|
123
150
|
}
|
|
124
151
|
}
|
|
125
152
|
</script>
|
|
126
153
|
<style lang='scss'>
|
|
154
|
+
.intersection-direction-selection {
|
|
155
|
+
width: 100%;
|
|
156
|
+
height: 100%
|
|
157
|
+
}
|
|
127
158
|
</style>
|
|
@@ -276,7 +276,9 @@ export default {
|
|
|
276
276
|
this.phaseStatusList = val.phase
|
|
277
277
|
this.overlapStatusList = val.overlap
|
|
278
278
|
// 默认显示相位数据(包括黄闪、全红、关灯状态下,或者匝道,均不做比对跟随相位的处理)
|
|
279
|
-
this.
|
|
279
|
+
this.compLanePhaseData = JSON.parse(JSON.stringify(this.LanePhaseData))
|
|
280
|
+
this.compSidewalkPhaseData = JSON.parse(JSON.stringify(this.sidewalkPhaseData))
|
|
281
|
+
this.comdireBusPhaseData = JSON.parse(JSON.stringify(this.busPhaseData))
|
|
280
282
|
if (val.control === 1 || val.control === 2 || val.control === 3) {
|
|
281
283
|
// 黄闪、全红、关灯属于特殊控制,优先级最高,直接改变灯色,不用判断phase里的type,也不需要考虑跟随相位的灯色优先级
|
|
282
284
|
if (val.control === 1) {
|
|
@@ -385,14 +387,6 @@ export default {
|
|
|
385
387
|
this.PhaseDataModel = new PhaseDataModel(this.roadDirection)
|
|
386
388
|
this.getIntersectionInfo() // 获取路口信息
|
|
387
389
|
},
|
|
388
|
-
drawDefaultPhaseIcon () {
|
|
389
|
-
this.compLanePhaseData = JSON.parse(JSON.stringify(this.CrossDiagramMgr.compare(this.LanePhaseData, this.overlapLanePhaseData, 'type', 'nostatus')))
|
|
390
|
-
this.compSidewalkPhaseData = JSON.parse(JSON.stringify(this.CrossDiagramMgr.compare(this.sidewalkPhaseData, this.overlapsidewalkPhaseData, 'pedtype', 'nostatus')))
|
|
391
|
-
this.comdireBusPhaseData = JSON.parse(JSON.stringify(this.busPhaseData))
|
|
392
|
-
console.log(this.LanePhaseData)
|
|
393
|
-
console.log(this.overlapLanePhaseData)
|
|
394
|
-
console.log('###################', this.compLanePhaseData)
|
|
395
|
-
},
|
|
396
390
|
comparePhaseStatus () {
|
|
397
391
|
// 对比车道: 跟随相位和相位的状态数据(此处判断是为了保证被比较的数据direction都是唯一的)
|
|
398
392
|
if (!this.comdirePhaseData && !this.comdireOverlapPhaseData) {
|
|
@@ -504,51 +498,39 @@ export default {
|
|
|
504
498
|
getYellowFlashColor () {
|
|
505
499
|
// 车道相位(左行右行)
|
|
506
500
|
let curLanePhaseData = []
|
|
507
|
-
for (let i = 0; i < this.
|
|
501
|
+
for (let i = 0; i < this.LanePhaseData.length; i++) {
|
|
508
502
|
const data = {
|
|
509
|
-
...this.
|
|
503
|
+
...this.LanePhaseData[i],
|
|
510
504
|
type: '黄闪',
|
|
511
505
|
control: 1
|
|
512
506
|
}
|
|
513
507
|
curLanePhaseData.push(data)
|
|
514
508
|
}
|
|
515
|
-
this.
|
|
509
|
+
this.LanePhaseData = JSON.parse(JSON.stringify(curLanePhaseData))
|
|
516
510
|
|
|
517
511
|
// 行人相位
|
|
518
512
|
let curPedStatus = []
|
|
519
|
-
for (let i = 0; i < this.
|
|
513
|
+
for (let i = 0; i < this.sidewalkPhaseData.length; i++) {
|
|
520
514
|
const data = {
|
|
521
|
-
...this.
|
|
515
|
+
...this.sidewalkPhaseData[i],
|
|
522
516
|
pedtype: '黄闪',
|
|
523
517
|
control: 1
|
|
524
518
|
}
|
|
525
519
|
curPedStatus.push(data)
|
|
526
520
|
}
|
|
527
|
-
this.
|
|
521
|
+
this.sidewalkPhaseData = JSON.parse(JSON.stringify(curPedStatus))
|
|
528
522
|
|
|
529
523
|
// 公交相位
|
|
530
524
|
let curBusLanePhaseData = []
|
|
531
|
-
for (let i = 0; i < this.
|
|
525
|
+
for (let i = 0; i < this.busPhaseData.length; i++) {
|
|
532
526
|
const data = {
|
|
533
|
-
...this.
|
|
527
|
+
...this.busPhaseData[i],
|
|
534
528
|
type: '黄闪',
|
|
535
529
|
control: 1
|
|
536
530
|
}
|
|
537
531
|
curBusLanePhaseData.push(data)
|
|
538
532
|
}
|
|
539
|
-
this.
|
|
540
|
-
|
|
541
|
-
if (this.mainType === '103') {
|
|
542
|
-
// 匝道相位
|
|
543
|
-
if (this.LanePhaseData.length) {
|
|
544
|
-
const LanePhaseData = this.LanePhaseData.map(data => ({
|
|
545
|
-
...data,
|
|
546
|
-
type: '黄闪',
|
|
547
|
-
control: 1
|
|
548
|
-
}))
|
|
549
|
-
this.LanePhaseData = JSON.parse(JSON.stringify(LanePhaseData))
|
|
550
|
-
}
|
|
551
|
-
}
|
|
533
|
+
this.busPhaseData = JSON.parse(JSON.stringify(curBusLanePhaseData))
|
|
552
534
|
},
|
|
553
535
|
getPhaseStatus () {
|
|
554
536
|
// 得到车道相位状态(颜色)
|
|
@@ -684,9 +666,6 @@ export default {
|
|
|
684
666
|
// 获取匝道道路的主路和支路的相位坐标
|
|
685
667
|
this.getRampPhasePos()
|
|
686
668
|
}
|
|
687
|
-
if (!this.isVipRoute) {
|
|
688
|
-
this.drawDefaultPhaseIcon()
|
|
689
|
-
}
|
|
690
669
|
if (this.isVipRoute && this.isThirdSignal) {
|
|
691
670
|
this.LanePhaseData = this.CrossDiagramMgr.compare(this.LanePhaseData, this.overlapLanePhaseData, 'type', 'nostatus')
|
|
692
671
|
// console.log(this.LanePhaseData)
|
|
@@ -814,6 +793,8 @@ export default {
|
|
|
814
793
|
})
|
|
815
794
|
}
|
|
816
795
|
})
|
|
796
|
+
// 行人相位无,也要显示人行横道,与车道相位显示与否逻辑不同
|
|
797
|
+
// this.handleCompleteSidewalkPhase()
|
|
817
798
|
},
|
|
818
799
|
getOverlapPedPhasePos () {
|
|
819
800
|
// 行人跟随相位信息
|
|
@@ -836,6 +817,25 @@ export default {
|
|
|
836
817
|
}
|
|
837
818
|
})
|
|
838
819
|
},
|
|
820
|
+
// handleCompleteSidewalkPhase () {
|
|
821
|
+
// // 没有相位状态的车道也要显示,默认白色
|
|
822
|
+
// let hasDirIds = this.sidewalkPhaseData.map(data => data.id)
|
|
823
|
+
// let allIds = []
|
|
824
|
+
// for (let key of this.PhaseDataModel.SidePosMap.keys()) {
|
|
825
|
+
// allIds.push(key)
|
|
826
|
+
// }
|
|
827
|
+
// let diffIds = allIds.filter(function (val) { return hasDirIds.indexOf(val) === -1 })
|
|
828
|
+
// diffIds.forEach(id => {
|
|
829
|
+
// this.sidewalkPhaseData.push({
|
|
830
|
+
// key: `${this.sidewalkPhaseData.length + 1}`,
|
|
831
|
+
// phaseid: undefined, // 相位id,用于对应相位状态
|
|
832
|
+
// id,
|
|
833
|
+
// name: this.PhaseDataModel.getSidePos(id).name,
|
|
834
|
+
// left: this.PhaseDataModel.getSidePos(id).x,
|
|
835
|
+
// top: this.PhaseDataModel.getSidePos(id).y
|
|
836
|
+
// })
|
|
837
|
+
// })
|
|
838
|
+
// },
|
|
839
839
|
getCrossType () {
|
|
840
840
|
// 路口类型对应底图决策
|
|
841
841
|
if (this.mainType === '101') {
|
|
@@ -47,8 +47,7 @@ export default {
|
|
|
47
47
|
},
|
|
48
48
|
data () {
|
|
49
49
|
return {
|
|
50
|
-
overlapDatas: []
|
|
51
|
-
max: ''
|
|
50
|
+
overlapDatas: []
|
|
52
51
|
}
|
|
53
52
|
},
|
|
54
53
|
props: {
|
|
@@ -68,10 +67,6 @@ export default {
|
|
|
68
67
|
type: Boolean,
|
|
69
68
|
default: false
|
|
70
69
|
},
|
|
71
|
-
cycleChange: {
|
|
72
|
-
type: Boolean,
|
|
73
|
-
default: true
|
|
74
|
-
},
|
|
75
70
|
cycle: {
|
|
76
71
|
type: Number
|
|
77
72
|
},
|
|
@@ -87,13 +82,6 @@ export default {
|
|
|
87
82
|
// 深度观察监听
|
|
88
83
|
deep: true
|
|
89
84
|
},
|
|
90
|
-
cycleChange: {
|
|
91
|
-
handler: function (val, oldVal) {
|
|
92
|
-
this.doAdd(this.stageList, this.overlap)
|
|
93
|
-
},
|
|
94
|
-
// 深度观察监听
|
|
95
|
-
deep: true
|
|
96
|
-
},
|
|
97
85
|
stageList: {
|
|
98
86
|
handler: function (val, oldVal) {
|
|
99
87
|
this.doAdd(this.stageList, this.overlap)
|
|
@@ -152,15 +140,6 @@ export default {
|
|
|
152
140
|
if (findItems.length) findIndexs.push(...findItems.map(m => m.key))
|
|
153
141
|
})
|
|
154
142
|
findIndexs = Array.from(new Set(findIndexs))
|
|
155
|
-
if (this.cycleChange) {
|
|
156
|
-
const globalParamModel = this.$store.getters.globalParamModel
|
|
157
|
-
let pattern = globalParamModel.getParamsByType('patternList')
|
|
158
|
-
const allCycle = pattern.map(item => item.cycle)
|
|
159
|
-
let cycle = Math.max(...allCycle)
|
|
160
|
-
this.max = cycle
|
|
161
|
-
} else {
|
|
162
|
-
this.max = ''
|
|
163
|
-
}
|
|
164
143
|
return {
|
|
165
144
|
...item,
|
|
166
145
|
peddirection: this.getPedPhasePos(item.peddirection),
|
|
@@ -171,8 +150,8 @@ export default {
|
|
|
171
150
|
...sta,
|
|
172
151
|
direction: this.getRoad(item),
|
|
173
152
|
// peddirection: this.getPedPhasePos(item.peddirection),
|
|
174
|
-
greenWidth: find ? (sta.split /
|
|
175
|
-
redWidth: !find ? (sta.split /
|
|
153
|
+
greenWidth: find ? (sta.split / this.cycle * 100).toFixed(3) + '%' : '0%',
|
|
154
|
+
redWidth: !find ? (sta.split / this.cycle * 100).toFixed(3) + '%' : '0%'
|
|
176
155
|
}
|
|
177
156
|
})
|
|
178
157
|
}
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
<div class="curTimeLine" :style="{'left':paddingLeft, 'height':barrierHeight}"></div>
|
|
54
54
|
</div>
|
|
55
55
|
</div>
|
|
56
|
-
<div v-if="this.contrloType === 'stage'"
|
|
56
|
+
<div v-if="this.contrloType === 'stage'">
|
|
57
57
|
<div v-for="(list, index1) in stageLists" :key="index1">
|
|
58
58
|
<!-- <div> -->
|
|
59
59
|
<div class="first-1" :style="{'width':list.greenWidth,'height':'34px','position':'relative','background':'#7ccc66'}">
|
|
@@ -215,7 +215,7 @@ export default {
|
|
|
215
215
|
handler: function (val, oldVal) {
|
|
216
216
|
if (val && val.curTime) {
|
|
217
217
|
this.curtime = val.curTime
|
|
218
|
-
if (val.control ===
|
|
218
|
+
if (val.control === '相位锁定' || val.control === '通道锁定' || val.control === '阶段锁定') {
|
|
219
219
|
this.isControl = false
|
|
220
220
|
} else {
|
|
221
221
|
this.isControl = true
|
|
@@ -244,7 +244,7 @@ export default {
|
|
|
244
244
|
}
|
|
245
245
|
if (val && val.curTime) {
|
|
246
246
|
this.curtime = val.curTime
|
|
247
|
-
if (val.control ===
|
|
247
|
+
if (val.control === '相位锁定' || val.control === '通道锁定' || val.control === '阶段锁定') {
|
|
248
248
|
this.isControl = false
|
|
249
249
|
} else {
|
|
250
250
|
this.isControl = true
|
|
@@ -432,9 +432,9 @@ export default {
|
|
|
432
432
|
},
|
|
433
433
|
getStage () {
|
|
434
434
|
if (!this.stagesChange) return
|
|
435
|
-
const globalParamModel = this.$store.getters.globalParamModel
|
|
436
|
-
let pattern = globalParamModel.getParamsByType('patternList')
|
|
437
|
-
let mapAdd =
|
|
435
|
+
// const globalParamModel = this.$store.getters.globalParamModel
|
|
436
|
+
// let pattern = globalParamModel.getParamsByType('patternList')
|
|
437
|
+
let mapAdd = this.allPatternList.map(item => item.stagesList).map(item => {
|
|
438
438
|
return item.map(val => {
|
|
439
439
|
return val.stageSplit ? val.stageSplit : val.split
|
|
440
440
|
})
|
|
@@ -444,6 +444,7 @@ export default {
|
|
|
444
444
|
return a + b
|
|
445
445
|
}) : 0
|
|
446
446
|
}) : 0
|
|
447
|
+
console.log(maxCycle, 'maxCycle')
|
|
447
448
|
let stageMaxCyle = Math.max(...maxCycle)// 每个环的周期最大值
|
|
448
449
|
if (!this.cycleChange) {
|
|
449
450
|
let stageCycleList = this.stagesChange.map(item => {
|
|
@@ -463,6 +464,7 @@ export default {
|
|
|
463
464
|
redWidth: (item.red / stageMaxCyle * 100).toFixed(3) + '%'
|
|
464
465
|
}
|
|
465
466
|
})
|
|
467
|
+
console.log(this.stageLists, '011')
|
|
466
468
|
},
|
|
467
469
|
getBusPos () {
|
|
468
470
|
// 公交相位信息
|
|
@@ -1050,9 +1052,9 @@ export default {
|
|
|
1050
1052
|
this.fillGap(ringTeams, val)
|
|
1051
1053
|
}
|
|
1052
1054
|
if (this.cycleChange) {
|
|
1053
|
-
const globalParamModel = this.$store.getters.globalParamModel
|
|
1054
|
-
let pattern = globalParamModel.getParamsByType('patternList')
|
|
1055
|
-
const allCycle =
|
|
1055
|
+
// const globalParamModel = this.$store.getters.globalParamModel
|
|
1056
|
+
// let pattern = globalParamModel.getParamsByType('patternList')
|
|
1057
|
+
const allCycle = this.patternList.map(item => item.cycle)
|
|
1056
1058
|
let cycle = Math.max(...allCycle)
|
|
1057
1059
|
this.max = cycle
|
|
1058
1060
|
} else {
|
|
@@ -1061,7 +1063,7 @@ export default {
|
|
|
1061
1063
|
let barrier = this.step2(ringTeams, newPattern)
|
|
1062
1064
|
let barrierLeft = barrier.map(item => item)// 屏障左移显示出人行横道
|
|
1063
1065
|
this.barrierList = barrierLeft.map(j => {
|
|
1064
|
-
return (j / (this.max ? this.max :
|
|
1066
|
+
return (j / (this.max ? this.max : this.newCycle) * 100) + '%'
|
|
1065
1067
|
})
|
|
1066
1068
|
// this.barrierList.unshift(0)
|
|
1067
1069
|
}
|
|
@@ -510,9 +510,9 @@ export default {
|
|
|
510
510
|
data[key] = that.ParamsModeEn.get(0)
|
|
511
511
|
}
|
|
512
512
|
}
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
513
|
+
if (key === 'control') {
|
|
514
|
+
data[key] = that.ParamsControlEn.get(data[key])
|
|
515
|
+
}
|
|
516
516
|
if (key === 'phase') {
|
|
517
517
|
for (let val of data[key]) {
|
|
518
518
|
val.type = that.phaseTypeEn.get(val.type)
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
</el-row>
|
|
95
95
|
<el-row>
|
|
96
96
|
<el-radio
|
|
97
|
+
style="margin-left: 30px"
|
|
97
98
|
v-model="isRing"
|
|
98
99
|
:label="false"
|
|
99
100
|
@change="changeRing"
|
|
@@ -112,7 +113,7 @@
|
|
|
112
113
|
<pattern-list
|
|
113
114
|
:key="keyChange"
|
|
114
115
|
:allPatternList="allPatternList"
|
|
115
|
-
:contrloType="
|
|
116
|
+
:contrloType="!this.isRing ? 'ring' : 'stage'"
|
|
116
117
|
:stagesChange="
|
|
117
118
|
patternOne.length === 0
|
|
118
119
|
? planPattern.stagesList
|
|
@@ -389,7 +390,6 @@ export default {
|
|
|
389
390
|
group: 'pattern'
|
|
390
391
|
},
|
|
391
392
|
max: '',
|
|
392
|
-
contrloType: '',
|
|
393
393
|
patternCycleEqual: true,
|
|
394
394
|
activeList: 'ring',
|
|
395
395
|
isRing: false,
|
|
@@ -417,25 +417,6 @@ export default {
|
|
|
417
417
|
this.handleStageData(this.planPattern.rings)
|
|
418
418
|
}
|
|
419
419
|
this.initData()
|
|
420
|
-
if (!this.allPatternList[0].contrloType && this.allPatternList[0].rings.length > 0) {
|
|
421
|
-
this.contrloType = 'ring'
|
|
422
|
-
} else if (!this.allPatternList[0].contrloType && this.allPatternList[0].rings.length === 0) {
|
|
423
|
-
this.contrloType = 'stage'
|
|
424
|
-
} else {
|
|
425
|
-
this.contrloType = this.allPatternList[0].contrloType
|
|
426
|
-
}
|
|
427
|
-
for (let i = 0; i < this.allPatternList.length; i++) {
|
|
428
|
-
if (this.allPatternList[i].contrloType === 'stage' || (this.isRing && !this.allPatternList[i].contrloType)) {
|
|
429
|
-
this.isRing = true
|
|
430
|
-
// this.setStageList(this.allPatternList[i].stagesList, this.allPatternList[i].id)
|
|
431
|
-
} else if (this.allPatternList[i].contrloType === 'ring' || (!this.isRing && !this.allPatternList[i].contrloType && this.allPatternList[i].rings.length > 0)) {
|
|
432
|
-
this.isRing = false
|
|
433
|
-
// this.handleStageData(this.allPatternList[i].rings)
|
|
434
|
-
} else if (this.allPatternList[i].rings.length === 0 && this.allPatternList[i].stagesList.length > 0) {
|
|
435
|
-
this.isRing = true
|
|
436
|
-
// this.setStageList(this.allPatternList[i].stagesList, this.allPatternList[i].id)
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
420
|
},
|
|
440
421
|
methods: {
|
|
441
422
|
addStage (row) {
|
|
@@ -467,7 +448,7 @@ export default {
|
|
|
467
448
|
}
|
|
468
449
|
},
|
|
469
450
|
changeRing () {
|
|
470
|
-
this.contrloType = '
|
|
451
|
+
// this.contrloType = 'stage'
|
|
471
452
|
this.isRing = false
|
|
472
453
|
// const globalParamModel = this.$store.getters.globalParamModel
|
|
473
454
|
// let pattern = globalParamModel.getParamsByType('patternList')
|
|
@@ -487,11 +468,7 @@ export default {
|
|
|
487
468
|
// }
|
|
488
469
|
},
|
|
489
470
|
changeStage () {
|
|
490
|
-
this.contrloType = 'stage'
|
|
491
471
|
this.isRing = true
|
|
492
|
-
this.patternOne = this.allPatternList.filter(item => {
|
|
493
|
-
return item.id === Number(this.manualInfo.tempPatternid)
|
|
494
|
-
})
|
|
495
472
|
this.getStageCycle()
|
|
496
473
|
},
|
|
497
474
|
getStageCycle () {
|
|
@@ -872,14 +849,14 @@ export default {
|
|
|
872
849
|
setTimeout(() => {
|
|
873
850
|
this.handleStageData(currPattern)
|
|
874
851
|
this.getCycles()
|
|
875
|
-
|
|
852
|
+
this.patternOne[0].stagesList = this.stagesList
|
|
876
853
|
}, 50)
|
|
877
854
|
} else {
|
|
878
855
|
let currPattern = this.planPattern.rings
|
|
879
856
|
setTimeout(() => {
|
|
880
857
|
this.handleStageData(currPattern)
|
|
881
858
|
this.getCycle()
|
|
882
|
-
|
|
859
|
+
this.allPatternList[0].stagesList = this.stagesList
|
|
883
860
|
}, 50)
|
|
884
861
|
}
|
|
885
862
|
},
|