openatc-components 0.4.90 → 0.4.92

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.4.90",
3
+ "version": "0.4.92",
4
4
  "description": "A Vue.js project",
5
5
  "author": "openatc developer",
6
6
  "private": false,
@@ -1045,7 +1045,9 @@ const en = {
1045
1045
  'tjunction': 'T-junction',
1046
1046
  'roundabout': 'Roundabout',
1047
1047
  'rampintersection': 'RampIntersection',
1048
+ 'rampintersection2': 'Auxiliary Road Inbound',
1048
1049
  'pedestriancrossing': 'PedestrianCrossing',
1050
+ 'pedestriancrossing2': 'Road Section Crossing',
1049
1051
  'otherIntersections': 'OtherIntersections',
1050
1052
  'customIntersection': 'CustomIntersection'
1051
1053
  },
@@ -1408,7 +1410,7 @@ const en = {
1408
1410
  'importtip': 'The picture format is SVG, PNG and JPG, and the size is no more than 10MB',
1409
1411
  'importsizeerror': 'Picture size exceeds 10MB, please re import!',
1410
1412
  'importtypeerror': 'Picture format error, please import again!',
1411
- 'importcrosspicture': 'Import intersection picture',
1413
+ 'importcrosspicture': 'Intersection Map',
1412
1414
  'againimport': 'Re import',
1413
1415
  'motorway': 'Motorway',
1414
1416
  'bicyclelane': 'Non motorized Lane',
@@ -1042,10 +1042,12 @@ const zh = {
1042
1042
  'annual': '全年',
1043
1043
  'crossShapes': {
1044
1044
  'crossroads': '十字路口',
1045
- 'tjunction': '丁字路口',
1045
+ 'tjunction': 'T字路口',
1046
1046
  'roundabout': '环形路口',
1047
1047
  'rampintersection': '匝道路口',
1048
+ 'rampintersection2': '辅路汇入',
1048
1049
  'pedestriancrossing': '行人过街路口',
1050
+ 'pedestriancrossing2': '路段过街',
1049
1051
  'otherIntersections': '其他形状路口',
1050
1052
  'customIntersection': '自定义路口'
1051
1053
  },
@@ -1408,7 +1410,7 @@ const zh = {
1408
1410
  'importtip': '图片格式为svg、png、jpg,大小不超过10Mb',
1409
1411
  'importsizeerror': '图片大小超过10Mb,请重新导入!',
1410
1412
  'importtypeerror': '图片格式错误,请重新导入!',
1411
- 'importcrosspicture': '导入路口图片',
1413
+ 'importcrosspicture': '路口底图',
1412
1414
  'againimport': '重新导入',
1413
1415
  'motorway': '机动车道',
1414
1416
  'bicyclelane': '非机动车道',
@@ -19,7 +19,17 @@
19
19
  <!-- 绘制功能 -->
20
20
  <div class="draw-function">
21
21
  <div class="again-import">
22
- <span class="import-label">{{$t('openatccomponents.channelizationmap.importcrosspicture')}}</span>
22
+ <el-dropdown @command="handleChangeCrossShapes">
23
+ <el-button type="primary" class="cross-shapes-btn">
24
+ {{$t('openatccomponents.channelizationmap.importcrosspicture')}}<i class="el-icon-arrow-down el-icon--right"></i>
25
+ </el-button>
26
+ <el-dropdown-menu slot="dropdown">
27
+ <el-dropdown-item command="101">{{$t('openatccomponents.importTemp.crossShapes.crossroads')}}</el-dropdown-item>
28
+ <el-dropdown-item command="100">{{$t('openatccomponents.importTemp.crossShapes.tjunction')}}</el-dropdown-item>
29
+ <el-dropdown-item command="103">{{$t('openatccomponents.importTemp.crossShapes.rampintersection2')}}</el-dropdown-item>
30
+ <el-dropdown-item command="104">{{$t('openatccomponents.importTemp.crossShapes.pedestriancrossing2')}}</el-dropdown-item>
31
+ </el-dropdown-menu>
32
+ </el-dropdown>
23
33
  <el-button
24
34
  class="again-import-btn"
25
35
  type="primary"
@@ -782,21 +792,7 @@ export default {
782
792
  // }
783
793
  this.index = 0
784
794
  this.curChooseIcon = {}
785
- axios.get('./img/CrossRoadsSvg.svg').then((val) => {
786
- if (!val.data || val.data === '') return
787
- this.CrossMapData = {
788
- index: -2,
789
- icontype: 'crossmap',
790
- x: 435,
791
- y: 325,
792
- w: 870,
793
- h: 650,
794
- angle: 0,
795
- imgfilesrc: '',
796
- svgstr: val.data,
797
- type: 'vectorgraph'
798
- }
799
- })
795
+ this.reloadDefaultCrossMap('CrossRoad.svg')
800
796
  },
801
797
  // 取消
802
798
  cancledraw () {
@@ -1010,6 +1006,39 @@ export default {
1010
1006
  el.click()
1011
1007
  // 移除链接释放资源
1012
1008
  urlObject.revokeObjectURL(url)
1009
+ },
1010
+ handleChangeCrossShapes (shape) {
1011
+ switch (shape) {
1012
+ case '100':
1013
+ this.reloadDefaultCrossMap('TCrossRoad.svg')
1014
+ break
1015
+ case '101':
1016
+ this.reloadDefaultCrossMap('CrossRoad.svg')
1017
+ break
1018
+ case '103':
1019
+ this.reloadDefaultCrossMap('RampRoad.svg')
1020
+ break
1021
+ case '104':
1022
+ this.reloadDefaultCrossMap('PedCrossingRoad.svg')
1023
+ break
1024
+ }
1025
+ },
1026
+ reloadDefaultCrossMap (imgname) {
1027
+ axios.get(`./img/${imgname}`).then((val) => {
1028
+ if (!val.data || val.data === '') return
1029
+ this.CrossMapData = {
1030
+ index: -2,
1031
+ icontype: 'crossmap',
1032
+ x: 435,
1033
+ y: 325,
1034
+ w: 870,
1035
+ h: 650,
1036
+ angle: 0,
1037
+ imgfilesrc: '',
1038
+ svgstr: val.data,
1039
+ type: 'vectorgraph'
1040
+ }
1041
+ })
1013
1042
  }
1014
1043
  },
1015
1044
  mounted () {
@@ -1018,5 +1047,11 @@ export default {
1018
1047
  }
1019
1048
  </script>
1020
1049
 
1021
- <style lang="css" rel="stylesheet/scss">
1050
+ <style lang="css" rel="stylesheet/scss" scoped>
1051
+ .cross-shapes-btn {
1052
+ height: 32PX;
1053
+ width: 90PX;
1054
+ line-height: 32PX;
1055
+ padding: 0;
1056
+ }
1022
1057
  </style>
@@ -112,7 +112,7 @@ export default {
112
112
  return data.direction.map(dir => {
113
113
  return {
114
114
  id: dir,
115
- peddirection: this.getshowped(data.peddirection),
115
+ peddirection: data.peddirection ? this.getshowped(data.peddirection) : [],
116
116
  color: '#1E1E1E'
117
117
  }
118
118
  })
@@ -120,7 +120,7 @@ export default {
120
120
  return [
121
121
  {
122
122
  id: '',
123
- peddirection: this.getshowped(data.peddirection),
123
+ peddirection: data.peddirection ? this.getshowped(data.peddirection) : [],
124
124
  color: '#1E1E1E'
125
125
  }
126
126
  ]
@@ -148,6 +148,10 @@ export default {
148
148
  refresh () {
149
149
  // 刷新底图
150
150
  this.$refs.intersectionMap2.resetCrossDiagram()
151
+ },
152
+ refreshArrow () {
153
+ // 高亮箭头按最新数据刷新
154
+ this.$refs.intersectionMap2.refreshArrow()
151
155
  }
152
156
  },
153
157
  mounted () {
@@ -1263,8 +1263,10 @@ export default {
1263
1263
  init () {
1264
1264
  this.sidewalkData = JSON.parse(JSON.stringify(this.Data))
1265
1265
  this.getPedDirection()
1266
- this.handleStatus()
1267
- this.IconAddEvent()
1266
+ this.$nextTick(() => {
1267
+ this.handleStatus()
1268
+ this.IconAddEvent()
1269
+ })
1268
1270
  }
1269
1271
  },
1270
1272
  mounted () {
@@ -879,7 +879,16 @@ export default {
879
879
  return
880
880
  }
881
881
  this.isLoaded = true
882
- this.tempType = res.data.data.type
882
+ this.InfoRes = res
883
+ this.handleInfo(res)
884
+ })
885
+ },
886
+ refreshArrow () {
887
+ // 刷新所选方向箭头,不重新请求接口
888
+ this.handleInfo(this.InfoRes)
889
+ },
890
+ handleInfo (res) {
891
+ this.tempType = res.data.data.type
883
892
  // 获取车道相位、行人相位信息(坐标、名称)
884
893
  this.mainType = this.tempType.split('-')[0]
885
894
  this.mainDirection = this.tempType.split('-')[1]
@@ -888,13 +897,11 @@ export default {
888
897
  this.getMergeDirections()
889
898
  }
890
899
  if (this.isVipRoute && !this.isThirdSignal && !this.isRcp) {
891
- alert('1')
892
900
  // 特勤、分组管控下,非第三方设备且不是rcp协议,按通道显示相位方向;第三方设备和rcp协议还是按路口相位配置显示相位方向
893
901
  this.getChannelInfo()
894
902
  return
895
903
  }
896
904
  if (this.channelType && !this.isThirdSignal) {
897
- alert('2')
898
905
  this.getChannelInfo()
899
906
  return
900
907
  }
@@ -915,7 +922,6 @@ export default {
915
922
  this.contrloType = 'ring'
916
923
  }
917
924
  }
918
- })
919
925
  },
920
926
  getTempCrossInfo (res) {
921
927
  this.crossInfo = res.data.data.param
@@ -938,7 +944,6 @@ export default {
938
944
  this.drawDefaultPhaseIcon()
939
945
  }
940
946
  if ((this.isVipRoute && this.isThirdSignal) || (this.isVipRoute && this.isRcp)) {
941
- alert('3')
942
947
  this.LanePhaseData = this.CrossDiagramMgr.compare(this.LanePhaseData, this.overlapLanePhaseData, 'type', 'nostatus')
943
948
  // console.log(this.LanePhaseData)
944
949
  this.sidewalkPhaseData = this.CrossDiagramMgr.compare(this.sidewalkPhaseData, this.overlapsidewalkPhaseData, 'pedtype', 'nostatus')
@@ -1370,7 +1375,6 @@ export default {
1370
1375
  const targetIds = [4, 8, 12, 16] // 掉头相位后画
1371
1376
  this.LanePhaseData = this.LanePhaseData.filter(item => !targetIds.includes(item.id)).concat(this.LanePhaseData.filter(item => targetIds.includes(item.id)))
1372
1377
  if (!this.isThirdSignal && this.isVipRoute && !this.isRcp) {
1373
- alert('4')
1374
1378
  await this.getConflictList()
1375
1379
  this.handleClickedPhase()
1376
1380
  this.compLanePhaseData = JSON.parse(JSON.stringify(this.LanePhaseData))
@@ -1421,7 +1425,7 @@ export default {
1421
1425
  this.EmitAllChoosedDirection(curClickedPhase)
1422
1426
  },
1423
1427
  handleClickedPedPhase () {
1424
- if (!this.isThirdSignal) {
1428
+ if (!this.isThirdSignal && !this.isRcp) {
1425
1429
  this.inneChoosedPedDirection = this.inneChoosedPedDirection.filter(dir => this.pedConflictList.indexOf(dir) === -1)
1426
1430
  }
1427
1431
  // 排他
@@ -191,6 +191,11 @@ export default {
191
191
  this.reset = true
192
192
  })
193
193
  },
194
+ refreshArrow () {
195
+ this.$nextTick(() => {
196
+ this.$refs.crossDiagram.refreshArrow()
197
+ })
198
+ },
194
199
  getParentSize () {
195
200
  // 获取最外层dom尺寸,适配准备
196
201
  var _this = this
@@ -2,6 +2,7 @@
2
2
  <!-- 渠化绘制demo -->
3
3
  <div style="height: 100%;">
4
4
  <custom-channelization
5
+ :tscParam="tscParams"
5
6
  :AgentId="agentId" />
6
7
  <!-- <CustomChannelization
7
8
  :AgentId="agentId"
@@ -16,7 +17,7 @@ export default {
16
17
  name: 'custom-channelization-demo',
17
18
  data () {
18
19
  return {
19
- agentId: '13000000000000000003',
20
+ agentId: '16005',
20
21
  tscParams: {}
21
22
  }
22
23
  },
@@ -39,7 +40,7 @@ export default {
39
40
  created () {
40
41
  },
41
42
  mounted () {
42
- // this.getIntersectionInfo()
43
+ this.getIntersectionInfo()
43
44
  },
44
45
  destroyed () {
45
46
  }
@@ -11,7 +11,7 @@
11
11
  <h2>基础路口图方向显示、选择组件</h2>
12
12
  <!-- channelType是按通道显示方向;不传按相位显示方向 -->
13
13
  <!-- clickMode是否开启方向选择功能 -->
14
- <el-button @click="clear"></el-button>
14
+ <el-button @click="clear" style="color: #fff;">清空</el-button>
15
15
  <!-- <custom-intersection-base-map
16
16
  ref="intersectionMap3"
17
17
  clickMode
@@ -51,21 +51,15 @@
51
51
  :choosedPedDirection="[3,4]"
52
52
  :roadDirection="roadDirection" /> -->
53
53
  <el-button @click="refresh">刷新特勤路口底图</el-button>
54
+ <el-button @click="changeChoosedDir" style="color: #fff;">重置所选方向</el-button>
54
55
  <!-- <intersection-direction-selection
55
56
  ref="selectMap"
56
- :agentId="16005"
57
+ agentId="16005"
57
58
  :clickMode="false"
58
- :choosedDirection="[14,6,13,8]"
59
- :choosedPedDirection="[1]"
59
+ :choosedDirection="choosedDirection"
60
+ :choosedPedDirection="choosedPedDirection"
60
61
  :roadDirection="roadDirection" /> -->
61
62
 
62
- <intersection-direction-selection
63
- agentId="16005"
64
- :clickMode="false"
65
- roadDirection="right"
66
- :choosedDirection="[]"
67
- :choosedPedDirection="[]" />
68
-
69
63
  <!-- <button @click="lockPhase" >相位锁定</button><br/>
70
64
  <button @click="unlockPhase" >解锁相位</button><br/>
71
65
  <button @click="changeControlPattern" >改变控制方案</button><br/>
@@ -128,7 +122,7 @@
128
122
  <!-- <Stages :stagesList="stagesList"
129
123
  :currentStage="currentStage"
130
124
  @onSelectStages="onSelectStages"></Stages> -->
131
- <div style="height: 100px;">
125
+ <!-- <div style="height: 100px;">
132
126
  <PhaseLegend :crossStatusData="tscControlData"
133
127
  :phaseList="phaseList"
134
128
  showDataType="phase"
@@ -143,18 +137,22 @@
143
137
  :showStyle="{top:'2PX',left:'9px'}"
144
138
  :showStyles="{top:'0PX',left:'7px'}"
145
139
  ></PhaseLegend>
146
- </div>
140
+ </div> -->
147
141
 
148
- <!-- <h2 style="color: #fff;">渠化图</h2>
149
- <channelization-with-interface
142
+ <h2 style="color: #fff;">渠化图</h2>
143
+ <!-- <channelization-with-interface
150
144
  ref="channelization"
151
145
  :AgentId="agentId"
152
146
  :reqUrl="reqUrl"
153
147
  :Token="Token"
154
148
  @getTscControl="getTscControl"
155
- @onPhaseChange="onPhaseChange"/>
149
+ @onPhaseChange="onPhaseChange"/> -->
150
+ <channelization
151
+ AgentId="16005"
152
+ :crossStatusData="crossStatusData2"
153
+ :detectorStatusData="{}" />
156
154
 
157
- <h2 style="color: #fff;">流量统计渠化路口图</h2>
155
+ <!-- <h2 style="color: #fff;">流量统计渠化路口图</h2>
158
156
  <channelization-flow-statistic
159
157
  :AgentId="agentId"
160
158
  :phasesStatisticsList="phasesStatisticsList"
@@ -183,12 +181,12 @@ export default {
183
181
  return {
184
182
  roadDirection: 'right',
185
183
  // reqUrl: 'http://192.168.13.103:10003/openatc',
186
- agentId: '1059',
184
+ agentId: '16005',
187
185
  // agentId: '13013',
188
186
  // agentId: '12007_390',
189
187
  // agentId: '12014',
190
188
  reqUrl: 'http://192.168.13.103:10003/openatc',
191
- Token: 'eyJraWQiOiIxNzYwNjc3OTM3NjY2IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc2MDY4MTUzNywiaWF0IjoxNzYwNjc0MzM3fQ.QaiAkg_IxWP9rvcmL22GrHU3BTjw9x8S8oMMpolKFZo',
189
+ Token: 'eyJraWQiOiIxNzYxMTgyODkxNDMzIiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc2MTE4NjQ4OSwiaWF0IjoxNzYxMTc5Mjg5fQ.UHfHzNNby-Y-kee-83_4KEjESDIf4InAvmYSmVmLvk4',
192
190
  // agentId: '30003-352',
193
191
  // reqUrl: 'https://kints-dev.devdolphin.com/openatc',
194
192
  // Token: 'eyJraWQiOiIxNjUwNTA5MDI2ODk2IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ4aWFvbWluZyIsImV4cCI6MTczNjkwOTAyNiwiaWF0IjoxNjUwNTA5MDI2fQ.-s4T-uMRmB2zf9yer87USKQXLY1a12Zq5lCOnqjNmfA',
@@ -348,7 +346,134 @@ export default {
348
346
  tscControlData: {},
349
347
  phaseList: [],
350
348
  choosedDirection: [1, 5],
351
- choosedPedDirection: [3]
349
+ choosedPedDirection: [3],
350
+ crossStatusData2: {
351
+ 'phase': [
352
+ {
353
+ 'id': 1,
354
+ 'type': 3,
355
+ 'pedtype': 3
356
+ },
357
+ {
358
+ 'id': 2,
359
+ 'type': 1,
360
+ 'pedtype': 1
361
+ },
362
+ {
363
+ 'id': 3,
364
+ 'type': 1,
365
+ 'pedtype': 1
366
+ },
367
+ {
368
+ 'id': 4,
369
+ 'type': 1,
370
+ 'pedtype': 1
371
+ }
372
+ ],
373
+ 'mode': 0,
374
+ 'control': 5,
375
+ 'patternid': 2,
376
+ 'cycle': 107,
377
+ 'patternoffset': 0,
378
+ 'stages': [
379
+ [
380
+ 1
381
+ ],
382
+ [
383
+ 2
384
+ ],
385
+ [
386
+ 3
387
+ ],
388
+ [
389
+ 4
390
+ ],
391
+ [
392
+ 1
393
+ ],
394
+ [
395
+ 2
396
+ ],
397
+ [
398
+ 3
399
+ ],
400
+ [
401
+ 4
402
+ ],
403
+ [
404
+ 1
405
+ ],
406
+ [
407
+ 2
408
+ ],
409
+ [
410
+ 3
411
+ ],
412
+ [
413
+ 4
414
+ ],
415
+ [
416
+ 1
417
+ ],
418
+ [
419
+ 2
420
+ ],
421
+ [
422
+ 3
423
+ ],
424
+ [
425
+ 4
426
+ ]
427
+ ],
428
+ 'stages_len': [
429
+ 0,
430
+ 0,
431
+ 0,
432
+ 0,
433
+ 0,
434
+ 0,
435
+ 0,
436
+ 0,
437
+ 0,
438
+ 0,
439
+ 0,
440
+ 0,
441
+ 0,
442
+ 0,
443
+ 0,
444
+ 0
445
+ ],
446
+ 'stages_seq': [
447
+ 1,
448
+ 2,
449
+ 3,
450
+ 4,
451
+ 5,
452
+ 6,
453
+ 7,
454
+ 8,
455
+ 9,
456
+ 10,
457
+ 11,
458
+ 12,
459
+ 13,
460
+ 14,
461
+ 15,
462
+ 16
463
+ ],
464
+ 'current_stage': 1,
465
+ 'current_stagecd': 0,
466
+ 'offset': 0,
467
+ 'current_phase': [
468
+ 1
469
+ ],
470
+ 'next_phase': [
471
+ 2
472
+ ],
473
+ 'rings': [],
474
+ 'curTime': 43,
475
+ 'syncTime': 64
476
+ }
352
477
  }
353
478
  },
354
479
  components: {
@@ -481,6 +606,11 @@ export default {
481
606
  this.choosedDirection = []
482
607
  this.choosedPedDirection = []
483
608
  this.$refs.intersectionMap3.resetCrossDiagram()
609
+ },
610
+ changeChoosedDir () {
611
+ this.choosedDirection = [2]
612
+ this.choosedPedDirection = [4]
613
+ this.$refs.selectMap.refreshArrow()
484
614
  }
485
615
  },
486
616
  created () {