openatc-components 0.2.82 → 0.2.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openatc-components",
3
- "version": "0.2.82",
3
+ "version": "0.2.83",
4
4
  "description": "A Vue.js project",
5
5
  "author": "openatc developer",
6
6
  "private": false,
@@ -114,6 +114,8 @@ const en = {
114
114
  'maxFlow': 'The average lane flow is too large. Is it further optimized?',
115
115
  'typecycle-opt': 'Cycle Opt',
116
116
  'signalIP': 'Signal IP',
117
+ 'stagecountdown': 'Stage Countdown',
118
+ 'stageduration': 'Stage Duration',
117
119
  'currentphase': 'Current phase',
118
120
  'directionnull': 'Please select the import direction',
119
121
  'faultinfo': 'Fault Information',
@@ -114,6 +114,8 @@ const zh = {
114
114
  'protocoltype': '协议类型',
115
115
  'signalID': '路口ID',
116
116
  'signalIP': '信号机IP',
117
+ 'stagecountdown': '阶段倒计时',
118
+ 'stageduration': '阶段时长',
117
119
  'faultinfo': '故障信息',
118
120
  'platform': '平台类型',
119
121
  'online': '在线',
@@ -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: 42px;height: 42px;position: relative;border: 1px solid rgba(255, 255, 255, 0.1);margin-right: 5px;">
39
+ <xdr-dir-selector :Data="xdrData" :Datas="xdrpedData" Width="55px" Height="55px" Widths="55px" Heights="55px" :showlist="curPhase.showlist" :roadDirection="roadDirection"></xdr-dir-selector>
40
+ </span>
41
+ <span style="float: left;color: #fff;margin-right: 8px;width: 30px;">P{{curPhase.id}}:</span>
42
+ <span style="float: left;font-size: 25px;">{{curPhase.phaseCountdown}}</span>
40
43
  </div>
41
44
  </div>
42
45
  </div>
@@ -94,11 +97,14 @@
94
97
  <div class="left-dir-road" v-if="roadDir === 'left'">
95
98
  <div class="centerText" v-if="mainType === '100' || mainType === '101'" :class="{'countdownBg': isLoaded}">
96
99
  <!-- 相位倒计时 -->
97
- <div class="phaseCountdown" v-if="isLoaded && isHasPhase">
100
+ <div class="phaseCountdown" v-show="isShowInterval" v-if="isLoaded && isHasPhase && isHasCountdown" :class="{'countdownBg': isLoaded}">
98
101
  <div v-for="curPhase in phaseCountdownList" :key="curPhase.id" :style="{color: curPhase.phaseCountdownColor}">
99
- <div v-if="curPhase.phaseCountdown !== -1">
100
- <span style="float: left;font-size: 20px;color: #fff;width: 70px;">{{$t('openatccomponents.overview.phase')}}{{curPhase.id}}:</span>
101
- <span style="float: left;">{{curPhase.phaseCountdown}}</span>
102
+ <div v-if="curPhase.phaseCountdown !== undefined && curPhase.phaseCountdown !== -1" style="overflow: hidden;margin-bottom: 4px;">
103
+ <span style="float: left;width: 42px;height: 42px;position: relative;border: 1px solid rgba(255, 255, 255, 0.1);margin-right: 5px;">
104
+ <xdr-dir-selector :Data="xdrData" :Datas="xdrpedData" Width="55px" Height="55px" Widths="55px" Heights="55px" :showlist="curPhase.showlist" :roadDirection="roadDirection"></xdr-dir-selector>
105
+ </span>
106
+ <span style="float: left;color: #fff;margin-right: 8px;width: 30px;">P{{curPhase.id}}:</span>
107
+ <span style="float: left;font-size: 25px;">{{curPhase.phaseCountdown}}</span>
102
108
  </div>
103
109
  </div>
104
110
  </div>
@@ -394,7 +400,16 @@ export default {
394
400
  busPhaseData: [], // 公交相位数据
395
401
  comdireBusPhaseData: [], // 对比相同方向公交车道数据后,被删减的唯一direction的数组
396
402
  channelStatusMap: new Map(), // 通道实时状态映射
397
- channelStatusList: [] // 通道实时状态列表
403
+ channelStatusList: [], // 通道实时状态列表
404
+ phaseDirMap: new Map(),
405
+ xdrData: {
406
+ left: '5px',
407
+ top: '4px'
408
+ },
409
+ xdrpedData: {
410
+ left: '1px',
411
+ top: '1px'
412
+ }
398
413
  }
399
414
  },
400
415
  methods: {
@@ -646,6 +661,7 @@ export default {
646
661
  getCurPhaseCountdown () {
647
662
  // 获取当前相位倒计时颜色
648
663
  this.phaseCountdownList = []
664
+ this.isHasCountdown = false
649
665
  this.curPhase.forEach(curP => {
650
666
  this.phaseStatusList.forEach(phaseInfo => {
651
667
  if (phaseInfo.id === curP) {
@@ -653,11 +669,35 @@ export default {
653
669
  countdownObj.id = phaseInfo.id
654
670
  countdownObj.phaseCountdown = phaseInfo.countdown
655
671
  countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
672
+ let curphasedir = this.phaseDirMap.get(phaseInfo.id)
673
+ if (curphasedir !== undefined) {
674
+ countdownObj.showlist = curphasedir.direction.map(dir => {
675
+ return {
676
+ id: dir,
677
+ peddirection: this.getshowped(curphasedir.peddirection),
678
+ color: '#fff'
679
+ }
680
+ })
681
+ } else {
682
+ countdownObj.showlist = []
683
+ }
684
+
656
685
  this.phaseCountdownList.push(countdownObj)
686
+ if (phaseInfo.countdown !== undefined && phaseInfo.countdown !== -1) {
687
+ this.isHasCountdown = true
688
+ }
657
689
  }
658
690
  })
659
691
  })
660
692
  },
693
+ getshowped (peddirection) {
694
+ let peddirarr = peddirection.map(peddir => ({
695
+ id: peddir,
696
+ name: this.PhaseDataModel.getSidePos(peddir).name,
697
+ color: 'rgba(255, 255, 255, 0.4)'
698
+ }))
699
+ return peddirarr
700
+ },
661
701
  getIntersectionInfo () {
662
702
  // 获取路口信息
663
703
  const agentid = this.agentId || '0'
@@ -693,6 +733,7 @@ export default {
693
733
  return
694
734
  }
695
735
  this.crossInfo = res.data.data.param
736
+ this.crossInfo.phaseList.forEach(cross => this.phaseDirMap.set(cross.id, {direction: cross.direction, peddirection: cross.peddirection}))
696
737
  if (this.mainType === '100' || this.mainType === '101' || this.mainType === '104') {
697
738
  // 城市道路加载车道相位坐标和人行道坐标
698
739
  this.getPhasePos()
@@ -1268,8 +1309,8 @@ export default {
1268
1309
  /* padding-left: 16px; */
1269
1310
  }
1270
1311
  .phaseCountdown {
1271
- line-height: 40px;
1272
- font-size: 30px;
1312
+ line-height: 42PX;
1313
+ font-size: 18px;
1273
1314
  font-weight: normal;
1274
1315
  font-stretch: normal;
1275
1316
  letter-spacing: 0px;
@@ -1278,14 +1319,16 @@ export default {
1278
1319
  margin: 0 auto;
1279
1320
  }
1280
1321
  .countdownBg {
1281
- border-radius: 10px;
1322
+ border-radius: 10PX;
1282
1323
  background-color: rgba(94, 90, 90, 0.8);
1283
- padding-left: 16px;
1324
+ padding-left: 14PX;
1325
+ padding-top: 10PX;
1326
+ padding-bottom: 10PX;
1284
1327
  }
1285
1328
  .centerText .text {
1286
1329
  display: inline-block;
1287
1330
  color: #299BCC;
1288
- margin-top: 20px;
1331
+ margin-top: 20PX;
1289
1332
  }
1290
1333
 
1291
1334
  .baseImg {
@@ -1495,7 +1495,7 @@ export default {
1495
1495
  .direction {
1496
1496
  filter: brightness(70%);
1497
1497
  }
1498
- .masks {
1498
+ .mask {
1499
1499
  background: rgb(242, 121, 121) !important;
1500
1500
  }
1501
1501
  .yellowClass {
@@ -49,6 +49,14 @@
49
49
  <div style="float: left;" class="cross-name">{{$t('openatccomponents.overview.platform')}}:</div>
50
50
  <div style="margin-left: 85px;" class="cross-value">{{platform}}</div>
51
51
  </div>
52
+ <div class="cross-content" v-if="controlData.current_stagecd !== undefined">
53
+ <div style="float: left;" class="cross-name">{{$t('openatccomponents.overview.stagecountdown')}}:</div>
54
+ <div style="margin-left: 85px;" class="cross-value">{{controlData.current_stagecd}}</div>
55
+ </div>
56
+ <div class="cross-content" v-if="controlData.stages_len">
57
+ <div style="float: left;" class="cross-name">{{$t('openatccomponents.overview.stageduration')}}:</div>
58
+ <div style="margin-left: 85px;" class="cross-value">{{controlData.stages_len + ''}}</div>
59
+ </div>
52
60
  <div class="cross-content">
53
61
  <div style="float: left;" class="cross-name">{{$t('openatccomponents.overview.faultinfo')}}:</div>
54
62
  <div style="margin-left: 85px;" v-if="curFaultList.length">