openatc-components 0.0.102 → 0.0.105

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 (47) hide show
  1. package/package/kisscomps/components/BoardCard/BoardCard.vue +6 -1
  2. package/package/kisscomps/components/Channelization/Channelization.vue +11 -0
  3. package/package/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +349 -0
  4. package/package/kisscomps/components/ChannelizationFlowStatistic/index.js +2 -0
  5. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +12 -0
  6. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +12 -9
  7. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +22 -3
  8. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +83 -17
  9. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +11 -0
  10. package/package/kisscomps/components/KanBan/kanban.vue +7 -7
  11. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +153 -38
  12. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
  13. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
  14. package/package/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
  15. package/package/kisscomps/components/StageStatus/StageStatus.vue +6 -2
  16. package/package/kisscomps/components/patternList/patternList.vue +5 -0
  17. package/package/kisscomps/index.js +4 -0
  18. package/package/kissui.min.js +1 -1
  19. package/package.json +13 -12
  20. package/src/i18n/language/en.js +31 -2
  21. package/src/i18n/language/zh.js +31 -2
  22. package/src/kisscomps/components/BoardCard/BoardCard.vue +6 -1
  23. package/src/kisscomps/components/Channelization/Channelization.vue +11 -0
  24. package/src/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +349 -0
  25. package/src/kisscomps/components/ChannelizationFlowStatistic/index.js +2 -0
  26. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +12 -0
  27. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +12 -9
  28. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +22 -3
  29. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +83 -17
  30. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +11 -0
  31. package/src/kisscomps/components/KanBan/kanban.vue +7 -7
  32. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +153 -38
  33. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
  34. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
  35. package/src/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
  36. package/src/kisscomps/components/StageStatus/StageStatus.vue +6 -2
  37. package/src/kisscomps/components/patternList/patternList.vue +5 -0
  38. package/src/kisscomps/index.js +4 -0
  39. package/src/router/index.js +7 -8
  40. package/src/views/customchannelization.vue +1 -1
  41. package/src/views/intersection.vue +67 -43
  42. package/src/views/schemeconfig.vue +2 -2
  43. package/static/styles/channelizatioon.scss +9 -0
  44. package/static/styles/commonkanban.scss +27 -27
  45. package/static/styles/schemeconfig.scss +52 -0
  46. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +0 -191
  47. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +0 -331
@@ -84,6 +84,8 @@
84
84
  <el-button type="primary" @click="handleReset()">{{$t('openatccomponents.button.reset')}}</el-button>
85
85
  <!-- <el-button type="primary" @click="cancledraw()">{{$t('openatccomponents.button.Cancel')}}</el-button> -->
86
86
  <el-button type="primary" @click="savedraw()">{{$t('openatccomponents.button.save')}}</el-button>
87
+ <el-button type="primary" @click="importFromFile()">{{$t('openatccomponents.main.import')}}</el-button>
88
+ <el-button type="primary" @click="exportToFile()">{{$t('openatccomponents.main.export')}}</el-button>
87
89
  </div>
88
90
  </div>
89
91
  <div class="custom-edit" ref="customEdit">
@@ -111,7 +113,28 @@
111
113
  />
112
114
  </div>
113
115
  </el-row> -->
114
- </div>
116
+ <!-- 从文件导入弹窗 -->
117
+ <el-dialog
118
+ :title="$t('openatccomponents.main.tip')"
119
+ :visible.sync="dialogVisible"
120
+ width="30%"
121
+ >
122
+ <input
123
+ type="file"
124
+ id="file"
125
+ />
126
+ <span
127
+ slot="footer"
128
+ class="dialog-footer"
129
+ >
130
+ <el-button @click="dialogVisible = false">{{$t('openatccomponents.common.cancel')}}</el-button>
131
+ <el-button
132
+ type="primary"
133
+ @click="readAsText"
134
+ >{{$t('openatccomponents.common.confirm')}}</el-button>
135
+ </span>
136
+ </el-dialog>
137
+ </div>
115
138
  </template>
116
139
 
117
140
  <script>
@@ -127,9 +150,7 @@ import ImportDialog from './importDialog'
127
150
  import Messagebox from '../../MessageBox/index'
128
151
 
129
152
  import { mapState } from 'vuex'
130
- import PhaseDataMgr from '../phaseDataMgr.js'
131
153
 
132
- // import { getIframdevid } from '../../../../utils/auth.js'
133
154
  import { saveChannelizatonChart } from '../../../../api/cross'
134
155
  import { getMessageByCode } from '../../../../utils/responseMessage.js'
135
156
 
@@ -145,8 +166,7 @@ export default {
145
166
  },
146
167
  computed: {
147
168
  ...mapState({
148
- phaseList: state => state.globalParam.tscParam.phaseList,
149
- PhaseDataMgr: state => state.globalParam.PhaseDataMgr
169
+ phaseList: state => state.globalParam.tscParam.phaseList
150
170
  })
151
171
  },
152
172
  props: {
@@ -169,6 +189,7 @@ export default {
169
189
  loadedChannelizatonData: {
170
190
  handler: function (val) {
171
191
  // 平台设备切换时,重载当前路口保存的渠化配置
192
+ this.LoadedChannelizatonData = JSON.parse(JSON.stringify(val))
172
193
  this.load('all')
173
194
  },
174
195
  deep: true
@@ -281,7 +302,9 @@ export default {
281
302
  [3, '右转'],
282
303
  [4, '掉头']
283
304
  ]),
284
- phaseAssociatedMap: new Map() // 关联相位Map: key 是相位ID, value 是车道数据包含direction
305
+ phaseAssociatedMap: new Map(), // 关联相位Map: key 是相位ID, value 是车道数据包含direction
306
+ dialogVisible: false,
307
+ LoadedChannelizatonData: {} // 从接口获取到的渠化参数,用于作为加载数据,从文件导入可修改
285
308
  }
286
309
  },
287
310
  methods: {
@@ -307,10 +330,6 @@ export default {
307
330
  break
308
331
  case 'vehile':
309
332
  this.changeMotorwayItem(iconObj, changefield)
310
- if (changefield.indexOf('phaseid') !== -1) {
311
- // 相位关联成功后,生成最新的相位关联map数据
312
- this.PhaseDataMgr.updateLanePhaseAssociatedMap(this.Motorways)
313
- }
314
333
  break
315
334
  case 'ped':
316
335
  this.changePedItem(iconObj, changefield)
@@ -343,8 +362,6 @@ export default {
343
362
  this.Pedwalk[i].phasetype = undefined
344
363
  }
345
364
  }
346
- // 更新模型内初始相位列表数据
347
- this.PhaseDataMgr.updateLanePhaseAssociatedMap(this.Motorways)
348
365
  },
349
366
 
350
367
  // 添加不同类型的车道图标
@@ -761,8 +778,7 @@ export default {
761
778
  cancleSetting () {
762
779
  this.canclesettingvisible = false
763
780
  },
764
- // 保存
765
- savedraw () {
781
+ handleSaveParams () {
766
782
  let temp = {}
767
783
  console.log(this.customlist)
768
784
  for (const item of this.customlist) {
@@ -775,12 +791,18 @@ export default {
775
791
  if (this.CrossMapData.svgstr !== '' || this.CrossMapData.imgfilesrc !== '') {
776
792
  temp.crossMap = this.CrossMapData
777
793
  }
794
+ return temp
795
+ },
796
+ // 保存
797
+ savedraw () {
798
+ let temp = {}
799
+ temp = this.handleSaveParams()
778
800
  this.saveChannelizatonChart(temp)
779
801
  },
780
802
  // 加载
781
803
  load (type) {
782
804
  this.curChooseIconIndex = -1
783
- let savedTemp = JSON.parse(JSON.stringify(this.loadedChannelizatonData))
805
+ let savedTemp = JSON.parse(JSON.stringify(this.LoadedChannelizatonData))
784
806
  let arr = []
785
807
  for (const [key, value] of Object.entries(savedTemp)) {
786
808
  if (key === 'vehile') {
@@ -801,6 +823,9 @@ export default {
801
823
  }
802
824
  if (key === 'crossMap') {
803
825
  this.CrossMapData = JSON.parse(JSON.stringify(value))
826
+ if (value.icontype === undefined) {
827
+ this.CrossMapData.icontype = 'crossmap'
828
+ }
804
829
  } else {
805
830
  if (value.length > 1) {
806
831
  arr = [...arr, ...value]
@@ -852,6 +877,12 @@ export default {
852
877
  agentid: this.AgentId,
853
878
  data: ChannelizatonData
854
879
  }
880
+ if (ChannelizatonData.crossMap.type === 'vectorgraph') {
881
+ ChannelizatonData.crossMap.imgfilesrc = ''
882
+ }
883
+ if (ChannelizatonData.crossMap.type === 'picture') {
884
+ ChannelizatonData.crossMap.svgstr = ''
885
+ }
855
886
  saveChannelizatonChart(params).then(data => {
856
887
  this.$emit('saveCallback', data)
857
888
  if (!data.data.success) {
@@ -909,11 +940,46 @@ export default {
909
940
  },
910
941
  handleLockCrossMap () {
911
942
  this.isLockedCrossMap = !this.isLockedCrossMap
943
+ },
944
+ importFromFile () {
945
+ this.dialogVisible = true
946
+ },
947
+ readAsText () {
948
+ let _this = this
949
+ var file = document.getElementById('file').files[0]
950
+ var reader = new FileReader()
951
+ reader.async = true
952
+ // 将文件以文本形式读入页面
953
+ reader.readAsText(file)
954
+ reader.onload = function (f) {
955
+ setTimeout(() => {
956
+ _this.LoadedChannelizatonData = {}
957
+ _this.handleReset()
958
+ _this.dialogVisible = false
959
+ _this.LoadedChannelizatonData = JSON.parse(this.result)
960
+ _this.load()
961
+ _this.$alert(_this.$t('openatccomponents.channelizationmap.importfilesuccess'), { type: 'success' })
962
+ }, 50)
963
+ }
964
+ },
965
+ async exportToFile () {
966
+ let tscParam = this.handleSaveParams()
967
+ let content = new Blob([JSON.stringify(tscParam)])
968
+ // 生成url对象
969
+ let urlObject = window.URL || window.webkitURL || window
970
+ let url = urlObject.createObjectURL(content)
971
+ // 生成<a></a>DOM元素
972
+ let el = document.createElement('a')
973
+ // 链接赋值
974
+ el.href = url
975
+ el.download = 'ChanelizationParam.json'
976
+ // 必须点击否则不会下载
977
+ el.click()
978
+ // 移除链接释放资源
979
+ urlObject.revokeObjectURL(url)
912
980
  }
913
981
  },
914
982
  mounted () {
915
- let PhaseData = new PhaseDataMgr(this.phaseList)
916
- this.$store.dispatch('InitPhaseDataMgr', PhaseData)
917
983
  this.handleClickSketchpad()
918
984
  }
919
985
  }
@@ -95,6 +95,10 @@ export default {
95
95
  controlName: {
96
96
  type: String,
97
97
  default: ''
98
+ },
99
+ resizeMap: { // 重新获取容器大小,调整底图大小
100
+ type: Boolean,
101
+ default: false
98
102
  }
99
103
  },
100
104
  watch: {
@@ -106,6 +110,13 @@ export default {
106
110
  },
107
111
  // 深度观察监听
108
112
  deep: true
113
+ },
114
+ resizeMap: {
115
+ handler: function (newval, oldval) {
116
+ if (newval === true && oldval === false) {
117
+ this.getParentSize()
118
+ }
119
+ }
109
120
  }
110
121
  },
111
122
  created () {
@@ -180,7 +180,7 @@ export default {
180
180
  ls.minSplit = temp1 > temp2 ? temp1 : temp2
181
181
  if (ls.mode !== 7 && ls.value < ls.minSplit) {
182
182
  ls.value = ls.minSplit
183
- this.$message.error(this.$t('openatccomponents.pattern.splitCheckMsg'))
183
+ // this.$message.error(this.$t('openatccomponents.pattern.splitCheckMsg'))
184
184
  }
185
185
  }
186
186
  },
@@ -202,12 +202,12 @@ export default {
202
202
  }
203
203
  return maxCycle
204
204
  },
205
- doChange (val) {
206
- // if (val.mode === 7) {
207
- // val.value = 0
208
- // } else {
209
- // val.value = 30
210
- // }
205
+ doChange (e) {
206
+ if (e) {
207
+ let n = this.index
208
+ this.$emit('handleMode', 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
- let res = (this.newCycle - this.syncTime) + '/' + this.newCycle
167
- return res
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
@@ -191,7 +195,7 @@ export default {
191
195
  this.getPedPhasePos()
192
196
  this.getBusPos()
193
197
  this.getStage()
194
- this.handlePatternData()
198
+ // this.handlePatternData()
195
199
  },
196
200
  // 深度观察监听
197
201
  deep: true
@@ -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 === sequ && item.controltype === 99) {
527
+ if (item.id === ring.id && item.controltype === 99) {
423
528
  obj.controltype = item.controltype
424
529
  }
425
- return item.id === sequ
530
+ return item.id === ring.id
426
531
  })[0]
427
- if (currPhase) {
428
- obj.redWidth = (currPhase.redclear / cycle * 100).toFixed(3) + '%'
429
- obj.yellowWidth = (currPhase.yellow / cycle * 100).toFixed(3) + '%'
430
- obj.greenWidth = ((split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen) / cycle * 100).toFixed(3) + '%'
431
- obj.flashgreen = (currPhase.flashgreen / cycle * 100).toFixed(3) + '%'
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
- obj.peddirection = peddirections
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.newList.push(list)
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 = ''