openatc-components 0.0.94 → 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/Channelization/Channelization.vue +546 -0
- package/package/kisscomps/components/Channelization/index.js +2 -0
- package/package/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +494 -0
- package/package/kisscomps/components/ChannelizationWithInterface/index.js +2 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +249 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +176 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +48 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +182 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +222 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +191 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +78 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +433 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +195 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +71 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +940 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +109 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +563 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +157 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +191 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +331 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +157 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +43 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -0
- package/package/kisscomps/components/DrawChannelization/index.js +2 -0
- package/package/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -0
- package/package/kisscomps/components/KanBan/kanban.vue +1 -1
- package/package/kisscomps/components/MessageBox/index.vue +96 -0
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
- package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +2 -2
- 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 +13 -1
- package/package/kissui.min.js +1 -1
- package/package.json +13 -10
- package/src/api/cross.js +33 -0
- package/src/i18n/language/en.js +106 -3
- package/src/i18n/language/zh.js +106 -3
- package/src/icons/svg/custom-BRTlane.svg +40 -0
- package/src/icons/svg/custom-bicyclelane.svg +7 -0
- package/src/icons/svg/custom-buslane.svg +40 -0
- package/src/icons/svg/custom-detector.svg +12 -0
- package/src/icons/svg/custom-east-bottom.svg +32 -0
- package/src/icons/svg/custom-east-top.svg +32 -0
- package/src/icons/svg/custom-ewped.svg +35 -0
- package/src/icons/svg/custom-motorway.svg +7 -0
- package/src/icons/svg/custom-nonmotorizedlane.svg +40 -0
- package/src/icons/svg/custom-north-left.svg +32 -0
- package/src/icons/svg/custom-north-right.svg +32 -0
- package/src/icons/svg/custom-pedcrossing.svg +7 -0
- package/src/icons/svg/custom-peddetector.svg +17 -0
- package/src/icons/svg/custom-pedeastward.svg +9 -0
- package/src/icons/svg/custom-pedestrian.svg +7 -0
- package/src/icons/svg/custom-pednorthward.svg +9 -0
- package/src/icons/svg/custom-pedsouthward.svg +9 -0
- package/src/icons/svg/custom-pedwestward.svg +9 -0
- package/src/icons/svg/custom-secondcrossing.svg +7 -0
- package/src/icons/svg/custom-sectionpedestrian.svg +7 -0
- package/src/icons/svg/custom-snped.svg +35 -0
- package/src/icons/svg/custom-south-left.svg +32 -0
- package/src/icons/svg/custom-south-right.svg +32 -0
- package/src/icons/svg/custom-straightahead.svg +7 -0
- package/src/icons/svg/custom-tramlane.svg +40 -0
- package/src/icons/svg/custom-turnaround.svg +7 -0
- package/src/icons/svg/custom-turnleft.svg +7 -0
- package/src/icons/svg/custom-turnright.svg +7 -0
- package/src/icons/svg/custom-vehiclebranch.svg +40 -0
- package/src/icons/svg/custom-vehiclemainroad.svg +41 -0
- package/src/icons/svg/custom-west-bottom.svg +32 -0
- package/src/icons/svg/custom-west-top.svg +32 -0
- package/src/icons/svg/custom-xlped.svg +14 -0
- package/src/icons/svg/custom-xpedestrian.svg +7 -0
- package/src/icons/svg/custom-xrped.svg +14 -0
- package/src/kisscomps/components/Channelization/Channelization.vue +546 -0
- package/src/kisscomps/components/Channelization/index.js +2 -0
- package/src/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +494 -0
- package/src/kisscomps/components/ChannelizationWithInterface/index.js +2 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +249 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +176 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +48 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +182 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +222 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +191 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +78 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +433 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +195 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +71 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +940 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +109 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +563 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +157 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +191 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +331 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +157 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +43 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -0
- package/src/kisscomps/components/DrawChannelization/index.js +2 -0
- package/src/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -0
- package/src/kisscomps/components/KanBan/kanban.vue +1 -1
- package/src/kisscomps/components/MessageBox/index.vue +96 -0
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
- package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +2 -2
- 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 +13 -1
- package/src/main.js +3 -0
- package/src/router/index.js +7 -0
- package/src/store/index.js +2 -2
- package/src/store/modules/globalParam.js +56 -16
- package/src/views/customchannelization.vue +49 -0
- package/src/views/intersection.vue +17 -9
- package/static/apiconfig.json +15 -0
- package/static/styles/channelizatioon.scss +365 -0
- package/static/styles/common.scss +1 -0
- package/static/styles/schemeconfig.scss +52 -0
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
<template>
|
|
13
|
+
<div>
|
|
14
|
+
<el-dialog
|
|
15
|
+
center
|
|
16
|
+
width="424px"
|
|
17
|
+
:visible.sync="boxVisible"
|
|
18
|
+
:title="modalTitle"
|
|
19
|
+
:close-on-click-modal="false"
|
|
20
|
+
custom-class="MessageBox"
|
|
21
|
+
@close="oncancle"
|
|
22
|
+
append-to-body>
|
|
23
|
+
<div class="text">{{text}}</div>
|
|
24
|
+
<div slot="footer" class="boxFooter">
|
|
25
|
+
<el-button class="btn canclebtn" @click="oncancle">{{$t('openatccomponents.button.Cancel')}}</el-button>
|
|
26
|
+
<el-button class="btn okbtn" type="primary" @click="onok">{{$t('openatccomponents.button.OK')}}</el-button>
|
|
27
|
+
</div>
|
|
28
|
+
</el-dialog>
|
|
29
|
+
</div>
|
|
30
|
+
</template>
|
|
31
|
+
<script>
|
|
32
|
+
export default {
|
|
33
|
+
name: 'message-box',
|
|
34
|
+
data () {
|
|
35
|
+
return {
|
|
36
|
+
boxVisible: this.visible,
|
|
37
|
+
modalTitle: this.$t('openatccomponents.common.tipsmodaltitle')
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
watch: {
|
|
41
|
+
visible: function (val) {
|
|
42
|
+
this.boxVisible = val
|
|
43
|
+
},
|
|
44
|
+
title: function (val) {
|
|
45
|
+
this.modalTitle = val
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
props: {
|
|
49
|
+
visible: {
|
|
50
|
+
type: Boolean,
|
|
51
|
+
default: false
|
|
52
|
+
},
|
|
53
|
+
title: {
|
|
54
|
+
type: String,
|
|
55
|
+
default: '提示'
|
|
56
|
+
},
|
|
57
|
+
text: {
|
|
58
|
+
type: String,
|
|
59
|
+
default: ''
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
methods: {
|
|
63
|
+
onok () {
|
|
64
|
+
this.$emit('ok')
|
|
65
|
+
},
|
|
66
|
+
oncancle () {
|
|
67
|
+
this.$emit('cancle')
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
mounted () {
|
|
71
|
+
},
|
|
72
|
+
beforeUpdate () {
|
|
73
|
+
this.modalTitle = this.$t('openatccomponents.common.tipsmodaltitle')
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
</script>
|
|
77
|
+
<style>
|
|
78
|
+
.MessageBox .el-dialog__body {
|
|
79
|
+
text-align: center;
|
|
80
|
+
}
|
|
81
|
+
.MessageBox .el-dialog__title {
|
|
82
|
+
font-size: 16px;
|
|
83
|
+
}
|
|
84
|
+
.MessageBox .text {
|
|
85
|
+
font-size: 14px;
|
|
86
|
+
}
|
|
87
|
+
.MessageBox .boxFooter .btn {
|
|
88
|
+
font-size: 14px;
|
|
89
|
+
width: 64px;
|
|
90
|
+
height: 34px;
|
|
91
|
+
padding: 2px 10px;
|
|
92
|
+
}
|
|
93
|
+
.MessageBox .el-dialog__footer {
|
|
94
|
+
padding: 10px 20px 20px;
|
|
95
|
+
}
|
|
96
|
+
</style>
|
|
@@ -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 = ''
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
<el-form-item
|
|
23
23
|
:label="$t('openatccomponents.overview.delay') + ':'"
|
|
24
24
|
prop="intersection">
|
|
25
|
-
|
|
25
|
+
<el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDelay" size="mini"></el-input-number>
|
|
26
26
|
</el-form-item>
|
|
27
27
|
<el-form-item
|
|
28
28
|
:label="$t('openatccomponents.overview.duration') + ':'"
|
|
29
29
|
prop="count">
|
|
30
|
-
|
|
30
|
+
<el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDuration" size="mini"></el-input-number>
|
|
31
31
|
</el-form-item>
|
|
32
32
|
</el-form>
|
|
33
33
|
</el-col>
|
|
@@ -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}
|
package/src/kisscomps/index.js
CHANGED
|
@@ -4,6 +4,8 @@ import IntersectionWithInterface from './components/IntersectionWithInterface/in
|
|
|
4
4
|
import IntersectionMap from './components/IntersectionMap/index'
|
|
5
5
|
import SchemeConfig from './components/SchemeConfig/index'
|
|
6
6
|
import lockingPhaselControlModal from './components/SchemeConfig/lockingPhaselControlModal/index'
|
|
7
|
+
import Channelization from './components/Channelization/index'
|
|
8
|
+
import DrawChannelization from './components/DrawChannelization/index'
|
|
7
9
|
import FaultDetailModal from './components/FaultDetailModal/index'
|
|
8
10
|
import CommonKanban from './components/CommonKanban/index'
|
|
9
11
|
import patternList from './components/patternList/index'
|
|
@@ -19,7 +21,9 @@ import StageBord from './components/StageBord/index'
|
|
|
19
21
|
import ExpendConfig from './components/ExpendConfig/index'
|
|
20
22
|
import PatternWalkSvg from './components/PatternWalkSvg/index'
|
|
21
23
|
import tentativeplancontrolmodal from './components/SchemeConfig/tentativeplancontrolmodal/index'
|
|
24
|
+
import priorityControl from './components/SchemeConfig/priorityControl/index'
|
|
22
25
|
import { setToken, setHost } from '../utils/auth.js'
|
|
26
|
+
import componentsGlobalParam from '../store/modules/globalParam'
|
|
23
27
|
|
|
24
28
|
import en from '../i18n/language/en'
|
|
25
29
|
import zh from '../i18n/language/zh'
|
|
@@ -32,6 +36,8 @@ const components = {
|
|
|
32
36
|
IntersectionMap,
|
|
33
37
|
SchemeConfig,
|
|
34
38
|
lockingPhaselControlModal,
|
|
39
|
+
Channelization,
|
|
40
|
+
DrawChannelization,
|
|
35
41
|
FaultDetailModal,
|
|
36
42
|
PatternStatus,
|
|
37
43
|
BoardCard,
|
|
@@ -46,6 +52,7 @@ const components = {
|
|
|
46
52
|
StageBord,
|
|
47
53
|
ExpendConfig,
|
|
48
54
|
PatternWalkSvg,
|
|
55
|
+
priorityControl,
|
|
49
56
|
tentativeplancontrolmodal
|
|
50
57
|
}
|
|
51
58
|
|
|
@@ -59,6 +66,10 @@ const func = {
|
|
|
59
66
|
setToken
|
|
60
67
|
}
|
|
61
68
|
|
|
69
|
+
const Store = {
|
|
70
|
+
componentsGlobalParam
|
|
71
|
+
}
|
|
72
|
+
|
|
62
73
|
const requireAll = requireContext => requireContext.keys().map(requireContext)
|
|
63
74
|
const install = function (Vue) {
|
|
64
75
|
if (install.installed) return
|
|
@@ -86,7 +97,8 @@ const API = {
|
|
|
86
97
|
install,
|
|
87
98
|
...components,
|
|
88
99
|
language,
|
|
89
|
-
func
|
|
100
|
+
func,
|
|
101
|
+
Store
|
|
90
102
|
}
|
|
91
103
|
|
|
92
104
|
export default API
|
package/src/main.js
CHANGED
|
@@ -12,6 +12,7 @@ import i18n from './i18n'
|
|
|
12
12
|
import 'element-ui/lib/theme-chalk/index.css'
|
|
13
13
|
import './icons' // icon
|
|
14
14
|
import './icons/iconfont.css'
|
|
15
|
+
import drr from '@minogin/vue-drag-resize-rotate'
|
|
15
16
|
|
|
16
17
|
window.dev = process.env.NODE_ENV
|
|
17
18
|
|
|
@@ -27,6 +28,8 @@ Vue.use(ElementUI, {
|
|
|
27
28
|
locale
|
|
28
29
|
})
|
|
29
30
|
|
|
31
|
+
Vue.component('drr', drr)
|
|
32
|
+
|
|
30
33
|
/* 使用动画库 */
|
|
31
34
|
Vue.use(animate)
|
|
32
35
|
|
package/src/router/index.js
CHANGED
|
@@ -31,6 +31,13 @@ export default new Router({
|
|
|
31
31
|
component: (resolve) => {
|
|
32
32
|
require(['@/views/overView'], resolve)
|
|
33
33
|
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
path: '/quhua',
|
|
37
|
+
name: 'config',
|
|
38
|
+
component: (resolve) => {
|
|
39
|
+
require(['@/views/customchannelization'], resolve)
|
|
40
|
+
}
|
|
34
41
|
}
|
|
35
42
|
]
|
|
36
43
|
})
|
package/src/store/index.js
CHANGED
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
import Vue from 'vue'
|
|
13
13
|
import Vuex from 'vuex'
|
|
14
14
|
import getters from './getters'
|
|
15
|
-
|
|
15
|
+
import globalParam from './modules/globalParam'
|
|
16
16
|
|
|
17
17
|
Vue.use(Vuex)
|
|
18
18
|
|
|
19
19
|
const store = new Vuex.Store({
|
|
20
20
|
modules: {
|
|
21
|
-
|
|
21
|
+
globalParam
|
|
22
22
|
},
|
|
23
23
|
getters
|
|
24
24
|
})
|