openatc-components 0.0.96-hotfix → 0.0.97
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/DrawChannelization/drawsvg/index.draw.vue +1 -2
- package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +17 -119
- 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/index.js +2 -0
- package/package/kissui.min.js +1 -1
- package/package.json +13 -12
- package/src/i18n/language/en.js +31 -3
- package/src/i18n/language/zh.js +30 -2
- package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +1 -2
- package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +17 -119
- 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/index.js +2 -0
- package/src/router/index.js +2 -2
- package/static/styles/channelizatioon.scss +3 -12
- package/static/styles/schemeconfig.scss +52 -0
|
@@ -541,8 +541,7 @@ export default {
|
|
|
541
541
|
detectortype: 1, // 检测器类型: 1 车辆检测器 2 行人检测器
|
|
542
542
|
detectorid: undefined,
|
|
543
543
|
occupancythreshold: 80,
|
|
544
|
-
|
|
545
|
-
maxflowsaturationthreshold: 70,
|
|
544
|
+
flowsaturationthreshold: 20,
|
|
546
545
|
...defaultDetectorParam
|
|
547
546
|
}
|
|
548
547
|
this.curChooseIconIndex = detectoritem.index
|
|
@@ -160,45 +160,18 @@
|
|
|
160
160
|
<el-form-item
|
|
161
161
|
:label="$t('openatccomponents.channelizationmap.occupancythreshold') + ':'"
|
|
162
162
|
prop="intersection">
|
|
163
|
-
|
|
163
|
+
<el-input-number :min="0" :max="100" :precision="0" :step="1" :controls="false"
|
|
164
164
|
:value="occupancythreshold" size="mini"
|
|
165
165
|
@change="handleChangeOccuthreshold" />
|
|
166
|
-
<span class="detector-threshold-formtext">%</span>
|
|
167
|
-
<el-select :value="occupancythreshold" @change="handleChangeOccuthreshold">
|
|
168
|
-
<el-option
|
|
169
|
-
v-for="item in occupResholdOptions"
|
|
170
|
-
:key="item.value"
|
|
171
|
-
:label="item.label"
|
|
172
|
-
:value="item.value">
|
|
173
|
-
</el-option>
|
|
174
|
-
</el-select>
|
|
166
|
+
<span class="detector-threshold-formtext">%</span>
|
|
175
167
|
</el-form-item>
|
|
176
168
|
<el-form-item
|
|
177
169
|
:label="$t('openatccomponents.channelizationmap.saturationthreshold') + ':'"
|
|
178
170
|
prop="count">
|
|
179
|
-
|
|
171
|
+
<el-input-number :min="0" :max="100" :precision="0" :step="1" :controls="false"
|
|
180
172
|
:value="flowsaturationthreshold" size="mini"
|
|
181
173
|
@change="handleChangeFlowthreshold" />
|
|
182
|
-
<span class="detector-threshold-formtext">%</span>
|
|
183
|
-
<el-select :value="minflowsaturationthreshold" @change="handleChangeMinFlowthreshold">
|
|
184
|
-
<el-option
|
|
185
|
-
v-for="item in minflowResholdOptions"
|
|
186
|
-
:key="item.value"
|
|
187
|
-
:label="item.label"
|
|
188
|
-
:value="item.value"
|
|
189
|
-
:disabled="item.disabled">
|
|
190
|
-
</el-option>
|
|
191
|
-
</el-select>
|
|
192
|
-
<span class="flow-separator">——</span>
|
|
193
|
-
<el-select :value="maxflowsaturationthreshold" @change="handleChangeMaxFlowthreshold">
|
|
194
|
-
<el-option
|
|
195
|
-
v-for="item in maxflowResholdOptions"
|
|
196
|
-
:key="item.value"
|
|
197
|
-
:label="item.label"
|
|
198
|
-
:value="item.value"
|
|
199
|
-
:disabled="item.disabled">
|
|
200
|
-
</el-option>
|
|
201
|
-
</el-select>
|
|
174
|
+
<span class="detector-threshold-formtext">%</span>
|
|
202
175
|
</el-form-item>
|
|
203
176
|
</el-form>
|
|
204
177
|
</div>
|
|
@@ -400,12 +373,8 @@ export default {
|
|
|
400
373
|
iconclass: 'custom-peddetector',
|
|
401
374
|
name: this.$t('openatccomponents.channelizationmap.pedestriandetector')
|
|
402
375
|
}],
|
|
403
|
-
occupResholdOptions: [],
|
|
404
|
-
minflowResholdOptions: [],
|
|
405
|
-
maxflowResholdOptions: [],
|
|
406
376
|
occupancythreshold: 80,
|
|
407
|
-
|
|
408
|
-
maxflowsaturationthreshold: 70
|
|
377
|
+
flowsaturationthreshold: 20
|
|
409
378
|
}
|
|
410
379
|
},
|
|
411
380
|
watch: {
|
|
@@ -425,11 +394,8 @@ export default {
|
|
|
425
394
|
if (data.occupancythreshold !== undefined) {
|
|
426
395
|
this.occupancythreshold = data.occupancythreshold
|
|
427
396
|
}
|
|
428
|
-
if (data.
|
|
429
|
-
this.
|
|
430
|
-
}
|
|
431
|
-
if (data.maxflowsaturationthreshold !== undefined) {
|
|
432
|
-
this.maxflowsaturationthreshold = data.maxflowsaturationthreshold
|
|
397
|
+
if (data.flowsaturationthreshold !== undefined) {
|
|
398
|
+
this.flowsaturationthreshold = data.flowsaturationthreshold
|
|
433
399
|
}
|
|
434
400
|
if (data.flip !== undefined) {
|
|
435
401
|
this.flip = data.flip
|
|
@@ -481,9 +447,8 @@ export default {
|
|
|
481
447
|
if (value === 2) {
|
|
482
448
|
// 行人检测器没有阈值设置
|
|
483
449
|
this.iconObj.occupancythreshold = undefined
|
|
484
|
-
this.iconObj.
|
|
485
|
-
this.iconObj
|
|
486
|
-
this.$emit('changeIconDataByType', this.iconObj, ['occupancythreshold', 'minflowsaturationthreshold', 'maxflowsaturationthreshold'])
|
|
450
|
+
this.iconObj.flowsaturationthreshold = undefined
|
|
451
|
+
this.$emit('changeIconDataByType', this.iconObj, ['occupancythreshold', 'flowsaturationthreshold'])
|
|
487
452
|
}
|
|
488
453
|
},
|
|
489
454
|
selectPedPos (value) {
|
|
@@ -541,53 +506,15 @@ export default {
|
|
|
541
506
|
this.iconObj.occupancythreshold = occupancythreshold
|
|
542
507
|
this.$emit('changeIconDataByType', this.iconObj, ['occupancythreshold'])
|
|
543
508
|
},
|
|
544
|
-
|
|
545
|
-
if (
|
|
546
|
-
this.$message.error(this.$t('openatccomponents.channelizationmap.checkthreshold'))
|
|
547
|
-
this.minflowsaturationthreshold = 30
|
|
548
|
-
return
|
|
549
|
-
}
|
|
550
|
-
this.minflowsaturationthreshold = minflowsaturationthreshold
|
|
551
|
-
this.iconObj.minflowsaturationthreshold = minflowsaturationthreshold
|
|
552
|
-
this.$emit('changeIconDataByType', this.iconObj, ['minflowsaturationthreshold'])
|
|
553
|
-
this.handleDisabledMaxflowOption()
|
|
554
|
-
},
|
|
555
|
-
handleDisabledMinflowOption () {
|
|
556
|
-
// 此处需要排他,恢复上次置灰到默认值
|
|
557
|
-
this.minflowResholdOptions = this.minflowResholdOptions.map(option => ({
|
|
558
|
-
label: option.label,
|
|
559
|
-
value: option.value
|
|
560
|
-
}))
|
|
561
|
-
// 控制流量饱和度最小阈值的禁用范围
|
|
562
|
-
for (let i = 0; i < this.minflowResholdOptions.length; i++) {
|
|
563
|
-
if (this.minflowResholdOptions[i].value >= this.maxflowsaturationthreshold) {
|
|
564
|
-
this.minflowResholdOptions[i].disabled = true
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
},
|
|
568
|
-
handleChangeMaxFlowthreshold (maxflowsaturationthreshold) {
|
|
569
|
-
if (maxflowsaturationthreshold === undefined) {
|
|
509
|
+
handleChangeFlowthreshold (flowsaturationthreshold) {
|
|
510
|
+
if (flowsaturationthreshold === undefined) {
|
|
570
511
|
this.$message.error(this.$t('openatccomponents.channelizationmap.checkthreshold'))
|
|
571
|
-
this.
|
|
512
|
+
this.flowsaturationthreshold = 20
|
|
572
513
|
return
|
|
573
514
|
}
|
|
574
|
-
this.
|
|
575
|
-
this.iconObj.
|
|
576
|
-
this.$emit('changeIconDataByType', this.iconObj, ['
|
|
577
|
-
this.handleDisabledMinflowOption()
|
|
578
|
-
},
|
|
579
|
-
handleDisabledMaxflowOption () {
|
|
580
|
-
// 此处需要排他,恢复上次置灰到默认值
|
|
581
|
-
this.maxflowResholdOptions = this.maxflowResholdOptions.map(option => ({
|
|
582
|
-
label: option.label,
|
|
583
|
-
value: option.value
|
|
584
|
-
}))
|
|
585
|
-
// 控制流量饱和度最大阈值的禁用范围
|
|
586
|
-
for (let i = 0; i < this.maxflowResholdOptions.length; i++) {
|
|
587
|
-
if (this.maxflowResholdOptions[i].value <= this.minflowsaturationthreshold) {
|
|
588
|
-
this.maxflowResholdOptions[i].disabled = true
|
|
589
|
-
}
|
|
590
|
-
}
|
|
515
|
+
this.flowsaturationthreshold = flowsaturationthreshold
|
|
516
|
+
this.iconObj.flowsaturationthreshold = flowsaturationthreshold
|
|
517
|
+
this.$emit('changeIconDataByType', this.iconObj, ['flowsaturationthreshold'])
|
|
591
518
|
},
|
|
592
519
|
getCurPedPosList (iconpedtypeid) {
|
|
593
520
|
// 方位根据行人类型显示
|
|
@@ -605,34 +532,8 @@ export default {
|
|
|
605
532
|
handleChangeFilp (value) {
|
|
606
533
|
this.iconObj.flip = value
|
|
607
534
|
this.$emit('changeIconDataByType', this.iconObj, ['flip'])
|
|
608
|
-
},
|
|
609
|
-
createResholdSelectOptions () {
|
|
610
|
-
for (let i = 5; i < 100; i = i + 5) {
|
|
611
|
-
let option = {
|
|
612
|
-
label: i + '%',
|
|
613
|
-
value: i
|
|
614
|
-
}
|
|
615
|
-
this.occupResholdOptions.push(option)
|
|
616
|
-
if (i <= this.minflowsaturationthreshold) {
|
|
617
|
-
option.disabled = true
|
|
618
|
-
}
|
|
619
|
-
this.maxflowResholdOptions.push(option)
|
|
620
|
-
}
|
|
621
|
-
for (let i = 5; i < 100; i = i + 5) {
|
|
622
|
-
let option = {
|
|
623
|
-
label: i + '%',
|
|
624
|
-
value: i
|
|
625
|
-
}
|
|
626
|
-
if (i >= this.maxflowsaturationthreshold) {
|
|
627
|
-
option.disabled = true
|
|
628
|
-
}
|
|
629
|
-
this.minflowResholdOptions.push(option)
|
|
630
|
-
}
|
|
631
535
|
}
|
|
632
536
|
},
|
|
633
|
-
created () {
|
|
634
|
-
this.createResholdSelectOptions()
|
|
635
|
-
},
|
|
636
537
|
mounted () {
|
|
637
538
|
if (JSON.stringify(this.Data) === '{}') return
|
|
638
539
|
this.iconObj = JSON.parse(JSON.stringify(this.Data))
|
|
@@ -648,11 +549,8 @@ export default {
|
|
|
648
549
|
if (this.Data.occupancythreshold !== undefined) {
|
|
649
550
|
this.occupancythreshold = this.Data.occupancythreshold
|
|
650
551
|
}
|
|
651
|
-
if (this.Data.
|
|
652
|
-
this.
|
|
653
|
-
}
|
|
654
|
-
if (this.Data.maxflowsaturationthreshold !== undefined) {
|
|
655
|
-
this.maxflowsaturationthreshold = this.Data.maxflowsaturationthreshold
|
|
552
|
+
if (this.Data.flowsaturationthreshold !== undefined) {
|
|
553
|
+
this.flowsaturationthreshold = this.Data.flowsaturationthreshold
|
|
656
554
|
}
|
|
657
555
|
if (this.Data.flip !== undefined) {
|
|
658
556
|
this.flip = this.Data.flip
|
|
@@ -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>
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020 kedacom
|
|
3
|
+
* OpenATC is licensed under Mulan PSL v2.
|
|
4
|
+
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
5
|
+
* You may obtain a copy of Mulan PSL v2 at:
|
|
6
|
+
* http://license.coscl.org.cn/MulanPSL2
|
|
7
|
+
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
8
|
+
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
9
|
+
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
10
|
+
* See the Mulan PSL v2 for more details.
|
|
11
|
+
**/
|
|
12
|
+
import Edgebase from '@openatc/edgebase-front'
|
|
13
|
+
let images = [{
|
|
14
|
+
id: 1,
|
|
15
|
+
// name: 'East-Straight',
|
|
16
|
+
name: 'openatccomponents.overview.es',
|
|
17
|
+
// img: require('./images/East-Straight.svg'),
|
|
18
|
+
class: 'iconfont icon-icon-test2'
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: 2,
|
|
22
|
+
// name: 'East-Left',
|
|
23
|
+
name: 'openatccomponents.overview.el',
|
|
24
|
+
// img: require('./images/East-Left.svg'),
|
|
25
|
+
class: 'iconfont icon-icon-test4'
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 3,
|
|
29
|
+
// name: 'East-Right',
|
|
30
|
+
name: 'openatccomponents.overview.er',
|
|
31
|
+
// img: require('./images/East-Right.svg'),
|
|
32
|
+
class: 'iconfont icon-icon-test3'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 4,
|
|
36
|
+
// name: 'East-Back',
|
|
37
|
+
name: 'openatccomponents.overview.eb',
|
|
38
|
+
// img: require('./images/East-Back.svg'),
|
|
39
|
+
class: 'iconfont icon-icon-test6'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 5,
|
|
43
|
+
// name: 'West-Straight',
|
|
44
|
+
name: 'openatccomponents.overview.ws',
|
|
45
|
+
// img: require('./images/West-Straight.svg'),
|
|
46
|
+
class: 'iconfont icon-icon-test5'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 6,
|
|
50
|
+
// name: 'West-Left',
|
|
51
|
+
name: 'openatccomponents.overview.wl',
|
|
52
|
+
// img: require('./images/West-Left.svg'),
|
|
53
|
+
class: 'iconfont icon-icon-test7'
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 7,
|
|
57
|
+
// name: 'West-Right',
|
|
58
|
+
name: 'openatccomponents.overview.wr',
|
|
59
|
+
// img: require('./images/West-Right.svg'),
|
|
60
|
+
class: 'iconfont icon-icon-test9'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 8,
|
|
64
|
+
// name: 'West-Back',
|
|
65
|
+
name: 'openatccomponents.overview.wb',
|
|
66
|
+
// img: require('./images/West-Back.svg'),
|
|
67
|
+
class: 'iconfont icon-icon-test8'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 9,
|
|
71
|
+
// name: 'North-Straight',
|
|
72
|
+
name: 'openatccomponents.overview.ns',
|
|
73
|
+
// img: require('./images/North-Straight.svg'),
|
|
74
|
+
class: 'iconfont icon-icon-test10'
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 10,
|
|
78
|
+
// name: 'North-Left',
|
|
79
|
+
name: 'openatccomponents.overview.nl',
|
|
80
|
+
// img: require('./images/North-Left.svg'),
|
|
81
|
+
class: 'iconfont icon-icon-test12'
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: 11,
|
|
85
|
+
// name: 'North-Right',
|
|
86
|
+
name: 'openatccomponents.overview.nr',
|
|
87
|
+
// img: require('./images/North-Right.svg'),
|
|
88
|
+
class: 'iconfont icon-icon-test13'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 12,
|
|
92
|
+
// name: 'North-Back',
|
|
93
|
+
name: 'openatccomponents.overview.nb',
|
|
94
|
+
// img: require('./images/North-Back.svg'),
|
|
95
|
+
class: 'iconfont icon-icon-test11'
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 13,
|
|
99
|
+
// name: 'South-Straight',
|
|
100
|
+
name: 'openatccomponents.overview.ss',
|
|
101
|
+
// img: require('./images/South-Straight.svg'),
|
|
102
|
+
class: 'iconfont icon-icon-test15'
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: 14,
|
|
106
|
+
// name: 'South-Left',
|
|
107
|
+
name: 'openatccomponents.overview.sl',
|
|
108
|
+
// img: require('./images/South-Left.svg'),
|
|
109
|
+
class: 'iconfont icon-icon-test14'
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: 15,
|
|
113
|
+
// name: 'South-Right',
|
|
114
|
+
name: 'openatccomponents.overview.sr',
|
|
115
|
+
// img: require('./images/South-Right.svg'),
|
|
116
|
+
class: 'iconfont icon-icon-test'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 16,
|
|
120
|
+
// name: 'South-Back',
|
|
121
|
+
name: 'openatccomponents.overview.sb',
|
|
122
|
+
// img: require('./images/South-Back.svg'),
|
|
123
|
+
class: 'iconfont icon-icon-test1'
|
|
124
|
+
}]
|
|
125
|
+
|
|
126
|
+
const getImages = () => {
|
|
127
|
+
if (Edgebase.Store.getters.roadDirection === 'left') {
|
|
128
|
+
// 左行下,掉头图标替换
|
|
129
|
+
images.forEach((img) => {
|
|
130
|
+
if (img.id === 4) {
|
|
131
|
+
img.class = 'iconfont icon-dongtiaotou-yinni'
|
|
132
|
+
}
|
|
133
|
+
if (img.id === 8) {
|
|
134
|
+
img.class = 'iconfont icon-xitiaotou-yinni'
|
|
135
|
+
}
|
|
136
|
+
if (img.id === 12) {
|
|
137
|
+
img.class = 'iconfont icon-beitiaotou-yinni'
|
|
138
|
+
}
|
|
139
|
+
if (img.id === 16) {
|
|
140
|
+
img.class = 'iconfont icon-nantiaotou-yinni'
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
}
|
|
144
|
+
return images
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const getDirName = (arr) => {
|
|
148
|
+
let res = ''
|
|
149
|
+
let nameArr = []
|
|
150
|
+
for (let item of arr) {
|
|
151
|
+
let id = item.id
|
|
152
|
+
for (let img of images) {
|
|
153
|
+
if (id === img.id) {
|
|
154
|
+
let name = img.name
|
|
155
|
+
nameArr.push(name)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
res = nameArr
|
|
160
|
+
return res
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export {getImages, getDirName}
|
|
@@ -21,6 +21,7 @@ import StageBord from './components/StageBord/index'
|
|
|
21
21
|
import ExpendConfig from './components/ExpendConfig/index'
|
|
22
22
|
import PatternWalkSvg from './components/PatternWalkSvg/index'
|
|
23
23
|
import tentativeplancontrolmodal from './components/SchemeConfig/tentativeplancontrolmodal/index'
|
|
24
|
+
import priorityControl from './components/SchemeConfig/priorityControl/index'
|
|
24
25
|
import { setToken, setHost } from '../utils/auth.js'
|
|
25
26
|
import componentsGlobalParam from '../store/modules/globalParam'
|
|
26
27
|
|
|
@@ -51,6 +52,7 @@ const components = {
|
|
|
51
52
|
StageBord,
|
|
52
53
|
ExpendConfig,
|
|
53
54
|
PatternWalkSvg,
|
|
55
|
+
priorityControl,
|
|
54
56
|
tentativeplancontrolmodal
|
|
55
57
|
}
|
|
56
58
|
|