openatc-components 0.4.96 → 0.4.98

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 (420) hide show
  1. package/.babelrc +18 -18
  2. package/.editorconfig +9 -9
  3. package/.eslintignore +5 -5
  4. package/.eslintrc.js +31 -31
  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 +120 -120
  15. package/build/webpack.dev.conf.js +95 -95
  16. package/build/webpack.prod.conf.js +149 -149
  17. package/config/index.js +137 -137
  18. package/config/prod.env.js +5 -5
  19. package/config/test.env.js +7 -7
  20. package/index.html +12 -12
  21. package/package/kisscomps/components/BoardCard/BoardCard.vue +0 -4
  22. package/package/kisscomps/components/ChannelRealtimeIntersection/ChannelRealtimeIntersection.vue +2 -21
  23. package/package/kisscomps/components/Channelization/Channelization.vue +585 -585
  24. package/package/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +360 -360
  25. package/package/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +518 -518
  26. package/package/kisscomps/components/CommonKanban/CommonKanban.vue +132 -132
  27. package/package/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +2 -2
  28. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-east-bottom.vue +41 -41
  29. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-east-top.vue +60 -60
  30. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-ewped.vue +105 -105
  31. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-north-left.vue +60 -60
  32. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-north-right.vue +60 -60
  33. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-snped.vue +105 -105
  34. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-south-left.vue +60 -60
  35. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-south-right.vue +60 -60
  36. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-west-bottom.vue +60 -60
  37. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-west-top.vue +60 -60
  38. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-xlped.vue +30 -30
  39. package/package/kisscomps/components/DirectionListConfiguration/svg/ped-xrped.vue +30 -30
  40. package/package/kisscomps/components/DirectionListConfiguration/svg/pedSvg.vue +78 -78
  41. package/package/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +181 -181
  42. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +255 -255
  43. package/package/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -152
  44. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -91
  45. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +194 -194
  46. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -108
  47. package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +51 -51
  48. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +236 -236
  49. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +247 -247
  50. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +210 -210
  51. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +72 -72
  52. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +368 -368
  53. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +230 -230
  54. package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +74 -74
  55. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +19 -64
  56. package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +144 -144
  57. package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +707 -707
  58. package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +172 -172
  59. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +2 -2
  60. package/package/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -99
  61. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +87 -87
  62. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -32
  63. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -20
  64. package/package/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -278
  65. package/package/kisscomps/components/ExpendConfig/ExpendConfig.vue +118 -118
  66. package/package/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +178 -178
  67. package/package/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +6 -13
  68. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +629 -629
  69. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  70. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +447 -447
  71. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +341 -341
  72. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +497 -497
  73. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +353 -353
  74. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +359 -359
  75. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +443 -443
  76. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +2 -4
  77. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1190 -1190
  78. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +498 -498
  79. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +484 -484
  80. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +488 -488
  81. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +566 -566
  82. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +640 -640
  83. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +497 -497
  84. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +486 -486
  85. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +490 -490
  86. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +575 -575
  87. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  88. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  89. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  90. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  91. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  92. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  93. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +18 -59
  94. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +197 -197
  95. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +122 -122
  96. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  97. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  98. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +16 -0
  99. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +115 -115
  100. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  101. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +16 -0
  102. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +0 -10
  103. package/package/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +534 -534
  104. package/package/kisscomps/components/KanBan/kanban.vue +231 -231
  105. package/package/kisscomps/components/MessageBox/index.vue +96 -96
  106. package/package/kisscomps/components/OverviewComponent/index.vue +7 -33
  107. package/package/kisscomps/components/PatternOptimize/PatternOptimize.vue +329 -329
  108. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +1 -81
  109. package/package/kisscomps/components/PatternWalkSvg/PatternWalkSvg.vue +423 -423
  110. package/package/kisscomps/components/PhaseDirectionSelect/PhaseDirectionSelect.vue +126 -126
  111. package/package/kisscomps/components/PhaseDirectionText/PhaseDirectionText.vue +106 -106
  112. package/package/kisscomps/components/PhaseLegend/PhaseLegend.vue +286 -286
  113. package/package/kisscomps/components/PhaseMarker/index.js +6 -6
  114. package/package/kisscomps/components/PhaseMarker/phasemarker.vue +215 -215
  115. package/package/kisscomps/components/PhaseMarker/svg/patternSvg.vue +121 -121
  116. package/package/kisscomps/components/PhaseMarker/svg/phase.vue +60 -60
  117. package/package/kisscomps/components/PhaseMarker/svg/phaseCount.vue +62 -62
  118. package/package/kisscomps/components/PhaseMarker/svg/phaseCountCycle.vue +62 -62
  119. package/package/kisscomps/components/PhaseMarker/svg/phaseSvg.vue +117 -117
  120. package/package/kisscomps/components/PhasePedSelect/index.vue +206 -206
  121. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +7 -30
  122. package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +365 -365
  123. package/package/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +92 -92
  124. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +214 -214
  125. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +235 -235
  126. package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +235 -235
  127. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/controlModelGroup.vue +131 -131
  128. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +871 -871
  129. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/othersIcon.vue +151 -151
  130. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +215 -215
  131. package/package/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -163
  132. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +308 -308
  133. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +0 -19
  134. package/package/kisscomps/components/SchemeConfig/utils/thirdPartypermission.js +95 -95
  135. package/package/kisscomps/components/SelectCrossPhase/index.vue +418 -418
  136. package/package/kisscomps/components/SelectCrossPhase/utils.js +142 -142
  137. package/package/kisscomps/components/StageOptimize/StageOptimize.vue +367 -367
  138. package/package/kisscomps/components/StageOptimize/index.js +2 -2
  139. package/package/kisscomps/components/StageStatus/StageStatus.vue +341 -341
  140. package/package/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  141. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +1041 -1041
  142. package/package/kisscomps/components/XiaoKanban/DirSelector.vue +356 -356
  143. package/package/kisscomps/components/XiaoKanban/index.vue +122 -122
  144. package/package/kisscomps/components/overView/index.vue +7 -30
  145. package/package/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -665
  146. package/package/kisscomps/components/patternConfig/planContent.vue +604 -604
  147. package/package/kisscomps/components/patternConfig/planMenu.vue +329 -329
  148. package/package/kisscomps/components/patternConfig/utils.js +152 -152
  149. package/package/kisscomps/components/patternList/patternList.vue +0 -4
  150. package/package/kisscomps/index.js +6 -2
  151. package/package/kissui.js +216608 -0
  152. package/package/kissui.min.js +1 -1
  153. package/package.json +1 -1
  154. package/pnpm-lock.yaml +16362 -0
  155. package/src/App.vue +20 -24
  156. package/src/EdgeMgr/EdgeModelBase.js +16 -16
  157. package/src/EdgeMgr/controller/crossDiagramMgr.js +125 -125
  158. package/src/api/authapi.js +31 -31
  159. package/src/api/config.js +21 -21
  160. package/src/api/control.js +110 -110
  161. package/src/api/device.js +135 -135
  162. package/src/api/fault.js +66 -66
  163. package/src/api/index.js +24 -24
  164. package/src/api/login.js +46 -46
  165. package/src/api/optimize.js +72 -72
  166. package/src/api/param.js +165 -165
  167. package/src/api/passwdAssest.js +101 -101
  168. package/src/api/permission.js +33 -33
  169. package/src/api/route.js +171 -171
  170. package/src/api/template.js +27 -27
  171. package/src/assets/font/LICENSE.txt +202 -202
  172. package/src/assets/font/font.css +6 -6
  173. package/src/i18n/index.js +26 -26
  174. package/src/i18n/language/en.js +106 -30
  175. package/src/i18n/language/index.js +31 -25
  176. package/src/i18n/language/ru.js +1555 -0
  177. package/src/i18n/language/zh.js +107 -31
  178. package/src/icons/index.js +20 -20
  179. package/src/icons/svg/azimuthlocking.svg +26 -26
  180. package/src/icons/svg/bendi.svg +110 -110
  181. package/src/icons/svg/bujin.svg +36 -36
  182. package/src/icons/svg/connectBlue.svg +7 -7
  183. package/src/icons/svg/currentvolume.svg +0 -0
  184. package/src/icons/svg/custom-BRTlane.svg +40 -40
  185. package/src/icons/svg/custom-buslane.svg +40 -40
  186. package/src/icons/svg/custom-detector.svg +12 -12
  187. package/src/icons/svg/custom-east-bottom.svg +32 -32
  188. package/src/icons/svg/custom-east-top.svg +32 -32
  189. package/src/icons/svg/custom-ewped.svg +35 -35
  190. package/src/icons/svg/custom-nonmotorizedlane.svg +40 -40
  191. package/src/icons/svg/custom-north-left.svg +32 -32
  192. package/src/icons/svg/custom-north-right.svg +32 -32
  193. package/src/icons/svg/custom-peddetector.svg +17 -17
  194. package/src/icons/svg/custom-snped.svg +35 -35
  195. package/src/icons/svg/custom-south-left.svg +32 -32
  196. package/src/icons/svg/custom-south-right.svg +32 -32
  197. package/src/icons/svg/custom-tramlane.svg +40 -40
  198. package/src/icons/svg/custom-vehiclebranch.svg +40 -40
  199. package/src/icons/svg/custom-vehiclemainroad.svg +41 -41
  200. package/src/icons/svg/custom-west-bottom.svg +32 -32
  201. package/src/icons/svg/custom-west-top.svg +32 -32
  202. package/src/icons/svg/custom-xlped.svg +14 -14
  203. package/src/icons/svg/custom-xrped.svg +14 -14
  204. package/src/icons/svg/cutRed.svg +7 -7
  205. package/src/icons/svg/cycle.svg +0 -0
  206. package/src/icons/svg/dingzhouqi.svg +34 -34
  207. package/src/icons/svg/ganyingkongzhi.svg +30 -30
  208. package/src/icons/svg/guandeng.svg +81 -81
  209. package/src/icons/svg/huangshan.svg +71 -71
  210. package/src/icons/svg/maincontrol.svg +0 -0
  211. package/src/icons/svg/manualcontrolbackground.svg +51 -51
  212. package/src/icons/svg/manualcontrolbackground1.svg +62 -62
  213. package/src/icons/svg/manualcontrolbackgrounden.svg +62 -62
  214. package/src/icons/svg/model.svg +0 -0
  215. package/src/icons/svg/phasediff.svg +0 -0
  216. package/src/icons/svg/prioritycontrol.svg +21 -21
  217. package/src/icons/svg/quanhong.svg +86 -86
  218. package/src/icons/svg/shanghe.svg +11 -11
  219. package/src/icons/svg/shoudong.svg +103 -103
  220. package/src/icons/svg/tentativeplan.svg +28 -28
  221. package/src/icons/svg/time.svg +0 -0
  222. package/src/icons/svg/wuxianlan.svg +46 -46
  223. package/src/icons/svg/xiala.svg +11 -11
  224. package/src/icons/svg/xingrenguojie.svg +33 -33
  225. package/src/icons/svg/xitong.svg +89 -89
  226. package/src/icons/svg/youxian.svg +41 -41
  227. package/src/icons/svg/zizhukongzhi.svg +43 -43
  228. package/src/kisscomps/components/BoardCard/BoardCard.vue +0 -4
  229. package/src/kisscomps/components/ChannelRealtimeIntersection/ChannelRealtimeIntersection.vue +2 -21
  230. package/src/kisscomps/components/Channelization/Channelization.vue +585 -585
  231. package/src/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +360 -360
  232. package/src/kisscomps/components/ChannelizationWithInterface/ChannelizationWithInterface.vue +518 -518
  233. package/src/kisscomps/components/CommonKanban/CommonKanban.vue +132 -132
  234. package/src/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +2 -2
  235. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-east-bottom.vue +41 -41
  236. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-east-top.vue +60 -60
  237. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-ewped.vue +105 -105
  238. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-north-left.vue +60 -60
  239. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-north-right.vue +60 -60
  240. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-snped.vue +105 -105
  241. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-south-left.vue +60 -60
  242. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-south-right.vue +60 -60
  243. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-west-bottom.vue +60 -60
  244. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-west-top.vue +60 -60
  245. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-xlped.vue +30 -30
  246. package/src/kisscomps/components/DirectionListConfiguration/svg/ped-xrped.vue +30 -30
  247. package/src/kisscomps/components/DirectionListConfiguration/svg/pedSvg.vue +78 -78
  248. package/src/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +181 -181
  249. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +255 -255
  250. package/src/kisscomps/components/DrawChannelization/drawsvg/detectorAssociatedComponent.vue +152 -152
  251. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/TextBox.vue +91 -91
  252. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +194 -194
  253. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/editText.vue +108 -108
  254. package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +51 -51
  255. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +236 -236
  256. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +247 -247
  257. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +210 -210
  258. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +72 -72
  259. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +368 -368
  260. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +230 -230
  261. package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +74 -74
  262. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +19 -64
  263. package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +144 -144
  264. package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +707 -707
  265. package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +172 -172
  266. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +2 -2
  267. package/src/kisscomps/components/DrawChannelization/drawsvg/table.vue +99 -99
  268. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +87 -87
  269. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phaseDataModel.js +32 -32
  270. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/phasePos.json +20 -20
  271. package/src/kisscomps/components/DrawChannelization/phaseDataMgr.js +278 -278
  272. package/src/kisscomps/components/ExpendConfig/ExpendConfig.vue +118 -118
  273. package/src/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +178 -178
  274. package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +6 -13
  275. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +629 -629
  276. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  277. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +447 -447
  278. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +341 -341
  279. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +497 -497
  280. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +353 -353
  281. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +359 -359
  282. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +443 -443
  283. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +2 -4
  284. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1190 -1190
  285. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +498 -498
  286. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +484 -484
  287. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +488 -488
  288. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +566 -566
  289. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +640 -640
  290. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +497 -497
  291. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +486 -486
  292. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +490 -490
  293. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +575 -575
  294. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  295. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  296. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  297. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  298. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  299. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  300. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +18 -59
  301. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +197 -197
  302. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +122 -122
  303. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  304. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  305. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +16 -0
  306. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +115 -115
  307. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  308. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +16 -0
  309. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +0 -10
  310. package/src/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +534 -534
  311. package/src/kisscomps/components/KanBan/kanban.vue +231 -231
  312. package/src/kisscomps/components/MessageBox/index.vue +96 -96
  313. package/src/kisscomps/components/OverviewComponent/index.vue +7 -33
  314. package/src/kisscomps/components/PatternOptimize/PatternOptimize.vue +329 -329
  315. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +1 -81
  316. package/src/kisscomps/components/PatternWalkSvg/PatternWalkSvg.vue +423 -423
  317. package/src/kisscomps/components/PhaseDirectionSelect/PhaseDirectionSelect.vue +126 -126
  318. package/src/kisscomps/components/PhaseDirectionText/PhaseDirectionText.vue +106 -106
  319. package/src/kisscomps/components/PhaseLegend/PhaseLegend.vue +286 -286
  320. package/src/kisscomps/components/PhaseMarker/index.js +6 -6
  321. package/src/kisscomps/components/PhaseMarker/phasemarker.vue +215 -215
  322. package/src/kisscomps/components/PhaseMarker/svg/patternSvg.vue +121 -121
  323. package/src/kisscomps/components/PhaseMarker/svg/phase.vue +60 -60
  324. package/src/kisscomps/components/PhaseMarker/svg/phaseCount.vue +62 -62
  325. package/src/kisscomps/components/PhaseMarker/svg/phaseCountCycle.vue +62 -62
  326. package/src/kisscomps/components/PhaseMarker/svg/phaseSvg.vue +117 -117
  327. package/src/kisscomps/components/PhasePedSelect/index.vue +206 -206
  328. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +7 -30
  329. package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +365 -365
  330. package/src/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +92 -92
  331. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +214 -214
  332. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +235 -235
  333. package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +235 -235
  334. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/controlModelGroup.vue +131 -131
  335. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +871 -871
  336. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/othersIcon.vue +151 -151
  337. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +215 -215
  338. package/src/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -163
  339. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +308 -308
  340. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +0 -19
  341. package/src/kisscomps/components/SchemeConfig/utils/thirdPartypermission.js +95 -95
  342. package/src/kisscomps/components/SelectCrossPhase/index.vue +418 -418
  343. package/src/kisscomps/components/SelectCrossPhase/utils.js +142 -142
  344. package/src/kisscomps/components/StageOptimize/StageOptimize.vue +367 -367
  345. package/src/kisscomps/components/StageOptimize/index.js +2 -2
  346. package/src/kisscomps/components/StageStatus/StageStatus.vue +341 -341
  347. package/src/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  348. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +1041 -1041
  349. package/src/kisscomps/components/XiaoKanban/DirSelector.vue +356 -356
  350. package/src/kisscomps/components/XiaoKanban/index.vue +122 -122
  351. package/src/kisscomps/components/overView/index.vue +7 -30
  352. package/src/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -665
  353. package/src/kisscomps/components/patternConfig/planContent.vue +604 -604
  354. package/src/kisscomps/components/patternConfig/planMenu.vue +329 -329
  355. package/src/kisscomps/components/patternConfig/utils.js +152 -152
  356. package/src/kisscomps/components/patternList/patternList.vue +0 -4
  357. package/src/kisscomps/index.js +6 -2
  358. package/src/lib/publicjs/ArryListUtil.js +38 -38
  359. package/src/lib/publicjs/HttpurlMgr.js +45 -45
  360. package/src/lib/publicjs/KissApi.js +158 -158
  361. package/src/lib/publicjs/KissWSSub/Heartcheck.js +128 -128
  362. package/src/lib/publicjs/KissWSSub/KissWsSub.js +91 -91
  363. package/src/lib/publicjs/KissWSSub/KissWsSubByType.js +152 -152
  364. package/src/lib/publicjs/KissWSSub/SimuWsSubByType.js +44 -44
  365. package/src/lib/publicjs/KissWSSub/Sub.js +51 -51
  366. package/src/lib/publicjs/KissWSSub/SubChannel.js +119 -119
  367. package/src/lib/publicjs/basecomponents.js +65 -65
  368. package/src/lib/publicjs/localStorage.js +112 -112
  369. package/src/lib/publicjs/objdeepcopy.js +32 -32
  370. package/src/lib/publicjs/pageScroll.js +30 -30
  371. package/src/lib/publicjs/passwdAssest.js +101 -101
  372. package/src/lib/publicjs/styleclassfactory.js +32 -32
  373. package/src/router/index.js +63 -63
  374. package/src/store/index.js +26 -26
  375. package/src/store/modules/globalParam.js +67 -67
  376. package/src/utils/ControlFormat.js +14 -36
  377. package/src/utils/RingDataModel.js +335 -335
  378. package/src/utils/auth.js +199 -199
  379. package/src/utils/conflictList.js +87 -87
  380. package/src/utils/dateFormat.js +41 -41
  381. package/src/utils/fault.js +20 -72
  382. package/src/utils/faultcode.js +130 -182
  383. package/src/utils/index.js +69 -69
  384. package/src/utils/pedphasedesc.js +119 -119
  385. package/src/utils/phaseList.js +203 -203
  386. package/src/utils/phasedesc.js +144 -144
  387. package/src/utils/responseMessage.js +24 -21
  388. package/src/utils/validate.js +43 -43
  389. package/src/views/customchannelization.vue +6 -6
  390. package/src/views/home.1.vue +479 -479
  391. package/src/views/home.vue +93 -93
  392. package/src/views/intersection.vue +5 -11
  393. package/src/views/intersection2.vue +328 -328
  394. package/src/views/overView.vue +63 -63
  395. package/src/views/patternConfig.vue +2 -2
  396. package/src/views/schemeconfig.vue +1 -1
  397. package/static/styles/channelizatioon.scss +433 -433
  398. package/static/styles/common.scss +30 -30
  399. package/static/styles/commonkanban.scss +168 -168
  400. package/static/styles/dark/index.scss +2 -2
  401. package/static/styles/dark/theme/element-dark.scss +44 -44
  402. package/static/styles/index.scss +84 -84
  403. package/static/styles/intersection.scss +180 -180
  404. package/static/styles/light/index.scss +2 -2
  405. package/static/styles/light/theme/element-light.scss +44 -44
  406. package/static/styles/overview.scss +146 -146
  407. package/static/styles/patternConfig.scss +56 -56
  408. package/static/styles/phasePedSelect.scss +71 -71
  409. package/static/styles/stages.scss +57 -57
  410. package/static/styles/uiComponents.scss +57 -57
  411. package/static/styles/xiaokanban.scss +61 -61
  412. package/static/token.json +2 -2
  413. package/test/e2e/custom-assertions/elementCount.js +27 -27
  414. package/test/e2e/nightwatch.conf.js +46 -46
  415. package/test/e2e/runner.js +48 -48
  416. package/test/e2e/specs/test.js +19 -19
  417. package/test/unit/.eslintrc +7 -7
  418. package/test/unit/jest.conf.js +30 -30
  419. package/test/unit/setup.js +3 -3
  420. package/test/unit/specs/HelloWorld.spec.js +11 -11
@@ -1,158 +1,158 @@
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
- import {
13
- HttpUrlMgr
14
- } from './HttpurlMgr'
15
- import axios from 'axios'
16
- import * as localStorge from './localStorage'
17
- import { removeToken, getToken } from '../../utils/auth'
18
-
19
- axios.defaults.withCredentials = true
20
- export const getAxios = () => {
21
- return axios
22
- }
23
-
24
- export class KissApi {
25
- constructor (key) {
26
- this.key = key
27
- this.urlMgr = HttpUrlMgr
28
- this.headerInfo = {}
29
- this.defaultParam = JSON.parse('{}')
30
- }
31
- /*
32
- 获取服务器地址 需要在storage中设置 key=host的value
33
- */
34
- GetHost () {
35
- return localStorge.getStorage('host')
36
- }
37
-
38
- /*
39
- 获取token 需要在storage中设置 key=token的value
40
- */
41
- GetToken () {
42
- return getToken()
43
- }
44
-
45
- /*
46
- 获取username 需要在storage中设置 key=user_name的value
47
- */
48
- GetSimuUserKey () {
49
- return localStorge.getStorage('simu_key')
50
- }
51
-
52
- createAxios () {
53
- // 创建axios实例
54
- const service = axios.create()
55
- return service
56
- }
57
-
58
- /*
59
- @brief 发送http请求
60
- @param[in] param 添加到url中的参数json
61
- @param[in] data 添加到body中的参数json
62
- @param[in] urlParamList 添加在url中的动态参数 ['1', 'states'] 则 host/url/1/states?params...
63
- @param[in, out] 回调函数 是否成功及返回的数据 function(bool, json)
64
- @param[in] hasToken 是否使用token
65
- @param[in] isFile 是否为文件格式
66
- @return 成功调用 返回promise对象可以用.then关联回调 失败返回undefine
67
- */
68
- Send (param, data, urlParamList = [], hasToken = true, isFile = false) {
69
- let host = this.GetHost()
70
- if (host === undefined) {
71
- console.log('host is empty')
72
- return undefined
73
- }
74
- if (hasToken) {
75
- let token = this.GetToken()
76
- if (token === undefined) {
77
- console.log('token is empty')
78
- return undefined
79
- }
80
- this.headerInfo.Authorization = token
81
- if (isFile) {
82
- this.headerInfo['Content-Type'] = 'multipart/form-data'
83
- }
84
- }
85
-
86
- // headerInfo['Simukey'] = this.GetSimuUserKey()
87
-
88
- let urlInfo = this.urlMgr.GetUrlInfo(this.key)
89
- if (urlInfo === undefined) {
90
- console.log('urlinfo is empty')
91
- return undefined
92
- }
93
- let apiUrl = urlInfo.url
94
- for (let item of urlParamList) {
95
- apiUrl += '/'
96
- apiUrl += item
97
- }
98
- const config = {
99
- baseURL: host,
100
- withCredentials: false,
101
- url: apiUrl,
102
- method: urlInfo.method,
103
- headers: this.headerInfo,
104
- timeout: 1000 * 60,
105
- data: data,
106
- params: this._assingJson(param, this.defaultParam)
107
- }
108
- const service = this.createAxios()
109
- // 响应错误拦截
110
- if (apiUrl !== '/auth/login') {
111
- this.responseInterception(service)
112
- }
113
- return service({...config})
114
- }
115
-
116
- responseInterception (service) {
117
- // respone拦截器
118
- service.interceptors.response.use(
119
- response => {
120
- /**
121
- * success === false就抛错
122
- */
123
- const res = response.data
124
- if (!res.success) {
125
- this.handleErrorMechanism(res)
126
- return response
127
- } else {
128
- return response
129
- }
130
- },
131
- error => {
132
- console.log(error)
133
- }
134
- )
135
- }
136
-
137
- handleErrorMechanism (res) {
138
- // 全局api错误拦截机制
139
- if (res.code === '3013' || res.code === '3015' || res.code === '3014') {
140
- removeToken()
141
- location.reload()
142
- }
143
- }
144
-
145
- _assingJson (json1, json2) {
146
- if (JSON.stringify(json1) === '{}') return json2
147
- if (JSON.stringify(json2) === '{}') return json1
148
- return JSON.parse((JSON.stringify(json1) + JSON.stringify(json2)).replace(/}{/, ','))
149
- }
150
- }
151
-
152
- export class SimuApi extends KissApi {
153
- constructor (key, simuId) {
154
- super(key)
155
- this.defaultParam['scenestype'] = 'simu'
156
- this.defaultParam['scenesid'] = simuId
157
- }
158
- }
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
+ import {
13
+ HttpUrlMgr
14
+ } from './HttpurlMgr'
15
+ import axios from 'axios'
16
+ import * as localStorge from './localStorage'
17
+ import { removeToken, getToken } from '../../utils/auth'
18
+
19
+ axios.defaults.withCredentials = true
20
+ export const getAxios = () => {
21
+ return axios
22
+ }
23
+
24
+ export class KissApi {
25
+ constructor (key) {
26
+ this.key = key
27
+ this.urlMgr = HttpUrlMgr
28
+ this.headerInfo = {}
29
+ this.defaultParam = JSON.parse('{}')
30
+ }
31
+ /*
32
+ 获取服务器地址 需要在storage中设置 key=host的value
33
+ */
34
+ GetHost () {
35
+ return localStorge.getStorage('host')
36
+ }
37
+
38
+ /*
39
+ 获取token 需要在storage中设置 key=token的value
40
+ */
41
+ GetToken () {
42
+ return getToken()
43
+ }
44
+
45
+ /*
46
+ 获取username 需要在storage中设置 key=user_name的value
47
+ */
48
+ GetSimuUserKey () {
49
+ return localStorge.getStorage('simu_key')
50
+ }
51
+
52
+ createAxios () {
53
+ // 创建axios实例
54
+ const service = axios.create()
55
+ return service
56
+ }
57
+
58
+ /*
59
+ @brief 发送http请求
60
+ @param[in] param 添加到url中的参数json
61
+ @param[in] data 添加到body中的参数json
62
+ @param[in] urlParamList 添加在url中的动态参数 ['1', 'states'] 则 host/url/1/states?params...
63
+ @param[in, out] 回调函数 是否成功及返回的数据 function(bool, json)
64
+ @param[in] hasToken 是否使用token
65
+ @param[in] isFile 是否为文件格式
66
+ @return 成功调用 返回promise对象可以用.then关联回调 失败返回undefine
67
+ */
68
+ Send (param, data, urlParamList = [], hasToken = true, isFile = false) {
69
+ let host = this.GetHost()
70
+ if (host === undefined) {
71
+ console.log('host is empty')
72
+ return undefined
73
+ }
74
+ if (hasToken) {
75
+ let token = this.GetToken()
76
+ if (token === undefined) {
77
+ console.log('token is empty')
78
+ return undefined
79
+ }
80
+ this.headerInfo.Authorization = token
81
+ if (isFile) {
82
+ this.headerInfo['Content-Type'] = 'multipart/form-data'
83
+ }
84
+ }
85
+
86
+ // headerInfo['Simukey'] = this.GetSimuUserKey()
87
+
88
+ let urlInfo = this.urlMgr.GetUrlInfo(this.key)
89
+ if (urlInfo === undefined) {
90
+ console.log('urlinfo is empty')
91
+ return undefined
92
+ }
93
+ let apiUrl = urlInfo.url
94
+ for (let item of urlParamList) {
95
+ apiUrl += '/'
96
+ apiUrl += item
97
+ }
98
+ const config = {
99
+ baseURL: host,
100
+ withCredentials: false,
101
+ url: apiUrl,
102
+ method: urlInfo.method,
103
+ headers: this.headerInfo,
104
+ timeout: 1000 * 60,
105
+ data: data,
106
+ params: this._assingJson(param, this.defaultParam)
107
+ }
108
+ const service = this.createAxios()
109
+ // 响应错误拦截
110
+ if (apiUrl !== '/auth/login') {
111
+ this.responseInterception(service)
112
+ }
113
+ return service({...config})
114
+ }
115
+
116
+ responseInterception (service) {
117
+ // respone拦截器
118
+ service.interceptors.response.use(
119
+ response => {
120
+ /**
121
+ * success === false就抛错
122
+ */
123
+ const res = response.data
124
+ if (!res.success) {
125
+ this.handleErrorMechanism(res)
126
+ return response
127
+ } else {
128
+ return response
129
+ }
130
+ },
131
+ error => {
132
+ console.log(error)
133
+ }
134
+ )
135
+ }
136
+
137
+ handleErrorMechanism (res) {
138
+ // 全局api错误拦截机制
139
+ if (res.code === '3013' || res.code === '3015' || res.code === '3014') {
140
+ removeToken()
141
+ location.reload()
142
+ }
143
+ }
144
+
145
+ _assingJson (json1, json2) {
146
+ if (JSON.stringify(json1) === '{}') return json2
147
+ if (JSON.stringify(json2) === '{}') return json1
148
+ return JSON.parse((JSON.stringify(json1) + JSON.stringify(json2)).replace(/}{/, ','))
149
+ }
150
+ }
151
+
152
+ export class SimuApi extends KissApi {
153
+ constructor (key, simuId) {
154
+ super(key)
155
+ this.defaultParam['scenestype'] = 'simu'
156
+ this.defaultParam['scenesid'] = simuId
157
+ }
158
+ }
@@ -1,128 +1,128 @@
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
- * `WebsocketHeartbeatJs` constructor.
14
- *
15
- * @param {Object} opts
16
- * {
17
- * url websocket链接地址
18
- * pingTimeout 未收到消息多少秒之后发送ping请求,默认15000毫秒
19
- pongTimeout 发送ping之后,未收到消息超时时间,默认10000毫秒
20
- reconnectTimeout
21
- pingMsg
22
- * }
23
- * @api public
24
- */
25
-
26
- function WebsocketHeartbeatJs ({
27
- url,
28
- pingTimeout = 15000,
29
- pongTimeout = 10000,
30
- reconnectTimeout = 2000,
31
- pingMsg = 'heartbeat'
32
- }) {
33
- this.opts = {
34
- url: url,
35
- pingTimeout: pingTimeout,
36
- pongTimeout: pongTimeout,
37
- reconnectTimeout: reconnectTimeout,
38
- pingMsg: pingMsg
39
- }
40
- this.ws = null // websocket实例
41
-
42
- // override hook function
43
- this.onclose = () => {}
44
- this.onerror = () => {}
45
- this.onopen = () => {}
46
- this.onmessage = () => {}
47
- this.onreconnect = () => {}
48
-
49
- this.createWebSocket()
50
- }
51
- WebsocketHeartbeatJs.prototype.createWebSocket = function () {
52
- try {
53
- this.ws = new WebSocket(this.opts.url)
54
- this.initEventHandle()
55
- } catch (e) {
56
- this.reconnect()
57
- throw e
58
- }
59
- }
60
-
61
- WebsocketHeartbeatJs.prototype.initEventHandle = function () {
62
- this.ws.onclose = () => {
63
- this.onclose()
64
- this.reconnect()
65
- }
66
- this.ws.onerror = () => {
67
- this.onerror()
68
- this.reconnect()
69
- }
70
- this.ws.onopen = () => {
71
- this.onopen()
72
- // 心跳检测重置
73
- this.heartCheck()
74
- }
75
- this.ws.onmessage = (event) => {
76
- this.onmessage(event)
77
- // 如果获取到消息,心跳检测重置
78
- // 拿到任何消息都说明当前连接是正常的
79
- this.heartCheck()
80
- }
81
- }
82
-
83
- WebsocketHeartbeatJs.prototype.reconnect = function () {
84
- if (this.lockReconnect || this.forbidReconnect) return
85
- this.lockReconnect = true
86
- this.onreconnect()
87
- // 没连接上会一直重连,设置延迟避免请求过多
88
- setTimeout(() => {
89
- this.createWebSocket()
90
- this.lockReconnect = false
91
- }, this.opts.reconnectTimeout)
92
- }
93
-
94
- WebsocketHeartbeatJs.prototype.send = function (msg) {
95
- this.ws.send(msg)
96
- }
97
- // 心跳检测
98
- WebsocketHeartbeatJs.prototype.heartCheck = function () {
99
- this.heartReset()
100
- this.heartStart()
101
- }
102
- WebsocketHeartbeatJs.prototype.heartStart = function () {
103
- if (this.forbidReconnect) return // 不再重连就不再执行心跳
104
- this.pingTimeoutId = setTimeout(() => {
105
- // 这里发送一个心跳,后端收到后,返回一个心跳消息,
106
- // onmessage拿到返回的心跳就说明连接正常
107
- this.ws.send(this.opts.pingMsg)
108
- // 如果超过一定时间还没重置,说明后端主动断开了
109
- this.pongTimeoutId = setTimeout(() => {
110
- // 如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
111
- this.ws.close()
112
- }, this.opts.pongTimeout)
113
- }, this.opts.pingTimeout)
114
- }
115
- WebsocketHeartbeatJs.prototype.heartReset = function () {
116
- clearTimeout(this.pingTimeoutId)
117
- clearTimeout(this.pongTimeoutId)
118
- }
119
-
120
- WebsocketHeartbeatJs.prototype.close = function () {
121
- // 如果手动关闭连接,不再重连
122
- this.forbidReconnect = true
123
- this.heartReset()
124
- this.ws.close()
125
- }
126
-
127
- if (window) window.WebsocketHeartbeatJs = WebsocketHeartbeatJs
128
- export default WebsocketHeartbeatJs
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
+ * `WebsocketHeartbeatJs` constructor.
14
+ *
15
+ * @param {Object} opts
16
+ * {
17
+ * url websocket链接地址
18
+ * pingTimeout 未收到消息多少秒之后发送ping请求,默认15000毫秒
19
+ pongTimeout 发送ping之后,未收到消息超时时间,默认10000毫秒
20
+ reconnectTimeout
21
+ pingMsg
22
+ * }
23
+ * @api public
24
+ */
25
+
26
+ function WebsocketHeartbeatJs ({
27
+ url,
28
+ pingTimeout = 15000,
29
+ pongTimeout = 10000,
30
+ reconnectTimeout = 2000,
31
+ pingMsg = 'heartbeat'
32
+ }) {
33
+ this.opts = {
34
+ url: url,
35
+ pingTimeout: pingTimeout,
36
+ pongTimeout: pongTimeout,
37
+ reconnectTimeout: reconnectTimeout,
38
+ pingMsg: pingMsg
39
+ }
40
+ this.ws = null // websocket实例
41
+
42
+ // override hook function
43
+ this.onclose = () => {}
44
+ this.onerror = () => {}
45
+ this.onopen = () => {}
46
+ this.onmessage = () => {}
47
+ this.onreconnect = () => {}
48
+
49
+ this.createWebSocket()
50
+ }
51
+ WebsocketHeartbeatJs.prototype.createWebSocket = function () {
52
+ try {
53
+ this.ws = new WebSocket(this.opts.url)
54
+ this.initEventHandle()
55
+ } catch (e) {
56
+ this.reconnect()
57
+ throw e
58
+ }
59
+ }
60
+
61
+ WebsocketHeartbeatJs.prototype.initEventHandle = function () {
62
+ this.ws.onclose = () => {
63
+ this.onclose()
64
+ this.reconnect()
65
+ }
66
+ this.ws.onerror = () => {
67
+ this.onerror()
68
+ this.reconnect()
69
+ }
70
+ this.ws.onopen = () => {
71
+ this.onopen()
72
+ // 心跳检测重置
73
+ this.heartCheck()
74
+ }
75
+ this.ws.onmessage = (event) => {
76
+ this.onmessage(event)
77
+ // 如果获取到消息,心跳检测重置
78
+ // 拿到任何消息都说明当前连接是正常的
79
+ this.heartCheck()
80
+ }
81
+ }
82
+
83
+ WebsocketHeartbeatJs.prototype.reconnect = function () {
84
+ if (this.lockReconnect || this.forbidReconnect) return
85
+ this.lockReconnect = true
86
+ this.onreconnect()
87
+ // 没连接上会一直重连,设置延迟避免请求过多
88
+ setTimeout(() => {
89
+ this.createWebSocket()
90
+ this.lockReconnect = false
91
+ }, this.opts.reconnectTimeout)
92
+ }
93
+
94
+ WebsocketHeartbeatJs.prototype.send = function (msg) {
95
+ this.ws.send(msg)
96
+ }
97
+ // 心跳检测
98
+ WebsocketHeartbeatJs.prototype.heartCheck = function () {
99
+ this.heartReset()
100
+ this.heartStart()
101
+ }
102
+ WebsocketHeartbeatJs.prototype.heartStart = function () {
103
+ if (this.forbidReconnect) return // 不再重连就不再执行心跳
104
+ this.pingTimeoutId = setTimeout(() => {
105
+ // 这里发送一个心跳,后端收到后,返回一个心跳消息,
106
+ // onmessage拿到返回的心跳就说明连接正常
107
+ this.ws.send(this.opts.pingMsg)
108
+ // 如果超过一定时间还没重置,说明后端主动断开了
109
+ this.pongTimeoutId = setTimeout(() => {
110
+ // 如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
111
+ this.ws.close()
112
+ }, this.opts.pongTimeout)
113
+ }, this.opts.pingTimeout)
114
+ }
115
+ WebsocketHeartbeatJs.prototype.heartReset = function () {
116
+ clearTimeout(this.pingTimeoutId)
117
+ clearTimeout(this.pongTimeoutId)
118
+ }
119
+
120
+ WebsocketHeartbeatJs.prototype.close = function () {
121
+ // 如果手动关闭连接,不再重连
122
+ this.forbidReconnect = true
123
+ this.heartReset()
124
+ this.ws.close()
125
+ }
126
+
127
+ if (window) window.WebsocketHeartbeatJs = WebsocketHeartbeatJs
128
+ export default WebsocketHeartbeatJs