openatc-components 0.0.80 → 0.0.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.
Files changed (294) 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 +89 -89
  23. package/package/kisscomps/components/BoardCard/index.js +2 -2
  24. package/package/kisscomps/components/CommonKanban/CommonKanban.vue +118 -118
  25. package/package/kisscomps/components/CommonKanban/index.js +2 -2
  26. package/package/kisscomps/components/ExpendConfig/ExpendConfig.vue +114 -114
  27. package/package/kisscomps/components/ExpendConfig/index.js +2 -2
  28. package/package/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +170 -170
  29. package/package/kisscomps/components/FaultDetailModal/index.js +2 -2
  30. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +497 -497
  31. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  32. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +300 -300
  33. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +288 -288
  34. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +391 -391
  35. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +336 -336
  36. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +345 -345
  37. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +389 -389
  38. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1179 -1179
  39. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +402 -402
  40. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +361 -361
  41. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +368 -368
  42. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +475 -475
  43. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +494 -494
  44. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +401 -401
  45. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +360 -360
  46. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +367 -367
  47. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +476 -476
  48. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  49. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  50. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  51. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  52. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  53. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  54. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +912 -912
  55. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +112 -112
  56. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +112 -112
  57. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +111 -111
  58. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  59. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  60. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +99 -99
  61. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +99 -99
  62. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  63. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +99 -99
  64. package/package/kisscomps/components/IntersectionMap/crossDirection/utils.js +78 -78
  65. package/package/kisscomps/components/IntersectionMap/index.js +2 -2
  66. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +153 -153
  67. package/package/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +518 -518
  68. package/package/kisscomps/components/IntersectionWithInterface/index.js +2 -2
  69. package/package/kisscomps/components/KanBan/index.js +2 -2
  70. package/package/kisscomps/components/KanBan/kanban.vue +219 -219
  71. package/package/kisscomps/components/OverLap/OverLap.vue +207 -207
  72. package/package/kisscomps/components/OverLap/index.js +2 -2
  73. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +888 -886
  74. package/package/kisscomps/components/PatternStatus/index.js +2 -2
  75. package/package/kisscomps/components/PatternWalkSvg/PatternWalkSvg.vue +424 -418
  76. package/package/kisscomps/components/PatternWalkSvg/index.js +2 -2
  77. package/package/kisscomps/components/PhaseMarker/index.js +6 -6
  78. package/package/kisscomps/components/PhaseMarker/phasemarker.vue +215 -215
  79. package/package/kisscomps/components/PhaseMarker/svg/patternSvg.vue +121 -121
  80. package/package/kisscomps/components/PhaseMarker/svg/phase.vue +60 -60
  81. package/package/kisscomps/components/PhaseMarker/svg/phaseCount.vue +62 -62
  82. package/package/kisscomps/components/PhaseMarker/svg/phaseCountCycle.vue +62 -62
  83. package/package/kisscomps/components/PhaseMarker/svg/phaseSvg.vue +117 -117
  84. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +739 -739
  85. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +195 -195
  86. package/package/kisscomps/components/SchemeConfig/index.js +2 -2
  87. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +198 -198
  88. package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +219 -219
  89. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +263 -263
  90. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1384 -1384
  91. package/package/kisscomps/components/StageBord/StageBord.vue +242 -242
  92. package/package/kisscomps/components/StageBord/index.js +2 -2
  93. package/package/kisscomps/components/StageStatus/StageStatus.vue +306 -306
  94. package/package/kisscomps/components/StageStatus/index.js +2 -2
  95. package/package/kisscomps/components/Stages/index.vue +139 -139
  96. package/package/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  97. package/package/kisscomps/components/SvgIcon/index.js +2 -2
  98. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +522 -522
  99. package/package/kisscomps/components/XRDDirSelector/index.js +2 -2
  100. package/package/kisscomps/components/overView/index.vue +676 -676
  101. package/package/kisscomps/components/patternList/index.js +2 -2
  102. package/package/kisscomps/components/patternList/patternList.vue +562 -562
  103. package/package/kisscomps/index.js +92 -92
  104. package/package/kissui.min.js +1 -1
  105. package/package.json +1 -1
  106. package/src/App.vue +24 -24
  107. package/src/EdgeMgr/EdgeModelBase.js +16 -16
  108. package/src/EdgeMgr/controller/crossDiagramMgr.js +120 -120
  109. package/src/api/authapi.js +31 -31
  110. package/src/api/config.js +21 -21
  111. package/src/api/control.js +76 -76
  112. package/src/api/fault.js +66 -66
  113. package/src/api/index.js +24 -24
  114. package/src/api/login.js +46 -46
  115. package/src/api/optimize.js +72 -72
  116. package/src/api/param.js +154 -154
  117. package/src/api/passwdAssest.js +101 -101
  118. package/src/api/template.js +27 -27
  119. package/src/i18n/index.js +26 -26
  120. package/src/i18n/language/en.js +1111 -1111
  121. package/src/i18n/language/index.js +25 -25
  122. package/src/i18n/language/zh.js +1110 -1110
  123. package/src/icons/demo.css +539 -539
  124. package/src/icons/iconfont.css +835 -835
  125. package/src/icons/iconfont.json +1444 -1444
  126. package/src/icons/index.js +20 -20
  127. package/src/icons/svg/bendi.svg +110 -110
  128. package/src/icons/svg/bujin.svg +36 -36
  129. package/src/icons/svg/connectBlue.svg +7 -7
  130. package/src/icons/svg/currentvolume.svg +0 -0
  131. package/src/icons/svg/cutRed.svg +7 -7
  132. package/src/icons/svg/cycle.svg +0 -0
  133. package/src/icons/svg/dingzhouqi.svg +34 -34
  134. package/src/icons/svg/ganyingkongzhi.svg +30 -30
  135. package/src/icons/svg/guandeng.svg +81 -81
  136. package/src/icons/svg/huangshan.svg +71 -71
  137. package/src/icons/svg/maincontrol.svg +0 -0
  138. package/src/icons/svg/manualcontrolbackground.svg +51 -51
  139. package/src/icons/svg/manualcontrolbackground1.svg +62 -62
  140. package/src/icons/svg/manualcontrolbackgrounden.svg +62 -62
  141. package/src/icons/svg/model.svg +0 -0
  142. package/src/icons/svg/phasediff.svg +0 -0
  143. package/src/icons/svg/quanhong.svg +86 -86
  144. package/src/icons/svg/shanghe.svg +11 -11
  145. package/src/icons/svg/shoudong.svg +103 -103
  146. package/src/icons/svg/time.svg +0 -0
  147. package/src/icons/svg/wuxianlan.svg +46 -46
  148. package/src/icons/svg/xiala.svg +11 -11
  149. package/src/icons/svg/xingrenguojie.svg +33 -33
  150. package/src/icons/svg/xitong.svg +89 -89
  151. package/src/icons/svg/youxian.svg +41 -41
  152. package/src/icons/svg/zizhukongzhi.svg +43 -43
  153. package/src/kisscomps/components/BoardCard/BoardCard.vue +89 -89
  154. package/src/kisscomps/components/BoardCard/index.js +2 -2
  155. package/src/kisscomps/components/CommonKanban/CommonKanban.vue +118 -118
  156. package/src/kisscomps/components/CommonKanban/index.js +2 -2
  157. package/src/kisscomps/components/ExpendConfig/ExpendConfig.vue +114 -114
  158. package/src/kisscomps/components/ExpendConfig/index.js +2 -2
  159. package/src/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +170 -170
  160. package/src/kisscomps/components/FaultDetailModal/index.js +2 -2
  161. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +497 -497
  162. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  163. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +300 -300
  164. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +288 -288
  165. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +391 -391
  166. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +336 -336
  167. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +345 -345
  168. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +389 -389
  169. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1179 -1179
  170. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +402 -402
  171. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +361 -361
  172. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +368 -368
  173. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +475 -475
  174. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +494 -494
  175. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +401 -401
  176. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +360 -360
  177. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +367 -367
  178. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +476 -476
  179. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  180. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  181. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  182. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  183. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  184. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  185. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +912 -912
  186. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +112 -112
  187. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +112 -112
  188. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +111 -111
  189. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  190. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  191. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +99 -99
  192. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +99 -99
  193. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  194. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +99 -99
  195. package/src/kisscomps/components/IntersectionMap/crossDirection/utils.js +78 -78
  196. package/src/kisscomps/components/IntersectionMap/index.js +2 -2
  197. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +153 -153
  198. package/src/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +518 -518
  199. package/src/kisscomps/components/IntersectionWithInterface/index.js +2 -2
  200. package/src/kisscomps/components/KanBan/index.js +2 -2
  201. package/src/kisscomps/components/KanBan/kanban.vue +219 -219
  202. package/src/kisscomps/components/OverLap/OverLap.vue +207 -207
  203. package/src/kisscomps/components/OverLap/index.js +2 -2
  204. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +888 -886
  205. package/src/kisscomps/components/PatternStatus/index.js +2 -2
  206. package/src/kisscomps/components/PatternWalkSvg/PatternWalkSvg.vue +424 -418
  207. package/src/kisscomps/components/PatternWalkSvg/index.js +2 -2
  208. package/src/kisscomps/components/PhaseMarker/index.js +6 -6
  209. package/src/kisscomps/components/PhaseMarker/phasemarker.vue +215 -215
  210. package/src/kisscomps/components/PhaseMarker/svg/patternSvg.vue +121 -121
  211. package/src/kisscomps/components/PhaseMarker/svg/phase.vue +60 -60
  212. package/src/kisscomps/components/PhaseMarker/svg/phaseCount.vue +62 -62
  213. package/src/kisscomps/components/PhaseMarker/svg/phaseCountCycle.vue +62 -62
  214. package/src/kisscomps/components/PhaseMarker/svg/phaseSvg.vue +117 -117
  215. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +739 -739
  216. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +195 -195
  217. package/src/kisscomps/components/SchemeConfig/index.js +2 -2
  218. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +198 -198
  219. package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +219 -219
  220. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +263 -263
  221. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1384 -1384
  222. package/src/kisscomps/components/StageBord/StageBord.vue +242 -242
  223. package/src/kisscomps/components/StageBord/index.js +2 -2
  224. package/src/kisscomps/components/StageStatus/StageStatus.vue +306 -306
  225. package/src/kisscomps/components/StageStatus/index.js +2 -2
  226. package/src/kisscomps/components/Stages/index.vue +139 -139
  227. package/src/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  228. package/src/kisscomps/components/SvgIcon/index.js +2 -2
  229. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +522 -522
  230. package/src/kisscomps/components/XRDDirSelector/index.js +2 -2
  231. package/src/kisscomps/components/overView/index.vue +676 -676
  232. package/src/kisscomps/components/patternList/index.js +2 -2
  233. package/src/kisscomps/components/patternList/patternList.vue +562 -562
  234. package/src/kisscomps/index.js +92 -92
  235. package/src/lib/publicjs/ArryListUtil.js +38 -38
  236. package/src/lib/publicjs/HttpurlMgr.js +45 -45
  237. package/src/lib/publicjs/KissApi.js +158 -158
  238. package/src/lib/publicjs/KissWSSub/Heartcheck.js +128 -128
  239. package/src/lib/publicjs/KissWSSub/KissWsSub.js +91 -91
  240. package/src/lib/publicjs/KissWSSub/KissWsSubByType.js +152 -152
  241. package/src/lib/publicjs/KissWSSub/SimuWsSubByType.js +44 -44
  242. package/src/lib/publicjs/KissWSSub/Sub.js +51 -51
  243. package/src/lib/publicjs/KissWSSub/SubChannel.js +119 -119
  244. package/src/lib/publicjs/basecomponents.js +65 -65
  245. package/src/lib/publicjs/localStorage.js +112 -112
  246. package/src/lib/publicjs/objdeepcopy.js +32 -32
  247. package/src/lib/publicjs/pageScroll.js +30 -30
  248. package/src/lib/publicjs/passwdAssest.js +101 -101
  249. package/src/lib/publicjs/styleclassfactory.js +32 -32
  250. package/src/main.js +47 -47
  251. package/src/router/index.js +36 -36
  252. package/src/store/getters.js +16 -16
  253. package/src/store/index.js +26 -26
  254. package/src/store/modules/globalParam.js +27 -27
  255. package/src/utils/ControlFormat.js +68 -68
  256. package/src/utils/RingDataModel.js +180 -180
  257. package/src/utils/auth.js +111 -111
  258. package/src/utils/dateFormat.js +41 -41
  259. package/src/utils/errorcode.js +224 -224
  260. package/src/utils/fault.js +195 -195
  261. package/src/utils/faultcode.js +209 -209
  262. package/src/utils/index.js +69 -69
  263. package/src/utils/pedphasedesc.js +119 -119
  264. package/src/utils/phasedesc.js +124 -124
  265. package/src/utils/responseMessage.js +21 -21
  266. package/src/utils/validate.js +43 -43
  267. package/src/views/home.1.vue +479 -479
  268. package/src/views/home.vue +78 -78
  269. package/src/views/intersection.vue +276 -276
  270. package/src/views/overView.vue +41 -41
  271. package/src/views/schemeconfig.vue +154 -154
  272. package/static/apiconfig.json +336 -336
  273. package/static/styles/common.scss +19 -19
  274. package/static/styles/commonkanban.scss +87 -87
  275. package/static/styles/dark/index.scss +2 -2
  276. package/static/styles/dark/theme/element-dark.scss +42 -42
  277. package/static/styles/index.scss +84 -84
  278. package/static/styles/intersection.scss +170 -170
  279. package/static/styles/light/index.scss +2 -2
  280. package/static/styles/light/theme/element-light.scss +42 -42
  281. package/static/styles/overview.scss +371 -371
  282. package/static/styles/schemeconfig.scss +405 -405
  283. package/static/styles/stages.scss +64 -64
  284. package/static/token.json +2 -2
  285. package/test/e2e/custom-assertions/elementCount.js +27 -27
  286. package/test/e2e/nightwatch.conf.js +46 -46
  287. package/test/e2e/runner.js +48 -48
  288. package/test/e2e/specs/test.js +19 -19
  289. package/test/unit/.eslintrc +7 -7
  290. package/test/unit/jest.conf.js +30 -30
  291. package/test/unit/setup.js +3 -3
  292. package/test/unit/specs/HelloWorld.spec.js +11 -11
  293. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +0 -429
  294. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +0 -429
@@ -1,518 +1,518 @@
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
- <!--动态路口图,只需要设备AgentId,此组件会处理方案状态接口轮询-->
13
- <template>
14
- <div class="intersection-with-interface">
15
- <IntersectionMap
16
- ref="intersectionMap"
17
- :crossStatusData="crossStatusData"
18
- :devStatus="devStatus"
19
- :agentId="agentId"
20
- :graphicMode="true"
21
- :roadDirection="roadDirection"
22
- :modeName="modeName !== '' ? modeName : controlData.mode"
23
- :controlName="controlName !== '' ? controlName : controlData.control"
24
- :isShowMode="isShowMode"
25
- :isShowState="isShowState"
26
- :isShowInterval="isShowInterval"
27
- @onSelectStages="onSelectStages"/>
28
- </div>
29
- </template>
30
- <script>
31
- import IntersectionMap from '../IntersectionMap'
32
- import { getMessageByCode } from '../../../utils/responseMessage'
33
- import { getTscControl, queryDevice, putTscControl } from '../../../api/control.js'
34
- import { registerMessage, uploadSingleTscParam } from '../../../api/param'
35
- import { getIframdevid, setIframdevid, setToken, setHost } from '../../../utils/auth.js'
36
- import ControlFormat from '../../../utils/ControlFormat.js'
37
- export default {
38
- name: 'intersection-with-interface',
39
- components: {
40
- IntersectionMap
41
- },
42
- data () {
43
- return {
44
- controlData: {},
45
- boxVisible: false,
46
- dialogWidth: '100%',
47
- crossStatusData: {}, // 路口状态数据
48
- devStatus: 1,
49
- isResend: true,
50
- intervalFlag: true,
51
- phaseControlTimer: null, // 定时器
52
- registerMessageTimer: null // 延时器
53
- }
54
- },
55
- props: {
56
- reqUrl: {
57
- type: String,
58
- default: ''
59
- },
60
- AgentId: {
61
- type: String,
62
- default: '0'
63
- },
64
- Token: {
65
- type: String,
66
- default: ''
67
- },
68
- roadDirection: {
69
- type: String,
70
- default: 'right'
71
- },
72
- isShowInterval: {
73
- type: Boolean,
74
- default: true
75
- },
76
- isShowState: {
77
- type: Boolean,
78
- devault: false
79
- },
80
- isShowMode: {
81
- type: Boolean,
82
- default: false
83
- },
84
- modeName: {
85
- type: String,
86
- default: ''
87
- },
88
- controlName: {
89
- type: String,
90
- default: ''
91
- }
92
- },
93
- watch: {
94
- AgentId: {
95
- handler: function (val, oldVal) {
96
- this.agentId = val
97
- },
98
- // 深度观察监听
99
- deep: true
100
- },
101
- Token: {
102
- handler: function (val) {
103
- this.setPropsToken(val)
104
- }
105
- }
106
- },
107
- methods: {
108
- oncancle () {
109
- this.boxVisible = false
110
- },
111
- handleOpenConfigPanel () {
112
- this.boxVisible = true
113
- },
114
- setDialogWidth () {
115
- var val = document.body.offsetWidth
116
- const def = 1200 // 默认宽度
117
- if (val < def) {
118
- this.dialogWidth = '100%'
119
- } else {
120
- this.dialogWidth = def + 'px'
121
- }
122
- },
123
- resetIntersectionMap () {
124
- this.setPropsToken(this.Token)
125
- this.firstInit()
126
- this.$refs.intersectionMap.resetCrossDiagram()
127
- this.initData()
128
- },
129
- registerMessage () {
130
- registerMessage(this.AgentId).then(data => {
131
- if (!data.data.success) {
132
- this.devStatus = 2
133
- let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
134
- if (data.data.data) {
135
- // 子类型错误
136
- let childErrorCode = data.data.data.errorCode
137
- if (childErrorCode) {
138
- let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
139
- this.$message.error(parrenterror + ',' + childerror)
140
- }
141
- } else {
142
- this.$message.error(parrenterror)
143
- }
144
- if (this.isResend) {
145
- this.reSend()
146
- }
147
- return
148
- }
149
- this.$emit('registerMessage', data)
150
- this.devStatus = 3
151
- this.clearPatternInterval() // 清除其他定时器
152
- this.phaseControlTimer = setInterval(() => {
153
- if (this.intervalFlag) {
154
- this.initData()
155
- }
156
- }, 1000)
157
- })
158
- },
159
- reSend () { // 设备掉线重连机制
160
- this.devStatus = 1
161
- this.clearRegisterMessageTimer()
162
- this.registerMessageTimer = setTimeout(() => {
163
- this.reconnectionDev()
164
- }, 5000)
165
- },
166
- clearPatternInterval () {
167
- if (this.phaseControlTimer !== null) {
168
- clearInterval(this.phaseControlTimer) // 清除定时器
169
- this.phaseControlTimer = null
170
- }
171
- },
172
- clearRegisterMessageTimer () {
173
- if (this.registerMessageTimer !== null) {
174
- clearTimeout(this.registerMessageTimer) // 清除延时器
175
- this.registerMessageTimer = null
176
- }
177
- },
178
- initData () {
179
- this.intervalFlag = false
180
- let iframdevid = getIframdevid()
181
- console.log(iframdevid)
182
- let startTime = new Date().getTime()
183
- getTscControl(this.AgentId).then((data) => {
184
- let endTime = new Date().getTime()
185
- let diffTime = endTime - startTime
186
- this.responseTime = diffTime
187
- this.intervalFlag = true
188
- if (!data.data.success) {
189
- if (data.data.code === '4003') {
190
- this.devStatus = 2
191
- this.clearPatternInterval() // 清除其他定时器
192
- this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
193
- if (this.isResend) {
194
- this.reSend()
195
- }
196
- return
197
- }
198
- let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
199
- if (data.data.data) {
200
- // 子类型错误
201
- let childErrorCode = data.data.data.errorCode
202
- if (childErrorCode) {
203
- let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
204
- this.$message.error(parrenterror + ',' + childerror)
205
- }
206
- } else {
207
- this.$message.error(parrenterror)
208
- }
209
- this.clearPatternInterval() // 清除其他定时器
210
- if (this.isResend) {
211
- this.reSend()
212
- }
213
- return
214
- }
215
- this.crossStatusData = JSON.parse(JSON.stringify(data.data.data.data))
216
- let param = JSON.parse(JSON.stringify(data.data.data.data))
217
- // this.controlData = this.handleGetData(param)
218
- this.controlData = this.controlFormat.handleGetData(param)
219
- this.$emit('getTscControl', data)
220
- }).catch(error => {
221
- this.$message.error(error)
222
- console.log(error)
223
- })
224
- },
225
- reconnectionDev () {
226
- this.registerMessage()
227
- },
228
- queryDevParams () {
229
- let _this = this
230
- queryDevice(this.AgentId).then(res => {
231
- if (!res.data.success) {
232
- _this.$message.error(getMessageByCode(res.data.code, _this.$i18n.locale))
233
- return
234
- }
235
- let devParams = res.data.data.jsonparam
236
- _this.ip = devParams.ip
237
- _this.port = String(devParams.port)
238
- _this.protocol = res.data.data.protocol
239
- _this.agentId = res.data.data.agentid
240
- if (res.data.data.name) {
241
- _this.agentName = res.data.data.name
242
- }
243
- _this.platform = res.data.data.platform
244
- _this.$refs.intersectionMap.resetCrossDiagram()
245
- _this.registerMessage() // 注册消息
246
- _this.$emit('queryDevice', res)
247
- })
248
- },
249
- firstInit () {
250
- if (this.$route.query !== undefined && Object.keys(this.$route.query).length) {
251
- this.agentId = this.$route.query.agentid
252
- setIframdevid(this.agentId)
253
- this.registerMessage() // 注册消息
254
- } else {
255
- this.queryDevParams() // 查询设备信息
256
- }
257
- },
258
- destroyIntersectionMap () {
259
- this.isResend = false
260
- this.clearPatternInterval() // 清除定时器
261
- this.clearRegisterMessageTimer() // 清除定时器
262
- },
263
- setPropsToken (token) {
264
- // 获取组件外传入的token,便于独立组件调用接口
265
- if (token && token !== '') {
266
- setToken(token)
267
- }
268
- },
269
- setHost (host) {
270
- // 获取组件外传入的token,便于独立组件调用接口
271
- if (host && host !== '') {
272
- setHost(host)
273
- }
274
- },
275
- async doPatternCommit (control) {
276
- let that = this
277
- let resData
278
- await putTscControl(control, this.agentId).then(data => {
279
- resData = data
280
- let success = 0
281
- if (!data.data.success) {
282
- that.$message.error(getMessageByCode(data.data.code, that.$i18n.locale))
283
- return
284
- }
285
- if (data.data.data && data.data.data.data) {
286
- success = data.data.data.data.success
287
- if (success !== 0) {
288
- let errormsg = 'openatccomponents.overview.putTscControlError' + success
289
- that.$message.error(this.$t(errormsg))
290
- return
291
- }
292
- }
293
- // this.closeManualModal()
294
- if ((that.currModel === 5 || that.currModel === 6 || that.currModel === 10 || that.currModel === 12) && (that.preselectModel === 6 || that.preselectModel === 10 || that.preselectModel === 12)) {
295
- that.$message.success(this.$t('openatccomponents.overview.nextcycleeffic'))
296
- return
297
- }
298
- if (that.preselectModel === 4) {
299
- that.$message.success(this.$t('openatccomponents.overview.transitioneffic'))
300
- return
301
- }
302
- if (success === 0) {
303
- that.$message.success(this.$t('openatccomponents.common.download'))
304
- }
305
- }).catch(error => {
306
- that.$message.error(error)
307
- console.log(error)
308
- })
309
- return resData
310
- },
311
- async getTscControlInfo () {
312
- await getTscControl(this.agentId).then((data) => {
313
- let res = data
314
- this.controlInfo = {
315
- tscData: null,
316
- stageData: null,
317
- controlData: null
318
- }
319
- if (!data.data.success) {
320
- if (data.data.code === '4003') {
321
- this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
322
- return
323
- }
324
- let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
325
- if (data.data.data) {
326
- // 子类型错误
327
- let childErrorCode = data.data.data.errorCode
328
- if (childErrorCode) {
329
- let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
330
- this.$message.error(parrenterror + ',' + childerror)
331
- }
332
- } else {
333
- this.$message.error(parrenterror)
334
- }
335
- return
336
- }
337
- let tscData = JSON.parse(JSON.stringify(res.data.data))
338
- let stageData = []
339
- // stageData = this.handleStageData(tscData) // 处理阶段(驻留)stage数据
340
- let controlData = {}
341
- let param = Object.assign({}, tscData)
342
- controlData = this.controlFormat.handleGetData(param)
343
- this.controlData = controlData
344
- this.controlInfo = {
345
- tscData: tscData,
346
- stageData: stageData,
347
- controlData: controlData
348
- }
349
- }).catch(error => {
350
- this.$message.error(error)
351
- console.log(error)
352
- })
353
- },
354
- async getPhase () {
355
- await uploadSingleTscParam('phase', this.agentId).then(data => {
356
- let res = data.data
357
- if (!res.success) {
358
- if (res.code === '4003') {
359
- this.$message.error(this.$t('openatccomponents.errorTip.devicenotonline'))
360
- return
361
- }
362
- this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
363
- return
364
- }
365
- this.phaseList = res.data.data.phaseList
366
- })
367
- },
368
- async getPhaseInfo () {
369
- await this.getPhase()
370
- let res = [...this.phaseList]
371
- return res
372
- },
373
- async getControlInfo () {
374
- await this.getTscControlInfo()
375
- // let res = this.controlInfo.controlData
376
- let res = this.controlInfo.tscData
377
- return res
378
- },
379
- clearInterVals () {
380
- this.clearPatternInterval() // 清除定时器
381
- this.clearRegisterMessageTimer() // 清除定时器
382
- },
383
- onSelectStages (value) {
384
- this.currentStage = value
385
- this.$emit('onSelectStages', value)
386
- },
387
- async lockPhase (reqData) {
388
- let res = await this.doPatternCommit(reqData)
389
- return res
390
- },
391
- async unlockPhase (reqData) {
392
- let res = await this.doPatternCommit(reqData)
393
- return res
394
- },
395
- async changeControlPattern (reqData) {
396
- let res = await this.doPatternCommit(reqData)
397
- return res
398
- },
399
- getBusPos () {
400
- // 公交相位信息
401
- this.busPhaseData = []
402
- this.phaseList.forEach((ele, i) => {
403
- if (ele.controltype >= 3 && ele.controltype <= 5) {
404
- ele.direction.forEach((dir, index) => {
405
- // 车道相位
406
- this.busPhaseData.push({
407
- // key: this.CrossDiagramMgr.getUniqueKey('busphase'),
408
- phaseid: ele.id, // 相位id,用于对应相位状态
409
- id: dir, // 接口返回的dir字段,对应前端定义的相位方向id,唯一标识
410
- name: this.PhaseDataModel.getBusPhasePos(dir).name,
411
- controltype: ele.controltype
412
- })
413
- })
414
- }
415
- })
416
- let result = []
417
- let obj = {}
418
- for (var i = 0; i < this.busPhaseData.length; i++) {
419
- if (!obj[this.busPhaseData[i].phaseid]) {
420
- result.push(this.busPhaseData[i])
421
- obj[this.busPhaseData[i].phaseid] = true
422
- }
423
- }
424
- this.busPhaseData = result
425
- },
426
- handleStageData (data) {
427
- this.getBusPos()
428
- this.stagesList = []
429
- let busPhaseData = this.busPhaseData
430
- let stages = data.stages
431
- if (!stages) return
432
- let stagesTemp = []
433
- for (let stage of stages) {
434
- let tempList = []
435
- let directionList = []
436
- let stageControType = 0
437
- let peddirections = []
438
- for (let stg of stage) {
439
- let currPhase = this.phaseList.filter((item) => {
440
- return item.id === stg
441
- })[0]
442
- if (currPhase !== undefined) {
443
- directionList = [...currPhase.direction, ...directionList]
444
- }
445
- for (let walk of this.sidewalkPhaseData) {
446
- if (stg === walk.phaseid) {
447
- peddirections.push(...currPhase.peddirection)
448
- peddirections = Array.from(new Set(peddirections))
449
- }
450
- }
451
- for (let busPhase of busPhaseData) {
452
- if (stg === busPhase.phaseid) {
453
- stageControType = busPhase.controltype
454
- }
455
- }
456
- }
457
- directionList = [...new Set(directionList)]
458
- if (directionList.length === 0) return
459
- tempList = directionList.map(dir => ({
460
- id: dir,
461
- color: '#606266',
462
- controltype: stageControType,
463
- peddirection: peddirections
464
- }))
465
- stagesTemp.push(tempList)
466
- }
467
- this.stagesList = JSON.parse(JSON.stringify(stagesTemp))
468
- // 相位变化时触发回调
469
- if (this.currentStage !== data.current_stage) {
470
- this.$emit('onPhaseChange', this.stagesList, data.current_stage)
471
- }
472
- this.currentStage = data.current_stage
473
- }
474
- },
475
- created () {
476
- this.agentId = this.AgentId
477
- this.setDialogWidth()
478
- this.setHost(this.reqUrl)
479
- this.controlFormat = new ControlFormat()
480
- },
481
- mounted () {
482
- setIframdevid(this.AgentId)
483
- this.resetIntersectionMap()
484
- window.onresize = () => {
485
- return (() => {
486
- this.setDialogWidth()
487
- })()
488
- }
489
- },
490
- destroyed () {
491
- this.destroyIntersectionMap()
492
- }
493
- }
494
- </script>
495
- <style lang="scss">
496
- .abow_dialog {
497
- display: flex;
498
- justify-content: center;
499
- align-items: Center;
500
- overflow: hidden;
501
- .el-dialog {
502
- margin: 0 auto !important;
503
- height: 90%;
504
- overflow: hidden;
505
- .el-dialog__body {
506
- position: absolute;
507
- left: 0;
508
- top: 54px;
509
- bottom: 0;
510
- right: 0;
511
- padding: 0;
512
- z-index: 1;
513
- overflow-y: auto;
514
- overflow-x: auto;
515
- }
516
- }
517
- }
518
- </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
+ <!--动态路口图,只需要设备AgentId,此组件会处理方案状态接口轮询-->
13
+ <template>
14
+ <div class="intersection-with-interface">
15
+ <IntersectionMap
16
+ ref="intersectionMap"
17
+ :crossStatusData="crossStatusData"
18
+ :devStatus="devStatus"
19
+ :agentId="agentId"
20
+ :graphicMode="true"
21
+ :roadDirection="roadDirection"
22
+ :modeName="modeName !== '' ? modeName : controlData.mode"
23
+ :controlName="controlName !== '' ? controlName : controlData.control"
24
+ :isShowMode="isShowMode"
25
+ :isShowState="isShowState"
26
+ :isShowInterval="isShowInterval"
27
+ @onSelectStages="onSelectStages"/>
28
+ </div>
29
+ </template>
30
+ <script>
31
+ import IntersectionMap from '../IntersectionMap'
32
+ import { getMessageByCode } from '../../../utils/responseMessage'
33
+ import { getTscControl, queryDevice, putTscControl } from '../../../api/control.js'
34
+ import { registerMessage, uploadSingleTscParam } from '../../../api/param'
35
+ import { getIframdevid, setIframdevid, setToken, setHost } from '../../../utils/auth.js'
36
+ import ControlFormat from '../../../utils/ControlFormat.js'
37
+ export default {
38
+ name: 'intersection-with-interface',
39
+ components: {
40
+ IntersectionMap
41
+ },
42
+ data () {
43
+ return {
44
+ controlData: {},
45
+ boxVisible: false,
46
+ dialogWidth: '100%',
47
+ crossStatusData: {}, // 路口状态数据
48
+ devStatus: 1,
49
+ isResend: true,
50
+ intervalFlag: true,
51
+ phaseControlTimer: null, // 定时器
52
+ registerMessageTimer: null // 延时器
53
+ }
54
+ },
55
+ props: {
56
+ reqUrl: {
57
+ type: String,
58
+ default: ''
59
+ },
60
+ AgentId: {
61
+ type: String,
62
+ default: '0'
63
+ },
64
+ Token: {
65
+ type: String,
66
+ default: ''
67
+ },
68
+ roadDirection: {
69
+ type: String,
70
+ default: 'right'
71
+ },
72
+ isShowInterval: {
73
+ type: Boolean,
74
+ default: true
75
+ },
76
+ isShowState: {
77
+ type: Boolean,
78
+ devault: false
79
+ },
80
+ isShowMode: {
81
+ type: Boolean,
82
+ default: false
83
+ },
84
+ modeName: {
85
+ type: String,
86
+ default: ''
87
+ },
88
+ controlName: {
89
+ type: String,
90
+ default: ''
91
+ }
92
+ },
93
+ watch: {
94
+ AgentId: {
95
+ handler: function (val, oldVal) {
96
+ this.agentId = val
97
+ },
98
+ // 深度观察监听
99
+ deep: true
100
+ },
101
+ Token: {
102
+ handler: function (val) {
103
+ this.setPropsToken(val)
104
+ }
105
+ }
106
+ },
107
+ methods: {
108
+ oncancle () {
109
+ this.boxVisible = false
110
+ },
111
+ handleOpenConfigPanel () {
112
+ this.boxVisible = true
113
+ },
114
+ setDialogWidth () {
115
+ var val = document.body.offsetWidth
116
+ const def = 1200 // 默认宽度
117
+ if (val < def) {
118
+ this.dialogWidth = '100%'
119
+ } else {
120
+ this.dialogWidth = def + 'px'
121
+ }
122
+ },
123
+ resetIntersectionMap () {
124
+ this.setPropsToken(this.Token)
125
+ this.firstInit()
126
+ this.$refs.intersectionMap.resetCrossDiagram()
127
+ this.initData()
128
+ },
129
+ registerMessage () {
130
+ registerMessage(this.AgentId).then(data => {
131
+ if (!data.data.success) {
132
+ this.devStatus = 2
133
+ let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
134
+ if (data.data.data) {
135
+ // 子类型错误
136
+ let childErrorCode = data.data.data.errorCode
137
+ if (childErrorCode) {
138
+ let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
139
+ this.$message.error(parrenterror + ',' + childerror)
140
+ }
141
+ } else {
142
+ this.$message.error(parrenterror)
143
+ }
144
+ if (this.isResend) {
145
+ this.reSend()
146
+ }
147
+ return
148
+ }
149
+ this.$emit('registerMessage', data)
150
+ this.devStatus = 3
151
+ this.clearPatternInterval() // 清除其他定时器
152
+ this.phaseControlTimer = setInterval(() => {
153
+ if (this.intervalFlag) {
154
+ this.initData()
155
+ }
156
+ }, 1000)
157
+ })
158
+ },
159
+ reSend () { // 设备掉线重连机制
160
+ this.devStatus = 1
161
+ this.clearRegisterMessageTimer()
162
+ this.registerMessageTimer = setTimeout(() => {
163
+ this.reconnectionDev()
164
+ }, 5000)
165
+ },
166
+ clearPatternInterval () {
167
+ if (this.phaseControlTimer !== null) {
168
+ clearInterval(this.phaseControlTimer) // 清除定时器
169
+ this.phaseControlTimer = null
170
+ }
171
+ },
172
+ clearRegisterMessageTimer () {
173
+ if (this.registerMessageTimer !== null) {
174
+ clearTimeout(this.registerMessageTimer) // 清除延时器
175
+ this.registerMessageTimer = null
176
+ }
177
+ },
178
+ initData () {
179
+ this.intervalFlag = false
180
+ let iframdevid = getIframdevid()
181
+ console.log(iframdevid)
182
+ let startTime = new Date().getTime()
183
+ getTscControl(this.AgentId).then((data) => {
184
+ let endTime = new Date().getTime()
185
+ let diffTime = endTime - startTime
186
+ this.responseTime = diffTime
187
+ this.intervalFlag = true
188
+ if (!data.data.success) {
189
+ if (data.data.code === '4003') {
190
+ this.devStatus = 2
191
+ this.clearPatternInterval() // 清除其他定时器
192
+ this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
193
+ if (this.isResend) {
194
+ this.reSend()
195
+ }
196
+ return
197
+ }
198
+ let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
199
+ if (data.data.data) {
200
+ // 子类型错误
201
+ let childErrorCode = data.data.data.errorCode
202
+ if (childErrorCode) {
203
+ let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
204
+ this.$message.error(parrenterror + ',' + childerror)
205
+ }
206
+ } else {
207
+ this.$message.error(parrenterror)
208
+ }
209
+ this.clearPatternInterval() // 清除其他定时器
210
+ if (this.isResend) {
211
+ this.reSend()
212
+ }
213
+ return
214
+ }
215
+ this.crossStatusData = JSON.parse(JSON.stringify(data.data.data.data))
216
+ let param = JSON.parse(JSON.stringify(data.data.data.data))
217
+ // this.controlData = this.handleGetData(param)
218
+ this.controlData = this.controlFormat.handleGetData(param)
219
+ this.$emit('getTscControl', data)
220
+ }).catch(error => {
221
+ this.$message.error(error)
222
+ console.log(error)
223
+ })
224
+ },
225
+ reconnectionDev () {
226
+ this.registerMessage()
227
+ },
228
+ queryDevParams () {
229
+ let _this = this
230
+ queryDevice(this.AgentId).then(res => {
231
+ if (!res.data.success) {
232
+ _this.$message.error(getMessageByCode(res.data.code, _this.$i18n.locale))
233
+ return
234
+ }
235
+ let devParams = res.data.data.jsonparam
236
+ _this.ip = devParams.ip
237
+ _this.port = String(devParams.port)
238
+ _this.protocol = res.data.data.protocol
239
+ _this.agentId = res.data.data.agentid
240
+ if (res.data.data.name) {
241
+ _this.agentName = res.data.data.name
242
+ }
243
+ _this.platform = res.data.data.platform
244
+ _this.$refs.intersectionMap.resetCrossDiagram()
245
+ _this.registerMessage() // 注册消息
246
+ _this.$emit('queryDevice', res)
247
+ })
248
+ },
249
+ firstInit () {
250
+ if (this.$route.query !== undefined && Object.keys(this.$route.query).length) {
251
+ this.agentId = this.$route.query.agentid
252
+ setIframdevid(this.agentId)
253
+ this.registerMessage() // 注册消息
254
+ } else {
255
+ this.queryDevParams() // 查询设备信息
256
+ }
257
+ },
258
+ destroyIntersectionMap () {
259
+ this.isResend = false
260
+ this.clearPatternInterval() // 清除定时器
261
+ this.clearRegisterMessageTimer() // 清除定时器
262
+ },
263
+ setPropsToken (token) {
264
+ // 获取组件外传入的token,便于独立组件调用接口
265
+ if (token && token !== '') {
266
+ setToken(token)
267
+ }
268
+ },
269
+ setHost (host) {
270
+ // 获取组件外传入的token,便于独立组件调用接口
271
+ if (host && host !== '') {
272
+ setHost(host)
273
+ }
274
+ },
275
+ async doPatternCommit (control) {
276
+ let that = this
277
+ let resData
278
+ await putTscControl(control, this.agentId).then(data => {
279
+ resData = data
280
+ let success = 0
281
+ if (!data.data.success) {
282
+ that.$message.error(getMessageByCode(data.data.code, that.$i18n.locale))
283
+ return
284
+ }
285
+ if (data.data.data && data.data.data.data) {
286
+ success = data.data.data.data.success
287
+ if (success !== 0) {
288
+ let errormsg = 'openatccomponents.overview.putTscControlError' + success
289
+ that.$message.error(this.$t(errormsg))
290
+ return
291
+ }
292
+ }
293
+ // this.closeManualModal()
294
+ if ((that.currModel === 5 || that.currModel === 6 || that.currModel === 10 || that.currModel === 12) && (that.preselectModel === 6 || that.preselectModel === 10 || that.preselectModel === 12)) {
295
+ that.$message.success(this.$t('openatccomponents.overview.nextcycleeffic'))
296
+ return
297
+ }
298
+ if (that.preselectModel === 4) {
299
+ that.$message.success(this.$t('openatccomponents.overview.transitioneffic'))
300
+ return
301
+ }
302
+ if (success === 0) {
303
+ that.$message.success(this.$t('openatccomponents.common.download'))
304
+ }
305
+ }).catch(error => {
306
+ that.$message.error(error)
307
+ console.log(error)
308
+ })
309
+ return resData
310
+ },
311
+ async getTscControlInfo () {
312
+ await getTscControl(this.agentId).then((data) => {
313
+ let res = data
314
+ this.controlInfo = {
315
+ tscData: null,
316
+ stageData: null,
317
+ controlData: null
318
+ }
319
+ if (!data.data.success) {
320
+ if (data.data.code === '4003') {
321
+ this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
322
+ return
323
+ }
324
+ let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
325
+ if (data.data.data) {
326
+ // 子类型错误
327
+ let childErrorCode = data.data.data.errorCode
328
+ if (childErrorCode) {
329
+ let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
330
+ this.$message.error(parrenterror + ',' + childerror)
331
+ }
332
+ } else {
333
+ this.$message.error(parrenterror)
334
+ }
335
+ return
336
+ }
337
+ let tscData = JSON.parse(JSON.stringify(res.data.data))
338
+ let stageData = []
339
+ // stageData = this.handleStageData(tscData) // 处理阶段(驻留)stage数据
340
+ let controlData = {}
341
+ let param = Object.assign({}, tscData)
342
+ controlData = this.controlFormat.handleGetData(param)
343
+ this.controlData = controlData
344
+ this.controlInfo = {
345
+ tscData: tscData,
346
+ stageData: stageData,
347
+ controlData: controlData
348
+ }
349
+ }).catch(error => {
350
+ this.$message.error(error)
351
+ console.log(error)
352
+ })
353
+ },
354
+ async getPhase () {
355
+ await uploadSingleTscParam('phase', this.agentId).then(data => {
356
+ let res = data.data
357
+ if (!res.success) {
358
+ if (res.code === '4003') {
359
+ this.$message.error(this.$t('openatccomponents.errorTip.devicenotonline'))
360
+ return
361
+ }
362
+ this.$message.error(getMessageByCode(data.data.code, this.$i18n.locale))
363
+ return
364
+ }
365
+ this.phaseList = res.data.data.phaseList
366
+ })
367
+ },
368
+ async getPhaseInfo () {
369
+ await this.getPhase()
370
+ let res = [...this.phaseList]
371
+ return res
372
+ },
373
+ async getControlInfo () {
374
+ await this.getTscControlInfo()
375
+ // let res = this.controlInfo.controlData
376
+ let res = this.controlInfo.tscData
377
+ return res
378
+ },
379
+ clearInterVals () {
380
+ this.clearPatternInterval() // 清除定时器
381
+ this.clearRegisterMessageTimer() // 清除定时器
382
+ },
383
+ onSelectStages (value) {
384
+ this.currentStage = value
385
+ this.$emit('onSelectStages', value)
386
+ },
387
+ async lockPhase (reqData) {
388
+ let res = await this.doPatternCommit(reqData)
389
+ return res
390
+ },
391
+ async unlockPhase (reqData) {
392
+ let res = await this.doPatternCommit(reqData)
393
+ return res
394
+ },
395
+ async changeControlPattern (reqData) {
396
+ let res = await this.doPatternCommit(reqData)
397
+ return res
398
+ },
399
+ getBusPos () {
400
+ // 公交相位信息
401
+ this.busPhaseData = []
402
+ this.phaseList.forEach((ele, i) => {
403
+ if (ele.controltype >= 3 && ele.controltype <= 5) {
404
+ ele.direction.forEach((dir, index) => {
405
+ // 车道相位
406
+ this.busPhaseData.push({
407
+ // key: this.CrossDiagramMgr.getUniqueKey('busphase'),
408
+ phaseid: ele.id, // 相位id,用于对应相位状态
409
+ id: dir, // 接口返回的dir字段,对应前端定义的相位方向id,唯一标识
410
+ name: this.PhaseDataModel.getBusPhasePos(dir).name,
411
+ controltype: ele.controltype
412
+ })
413
+ })
414
+ }
415
+ })
416
+ let result = []
417
+ let obj = {}
418
+ for (var i = 0; i < this.busPhaseData.length; i++) {
419
+ if (!obj[this.busPhaseData[i].phaseid]) {
420
+ result.push(this.busPhaseData[i])
421
+ obj[this.busPhaseData[i].phaseid] = true
422
+ }
423
+ }
424
+ this.busPhaseData = result
425
+ },
426
+ handleStageData (data) {
427
+ this.getBusPos()
428
+ this.stagesList = []
429
+ let busPhaseData = this.busPhaseData
430
+ let stages = data.stages
431
+ if (!stages) return
432
+ let stagesTemp = []
433
+ for (let stage of stages) {
434
+ let tempList = []
435
+ let directionList = []
436
+ let stageControType = 0
437
+ let peddirections = []
438
+ for (let stg of stage) {
439
+ let currPhase = this.phaseList.filter((item) => {
440
+ return item.id === stg
441
+ })[0]
442
+ if (currPhase !== undefined) {
443
+ directionList = [...currPhase.direction, ...directionList]
444
+ }
445
+ for (let walk of this.sidewalkPhaseData) {
446
+ if (stg === walk.phaseid) {
447
+ peddirections.push(...currPhase.peddirection)
448
+ peddirections = Array.from(new Set(peddirections))
449
+ }
450
+ }
451
+ for (let busPhase of busPhaseData) {
452
+ if (stg === busPhase.phaseid) {
453
+ stageControType = busPhase.controltype
454
+ }
455
+ }
456
+ }
457
+ directionList = [...new Set(directionList)]
458
+ if (directionList.length === 0) return
459
+ tempList = directionList.map(dir => ({
460
+ id: dir,
461
+ color: '#606266',
462
+ controltype: stageControType,
463
+ peddirection: peddirections
464
+ }))
465
+ stagesTemp.push(tempList)
466
+ }
467
+ this.stagesList = JSON.parse(JSON.stringify(stagesTemp))
468
+ // 相位变化时触发回调
469
+ if (this.currentStage !== data.current_stage) {
470
+ this.$emit('onPhaseChange', this.stagesList, data.current_stage)
471
+ }
472
+ this.currentStage = data.current_stage
473
+ }
474
+ },
475
+ created () {
476
+ this.agentId = this.AgentId
477
+ this.setDialogWidth()
478
+ this.setHost(this.reqUrl)
479
+ this.controlFormat = new ControlFormat()
480
+ },
481
+ mounted () {
482
+ setIframdevid(this.AgentId)
483
+ this.resetIntersectionMap()
484
+ window.onresize = () => {
485
+ return (() => {
486
+ this.setDialogWidth()
487
+ })()
488
+ }
489
+ },
490
+ destroyed () {
491
+ this.destroyIntersectionMap()
492
+ }
493
+ }
494
+ </script>
495
+ <style lang="scss">
496
+ .abow_dialog {
497
+ display: flex;
498
+ justify-content: center;
499
+ align-items: Center;
500
+ overflow: hidden;
501
+ .el-dialog {
502
+ margin: 0 auto !important;
503
+ height: 90%;
504
+ overflow: hidden;
505
+ .el-dialog__body {
506
+ position: absolute;
507
+ left: 0;
508
+ top: 54px;
509
+ bottom: 0;
510
+ right: 0;
511
+ padding: 0;
512
+ z-index: 1;
513
+ overflow-y: auto;
514
+ overflow-x: auto;
515
+ }
516
+ }
517
+ }
518
+ </style>