openatc-components 0.2.70 → 0.2.72

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 (37) 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 +65 -11
  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 +65 -11
  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/src/views/overView.vue +1 -1
  34. package/static/styles/commonkanban.scss +3 -3
  35. package/static/styles/overview.scss +2 -2
  36. package/static/styles/schemeconfig.scss +38 -23
  37. 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.70",
3
+ "version": "0.2.72",
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
  },
@@ -32,11 +32,14 @@
32
32
  <div class="right-dir-road" v-if="roadDir === 'right'">
33
33
  <div class="centerText" v-if="crossType !== 'Customroads' && isHasPhase">
34
34
  <!-- 相位倒计时 -->
35
- <div class="phaseCountdown" v-show="isShowInterval" v-if="isLoaded && isHasPhase" :class="{'countdownBg': isLoaded}">
35
+ <div class="phaseCountdown" v-show="isShowInterval" v-if="isLoaded && isHasPhase && isHasCountdown" :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: {
@@ -627,6 +639,7 @@ export default {
627
639
  getCurPhaseCountdown () {
628
640
  // 获取当前相位倒计时颜色
629
641
  this.phaseCountdownList = []
642
+ this.isHasCountdown = false
630
643
  this.curPhase.forEach(curP => {
631
644
  this.phaseStatusList.forEach(phaseInfo => {
632
645
  if (phaseInfo.id === curP) {
@@ -634,11 +647,35 @@ export default {
634
647
  countdownObj.id = phaseInfo.id
635
648
  countdownObj.phaseCountdown = phaseInfo.countdown
636
649
  countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
650
+ let curphasedir = this.phaseDirMap.get(phaseInfo.id)
651
+ if (curphasedir !== undefined) {
652
+ countdownObj.showlist = curphasedir.direction.map(dir => {
653
+ return {
654
+ id: dir,
655
+ peddirection: this.getshowped(curphasedir.peddirection),
656
+ color: '#fff'
657
+ }
658
+ })
659
+ } else {
660
+ countdownObj.showlist = []
661
+ }
662
+
637
663
  this.phaseCountdownList.push(countdownObj)
664
+ if (phaseInfo.countdown !== undefined && phaseInfo.countdown !== -1) {
665
+ this.isHasCountdown = true
666
+ }
638
667
  }
639
668
  })
640
669
  })
641
670
  },
671
+ getshowped (peddirection) {
672
+ let peddirarr = peddirection.map(peddir => ({
673
+ id: peddir,
674
+ name: this.PhaseDataModel.getSidePos(peddir).name,
675
+ color: 'rgba(255, 255, 255, 0.4)'
676
+ }))
677
+ return peddirarr
678
+ },
642
679
  getIntersectionInfo () {
643
680
  // 获取路口信息
644
681
  const agentid = this.agentId || '0'
@@ -670,6 +707,7 @@ export default {
670
707
  return
671
708
  }
672
709
  this.crossInfo = res.data.data.param
710
+ this.crossInfo.phaseList.forEach(cross => this.phaseDirMap.set(cross.id, {direction: cross.direction, peddirection: cross.peddirection}))
673
711
  if (this.mainType === '100' || this.mainType === '101' || this.mainType === '104') {
674
712
  // 城市道路加载车道相位坐标和人行道坐标
675
713
  this.getPhasePos()
@@ -966,19 +1004,33 @@ export default {
966
1004
  },
967
1005
  handleRepeatRealdir (channelList) {
968
1006
  // 按realdir去掉重复方向的数据
1007
+ let dirChannelList = channelList.filter(ele => ele.type === 0 || ele.type === 1 || ele.type === 3)
1008
+ let pedDirChannelList = channelList.filter(ele => ele.type === 2)
969
1009
  let map = new Map()
970
- channelList.forEach(ele => {
1010
+ let map2 = new Map()
1011
+ dirChannelList.forEach(ele => {
971
1012
  ele.realdir.forEach(dir => {
972
1013
  if (map.get(dir) === undefined) {
973
1014
  map.set(dir, ele)
974
1015
  }
975
1016
  })
976
1017
  })
1018
+ pedDirChannelList.forEach(ele => {
1019
+ ele.realdir.forEach(dir => {
1020
+ if (map2.get(dir) === undefined) {
1021
+ map2.set(dir, ele)
1022
+ }
1023
+ })
1024
+ })
977
1025
  let arr = Array.from(map)
1026
+ let pedarr = Array.from(map2)
978
1027
  let newarr = []
979
1028
  arr.forEach(ele => {
980
1029
  newarr.push(ele[1])
981
1030
  })
1031
+ pedarr.forEach(ele => {
1032
+ newarr.push(ele[1])
1033
+ })
982
1034
  // console.log(newarr)
983
1035
  return newarr
984
1036
  },
@@ -1172,8 +1224,8 @@ export default {
1172
1224
  /* padding-left: 16px; */
1173
1225
  }
1174
1226
  .phaseCountdown {
1175
- line-height: 40px;
1176
- font-size: 30px;
1227
+ line-height: 32PX;
1228
+ font-size: 14px;
1177
1229
  font-weight: normal;
1178
1230
  font-stretch: normal;
1179
1231
  letter-spacing: 0px;
@@ -1182,14 +1234,16 @@ export default {
1182
1234
  margin: 0 auto;
1183
1235
  }
1184
1236
  .countdownBg {
1185
- border-radius: 10px;
1237
+ border-radius: 10PX;
1186
1238
  background-color: rgba(94, 90, 90, 0.8);
1187
- padding-left: 16px;
1239
+ padding-left: 16PX;
1240
+ padding-top: 10PX;
1241
+ padding-bottom: 10PX;
1188
1242
  }
1189
1243
  .centerText .text {
1190
1244
  display: inline-block;
1191
1245
  color: #299BCC;
1192
- margin-top: 20px;
1246
+ margin-top: 20PX;
1193
1247
  }
1194
1248
 
1195
1249
  .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',paddingRight: '1px',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 }}:{{ item.split }}</div>
27
- <div v-if="item.id" style="cursor: pointer">
28
- <div
29
- class="box"
30
- style="position: absolute; width:40px; left: 0; top: 5px"
31
- >
32
- <div class="ring-nums">P{{ item.id }}:{{ item.split }}</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: {