openatc-components 0.0.95 → 0.0.98
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 +6 -1
- package/package/kisscomps/components/KanBan/kanban.vue +6 -6
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +152 -37
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
- package/package/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
- package/package/kisscomps/components/StageStatus/StageStatus.vue +6 -2
- package/package/kisscomps/index.js +2 -0
- package/package/kissui.min.js +1 -1
- package/package.json +13 -12
- package/src/i18n/language/en.js +29 -1
- package/src/i18n/language/zh.js +29 -1
- package/src/kisscomps/components/BoardCard/BoardCard.vue +6 -1
- package/src/kisscomps/components/KanBan/kanban.vue +6 -6
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +152 -37
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
- package/src/kisscomps/components/StageStatus/StageStatus.vue +6 -2
- package/src/kisscomps/index.js +2 -0
- package/static/styles/schemeconfig.scss +52 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openatc-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.98",
|
|
4
4
|
"description": "A Vue.js project",
|
|
5
5
|
"author": "openatc developer",
|
|
6
6
|
"private": false,
|
|
@@ -21,24 +21,25 @@
|
|
|
21
21
|
"npm2yuanqu": "npm config set registry http://nexus.ctsp.kedacom.com/content/groups/npm-host-yuanqu/"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"@minogin/vue-drag-resize-rotate": "^1.0.5",
|
|
25
|
+
"@openatc/edgebase-front": "^2.4.0",
|
|
26
|
+
"animate.css": "^3.7.2",
|
|
27
|
+
"axios": "0.21.1",
|
|
28
|
+
"echarts": "^4.9.0",
|
|
29
|
+
"element-ui": "^2.7.2",
|
|
24
30
|
"flatpickr": "^4.5.1",
|
|
25
31
|
"jquery": "^3.3.1",
|
|
32
|
+
"js-cookie": "2.2.0",
|
|
33
|
+
"localStorage": "^1.0.4",
|
|
34
|
+
"moment": "^2.24.0",
|
|
26
35
|
"pend": "^1.2.0",
|
|
36
|
+
"scss-loader": "0.0.1",
|
|
27
37
|
"v-tooltip": "^2.0.0-rc.33",
|
|
28
38
|
"vue": "^2.5.2",
|
|
29
|
-
"vue-router": "^3.0.1",
|
|
30
|
-
"element-ui": "^2.7.2",
|
|
31
|
-
"moment": "^2.24.0",
|
|
32
|
-
"axios": "0.21.1",
|
|
33
|
-
"js-cookie": "2.2.0",
|
|
34
|
-
"localStorage": "^1.0.4",
|
|
35
39
|
"vue-i18n": "^8.7.0",
|
|
36
|
-
"
|
|
37
|
-
"scss-loader": "0.0.1",
|
|
40
|
+
"vue-router": "^3.0.1",
|
|
38
41
|
"vuedraggable": "^2.16.0",
|
|
39
|
-
"
|
|
40
|
-
"echarts": "^4.9.0",
|
|
41
|
-
"@minogin/vue-drag-resize-rotate": "^1.0.5"
|
|
42
|
+
"vuex": "3.0.1"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
45
|
"autoprefixer": "^7.1.2",
|
package/src/i18n/language/en.js
CHANGED
|
@@ -129,6 +129,7 @@ const en = {
|
|
|
129
129
|
'phaseclose': 'Close Phase',
|
|
130
130
|
'phaselocking': 'Priority Control',
|
|
131
131
|
'tentativeplan': 'Tentative Plan',
|
|
132
|
+
'prioritycontrol': 'Priority Control',
|
|
132
133
|
'implement': 'Execute',
|
|
133
134
|
'comfirm': 'Comfirm',
|
|
134
135
|
'ipaddress': 'IP',
|
|
@@ -206,7 +207,34 @@ const en = {
|
|
|
206
207
|
'modelList22': 'Priority Control',
|
|
207
208
|
'modelList23': 'Close Phase',
|
|
208
209
|
'modelList100': 'Tentative Plan',
|
|
209
|
-
'modelList24': '
|
|
210
|
+
'modelList24': 'Priority Control',
|
|
211
|
+
'priorityType': 'Priority Type',
|
|
212
|
+
'priorityPhase': 'Priority Phase',
|
|
213
|
+
'typeOption0': 'Regular Priority',
|
|
214
|
+
'typeOption1': 'Urgent Priority',
|
|
215
|
+
'es': 'East-Straight',
|
|
216
|
+
'el': 'East-Left',
|
|
217
|
+
'er': 'East-Right',
|
|
218
|
+
'eb': 'East-Back',
|
|
219
|
+
'ws': 'West-Straight',
|
|
220
|
+
'wl': 'West-Left',
|
|
221
|
+
'wr': 'West-Right',
|
|
222
|
+
'wb': 'West-Back',
|
|
223
|
+
'ns': 'North-Straight',
|
|
224
|
+
'nl': 'North-Left',
|
|
225
|
+
'nr': 'North-Right',
|
|
226
|
+
'nb': 'North-Back',
|
|
227
|
+
'ss': 'South-Straight',
|
|
228
|
+
'sl': 'South-Left',
|
|
229
|
+
'sr': 'South-Right',
|
|
230
|
+
'sb': 'South-Back',
|
|
231
|
+
'level': 'Level',
|
|
232
|
+
'levelOption': 'LevelOption',
|
|
233
|
+
'levelOption1': '1',
|
|
234
|
+
'levelOption2': '2',
|
|
235
|
+
'levelOption3': '3',
|
|
236
|
+
'levelOption4': '4',
|
|
237
|
+
'levelOption5': '5',
|
|
210
238
|
'modelList99': 'Device Mantenance',
|
|
211
239
|
'tips': 'Tips',
|
|
212
240
|
'exitmanul': 'It is necessary to restore self-control before exiting. Do you want to exit?',
|
package/src/i18n/language/zh.js
CHANGED
|
@@ -129,6 +129,34 @@ const zh = {
|
|
|
129
129
|
'phaseclose': '相位关断',
|
|
130
130
|
'phaselocking': '相位锁定',
|
|
131
131
|
'tentativeplan': '临时方案',
|
|
132
|
+
'prioritycontrol': '优先控制',
|
|
133
|
+
'priorityType': '优先类型',
|
|
134
|
+
'priorityPhase': '优先相位',
|
|
135
|
+
'typeOption0': '常规优先',
|
|
136
|
+
'typeOption1': '紧急优先',
|
|
137
|
+
'es': '东直行',
|
|
138
|
+
'el': '东左转',
|
|
139
|
+
'er': '东右转',
|
|
140
|
+
'eb': '东掉头',
|
|
141
|
+
'ws': '西直行',
|
|
142
|
+
'wl': '西左转',
|
|
143
|
+
'wr': '西右转',
|
|
144
|
+
'wb': '西掉头',
|
|
145
|
+
'ns': '北直行',
|
|
146
|
+
'nl': '北左转',
|
|
147
|
+
'nr': '北右转',
|
|
148
|
+
'nb': '北掉头',
|
|
149
|
+
'ss': '南直行',
|
|
150
|
+
'sl': '南左转',
|
|
151
|
+
'sr': '南右转',
|
|
152
|
+
'sb': '南掉头',
|
|
153
|
+
'level': '优先级',
|
|
154
|
+
'levelOption': 'levelOption',
|
|
155
|
+
'levelOption1': '1',
|
|
156
|
+
'levelOption2': '2',
|
|
157
|
+
'levelOption3': '3',
|
|
158
|
+
'levelOption4': '4',
|
|
159
|
+
'levelOption5': '5',
|
|
132
160
|
'implement': '执行',
|
|
133
161
|
'comfirm': '确定',
|
|
134
162
|
'ipaddress': 'IP地址',
|
|
@@ -206,7 +234,7 @@ const zh = {
|
|
|
206
234
|
'modelList22': '相位锁定',
|
|
207
235
|
'modelList23': '相位关断',
|
|
208
236
|
'modelList100': '临时方案',
|
|
209
|
-
'modelList24': '
|
|
237
|
+
'modelList24': '优先控制',
|
|
210
238
|
'modelList99': '设备维护',
|
|
211
239
|
'tips': '提示',
|
|
212
240
|
'exitmanul': '退出前需要先恢复自主控制, 是否退出?',
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
:patternStatusList="patternStatusList">
|
|
9
9
|
</StageStatus>
|
|
10
10
|
<PatternStatus
|
|
11
|
+
:showBarrier="showBarrier"
|
|
11
12
|
:localPatternList="localPatternList"
|
|
12
13
|
:contrloType="contrloType"
|
|
13
14
|
:stagesChange="stagesChange"
|
|
@@ -17,7 +18,7 @@
|
|
|
17
18
|
:phaseList="phaseList"
|
|
18
19
|
:cycle="cycle"
|
|
19
20
|
:syncTime="syncTime"
|
|
20
|
-
:style="{'margin-top':cycle ? '25px':'0'}"
|
|
21
|
+
:style="{'margin-top':(cycle || !showBarrier)? '25px':'0'}"
|
|
21
22
|
:patternStatusList="patternStatusList"
|
|
22
23
|
:patternId="patternId"
|
|
23
24
|
:cycles="cycles">
|
|
@@ -52,6 +53,10 @@ export default {
|
|
|
52
53
|
stagesChange: {
|
|
53
54
|
type: Array
|
|
54
55
|
},
|
|
56
|
+
showBarrier: {
|
|
57
|
+
type: Boolean,
|
|
58
|
+
default: false
|
|
59
|
+
},
|
|
55
60
|
phaseList: {
|
|
56
61
|
type: Array
|
|
57
62
|
},
|
|
@@ -202,12 +202,12 @@ export default {
|
|
|
202
202
|
}
|
|
203
203
|
return maxCycle
|
|
204
204
|
},
|
|
205
|
-
doChange (
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
205
|
+
doChange (e) {
|
|
206
|
+
if (e) {
|
|
207
|
+
let n = this.index
|
|
208
|
+
this.$emit('handleSplit', n)
|
|
209
|
+
this.$forceUpdate()
|
|
210
|
+
}
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<div class="first-1" :style="{'width':item.redWidth,'height':'34px','background':'#f27979'}"></div>
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
|
-
<div v-for="(item, index) in barrierList" :key="index + '1'">
|
|
46
|
+
<div v-if="showBarrier" v-for="(item, index) in barrierList" :key="index + '1'">
|
|
47
47
|
<div class="divider" :style="{'left':item, 'height':barrierHeight}"></div>
|
|
48
48
|
</div>
|
|
49
49
|
<div v-show="(syncTime && cycle && cycle>0) || (syncTime && newCycle && newCycle>0)">
|
|
@@ -123,6 +123,10 @@ export default {
|
|
|
123
123
|
patternList: {
|
|
124
124
|
type: Array
|
|
125
125
|
},
|
|
126
|
+
showBarrier: {
|
|
127
|
+
type: Boolean,
|
|
128
|
+
default: false
|
|
129
|
+
},
|
|
126
130
|
localPatternList: {
|
|
127
131
|
type: Array
|
|
128
132
|
},
|
|
@@ -162,10 +166,10 @@ export default {
|
|
|
162
166
|
return res
|
|
163
167
|
},
|
|
164
168
|
timeNumDevide () {
|
|
165
|
-
if (this.newCycle && this.newCycle > 0) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
+
// if (this.newCycle && this.newCycle > 0) {
|
|
170
|
+
// let res = (this.newCycle - this.syncTime) + '/' + this.newCycle
|
|
171
|
+
// return res
|
|
172
|
+
// }
|
|
169
173
|
if (this.cycle && this.cycle > 0) {
|
|
170
174
|
let res = (this.cycle - this.syncTime) + '/' + this.cycle
|
|
171
175
|
return res
|
|
@@ -407,63 +411,174 @@ export default {
|
|
|
407
411
|
this.newList = []
|
|
408
412
|
if (Object.keys(this.controlData).length === 0 || this.phaseList.length === 0) return
|
|
409
413
|
if (!this.controlData.phase) return
|
|
410
|
-
let cycle = this.controlData.cycle
|
|
414
|
+
// let cycle = this.controlData.cycle
|
|
411
415
|
if (!this.controlData.rings) return
|
|
416
|
+
let newValue = []
|
|
412
417
|
for (let rings of this.controlData.rings) {
|
|
413
418
|
let phase = this.controlData.phase
|
|
414
|
-
let list = []
|
|
419
|
+
// let list = []
|
|
420
|
+
let obj = {}
|
|
421
|
+
for (let key in rings.sequence) {
|
|
422
|
+
obj[key] = rings.sequence[key]
|
|
423
|
+
}
|
|
424
|
+
let newObj = Object.keys(obj).map(val => ({
|
|
425
|
+
id: obj[val]
|
|
426
|
+
}))
|
|
427
|
+
newValue.push(newObj)
|
|
415
428
|
for (let sequ of rings.sequence) {
|
|
416
429
|
let obj = {}
|
|
417
430
|
obj.id = sequ
|
|
418
431
|
let split = phase.filter((item) => {
|
|
419
432
|
return item.id === sequ
|
|
420
433
|
})[0].split
|
|
434
|
+
newValue.map(d => {
|
|
435
|
+
d.map(r => {
|
|
436
|
+
if (r.id === sequ) {
|
|
437
|
+
r.value = split
|
|
438
|
+
}
|
|
439
|
+
})
|
|
440
|
+
})
|
|
441
|
+
// let currPhase = this.phaseList.filter((item) => {
|
|
442
|
+
// if (item.id === sequ && item.controltype === 99) {
|
|
443
|
+
// obj.controltype = item.controltype
|
|
444
|
+
// }
|
|
445
|
+
// return item.id === sequ
|
|
446
|
+
// })[0]
|
|
447
|
+
// if (currPhase) {
|
|
448
|
+
// obj.redWidth = (currPhase.redclear / cycle * 100).toFixed(3) + '%'
|
|
449
|
+
// obj.yellowWidth = (currPhase.yellow / cycle * 100).toFixed(3) + '%'
|
|
450
|
+
// obj.greenWidth = ((split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen) / cycle * 100).toFixed(3) + '%'
|
|
451
|
+
// obj.flashgreen = (currPhase.flashgreen / cycle * 100).toFixed(3) + '%'
|
|
452
|
+
// // obj.peddirection = currPhase.peddirection
|
|
453
|
+
// let peddirections = []
|
|
454
|
+
// for (let walk of this.sidewalkPhaseData) {
|
|
455
|
+
// for (let ped of currPhase.peddirection) {
|
|
456
|
+
// // if (stg === walk.phaseid) {
|
|
457
|
+
// let objs = {}
|
|
458
|
+
// objs.name = walk.name
|
|
459
|
+
// objs.id = walk.id
|
|
460
|
+
// if (ped === walk.id) {
|
|
461
|
+
// peddirections.push(objs)
|
|
462
|
+
// peddirections = Array.from(new Set(peddirections))
|
|
463
|
+
// }
|
|
464
|
+
// // }
|
|
465
|
+
// }
|
|
466
|
+
// }
|
|
467
|
+
// obj.peddirection = peddirections
|
|
468
|
+
// obj.split = split
|
|
469
|
+
// obj.direction = currPhase.direction.map(item => {
|
|
470
|
+
// return {
|
|
471
|
+
// id: item,
|
|
472
|
+
// color: '#454545'
|
|
473
|
+
// }
|
|
474
|
+
// })
|
|
475
|
+
// list.push(obj)
|
|
476
|
+
// }
|
|
477
|
+
}
|
|
478
|
+
// this.newList.push(list)
|
|
479
|
+
// this.patternInfo = [...this.newList]
|
|
480
|
+
}
|
|
481
|
+
this.handleOverViewChange(newValue)
|
|
482
|
+
},
|
|
483
|
+
handleBarrierHeight () { // 屏障高度
|
|
484
|
+
if (!this.patternInfo) return
|
|
485
|
+
let patternLength = this.patternInfo.length
|
|
486
|
+
this.barrierHeight = (patternLength * 35 + 21) + 'px'
|
|
487
|
+
},
|
|
488
|
+
handleOverViewChange (val) {
|
|
489
|
+
if (val === null || val.length === 0) return
|
|
490
|
+
this.patternInfo = []
|
|
491
|
+
let currentArr = []
|
|
492
|
+
let newPattern = []
|
|
493
|
+
val.map(i => {
|
|
494
|
+
newPattern.push(...i)
|
|
495
|
+
})
|
|
496
|
+
if (this.phaseList.length === 0) return
|
|
497
|
+
for (let patternStatus of val[0]) {
|
|
498
|
+
if (patternStatus.mode !== 7) {
|
|
499
|
+
let concurrent = this.phaseList.filter((item) => {
|
|
500
|
+
return item.id === patternStatus.id // patternStatus.id当前相位id concurrent当前相位的并发相位
|
|
501
|
+
})[0].concurrent// 当前相位的并发相位
|
|
502
|
+
if (concurrent) {
|
|
503
|
+
let obj = {
|
|
504
|
+
id: patternStatus.id,
|
|
505
|
+
current: concurrent.sort()
|
|
506
|
+
}
|
|
507
|
+
currentArr.push(obj)
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
if (currentArr.length !== 0) {
|
|
512
|
+
let newCurrent = this.tranform(currentArr)
|
|
513
|
+
let ringTeam = this.step1(this.phaseList, newCurrent)
|
|
514
|
+
this.fillGap(ringTeam, val)
|
|
515
|
+
}
|
|
516
|
+
let cycle = this.controlData.cycle
|
|
517
|
+
for (let rings of val) {
|
|
518
|
+
if (rings.length === 0) continue
|
|
519
|
+
let list = []
|
|
520
|
+
for (let ring of rings) {
|
|
521
|
+
if (ring.value === 0) continue
|
|
522
|
+
let obj = {}
|
|
523
|
+
let split = ring.value
|
|
524
|
+
obj.id = ring.id
|
|
525
|
+
// obj.split = split
|
|
421
526
|
let currPhase = this.phaseList.filter((item) => {
|
|
422
|
-
if (item.id ===
|
|
527
|
+
if (item.id === ring.id && item.controltype === 99) {
|
|
423
528
|
obj.controltype = item.controltype
|
|
424
529
|
}
|
|
425
|
-
return item.id ===
|
|
530
|
+
return item.id === ring.id
|
|
426
531
|
})[0]
|
|
427
|
-
if (
|
|
428
|
-
obj.
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
// obj.peddirection = currPhase.peddirection
|
|
433
|
-
let peddirections = []
|
|
434
|
-
for (let walk of this.sidewalkPhaseData) {
|
|
435
|
-
for (let ped of currPhase.peddirection) {
|
|
436
|
-
// if (stg === walk.phaseid) {
|
|
437
|
-
let objs = {}
|
|
438
|
-
objs.name = walk.name
|
|
439
|
-
objs.id = walk.id
|
|
440
|
-
if (ped === walk.id) {
|
|
441
|
-
peddirections.push(objs)
|
|
442
|
-
peddirections = Array.from(new Set(peddirections))
|
|
443
|
-
}
|
|
444
|
-
// }
|
|
532
|
+
if (ring.desc) {
|
|
533
|
+
obj.direction = ring.desc.map(item => { // 虚相位desc为空
|
|
534
|
+
return {
|
|
535
|
+
id: item.id,
|
|
536
|
+
color: '#454545'
|
|
445
537
|
}
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
obj.split = split
|
|
538
|
+
})
|
|
539
|
+
} else {
|
|
449
540
|
obj.direction = currPhase.direction.map(item => {
|
|
450
541
|
return {
|
|
451
542
|
id: item,
|
|
452
543
|
color: '#454545'
|
|
453
544
|
}
|
|
454
545
|
})
|
|
546
|
+
}
|
|
547
|
+
if (ring.sum) {
|
|
548
|
+
obj.split = split
|
|
549
|
+
obj.redWidth = (currPhase.redclear + ring.sum / (this.max ? this.max : cycle) * 100).toFixed(3) + '%'
|
|
550
|
+
} else {
|
|
551
|
+
obj.split = split
|
|
552
|
+
obj.redWidth = (currPhase.redclear / (this.max ? this.max : cycle) * 100).toFixed(3) + '%'
|
|
553
|
+
}
|
|
554
|
+
obj.flashgreen = (currPhase.flashgreen / (this.max ? this.max : cycle) * 100).toFixed(3) + '%'
|
|
555
|
+
obj.yellowWidth = (currPhase.yellow / (this.max ? this.max : cycle) * 100).toFixed(3) + '%'
|
|
556
|
+
obj.greenWidth = ((split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen) / (this.max ? this.max : cycle) * 100).toFixed(3) + '%'
|
|
557
|
+
// obj.peddirection = currPhase.peddirection
|
|
558
|
+
let peddirections = []
|
|
559
|
+
for (let walk of this.sidewalkPhaseData) {
|
|
560
|
+
for (let ped of currPhase.peddirection) {
|
|
561
|
+
// if (stg === walk.phaseid) {
|
|
562
|
+
let objs = {}
|
|
563
|
+
objs.name = walk.name
|
|
564
|
+
objs.id = walk.id
|
|
565
|
+
if (ped === walk.id) {
|
|
566
|
+
peddirections.push(objs)
|
|
567
|
+
peddirections = Array.from(new Set(peddirections))
|
|
568
|
+
}
|
|
569
|
+
// }
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
obj.peddirection = peddirections
|
|
573
|
+
// 忽略相位不显示
|
|
574
|
+
let mode = ring.mode
|
|
575
|
+
if (mode !== 7) { // 忽略相位不显示
|
|
455
576
|
list.push(obj)
|
|
456
577
|
}
|
|
457
578
|
}
|
|
458
|
-
this.
|
|
459
|
-
this.patternInfo = [...this.newList]
|
|
579
|
+
this.patternInfo.push(list)
|
|
460
580
|
}
|
|
461
581
|
},
|
|
462
|
-
handleBarrierHeight () { // 屏障高度
|
|
463
|
-
if (!this.patternInfo) return
|
|
464
|
-
let patternLength = this.patternInfo.length
|
|
465
|
-
this.barrierHeight = (patternLength * 35 + 21) + 'px'
|
|
466
|
-
},
|
|
467
582
|
handleCurrentChange (val) { // 两个ring的数据
|
|
468
583
|
if (val === null || val.length === 0) return
|
|
469
584
|
this.patternInfo = []
|
|
@@ -69,6 +69,12 @@
|
|
|
69
69
|
@closePhaseBack="closePhaseBack"
|
|
70
70
|
@closePhaseControl="closePhaseControl"
|
|
71
71
|
/>
|
|
72
|
+
<priorityControl
|
|
73
|
+
v-if="specialPage === 'prioritycontrol'"
|
|
74
|
+
:phaseList="phaseList"
|
|
75
|
+
@closePhaseBack="closePhaseBack"
|
|
76
|
+
@closePhaseControl="closePhaseControl"
|
|
77
|
+
/>
|
|
72
78
|
</div>
|
|
73
79
|
</transition>
|
|
74
80
|
|
|
@@ -110,6 +116,7 @@ import ManualControlModal from './manualControlModal'
|
|
|
110
116
|
import ClosePhaseControlModal from './closePhaselControlModal'
|
|
111
117
|
import LockingPhaseControlModal from './lockingPhaselControlModal'
|
|
112
118
|
import TentativePlanControlModal from './tentativeplancontrolmodal'
|
|
119
|
+
import priorityControl from './priorityControl'
|
|
113
120
|
// import { getFaultMesZh, getFaultMesEn } from '../../utils/faultcode.js'
|
|
114
121
|
import { getMessageByCode } from '../../../utils/responseMessage'
|
|
115
122
|
import { GetAllFaultRange } from '../../../api/fault'
|
|
@@ -125,6 +132,7 @@ export default {
|
|
|
125
132
|
ManualControlModal,
|
|
126
133
|
ClosePhaseControlModal,
|
|
127
134
|
LockingPhaseControlModal,
|
|
135
|
+
priorityControl,
|
|
128
136
|
TentativePlanControlModal
|
|
129
137
|
},
|
|
130
138
|
props: {
|
|
@@ -292,6 +300,9 @@ export default {
|
|
|
292
300
|
}, {
|
|
293
301
|
id: 100,
|
|
294
302
|
iconClass: 'tentativeplan'
|
|
303
|
+
}, {
|
|
304
|
+
id: 24,
|
|
305
|
+
iconClass: 'tentativeplan'
|
|
295
306
|
}],
|
|
296
307
|
phaseRings: [],
|
|
297
308
|
curFaultList: [],
|
|
@@ -620,6 +631,11 @@ export default {
|
|
|
620
631
|
this.isClosePhase = true
|
|
621
632
|
this.phaseRings = ringDataModel.initRingPhaseData()
|
|
622
633
|
this.specialPage = 'tentativeplan'
|
|
634
|
+
} else if (id === 24) {
|
|
635
|
+
this.toPage = 3
|
|
636
|
+
this.isClosePhase = true
|
|
637
|
+
this.phaseRings = ringDataModel.initRingPhaseData()
|
|
638
|
+
this.specialPage = 'prioritycontrol'
|
|
623
639
|
} else {
|
|
624
640
|
this.isClosePhase = false
|
|
625
641
|
this.specialPage = ''
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="priority-control">
|
|
3
|
+
<div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.prioritycontrol')}}</div>
|
|
4
|
+
<el-row>
|
|
5
|
+
<el-col :span="12">
|
|
6
|
+
<el-form
|
|
7
|
+
ref="manual"
|
|
8
|
+
label-position="left"
|
|
9
|
+
:model="manualInfo"
|
|
10
|
+
label-width="100px">
|
|
11
|
+
<el-form-item
|
|
12
|
+
:label="$t('openatccomponents.overview.delay') + ':'"
|
|
13
|
+
prop="intersection">
|
|
14
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.delay" size="mini"></el-input-number>
|
|
15
|
+
<!-- <el-input v-model="manualInfo.tempDelay" size="mini" :placeholder="$t('openatccomponents.common.input')"></el-input> -->
|
|
16
|
+
</el-form-item>
|
|
17
|
+
<el-form-item
|
|
18
|
+
:label="$t('openatccomponents.overview.priorityType') + ':'"
|
|
19
|
+
prop="count">
|
|
20
|
+
<el-select v-model="manualInfo.type" class="col-inner" size="small" clearable :placeholder="$t('openatccomponents.common.select')">
|
|
21
|
+
<el-option
|
|
22
|
+
v-for="item in typeSelect"
|
|
23
|
+
:key="item.value"
|
|
24
|
+
:label="item.label"
|
|
25
|
+
:value="item.value">
|
|
26
|
+
</el-option>
|
|
27
|
+
</el-select>
|
|
28
|
+
<!-- <el-input v-model="manualInfo.tempDuration" size="mini" :placeholder="$t('openatccomponents.common.input')"></el-input> -->
|
|
29
|
+
</el-form-item>
|
|
30
|
+
</el-form>
|
|
31
|
+
</el-col>
|
|
32
|
+
<el-col :span="12">
|
|
33
|
+
<el-form
|
|
34
|
+
ref="manual"
|
|
35
|
+
label-position="left"
|
|
36
|
+
:model="manualInfo"
|
|
37
|
+
label-width="100px">
|
|
38
|
+
<el-form-item
|
|
39
|
+
:label="$t('openatccomponents.overview.duration') + ':'"
|
|
40
|
+
prop="intersection">
|
|
41
|
+
<el-input-number :placeholder="$t('openatccomponents.common.input')" :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.duration" size="mini"></el-input-number>
|
|
42
|
+
<!-- <el-input v-model="manualInfo.duration" size="mini" :placeholder="$t('openatccomponents.common.input')"></el-input> -->
|
|
43
|
+
</el-form-item>
|
|
44
|
+
<el-form-item
|
|
45
|
+
:label="$t('openatccomponents.overview.priorityPhase') + ':'"
|
|
46
|
+
prop="count">
|
|
47
|
+
<el-select v-model="manualInfo.phase" class="col-inner" size="small" clearable :placeholder="$t('openatccomponents.common.select')">
|
|
48
|
+
<el-option
|
|
49
|
+
v-for="(item, index) in phaseSelect"
|
|
50
|
+
:key="index"
|
|
51
|
+
:label="item.label"
|
|
52
|
+
:value="item.value">
|
|
53
|
+
<div class="single-model">
|
|
54
|
+
<xdrdirselector Width="40px" Height="40px" :showlist="item.item"></xdrdirselector>
|
|
55
|
+
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.label }}</span>
|
|
56
|
+
</div>
|
|
57
|
+
</el-option>
|
|
58
|
+
</el-select>
|
|
59
|
+
<!-- <el-input v-model="manualInfo.tempDuration" size="mini" :placeholder="$t('openatccomponents.common.input')"></el-input> -->
|
|
60
|
+
</el-form-item>
|
|
61
|
+
</el-form>
|
|
62
|
+
</el-col>
|
|
63
|
+
</el-row>
|
|
64
|
+
<el-row>
|
|
65
|
+
<el-col :span="12">
|
|
66
|
+
<el-form
|
|
67
|
+
ref="manual"
|
|
68
|
+
label-position="left"
|
|
69
|
+
:model="manualInfo"
|
|
70
|
+
label-width="100px">
|
|
71
|
+
<el-form-item
|
|
72
|
+
:label="$t('openatccomponents.overview.level') + ':'"
|
|
73
|
+
prop="count">
|
|
74
|
+
<el-select v-model="manualInfo.level" class="col-inner" size="small" clearable :placeholder="$t('openatccomponents.common.select')">
|
|
75
|
+
<el-option
|
|
76
|
+
v-for="item in levelOption"
|
|
77
|
+
:key="item.value"
|
|
78
|
+
:label="$t('openatccomponents.overview.levelOption' + item.value)"
|
|
79
|
+
:value="item.value">
|
|
80
|
+
</el-option>
|
|
81
|
+
</el-select>
|
|
82
|
+
<!-- <el-input v-model="manualInfo.tempDuration" size="mini" :placeholder="$t('openatccomponents.common.input')"></el-input> -->
|
|
83
|
+
</el-form-item>
|
|
84
|
+
</el-form>
|
|
85
|
+
</el-col>
|
|
86
|
+
</el-row>
|
|
87
|
+
<div class="footer">
|
|
88
|
+
<el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
|
|
89
|
+
<el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.implement')}}</el-button>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</template>
|
|
93
|
+
|
|
94
|
+
<script>
|
|
95
|
+
import xdrdirselector from '../../XRDDirSelector/XRDDirSelector'
|
|
96
|
+
import { getTheme } from '../../../../utils/auth'
|
|
97
|
+
import { getDirName } from './utils'
|
|
98
|
+
export default {
|
|
99
|
+
name: 'prioritycontrol',
|
|
100
|
+
components: {
|
|
101
|
+
xdrdirselector
|
|
102
|
+
},
|
|
103
|
+
props: {
|
|
104
|
+
phaseList: {
|
|
105
|
+
type: Array
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
data () {
|
|
109
|
+
return {
|
|
110
|
+
levelOption: [{
|
|
111
|
+
value: 1,
|
|
112
|
+
label: 1
|
|
113
|
+
}, {
|
|
114
|
+
value: 2,
|
|
115
|
+
label: 2
|
|
116
|
+
}, {
|
|
117
|
+
value: 3,
|
|
118
|
+
label: 3
|
|
119
|
+
}, {
|
|
120
|
+
value: 4,
|
|
121
|
+
label: 4
|
|
122
|
+
}, {
|
|
123
|
+
value: 5,
|
|
124
|
+
label: 5
|
|
125
|
+
}],
|
|
126
|
+
typeSelect: [{
|
|
127
|
+
value: 0,
|
|
128
|
+
label: this.$t('openatccomponents.overview.typeOption0')
|
|
129
|
+
}, {
|
|
130
|
+
value: 1,
|
|
131
|
+
label: this.$t('openatccomponents.overview.typeOption1')
|
|
132
|
+
}],
|
|
133
|
+
phaseSelect: [],
|
|
134
|
+
manualInfo: {
|
|
135
|
+
level: 1,
|
|
136
|
+
phase: 1,
|
|
137
|
+
type: 0,
|
|
138
|
+
duration: 300,
|
|
139
|
+
delay: 0
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
created () {
|
|
144
|
+
this.getSelect(this.phaseList)
|
|
145
|
+
},
|
|
146
|
+
methods: {
|
|
147
|
+
getSelect (list) {
|
|
148
|
+
let color = getTheme() === 'light' ? '#1E1E1E' : '#F1F3F4'
|
|
149
|
+
this.phaseSelect = list.map((item, index) => {
|
|
150
|
+
let dirArr = []
|
|
151
|
+
for (let rec of item.direction) {
|
|
152
|
+
let recd = {
|
|
153
|
+
id: rec,
|
|
154
|
+
color: color
|
|
155
|
+
}
|
|
156
|
+
dirArr.push(recd)
|
|
157
|
+
}
|
|
158
|
+
let nameArr = getDirName(dirArr)
|
|
159
|
+
let name = ''
|
|
160
|
+
nameArr = nameArr.map(record => this.$t(record))
|
|
161
|
+
name = nameArr.join(',')
|
|
162
|
+
return {
|
|
163
|
+
label: name,
|
|
164
|
+
item: dirArr,
|
|
165
|
+
value: item.id
|
|
166
|
+
}
|
|
167
|
+
})
|
|
168
|
+
},
|
|
169
|
+
handleClose () {
|
|
170
|
+
this.$emit('closePhaseBack')
|
|
171
|
+
},
|
|
172
|
+
handleManualControl () {
|
|
173
|
+
let submitdata = {
|
|
174
|
+
control: 24,
|
|
175
|
+
delay: this.manualInfo.delay,
|
|
176
|
+
duration: this.manualInfo.duration,
|
|
177
|
+
type: this.manualInfo.type,
|
|
178
|
+
phase: this.manualInfo.phase,
|
|
179
|
+
level: this.manualInfo.level
|
|
180
|
+
}
|
|
181
|
+
console.log(submitdata, 'submitdata')
|
|
182
|
+
this.$emit('closePhaseControl', submitdata)
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
</script>
|
|
187
|
+
|
|
188
|
+
<style>
|
|
189
|
+
|
|
190
|
+
</style>
|