openatc-components 0.2.79 → 0.2.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/kisscomps/components/BoardCard/BoardCard.vue +4 -0
- package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +4 -34
- package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +7 -71
- package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +19 -19
- package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +19 -19
- package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +8 -8
- package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +8 -8
- package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +1 -13
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +94 -17
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +98 -5
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +7 -11
- package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +5 -9
- package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +5 -7
- package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +10 -41
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +5 -9
- package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +8 -12
- package/package/kisscomps/components/Stages/index.vue +1 -2
- package/package/kisscomps/components/patternList/patternList.vue +4 -0
- package/package/kisscomps/index.js +0 -2
- package/package/kissui.min.js +1 -1
- package/package.json +1 -1
- package/src/api/cross.js +0 -4
- package/src/api/template.js +0 -4
- package/src/i18n/language/zh.js +2 -2
- package/src/kisscomps/components/BoardCard/BoardCard.vue +4 -0
- package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +4 -34
- package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +7 -71
- package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +19 -19
- package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +19 -19
- package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +8 -8
- package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +8 -8
- package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +1 -13
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +94 -17
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +98 -5
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +7 -11
- package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +5 -9
- package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +5 -7
- package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +10 -41
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +5 -9
- package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +8 -12
- package/src/kisscomps/components/Stages/index.vue +1 -2
- package/src/kisscomps/components/patternList/patternList.vue +4 -0
- package/src/kisscomps/index.js +0 -2
- package/src/node_modules/.package_versions.json +1 -0
- package/src/views/intersection.vue +28 -60
- package/src/views/overView.vue +1 -1
- package/static/styles/commonkanban.scss +3 -3
- package/static/styles/overview.scss +2 -2
- package/static/styles/schemeconfig.scss +23 -38
- package/package/kisscomps/components/ChannelRealtimeIntersection/ChannelRealtimeIntersection.vue +0 -100
- package/package/kisscomps/components/ChannelRealtimeIntersection/index.js +0 -2
- package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/sidewalk.svg +0 -535
- package/src/kisscomps/components/ChannelRealtimeIntersection/ChannelRealtimeIntersection.vue +0 -100
- package/src/kisscomps/components/ChannelRealtimeIntersection/index.js +0 -2
- package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/sidewalk.svg +0 -535
|
@@ -12,33 +12,35 @@
|
|
|
12
12
|
<template>
|
|
13
13
|
<div :id="Data.key" :style="{position: 'absolute', left: Data.left, top: Data.top}">
|
|
14
14
|
<div :class="Data.id < 9 ? '' : 'hide'">
|
|
15
|
-
|
|
15
|
+
<svg v-if="Data.id === 4 || Data.id === 8" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 14" :width="IconLenghDiaoTou" :height="IconWdithDiaoTou">
|
|
16
16
|
<path id="东掉头" :class="Data.name === '东掉头' ? '' : 'invisible'" d="M4.876,10.981H8.5v3.042L16.07,9.748,8.411,5.474V8.515H4.792c-1.262,0-2.357-1.4-2.357-3.042S3.53,2.432,4.792,2.432H18.006V-0.034H4.876c-2.693,0-4.881,2.466-4.881,5.508S2.183,10.981,4.876,10.981Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
17
17
|
<path id="西掉头" :class="Data.name === '西掉头' ? '' : 'invisible'" d="M13.124,3.036H9.5V0.008L1.93,4.264,9.589,8.52V5.492h3.619c1.262,0,2.357,1.391,2.357,3.028s-1.094,3.028-2.357,3.028H-0.006V14H13.124c2.693,0,4.881-2.455,4.881-5.483S15.817,3.036,13.124,3.036Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
18
|
-
</svg>
|
|
19
|
-
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 36 26" :width="IconLengh" :height="IconWdith">
|
|
18
|
+
</svg>
|
|
19
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 36 26" :width="IconLengh" :height="IconWdith">
|
|
20
20
|
<!-- 东相位 -->
|
|
21
21
|
<path id="东左转" :class="Data.name === '东左转' ? '' : 'invisible'" d="M11,7.1h24v-3H10.9c-3.1,0-5.7,2.6-5.8,5.7l-0.4,2.9L1,12.2l3.9,9.7l6.5-8.2l-3.7-0.5l0.5-3.3
|
|
22
22
|
C8.2,8.4,9.4,7.1,11,7.1L11,7.1z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
23
23
|
<path id="东右转" :class="Data.name === '东右转' ? '' : 'invisible'" d="M8.1,15.8l-0.4-3l3.7-0.5L4.9,4.1L1,13.8l3.7-0.5l0.4,2.9c0,3.2,2.6,5.7,5.8,5.7H35v-3H10.9
|
|
24
24
|
c-1.5,0-2.8-1.3-2.8-2.8V15.8z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
25
25
|
<polygon id="东直行" :class="Data.name === '东直行' ? '' : 'invisible'" points="35,11.5 10.1,11.5 10.1,7.8 0.9,13 10.1,18.2 10.1,14.5 35,14.5 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
26
|
-
<path id="东掉头" :class="Data.name === '东掉头' ? '' : 'invisible'" d="
|
|
26
|
+
<!-- <path id="东掉头" :class="Data.name === '东掉头' ? '' : 'invisible'" d="M19.4,17.5h4.3v3.7l9.1-5.2l-9.1-5.2v3.7h-4.3c-1.5,0-2.8-1.7-2.8-3.7s1.3-3.7,2.8-3.7H35v-3H19.4
|
|
27
|
+
c-3.2,0-5.8,3-5.8,6.7C13.6,14.5,16.2,17.5,19.4,17.5z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
|
|
27
28
|
<!-- 西相位 -->
|
|
28
29
|
<path id="西左转" :class="Data.name === '西左转' ? '' : 'invisible'" d="M25,18.9H1v3h24.1c3.1,0,5.7-2.6,5.8-5.7l0.4-2.9l3.7,0.5l-3.9-9.7l-6.5,8.2l3.7,0.5l-0.5,3.3
|
|
29
30
|
C27.8,17.6,26.6,18.9,25,18.9L25,18.9z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
30
31
|
<path id="西右转" :class="Data.name === '西右转' ? '' : 'invisible'" d="M27.9,10.2l0.4,3l-3.7,0.5l6.5,8.2l3.9-9.7l-3.7,0.5l-0.4-2.9c0-3.2-2.6-5.7-5.8-5.7H1v3h24.1
|
|
31
32
|
c1.5,0,2.8,1.3,2.8,2.8V10.2z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
32
33
|
<polygon id="西直行" :class="Data.name === '西直行' ? '' : 'invisible'" points="1,14.5 26,14.5 26,18.2 35.1,13 26,7.8 26,11.5 1,11.5 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
33
|
-
<path id="西掉头" :class="Data.name === '西掉头' ? '' : 'invisible'" d="
|
|
34
|
+
<!-- <path id="西掉头" :class="Data.name === '西掉头' ? '' : 'invisible'" d="M16.6,8.5h-4.3V4.7L3.3,10l9.1,5.2v-3.7h4.3c1.5,0,2.8,1.7,2.8,3.7s-1.3,3.7-2.8,3.7H1v3h15.6
|
|
35
|
+
c3.2,0,5.8-3,5.8-6.7C22.4,11.5,19.8,8.5,16.6,8.5z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
|
|
34
36
|
</svg>
|
|
35
37
|
</div>
|
|
36
38
|
<div :class="Data.id >= 9 ? '' : 'hide'">
|
|
37
|
-
|
|
39
|
+
<svg v-if="Data.id === 12 || Data.id === 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 18" :width="IconWdithDiaoTou" :height="IconLenghDiaoTou">
|
|
38
40
|
<path id="南掉头" :class="Data.name === '南掉头' ? '' : 'invisible'" d="M3.036,4.876V8.5H0.008L4.264,16.07,8.52,8.411H5.492V4.792c0-1.262,1.391-2.357,3.028-2.357s3.028,1.094,3.028,2.357V18.006H14V4.876C14,2.183,11.548-.005,8.52-0.005S3.036,2.183,3.036,4.876Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)" />
|
|
39
41
|
<path id="北掉头" :class="Data.name === '北掉头' ? '' : 'invisible'" d="M10.981,13.124V9.5h3.042L9.748,1.93,5.474,9.589H8.515v3.619c0,1.262-1.4,2.357-3.042,2.357S2.432,14.47,2.432,13.208V-0.006H-0.034V13.124c0,2.693,2.466,4.881,5.508,4.881S10.981,15.817,10.981,13.124Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)" />
|
|
40
|
-
</svg>
|
|
41
|
-
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
|
42
|
+
</svg>
|
|
43
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
|
42
44
|
viewBox="0 0 26 36" style="enable-background:new 0 0 26 36;" xml:space="preserve" :width="IconWdith" :height="IconLengh">
|
|
43
45
|
<!-- 南相位 -->
|
|
44
46
|
<path id="南左转" :class="Data.name === '南左转' ? '' : 'invisible'" d="M18.9,11v24h3V10.9c0-3.1-2.6-5.7-5.7-5.8l-2.9-0.4L13.8,1L4.1,4.9l8.2,6.5l0.5-3.7l3.3,0.5
|
|
@@ -46,14 +48,16 @@
|
|
|
46
48
|
<path id="南右转" :class="Data.name === '南右转' ? '' : 'invisible'" d="M10.2,8.1l3-0.4l0.5,3.7l8.2-6.5L12.2,1l0.5,3.7L9.8,5.1c-3.2,0-5.7,2.6-5.7,5.8V35h3V10.9
|
|
47
49
|
c0-1.5,1.3-2.8,2.8-2.8H10.2z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
48
50
|
<polygon id="南直行" :class="Data.name === '南直行' ? '' : 'invisible'" points="14.5,35 14.5,10.1 18.2,10.1 13,0.9 7.8,10.1 11.5,10.1 11.5,35 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
49
|
-
<path id="南掉头" :class="Data.name === '南掉头' ? '' : 'invisible'" d="M8.5,
|
|
51
|
+
<!-- <path id="南掉头" :class="Data.name === '南掉头' ? '' : 'invisible'" d="M8.5,19.4v4.3H4.7l5.2,9.1l5.2-9.1h-3.7v-4.3c0-1.5,1.7-2.8,3.7-2.8s3.7,1.3,3.7,2.8V35h3V19.4
|
|
52
|
+
c0-3.2-3-5.8-6.7-5.8C11.5,13.6,8.5,16.2,8.5,19.4z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
|
|
50
53
|
<!-- 北相位 -->
|
|
51
54
|
<path id="北左转" :class="Data.name === '北左转' ? '' : 'invisible'" d="M7.1,25V1h-3v24.1c0,3.1,2.6,5.7,5.7,5.8l2.9,0.4L12.2,35l9.7-3.9l-8.2-6.5l-0.5,3.7l-3.3-0.5
|
|
52
55
|
C8.4,27.8,7.1,26.6,7.1,25L7.1,25z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
53
56
|
<path id="北右转" :class="Data.name === '北右转' ? '' : 'invisible'" d="M15.8,27.9l-3,0.4l-0.5-3.7l-8.2,6.5l9.7,3.9l-0.5-3.7l2.9-0.4c3.2,0,5.7-2.6,5.7-5.8V1h-3v24.1
|
|
54
57
|
c0,1.5-1.3,2.8-2.8,2.8H15.8z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
55
58
|
<polygon id="北直行" :class="Data.name === '北直行' ? '' : 'invisible'" points="11.5,0.9 11.5,25.9 7.8,25.9 13,35 18.2,25.9 14.5,25.9 14.5,0.9 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
|
|
56
|
-
<path id="北掉头" :class="Data.name === '北掉头' ? '' : 'invisible'" d="M17.5,
|
|
59
|
+
<!-- <path id="北掉头" :class="Data.name === '北掉头' ? '' : 'invisible'" d="M17.5,16.6v-4.3h3.7L16,3.3l-5.2,9.1h3.7v4.3c0,1.5-1.7,2.8-3.7,2.8s-3.7-1.3-3.7-2.8V1h-3v15.6
|
|
60
|
+
c0,3.2,3,5.8,6.7,5.8C14.5,22.4,17.5,19.8,17.5,16.6z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
|
|
57
61
|
</svg>
|
|
58
62
|
</div>
|
|
59
63
|
</div>
|
|
@@ -135,9 +139,8 @@ export default {
|
|
|
135
139
|
},
|
|
136
140
|
methods: {
|
|
137
141
|
handleClick (e) {
|
|
138
|
-
let
|
|
139
|
-
// console.log(
|
|
140
|
-
let clickedPath = clickedSvg.querySelector(`#${this.Data.name}`)
|
|
142
|
+
let clickedPath = e.target
|
|
143
|
+
// console.log(clickedPath)
|
|
141
144
|
if (clickedPath) {
|
|
142
145
|
// 在这里对找到的元素进行操作
|
|
143
146
|
if (clickedPath.getAttribute('disabled') === 'true') {
|
|
@@ -169,12 +172,9 @@ export default {
|
|
|
169
172
|
},
|
|
170
173
|
IconAddEvent () {
|
|
171
174
|
let IconDom = document.getElementById(this.Data.key)
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
// }
|
|
176
|
-
if (this.clickMode) {
|
|
177
|
-
IconDom.addEventListener('click', this.handleClick)
|
|
175
|
+
let DirDom = IconDom.querySelector(`#${this.Data.name}`)
|
|
176
|
+
if (this.clickMode && DirDom.getAttribute('class') !== 'invisible') {
|
|
177
|
+
DirDom.addEventListener('click', this.handleClick)
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
},
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"id": 4,
|
|
25
25
|
"name": "东掉头",
|
|
26
26
|
"ename": "East-Back",
|
|
27
|
-
"x": "
|
|
28
|
-
"y": "
|
|
27
|
+
"x": "602px",
|
|
28
|
+
"y": "300px"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"id": 5,
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"id": 8,
|
|
53
53
|
"name": "西掉头",
|
|
54
54
|
"ename": "West-Back",
|
|
55
|
-
"x": "
|
|
56
|
-
"y": "
|
|
55
|
+
"x": "247px",
|
|
56
|
+
"y": "333px"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"id": 9,
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
"id": 12,
|
|
81
81
|
"name": "北掉头",
|
|
82
82
|
"ename": "North-Back",
|
|
83
|
-
"x": "
|
|
84
|
-
"y": "
|
|
83
|
+
"x": "412px",
|
|
84
|
+
"y": "137px"
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"id": 13,
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
"id": 16,
|
|
109
109
|
"name": "南掉头",
|
|
110
110
|
"ename": "South-Back",
|
|
111
|
-
"x": "
|
|
112
|
-
"y": "
|
|
111
|
+
"x": "444px",
|
|
112
|
+
"y": "489px"
|
|
113
113
|
}
|
|
114
114
|
]
|
|
115
115
|
}
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"id": 4,
|
|
25
25
|
"name": "东掉头",
|
|
26
26
|
"ename": "East-Back",
|
|
27
|
-
"x": "
|
|
28
|
-
"y": "
|
|
27
|
+
"x": "604px",
|
|
28
|
+
"y": "334px"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"id": 5,
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"id": 8,
|
|
53
53
|
"name": "西掉头",
|
|
54
54
|
"ename": "West-Back",
|
|
55
|
-
"x": "
|
|
56
|
-
"y": "
|
|
55
|
+
"x": "248px",
|
|
56
|
+
"y": "301px"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"id": 9,
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
"id": 12,
|
|
81
81
|
"name": "北掉头",
|
|
82
82
|
"ename": "North-Back",
|
|
83
|
-
"x": "
|
|
84
|
-
"y": "
|
|
83
|
+
"x": "446px",
|
|
84
|
+
"y": "138px"
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"id": 13,
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
"id": 16,
|
|
109
109
|
"name": "南掉头",
|
|
110
110
|
"ename": "South-Back",
|
|
111
|
-
"x": "
|
|
112
|
-
"y": "
|
|
111
|
+
"x": "412px",
|
|
112
|
+
"y": "495px"
|
|
113
113
|
}
|
|
114
114
|
]
|
|
115
115
|
}
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
:isVipRoute="isVipRoute"
|
|
41
41
|
:clickMode="clickMode"
|
|
42
42
|
:isThirdSignal="isThirdSignal"
|
|
43
|
-
:channelType="channelType"
|
|
44
43
|
@handleClickCrossIcon="handleClickCrossIcon" />
|
|
45
44
|
</div>
|
|
46
45
|
</div>
|
|
@@ -126,10 +125,6 @@ export default {
|
|
|
126
125
|
isThirdSignal: {
|
|
127
126
|
type: Boolean,
|
|
128
127
|
default: false
|
|
129
|
-
},
|
|
130
|
-
channelType: {
|
|
131
|
-
type: Boolean,
|
|
132
|
-
default: false
|
|
133
128
|
}
|
|
134
129
|
},
|
|
135
130
|
watch: {
|
|
@@ -148,13 +143,6 @@ export default {
|
|
|
148
143
|
this.reset = true
|
|
149
144
|
}
|
|
150
145
|
}
|
|
151
|
-
},
|
|
152
|
-
channelType: {
|
|
153
|
-
handler: function (val, oldVal) {
|
|
154
|
-
if (val) {
|
|
155
|
-
this.reset = true
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
146
|
}
|
|
159
147
|
},
|
|
160
148
|
created () {
|
|
@@ -164,7 +152,7 @@ export default {
|
|
|
164
152
|
},
|
|
165
153
|
mounted () {
|
|
166
154
|
this.getParentSize()
|
|
167
|
-
if (this.isVipRoute
|
|
155
|
+
if (this.isVipRoute) {
|
|
168
156
|
this.reset = true
|
|
169
157
|
}
|
|
170
158
|
},
|
|
@@ -11,8 +11,33 @@
|
|
|
11
11
|
**/
|
|
12
12
|
<template>
|
|
13
13
|
<div class="main-patternstatus">
|
|
14
|
+
<!-- rcp模式 -->
|
|
15
|
+
<div v-if="patternType === 'rcp'">
|
|
16
|
+
<div class="ring-first" v-for="(list, index1) in patternRcp" :key="index1">
|
|
17
|
+
<div style="position: relative" :style="{height: '34px',paddingRight: '1px',float: 'left',width:
|
|
18
|
+
((item.split + (item.sum ? item.sum : 0)) /(item.cycle > cycles ? item.cycle : cycles)) *100 +'%',}"
|
|
19
|
+
v-for="(item, index2) in list" :key="index2">
|
|
20
|
+
<div class="first-1" :style="{ width:
|
|
21
|
+
(Number(item.greenWidth.replace('%', '')) /
|
|
22
|
+
Number((((item.split + (item.sum ? item.sum : 0)) /
|
|
23
|
+
(item.cycle > cycles ? item.cycle : cycles)) * 100 + '%').replace('%', ''))) * 100 + '%', height: '34px',background: '#7ccc66'}">
|
|
24
|
+
</div>
|
|
25
|
+
<el-tooltip placement="top-start" effect="light">
|
|
26
|
+
<div v-if="item.id" slot="content">P{{ item.id }}:{{ item.split }}</div>
|
|
27
|
+
<div v-if="item.id" style="cursor: pointer">
|
|
28
|
+
<div
|
|
29
|
+
class="box"
|
|
30
|
+
style="position: absolute; width:40px; left: 0; top: 5px"
|
|
31
|
+
>
|
|
32
|
+
<div class="ring-nums">P{{ item.id }}:{{ item.split }}</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</el-tooltip>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
14
39
|
<!-- 环模式true -->
|
|
15
|
-
<div v-if="this.contrloType === 'ring' || !this.contrloType">
|
|
40
|
+
<div v-if="(this.contrloType === 'ring' || !this.contrloType) && patternType !== 'rcp'">
|
|
16
41
|
<div class="ring-first" v-for="(list, index1) in patternInfo" :key="index1">
|
|
17
42
|
<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
43
|
<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'}">
|
|
@@ -48,7 +73,7 @@
|
|
|
48
73
|
<div class="divider" :style="{'left':item, 'height':barrierHeight}"></div>
|
|
49
74
|
</div>
|
|
50
75
|
</div>
|
|
51
|
-
<div v-show="(cycle && cycle>0 && this.isControl) || (newCycle && newCycle>0 && this.isControl)">
|
|
76
|
+
<div v-show="(this.curtime>0 && cycle && cycle>0 && this.isControl) || (this.curtime>0 && newCycle && newCycle>0 && this.isControl)">
|
|
52
77
|
<div class="curTimeDiv" :style="{'left':paddingLeft }">{{ timeNumDevide }}</div>
|
|
53
78
|
<div class="curTimeLine" :style="{'left':paddingLeft, 'height':barrierHeight}"></div>
|
|
54
79
|
</div>
|
|
@@ -107,6 +132,7 @@ export default {
|
|
|
107
132
|
newCycle: this.cycles,
|
|
108
133
|
patternIds: this.patternId,
|
|
109
134
|
newPatterns: [],
|
|
135
|
+
patternRcp: [],
|
|
110
136
|
newList: [],
|
|
111
137
|
isControl: true,
|
|
112
138
|
contrloCycle: 0,
|
|
@@ -131,6 +157,9 @@ export default {
|
|
|
131
157
|
controlPhase: {
|
|
132
158
|
type: Object
|
|
133
159
|
},
|
|
160
|
+
patternType: {
|
|
161
|
+
type: String
|
|
162
|
+
},
|
|
134
163
|
contrloType: {
|
|
135
164
|
type: String
|
|
136
165
|
},
|
|
@@ -213,7 +242,7 @@ export default {
|
|
|
213
242
|
watch: {
|
|
214
243
|
controlPhase: {
|
|
215
244
|
handler: function (val, oldVal) {
|
|
216
|
-
if (
|
|
245
|
+
if (val && val.curTime) {
|
|
217
246
|
this.curtime = val.curTime
|
|
218
247
|
if (val.control === 4 || val.control === 16 || val.control === 22) {
|
|
219
248
|
this.isControl = false
|
|
@@ -242,7 +271,7 @@ export default {
|
|
|
242
271
|
}
|
|
243
272
|
this.handleBarrierHeight()
|
|
244
273
|
}
|
|
245
|
-
if (
|
|
274
|
+
if (val && val.curTime) {
|
|
246
275
|
this.curtime = val.curTime
|
|
247
276
|
if (val.control === 4 || val.control === 16 || val.control === 22) {
|
|
248
277
|
this.isControl = false
|
|
@@ -290,6 +319,9 @@ export default {
|
|
|
290
319
|
cycles: {
|
|
291
320
|
handler: function (val, oldVal) {
|
|
292
321
|
this.newCycle = this.cycles
|
|
322
|
+
if (this.patternType === 'rcp') {
|
|
323
|
+
this.handleRcp(this.patternStatusList)
|
|
324
|
+
}
|
|
293
325
|
},
|
|
294
326
|
// 深度观察监听
|
|
295
327
|
deep: true
|
|
@@ -314,6 +346,9 @@ export default {
|
|
|
314
346
|
},
|
|
315
347
|
patternStatusList: {
|
|
316
348
|
handler: function (val, oldVal) {
|
|
349
|
+
if (this.patternType === 'rcp') {
|
|
350
|
+
this.handleRcp(this.patternStatusList)
|
|
351
|
+
}
|
|
317
352
|
this.handleBarrierHeight() // 计算屏障高度
|
|
318
353
|
if (this.patternStatusList && this.newCycle) {
|
|
319
354
|
setTimeout(() => {
|
|
@@ -346,6 +381,9 @@ export default {
|
|
|
346
381
|
if (this.contrloType === 'stage') {
|
|
347
382
|
this.getStage()
|
|
348
383
|
}
|
|
384
|
+
if (this.patternType === 'rcp') {
|
|
385
|
+
this.handleRcp(this.patternStatusList)
|
|
386
|
+
}
|
|
349
387
|
},
|
|
350
388
|
methods: {
|
|
351
389
|
getPed (data) {
|
|
@@ -374,6 +412,48 @@ export default {
|
|
|
374
412
|
}
|
|
375
413
|
return ped
|
|
376
414
|
},
|
|
415
|
+
handleRcp (val) {
|
|
416
|
+
this.patternRcp = []
|
|
417
|
+
let valSplit = val.map(item => {
|
|
418
|
+
return item.map(val => {
|
|
419
|
+
return val.splitchain
|
|
420
|
+
})
|
|
421
|
+
})
|
|
422
|
+
let splitCycle = valSplit.length > 0 ? valSplit.map(item => {
|
|
423
|
+
return item.length > 0 ? item.reduce((a, b) => {
|
|
424
|
+
return a + b
|
|
425
|
+
}) : 0
|
|
426
|
+
}) : 0
|
|
427
|
+
let cycle = Math.max(...splitCycle)// 每个环的周期最大值
|
|
428
|
+
for (let rings of val) {
|
|
429
|
+
if (rings.length === 0) continue
|
|
430
|
+
let list = []
|
|
431
|
+
for (let ring of rings) {
|
|
432
|
+
if (ring.splitchain === 0) continue
|
|
433
|
+
let obj = {}
|
|
434
|
+
let split = ring.splitchain
|
|
435
|
+
obj.split = split
|
|
436
|
+
obj.cycle = cycle
|
|
437
|
+
obj.id = ring.phases
|
|
438
|
+
// if (ring.sum) {
|
|
439
|
+
// obj.sum = ring.sum
|
|
440
|
+
// obj.redWidth = ((currPhase.redclear + ring.sum) / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
441
|
+
// } else {
|
|
442
|
+
// obj.redWidth = (currPhase.redclear / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
443
|
+
// }
|
|
444
|
+
// obj.mode = ring.mode
|
|
445
|
+
obj.greenWidth = (split / (cycle > this.cycles ? cycle : this.cycles)) * 100 + '%'
|
|
446
|
+
// obj.flashgreen = (currPhase.flashgreen / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
447
|
+
// obj.yellowWidth = (currPhase.yellow / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
|
|
448
|
+
// 忽略相位不显示
|
|
449
|
+
// let mode = ring.mode
|
|
450
|
+
// if (mode !== 7) { // 忽略相位不显示
|
|
451
|
+
list.push(obj)
|
|
452
|
+
// }
|
|
453
|
+
}
|
|
454
|
+
this.patternRcp.push(list)
|
|
455
|
+
}
|
|
456
|
+
},
|
|
377
457
|
handleStageData (data) {
|
|
378
458
|
if (!data) return
|
|
379
459
|
let peddirections = this.getPed(data)
|
|
@@ -610,7 +690,6 @@ export default {
|
|
|
610
690
|
// if (stg === walk.phaseid) {
|
|
611
691
|
let objs = {}
|
|
612
692
|
objs.name = walk.name
|
|
613
|
-
objs.color = 'rgba(48,49,51,0.6)'
|
|
614
693
|
objs.id = walk.id
|
|
615
694
|
if (ped === walk.id) {
|
|
616
695
|
peddirections.push(objs)
|
|
@@ -626,7 +705,7 @@ export default {
|
|
|
626
705
|
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
627
706
|
return {
|
|
628
707
|
id: item.id,
|
|
629
|
-
color: '#
|
|
708
|
+
color: '#454545'
|
|
630
709
|
}
|
|
631
710
|
})
|
|
632
711
|
} else {
|
|
@@ -635,14 +714,14 @@ export default {
|
|
|
635
714
|
return {
|
|
636
715
|
id: item,
|
|
637
716
|
peddirection: peddirections,
|
|
638
|
-
color: '#
|
|
717
|
+
color: '#454545'
|
|
639
718
|
}
|
|
640
719
|
})
|
|
641
720
|
} else {
|
|
642
721
|
obj.direction = [
|
|
643
722
|
{
|
|
644
723
|
id: '',
|
|
645
|
-
color: '#
|
|
724
|
+
color: '#454545',
|
|
646
725
|
peddirection: peddirections
|
|
647
726
|
}
|
|
648
727
|
]
|
|
@@ -863,7 +942,6 @@ export default {
|
|
|
863
942
|
let objs = {}
|
|
864
943
|
objs.name = walk.name
|
|
865
944
|
objs.id = walk.id
|
|
866
|
-
objs.color = 'rgba(48,49,51,0.6)'
|
|
867
945
|
if (ped === walk.id) {
|
|
868
946
|
peddirections.push(objs)
|
|
869
947
|
peddirections = Array.from(new Set(peddirections))
|
|
@@ -878,7 +956,7 @@ export default {
|
|
|
878
956
|
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
879
957
|
return {
|
|
880
958
|
id: item.id,
|
|
881
|
-
color: '#
|
|
959
|
+
color: '#454545'
|
|
882
960
|
}
|
|
883
961
|
})
|
|
884
962
|
} else {
|
|
@@ -887,14 +965,14 @@ export default {
|
|
|
887
965
|
return {
|
|
888
966
|
id: item,
|
|
889
967
|
peddirection: peddirections,
|
|
890
|
-
color: '#
|
|
968
|
+
color: '#454545'
|
|
891
969
|
}
|
|
892
970
|
})
|
|
893
971
|
} else {
|
|
894
972
|
obj.direction = [
|
|
895
973
|
{
|
|
896
974
|
id: '',
|
|
897
|
-
color: '#
|
|
975
|
+
color: '#454545',
|
|
898
976
|
peddirection: peddirections
|
|
899
977
|
}
|
|
900
978
|
]
|
|
@@ -1091,7 +1169,6 @@ export default {
|
|
|
1091
1169
|
let objs = {}
|
|
1092
1170
|
objs.name = walk.name
|
|
1093
1171
|
objs.id = walk.id
|
|
1094
|
-
objs.color = 'rgba(48,49,51,0.6)'
|
|
1095
1172
|
if (ped === walk.id) {
|
|
1096
1173
|
peddirections.push(objs)
|
|
1097
1174
|
peddirections = Array.from(new Set(peddirections))
|
|
@@ -1106,7 +1183,7 @@ export default {
|
|
|
1106
1183
|
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
1107
1184
|
return {
|
|
1108
1185
|
id: item.id,
|
|
1109
|
-
color: '#
|
|
1186
|
+
color: '#454545',
|
|
1110
1187
|
peddirection: peddirections
|
|
1111
1188
|
}
|
|
1112
1189
|
})
|
|
@@ -1115,7 +1192,7 @@ export default {
|
|
|
1115
1192
|
obj.direction = currPhase.direction.map(item => {
|
|
1116
1193
|
return {
|
|
1117
1194
|
id: item,
|
|
1118
|
-
color: '#
|
|
1195
|
+
color: '#454545',
|
|
1119
1196
|
peddirection: peddirections
|
|
1120
1197
|
}
|
|
1121
1198
|
})
|
|
@@ -1123,7 +1200,7 @@ export default {
|
|
|
1123
1200
|
obj.direction = [
|
|
1124
1201
|
{
|
|
1125
1202
|
id: '',
|
|
1126
|
-
color: '#
|
|
1203
|
+
color: '#454545',
|
|
1127
1204
|
peddirection: peddirections
|
|
1128
1205
|
}
|
|
1129
1206
|
]
|
|
@@ -1372,7 +1449,7 @@ export default {
|
|
|
1372
1449
|
<style lang="scss" scoped>
|
|
1373
1450
|
.main-patternstatus {
|
|
1374
1451
|
position: relative;
|
|
1375
|
-
|
|
1452
|
+
margin-bottom: 20px;
|
|
1376
1453
|
}
|
|
1377
1454
|
.main-patternstatus {
|
|
1378
1455
|
position: relative;
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
:overlap="overlap"
|
|
39
39
|
:patternSelect="patternSelect"
|
|
40
40
|
:allPatternList="allPatternList"
|
|
41
|
-
:isShowBack="isShowBack"
|
|
42
41
|
@closeManualModal="closeManualModal"
|
|
43
42
|
@selectModel="selectModel"
|
|
44
43
|
@selectStages="selectStages"
|
|
@@ -46,8 +45,76 @@
|
|
|
46
45
|
@closePhaseBack="closePhaseBack"
|
|
47
46
|
@closePhaseControl="closePhaseControl"
|
|
48
47
|
@selectSpecialModel="selectSpecialModelNew" />
|
|
48
|
+
<!-- <ManualControlModal
|
|
49
|
+
:controlData="controlData"
|
|
50
|
+
:modelList="modelList"
|
|
51
|
+
:patternSelect="patternSelect"
|
|
52
|
+
:patternAll="patternAll"
|
|
53
|
+
:crossStatusData="crossStatusData"
|
|
54
|
+
:phaseList="phaseList"
|
|
55
|
+
:specialcontrolList="specialcontrolList"
|
|
56
|
+
:currModel="currModel"
|
|
57
|
+
:preselectModel="preselectModel"
|
|
58
|
+
:preselectStages="preselectStages"
|
|
59
|
+
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
60
|
+
:funcSort="funcSort"
|
|
61
|
+
:roadDirection="roadDirection"
|
|
62
|
+
@closeManualModal="closeManualModal"
|
|
63
|
+
@selectModel="selectModel"
|
|
64
|
+
@selectStages="selectStages"
|
|
65
|
+
@patternCommit="patternCommit"
|
|
66
|
+
@selectSpecialModel="selectSpecialModel" /> -->
|
|
49
67
|
</div>
|
|
50
68
|
</transition>
|
|
69
|
+
<!-- <transition name="fade-left" mode="out-in"
|
|
70
|
+
enter-active-class="animated fadeInRight"
|
|
71
|
+
leave-active-class="animated fadeOutRight">
|
|
72
|
+
<div style="position: absolute;width: 100%;height:100%" v-show="(isOperation && isClosePhase)">
|
|
73
|
+
<ClosePhaseControlModal
|
|
74
|
+
v-if="specialPage === 'closephase'"
|
|
75
|
+
:controlData="controlData"
|
|
76
|
+
:closePhaseRings="phaseRings"
|
|
77
|
+
:sidewalkPhaseData="sidewalkPhaseData"
|
|
78
|
+
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
79
|
+
:roadDirection="roadDirection"
|
|
80
|
+
@closePhaseBack="closePhaseBack"
|
|
81
|
+
@closePhaseControl="closePhaseControl" /> -->
|
|
82
|
+
<!-- <LockingPhaseControlModal
|
|
83
|
+
v-if="specialPage === 'lockingphase'"
|
|
84
|
+
:roadDirection="roadDirection"
|
|
85
|
+
:phaseList="phaseList"
|
|
86
|
+
:patternStatus="statusData"
|
|
87
|
+
:lockPhaseBtnName="lockPhaseBtnName"
|
|
88
|
+
@closePhaseBack="closePhaseBack"
|
|
89
|
+
@closePhaseControl="closePhaseControl" /> -->
|
|
90
|
+
<!-- <TentativePlanControlModal
|
|
91
|
+
v-if="specialPage === 'tentativeplan'"
|
|
92
|
+
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
93
|
+
:controlData="controlData"
|
|
94
|
+
:phaseList="phaseList"
|
|
95
|
+
:overlap="overlap"
|
|
96
|
+
:patternSelect="patternSelect"
|
|
97
|
+
:allPatternList="allPatternList"
|
|
98
|
+
@closePhaseBack="closePhaseBack"
|
|
99
|
+
@closePhaseControl="closePhaseControl"
|
|
100
|
+
/>
|
|
101
|
+
<priorityControl
|
|
102
|
+
v-if="specialPage === 'prioritycontrol'"
|
|
103
|
+
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
104
|
+
:phaseList="phaseList"
|
|
105
|
+
@closePhaseBack="closePhaseBack"
|
|
106
|
+
@closePhaseControl="closePhaseControl"
|
|
107
|
+
/> -->
|
|
108
|
+
<!-- <AzimuthLocking
|
|
109
|
+
v-if="specialPage === 'azimuthlocking'"
|
|
110
|
+
:realtimeStatusModalvisible="realtimeStatusModalvisible"
|
|
111
|
+
:phaseList="phaseList"
|
|
112
|
+
:patternStatus="statusData"
|
|
113
|
+
@closePhaseBack="closePhaseBack"
|
|
114
|
+
@closePhaseControl="closePhaseControl"
|
|
115
|
+
/> -->
|
|
116
|
+
<!-- </div>
|
|
117
|
+
</transition> -->
|
|
51
118
|
|
|
52
119
|
<transition name="fade-left" mode="out-in"
|
|
53
120
|
enter-active-class="animated fadeInLeft"
|
|
@@ -173,10 +240,6 @@ export default {
|
|
|
173
240
|
isFromAtc: {
|
|
174
241
|
type: Boolean,
|
|
175
242
|
default: true
|
|
176
|
-
},
|
|
177
|
-
isShowBack: {
|
|
178
|
-
type: Boolean,
|
|
179
|
-
default: true
|
|
180
243
|
}
|
|
181
244
|
},
|
|
182
245
|
data () {
|
|
@@ -410,6 +473,32 @@ export default {
|
|
|
410
473
|
faultvisible: false,
|
|
411
474
|
isClosePhase: false, // 是否在相位关断
|
|
412
475
|
toPage: 1, // 与哪一个页面交互,1 代表路口信息页面,3代表 相位关断页面
|
|
476
|
+
specialcontrolList: [{ // 特殊控制
|
|
477
|
+
id: 23,
|
|
478
|
+
isShow: true,
|
|
479
|
+
permission: 'configer:manual:optimize',
|
|
480
|
+
iconClass: 'closephase'
|
|
481
|
+
}, {
|
|
482
|
+
id: 22,
|
|
483
|
+
isShow: true,
|
|
484
|
+
permission: 'configer:manual:optimize',
|
|
485
|
+
iconClass: 'lockingphase'
|
|
486
|
+
}, {
|
|
487
|
+
id: 100,
|
|
488
|
+
isShow: true,
|
|
489
|
+
permission: 'configer:manual:optimize',
|
|
490
|
+
iconClass: 'tentativeplan'
|
|
491
|
+
}, {
|
|
492
|
+
id: 24,
|
|
493
|
+
isShow: true,
|
|
494
|
+
permission: 'configer:manual:preempt',
|
|
495
|
+
iconClass: 'prioritycontrol'
|
|
496
|
+
}, {
|
|
497
|
+
id: 25,
|
|
498
|
+
permission: 'configer:manual:optimize',
|
|
499
|
+
isShow: this.realtimeStatusModalvisible,
|
|
500
|
+
iconClass: 'azimuthlocking'
|
|
501
|
+
}],
|
|
413
502
|
phaseRings: [],
|
|
414
503
|
curFaultList: [],
|
|
415
504
|
confirmedFault: [],
|
|
@@ -773,6 +862,10 @@ export default {
|
|
|
773
862
|
}
|
|
774
863
|
},
|
|
775
864
|
closePhaseBack () {
|
|
865
|
+
// if (!this.realtimeStatusModalvisible) {
|
|
866
|
+
// this.$emit('closePhaseBack')
|
|
867
|
+
// return
|
|
868
|
+
// }
|
|
776
869
|
this.toPage = 3
|
|
777
870
|
this.isClosePhase = false
|
|
778
871
|
},
|