openatc-components 0.2.69 → 0.2.71

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 (36) hide show
  1. package/package/kisscomps/components/BoardCard/BoardCard.vue +0 -4
  2. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +429 -0
  3. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +60 -10
  4. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +17 -94
  5. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +5 -98
  6. package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +11 -7
  7. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +9 -5
  8. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +7 -5
  9. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +41 -10
  10. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +9 -5
  11. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
  12. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +12 -8
  13. package/package/kisscomps/components/Stages/index.vue +2 -1
  14. package/package/kisscomps/components/patternList/patternList.vue +0 -4
  15. package/package/kissui.min.js +1 -1
  16. package/package.json +1 -1
  17. package/src/api/cross.js +4 -0
  18. package/src/api/template.js +4 -0
  19. package/src/i18n/language/zh.js +2 -2
  20. package/src/kisscomps/components/BoardCard/BoardCard.vue +0 -4
  21. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +60 -10
  22. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +17 -94
  23. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +5 -98
  24. package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +11 -7
  25. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +9 -5
  26. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +7 -5
  27. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +41 -10
  28. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +9 -5
  29. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
  30. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +12 -8
  31. package/src/kisscomps/components/Stages/index.vue +2 -1
  32. package/src/kisscomps/components/patternList/patternList.vue +0 -4
  33. package/static/styles/commonkanban.scss +3 -3
  34. package/static/styles/overview.scss +2 -2
  35. package/static/styles/schemeconfig.scss +38 -23
  36. package/src/node_modules/.package_versions.json +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openatc-components",
3
- "version": "0.2.69",
3
+ "version": "0.2.71",
4
4
  "description": "A Vue.js project",
5
5
  "author": "openatc developer",
6
6
  "private": false,
package/src/api/cross.js CHANGED
@@ -22,6 +22,10 @@ export const getDuration = (data) => {
22
22
  }
23
23
 
24
24
  export const getChannelizatonChart = (agentid) => {
25
+ if (!agentid || agentid === '0') {
26
+ console.log('getChannelizatonChart agentid:', agentid)
27
+ return false
28
+ }
25
29
  let api = new Authapi('getChannelizatonChart')
26
30
  return api.Send({}, {}, [agentid])
27
31
  }
@@ -20,6 +20,10 @@ export function createTemplate (param) {
20
20
  return api.Send({}, param, [])
21
21
  }
22
22
  export function getIntersectionInfo (agentid) {
23
+ if (!agentid || agentid === '0') {
24
+ console.log('getIntersectionInfo agentid:', agentid)
25
+ return false
26
+ }
23
27
  // 获取路口类型和相位信息
24
28
  let api = new Authapi('getIntersectionInfo')
25
29
  let paramList = [agentid]
@@ -264,7 +264,7 @@ const zh = {
264
264
  'modelList21': '预留21',
265
265
  'modelList22': '相位锁定',
266
266
  'modelList25': '方位锁定',
267
- 'modelList23': '相位放行控制',
267
+ 'modelList23': '相位关断',
268
268
  'modelList100': '临时方案',
269
269
  'modelList101': '方向锁定',
270
270
  'modelList24': '优先控制',
@@ -446,7 +446,7 @@ const zh = {
446
446
  'delaystart': '晚启动时间 ',
447
447
  'advanceend': '早结束时间',
448
448
  'stageConfig': '阶段配置',
449
- 'parameters': '扩展参数配置',
449
+ 'parameters': '扩展参数',
450
450
  'overLap': '跟随相位',
451
451
  'plan': '方案',
452
452
  'patternOptimize': '方案优化',
@@ -12,7 +12,6 @@
12
12
  :controlPhase="controlPhase"
13
13
  :localPatternList="localPatternList"
14
14
  :showCondition="showCondition"
15
- :patternType="patternType"
16
15
  :contrloType="contrloType"
17
16
  :allPatternList="allPatternList"
18
17
  :stagesChange="stagesChange"
@@ -88,9 +87,6 @@ export default {
88
87
  patternId: {
89
88
  type: Number
90
89
  },
91
- patternType: {
92
- type: String
93
- },
94
90
  agentId: {
95
91
  type: String
96
92
  },
@@ -34,9 +34,12 @@
34
34
  <!-- 相位倒计时 -->
35
35
  <div class="phaseCountdown" v-show="isShowInterval" v-if="isLoaded && isHasPhase" :class="{'countdownBg': isLoaded}">
36
36
  <div v-for="curPhase in phaseCountdownList" :key="curPhase.id" :style="{color: curPhase.phaseCountdownColor}">
37
- <div v-if="curPhase.phaseCountdown !== -1">
38
- <span style="float: left;font-size: 20px;color: #fff;width: 70px;">{{$t('openatccomponents.overview.phase')}}{{curPhase.id}}:</span>
39
- <span style="float: left;">{{curPhase.phaseCountdown}}</span>
37
+ <div v-if="curPhase.phaseCountdown !== undefined && curPhase.phaseCountdown !== -1" style="overflow: hidden;margin-bottom: 4px;">
38
+ <span style="float: left;width: 33px;height: 33px;position: relative;border: 1px solid rgba(255, 255, 255, 0.1);margin-right: 7px;">
39
+ <xdr-dir-selector :Data="xdrData" :Datas="xdrpedData" Width="42px" Height="42px" Widths="42px" Heights="42px" :showlist="curPhase.showlist" :roadDirection="roadDirection"></xdr-dir-selector>
40
+ </span>
41
+ <span style="float: left;color: #fff;margin-right: 10px;width: 30px;">P{{curPhase.id}}:</span>
42
+ <span style="float: left;font-size: 20px;">{{curPhase.phaseCountdown}}</span>
40
43
  </div>
41
44
  </div>
42
45
  </div>
@@ -375,7 +378,16 @@ export default {
375
378
  comdirePhaseData: [], // 对比相同方向车道相位数据后,被删减的唯一direction的数组
376
379
  comdireOverlapPhaseData: [], // 对比相同方向车道跟随相位数据后,被删减的唯一direction的数组
377
380
  busPhaseData: [], // 公交相位数据
378
- comdireBusPhaseData: [] // 对比相同方向公交车道数据后,被删减的唯一direction的数组
381
+ comdireBusPhaseData: [], // 对比相同方向公交车道数据后,被删减的唯一direction的数组
382
+ phaseDirMap: new Map(),
383
+ xdrData: {
384
+ left: '5px',
385
+ top: '4px'
386
+ },
387
+ xdrpedData: {
388
+ left: '1px',
389
+ top: '1px'
390
+ }
379
391
  }
380
392
  },
381
393
  methods: {
@@ -634,11 +646,32 @@ export default {
634
646
  countdownObj.id = phaseInfo.id
635
647
  countdownObj.phaseCountdown = phaseInfo.countdown
636
648
  countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
649
+ let curphasedir = this.phaseDirMap.get(phaseInfo.id)
650
+ if (curphasedir !== undefined) {
651
+ countdownObj.showlist = curphasedir.direction.map(dir => {
652
+ return {
653
+ id: dir,
654
+ peddirection: this.getshowped(curphasedir.peddirection),
655
+ color: '#fff'
656
+ }
657
+ })
658
+ } else {
659
+ countdownObj.showlist = []
660
+ }
661
+
637
662
  this.phaseCountdownList.push(countdownObj)
638
663
  }
639
664
  })
640
665
  })
641
666
  },
667
+ getshowped (peddirection) {
668
+ let peddirarr = peddirection.map(peddir => ({
669
+ id: peddir,
670
+ name: this.PhaseDataModel.getSidePos(peddir).name,
671
+ color: 'rgba(255, 255, 255, 0.4)'
672
+ }))
673
+ return peddirarr
674
+ },
642
675
  getIntersectionInfo () {
643
676
  // 获取路口信息
644
677
  const agentid = this.agentId || '0'
@@ -670,6 +703,7 @@ export default {
670
703
  return
671
704
  }
672
705
  this.crossInfo = res.data.data.param
706
+ this.crossInfo.phaseList.forEach(cross => this.phaseDirMap.set(cross.id, {direction: cross.direction, peddirection: cross.peddirection}))
673
707
  if (this.mainType === '100' || this.mainType === '101' || this.mainType === '104') {
674
708
  // 城市道路加载车道相位坐标和人行道坐标
675
709
  this.getPhasePos()
@@ -966,19 +1000,33 @@ export default {
966
1000
  },
967
1001
  handleRepeatRealdir (channelList) {
968
1002
  // 按realdir去掉重复方向的数据
1003
+ let dirChannelList = channelList.filter(ele => ele.type === 0 || ele.type === 1 || ele.type === 3)
1004
+ let pedDirChannelList = channelList.filter(ele => ele.type === 2)
969
1005
  let map = new Map()
970
- channelList.forEach(ele => {
1006
+ let map2 = new Map()
1007
+ dirChannelList.forEach(ele => {
971
1008
  ele.realdir.forEach(dir => {
972
1009
  if (map.get(dir) === undefined) {
973
1010
  map.set(dir, ele)
974
1011
  }
975
1012
  })
976
1013
  })
1014
+ pedDirChannelList.forEach(ele => {
1015
+ ele.realdir.forEach(dir => {
1016
+ if (map2.get(dir) === undefined) {
1017
+ map2.set(dir, ele)
1018
+ }
1019
+ })
1020
+ })
977
1021
  let arr = Array.from(map)
1022
+ let pedarr = Array.from(map2)
978
1023
  let newarr = []
979
1024
  arr.forEach(ele => {
980
1025
  newarr.push(ele[1])
981
1026
  })
1027
+ pedarr.forEach(ele => {
1028
+ newarr.push(ele[1])
1029
+ })
982
1030
  // console.log(newarr)
983
1031
  return newarr
984
1032
  },
@@ -1172,8 +1220,8 @@ export default {
1172
1220
  /* padding-left: 16px; */
1173
1221
  }
1174
1222
  .phaseCountdown {
1175
- line-height: 40px;
1176
- font-size: 30px;
1223
+ line-height: 32PX;
1224
+ font-size: 14px;
1177
1225
  font-weight: normal;
1178
1226
  font-stretch: normal;
1179
1227
  letter-spacing: 0px;
@@ -1182,14 +1230,16 @@ export default {
1182
1230
  margin: 0 auto;
1183
1231
  }
1184
1232
  .countdownBg {
1185
- border-radius: 10px;
1233
+ border-radius: 10PX;
1186
1234
  background-color: rgba(94, 90, 90, 0.8);
1187
- padding-left: 16px;
1235
+ padding-left: 16PX;
1236
+ padding-top: 10PX;
1237
+ padding-bottom: 10PX;
1188
1238
  }
1189
1239
  .centerText .text {
1190
1240
  display: inline-block;
1191
1241
  color: #299BCC;
1192
- margin-top: 20px;
1242
+ margin-top: 20PX;
1193
1243
  }
1194
1244
 
1195
1245
  .baseImg {
@@ -11,33 +11,8 @@
11
11
  **/
12
12
  <template>
13
13
  <div class="main-patternstatus">
14
- <!-- rcp模式 -->
15
- <div v-if="patternType === 'rcp'">
16
- <div class="ring-first" v-for="(list, index1) in patternRcp" :key="index1">
17
- <div style="position: relative" :style="{height: '34px',float: 'left',width:
18
- ((item.split + (item.sum ? item.sum : 0)) /(item.cycle > cycles ? item.cycle : cycles)) *100 +'%',}"
19
- v-for="(item, index2) in list" :key="index2">
20
- <div class="first-1" :style="{ width:
21
- (Number(item.greenWidth.replace('%', '')) /
22
- Number((((item.split + (item.sum ? item.sum : 0)) /
23
- (item.cycle > cycles ? item.cycle : cycles)) * 100 + '%').replace('%', ''))) * 100 + '%', height: '34px',background: '#7ccc66'}">
24
- </div>
25
- <el-tooltip placement="top-start" effect="light">
26
- <div v-if="item.id" slot="content">P{{ item.id }}</div>
27
- <div v-if="item.id" style="cursor: pointer">
28
- <div
29
- class="box"
30
- style="position: absolute; width:20px; left: 35px; top: 5px"
31
- >
32
- <div class="ring-nums">P{{ item.id }}</div>
33
- </div>
34
- </div>
35
- </el-tooltip>
36
- </div>
37
- </div>
38
- </div>
39
14
  <!-- 环模式true -->
40
- <div v-if="(this.contrloType === 'ring' || !this.contrloType) && patternType !== 'rcp'">
15
+ <div v-if="this.contrloType === 'ring' || !this.contrloType">
41
16
  <div class="ring-first" v-for="(list, index1) in patternInfo" :key="index1">
42
17
  <div style="position: relative;" :style="{'height': '34px','float':'left','width':((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%'}" v-for="(item,index2) in list" :key="index2" :class="item.mode===7?'direction': ''">
43
18
  <div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :style="{'width':Number(item.greenWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%').replace('%', ''))*100+'%','height':'34px','background':'#7ccc66'}">
@@ -73,7 +48,7 @@
73
48
  <div class="divider" :style="{'left':item, 'height':barrierHeight}"></div>
74
49
  </div>
75
50
  </div>
76
- <div v-show="(this.curtime>0 && cycle && cycle>0 && this.isControl) || (this.curtime>0 && newCycle && newCycle>0 && this.isControl)">
51
+ <div v-show="(cycle && cycle>0 && this.isControl) || (newCycle && newCycle>0 && this.isControl)">
77
52
  <div class="curTimeDiv" :style="{'left':paddingLeft }">{{ timeNumDevide }}</div>
78
53
  <div class="curTimeLine" :style="{'left':paddingLeft, 'height':barrierHeight}"></div>
79
54
  </div>
@@ -132,7 +107,6 @@ export default {
132
107
  newCycle: this.cycles,
133
108
  patternIds: this.patternId,
134
109
  newPatterns: [],
135
- patternRcp: [],
136
110
  newList: [],
137
111
  isControl: true,
138
112
  contrloCycle: 0,
@@ -157,9 +131,6 @@ export default {
157
131
  controlPhase: {
158
132
  type: Object
159
133
  },
160
- patternType: {
161
- type: String
162
- },
163
134
  contrloType: {
164
135
  type: String
165
136
  },
@@ -242,7 +213,7 @@ export default {
242
213
  watch: {
243
214
  controlPhase: {
244
215
  handler: function (val, oldVal) {
245
- if (val && val.curTime) {
216
+ if ((val && val.curTime) || val.curTime === 0) {
246
217
  this.curtime = val.curTime
247
218
  if (val.control === 4 || val.control === 16 || val.control === 22) {
248
219
  this.isControl = false
@@ -271,7 +242,7 @@ export default {
271
242
  }
272
243
  this.handleBarrierHeight()
273
244
  }
274
- if (val && val.curTime) {
245
+ if ((val && val.curTime) || val.curTime === 0) {
275
246
  this.curtime = val.curTime
276
247
  if (val.control === 4 || val.control === 16 || val.control === 22) {
277
248
  this.isControl = false
@@ -319,9 +290,6 @@ export default {
319
290
  cycles: {
320
291
  handler: function (val, oldVal) {
321
292
  this.newCycle = this.cycles
322
- if (this.patternType === 'rcp') {
323
- this.handleRcp(this.patternStatusList)
324
- }
325
293
  },
326
294
  // 深度观察监听
327
295
  deep: true
@@ -346,9 +314,6 @@ export default {
346
314
  },
347
315
  patternStatusList: {
348
316
  handler: function (val, oldVal) {
349
- if (this.patternType === 'rcp') {
350
- this.handleRcp(this.patternStatusList)
351
- }
352
317
  this.handleBarrierHeight() // 计算屏障高度
353
318
  if (this.patternStatusList && this.newCycle) {
354
319
  setTimeout(() => {
@@ -381,9 +346,6 @@ export default {
381
346
  if (this.contrloType === 'stage') {
382
347
  this.getStage()
383
348
  }
384
- if (this.patternType === 'rcp') {
385
- this.handleRcp(this.patternStatusList)
386
- }
387
349
  },
388
350
  methods: {
389
351
  getPed (data) {
@@ -412,48 +374,6 @@ export default {
412
374
  }
413
375
  return ped
414
376
  },
415
- handleRcp (val) {
416
- this.patternRcp = []
417
- let valSplit = val.map(item => {
418
- return item.map(val => {
419
- return val.splitchain
420
- })
421
- })
422
- let splitCycle = valSplit.length > 0 ? valSplit.map(item => {
423
- return item.length > 0 ? item.reduce((a, b) => {
424
- return a + b
425
- }) : 0
426
- }) : 0
427
- let cycle = Math.max(...splitCycle)// 每个环的周期最大值
428
- for (let rings of val) {
429
- if (rings.length === 0) continue
430
- let list = []
431
- for (let ring of rings) {
432
- if (ring.splitchain === 0) continue
433
- let obj = {}
434
- let split = ring.splitchain
435
- obj.split = split
436
- obj.cycle = cycle
437
- obj.id = ring.phases
438
- // if (ring.sum) {
439
- // obj.sum = ring.sum
440
- // obj.redWidth = ((currPhase.redclear + ring.sum) / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
441
- // } else {
442
- // obj.redWidth = (currPhase.redclear / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
443
- // }
444
- // obj.mode = ring.mode
445
- obj.greenWidth = (split / (cycle > this.cycles ? cycle : this.cycles)) * 100 + '%'
446
- // obj.flashgreen = (currPhase.flashgreen / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
447
- // obj.yellowWidth = (currPhase.yellow / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
448
- // 忽略相位不显示
449
- // let mode = ring.mode
450
- // if (mode !== 7) { // 忽略相位不显示
451
- list.push(obj)
452
- // }
453
- }
454
- this.patternRcp.push(list)
455
- }
456
- },
457
377
  handleStageData (data) {
458
378
  if (!data) return
459
379
  let peddirections = this.getPed(data)
@@ -690,6 +610,7 @@ export default {
690
610
  // if (stg === walk.phaseid) {
691
611
  let objs = {}
692
612
  objs.name = walk.name
613
+ objs.color = 'rgba(48,49,51,0.6)'
693
614
  objs.id = walk.id
694
615
  if (ped === walk.id) {
695
616
  peddirections.push(objs)
@@ -705,7 +626,7 @@ export default {
705
626
  obj.direction = ring.desc.map(item => { // 虚相位desc为空
706
627
  return {
707
628
  id: item.id,
708
- color: '#454545'
629
+ color: '#303133'
709
630
  }
710
631
  })
711
632
  } else {
@@ -714,14 +635,14 @@ export default {
714
635
  return {
715
636
  id: item,
716
637
  peddirection: peddirections,
717
- color: '#454545'
638
+ color: '#303133'
718
639
  }
719
640
  })
720
641
  } else {
721
642
  obj.direction = [
722
643
  {
723
644
  id: '',
724
- color: '#454545',
645
+ color: '#303133',
725
646
  peddirection: peddirections
726
647
  }
727
648
  ]
@@ -942,6 +863,7 @@ export default {
942
863
  let objs = {}
943
864
  objs.name = walk.name
944
865
  objs.id = walk.id
866
+ objs.color = 'rgba(48,49,51,0.6)'
945
867
  if (ped === walk.id) {
946
868
  peddirections.push(objs)
947
869
  peddirections = Array.from(new Set(peddirections))
@@ -956,7 +878,7 @@ export default {
956
878
  obj.direction = ring.desc.map(item => { // 虚相位desc为空
957
879
  return {
958
880
  id: item.id,
959
- color: '#454545'
881
+ color: '#303133'
960
882
  }
961
883
  })
962
884
  } else {
@@ -965,14 +887,14 @@ export default {
965
887
  return {
966
888
  id: item,
967
889
  peddirection: peddirections,
968
- color: '#454545'
890
+ color: '#303133'
969
891
  }
970
892
  })
971
893
  } else {
972
894
  obj.direction = [
973
895
  {
974
896
  id: '',
975
- color: '#454545',
897
+ color: '#303133',
976
898
  peddirection: peddirections
977
899
  }
978
900
  ]
@@ -1169,6 +1091,7 @@ export default {
1169
1091
  let objs = {}
1170
1092
  objs.name = walk.name
1171
1093
  objs.id = walk.id
1094
+ objs.color = 'rgba(48,49,51,0.6)'
1172
1095
  if (ped === walk.id) {
1173
1096
  peddirections.push(objs)
1174
1097
  peddirections = Array.from(new Set(peddirections))
@@ -1183,7 +1106,7 @@ export default {
1183
1106
  obj.direction = ring.desc.map(item => { // 虚相位desc为空
1184
1107
  return {
1185
1108
  id: item.id,
1186
- color: '#454545',
1109
+ color: '#303133',
1187
1110
  peddirection: peddirections
1188
1111
  }
1189
1112
  })
@@ -1192,7 +1115,7 @@ export default {
1192
1115
  obj.direction = currPhase.direction.map(item => {
1193
1116
  return {
1194
1117
  id: item,
1195
- color: '#454545',
1118
+ color: '#303133',
1196
1119
  peddirection: peddirections
1197
1120
  }
1198
1121
  })
@@ -1200,7 +1123,7 @@ export default {
1200
1123
  obj.direction = [
1201
1124
  {
1202
1125
  id: '',
1203
- color: '#454545',
1126
+ color: '#303133',
1204
1127
  peddirection: peddirections
1205
1128
  }
1206
1129
  ]
@@ -1449,7 +1372,7 @@ export default {
1449
1372
  <style lang="scss" scoped>
1450
1373
  .main-patternstatus {
1451
1374
  position: relative;
1452
- margin-bottom: 20px;
1375
+ /* margin-bottom: 20px; */
1453
1376
  }
1454
1377
  .main-patternstatus {
1455
1378
  position: relative;
@@ -38,6 +38,7 @@
38
38
  :overlap="overlap"
39
39
  :patternSelect="patternSelect"
40
40
  :allPatternList="allPatternList"
41
+ :isShowBack="isShowBack"
41
42
  @closeManualModal="closeManualModal"
42
43
  @selectModel="selectModel"
43
44
  @selectStages="selectStages"
@@ -45,76 +46,8 @@
45
46
  @closePhaseBack="closePhaseBack"
46
47
  @closePhaseControl="closePhaseControl"
47
48
  @selectSpecialModel="selectSpecialModelNew" />
48
- <!-- <ManualControlModal
49
- :controlData="controlData"
50
- :modelList="modelList"
51
- :patternSelect="patternSelect"
52
- :patternAll="patternAll"
53
- :crossStatusData="crossStatusData"
54
- :phaseList="phaseList"
55
- :specialcontrolList="specialcontrolList"
56
- :currModel="currModel"
57
- :preselectModel="preselectModel"
58
- :preselectStages="preselectStages"
59
- :realtimeStatusModalvisible="realtimeStatusModalvisible"
60
- :funcSort="funcSort"
61
- :roadDirection="roadDirection"
62
- @closeManualModal="closeManualModal"
63
- @selectModel="selectModel"
64
- @selectStages="selectStages"
65
- @patternCommit="patternCommit"
66
- @selectSpecialModel="selectSpecialModel" /> -->
67
49
  </div>
68
50
  </transition>
69
- <!-- <transition name="fade-left" mode="out-in"
70
- enter-active-class="animated fadeInRight"
71
- leave-active-class="animated fadeOutRight">
72
- <div style="position: absolute;width: 100%;height:100%" v-show="(isOperation && isClosePhase)">
73
- <ClosePhaseControlModal
74
- v-if="specialPage === 'closephase'"
75
- :controlData="controlData"
76
- :closePhaseRings="phaseRings"
77
- :sidewalkPhaseData="sidewalkPhaseData"
78
- :realtimeStatusModalvisible="realtimeStatusModalvisible"
79
- :roadDirection="roadDirection"
80
- @closePhaseBack="closePhaseBack"
81
- @closePhaseControl="closePhaseControl" /> -->
82
- <!-- <LockingPhaseControlModal
83
- v-if="specialPage === 'lockingphase'"
84
- :roadDirection="roadDirection"
85
- :phaseList="phaseList"
86
- :patternStatus="statusData"
87
- :lockPhaseBtnName="lockPhaseBtnName"
88
- @closePhaseBack="closePhaseBack"
89
- @closePhaseControl="closePhaseControl" /> -->
90
- <!-- <TentativePlanControlModal
91
- v-if="specialPage === 'tentativeplan'"
92
- :realtimeStatusModalvisible="realtimeStatusModalvisible"
93
- :controlData="controlData"
94
- :phaseList="phaseList"
95
- :overlap="overlap"
96
- :patternSelect="patternSelect"
97
- :allPatternList="allPatternList"
98
- @closePhaseBack="closePhaseBack"
99
- @closePhaseControl="closePhaseControl"
100
- />
101
- <priorityControl
102
- v-if="specialPage === 'prioritycontrol'"
103
- :realtimeStatusModalvisible="realtimeStatusModalvisible"
104
- :phaseList="phaseList"
105
- @closePhaseBack="closePhaseBack"
106
- @closePhaseControl="closePhaseControl"
107
- /> -->
108
- <!-- <AzimuthLocking
109
- v-if="specialPage === 'azimuthlocking'"
110
- :realtimeStatusModalvisible="realtimeStatusModalvisible"
111
- :phaseList="phaseList"
112
- :patternStatus="statusData"
113
- @closePhaseBack="closePhaseBack"
114
- @closePhaseControl="closePhaseControl"
115
- /> -->
116
- <!-- </div>
117
- </transition> -->
118
51
 
119
52
  <transition name="fade-left" mode="out-in"
120
53
  enter-active-class="animated fadeInLeft"
@@ -240,6 +173,10 @@ export default {
240
173
  isFromAtc: {
241
174
  type: Boolean,
242
175
  default: true
176
+ },
177
+ isShowBack: {
178
+ type: Boolean,
179
+ default: true
243
180
  }
244
181
  },
245
182
  data () {
@@ -473,32 +410,6 @@ export default {
473
410
  faultvisible: false,
474
411
  isClosePhase: false, // 是否在相位关断
475
412
  toPage: 1, // 与哪一个页面交互,1 代表路口信息页面,3代表 相位关断页面
476
- specialcontrolList: [{ // 特殊控制
477
- id: 23,
478
- isShow: true,
479
- permission: 'configer:manual:optimize',
480
- iconClass: 'closephase'
481
- }, {
482
- id: 22,
483
- isShow: true,
484
- permission: 'configer:manual:optimize',
485
- iconClass: 'lockingphase'
486
- }, {
487
- id: 100,
488
- isShow: true,
489
- permission: 'configer:manual:optimize',
490
- iconClass: 'tentativeplan'
491
- }, {
492
- id: 24,
493
- isShow: true,
494
- permission: 'configer:manual:preempt',
495
- iconClass: 'prioritycontrol'
496
- }, {
497
- id: 25,
498
- permission: 'configer:manual:optimize',
499
- isShow: this.realtimeStatusModalvisible,
500
- iconClass: 'azimuthlocking'
501
- }],
502
413
  phaseRings: [],
503
414
  curFaultList: [],
504
415
  confirmedFault: [],
@@ -862,10 +773,6 @@ export default {
862
773
  }
863
774
  },
864
775
  closePhaseBack () {
865
- // if (!this.realtimeStatusModalvisible) {
866
- // this.$emit('closePhaseBack')
867
- // return
868
- // }
869
776
  this.toPage = 3
870
777
  this.isClosePhase = false
871
778
  },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="tentativeplan-control">
2
+ <div class="tentativeplan-control manual-common-content">
3
3
  <!-- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.azimuthlocking')}}</div> -->
4
4
  <el-row>
5
5
  <el-col :span="12">
@@ -45,10 +45,10 @@
45
45
  </el-col>
46
46
  </el-row>
47
47
  <el-row style="margin-top: 6px;">
48
- <el-col :span="5">
48
+ <el-col :span="24">
49
49
  <span class="model-label-title">{{$t('openatccomponents.overview.indirection')}}:</span>
50
50
  </el-col>
51
- <el-col :span="19">
51
+ <el-col :span="24">
52
52
  <div class="control-model" v-for="(item, index) in imgs" :key="index">
53
53
  <div :style="{'backgroundColor': item.bgcolor}" :class="{'single-model-select':spanIndex.indexOf(index)>-1}" class="single-model" @click="boxShow(index,item)">
54
54
  <div v-if="item.class" :style="{color: themeColor}" :class="item.class" style="border:0px;font-size: 50px;"></div>
@@ -89,13 +89,13 @@
89
89
  </div>
90
90
  </div> -->
91
91
  <div class="footer" v-if="realtimeStatusModalvisible">
92
- <el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
93
- <el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
92
+ <el-button v-if="isShowBack" @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
93
+ <el-button @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
94
94
  <el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.implement')}}</el-button>
95
95
  </div>
96
96
  <div class="footer" v-if="!realtimeStatusModalvisible">
97
- <el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
98
- <el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
97
+ <el-button v-if="isShowBack" @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
98
+ <el-button @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
99
99
  <el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.comfirm')}}</el-button>
100
100
  </div>
101
101
  </div>
@@ -117,6 +117,10 @@ export default {
117
117
  realtimeStatusModalvisible: {
118
118
  type: Boolean,
119
119
  default: true
120
+ },
121
+ isShowBack: {
122
+ type: Boolean,
123
+ default: true
120
124
  }
121
125
  },
122
126
  watch: {