openatc-components 0.2.36 → 0.2.37
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/PatternStatus/PatternStatus.vue +5 -8
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +25 -178
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +29 -72
- package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +3 -14
- package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +7 -17
- package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +9 -18
- package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +36 -38
- package/package/kisscomps/components/Stages/index.vue +11 -52
- package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +29 -30
- package/package/kisscomps/components/patternConfig/pattern/patternTable.vue +73 -13
- package/package/kisscomps/components/patternConfig/planContent.vue +3 -0
- package/package/kissui.min.js +1 -1
- package/package.json +2 -2
- package/src/i18n/language/en.js +2 -6
- package/src/i18n/language/zh.js +3 -7
- package/src/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +49 -49
- package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +39 -8
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +5 -8
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +25 -178
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +29 -72
- package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +3 -14
- package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +7 -17
- package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +9 -18
- package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +36 -38
- package/src/kisscomps/components/Stages/index.vue +11 -52
- package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +29 -30
- package/src/kisscomps/components/patternConfig/pattern/patternTable.vue +73 -13
- package/src/kisscomps/components/patternConfig/planContent.vue +3 -0
- package/src/views/intersection.vue +11 -5
- package/src/views/patternConfig.vue +7 -970
- package/src/views/schemeconfig.vue +50 -19
- package/static/styles/schemeconfig.scss +58 -70
- package/static/styles/stages.scss +8 -1
- package/src/icons/svg/fangxiangsuoding.svg +0 -1
- package/src/icons/svg/jieduansuoding.svg +0 -1
- package/src/icons/svg/xiangweisuoding.svg +0 -1
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/controlModelGroup.vue +0 -128
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +0 -426
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +0 -820
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/othersIcon.vue +0 -194
package/package/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue
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>
|
|
@@ -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>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<div v-if="this.contrloType === 'ring' || !this.contrloType">
|
|
16
16
|
<div class="ring-first" v-for="(list, index1) in patternInfo" :key="index1">
|
|
17
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': ''">
|
|
18
|
-
<div class="first-1" :class="item.mode
|
|
18
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :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'}">
|
|
19
19
|
<el-tooltip placement="top-start" effect="light">
|
|
20
20
|
<div slot="content">P{{item.id}}:{{item.split}}</div>
|
|
21
21
|
<div style="cursor:pointer;">
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
<i class="iconfont icon-youguidianche" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 5 && bus.phaseid===item.id"></i>
|
|
39
39
|
</div>
|
|
40
40
|
</div>
|
|
41
|
-
<div class="first-1" :class="item.mode
|
|
42
|
-
<div class="first-1" :class="item.mode
|
|
43
|
-
<div class="first-1" :class="item.mode
|
|
41
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :style="{'width':Number(item.flashgreen.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%').replace('%', ''))*100+'%','height':'34px','float':'left','background': 'linear-gradient(to right, #ffffff 50%, #7ccc66 0)','background-size': '4px 100%'}"></div>
|
|
42
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :style="{'width':Number(item.yellowWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%').replace('%', ''))*100+'%','height':'34px','background':'#f9dc6a'}"></div>
|
|
43
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :style="{'width':Number(item.redWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%').replace('%', ''))*100+'%','height':'34px','background':'#f27979'}"></div>
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
46
|
<div v-if="showBarrier">
|
|
@@ -433,7 +433,7 @@ export default {
|
|
|
433
433
|
getStage () {
|
|
434
434
|
if (!this.stagesChange) return
|
|
435
435
|
const globalParamModel = this.$store.getters.globalParamModel
|
|
436
|
-
let pattern =
|
|
436
|
+
let pattern = this.allPatternList ? this.allPatternList : globalParamModel.getParamsByType('patternList')
|
|
437
437
|
let mapAdd = pattern.map(item => item.stagesList).map(item => {
|
|
438
438
|
return item.map(val => {
|
|
439
439
|
return val.stageSplit ? val.stageSplit : val.split
|
|
@@ -1471,9 +1471,6 @@ export default {
|
|
|
1471
1471
|
.masks {
|
|
1472
1472
|
background: rgb(242, 121, 121) !important;
|
|
1473
1473
|
}
|
|
1474
|
-
.yellowClass {
|
|
1475
|
-
background: #f9dc6a !important;
|
|
1476
|
-
}
|
|
1477
1474
|
.first-1 {
|
|
1478
1475
|
float: left;
|
|
1479
1476
|
// text-align: center;
|
|
@@ -16,36 +16,8 @@
|
|
|
16
16
|
<transition name="fade-right" mode="out-in"
|
|
17
17
|
:enter-active-class="toPage === 1 ? 'animated fadeInRight' : 'animated fadeInLeft'"
|
|
18
18
|
:leave-active-class="toPage === 1 ? 'animated fadeOutRight' : 'animated fadeOutLeft' ">
|
|
19
|
-
<div
|
|
20
|
-
|
|
21
|
-
ref="ManualControlModalNew"
|
|
22
|
-
:residentControlList="residentControlList"
|
|
23
|
-
:specialControlList="specialControlList"
|
|
24
|
-
:patternChooseControlList="patternChooseControlList"
|
|
25
|
-
:othersControlList="othersControlList"
|
|
26
|
-
:controlData="controlData"
|
|
27
|
-
:patternAll="patternAll"
|
|
28
|
-
:crossStatusData="crossStatusData"
|
|
29
|
-
:preselectModel="preselectModel"
|
|
30
|
-
:preselectStages="preselectStages"
|
|
31
|
-
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
32
|
-
:roadDirection="roadDirection"
|
|
33
|
-
:closePhaseRings="phaseRings"
|
|
34
|
-
:sidewalkPhaseData="sidewalkPhaseData"
|
|
35
|
-
:phaseList="phaseList"
|
|
36
|
-
:statusData="statusData"
|
|
37
|
-
:lockPhaseBtnName="lockPhaseBtnName"
|
|
38
|
-
:overlap="overlap"
|
|
39
|
-
:patternSelect="patternSelect"
|
|
40
|
-
:allPatternList="allPatternList"
|
|
41
|
-
@closeManualModal="closeManualModal"
|
|
42
|
-
@selectModel="selectModel"
|
|
43
|
-
@selectStages="selectStages"
|
|
44
|
-
@patternCommit="patternCommit"
|
|
45
|
-
@closePhaseBack="closePhaseBack"
|
|
46
|
-
@closePhaseControl="closePhaseControl"
|
|
47
|
-
@selectSpecialModel="selectSpecialModelNew" />
|
|
48
|
-
<!-- <ManualControlModal
|
|
19
|
+
<div style="position: absolute;width: 100%;height:100%;" v-show="(isOperation && !isClosePhase)">
|
|
20
|
+
<ManualControlModal
|
|
49
21
|
:controlData="controlData"
|
|
50
22
|
:modelList="modelList"
|
|
51
23
|
:patternSelect="patternSelect"
|
|
@@ -63,10 +35,10 @@
|
|
|
63
35
|
@selectModel="selectModel"
|
|
64
36
|
@selectStages="selectStages"
|
|
65
37
|
@patternCommit="patternCommit"
|
|
66
|
-
@selectSpecialModel="selectSpecialModel" />
|
|
38
|
+
@selectSpecialModel="selectSpecialModel" />
|
|
67
39
|
</div>
|
|
68
40
|
</transition>
|
|
69
|
-
|
|
41
|
+
<transition name="fade-left" mode="out-in"
|
|
70
42
|
enter-active-class="animated fadeInRight"
|
|
71
43
|
leave-active-class="animated fadeOutRight">
|
|
72
44
|
<div style="position: absolute;width: 100%;height:100%" v-show="(isOperation && isClosePhase)">
|
|
@@ -78,16 +50,16 @@
|
|
|
78
50
|
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
79
51
|
:roadDirection="roadDirection"
|
|
80
52
|
@closePhaseBack="closePhaseBack"
|
|
81
|
-
@closePhaseControl="closePhaseControl" />
|
|
82
|
-
|
|
53
|
+
@closePhaseControl="closePhaseControl" />
|
|
54
|
+
<LockingPhaseControlModal
|
|
83
55
|
v-if="specialPage === 'lockingphase'"
|
|
84
56
|
:roadDirection="roadDirection"
|
|
85
57
|
:phaseList="phaseList"
|
|
86
58
|
:patternStatus="statusData"
|
|
87
59
|
:lockPhaseBtnName="lockPhaseBtnName"
|
|
88
60
|
@closePhaseBack="closePhaseBack"
|
|
89
|
-
@closePhaseControl="closePhaseControl" />
|
|
90
|
-
|
|
61
|
+
@closePhaseControl="closePhaseControl" />
|
|
62
|
+
<TentativePlanControlModal
|
|
91
63
|
v-if="specialPage === 'tentativeplan'"
|
|
92
64
|
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
93
65
|
:controlData="controlData"
|
|
@@ -104,17 +76,17 @@
|
|
|
104
76
|
:phaseList="phaseList"
|
|
105
77
|
@closePhaseBack="closePhaseBack"
|
|
106
78
|
@closePhaseControl="closePhaseControl"
|
|
107
|
-
/>
|
|
108
|
-
|
|
79
|
+
/>
|
|
80
|
+
<AzimuthLocking
|
|
109
81
|
v-if="specialPage === 'azimuthlocking'"
|
|
110
82
|
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
111
83
|
:phaseList="phaseList"
|
|
112
84
|
:patternStatus="statusData"
|
|
113
85
|
@closePhaseBack="closePhaseBack"
|
|
114
86
|
@closePhaseControl="closePhaseControl"
|
|
115
|
-
/>
|
|
116
|
-
|
|
117
|
-
</transition>
|
|
87
|
+
/>
|
|
88
|
+
</div>
|
|
89
|
+
</transition>
|
|
118
90
|
|
|
119
91
|
<transition name="fade-left" mode="out-in"
|
|
120
92
|
enter-active-class="animated fadeInLeft"
|
|
@@ -150,7 +122,6 @@ import { putTscControl } from '../../../api/control.js'
|
|
|
150
122
|
import { uploadSingleTscParam } from '../../../api/param.js'
|
|
151
123
|
import RealtimeStatusModal from './realtimeStatusModal'
|
|
152
124
|
import ManualControlModal from './manualControlModal'
|
|
153
|
-
import ManualControlModalNew from './manualControlModalNew'
|
|
154
125
|
import ClosePhaseControlModal from './closePhaselControlModal'
|
|
155
126
|
import LockingPhaseControlModal from './lockingPhaselControlModal'
|
|
156
127
|
import TentativePlanControlModal from './tentativeplancontrolmodal'
|
|
@@ -161,10 +132,9 @@ import { getMessageByCode } from '../../../utils/responseMessage'
|
|
|
161
132
|
import { GetAllFaultRange } from '../../../api/fault'
|
|
162
133
|
import PhaseDataModel from '../IntersectionMap/crossDirection/utils.js'
|
|
163
134
|
import CrossDiagramMgr from '../../../EdgeMgr/controller/crossDiagramMgr.js'
|
|
164
|
-
import { setToken, setHost
|
|
135
|
+
import { setToken, setHost } from '../../../utils/auth.js'
|
|
165
136
|
import RingDataModel from '../../../utils/RingDataModel.js'
|
|
166
137
|
import { getIntersectionInfo } from '../../../api/template'
|
|
167
|
-
|
|
168
138
|
export default {
|
|
169
139
|
name: 'scheme-config',
|
|
170
140
|
components: {
|
|
@@ -174,8 +144,7 @@ export default {
|
|
|
174
144
|
LockingPhaseControlModal,
|
|
175
145
|
priorityControl,
|
|
176
146
|
AzimuthLocking,
|
|
177
|
-
TentativePlanControlModal
|
|
178
|
-
ManualControlModalNew
|
|
147
|
+
TentativePlanControlModal
|
|
179
148
|
},
|
|
180
149
|
props: {
|
|
181
150
|
phaseList: {
|
|
@@ -335,132 +304,6 @@ export default {
|
|
|
335
304
|
permission: 'configer:manual:base',
|
|
336
305
|
iconName: '感应式行人过街控制'
|
|
337
306
|
}],
|
|
338
|
-
residentControlList: [
|
|
339
|
-
{
|
|
340
|
-
type: '步进',
|
|
341
|
-
id: 4,
|
|
342
|
-
iconClass: 'bujin',
|
|
343
|
-
permission: 'configer:manual:dwell',
|
|
344
|
-
iconName: this.$t('openatccomponents.overview.modelList4'),
|
|
345
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
type: '阶段锁定',
|
|
349
|
-
id: 4,
|
|
350
|
-
iconClass: 'jieduansuoding',
|
|
351
|
-
permission: 'configer:manual:dwell',
|
|
352
|
-
iconName: this.$t('openatccomponents.overview.modelList4-'),
|
|
353
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
type: '相位锁定',
|
|
357
|
-
id: 22,
|
|
358
|
-
iconClass: 'xiangweisuoding',
|
|
359
|
-
permission: 'configer:manual:dwell',
|
|
360
|
-
iconName: this.$t('openatccomponents.overview.modelList22'),
|
|
361
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
362
|
-
},
|
|
363
|
-
{
|
|
364
|
-
type: '方向锁定',
|
|
365
|
-
id: 25,
|
|
366
|
-
iconClass: 'fangxiangsuoding',
|
|
367
|
-
permission: 'configer:manual:dwell',
|
|
368
|
-
iconName: this.$t('openatccomponents.overview.modelList25'),
|
|
369
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
370
|
-
}
|
|
371
|
-
],
|
|
372
|
-
specialControlList: [
|
|
373
|
-
{
|
|
374
|
-
type: '黄闪',
|
|
375
|
-
id: 1,
|
|
376
|
-
iconClass: 'huangshan',
|
|
377
|
-
permission: 'configer:manual:senior',
|
|
378
|
-
iconName: this.$t('openatccomponents.overview.modelList1'),
|
|
379
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
380
|
-
}, {
|
|
381
|
-
type: '全红',
|
|
382
|
-
id: 2,
|
|
383
|
-
iconClass: 'quanhong',
|
|
384
|
-
permission: 'configer:manual:senior',
|
|
385
|
-
iconName: this.$t('openatccomponents.overview.modelList2'),
|
|
386
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
387
|
-
}, {
|
|
388
|
-
type: '关灯',
|
|
389
|
-
id: 3,
|
|
390
|
-
iconClass: 'guandeng',
|
|
391
|
-
permission: 'configer:manual:senior',
|
|
392
|
-
iconName: this.$t('openatccomponents.overview.modelList3'),
|
|
393
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
394
|
-
}
|
|
395
|
-
],
|
|
396
|
-
patternChooseControlList: [
|
|
397
|
-
{
|
|
398
|
-
type: '定周期',
|
|
399
|
-
id: 5,
|
|
400
|
-
iconClass: 'dingzhouqi',
|
|
401
|
-
permission: 'configer:manual:base',
|
|
402
|
-
iconName: this.$t('openatccomponents.overview.modelList5'),
|
|
403
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
404
|
-
}, {
|
|
405
|
-
type: '单点感应',
|
|
406
|
-
id: 6,
|
|
407
|
-
iconClass: 'ganyingkongzhi',
|
|
408
|
-
permission: 'configer:manual:base',
|
|
409
|
-
iconName: this.$t('openatccomponents.overview.modelList6'),
|
|
410
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
411
|
-
}, {
|
|
412
|
-
type: '自适应控制',
|
|
413
|
-
id: 9,
|
|
414
|
-
iconClass: 'zishiying',
|
|
415
|
-
permission: 'configer:manual:base',
|
|
416
|
-
iconName: this.$t('openatccomponents.overview.modelList9'),
|
|
417
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
418
|
-
}, {
|
|
419
|
-
type: '无电缆协调',
|
|
420
|
-
id: 10,
|
|
421
|
-
iconClass: 'wuxianlan',
|
|
422
|
-
permission: 'configer:manual:base',
|
|
423
|
-
iconName: this.$t('openatccomponents.overview.modelList10'),
|
|
424
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
425
|
-
}, {
|
|
426
|
-
type: '行人过街',
|
|
427
|
-
id: 12,
|
|
428
|
-
iconClass: 'xingrenguojie',
|
|
429
|
-
permission: 'configer:manual:base',
|
|
430
|
-
iconName: this.$t('openatccomponents.overview.modelList12'),
|
|
431
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
432
|
-
}, {
|
|
433
|
-
type: '感应式行人过街',
|
|
434
|
-
id: 19,
|
|
435
|
-
iconClass: 'ganyingshixingrenguojie',
|
|
436
|
-
permission: 'configer:manual:base',
|
|
437
|
-
iconName: this.$t('openatccomponents.overview.modelList19'),
|
|
438
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
439
|
-
}
|
|
440
|
-
],
|
|
441
|
-
othersControlList: [
|
|
442
|
-
{ // 特殊控制
|
|
443
|
-
type: '相位关断',
|
|
444
|
-
id: 23,
|
|
445
|
-
permission: 'configer:manual:optimize',
|
|
446
|
-
iconClass: 'closephase',
|
|
447
|
-
iconName: this.$t('openatccomponents.overview.modelList23'),
|
|
448
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
449
|
-
}, {
|
|
450
|
-
type: '临时方案',
|
|
451
|
-
id: 100,
|
|
452
|
-
permission: 'configer:manual:optimize',
|
|
453
|
-
iconClass: 'tentativeplan',
|
|
454
|
-
iconName: this.$t('openatccomponents.overview.modelList100'),
|
|
455
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
456
|
-
}, {
|
|
457
|
-
type: '优先控制',
|
|
458
|
-
id: 24,
|
|
459
|
-
permission: 'configer:manual:preempt',
|
|
460
|
-
iconClass: 'prioritycontrol',
|
|
461
|
-
iconName: this.$t('openatccomponents.overview.modelList24'),
|
|
462
|
-
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
463
|
-
}],
|
|
464
307
|
currModel: -1,
|
|
465
308
|
preselectModel: -1, // 预选方案
|
|
466
309
|
preselectStages: -1, // 预选阶段
|
|
@@ -639,7 +482,15 @@ export default {
|
|
|
639
482
|
changeStatus () {
|
|
640
483
|
this.toPage = 1
|
|
641
484
|
this.isOperation = true
|
|
642
|
-
this
|
|
485
|
+
if (this.modelList.filter(ele => ele.id === 0).length === 0) {
|
|
486
|
+
let autonomyControl = {
|
|
487
|
+
id: 0,
|
|
488
|
+
iconClass: 'zizhukongzhi',
|
|
489
|
+
permission: 'configer:manual:renew',
|
|
490
|
+
iconName: '自主控制'
|
|
491
|
+
}
|
|
492
|
+
this.modelList.push(autonomyControl)
|
|
493
|
+
}
|
|
643
494
|
},
|
|
644
495
|
handleGetData (data) {
|
|
645
496
|
let that = this
|
|
@@ -716,7 +567,7 @@ export default {
|
|
|
716
567
|
})
|
|
717
568
|
control.control = that.preselectModel
|
|
718
569
|
// control.terminal = isNaN(parseInt(manualInfo.tempPatternid)) ? Number(manualInfo.tempPatternid.replace(/[^0-9]/ig, '')) : manualInfo.tempPatternid
|
|
719
|
-
control.terminal =
|
|
570
|
+
control.terminal = Number(manualInfo.tempPatternid)
|
|
720
571
|
// control.delay = Number(manualInfo.tempDelay)
|
|
721
572
|
control.duration = Number(manualInfo.tempDuration)
|
|
722
573
|
control.value = that.preselectStages === -1 ? 0 : that.preselectStages
|
|
@@ -825,10 +676,6 @@ export default {
|
|
|
825
676
|
this.closePhase = []
|
|
826
677
|
}
|
|
827
678
|
},
|
|
828
|
-
selectSpecialModelNew () {
|
|
829
|
-
let ringDataModel = new RingDataModel(this.statusData, this.phaseList)
|
|
830
|
-
this.phaseRings = ringDataModel.initRingPhaseData()
|
|
831
|
-
},
|
|
832
679
|
selectSpecialModel (id) {
|
|
833
680
|
let ringDataModel = new RingDataModel(this.statusData, this.phaseList)
|
|
834
681
|
if (id === 23) {
|