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.json
CHANGED
package/src/i18n/language/en.js
CHANGED
|
@@ -193,7 +193,6 @@ const en = {
|
|
|
193
193
|
'modelList2': 'Red Control',
|
|
194
194
|
'modelList3': 'Dark Control',
|
|
195
195
|
'modelList4': 'Step Control',
|
|
196
|
-
'modelList4-': 'Stage Control',
|
|
197
196
|
'modelList5': 'Fixed_Cycle Control',
|
|
198
197
|
'modelList6': 'Free Control',
|
|
199
198
|
'modelList7': 'Coordinated Induction Control',
|
|
@@ -213,6 +212,7 @@ const en = {
|
|
|
213
212
|
'modelList22': 'Priority Control',
|
|
214
213
|
'modelList23': 'Close Phase',
|
|
215
214
|
'modelList100': 'Tentative Plan',
|
|
215
|
+
'modelList101': 'Direction Lock',
|
|
216
216
|
'modelList24': 'Priority Control',
|
|
217
217
|
'modelList25': 'Azimuth locking',
|
|
218
218
|
'controlType201': 'Scheme Update Frequency',
|
|
@@ -333,11 +333,7 @@ const en = {
|
|
|
333
333
|
'ignored': 'ignored',
|
|
334
334
|
'untreated': 'untreated',
|
|
335
335
|
'item': 'item',
|
|
336
|
-
'noselectcontroltip': 'Please select a control method first!'
|
|
337
|
-
'residentcontrol': 'Resident Control',
|
|
338
|
-
'schemeselection': 'Pattern Select',
|
|
339
|
-
'others': 'Others',
|
|
340
|
-
'recovery': 'Recovery'
|
|
336
|
+
'noselectcontroltip': 'Please select a control method first!'
|
|
341
337
|
},
|
|
342
338
|
'phase': {
|
|
343
339
|
'desc': 'LaneDirection',
|
package/src/i18n/language/zh.js
CHANGED
|
@@ -244,8 +244,7 @@ const zh = {
|
|
|
244
244
|
'modelList1': '黄闪',
|
|
245
245
|
'modelList2': '全红',
|
|
246
246
|
'modelList3': '关灯',
|
|
247
|
-
'modelList4': '
|
|
248
|
-
'modelList4-': '阶段锁定',
|
|
247
|
+
'modelList4': '阶段锁定',
|
|
249
248
|
'modelList5': '定周期',
|
|
250
249
|
'modelList6': '单点感应',
|
|
251
250
|
'modelList7': '协调感应控制',
|
|
@@ -266,6 +265,7 @@ const zh = {
|
|
|
266
265
|
'modelList25': '方位锁定',
|
|
267
266
|
'modelList23': '相位放行控制',
|
|
268
267
|
'modelList100': '临时方案',
|
|
268
|
+
'modelList101': '方向锁定',
|
|
269
269
|
'modelList24': '优先控制',
|
|
270
270
|
'modelList99': '设备维护',
|
|
271
271
|
'controlType201': '方案更新频次',
|
|
@@ -333,11 +333,7 @@ const zh = {
|
|
|
333
333
|
'ignored': '已忽略',
|
|
334
334
|
'untreated': '未处理',
|
|
335
335
|
'item': '条',
|
|
336
|
-
'noselectcontroltip': '请先选择一种控制方式!'
|
|
337
|
-
'residentcontrol': '驻留控制',
|
|
338
|
-
'schemeselection': '方案选择',
|
|
339
|
-
'others': '其他',
|
|
340
|
-
'recovery': '恢复'
|
|
336
|
+
'noselectcontroltip': '请先选择一种控制方式!'
|
|
341
337
|
},
|
|
342
338
|
'phase': {
|
|
343
339
|
'desc': '车道方向',
|
|
@@ -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>
|
|
@@ -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) {
|