openatc-components 0.1.133 → 0.1.136

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 (431) hide show
  1. package/.babelrc +18 -18
  2. package/.editorconfig +9 -9
  3. package/.eslintignore +5 -5
  4. package/.eslintrc.js +29 -29
  5. package/.postcssrc.js +10 -10
  6. package/README.md +30 -30
  7. package/build/build.js +41 -41
  8. package/build/check-versions.js +54 -54
  9. package/build/package.config.js +58 -58
  10. package/build/package.dev.config.js +107 -107
  11. package/build/package.prod.config.js +160 -160
  12. package/build/utils.js +101 -101
  13. package/build/vue-loader.conf.js +22 -22
  14. package/build/webpack.base.conf.js +114 -114
  15. package/build/webpack.dev.conf.js +95 -95
  16. package/build/webpack.prod.conf.js +149 -149
  17. package/config/dev.env.js +8 -8
  18. package/config/index.js +91 -91
  19. package/config/prod.env.js +5 -5
  20. package/config/test.env.js +7 -7
  21. package/index.html +12 -12
  22. package/package/kisscomps/components/BoardCard/BoardCard.vue +99 -99
  23. package/package/kisscomps/components/BoardCard/index.js +2 -2
  24. package/package/kisscomps/components/Channelization/Channelization.vue +556 -556
  25. package/package/kisscomps/components/Channelization/index.js +2 -2
  26. package/package/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +361 -361
  27. package/package/kisscomps/components/ChannelizationFlowStatistic/index.js +2 -2
  28. package/package/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +518 -518
  29. package/package/kisscomps/components/ChannelizationWithInterface/index.js +2 -2
  30. package/package/kisscomps/components/CommonKanban/CommonKanban.vue +123 -123
  31. package/package/kisscomps/components/CommonKanban/index.js +2 -2
  32. package/package/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +181 -181
  33. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +255 -255
  34. package/package/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -152
  35. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -91
  36. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +194 -194
  37. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -108
  38. package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +51 -51
  39. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +236 -236
  40. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +247 -247
  41. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +210 -210
  42. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +72 -72
  43. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +455 -455
  44. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +219 -219
  45. package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +74 -74
  46. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +1005 -1005
  47. package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +110 -110
  48. package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +707 -707
  49. package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +168 -168
  50. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +168 -168
  51. package/package/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -99
  52. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +87 -87
  53. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -32
  54. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -20
  55. package/package/kisscomps/components/DrawChannelization/index.js +2 -2
  56. package/package/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -278
  57. package/package/kisscomps/components/ExpendConfig/ExpendConfig.vue +114 -114
  58. package/package/kisscomps/components/ExpendConfig/index.js +2 -2
  59. package/package/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +170 -170
  60. package/package/kisscomps/components/FaultDetailModal/index.js +2 -2
  61. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +497 -497
  62. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  63. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +300 -300
  64. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +288 -288
  65. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +391 -391
  66. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +336 -336
  67. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +345 -345
  68. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +389 -389
  69. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1179 -1179
  70. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +402 -402
  71. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +361 -361
  72. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +368 -368
  73. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +475 -475
  74. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +494 -494
  75. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +401 -401
  76. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +360 -360
  77. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +367 -367
  78. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +476 -476
  79. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  80. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  81. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  82. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  83. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  84. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  85. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +920 -920
  86. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +112 -112
  87. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +112 -112
  88. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +111 -111
  89. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  90. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  91. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +99 -99
  92. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +99 -99
  93. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  94. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +171 -171
  95. package/package/kisscomps/components/IntersectionMap/crossDirection/utils.js +78 -78
  96. package/package/kisscomps/components/IntersectionMap/index.js +2 -2
  97. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +163 -163
  98. package/package/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +528 -528
  99. package/package/kisscomps/components/IntersectionWithInterface/index.js +2 -2
  100. package/package/kisscomps/components/KanBan/index.js +2 -2
  101. package/package/kisscomps/components/KanBan/kanban.vue +221 -221
  102. package/package/kisscomps/components/MessageBox/index.vue +96 -96
  103. package/package/kisscomps/components/OverLap/OverLap.vue +214 -214
  104. package/package/kisscomps/components/OverLap/index.js +2 -2
  105. package/package/kisscomps/components/PatternOptimize/PatternOptimize.vue +272 -272
  106. package/package/kisscomps/components/PatternOptimize/index.js +2 -2
  107. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +1366 -1366
  108. package/package/kisscomps/components/PatternStatus/index.js +2 -2
  109. package/package/kisscomps/components/PatternWalkSvg/PatternWalkSvg.vue +423 -423
  110. package/package/kisscomps/components/PatternWalkSvg/index.js +2 -2
  111. package/package/kisscomps/components/PhaseDirectionSelect/PhaseDirectionSelect.vue +126 -126
  112. package/package/kisscomps/components/PhaseDirectionSelect/index.js +2 -2
  113. package/package/kisscomps/components/PhaseDirectionText/PhaseDirectionText.vue +106 -106
  114. package/package/kisscomps/components/PhaseDirectionText/index.js +2 -2
  115. package/package/kisscomps/components/PhaseMarker/index.js +6 -6
  116. package/package/kisscomps/components/PhaseMarker/phasemarker.vue +215 -215
  117. package/package/kisscomps/components/PhaseMarker/svg/patternSvg.vue +121 -121
  118. package/package/kisscomps/components/PhaseMarker/svg/phase.vue +60 -60
  119. package/package/kisscomps/components/PhaseMarker/svg/phaseCount.vue +62 -62
  120. package/package/kisscomps/components/PhaseMarker/svg/phaseCountCycle.vue +62 -62
  121. package/package/kisscomps/components/PhaseMarker/svg/phaseSvg.vue +117 -117
  122. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +817 -817
  123. package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +272 -313
  124. package/package/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +92 -92
  125. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +195 -195
  126. package/package/kisscomps/components/SchemeConfig/index.js +2 -2
  127. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +198 -198
  128. package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +226 -228
  129. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +197 -197
  130. package/package/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -163
  131. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +275 -275
  132. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +840 -840
  133. package/package/kisscomps/components/StageBord/StageBord.vue +242 -242
  134. package/package/kisscomps/components/StageBord/index.js +2 -2
  135. package/package/kisscomps/components/StageStatus/StageStatus.vue +341 -341
  136. package/package/kisscomps/components/StageStatus/index.js +2 -2
  137. package/package/kisscomps/components/Stages/index.vue +181 -211
  138. package/package/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  139. package/package/kisscomps/components/SvgIcon/index.js +2 -2
  140. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +995 -998
  141. package/package/kisscomps/components/XRDDirSelector/index.js +2 -2
  142. package/package/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
  143. package/package/kisscomps/components/XiaoKanban/index.vue +101 -0
  144. package/package/kisscomps/components/overView/index.vue +699 -699
  145. package/package/kisscomps/components/patternConfig/components/planExecute.vue +972 -0
  146. package/package/kisscomps/components/patternConfig/index.js +2 -0
  147. package/package/kisscomps/components/patternConfig/index.vue +1020 -0
  148. package/package/kisscomps/components/patternConfig/pattern/patternTable.vue +391 -0
  149. package/package/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
  150. package/package/kisscomps/components/patternConfig/planContent.vue +572 -0
  151. package/package/kisscomps/components/patternConfig/planMenu.vue +329 -0
  152. package/package/kisscomps/components/patternConfig/utils.js +152 -0
  153. package/package/kisscomps/components/patternList/index.js +2 -2
  154. package/package/kisscomps/components/patternList/patternList.vue +572 -572
  155. package/package/kisscomps/index.js +119 -115
  156. package/package/kissui.min.js +1 -1
  157. package/package.json +14 -13
  158. package/pnpm-lock.yaml +11682 -0
  159. package/src/App.vue +24 -24
  160. package/src/EdgeMgr/EdgeModelBase.js +16 -16
  161. package/src/EdgeMgr/controller/crossDiagramMgr.js +120 -120
  162. package/src/api/authapi.js +31 -31
  163. package/src/api/config.js +21 -21
  164. package/src/api/control.js +102 -91
  165. package/src/api/cross.js +49 -49
  166. package/src/api/device.js +135 -0
  167. package/src/api/fault.js +66 -66
  168. package/src/api/index.js +24 -24
  169. package/src/api/login.js +46 -46
  170. package/src/api/optimize.js +72 -72
  171. package/src/api/param.js +154 -154
  172. package/src/api/passwdAssest.js +101 -101
  173. package/src/api/route.js +171 -0
  174. package/src/api/template.js +27 -27
  175. package/src/i18n/index.js +26 -26
  176. package/src/i18n/language/en.js +1401 -1300
  177. package/src/i18n/language/index.js +25 -25
  178. package/src/i18n/language/zh.js +1416 -1299
  179. package/src/icons/demo.css +539 -539
  180. package/src/icons/iconfont.css +1183 -1183
  181. package/src/icons/iconfont.json +2053 -2053
  182. package/src/icons/index.js +20 -20
  183. package/src/icons/svg/azimuthlocking.svg +26 -26
  184. package/src/icons/svg/bendi.svg +110 -110
  185. package/src/icons/svg/bujin.svg +36 -36
  186. package/src/icons/svg/connectBlue.svg +7 -7
  187. package/src/icons/svg/currentvolume.svg +0 -0
  188. package/src/icons/svg/custom-BRTlane.svg +40 -40
  189. package/src/icons/svg/custom-buslane.svg +40 -40
  190. package/src/icons/svg/custom-detector.svg +12 -12
  191. package/src/icons/svg/custom-east-bottom.svg +32 -32
  192. package/src/icons/svg/custom-east-top.svg +32 -32
  193. package/src/icons/svg/custom-ewped.svg +35 -35
  194. package/src/icons/svg/custom-nonmotorizedlane.svg +40 -40
  195. package/src/icons/svg/custom-north-left.svg +32 -32
  196. package/src/icons/svg/custom-north-right.svg +32 -32
  197. package/src/icons/svg/custom-peddetector.svg +17 -17
  198. package/src/icons/svg/custom-snped.svg +35 -35
  199. package/src/icons/svg/custom-south-left.svg +32 -32
  200. package/src/icons/svg/custom-south-right.svg +32 -32
  201. package/src/icons/svg/custom-tramlane.svg +40 -40
  202. package/src/icons/svg/custom-vehiclebranch.svg +40 -40
  203. package/src/icons/svg/custom-vehiclemainroad.svg +41 -41
  204. package/src/icons/svg/custom-west-bottom.svg +32 -32
  205. package/src/icons/svg/custom-west-top.svg +32 -32
  206. package/src/icons/svg/custom-xlped.svg +14 -14
  207. package/src/icons/svg/custom-xrped.svg +14 -14
  208. package/src/icons/svg/cutRed.svg +7 -7
  209. package/src/icons/svg/cycle.svg +0 -0
  210. package/src/icons/svg/dingzhouqi.svg +34 -34
  211. package/src/icons/svg/ganyingkongzhi.svg +30 -30
  212. package/src/icons/svg/guandeng.svg +81 -81
  213. package/src/icons/svg/huangshan.svg +71 -71
  214. package/src/icons/svg/maincontrol.svg +0 -0
  215. package/src/icons/svg/manualcontrolbackground.svg +51 -51
  216. package/src/icons/svg/manualcontrolbackground1.svg +62 -62
  217. package/src/icons/svg/manualcontrolbackgrounden.svg +62 -62
  218. package/src/icons/svg/model.svg +0 -0
  219. package/src/icons/svg/phasediff.svg +0 -0
  220. package/src/icons/svg/prioritycontrol.svg +21 -21
  221. package/src/icons/svg/quanhong.svg +86 -86
  222. package/src/icons/svg/shanghe.svg +11 -11
  223. package/src/icons/svg/shoudong.svg +103 -103
  224. package/src/icons/svg/tentativeplan.svg +28 -28
  225. package/src/icons/svg/time.svg +0 -0
  226. package/src/icons/svg/wuxianlan.svg +46 -46
  227. package/src/icons/svg/xiala.svg +11 -11
  228. package/src/icons/svg/xingrenguojie.svg +33 -33
  229. package/src/icons/svg/xitong.svg +89 -89
  230. package/src/icons/svg/youxian.svg +41 -41
  231. package/src/icons/svg/zizhukongzhi.svg +43 -43
  232. package/src/kisscomps/components/BoardCard/BoardCard.vue +99 -99
  233. package/src/kisscomps/components/BoardCard/index.js +2 -2
  234. package/src/kisscomps/components/Channelization/Channelization.vue +556 -556
  235. package/src/kisscomps/components/Channelization/index.js +2 -2
  236. package/src/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +361 -361
  237. package/src/kisscomps/components/ChannelizationFlowStatistic/index.js +2 -2
  238. package/src/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +518 -518
  239. package/src/kisscomps/components/ChannelizationWithInterface/index.js +2 -2
  240. package/src/kisscomps/components/CommonKanban/CommonKanban.vue +123 -123
  241. package/src/kisscomps/components/CommonKanban/index.js +2 -2
  242. package/src/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +181 -181
  243. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +255 -255
  244. package/src/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -152
  245. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -91
  246. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +194 -194
  247. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -108
  248. package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +51 -51
  249. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +236 -236
  250. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +247 -247
  251. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +210 -210
  252. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +72 -72
  253. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +455 -455
  254. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +219 -219
  255. package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +74 -74
  256. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +1005 -1005
  257. package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +110 -110
  258. package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +707 -707
  259. package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +168 -168
  260. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +168 -168
  261. package/src/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -99
  262. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +87 -87
  263. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -32
  264. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -20
  265. package/src/kisscomps/components/DrawChannelization/index.js +2 -2
  266. package/src/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -278
  267. package/src/kisscomps/components/ExpendConfig/ExpendConfig.vue +114 -114
  268. package/src/kisscomps/components/ExpendConfig/index.js +2 -2
  269. package/src/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +170 -170
  270. package/src/kisscomps/components/FaultDetailModal/index.js +2 -2
  271. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +497 -497
  272. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  273. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +300 -300
  274. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +288 -288
  275. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +391 -391
  276. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +336 -336
  277. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +345 -345
  278. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +389 -389
  279. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1179 -1179
  280. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +402 -402
  281. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +361 -361
  282. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +368 -368
  283. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +475 -475
  284. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +494 -494
  285. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +401 -401
  286. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +360 -360
  287. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +367 -367
  288. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +476 -476
  289. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  290. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  291. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  292. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  293. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  294. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  295. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +920 -920
  296. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +112 -112
  297. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +112 -112
  298. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +111 -111
  299. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  300. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  301. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +99 -99
  302. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +99 -99
  303. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  304. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +171 -171
  305. package/src/kisscomps/components/IntersectionMap/crossDirection/utils.js +78 -78
  306. package/src/kisscomps/components/IntersectionMap/index.js +2 -2
  307. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +163 -163
  308. package/src/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +528 -528
  309. package/src/kisscomps/components/IntersectionWithInterface/index.js +2 -2
  310. package/src/kisscomps/components/KanBan/index.js +2 -2
  311. package/src/kisscomps/components/KanBan/kanban.vue +221 -221
  312. package/src/kisscomps/components/MessageBox/index.vue +96 -96
  313. package/src/kisscomps/components/OverLap/OverLap.vue +214 -214
  314. package/src/kisscomps/components/OverLap/index.js +2 -2
  315. package/src/kisscomps/components/PatternOptimize/PatternOptimize.vue +272 -272
  316. package/src/kisscomps/components/PatternOptimize/index.js +2 -2
  317. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +1366 -1366
  318. package/src/kisscomps/components/PatternStatus/index.js +2 -2
  319. package/src/kisscomps/components/PatternWalkSvg/PatternWalkSvg.vue +423 -423
  320. package/src/kisscomps/components/PatternWalkSvg/index.js +2 -2
  321. package/src/kisscomps/components/PhaseDirectionSelect/PhaseDirectionSelect.vue +126 -126
  322. package/src/kisscomps/components/PhaseDirectionSelect/index.js +2 -2
  323. package/src/kisscomps/components/PhaseDirectionText/PhaseDirectionText.vue +106 -106
  324. package/src/kisscomps/components/PhaseDirectionText/index.js +2 -2
  325. package/src/kisscomps/components/PhaseMarker/index.js +6 -6
  326. package/src/kisscomps/components/PhaseMarker/phasemarker.vue +215 -215
  327. package/src/kisscomps/components/PhaseMarker/svg/patternSvg.vue +121 -121
  328. package/src/kisscomps/components/PhaseMarker/svg/phase.vue +60 -60
  329. package/src/kisscomps/components/PhaseMarker/svg/phaseCount.vue +62 -62
  330. package/src/kisscomps/components/PhaseMarker/svg/phaseCountCycle.vue +62 -62
  331. package/src/kisscomps/components/PhaseMarker/svg/phaseSvg.vue +117 -117
  332. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +817 -817
  333. package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +272 -313
  334. package/src/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +92 -92
  335. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +195 -195
  336. package/src/kisscomps/components/SchemeConfig/index.js +2 -2
  337. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +198 -198
  338. package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +226 -228
  339. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +197 -197
  340. package/src/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -163
  341. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +275 -275
  342. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +840 -840
  343. package/src/kisscomps/components/StageBord/StageBord.vue +242 -242
  344. package/src/kisscomps/components/StageBord/index.js +2 -2
  345. package/src/kisscomps/components/StageStatus/StageStatus.vue +341 -341
  346. package/src/kisscomps/components/StageStatus/index.js +2 -2
  347. package/src/kisscomps/components/Stages/index.vue +181 -211
  348. package/src/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  349. package/src/kisscomps/components/SvgIcon/index.js +2 -2
  350. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +995 -998
  351. package/src/kisscomps/components/XRDDirSelector/index.js +2 -2
  352. package/src/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
  353. package/src/kisscomps/components/XiaoKanban/index.vue +101 -0
  354. package/src/kisscomps/components/overView/index.vue +699 -699
  355. package/src/kisscomps/components/patternConfig/components/planExecute.vue +972 -0
  356. package/src/kisscomps/components/patternConfig/index.js +2 -0
  357. package/src/kisscomps/components/patternConfig/index.vue +1020 -0
  358. package/src/kisscomps/components/patternConfig/pattern/patternTable.vue +391 -0
  359. package/src/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
  360. package/src/kisscomps/components/patternConfig/planContent.vue +572 -0
  361. package/src/kisscomps/components/patternConfig/planMenu.vue +329 -0
  362. package/src/kisscomps/components/patternConfig/utils.js +152 -0
  363. package/src/kisscomps/components/patternList/index.js +2 -2
  364. package/src/kisscomps/components/patternList/patternList.vue +572 -572
  365. package/src/kisscomps/index.js +119 -115
  366. package/src/lib/publicjs/ArryListUtil.js +38 -38
  367. package/src/lib/publicjs/HttpurlMgr.js +45 -45
  368. package/src/lib/publicjs/KissApi.js +158 -158
  369. package/src/lib/publicjs/KissWSSub/Heartcheck.js +128 -128
  370. package/src/lib/publicjs/KissWSSub/KissWsSub.js +91 -91
  371. package/src/lib/publicjs/KissWSSub/KissWsSubByType.js +152 -152
  372. package/src/lib/publicjs/KissWSSub/SimuWsSubByType.js +44 -44
  373. package/src/lib/publicjs/KissWSSub/Sub.js +51 -51
  374. package/src/lib/publicjs/KissWSSub/SubChannel.js +119 -119
  375. package/src/lib/publicjs/basecomponents.js +65 -65
  376. package/src/lib/publicjs/localStorage.js +112 -112
  377. package/src/lib/publicjs/objdeepcopy.js +32 -32
  378. package/src/lib/publicjs/pageScroll.js +30 -30
  379. package/src/lib/publicjs/passwdAssest.js +101 -101
  380. package/src/lib/publicjs/styleclassfactory.js +32 -32
  381. package/src/main.js +50 -50
  382. package/src/router/index.js +56 -49
  383. package/src/store/getters.js +16 -16
  384. package/src/store/index.js +26 -26
  385. package/src/store/modules/globalParam.js +67 -67
  386. package/src/utils/ControlFormat.js +68 -68
  387. package/src/utils/RingDataModel.js +251 -251
  388. package/src/utils/auth.js +191 -178
  389. package/src/utils/dateFormat.js +41 -41
  390. package/src/utils/errorcode.js +228 -228
  391. package/src/utils/fault.js +196 -196
  392. package/src/utils/faultcode.js +209 -209
  393. package/src/utils/index.js +69 -69
  394. package/src/utils/pedphasedesc.js +119 -119
  395. package/src/utils/phaseList.js +203 -203
  396. package/src/utils/phasedesc.js +124 -124
  397. package/src/utils/responseMessage.js +21 -21
  398. package/src/utils/validate.js +43 -43
  399. package/src/views/customchannelization.vue +49 -49
  400. package/src/views/home.1.vue +479 -479
  401. package/src/views/home.vue +93 -93
  402. package/src/views/intersection.vue +309 -309
  403. package/src/views/overView.vue +41 -41
  404. package/src/views/patternConfig.vue +1461 -0
  405. package/src/views/schemeconfig.vue +173 -173
  406. package/static/apiconfig.json +446 -371
  407. package/static/styles/channelizatioon.scss +433 -433
  408. package/static/styles/common.scss +23 -21
  409. package/static/styles/commonkanban.scss +87 -87
  410. package/static/styles/dark/index.scss +2 -2
  411. package/static/styles/dark/theme/element-dark.scss +42 -42
  412. package/static/styles/index.scss +84 -84
  413. package/static/styles/intersection.scss +183 -183
  414. package/static/styles/light/index.scss +2 -2
  415. package/static/styles/light/theme/element-light.scss +42 -42
  416. package/static/styles/overview.scss +116 -116
  417. package/static/styles/patternConfig.scss +57 -0
  418. package/static/styles/schemeconfig.scss +493 -493
  419. package/static/styles/stages.scss +64 -64
  420. package/static/styles/uiComponents.scss +5 -5
  421. package/static/styles/xiaokanban.scss +51 -0
  422. package/static/token.json +2 -2
  423. package/test/e2e/custom-assertions/elementCount.js +27 -27
  424. package/test/e2e/nightwatch.conf.js +46 -46
  425. package/test/e2e/runner.js +48 -48
  426. package/test/e2e/specs/test.js +19 -19
  427. package/test/unit/.eslintrc +7 -7
  428. package/test/unit/jest.conf.js +30 -30
  429. package/test/unit/setup.js +3 -3
  430. package/test/unit/specs/HelloWorld.spec.js +11 -11
  431. package/src/node_modules/.package_versions.json +0 -1
@@ -1,556 +1,556 @@
1
- /**
2
- * Copyright (c) 2020 kedacom
3
- * OpenATC is licensed under Mulan PSL v2.
4
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
- * You may obtain a copy of Mulan PSL v2 at:
6
- * http://license.coscl.org.cn/MulanPSL2
7
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
- * See the Mulan PSL v2 for more details.
11
- **/
12
- <!--静态渠化路口,需要传入路口状态数据和检测器状态数据-->
13
- <template>
14
- <div class="show-channelization channelization-base-map" :class="{
15
- 'widescreenCrossImg': bodyDomWidth > 1680,
16
- 'superlargeCrossImg': bodyDomWidth <= 1680 && bodyDomWidth > 1440,
17
- 'largeCrossImg': bodyDomWidth <= 1440 && bodyDomWidth > 1280,
18
- 'middleCrossImg': bodyDomWidth <= 1280 && bodyDomWidth > 1100,
19
- 'middleCrossImg2': bodyDomWidth <= 1100 && bodyDomWidth > 960,
20
- 'smallCrossImg': bodyDomWidth <= 960 && bodyDomWidth > 890,
21
- 'smallCrossImg2': bodyDomWidth <= 890 && bodyDomWidth > 720,
22
- 'miniCrossImg': bodyDomWidth <= 720 && bodyDomWidth > 650,
23
- 'superminiCrossImg': bodyDomWidth <= 650 && bodyDomWidth > 450,
24
- 'transMiddleCrossImg': bodyDomWidth <= 450 && bodyDomWidth > 350,
25
- 'transMiddleCrossImg2': bodyDomWidth <= 350 && bodyDomWidth > 300,
26
- 'transMiddleCrossImg3': bodyDomWidth <= 300 && bodyDomWidth > 260,
27
- 'transMiniCrossImg': bodyDomWidth <= 260,
28
- 'changePaddingBottom': true }">
29
- <ChannelizationElements
30
- ref="channelizationElements"
31
- UsageMode="show"
32
- :allitem="allitem"
33
- :CrossMapVisible="CrossMapVisible"
34
- :CrossMapData="CrossMapData"
35
- :isSeletable="isSeletable"
36
- :Motorways="LanePhaseData"
37
- :Pedwalk="sidewalkPhaseData"
38
- :Countdown="Countdown"
39
- :CountdownList="phaseCountdownList"
40
- :Detector="DetectorData"
41
- :isHasPhase="isHasPhase"
42
- />
43
- </div>
44
- </template>
45
-
46
- <script>
47
- // import { mapState, mapGetters } from 'vuex'
48
- import ChannelizationElements from '../DrawChannelization/drawsvg/channelizationElements'
49
- // import { getIframdevid } from '../../../utils/auth.js'
50
- import { getChannelizatonChart } from '../../../api/cross'
51
-
52
- export default {
53
- name: 'channelization',
54
- components: {
55
- ChannelizationElements
56
- },
57
- computed: {
58
- // ...mapState({
59
- // curOpenatcAgentid: state => state.globalParam.curOpenatcAgentid
60
- // })
61
- // ,
62
- // ...mapGetters([
63
- // 'isfromatc'
64
- // ])
65
- },
66
- props: {
67
- crossStatusData: {
68
- type: Object
69
- },
70
- detectorStatusData: {
71
- type: Object
72
- },
73
- AgentId: {
74
- type: String,
75
- default: '0'
76
- }
77
- },
78
- watch: {
79
- crossStatusData: {
80
- handler: function (val) {
81
- // 路口状态数据
82
- this.statusData = JSON.parse(JSON.stringify(val))
83
- this.phaseStatusList = val.phase
84
- this.overlapStatusList = val.overlap
85
- if (val.control === 1 || val.control === 2 || val.control === 3) {
86
- // 黄闪、全红、关灯属于特殊控制,优先级最高,直接改变灯色,不用判断phase里的type,也不需要考虑跟随相位的灯色优先级
87
- this.SpecialControl(val)
88
- return
89
- }
90
- if (!val.phase && !this.overlapStatusList) {
91
- // 非特殊控制,相位和跟随相位不存在的情况下,灯色恢复默认
92
- this.handleSpecialControlStatus('默认')
93
- return
94
- }
95
- this.curPhase = val.current_phase
96
- this.isHasPhase = true
97
- this.createPhaseStatusMap()
98
- this.createOverlapPhaseStatusMap()
99
- this.getLanePhaseStatusData()
100
- this.getpedStatus()
101
- this.getCurPhaseCountdown()
102
- },
103
- // 深度观察监听
104
- deep: true
105
- },
106
- detectorStatusData: {
107
- handler: function (detectorsStatus) {
108
- // 检测器状态数据
109
- this.detectorStatusList = detectorsStatus.detector
110
- this.pedDetectorStatusList = detectorsStatus.io
111
- this.createDetectorStatusMap()
112
- this.getDetectorStatus()
113
- },
114
- deep: true
115
- },
116
- AgentId: {
117
- handler: function (val) {
118
- // 平台设备切换时,重载当前路口保存的渠化配置
119
- this.load('all')
120
- },
121
- deep: true
122
- }
123
- },
124
- data () {
125
- return {
126
- isSeletable: false,
127
- bodyDomWidth: 352,
128
- bodyDomSize: {
129
- width: 1920,
130
- height: 1080
131
- },
132
- CrossMapVisible: true, // 控制底图显示隐藏
133
- CrossMapData: {
134
- x: 400,
135
- y: 100,
136
- w: 800,
137
- h: 200,
138
- angle: 0,
139
- svgstr: '',
140
- imgfilesrc: ''
141
- }, // 管理底图数据
142
- Motorways: [],
143
- Texts: [],
144
- Pedwalk: [],
145
- Countdown: [],
146
- Detector: [],
147
- allitem: {
148
- x: 435,
149
- y: 325,
150
- w: 870,
151
- h: 650,
152
- angle: 0
153
- },
154
- LanePhaseData: [], // 车道相位数据
155
- // overlapLanePhaseData: [], // 车道跟随相位数据
156
- curPhase: [], // 当前相位列表
157
- phaseStatusList: [], // 相位状态列表
158
- phaseStatusMap: new Map(), // 相位状态映射
159
- phaseCountdownList: [], // 相位倒计时列表
160
- overlapPhaseStatusMap: new Map(), // 跟随相位状态映射
161
- ColorMap: new Map([[0, '#828282'], [1, '#ff2828'], [2, '#f7b500'], [3, '#77fb65'], [4, '#77fb65'], [5, '#f7b500']]), // 当前相位状态 --- 0:关灯, 1:红, 2:黄, 3:绿, 4:绿闪, 5:黄闪
162
- SidewalkColorMap: new Map([[0, '#828282'], [1, '#e24b4b'], [3, '#7bd66b']]),
163
- phaseControlColorMap: new Map([['黄闪', '#f7b500'], ['全红', '#ff2828'], ['关灯', '#828282'], ['默认', '#fff']]),
164
- sidewalkPhaseData: [], // 行人相位
165
- isHasPhase: true, // 是否有相位状态数据
166
-
167
- detectorStatusList: [], // 车辆检测器状态列表
168
- pedDetectorStatusList: [], // 行人检测器状态列表
169
- detectorStatusMap: new Map(), // 车辆检测器状态映射
170
- pedDetectorStatusMap: new Map(), // 行人检测器状态映射
171
- DetectorData: [], // 检测器数据(包括车辆和行人)
172
- DetectorColorMap: new Map([[0, 'transparent'], [1, '#00CCFF'], [2, '#FF0000']]) // 检测器状态填充颜色定义 0: 低电平 无车, 1: 高电平 有车, 2: 故障
173
- }
174
- },
175
- methods: {
176
- createPhaseStatusMap () {
177
- // 生成相位id和相位状态对应数据结构
178
- this.phaseStatusList.map(phase => {
179
- let phaseId = phase.id
180
- let phaseInfo = {
181
- type: phase.type,
182
- phaseCountdown: phase.countdown,
183
- pedtype: phase.pedtype
184
- }
185
- this.phaseStatusMap.set(phaseId, phaseInfo)
186
- })
187
- },
188
- createOverlapPhaseStatusMap () {
189
- if (this.overlapStatusList) {
190
- this.overlapStatusList.map(phase => {
191
- let phaseId = phase.id
192
- let phaseInfo = {
193
- type: phase.type,
194
- phaseCountdown: phase.countdown,
195
- pedtype: phase.pedtype
196
- }
197
- this.overlapPhaseStatusMap.set(phaseId, phaseInfo)
198
- })
199
- }
200
- },
201
- getLanePhaseStatusData () {
202
- let curLanePhaseData = []
203
- for (let i = 0; i < this.LanePhaseData.length; i++) {
204
- let curPhaseStatus
205
- if (this.LanePhaseData[i].phasetype === 'phase') {
206
- curPhaseStatus = this.phaseStatusMap.get(this.LanePhaseData[i].phaseid)
207
- }
208
- if (this.LanePhaseData[i].phasetype === 'overlap') {
209
- curPhaseStatus = this.overlapPhaseStatusMap.get(this.LanePhaseData[i].phaseid)
210
- }
211
- // if (!curPhaseStatus) continue // 没有关联相位的车道不显示
212
- let data
213
- if (curPhaseStatus) {
214
- data = {
215
- ...this.LanePhaseData[i],
216
- type: curPhaseStatus.type,
217
- color: this.ColorMap.get(curPhaseStatus.type),
218
- phaseCountdown: curPhaseStatus.phaseCountdown,
219
- flag: 'phase' // 车道相位数据标识
220
- }
221
- } else {
222
- // 没有关联的,或者没有对应状态的,车道显示默认白色
223
- data = {
224
- ...this.LanePhaseData[i],
225
- type: undefined,
226
- color: '#fff',
227
- flag: 'phase' // 车道相位数据标识
228
- }
229
- }
230
- curLanePhaseData.push(data)
231
- }
232
- this.LanePhaseData = JSON.parse(JSON.stringify(curLanePhaseData))
233
- // console.log(this.LanePhaseData)
234
- },
235
- getpedStatus () {
236
- // 行人相位状态
237
- let curPedStatus = []
238
- for (let i = 0; i < this.sidewalkPhaseData.length; i++) {
239
- let curPhaseStatus
240
- if (this.sidewalkPhaseData[i].phasetype === 'phase') {
241
- curPhaseStatus = this.phaseStatusMap.get(this.sidewalkPhaseData[i].phaseid)
242
- }
243
- if (this.sidewalkPhaseData[i].phasetype === 'overlap') {
244
- curPhaseStatus = this.overlapPhaseStatusMap.get(this.sidewalkPhaseData[i].phaseid)
245
- }
246
- // if (!curPhaseStatus) continue
247
- let data
248
- if (curPhaseStatus) {
249
- data = {
250
- ...this.sidewalkPhaseData[i],
251
- pedtype: curPhaseStatus.pedtype,
252
- color: this.SidewalkColorMap.get(curPhaseStatus.pedtype),
253
- flag: 'ped' // 行人相位数据标识
254
- }
255
- } else {
256
- // 接口没有对应的状态
257
- data = {
258
- ...this.sidewalkPhaseData[i],
259
- pedtype: undefined,
260
- color: '#fff',
261
- flag: 'ped' // 行人相位数据标识
262
- }
263
- }
264
- curPedStatus.push(data)
265
- }
266
- this.sidewalkPhaseData = JSON.parse(JSON.stringify(curPedStatus))
267
- // this.Pedwalk = JSON.parse(JSON.stringify(this.sidewalkPhaseData))
268
- },
269
- getCurPhaseCountdown () {
270
- // 获取当前相位倒计时颜色
271
- let phaseCountdownList = []
272
- this.curPhase.forEach(curP => {
273
- this.phaseStatusList.forEach(phaseInfo => {
274
- if (phaseInfo.id === curP) {
275
- let countdownObj = {}
276
- countdownObj.id = phaseInfo.id
277
- countdownObj.phaseCountdown = phaseInfo.countdown
278
- countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
279
- phaseCountdownList.push(countdownObj)
280
- }
281
- })
282
- })
283
- this.phaseCountdownList = JSON.parse(JSON.stringify(phaseCountdownList))
284
- // console.log(this.phaseCountdownList)
285
- },
286
- // 加载
287
- load (type) {
288
- this.getChannelizatonChart().then((channelizatondata) => {
289
- let savedTemp = JSON.parse(JSON.stringify(channelizatondata))
290
- for (const [key, value] of Object.entries(savedTemp)) {
291
- if (key === 'vehile') {
292
- this.Motorways = value
293
- }
294
- if (key === 'text') {
295
- this.Texts = value
296
- }
297
- if (key === 'ped') {
298
- this.Pedwalk = value
299
- }
300
- if (key === 'countdown') {
301
- this.Countdown = value
302
- }
303
- if (key === 'detector') {
304
- this.Detector = value.filter(ele => ele.detailtype === 'detector')
305
- }
306
- if (key === 'crossMap') {
307
- this.CrossMapData = JSON.parse(JSON.stringify(value))
308
- }
309
- }
310
- this.isSeletable = false
311
- // 从接口得到所有渠化车道和人行道数据
312
- this.LanePhaseData = JSON.parse(JSON.stringify(this.Motorways))
313
- this.sidewalkPhaseData = JSON.parse(JSON.stringify(this.Pedwalk))
314
- this.DetectorData = JSON.parse(JSON.stringify(this.Detector))
315
- })
316
- },
317
- // 重置
318
- handleReset () {
319
- this.Texts = []
320
- this.Motorways = []
321
- this.Countdown = []
322
- this.phaseCountdownList = []
323
- this.Pedwalk = []
324
- this.Detector = []
325
- this.CrossMapData = {
326
- x: 400,
327
- y: 100,
328
- w: 800,
329
- h: 200,
330
- angle: 0,
331
- svgstr: '',
332
- imgfilesrc: ''
333
- }
334
- this.LanePhaseData = []
335
- this.sidewalkPhaseData = []
336
- this.DetectorData = []
337
- this.isHasPhase = true
338
- },
339
- getChannelizatonChart () {
340
- // let agentid = getIframdevid()
341
- // 路口已设置渠化,则总览默认显示渠化路口,未设置显示模版路口
342
- // if (this.isfromatc === true) {
343
- // this.$store.dispatch('SetShowHomePage', 'Graphical')
344
- // }
345
- this.handleReset()
346
- return new Promise((resolve, reject) => {
347
- getChannelizatonChart(this.AgentId).then(data => {
348
- // this.$emit('getChannelizationSetting', data)
349
- if (!data.data.success) {
350
- // let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
351
- // if (data.data.data) {
352
- // // 子类型错误
353
- // let childErrorCode = data.data.data.errorCode
354
- // if (childErrorCode) {
355
- // let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
356
- // this.$message.error(parrenterror + ',' + childerror)
357
- // }
358
- // } else {
359
- // this.$message.error(parrenterror)
360
- // }
361
- return
362
- }
363
- if (JSON.stringify(data.data.data) === '{}') return
364
- // if (this.isfromatc === true) {
365
- // this.$store.dispatch('SetShowHomePage', 'Channelization')
366
- // }
367
- this.handleReset()
368
- let channelizatondata = data.data.data
369
- resolve(channelizatondata)
370
- })
371
- })
372
- },
373
- SpecialControl (data) {
374
- switch (data.control) {
375
- case 1: this.handleSpecialControlStatus('黄闪')
376
- break
377
- case 2: this.handleSpecialControlStatus('全红')
378
- break
379
- case 3: this.handleSpecialControlStatus('关灯')
380
- break
381
- default: this.handleSpecialControlStatus('默认')
382
- }
383
- },
384
- handleSpecialControlStatus (Control) {
385
- this.$refs.channelizationElements.resetPhaseStatus()
386
- // 控制黄闪、全红、关灯、默认情况下的车道相位颜色和倒计时颜色
387
- if (Control === '默认') {
388
- // 倒计时恢复默认颜色
389
- this.phaseCountdownList.forEach(item => {
390
- item.phaseCountdown = ''
391
- item.id = ''
392
- item.phaseCountdownColor = '#fff'
393
- })
394
- }
395
- if (this.LanePhaseData.length) {
396
- const LanePhaseData = this.LanePhaseData.map(data => ({
397
- ...data,
398
- color: this.phaseControlColorMap.get(Control)
399
- }))
400
- this.LanePhaseData = JSON.parse(JSON.stringify(LanePhaseData))
401
- }
402
- if (this.sidewalkPhaseData.length) {
403
- const sidewalkPhaseData = this.sidewalkPhaseData.map(data => ({
404
- ...data,
405
- color: this.phaseControlColorMap.get(Control)
406
- }))
407
- this.sidewalkPhaseData = JSON.parse(JSON.stringify(sidewalkPhaseData))
408
- }
409
- this.isHasPhase = false
410
- },
411
- createDetectorStatusMap () {
412
- if (this.detectorStatusList) {
413
- this.detectorStatusList.map(detector => {
414
- let detectorId = detector.id
415
- let detectorInfo = {
416
- state: detector.state
417
- }
418
- this.detectorStatusMap.set(detectorId, detectorInfo)
419
- })
420
- }
421
- if (this.pedDetectorStatusList) {
422
- this.pedDetectorStatusList.map(peddetector => {
423
- let peddetectorId = peddetector.id
424
- let peddetectorInfo = {
425
- state: peddetector.state
426
- }
427
- this.pedDetectorStatusMap.set(peddetectorId, peddetectorInfo)
428
- })
429
- }
430
- // console.log(this.detectorStatusMap)
431
- // console.log(this.pedDetectorStatusMap)
432
- },
433
- getDetectorStatus () {
434
- let curDetectorData = []
435
- for (let i = 0; i < this.DetectorData.length; i++) {
436
- let curDetectorStatus
437
- let curDetectortype = this.DetectorData[i].detectortype
438
- if (curDetectortype === 1) {
439
- // 车辆检测器
440
- curDetectorStatus = this.detectorStatusMap.get(this.DetectorData[i].detectorid)
441
- }
442
- if (curDetectortype === 2) {
443
- // 行人检测器
444
- curDetectorStatus = this.pedDetectorStatusMap.get(this.DetectorData[i].detectorid)
445
- }
446
- // if (!curDetectorStatus) continue // 没有关联检测器不显示
447
- let data
448
- if (curDetectorStatus) {
449
- data = {
450
- ...this.DetectorData[i],
451
- state: curDetectorStatus.state,
452
- fillcolor: this.DetectorColorMap.get(curDetectorStatus.state),
453
- flag: curDetectortype === 1 ? 'detector' : 'peddetector' // 车道相位数据标识
454
- }
455
- } else {
456
- // 没有关联检测器的填充透明
457
- data = {
458
- ...this.DetectorData[i],
459
- state: undefined,
460
- fillcolor: 'transparent',
461
- flag: curDetectortype === 1 ? 'detector' : 'peddetector' // 车道相位数据标识
462
- }
463
- }
464
- curDetectorData.push(data)
465
- }
466
- this.DetectorData = JSON.parse(JSON.stringify(curDetectorData))
467
- },
468
- getParentSize () {
469
- // 获取最外层dom尺寸,适配准备
470
- var _this = this
471
- this.$nextTick(function () {
472
- if (this.$el.parentElement === null || this.$el.parentElement === undefined) return
473
- this.bodyDomSize.width = this.$el.parentElement.clientWidth
474
- this.bodyDomWidth = this.bodyDomSize.width
475
- window.addEventListener('resize', () => {
476
- // 定义窗口大小变更通知事件
477
- if (_this.$el.parentElement === null || _this.$el.parentElement === undefined) return
478
- _this.bodyDomSize.width = _this.$el.parentElement.clientWidth
479
- this.bodyDomWidth = this.bodyDomSize.width
480
- console.log('resize this.bodyDomSize.width', _this.bodyDomSize.width)
481
- }, false)
482
- })
483
- }
484
- },
485
- created () {
486
- this.load()
487
- },
488
- mounted () {
489
- this.getParentSize()
490
- },
491
- destroyed () {
492
- this.handleReset()
493
- }
494
- }
495
- </script>
496
-
497
- <style lang="css" rel="stylesheet/scss">
498
- .show-channelization {
499
- position: relative;
500
- overflow: hidden;
501
- }
502
- .widescreenCrossImg {
503
- zoom: 1.3;
504
- }
505
- .superlargeCrossImg {
506
- zoom: 1.3;
507
- }
508
- .largeCrossImg {
509
- zoom: 1.2;
510
- }
511
- .middleCrossImg {
512
- zoom: 1;
513
- }
514
- .middleCrossImg2 {
515
- zoom: 0.8;
516
- }
517
- .smallCrossImg {
518
- zoom: 0.8;
519
- }
520
- .smallCrossImg2 {
521
- zoom: 0.8;
522
- }
523
- .miniCrossImg {
524
- zoom: 0.7;
525
- }
526
- .superminiCrossImg {
527
- zoom: 0.6;
528
- }
529
- .minimumCrossImg {
530
- zoom: 0.35;
531
- }
532
- .transMiddleCrossImg {
533
- -webkit-transform-origin-y: 0;
534
- transform: scale(0.55);
535
- margin-top: 3%;
536
- padding: 0PX;
537
- }
538
- .transMiddleCrossImg2 {
539
- -webkit-transform-origin-y: 0;
540
- transform: scale(0.27);
541
- margin-top: -1.5%;
542
- padding: 0PX;
543
- }
544
- .transMiddleCrossImg3 {
545
- -webkit-transform-origin-y: 0;
546
- transform: scale(0.22);
547
- margin-top: -1%;
548
- padding: 0PX;
549
- }
550
- .transMiniCrossImg {
551
- -webkit-transform-origin-y: 0;
552
- transform: scale(0.18);
553
- margin-top: -1.6%;
554
- padding: 0PX;
555
- }
556
- </style>
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ <!--静态渠化路口,需要传入路口状态数据和检测器状态数据-->
13
+ <template>
14
+ <div class="show-channelization channelization-base-map" :class="{
15
+ 'widescreenCrossImg': bodyDomWidth > 1680,
16
+ 'superlargeCrossImg': bodyDomWidth <= 1680 && bodyDomWidth > 1440,
17
+ 'largeCrossImg': bodyDomWidth <= 1440 && bodyDomWidth > 1280,
18
+ 'middleCrossImg': bodyDomWidth <= 1280 && bodyDomWidth > 1100,
19
+ 'middleCrossImg2': bodyDomWidth <= 1100 && bodyDomWidth > 960,
20
+ 'smallCrossImg': bodyDomWidth <= 960 && bodyDomWidth > 890,
21
+ 'smallCrossImg2': bodyDomWidth <= 890 && bodyDomWidth > 720,
22
+ 'miniCrossImg': bodyDomWidth <= 720 && bodyDomWidth > 650,
23
+ 'superminiCrossImg': bodyDomWidth <= 650 && bodyDomWidth > 450,
24
+ 'transMiddleCrossImg': bodyDomWidth <= 450 && bodyDomWidth > 350,
25
+ 'transMiddleCrossImg2': bodyDomWidth <= 350 && bodyDomWidth > 300,
26
+ 'transMiddleCrossImg3': bodyDomWidth <= 300 && bodyDomWidth > 260,
27
+ 'transMiniCrossImg': bodyDomWidth <= 260,
28
+ 'changePaddingBottom': true }">
29
+ <ChannelizationElements
30
+ ref="channelizationElements"
31
+ UsageMode="show"
32
+ :allitem="allitem"
33
+ :CrossMapVisible="CrossMapVisible"
34
+ :CrossMapData="CrossMapData"
35
+ :isSeletable="isSeletable"
36
+ :Motorways="LanePhaseData"
37
+ :Pedwalk="sidewalkPhaseData"
38
+ :Countdown="Countdown"
39
+ :CountdownList="phaseCountdownList"
40
+ :Detector="DetectorData"
41
+ :isHasPhase="isHasPhase"
42
+ />
43
+ </div>
44
+ </template>
45
+
46
+ <script>
47
+ // import { mapState, mapGetters } from 'vuex'
48
+ import ChannelizationElements from '../DrawChannelization/drawsvg/channelizationElements'
49
+ // import { getIframdevid } from '../../../utils/auth.js'
50
+ import { getChannelizatonChart } from '../../../api/cross'
51
+
52
+ export default {
53
+ name: 'channelization',
54
+ components: {
55
+ ChannelizationElements
56
+ },
57
+ computed: {
58
+ // ...mapState({
59
+ // curOpenatcAgentid: state => state.globalParam.curOpenatcAgentid
60
+ // })
61
+ // ,
62
+ // ...mapGetters([
63
+ // 'isfromatc'
64
+ // ])
65
+ },
66
+ props: {
67
+ crossStatusData: {
68
+ type: Object
69
+ },
70
+ detectorStatusData: {
71
+ type: Object
72
+ },
73
+ AgentId: {
74
+ type: String,
75
+ default: '0'
76
+ }
77
+ },
78
+ watch: {
79
+ crossStatusData: {
80
+ handler: function (val) {
81
+ // 路口状态数据
82
+ this.statusData = JSON.parse(JSON.stringify(val))
83
+ this.phaseStatusList = val.phase
84
+ this.overlapStatusList = val.overlap
85
+ if (val.control === 1 || val.control === 2 || val.control === 3) {
86
+ // 黄闪、全红、关灯属于特殊控制,优先级最高,直接改变灯色,不用判断phase里的type,也不需要考虑跟随相位的灯色优先级
87
+ this.SpecialControl(val)
88
+ return
89
+ }
90
+ if (!val.phase && !this.overlapStatusList) {
91
+ // 非特殊控制,相位和跟随相位不存在的情况下,灯色恢复默认
92
+ this.handleSpecialControlStatus('默认')
93
+ return
94
+ }
95
+ this.curPhase = val.current_phase
96
+ this.isHasPhase = true
97
+ this.createPhaseStatusMap()
98
+ this.createOverlapPhaseStatusMap()
99
+ this.getLanePhaseStatusData()
100
+ this.getpedStatus()
101
+ this.getCurPhaseCountdown()
102
+ },
103
+ // 深度观察监听
104
+ deep: true
105
+ },
106
+ detectorStatusData: {
107
+ handler: function (detectorsStatus) {
108
+ // 检测器状态数据
109
+ this.detectorStatusList = detectorsStatus.detector
110
+ this.pedDetectorStatusList = detectorsStatus.io
111
+ this.createDetectorStatusMap()
112
+ this.getDetectorStatus()
113
+ },
114
+ deep: true
115
+ },
116
+ AgentId: {
117
+ handler: function (val) {
118
+ // 平台设备切换时,重载当前路口保存的渠化配置
119
+ this.load('all')
120
+ },
121
+ deep: true
122
+ }
123
+ },
124
+ data () {
125
+ return {
126
+ isSeletable: false,
127
+ bodyDomWidth: 352,
128
+ bodyDomSize: {
129
+ width: 1920,
130
+ height: 1080
131
+ },
132
+ CrossMapVisible: true, // 控制底图显示隐藏
133
+ CrossMapData: {
134
+ x: 400,
135
+ y: 100,
136
+ w: 800,
137
+ h: 200,
138
+ angle: 0,
139
+ svgstr: '',
140
+ imgfilesrc: ''
141
+ }, // 管理底图数据
142
+ Motorways: [],
143
+ Texts: [],
144
+ Pedwalk: [],
145
+ Countdown: [],
146
+ Detector: [],
147
+ allitem: {
148
+ x: 435,
149
+ y: 325,
150
+ w: 870,
151
+ h: 650,
152
+ angle: 0
153
+ },
154
+ LanePhaseData: [], // 车道相位数据
155
+ // overlapLanePhaseData: [], // 车道跟随相位数据
156
+ curPhase: [], // 当前相位列表
157
+ phaseStatusList: [], // 相位状态列表
158
+ phaseStatusMap: new Map(), // 相位状态映射
159
+ phaseCountdownList: [], // 相位倒计时列表
160
+ overlapPhaseStatusMap: new Map(), // 跟随相位状态映射
161
+ ColorMap: new Map([[0, '#828282'], [1, '#ff2828'], [2, '#f7b500'], [3, '#77fb65'], [4, '#77fb65'], [5, '#f7b500']]), // 当前相位状态 --- 0:关灯, 1:红, 2:黄, 3:绿, 4:绿闪, 5:黄闪
162
+ SidewalkColorMap: new Map([[0, '#828282'], [1, '#e24b4b'], [3, '#7bd66b']]),
163
+ phaseControlColorMap: new Map([['黄闪', '#f7b500'], ['全红', '#ff2828'], ['关灯', '#828282'], ['默认', '#fff']]),
164
+ sidewalkPhaseData: [], // 行人相位
165
+ isHasPhase: true, // 是否有相位状态数据
166
+
167
+ detectorStatusList: [], // 车辆检测器状态列表
168
+ pedDetectorStatusList: [], // 行人检测器状态列表
169
+ detectorStatusMap: new Map(), // 车辆检测器状态映射
170
+ pedDetectorStatusMap: new Map(), // 行人检测器状态映射
171
+ DetectorData: [], // 检测器数据(包括车辆和行人)
172
+ DetectorColorMap: new Map([[0, 'transparent'], [1, '#00CCFF'], [2, '#FF0000']]) // 检测器状态填充颜色定义 0: 低电平 无车, 1: 高电平 有车, 2: 故障
173
+ }
174
+ },
175
+ methods: {
176
+ createPhaseStatusMap () {
177
+ // 生成相位id和相位状态对应数据结构
178
+ this.phaseStatusList.map(phase => {
179
+ let phaseId = phase.id
180
+ let phaseInfo = {
181
+ type: phase.type,
182
+ phaseCountdown: phase.countdown,
183
+ pedtype: phase.pedtype
184
+ }
185
+ this.phaseStatusMap.set(phaseId, phaseInfo)
186
+ })
187
+ },
188
+ createOverlapPhaseStatusMap () {
189
+ if (this.overlapStatusList) {
190
+ this.overlapStatusList.map(phase => {
191
+ let phaseId = phase.id
192
+ let phaseInfo = {
193
+ type: phase.type,
194
+ phaseCountdown: phase.countdown,
195
+ pedtype: phase.pedtype
196
+ }
197
+ this.overlapPhaseStatusMap.set(phaseId, phaseInfo)
198
+ })
199
+ }
200
+ },
201
+ getLanePhaseStatusData () {
202
+ let curLanePhaseData = []
203
+ for (let i = 0; i < this.LanePhaseData.length; i++) {
204
+ let curPhaseStatus
205
+ if (this.LanePhaseData[i].phasetype === 'phase') {
206
+ curPhaseStatus = this.phaseStatusMap.get(this.LanePhaseData[i].phaseid)
207
+ }
208
+ if (this.LanePhaseData[i].phasetype === 'overlap') {
209
+ curPhaseStatus = this.overlapPhaseStatusMap.get(this.LanePhaseData[i].phaseid)
210
+ }
211
+ // if (!curPhaseStatus) continue // 没有关联相位的车道不显示
212
+ let data
213
+ if (curPhaseStatus) {
214
+ data = {
215
+ ...this.LanePhaseData[i],
216
+ type: curPhaseStatus.type,
217
+ color: this.ColorMap.get(curPhaseStatus.type),
218
+ phaseCountdown: curPhaseStatus.phaseCountdown,
219
+ flag: 'phase' // 车道相位数据标识
220
+ }
221
+ } else {
222
+ // 没有关联的,或者没有对应状态的,车道显示默认白色
223
+ data = {
224
+ ...this.LanePhaseData[i],
225
+ type: undefined,
226
+ color: '#fff',
227
+ flag: 'phase' // 车道相位数据标识
228
+ }
229
+ }
230
+ curLanePhaseData.push(data)
231
+ }
232
+ this.LanePhaseData = JSON.parse(JSON.stringify(curLanePhaseData))
233
+ // console.log(this.LanePhaseData)
234
+ },
235
+ getpedStatus () {
236
+ // 行人相位状态
237
+ let curPedStatus = []
238
+ for (let i = 0; i < this.sidewalkPhaseData.length; i++) {
239
+ let curPhaseStatus
240
+ if (this.sidewalkPhaseData[i].phasetype === 'phase') {
241
+ curPhaseStatus = this.phaseStatusMap.get(this.sidewalkPhaseData[i].phaseid)
242
+ }
243
+ if (this.sidewalkPhaseData[i].phasetype === 'overlap') {
244
+ curPhaseStatus = this.overlapPhaseStatusMap.get(this.sidewalkPhaseData[i].phaseid)
245
+ }
246
+ // if (!curPhaseStatus) continue
247
+ let data
248
+ if (curPhaseStatus) {
249
+ data = {
250
+ ...this.sidewalkPhaseData[i],
251
+ pedtype: curPhaseStatus.pedtype,
252
+ color: this.SidewalkColorMap.get(curPhaseStatus.pedtype),
253
+ flag: 'ped' // 行人相位数据标识
254
+ }
255
+ } else {
256
+ // 接口没有对应的状态
257
+ data = {
258
+ ...this.sidewalkPhaseData[i],
259
+ pedtype: undefined,
260
+ color: '#fff',
261
+ flag: 'ped' // 行人相位数据标识
262
+ }
263
+ }
264
+ curPedStatus.push(data)
265
+ }
266
+ this.sidewalkPhaseData = JSON.parse(JSON.stringify(curPedStatus))
267
+ // this.Pedwalk = JSON.parse(JSON.stringify(this.sidewalkPhaseData))
268
+ },
269
+ getCurPhaseCountdown () {
270
+ // 获取当前相位倒计时颜色
271
+ let phaseCountdownList = []
272
+ this.curPhase.forEach(curP => {
273
+ this.phaseStatusList.forEach(phaseInfo => {
274
+ if (phaseInfo.id === curP) {
275
+ let countdownObj = {}
276
+ countdownObj.id = phaseInfo.id
277
+ countdownObj.phaseCountdown = phaseInfo.countdown
278
+ countdownObj.phaseCountdownColor = this.ColorMap.get(phaseInfo.type)
279
+ phaseCountdownList.push(countdownObj)
280
+ }
281
+ })
282
+ })
283
+ this.phaseCountdownList = JSON.parse(JSON.stringify(phaseCountdownList))
284
+ // console.log(this.phaseCountdownList)
285
+ },
286
+ // 加载
287
+ load (type) {
288
+ this.getChannelizatonChart().then((channelizatondata) => {
289
+ let savedTemp = JSON.parse(JSON.stringify(channelizatondata))
290
+ for (const [key, value] of Object.entries(savedTemp)) {
291
+ if (key === 'vehile') {
292
+ this.Motorways = value
293
+ }
294
+ if (key === 'text') {
295
+ this.Texts = value
296
+ }
297
+ if (key === 'ped') {
298
+ this.Pedwalk = value
299
+ }
300
+ if (key === 'countdown') {
301
+ this.Countdown = value
302
+ }
303
+ if (key === 'detector') {
304
+ this.Detector = value.filter(ele => ele.detailtype === 'detector')
305
+ }
306
+ if (key === 'crossMap') {
307
+ this.CrossMapData = JSON.parse(JSON.stringify(value))
308
+ }
309
+ }
310
+ this.isSeletable = false
311
+ // 从接口得到所有渠化车道和人行道数据
312
+ this.LanePhaseData = JSON.parse(JSON.stringify(this.Motorways))
313
+ this.sidewalkPhaseData = JSON.parse(JSON.stringify(this.Pedwalk))
314
+ this.DetectorData = JSON.parse(JSON.stringify(this.Detector))
315
+ })
316
+ },
317
+ // 重置
318
+ handleReset () {
319
+ this.Texts = []
320
+ this.Motorways = []
321
+ this.Countdown = []
322
+ this.phaseCountdownList = []
323
+ this.Pedwalk = []
324
+ this.Detector = []
325
+ this.CrossMapData = {
326
+ x: 400,
327
+ y: 100,
328
+ w: 800,
329
+ h: 200,
330
+ angle: 0,
331
+ svgstr: '',
332
+ imgfilesrc: ''
333
+ }
334
+ this.LanePhaseData = []
335
+ this.sidewalkPhaseData = []
336
+ this.DetectorData = []
337
+ this.isHasPhase = true
338
+ },
339
+ getChannelizatonChart () {
340
+ // let agentid = getIframdevid()
341
+ // 路口已设置渠化,则总览默认显示渠化路口,未设置显示模版路口
342
+ // if (this.isfromatc === true) {
343
+ // this.$store.dispatch('SetShowHomePage', 'Graphical')
344
+ // }
345
+ this.handleReset()
346
+ return new Promise((resolve, reject) => {
347
+ getChannelizatonChart(this.AgentId).then(data => {
348
+ // this.$emit('getChannelizationSetting', data)
349
+ if (!data.data.success) {
350
+ // let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
351
+ // if (data.data.data) {
352
+ // // 子类型错误
353
+ // let childErrorCode = data.data.data.errorCode
354
+ // if (childErrorCode) {
355
+ // let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
356
+ // this.$message.error(parrenterror + ',' + childerror)
357
+ // }
358
+ // } else {
359
+ // this.$message.error(parrenterror)
360
+ // }
361
+ return
362
+ }
363
+ if (JSON.stringify(data.data.data) === '{}') return
364
+ // if (this.isfromatc === true) {
365
+ // this.$store.dispatch('SetShowHomePage', 'Channelization')
366
+ // }
367
+ this.handleReset()
368
+ let channelizatondata = data.data.data
369
+ resolve(channelizatondata)
370
+ })
371
+ })
372
+ },
373
+ SpecialControl (data) {
374
+ switch (data.control) {
375
+ case 1: this.handleSpecialControlStatus('黄闪')
376
+ break
377
+ case 2: this.handleSpecialControlStatus('全红')
378
+ break
379
+ case 3: this.handleSpecialControlStatus('关灯')
380
+ break
381
+ default: this.handleSpecialControlStatus('默认')
382
+ }
383
+ },
384
+ handleSpecialControlStatus (Control) {
385
+ this.$refs.channelizationElements.resetPhaseStatus()
386
+ // 控制黄闪、全红、关灯、默认情况下的车道相位颜色和倒计时颜色
387
+ if (Control === '默认') {
388
+ // 倒计时恢复默认颜色
389
+ this.phaseCountdownList.forEach(item => {
390
+ item.phaseCountdown = ''
391
+ item.id = ''
392
+ item.phaseCountdownColor = '#fff'
393
+ })
394
+ }
395
+ if (this.LanePhaseData.length) {
396
+ const LanePhaseData = this.LanePhaseData.map(data => ({
397
+ ...data,
398
+ color: this.phaseControlColorMap.get(Control)
399
+ }))
400
+ this.LanePhaseData = JSON.parse(JSON.stringify(LanePhaseData))
401
+ }
402
+ if (this.sidewalkPhaseData.length) {
403
+ const sidewalkPhaseData = this.sidewalkPhaseData.map(data => ({
404
+ ...data,
405
+ color: this.phaseControlColorMap.get(Control)
406
+ }))
407
+ this.sidewalkPhaseData = JSON.parse(JSON.stringify(sidewalkPhaseData))
408
+ }
409
+ this.isHasPhase = false
410
+ },
411
+ createDetectorStatusMap () {
412
+ if (this.detectorStatusList) {
413
+ this.detectorStatusList.map(detector => {
414
+ let detectorId = detector.id
415
+ let detectorInfo = {
416
+ state: detector.state
417
+ }
418
+ this.detectorStatusMap.set(detectorId, detectorInfo)
419
+ })
420
+ }
421
+ if (this.pedDetectorStatusList) {
422
+ this.pedDetectorStatusList.map(peddetector => {
423
+ let peddetectorId = peddetector.id
424
+ let peddetectorInfo = {
425
+ state: peddetector.state
426
+ }
427
+ this.pedDetectorStatusMap.set(peddetectorId, peddetectorInfo)
428
+ })
429
+ }
430
+ // console.log(this.detectorStatusMap)
431
+ // console.log(this.pedDetectorStatusMap)
432
+ },
433
+ getDetectorStatus () {
434
+ let curDetectorData = []
435
+ for (let i = 0; i < this.DetectorData.length; i++) {
436
+ let curDetectorStatus
437
+ let curDetectortype = this.DetectorData[i].detectortype
438
+ if (curDetectortype === 1) {
439
+ // 车辆检测器
440
+ curDetectorStatus = this.detectorStatusMap.get(this.DetectorData[i].detectorid)
441
+ }
442
+ if (curDetectortype === 2) {
443
+ // 行人检测器
444
+ curDetectorStatus = this.pedDetectorStatusMap.get(this.DetectorData[i].detectorid)
445
+ }
446
+ // if (!curDetectorStatus) continue // 没有关联检测器不显示
447
+ let data
448
+ if (curDetectorStatus) {
449
+ data = {
450
+ ...this.DetectorData[i],
451
+ state: curDetectorStatus.state,
452
+ fillcolor: this.DetectorColorMap.get(curDetectorStatus.state),
453
+ flag: curDetectortype === 1 ? 'detector' : 'peddetector' // 车道相位数据标识
454
+ }
455
+ } else {
456
+ // 没有关联检测器的填充透明
457
+ data = {
458
+ ...this.DetectorData[i],
459
+ state: undefined,
460
+ fillcolor: 'transparent',
461
+ flag: curDetectortype === 1 ? 'detector' : 'peddetector' // 车道相位数据标识
462
+ }
463
+ }
464
+ curDetectorData.push(data)
465
+ }
466
+ this.DetectorData = JSON.parse(JSON.stringify(curDetectorData))
467
+ },
468
+ getParentSize () {
469
+ // 获取最外层dom尺寸,适配准备
470
+ var _this = this
471
+ this.$nextTick(function () {
472
+ if (this.$el.parentElement === null || this.$el.parentElement === undefined) return
473
+ this.bodyDomSize.width = this.$el.parentElement.clientWidth
474
+ this.bodyDomWidth = this.bodyDomSize.width
475
+ window.addEventListener('resize', () => {
476
+ // 定义窗口大小变更通知事件
477
+ if (_this.$el.parentElement === null || _this.$el.parentElement === undefined) return
478
+ _this.bodyDomSize.width = _this.$el.parentElement.clientWidth
479
+ this.bodyDomWidth = this.bodyDomSize.width
480
+ console.log('resize this.bodyDomSize.width', _this.bodyDomSize.width)
481
+ }, false)
482
+ })
483
+ }
484
+ },
485
+ created () {
486
+ this.load()
487
+ },
488
+ mounted () {
489
+ this.getParentSize()
490
+ },
491
+ destroyed () {
492
+ this.handleReset()
493
+ }
494
+ }
495
+ </script>
496
+
497
+ <style lang="css" rel="stylesheet/scss">
498
+ .show-channelization {
499
+ position: relative;
500
+ overflow: hidden;
501
+ }
502
+ .widescreenCrossImg {
503
+ zoom: 1.3;
504
+ }
505
+ .superlargeCrossImg {
506
+ zoom: 1.3;
507
+ }
508
+ .largeCrossImg {
509
+ zoom: 1.2;
510
+ }
511
+ .middleCrossImg {
512
+ zoom: 1;
513
+ }
514
+ .middleCrossImg2 {
515
+ zoom: 0.8;
516
+ }
517
+ .smallCrossImg {
518
+ zoom: 0.8;
519
+ }
520
+ .smallCrossImg2 {
521
+ zoom: 0.8;
522
+ }
523
+ .miniCrossImg {
524
+ zoom: 0.7;
525
+ }
526
+ .superminiCrossImg {
527
+ zoom: 0.6;
528
+ }
529
+ .minimumCrossImg {
530
+ zoom: 0.35;
531
+ }
532
+ .transMiddleCrossImg {
533
+ -webkit-transform-origin-y: 0;
534
+ transform: scale(0.55);
535
+ margin-top: 3%;
536
+ padding: 0PX;
537
+ }
538
+ .transMiddleCrossImg2 {
539
+ -webkit-transform-origin-y: 0;
540
+ transform: scale(0.27);
541
+ margin-top: -1.5%;
542
+ padding: 0PX;
543
+ }
544
+ .transMiddleCrossImg3 {
545
+ -webkit-transform-origin-y: 0;
546
+ transform: scale(0.22);
547
+ margin-top: -1%;
548
+ padding: 0PX;
549
+ }
550
+ .transMiniCrossImg {
551
+ -webkit-transform-origin-y: 0;
552
+ transform: scale(0.18);
553
+ margin-top: -1.6%;
554
+ padding: 0PX;
555
+ }
556
+ </style>