openatc-components 0.0.102 → 0.0.103

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.
Files changed (60) hide show
  1. package/package/kisscomps/components/BoardCard/BoardCard.vue +6 -1
  2. package/package/kisscomps/components/Channelization/Channelization.vue +13 -10
  3. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +18 -12
  4. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +54 -69
  5. package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +1 -4
  6. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +11 -34
  7. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +1 -26
  8. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +18 -37
  9. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +6 -0
  10. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +28 -50
  11. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +29 -53
  12. package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +1 -4
  13. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +147 -130
  14. package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +5 -6
  15. package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +43 -144
  16. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +8 -52
  17. package/package/kisscomps/components/KanBan/kanban.vue +7 -7
  18. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +153 -38
  19. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
  20. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
  21. package/package/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
  22. package/package/kisscomps/components/StageStatus/StageStatus.vue +6 -2
  23. package/package/kisscomps/components/patternList/patternList.vue +5 -0
  24. package/package/kisscomps/index.js +2 -0
  25. package/package/kissui.min.js +1 -1
  26. package/package.json +13 -12
  27. package/src/i18n/language/en.js +32 -7
  28. package/src/i18n/language/zh.js +31 -6
  29. package/src/kisscomps/components/BoardCard/BoardCard.vue +6 -1
  30. package/src/kisscomps/components/Channelization/Channelization.vue +13 -10
  31. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +18 -12
  32. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +54 -69
  33. package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +1 -4
  34. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +11 -34
  35. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +1 -26
  36. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +18 -37
  37. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +6 -0
  38. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +28 -50
  39. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +29 -53
  40. package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +1 -4
  41. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +147 -130
  42. package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +5 -6
  43. package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +43 -144
  44. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +191 -0
  45. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +331 -0
  46. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +8 -52
  47. package/src/kisscomps/components/KanBan/kanban.vue +7 -7
  48. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +153 -38
  49. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
  50. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
  51. package/src/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
  52. package/src/kisscomps/components/StageStatus/StageStatus.vue +6 -2
  53. package/src/kisscomps/components/patternList/patternList.vue +5 -0
  54. package/src/kisscomps/index.js +2 -0
  55. package/src/router/index.js +2 -2
  56. package/src/views/intersection.vue +5 -3
  57. package/static/styles/channelizatioon.scss +2 -40
  58. package/static/styles/schemeconfig.scss +52 -0
  59. package/package/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +0 -113
  60. package/src/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +0 -113
@@ -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}
@@ -57,7 +57,9 @@ export default {
57
57
  if (this.contrloType === 'stage') {
58
58
  this.getStageLine()
59
59
  } else {
60
- this.getPhaseId(this.controlData)
60
+ if (this.controlData) {
61
+ this.getPhaseId(this.controlData)
62
+ }
61
63
  }
62
64
  },
63
65
  // 深度观察监听
@@ -66,7 +68,9 @@ export default {
66
68
  patternStatusList: {
67
69
  handler: function (val, oldVal) {
68
70
  // this.handleStages() // 计算屏障高度
69
- this.getPhaseId(this.patternStatusList)
71
+ if (this.patternStatusList) {
72
+ this.getPhaseId(this.patternStatusList)
73
+ }
70
74
  },
71
75
  // 深度观察监听
72
76
  deep: true
@@ -10,6 +10,7 @@
10
10
  :patternList="patternList"
11
11
  :localPatternList="localPatternList"
12
12
  :phaseList="phaseList"
13
+ :showBarrier="showBarrier"
13
14
  :agentId="agentId"
14
15
  :controlData="controlData"
15
16
  :syncTime="syncTime"
@@ -507,6 +508,10 @@ export default {
507
508
  phaseList: {
508
509
  type: Array
509
510
  },
511
+ showBarrier: {
512
+ type: Boolean,
513
+ default: false
514
+ },
510
515
  controlData: {
511
516
  type: Object
512
517
  },
@@ -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