openatc-components 0.1.38 → 0.1.40
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/KanBan/kanban.vue +2 -0
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +188 -43
- package/package/kisscomps/components/Stages/index.vue +1 -1
- package/package/kissui.min.js +1 -1
- package/package.json +1 -1
- package/src/i18n/language/en.js +1 -0
- package/src/i18n/language/zh.js +1 -0
- package/src/icons/iconfont.css +151 -3
- package/src/icons/iconfont.js +1 -1
- package/src/icons/iconfont.json +259 -0
- package/src/icons/iconfont.ttf +0 -0
- package/src/icons/iconfont.woff +0 -0
- package/src/icons/iconfont.woff2 +0 -0
- package/src/kisscomps/components/KanBan/kanban.vue +2 -0
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +188 -43
- package/src/kisscomps/components/Stages/index.vue +1 -1
- package/src/views/intersection.vue +2 -2
- package/src/views/overView.vue +1 -1
- package/src/views/schemeconfig.vue +3 -3
package/src/icons/iconfont.json
CHANGED
|
@@ -5,6 +5,265 @@
|
|
|
5
5
|
"css_prefix_text": "icon-",
|
|
6
6
|
"description": "",
|
|
7
7
|
"glyphs": [
|
|
8
|
+
{
|
|
9
|
+
"icon_id": "33655750",
|
|
10
|
+
"name": "虚相位-新",
|
|
11
|
+
"font_class": "xuxiangwei-xin",
|
|
12
|
+
"unicode": "e6f0",
|
|
13
|
+
"unicode_decimal": 59120
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"icon_id": "33615013",
|
|
17
|
+
"name": "历史数据",
|
|
18
|
+
"font_class": "lishishuju",
|
|
19
|
+
"unicode": "e6ea",
|
|
20
|
+
"unicode_decimal": 59114
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"icon_id": "33615014",
|
|
24
|
+
"name": "基础数据统计",
|
|
25
|
+
"font_class": "jichushujutongji",
|
|
26
|
+
"unicode": "e6eb",
|
|
27
|
+
"unicode_decimal": 59115
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"icon_id": "33615015",
|
|
31
|
+
"name": "操作频次统计",
|
|
32
|
+
"font_class": "caozuopincitongji",
|
|
33
|
+
"unicode": "e6ec",
|
|
34
|
+
"unicode_decimal": 59116
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"icon_id": "33615016",
|
|
38
|
+
"name": "交通特征分析",
|
|
39
|
+
"font_class": "jiaotongtezhengfenxi",
|
|
40
|
+
"unicode": "e6ed",
|
|
41
|
+
"unicode_decimal": 59117
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"icon_id": "33615017",
|
|
45
|
+
"name": "路口排行分析",
|
|
46
|
+
"font_class": "lukoupaihangfenxi",
|
|
47
|
+
"unicode": "e6ee",
|
|
48
|
+
"unicode_decimal": 59118
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"icon_id": "33615018",
|
|
52
|
+
"name": "路段排行分析",
|
|
53
|
+
"font_class": "luduanpaihangfenxi",
|
|
54
|
+
"unicode": "e6ef",
|
|
55
|
+
"unicode_decimal": 59119
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"icon_id": "33389926",
|
|
59
|
+
"name": "交通干预",
|
|
60
|
+
"font_class": "jiaotongganyu",
|
|
61
|
+
"unicode": "e6e9",
|
|
62
|
+
"unicode_decimal": 59113
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"icon_id": "33051323",
|
|
66
|
+
"name": "操作记录",
|
|
67
|
+
"font_class": "caozuojilu1",
|
|
68
|
+
"unicode": "e6ce",
|
|
69
|
+
"unicode_decimal": 59086
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"icon_id": "33051324",
|
|
73
|
+
"name": "地图",
|
|
74
|
+
"font_class": "ditu",
|
|
75
|
+
"unicode": "e6cf",
|
|
76
|
+
"unicode_decimal": 59087
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"icon_id": "33051325",
|
|
80
|
+
"name": "故障记录",
|
|
81
|
+
"font_class": "guzhangjilu",
|
|
82
|
+
"unicode": "e6d0",
|
|
83
|
+
"unicode_decimal": 59088
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"icon_id": "33051326",
|
|
87
|
+
"name": "交通优化",
|
|
88
|
+
"font_class": "jiaotongyouhua",
|
|
89
|
+
"unicode": "e6d1",
|
|
90
|
+
"unicode_decimal": 59089
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"icon_id": "33051327",
|
|
94
|
+
"name": "交通评估",
|
|
95
|
+
"font_class": "jiaotongpinggu",
|
|
96
|
+
"unicode": "e6d2",
|
|
97
|
+
"unicode_decimal": 59090
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"icon_id": "33051328",
|
|
101
|
+
"name": "路段管理",
|
|
102
|
+
"font_class": "luduanguanli",
|
|
103
|
+
"unicode": "e6d3",
|
|
104
|
+
"unicode_decimal": 59091
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"icon_id": "33051329",
|
|
108
|
+
"name": "路口管理",
|
|
109
|
+
"font_class": "lukouguanli1",
|
|
110
|
+
"unicode": "e6d4",
|
|
111
|
+
"unicode_decimal": 59092
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"icon_id": "33051330",
|
|
115
|
+
"name": "基础管理",
|
|
116
|
+
"font_class": "jichuguanli",
|
|
117
|
+
"unicode": "e6d5",
|
|
118
|
+
"unicode_decimal": 59093
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"icon_id": "33051331",
|
|
122
|
+
"name": "干线优化",
|
|
123
|
+
"font_class": "ganxianyouhua",
|
|
124
|
+
"unicode": "e6d6",
|
|
125
|
+
"unicode_decimal": 59094
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"icon_id": "33051332",
|
|
129
|
+
"name": "路口优化",
|
|
130
|
+
"font_class": "lukouyouhua",
|
|
131
|
+
"unicode": "e6d7",
|
|
132
|
+
"unicode_decimal": 59095
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"icon_id": "33051333",
|
|
136
|
+
"name": "路段评估",
|
|
137
|
+
"font_class": "luduanpinggu",
|
|
138
|
+
"unicode": "e6d8",
|
|
139
|
+
"unicode_decimal": 59096
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"icon_id": "33051334",
|
|
143
|
+
"name": "其他",
|
|
144
|
+
"font_class": "qita",
|
|
145
|
+
"unicode": "e6d9",
|
|
146
|
+
"unicode_decimal": 59097
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"icon_id": "33051335",
|
|
150
|
+
"name": "权限设置",
|
|
151
|
+
"font_class": "quanxianshezhi",
|
|
152
|
+
"unicode": "e6da",
|
|
153
|
+
"unicode_decimal": 59098
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"icon_id": "33051336",
|
|
157
|
+
"name": "主页",
|
|
158
|
+
"font_class": "zhuye2",
|
|
159
|
+
"unicode": "e6db",
|
|
160
|
+
"unicode_decimal": 59099
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"icon_id": "33051337",
|
|
164
|
+
"name": "路线管理",
|
|
165
|
+
"font_class": "luxianguanli1",
|
|
166
|
+
"unicode": "e6dc",
|
|
167
|
+
"unicode_decimal": 59100
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"icon_id": "33051338",
|
|
171
|
+
"name": "权限管理",
|
|
172
|
+
"font_class": "quanxianguanli",
|
|
173
|
+
"unicode": "e6dd",
|
|
174
|
+
"unicode_decimal": 59101
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"icon_id": "33051339",
|
|
178
|
+
"name": "路口评估",
|
|
179
|
+
"font_class": "lukoupinggu",
|
|
180
|
+
"unicode": "e6de",
|
|
181
|
+
"unicode_decimal": 59102
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"icon_id": "33051340",
|
|
185
|
+
"name": "角色设置 ",
|
|
186
|
+
"font_class": "jiaoseshezhi",
|
|
187
|
+
"unicode": "e6df",
|
|
188
|
+
"unicode_decimal": 59103
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"icon_id": "33051341",
|
|
192
|
+
"name": "协调路线",
|
|
193
|
+
"font_class": "xietiaoluxian1",
|
|
194
|
+
"unicode": "e6e0",
|
|
195
|
+
"unicode_decimal": 59104
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"icon_id": "33051342",
|
|
199
|
+
"name": "组织机构",
|
|
200
|
+
"font_class": "zuzhijigou",
|
|
201
|
+
"unicode": "e6e1",
|
|
202
|
+
"unicode_decimal": 59105
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"icon_id": "33051343",
|
|
206
|
+
"name": "瓶颈控制",
|
|
207
|
+
"font_class": "pingjingkongzhi1",
|
|
208
|
+
"unicode": "e6e2",
|
|
209
|
+
"unicode_decimal": 59106
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"icon_id": "33051344",
|
|
213
|
+
"name": "用户管理",
|
|
214
|
+
"font_class": "yonghuguanli",
|
|
215
|
+
"unicode": "e6e3",
|
|
216
|
+
"unicode_decimal": 59107
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"icon_id": "33051345",
|
|
220
|
+
"name": "区域协调",
|
|
221
|
+
"font_class": "quyuxietiao",
|
|
222
|
+
"unicode": "e6e4",
|
|
223
|
+
"unicode_decimal": 59108
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"icon_id": "33051346",
|
|
227
|
+
"name": "交通分析",
|
|
228
|
+
"font_class": "jiaotongfenxi",
|
|
229
|
+
"unicode": "e6e5",
|
|
230
|
+
"unicode_decimal": 59109
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"icon_id": "33051347",
|
|
234
|
+
"name": "特勤路线",
|
|
235
|
+
"font_class": "teqinluxian",
|
|
236
|
+
"unicode": "e6e6",
|
|
237
|
+
"unicode_decimal": 59110
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"icon_id": "33051348",
|
|
241
|
+
"name": "设备状态",
|
|
242
|
+
"font_class": "shebeizhuangtai",
|
|
243
|
+
"unicode": "e6e7",
|
|
244
|
+
"unicode_decimal": 59111
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"icon_id": "33051349",
|
|
248
|
+
"name": "特勤路线-1级菜单",
|
|
249
|
+
"font_class": "teqinluxian-1jicaidan",
|
|
250
|
+
"unicode": "e6e8",
|
|
251
|
+
"unicode_decimal": 59112
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"icon_id": "15175195",
|
|
255
|
+
"name": "摄像头",
|
|
256
|
+
"font_class": "shexiangtou",
|
|
257
|
+
"unicode": "e790",
|
|
258
|
+
"unicode_decimal": 59280
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"icon_id": "21899148",
|
|
262
|
+
"name": "icon-雷达",
|
|
263
|
+
"font_class": "icon-taikong10",
|
|
264
|
+
"unicode": "e657",
|
|
265
|
+
"unicode_decimal": 58967
|
|
266
|
+
},
|
|
8
267
|
{
|
|
9
268
|
"icon_id": "30108061",
|
|
10
269
|
"name": "lukouzhilu",
|
package/src/icons/iconfont.ttf
CHANGED
|
Binary file
|
package/src/icons/iconfont.woff
CHANGED
|
Binary file
|
package/src/icons/iconfont.woff2
CHANGED
|
Binary file
|
|
@@ -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 v-for="(item,index2) in list" :key="index2" :class="item.mode===7?'direction': ''">
|
|
18
|
-
<div class="first-1" :style="{'width':item.greenWidth,'height':'34px','background':'#7ccc66'}">
|
|
18
|
+
<div class="first-1" :class="item.mode===8?'mask': ''" :style="{'width':item.greenWidth,'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;">
|
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
<div style="position:relative; width:50px;" v-for="(bus,index3) in busPhaseData" :key="index3">
|
|
33
33
|
<i class="iconfont icon-lukouzhilu" style="position: absolute;top: 8px;font-size:12px;color:#454545;" v-if="bus.controltype === 1 && bus.phaseid===item.id"></i>
|
|
34
34
|
<i class="iconfont icon-BRT" style="position: absolute;top: 8px;font-size:12px;color:#454545;" v-if="bus.controltype === 4 && bus.phaseid===item.id"></i>
|
|
35
|
-
<i class="iconfont icon-xuxiangwei" style="position: absolute;top: 8px;font-size:12px;color:#454545;" v-if="bus.controltype === 99 && bus.phaseid===item.id"></i>
|
|
35
|
+
<i class="iconfont icon-xuxiangwei-xin" style="position: absolute;top: 8px;font-size:12px;color:#454545;" v-if="bus.controltype === 99 && bus.phaseid===item.id"></i>
|
|
36
36
|
<i class="iconfont icon-feijidongche" style="position: absolute;top: 8px;font-size:12px;color:#454545;" v-if="bus.controltype === 6 && bus.phaseid===item.id"></i>
|
|
37
37
|
<i class="iconfont icon-gongjiaoche" style="position: absolute;top: 8px;font-size:12px;color:#454545;" v-if="bus.controltype === 3 && bus.phaseid===item.id"></i>
|
|
38
38
|
<i class="iconfont icon-youguidianche" style="position: absolute;top: 8px;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" :style="{'width':item.flashgreen,'height':'34px','float':'left','background': 'linear-gradient(to right, #ffffff 50%, #7ccc66 0)','background-size': '4px 100%'}"></div>
|
|
42
|
-
<div class="first-1" :style="{'width':item.yellowWidth,'height':'34px','background':'#f9dc6a'}"></div>
|
|
43
|
-
<div class="first-1" :style="{'width':item.redWidth,'height':'34px','background':'#f27979'}"></div>
|
|
41
|
+
<div class="first-1" :class="item.mode===8?'mask': ''" :style="{'width':item.flashgreen,'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': ''" :style="{'width':item.yellowWidth,'height':'34px','background':'#f9dc6a'}"></div>
|
|
43
|
+
<div class="first-1" :class="item.mode===8?'mask': ''" :style="{'width':item.redWidth,'height':'34px','background':'#f27979'}"></div>
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
46
|
<div v-if="showBarrier">
|
|
@@ -190,9 +190,9 @@ export default {
|
|
|
190
190
|
}
|
|
191
191
|
// this.controlDatas = this.controlData
|
|
192
192
|
this.getPedPhasePos()
|
|
193
|
-
if ((this.controlData && this.controlData.patternid === 109) || (this.controlData && this.showCondition)
|
|
193
|
+
if ((this.controlData && this.controlData.patternid === 109) || (this.controlData && this.showCondition)) {
|
|
194
194
|
this.handleTentivePatternData()
|
|
195
|
-
} else {
|
|
195
|
+
} else if (this.controlData) {
|
|
196
196
|
this.handlePatternData()
|
|
197
197
|
}
|
|
198
198
|
this.handleBarrierHeight()
|
|
@@ -385,15 +385,15 @@ export default {
|
|
|
385
385
|
this.busPhaseData = []
|
|
386
386
|
this.phaseList.forEach((ele, i) => {
|
|
387
387
|
// if (ele.controltype >= 3 && ele.controltype <= 5) {
|
|
388
|
-
ele.direction.forEach((dir, index) => {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
})
|
|
388
|
+
// ele.direction.forEach((dir, index) => {
|
|
389
|
+
// 车道相位
|
|
390
|
+
this.busPhaseData.push({
|
|
391
|
+
phaseid: ele.id, // 相位id,用于对应相位状态
|
|
392
|
+
// id: dir, // 接口返回的dir字段,对应前端定义的相位方向id,唯一标识
|
|
393
|
+
// name: this.PhaseDataModel.getBusPhasePos(dir).name,
|
|
394
|
+
controltype: ele.controltype
|
|
396
395
|
})
|
|
396
|
+
// })
|
|
397
397
|
// }
|
|
398
398
|
})
|
|
399
399
|
let result = []
|
|
@@ -581,6 +581,30 @@ export default {
|
|
|
581
581
|
},
|
|
582
582
|
handleOverViewChange (val) {
|
|
583
583
|
if (val === null || val.length === 0) return
|
|
584
|
+
// 按环序分组
|
|
585
|
+
let ringlength = []
|
|
586
|
+
let ringsequence = val.map(item => {
|
|
587
|
+
if (item.length === 0) return
|
|
588
|
+
ringlength.push(item.length)
|
|
589
|
+
return item.map(k => {
|
|
590
|
+
return k.id
|
|
591
|
+
})
|
|
592
|
+
})
|
|
593
|
+
let newRings = ringsequence.filter(item => item)
|
|
594
|
+
let minLength = Math.min(...ringlength)
|
|
595
|
+
let resultArrs = [] // 环1分组
|
|
596
|
+
let resultArr = [] // 环2分组
|
|
597
|
+
for (let j = 0; j < ringsequence[0].length; j += minLength) {
|
|
598
|
+
resultArrs.push(ringsequence[0].slice(j, j + minLength))
|
|
599
|
+
if (ringsequence[0].length === minLength) {
|
|
600
|
+
resultArrs.push([])
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
if (newRings.length > 1) {
|
|
604
|
+
for (let i = 0; i < ringsequence[1].length; i += minLength) {
|
|
605
|
+
resultArr.push(ringsequence[1].slice(i, i + minLength))
|
|
606
|
+
}
|
|
607
|
+
}
|
|
584
608
|
this.patternInfo = []
|
|
585
609
|
let currentArr = []
|
|
586
610
|
let newPattern = []
|
|
@@ -604,8 +628,62 @@ export default {
|
|
|
604
628
|
}
|
|
605
629
|
if (currentArr.length !== 0) {
|
|
606
630
|
let newCurrent = this.tranform(currentArr)
|
|
607
|
-
|
|
608
|
-
|
|
631
|
+
// 取没个环与环关系的并集
|
|
632
|
+
let barrierRing1 = []
|
|
633
|
+
let barrierRing2 = []
|
|
634
|
+
let ring1 = [] // 环1与关系1的并集
|
|
635
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
636
|
+
let adds = [...new Set(resultArrs[0])].filter(item => newCurrent[h].includes(item))
|
|
637
|
+
ring1.push(adds)
|
|
638
|
+
}
|
|
639
|
+
let ring1s = [] // 环1与关系2的并集
|
|
640
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
641
|
+
let addRing1 = [...new Set(resultArrs[1])].filter(item => newCurrent[h].includes(item))
|
|
642
|
+
ring1s.push(addRing1)
|
|
643
|
+
}
|
|
644
|
+
barrierRing1.push(...ring1, ...ring1s)
|
|
645
|
+
let resultList = []
|
|
646
|
+
if (newRings.length > 1) {
|
|
647
|
+
let ring2s = [] // 环2与关系1的并集
|
|
648
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
649
|
+
let addRing2 = [...new Set(resultArr[1])].filter(item => newCurrent[h].includes(item))
|
|
650
|
+
ring2s.push(addRing2)
|
|
651
|
+
}
|
|
652
|
+
let ring2 = [] // 环2与关系1的并集
|
|
653
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
654
|
+
let add = [...new Set(resultArr[0])].filter(item => newCurrent[h].includes(item))
|
|
655
|
+
ring2.push(add)
|
|
656
|
+
}
|
|
657
|
+
barrierRing2.push(...ring2, ...ring2s)
|
|
658
|
+
for (let k = 0; k < barrierRing1.length; k++) {
|
|
659
|
+
resultList.push(barrierRing1[k].concat(barrierRing2[k]))
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
let resultLists = resultList.filter(item => item.length !== 0)
|
|
663
|
+
let ringArr = []
|
|
664
|
+
for (let l = 0; l < resultLists.length; l++) {
|
|
665
|
+
for (let d = 0; d < newCurrent.length; d++) {
|
|
666
|
+
if (newCurrent[d].filter(item => resultLists[l].includes(item)).length > 0) {
|
|
667
|
+
ringArr.push({
|
|
668
|
+
data: resultLists[l],
|
|
669
|
+
id: d + 1,
|
|
670
|
+
index: l
|
|
671
|
+
})
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
for (var i = 0; i < ringArr.length; i++) {
|
|
676
|
+
for (var j = i + 1; j < ringArr.length; j++) {
|
|
677
|
+
if (ringArr[i].id === ringArr[j].id && ringArr[i].index + 1 === ringArr[j].index) {
|
|
678
|
+
ringArr[i].data = ringArr[i].data.concat(ringArr[j].data)
|
|
679
|
+
ringArr.splice(ringArr.indexOf(ringArr[j].id), 1)
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
let resArr = ringArr.map(item => item.data)
|
|
684
|
+
let ringTeam = this.step1(this.phaseList, resArr)
|
|
685
|
+
let ringTeams = ringTeam.filter(item => item.length !== 0)
|
|
686
|
+
this.fillGap(ringTeams, val)
|
|
609
687
|
}
|
|
610
688
|
let cycle = this.controlData.cycle
|
|
611
689
|
for (let rings of val) {
|
|
@@ -684,6 +762,30 @@ export default {
|
|
|
684
762
|
},
|
|
685
763
|
handleCurrentChange (val) { // 两个ring的数据
|
|
686
764
|
if (val === null || val.length === 0) return
|
|
765
|
+
// 按环序分组
|
|
766
|
+
let ringlength = []
|
|
767
|
+
let ringsequence = val.map(item => {
|
|
768
|
+
if (item.length === 0) return
|
|
769
|
+
ringlength.push(item.length)
|
|
770
|
+
return item.map(k => {
|
|
771
|
+
return k.id
|
|
772
|
+
})
|
|
773
|
+
})
|
|
774
|
+
let newRings = ringsequence.filter(item => item)
|
|
775
|
+
let minLength = Math.min(...ringlength)
|
|
776
|
+
let resultArrs = [] // 环1分组
|
|
777
|
+
let resultArr = [] // 环2分组
|
|
778
|
+
for (let j = 0; j < ringsequence[0].length; j += minLength) {
|
|
779
|
+
resultArrs.push(ringsequence[0].slice(j, j + minLength))
|
|
780
|
+
if (ringsequence[0].length === minLength) {
|
|
781
|
+
resultArrs.push([])
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
if (newRings.length > 1) {
|
|
785
|
+
for (let i = 0; i < ringsequence[1].length; i += minLength) {
|
|
786
|
+
resultArr.push(ringsequence[1].slice(i, i + minLength))
|
|
787
|
+
}
|
|
788
|
+
}
|
|
687
789
|
this.patternInfo = []
|
|
688
790
|
this.barrierList = []
|
|
689
791
|
let currentArr = []
|
|
@@ -708,12 +810,66 @@ export default {
|
|
|
708
810
|
}
|
|
709
811
|
if (currentArr.length !== 0) {
|
|
710
812
|
let newCurrent = this.tranform(currentArr)
|
|
711
|
-
|
|
813
|
+
// 取没个环与环关系的并集
|
|
814
|
+
let barrierRing1 = []
|
|
815
|
+
let barrierRing2 = []
|
|
816
|
+
let ring1 = [] // 环1与关系1的并集
|
|
817
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
818
|
+
let adds = [...new Set(resultArrs[0])].filter(item => newCurrent[h].includes(item))
|
|
819
|
+
ring1.push(adds)
|
|
820
|
+
}
|
|
821
|
+
let ring1s = [] // 环1与关系2的并集
|
|
822
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
823
|
+
let addRing1 = [...new Set(resultArrs[1])].filter(item => newCurrent[h].includes(item))
|
|
824
|
+
ring1s.push(addRing1)
|
|
825
|
+
}
|
|
826
|
+
barrierRing1.push(...ring1, ...ring1s)
|
|
827
|
+
let resultList = []
|
|
828
|
+
if (newRings.length > 1) {
|
|
829
|
+
let ring2s = [] // 环2与关系1的并集
|
|
830
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
831
|
+
let addRing2 = [...new Set(resultArr[1])].filter(item => newCurrent[h].includes(item))
|
|
832
|
+
ring2s.push(addRing2)
|
|
833
|
+
}
|
|
834
|
+
let ring2 = [] // 环2与关系1的并集
|
|
835
|
+
for (let h = 0; h < newCurrent.length; h++) {
|
|
836
|
+
let add = [...new Set(resultArr[0])].filter(item => newCurrent[h].includes(item))
|
|
837
|
+
ring2.push(add)
|
|
838
|
+
}
|
|
839
|
+
barrierRing2.push(...ring2, ...ring2s)
|
|
840
|
+
for (let k = 0; k < barrierRing1.length; k++) {
|
|
841
|
+
resultList.push(barrierRing1[k].concat(barrierRing2[k]))
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
let resultLists = resultList.filter(item => item.length !== 0)
|
|
845
|
+
let ringArr = []
|
|
846
|
+
for (let l = 0; l < resultLists.length; l++) {
|
|
847
|
+
for (let d = 0; d < newCurrent.length; d++) {
|
|
848
|
+
if (newCurrent[d].filter(item => resultLists[l].includes(item)).length > 0) {
|
|
849
|
+
ringArr.push({
|
|
850
|
+
data: resultLists[l],
|
|
851
|
+
id: d + 1,
|
|
852
|
+
index: l
|
|
853
|
+
})
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
for (var i = 0; i < ringArr.length; i++) {
|
|
858
|
+
for (var j = i + 1; j < ringArr.length; j++) {
|
|
859
|
+
if (ringArr[i].id === ringArr[j].id && ringArr[i].index + 1 === ringArr[j].index) {
|
|
860
|
+
ringArr[i].data = ringArr[i].data.concat(ringArr[j].data)
|
|
861
|
+
ringArr.splice(ringArr.indexOf(ringArr[j].id), 1)
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
let resArr = ringArr.map(item => item.data)
|
|
866
|
+
let ringTeam = this.step1(this.phaseList, resArr)
|
|
867
|
+
let ringTeams = ringTeam.filter(item => item.length !== 0)
|
|
712
868
|
if (this.patternList) {
|
|
713
|
-
this.setBarrier(
|
|
869
|
+
this.setBarrier(ringTeams, val)
|
|
714
870
|
}
|
|
715
|
-
this.fillGap(
|
|
716
|
-
let barrier = this.step2(
|
|
871
|
+
this.fillGap(ringTeams, val)
|
|
872
|
+
let barrier = this.step2(ringTeams, newPattern)
|
|
717
873
|
this.barrierList = barrier.map(j => {
|
|
718
874
|
return (j / (this.max ? this.max : this.newCycle) * 100) + '%'
|
|
719
875
|
})
|
|
@@ -775,33 +931,16 @@ export default {
|
|
|
775
931
|
]
|
|
776
932
|
}
|
|
777
933
|
}
|
|
934
|
+
obj.split = split
|
|
778
935
|
if (ring.sum) {
|
|
779
|
-
obj.
|
|
780
|
-
obj.greenWidth = ((split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen + ring.sum) / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
936
|
+
obj.redWidth = ((currPhase.redclear + ring.sum) / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
781
937
|
} else {
|
|
782
|
-
obj.
|
|
783
|
-
obj.greenWidth = ((split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen) / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
938
|
+
obj.redWidth = (currPhase.redclear / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
784
939
|
}
|
|
785
940
|
obj.mode = ring.mode
|
|
941
|
+
obj.greenWidth = ((split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen) / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
786
942
|
obj.flashgreen = (currPhase.flashgreen / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
787
|
-
obj.redWidth = (currPhase.redclear / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
788
943
|
obj.yellowWidth = (currPhase.yellow / (this.max ? this.max : this.newCycle) * 100).toFixed(3) + '%'
|
|
789
|
-
// // obj.peddirection = currPhase.peddirection
|
|
790
|
-
// let peddirections = []
|
|
791
|
-
// for (let walk of this.sidewalkPhaseData) {
|
|
792
|
-
// for (let ped of currPhase.peddirection) {
|
|
793
|
-
// // if (stg === walk.phaseid) {
|
|
794
|
-
// let objs = {}
|
|
795
|
-
// objs.name = walk.name
|
|
796
|
-
// objs.id = walk.id
|
|
797
|
-
// if (ped === walk.id) {
|
|
798
|
-
// peddirections.push(objs)
|
|
799
|
-
// peddirections = Array.from(new Set(peddirections))
|
|
800
|
-
// }
|
|
801
|
-
// // }
|
|
802
|
-
// }
|
|
803
|
-
// }
|
|
804
|
-
// obj.peddirection = peddirections
|
|
805
944
|
// 忽略相位不显示
|
|
806
945
|
// let mode = ring.mode
|
|
807
946
|
// if (mode !== 7) { // 忽略相位不显示
|
|
@@ -821,6 +960,7 @@ export default {
|
|
|
821
960
|
})
|
|
822
961
|
})
|
|
823
962
|
let ret = ringTeam.map((y, index) => {
|
|
963
|
+
if (!y || y.length === 0) return
|
|
824
964
|
y.map(n => {
|
|
825
965
|
n.length = n.data.length > 1 ? n.data.reduce((pre, cur) => pre + patternObjs[cur], 0) : patternObjs[n.data[0]]
|
|
826
966
|
})
|
|
@@ -897,6 +1037,7 @@ export default {
|
|
|
897
1037
|
// }
|
|
898
1038
|
})
|
|
899
1039
|
newArr.forEach((na, index) => {
|
|
1040
|
+
if (!na || na.length === 0) return
|
|
900
1041
|
let max = 0
|
|
901
1042
|
na.forEach(n => {
|
|
902
1043
|
const total = n.data.reduce((pre, cur) => pre + patternObj[cur], 0)
|
|
@@ -904,7 +1045,7 @@ export default {
|
|
|
904
1045
|
max = total
|
|
905
1046
|
}
|
|
906
1047
|
})
|
|
907
|
-
while (index > 0) { // && max < _this.newCycle
|
|
1048
|
+
while (index > 0 && max < this.max) { // && max < _this.newCycle
|
|
908
1049
|
index--
|
|
909
1050
|
max += ret[index]
|
|
910
1051
|
}
|
|
@@ -925,6 +1066,7 @@ export default {
|
|
|
925
1066
|
let newMax = []
|
|
926
1067
|
let newMin = []
|
|
927
1068
|
newArr.forEach((na, index) => {
|
|
1069
|
+
if (!na || na.length === 0) return
|
|
928
1070
|
na.map(n => {
|
|
929
1071
|
n.length = n.data.length > 1 ? n.data.reduce((pre, cur) => pre + patternObj[cur], 0) : patternObj[n.data[0]]
|
|
930
1072
|
})
|
|
@@ -1127,6 +1269,9 @@ export default {
|
|
|
1127
1269
|
.direction {
|
|
1128
1270
|
opacity: 0.6;
|
|
1129
1271
|
}
|
|
1272
|
+
.mask {
|
|
1273
|
+
background: rgb(242, 121, 121) !important;
|
|
1274
|
+
}
|
|
1130
1275
|
.first-1 {
|
|
1131
1276
|
float: left;
|
|
1132
1277
|
// text-align: center;
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
<i class="iconfont icon-lukouzhilu" style="font-size:16PX;color:#454545;" v-if="item[item.length-1].controltype === 1"></i>
|
|
37
37
|
<i class="iconfont icon-BRT" style="font-size:11PX;color:#454545;" v-if="item[item.length-1].controltype === 4"></i>
|
|
38
38
|
<div style="transform:scale(0.65);margin-left:-6px;">
|
|
39
|
-
<i class="iconfont icon-xuxiangwei" style="font-size:5PX;color:#454545;" v-if="item[item.length-1].controltype === 99"></i>
|
|
39
|
+
<i class="iconfont icon-xuxiangwei-xin" style="font-size:5PX;color:#454545;" v-if="item[item.length-1].controltype === 99"></i>
|
|
40
40
|
</div>
|
|
41
41
|
<i class="iconfont icon-gongjiaoche" style="font-size:11PX;color:#606266;" v-if="item[item.length-1].controltype === 3"></i>
|
|
42
42
|
<i class="iconfont icon-youguidianche" style="font-size:11PX;color:#606266;" v-if="item[item.length-1].controltype === 5"></i>
|
|
@@ -94,10 +94,10 @@ export default {
|
|
|
94
94
|
return {
|
|
95
95
|
roadDirection: 'right',
|
|
96
96
|
// reqUrl: 'http://192.168.13.103:10003/openatc',
|
|
97
|
-
agentId: '
|
|
97
|
+
agentId: '1511_207',
|
|
98
98
|
// agentId: '0351-01',
|
|
99
99
|
reqUrl: 'http://192.168.13.103:10003/openatc',
|
|
100
|
-
Token: '
|
|
100
|
+
Token: 'eyJraWQiOiIxNjczMjMwODQ3Njg0IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc1OTYzMDg0OCwiaWF0IjoxNjczMjMwODQ4fQ.GCpdGk-nf1eiLX-RuowEcKv9PAXsilz8AQuJ2QA037s',
|
|
101
101
|
// agentId: '30003-352',
|
|
102
102
|
// reqUrl: 'https://kints-dev.devdolphin.com/openatc',
|
|
103
103
|
// Token: 'eyJraWQiOiIxNjUwNTA5MDI2ODk2IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ4aWFvbWluZyIsImV4cCI6MTczNjkwOTAyNiwiaWF0IjoxNjUwNTA5MDI2fQ.-s4T-uMRmB2zf9yer87USKQXLY1a12Zq5lCOnqjNmfA',
|
package/src/views/overView.vue
CHANGED
|
@@ -20,7 +20,7 @@ export default {
|
|
|
20
20
|
modeName: '交警遥控',
|
|
21
21
|
controlName: '步进',
|
|
22
22
|
agentId: 'jmlxhl',
|
|
23
|
-
Token: '
|
|
23
|
+
Token: 'eyJraWQiOiIxNjczMjMwODQ3Njg0IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc1OTYzMDg0OCwiaWF0IjoxNjczMjMwODQ4fQ.GCpdGk-nf1eiLX-RuowEcKv9PAXsilz8AQuJ2QA037s',
|
|
24
24
|
reqUrl: 'http://192.168.13.103:10003/openatc'
|
|
25
25
|
}
|
|
26
26
|
},
|
|
@@ -55,9 +55,9 @@ export default {
|
|
|
55
55
|
showWalk: [ 1, 2 ],
|
|
56
56
|
sidewalkPhaseData: [{key: 'pedphase1653873194007699', phaseid: 1, id: 1, name: '东人行横道', isshow: false}],
|
|
57
57
|
lockPhaseBtnName: this.$t('openatccomponents.overview.comfirm'),
|
|
58
|
-
agentId: '
|
|
59
|
-
Token: '
|
|
60
|
-
Token103: '
|
|
58
|
+
agentId: '1511_207',
|
|
59
|
+
Token: 'eyJraWQiOiIxNjczMjMwODQ3Njg0IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc1OTYzMDg0OCwiaWF0IjoxNjczMjMwODQ4fQ.GCpdGk-nf1eiLX-RuowEcKv9PAXsilz8AQuJ2QA037s',
|
|
60
|
+
Token103: 'eyJraWQiOiIxNjczMjMwODQ3Njg0IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc1OTYzMDg0OCwiaWF0IjoxNjczMjMwODQ4fQ.GCpdGk-nf1eiLX-RuowEcKv9PAXsilz8AQuJ2QA037s',
|
|
61
61
|
boxVisible: false,
|
|
62
62
|
dialogWidth: '80%',
|
|
63
63
|
crossStatusData: {} // 路口状态数据
|