openatc-components 0.2.37 → 0.2.39
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/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +429 -0
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +7 -4
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +181 -28
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +75 -32
- package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +15 -4
- package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +40 -17
- package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +3 -3
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +22 -12
- package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +23 -12
- package/package/kisscomps/components/StageBord/StageBord.vue +1 -0
- package/package/kisscomps/components/Stages/index.vue +52 -11
- package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +30 -28
- package/package/kissui.min.js +1 -1
- package/package.json +1 -1
- package/src/i18n/language/en.js +6 -1
- package/src/i18n/language/zh.js +7 -2
- package/src/icons/svg/fangxiangsuoding.svg +1 -0
- package/src/icons/svg/jieduansuoding.svg +1 -0
- package/src/icons/svg/xiangweisuoding.svg +1 -0
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +7 -4
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +181 -28
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +75 -32
- package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +15 -4
- package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +40 -17
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/controlModelGroup.vue +128 -0
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +426 -0
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +820 -0
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/othersIcon.vue +194 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +22 -12
- package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +23 -12
- package/src/kisscomps/components/StageBord/StageBord.vue +1 -0
- package/src/kisscomps/components/Stages/index.vue +52 -11
- package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +30 -28
- package/src/views/intersection.vue +1 -1
- package/src/views/overView.vue +1 -1
- package/static/styles/commonkanban.scss +1 -0
- package/static/styles/light/theme/element-light.scss +4 -4
- package/static/styles/schemeconfig.scss +91 -59
- package/static/styles/stages.scss +1 -8
- package/src/node_modules/.package_versions.json +0 -1
package/package.json
CHANGED
package/src/i18n/language/en.js
CHANGED
|
@@ -193,6 +193,7 @@ const en = {
|
|
|
193
193
|
'modelList2': 'Red Control',
|
|
194
194
|
'modelList3': 'Dark Control',
|
|
195
195
|
'modelList4': 'Step Control',
|
|
196
|
+
'modelList4-': 'Stage Control',
|
|
196
197
|
'modelList5': 'Fixed_Cycle Control',
|
|
197
198
|
'modelList6': 'Free Control',
|
|
198
199
|
'modelList7': 'Coordinated Induction Control',
|
|
@@ -333,7 +334,11 @@ const en = {
|
|
|
333
334
|
'ignored': 'ignored',
|
|
334
335
|
'untreated': 'untreated',
|
|
335
336
|
'item': 'item',
|
|
336
|
-
'noselectcontroltip': 'Please select a control method first!'
|
|
337
|
+
'noselectcontroltip': 'Please select a control method first!',
|
|
338
|
+
'residentcontrol': 'Resident Control',
|
|
339
|
+
'schemeselection': 'Pattern Select',
|
|
340
|
+
'others': 'Others',
|
|
341
|
+
'recovery': 'Recovery'
|
|
337
342
|
},
|
|
338
343
|
'phase': {
|
|
339
344
|
'desc': 'LaneDirection',
|
package/src/i18n/language/zh.js
CHANGED
|
@@ -244,7 +244,8 @@ const zh = {
|
|
|
244
244
|
'modelList1': '黄闪',
|
|
245
245
|
'modelList2': '全红',
|
|
246
246
|
'modelList3': '关灯',
|
|
247
|
-
'modelList4': '
|
|
247
|
+
'modelList4': '步进',
|
|
248
|
+
'modelList4-': '阶段锁定',
|
|
248
249
|
'modelList5': '定周期',
|
|
249
250
|
'modelList6': '单点感应',
|
|
250
251
|
'modelList7': '协调感应控制',
|
|
@@ -333,7 +334,11 @@ const zh = {
|
|
|
333
334
|
'ignored': '已忽略',
|
|
334
335
|
'untreated': '未处理',
|
|
335
336
|
'item': '条',
|
|
336
|
-
'noselectcontroltip': '请先选择一种控制方式!'
|
|
337
|
+
'noselectcontroltip': '请先选择一种控制方式!',
|
|
338
|
+
'residentcontrol': '驻留控制',
|
|
339
|
+
'schemeselection': '方案选择',
|
|
340
|
+
'others': '其他',
|
|
341
|
+
'recovery': '恢复'
|
|
337
342
|
},
|
|
338
343
|
'phase': {
|
|
339
344
|
'desc': '车道方向',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1714021963787" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12286" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M1023.606154 512l-267.815385-154.781538v111.852307h-200.467692v-200.861538h111.458461L512.393846 0.393846l-154.781538 267.815385h111.458461v200.861538H268.603077V357.218462L0.787692 512l267.815385 154.781538V555.323077h200.467692v200.467692H357.612308l154.781538 267.815385 154.387692-267.815385h-111.458461V555.323077h200.467692v111.458461z" p-id="12287"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1714021956193" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12129" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M54.218328 0.002671h184.821636a52.882491 52.882491 0 0 1 53.416657 53.416658v916.09568a52.882491 52.882491 0 0 1-53.416657 53.416658H54.218328a53.416658 53.416658 0 0 1-53.416658-53.416658V53.419329a53.416658 53.416658 0 0 1 53.416658-53.416658z m438.016593 0h112.174982a53.416658 53.416658 0 0 1 53.416658 53.416658v916.09568a53.416658 53.416658 0 0 1-53.416658 53.416658H492.234921a52.882491 52.882491 0 0 1-53.416657-53.416658V53.419329a52.882491 52.882491 0 0 1 53.416657-53.416658z m364.835773 0h112.174981a53.416658 53.416658 0 0 1 53.416658 53.416658v916.09568a53.416658 53.416658 0 0 1-53.416658 53.416658h-112.174981a53.416658 53.416658 0 0 1-53.416658-53.416658V53.419329a53.416658 53.416658 0 0 1 53.416658-53.416658z" p-id="12130"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1714026084421" class="icon" viewBox="0 0 1180 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11864" xmlns:xlink="http://www.w3.org/1999/xlink" width="230.46875" height="200"><path d="M0.040891 1024V477.751546a302.998089 302.998089 0 0 1 298.163013-307.948286h397.166948V0L1179.454044 288.37774l-484.083192 288.377741V406.95222h-397.166948a71.777853 71.777853 0 0 0-70.223721 72.526139v544.521641H0.040891z" fill="#606266" p-id="11865"></path></svg>
|
|
@@ -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===8?'
|
|
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'}">
|
|
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===8?'
|
|
42
|
-
<div class="first-1" :class="item.mode===8?'
|
|
43
|
-
<div class="first-1" :class="item.mode===8?'
|
|
41
|
+
<div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :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 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :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 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :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">
|
|
@@ -1471,6 +1471,9 @@ export default {
|
|
|
1471
1471
|
.masks {
|
|
1472
1472
|
background: rgb(242, 121, 121) !important;
|
|
1473
1473
|
}
|
|
1474
|
+
.yellowClass {
|
|
1475
|
+
background: #f9dc6a !important;
|
|
1476
|
+
}
|
|
1474
1477
|
.first-1 {
|
|
1475
1478
|
float: left;
|
|
1476
1479
|
// text-align: center;
|
|
@@ -16,8 +16,36 @@
|
|
|
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 style="position: absolute;width: 100%;height:100%;" v-show="(isOperation && !isClosePhase)">
|
|
20
|
-
|
|
19
|
+
<div class="new" style="position: absolute;width: 100%;height:100%;" v-show="(isOperation && !isClosePhase)">
|
|
20
|
+
<ManualControlModalNew
|
|
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
|
|
21
49
|
:controlData="controlData"
|
|
22
50
|
:modelList="modelList"
|
|
23
51
|
:patternSelect="patternSelect"
|
|
@@ -35,10 +63,10 @@
|
|
|
35
63
|
@selectModel="selectModel"
|
|
36
64
|
@selectStages="selectStages"
|
|
37
65
|
@patternCommit="patternCommit"
|
|
38
|
-
@selectSpecialModel="selectSpecialModel" />
|
|
66
|
+
@selectSpecialModel="selectSpecialModel" /> -->
|
|
39
67
|
</div>
|
|
40
68
|
</transition>
|
|
41
|
-
<transition name="fade-left" mode="out-in"
|
|
69
|
+
<!-- <transition name="fade-left" mode="out-in"
|
|
42
70
|
enter-active-class="animated fadeInRight"
|
|
43
71
|
leave-active-class="animated fadeOutRight">
|
|
44
72
|
<div style="position: absolute;width: 100%;height:100%" v-show="(isOperation && isClosePhase)">
|
|
@@ -50,16 +78,16 @@
|
|
|
50
78
|
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
51
79
|
:roadDirection="roadDirection"
|
|
52
80
|
@closePhaseBack="closePhaseBack"
|
|
53
|
-
@closePhaseControl="closePhaseControl" />
|
|
54
|
-
<LockingPhaseControlModal
|
|
81
|
+
@closePhaseControl="closePhaseControl" /> -->
|
|
82
|
+
<!-- <LockingPhaseControlModal
|
|
55
83
|
v-if="specialPage === 'lockingphase'"
|
|
56
84
|
:roadDirection="roadDirection"
|
|
57
85
|
:phaseList="phaseList"
|
|
58
86
|
:patternStatus="statusData"
|
|
59
87
|
:lockPhaseBtnName="lockPhaseBtnName"
|
|
60
88
|
@closePhaseBack="closePhaseBack"
|
|
61
|
-
@closePhaseControl="closePhaseControl" />
|
|
62
|
-
<TentativePlanControlModal
|
|
89
|
+
@closePhaseControl="closePhaseControl" /> -->
|
|
90
|
+
<!-- <TentativePlanControlModal
|
|
63
91
|
v-if="specialPage === 'tentativeplan'"
|
|
64
92
|
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
65
93
|
:controlData="controlData"
|
|
@@ -76,17 +104,17 @@
|
|
|
76
104
|
:phaseList="phaseList"
|
|
77
105
|
@closePhaseBack="closePhaseBack"
|
|
78
106
|
@closePhaseControl="closePhaseControl"
|
|
79
|
-
/>
|
|
80
|
-
<AzimuthLocking
|
|
107
|
+
/> -->
|
|
108
|
+
<!-- <AzimuthLocking
|
|
81
109
|
v-if="specialPage === 'azimuthlocking'"
|
|
82
110
|
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
83
111
|
:phaseList="phaseList"
|
|
84
112
|
:patternStatus="statusData"
|
|
85
113
|
@closePhaseBack="closePhaseBack"
|
|
86
114
|
@closePhaseControl="closePhaseControl"
|
|
87
|
-
/>
|
|
88
|
-
</div>
|
|
89
|
-
</transition>
|
|
115
|
+
/> -->
|
|
116
|
+
<!-- </div>
|
|
117
|
+
</transition> -->
|
|
90
118
|
|
|
91
119
|
<transition name="fade-left" mode="out-in"
|
|
92
120
|
enter-active-class="animated fadeInLeft"
|
|
@@ -122,6 +150,7 @@ import { putTscControl } from '../../../api/control.js'
|
|
|
122
150
|
import { uploadSingleTscParam } from '../../../api/param.js'
|
|
123
151
|
import RealtimeStatusModal from './realtimeStatusModal'
|
|
124
152
|
import ManualControlModal from './manualControlModal'
|
|
153
|
+
import ManualControlModalNew from './manualControlModalNew'
|
|
125
154
|
import ClosePhaseControlModal from './closePhaselControlModal'
|
|
126
155
|
import LockingPhaseControlModal from './lockingPhaselControlModal'
|
|
127
156
|
import TentativePlanControlModal from './tentativeplancontrolmodal'
|
|
@@ -132,9 +161,10 @@ import { getMessageByCode } from '../../../utils/responseMessage'
|
|
|
132
161
|
import { GetAllFaultRange } from '../../../api/fault'
|
|
133
162
|
import PhaseDataModel from '../IntersectionMap/crossDirection/utils.js'
|
|
134
163
|
import CrossDiagramMgr from '../../../EdgeMgr/controller/crossDiagramMgr.js'
|
|
135
|
-
import { setToken, setHost } from '../../../utils/auth.js'
|
|
164
|
+
import { setToken, setHost, getTheme } from '../../../utils/auth.js'
|
|
136
165
|
import RingDataModel from '../../../utils/RingDataModel.js'
|
|
137
166
|
import { getIntersectionInfo } from '../../../api/template'
|
|
167
|
+
|
|
138
168
|
export default {
|
|
139
169
|
name: 'scheme-config',
|
|
140
170
|
components: {
|
|
@@ -144,7 +174,8 @@ export default {
|
|
|
144
174
|
LockingPhaseControlModal,
|
|
145
175
|
priorityControl,
|
|
146
176
|
AzimuthLocking,
|
|
147
|
-
TentativePlanControlModal
|
|
177
|
+
TentativePlanControlModal,
|
|
178
|
+
ManualControlModalNew
|
|
148
179
|
},
|
|
149
180
|
props: {
|
|
150
181
|
phaseList: {
|
|
@@ -304,6 +335,132 @@ export default {
|
|
|
304
335
|
permission: 'configer:manual:base',
|
|
305
336
|
iconName: '感应式行人过街控制'
|
|
306
337
|
}],
|
|
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
|
+
}],
|
|
307
464
|
currModel: -1,
|
|
308
465
|
preselectModel: -1, // 预选方案
|
|
309
466
|
preselectStages: -1, // 预选阶段
|
|
@@ -393,12 +550,12 @@ export default {
|
|
|
393
550
|
this.setHost(this.reqUrl)
|
|
394
551
|
this.PhaseDataModel = new PhaseDataModel(this.roadDirection)
|
|
395
552
|
this.CrossDiagramMgr = new CrossDiagramMgr()
|
|
396
|
-
if (this.realtimeStatusModalvisible === false) {
|
|
397
|
-
this.changeStatus()
|
|
398
|
-
}
|
|
399
553
|
this.getIntersectionInfo(this.agentId)
|
|
400
554
|
},
|
|
401
555
|
async mounted () {
|
|
556
|
+
if (this.realtimeStatusModalvisible === false) {
|
|
557
|
+
this.changeStatus()
|
|
558
|
+
}
|
|
402
559
|
this.setPropsToken(this.Token)
|
|
403
560
|
// await this.getPhase()
|
|
404
561
|
this.getFault()
|
|
@@ -482,15 +639,7 @@ export default {
|
|
|
482
639
|
changeStatus () {
|
|
483
640
|
this.toPage = 1
|
|
484
641
|
this.isOperation = true
|
|
485
|
-
|
|
486
|
-
let autonomyControl = {
|
|
487
|
-
id: 0,
|
|
488
|
-
iconClass: 'zizhukongzhi',
|
|
489
|
-
permission: 'configer:manual:renew',
|
|
490
|
-
iconName: '自主控制'
|
|
491
|
-
}
|
|
492
|
-
this.modelList.push(autonomyControl)
|
|
493
|
-
}
|
|
642
|
+
this.$refs.ManualControlModalNew.init()
|
|
494
643
|
},
|
|
495
644
|
handleGetData (data) {
|
|
496
645
|
let that = this
|
|
@@ -567,7 +716,7 @@ export default {
|
|
|
567
716
|
})
|
|
568
717
|
control.control = that.preselectModel
|
|
569
718
|
// control.terminal = isNaN(parseInt(manualInfo.tempPatternid)) ? Number(manualInfo.tempPatternid.replace(/[^0-9]/ig, '')) : manualInfo.tempPatternid
|
|
570
|
-
control.terminal = Number(manualInfo.tempPatternid)
|
|
719
|
+
control.terminal = manualInfo.tempPatternid === undefined ? null : Number(manualInfo.tempPatternid)
|
|
571
720
|
// control.delay = Number(manualInfo.tempDelay)
|
|
572
721
|
control.duration = Number(manualInfo.tempDuration)
|
|
573
722
|
control.value = that.preselectStages === -1 ? 0 : that.preselectStages
|
|
@@ -676,6 +825,10 @@ export default {
|
|
|
676
825
|
this.closePhase = []
|
|
677
826
|
}
|
|
678
827
|
},
|
|
828
|
+
selectSpecialModelNew () {
|
|
829
|
+
let ringDataModel = new RingDataModel(this.statusData, this.phaseList)
|
|
830
|
+
this.phaseRings = ringDataModel.initRingPhaseData()
|
|
831
|
+
},
|
|
679
832
|
selectSpecialModel (id) {
|
|
680
833
|
let ringDataModel = new RingDataModel(this.statusData, this.phaseList)
|
|
681
834
|
if (id === 23) {
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="tentativeplan-control">
|
|
3
|
-
<div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.azimuthlocking')}}</div>
|
|
3
|
+
<!-- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.azimuthlocking')}}</div> -->
|
|
4
4
|
<el-row>
|
|
5
5
|
<el-col :span="12">
|
|
6
6
|
<el-form
|
|
7
7
|
ref="manual"
|
|
8
8
|
label-position="left"
|
|
9
9
|
:model="manualInfo"
|
|
10
|
-
label-width="
|
|
10
|
+
label-width="74px">
|
|
11
11
|
<el-form-item
|
|
12
12
|
:label="$t('openatccomponents.overview.duration') + ':'"
|
|
13
13
|
prop="count">
|
|
14
|
-
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.duration" size="
|
|
14
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.duration" size="small"></el-input-number>
|
|
15
15
|
</el-form-item>
|
|
16
16
|
<el-form-item
|
|
17
17
|
:label="$t('openatccomponents.overview.yellowflash') + ':'"
|
|
18
18
|
prop="intersection">
|
|
19
|
-
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.yellowflash" size="
|
|
19
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.yellowflash" size="small"></el-input-number>
|
|
20
20
|
</el-form-item>
|
|
21
21
|
<el-form-item
|
|
22
22
|
:label="$t('openatccomponents.overview.mingreen') + ':'"
|
|
23
23
|
prop="intersection">
|
|
24
|
-
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.mingreen" size="
|
|
24
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.mingreen" size="small"></el-input-number>
|
|
25
25
|
</el-form-item>
|
|
26
26
|
</el-form>
|
|
27
27
|
</el-col>
|
|
@@ -30,47 +30,47 @@
|
|
|
30
30
|
ref="manual"
|
|
31
31
|
label-position="left"
|
|
32
32
|
:model="manualInfo"
|
|
33
|
-
label-width="
|
|
33
|
+
label-width="74px">
|
|
34
34
|
<el-form-item
|
|
35
35
|
:label="$t('openatccomponents.overview.greenclear') + ':'"
|
|
36
36
|
prop="count">
|
|
37
|
-
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.greenclear" size="
|
|
37
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.greenclear" size="small"></el-input-number>
|
|
38
38
|
</el-form-item>
|
|
39
39
|
<el-form-item
|
|
40
40
|
:label="$t('openatccomponents.overview.allred') + ':'"
|
|
41
41
|
prop="intersection">
|
|
42
|
-
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.allred" size="
|
|
42
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.allred" size="small"></el-input-number>
|
|
43
43
|
</el-form-item>
|
|
44
44
|
</el-form>
|
|
45
45
|
</el-col>
|
|
46
46
|
</el-row>
|
|
47
|
-
<el-row>
|
|
47
|
+
<el-row style="margin-top: 6px;">
|
|
48
48
|
<el-col :span="5">
|
|
49
49
|
<span class="model-label-title">{{$t('openatccomponents.overview.indirection')}}:</span>
|
|
50
50
|
</el-col>
|
|
51
51
|
<el-col :span="19">
|
|
52
52
|
<div class="control-model" v-for="(item, index) in imgs" :key="index">
|
|
53
|
-
<div :class="{'single-model-select':spanIndex.indexOf(index)>-1}" class="single-model" @click="boxShow(index,item)">
|
|
54
|
-
<div v-if="item.class" :class="item.class" style="border:0px"></div>
|
|
55
|
-
<div class="single-model-name">{{item.name}}</div>
|
|
53
|
+
<div :style="{'backgroundColor': item.bgcolor}" :class="{'single-model-select':spanIndex.indexOf(index)>-1}" class="single-model" @click="boxShow(index,item)">
|
|
54
|
+
<div v-if="item.class" :style="{color: themeColor}" :class="item.class" style="border:0px;font-size: 50px;"></div>
|
|
55
|
+
<div class="single-model-name" :style="{color: themeColor}" style="margin-top: -4px;">{{item.name}}</div>
|
|
56
56
|
</div>
|
|
57
57
|
</div>
|
|
58
58
|
<div v-if="currentName !==''" style="width: 100%; height: auto;overflow: hidden;">
|
|
59
59
|
<div style="margin-top:20px" class="model-label-title">{{currentName}}{{$t('openatccomponents.overview.currentphase')}}:</div>
|
|
60
60
|
<div class="control-model" v-for="(item, index) in sidewalkPhaseData" :key="index">
|
|
61
|
-
<div style="position:relative;" class="single-model">
|
|
62
|
-
<xdr-dir-selector Width="75PX" Height="75PX" Widths="65PX" Heights="65PX" :Data="showStyle" :Datas="showStyles" :showlist="item"></xdr-dir-selector>
|
|
63
|
-
<div style="height:
|
|
64
|
-
<div class="current-stage-num" style="width:20%;">{{index + 1}}</div>
|
|
61
|
+
<div style="position:relative;" class="single-model" :style="{'backgroundColor': item[0].bgcolor}">
|
|
62
|
+
<xdr-dir-selector Width="75PX" Height="75PX" Widths="65PX" Heights="65PX" :Data="showStyle" :Datas="showStyles" :showlist="dirListSetTheme(item)"></xdr-dir-selector>
|
|
63
|
+
<div style="height:80px;display:flex;flex-direction:row;justify-content:center;align-items:end;">
|
|
64
|
+
<div class="current-stage-num" :style="{color: themeColor}" style="width:20%;">{{index + 1}}</div>
|
|
65
65
|
<div style="width:70%;">
|
|
66
|
-
<i class="iconfont icon-feijidongche" style="font-size:11PX;color:#606266;margin-left:10PX" v-if="item[item.length-1].controltype === 6"></i>
|
|
67
|
-
<i class="iconfont icon-lukouzhilu" style="font-size:16PX;color:#454545;margin-left:10PX" v-if="item[item.length-1].controltype === 1"></i>
|
|
68
|
-
<i class="iconfont icon-BRT" style="font-size:11PX;color:#454545;margin-left:10PX" v-if="item[item.length-1].controltype === 4"></i>
|
|
66
|
+
<i class="iconfont icon-feijidongche" :style="{color: themeColor}" style="font-size:11PX;color:#606266;margin-left:10PX" v-if="item[item.length-1].controltype === 6"></i>
|
|
67
|
+
<i class="iconfont icon-lukouzhilu" :style="{color: themeColor2}" style="font-size:16PX;color:#454545;margin-left:10PX" v-if="item[item.length-1].controltype === 1"></i>
|
|
68
|
+
<i class="iconfont icon-BRT" :style="{color: themeColor2}" style="font-size:11PX;color:#454545;margin-left:10PX" v-if="item[item.length-1].controltype === 4"></i>
|
|
69
69
|
<div style="transform:scale(0.65);margin-left:10PX">
|
|
70
|
-
<i class="iconfont icon-xuxiangwei-xin" style="font-size:5PX;color:#454545;" v-if="item[item.length-1].controltype === 99"></i>
|
|
70
|
+
<i class="iconfont icon-xuxiangwei-xin" :style="{color: themeColor2}" style="font-size:5PX;color:#454545;" v-if="item[item.length-1].controltype === 99"></i>
|
|
71
71
|
</div>
|
|
72
|
-
<i class="iconfont icon-gongjiaoche" style="font-size:11PX;color:#606266;margin-left:10PX" v-if="item[item.length-1].controltype === 3"></i>
|
|
73
|
-
<i class="iconfont icon-youguidianche" style="font-size:11PX;color:#606266;margin-left:10PX" v-if="item[item.length-1].controltype === 5"></i>
|
|
72
|
+
<i class="iconfont icon-gongjiaoche" :style="{color: themeColor}" style="font-size:11PX;color:#606266;margin-left:10PX" v-if="item[item.length-1].controltype === 3"></i>
|
|
73
|
+
<i class="iconfont icon-youguidianche" :style="{color: themeColor}" style="font-size:11PX;color:#606266;margin-left:10PX" v-if="item[item.length-1].controltype === 5"></i>
|
|
74
74
|
</div>
|
|
75
75
|
</div>
|
|
76
76
|
</div>
|
|
@@ -90,10 +90,12 @@
|
|
|
90
90
|
</div> -->
|
|
91
91
|
<div class="footer" v-if="realtimeStatusModalvisible">
|
|
92
92
|
<el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
93
|
+
<el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
|
|
93
94
|
<el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.implement')}}</el-button>
|
|
94
95
|
</div>
|
|
95
96
|
<div class="footer" v-if="!realtimeStatusModalvisible">
|
|
96
97
|
<el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
98
|
+
<el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
|
|
97
99
|
<el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.comfirm')}}</el-button>
|
|
98
100
|
</div>
|
|
99
101
|
</div>
|
|
@@ -101,7 +103,7 @@
|
|
|
101
103
|
|
|
102
104
|
<script>
|
|
103
105
|
import { getPhase } from './utils'
|
|
104
|
-
import { getIframdevid } from '../../../../utils/auth'
|
|
106
|
+
import { getIframdevid, hasPermission, getTheme } from '../../../../utils/auth'
|
|
105
107
|
import { getlockPhase, lockPhase, getAllDerection } from '../../../../api/control'
|
|
106
108
|
import Stages from '../../Stages/index'
|
|
107
109
|
import RingDataModel from '../../../../utils/RingDataModel.js'
|
|
@@ -140,6 +142,7 @@ export default {
|
|
|
140
142
|
images.forEach(v => {
|
|
141
143
|
let obj = Object.assign({}, v)
|
|
142
144
|
obj.name = this.$t(obj.name)
|
|
145
|
+
obj.bgcolor = getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
143
146
|
arrays.push(obj)
|
|
144
147
|
})
|
|
145
148
|
let arr1Ids = this.allDirection.map(item => item.id)
|
|
@@ -170,7 +173,9 @@ export default {
|
|
|
170
173
|
mingreen: 15,
|
|
171
174
|
duration: 600,
|
|
172
175
|
yellowflash: 3
|
|
173
|
-
}
|
|
176
|
+
},
|
|
177
|
+
themeColor: getTheme() === 'light' ? '#606266' : '#fff',
|
|
178
|
+
themeColor2: getTheme() === 'light' ? '#454545' : '#fff'
|
|
174
179
|
}
|
|
175
180
|
},
|
|
176
181
|
created () {
|
|
@@ -243,7 +248,12 @@ export default {
|
|
|
243
248
|
}
|
|
244
249
|
this.lockList = res.data.data
|
|
245
250
|
let ringDataModel = new RingDataModel({}, res.data.data)
|
|
246
|
-
this.sidewalkPhaseData = ringDataModel.getlockData()
|
|
251
|
+
this.sidewalkPhaseData = ringDataModel.getlockData().map(ele => {
|
|
252
|
+
return ele.map(item => ({
|
|
253
|
+
...item,
|
|
254
|
+
bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
255
|
+
}))
|
|
256
|
+
})
|
|
247
257
|
})
|
|
248
258
|
},
|
|
249
259
|
boxShow (index, data) {
|
|
@@ -256,6 +266,27 @@ export default {
|
|
|
256
266
|
}
|
|
257
267
|
this.getLockPhase(data)
|
|
258
268
|
this.currentName = data.name
|
|
269
|
+
this.clickType(index)
|
|
270
|
+
},
|
|
271
|
+
resetToDefaultThemeColor (List) {
|
|
272
|
+
for (let i = 0; i < List.length; i++) {
|
|
273
|
+
if (List[i].clicked) {
|
|
274
|
+
delete List[i].clicked
|
|
275
|
+
}
|
|
276
|
+
List[i].bgcolor = getTheme() === 'light' ? '#edf6ff' : '#243d59'
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
highlightThemeColor (List, index) {
|
|
280
|
+
for (let i = 0; i < List.length; i++) {
|
|
281
|
+
if (i === index) {
|
|
282
|
+
List[i].clicked = true
|
|
283
|
+
List[i].bgcolor = getTheme() === 'light' ? '#c1e0ff' : '#0082ac'
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
clickType (value) {
|
|
288
|
+
this.resetToDefaultThemeColor(this.imgs)
|
|
289
|
+
this.highlightThemeColor(this.imgs, value)
|
|
259
290
|
},
|
|
260
291
|
handleClose () {
|
|
261
292
|
this.$emit('closePhaseBack')
|
|
@@ -294,6 +325,25 @@ export default {
|
|
|
294
325
|
// this.$message.error(getMessageByCode(res.data.code, this.$i18n.locale))
|
|
295
326
|
// }
|
|
296
327
|
})
|
|
328
|
+
},
|
|
329
|
+
toAutoControl () {
|
|
330
|
+
this.$emit('toAutoControl')
|
|
331
|
+
},
|
|
332
|
+
isHasPermission (path) {
|
|
333
|
+
let res = hasPermission(path)
|
|
334
|
+
return res
|
|
335
|
+
},
|
|
336
|
+
dirListSetTheme (list) {
|
|
337
|
+
let dirArr = []
|
|
338
|
+
let color = getTheme() === 'light' ? '#606266' : '#F1F3F4'
|
|
339
|
+
for (let rec of list) {
|
|
340
|
+
let recd = {
|
|
341
|
+
...rec,
|
|
342
|
+
color: color
|
|
343
|
+
}
|
|
344
|
+
dirArr.push(recd)
|
|
345
|
+
}
|
|
346
|
+
return dirArr
|
|
297
347
|
}
|
|
298
348
|
}
|
|
299
349
|
}
|
|
@@ -301,13 +351,6 @@ export default {
|
|
|
301
351
|
|
|
302
352
|
<style lang="scss" scoped>
|
|
303
353
|
.single-model-select {
|
|
304
|
-
margin-right: 10px;
|
|
305
|
-
text-align: center;
|
|
306
|
-
cursor:pointer;
|
|
307
|
-
width: 70px;
|
|
308
|
-
height: 65px;
|
|
309
354
|
background-color: #a2cfff;
|
|
310
|
-
border-radius: 6px;
|
|
311
|
-
// border: solid 1PX #409eff;
|
|
312
355
|
}
|
|
313
356
|
</style>
|