openatc-components 0.0.22 → 0.0.23

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 (251) 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 +90 -90
  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 +85 -85
  23. package/package/kisscomps/components/BoardCard/index.js +2 -2
  24. package/package/kisscomps/components/CommonKanban/CommonKanban.vue +119 -119
  25. package/package/kisscomps/components/CommonKanban/index.js +2 -2
  26. package/package/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +170 -170
  27. package/package/kisscomps/components/FaultDetailModal/index.js +2 -2
  28. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +497 -497
  29. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  30. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +295 -295
  31. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +300 -300
  32. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +288 -288
  33. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +391 -391
  34. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +336 -336
  35. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +345 -345
  36. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +389 -389
  37. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1179 -1179
  38. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +402 -402
  39. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +361 -361
  40. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +368 -368
  41. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +475 -475
  42. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +494 -494
  43. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +401 -401
  44. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +360 -360
  45. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +367 -367
  46. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +476 -476
  47. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  48. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  49. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  50. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  51. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  52. package/package/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  53. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +860 -860
  54. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +112 -112
  55. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +112 -112
  56. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +111 -111
  57. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  58. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  59. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +99 -99
  60. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +99 -99
  61. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  62. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +99 -99
  63. package/package/kisscomps/components/IntersectionMap/crossDirection/utils.js +78 -78
  64. package/package/kisscomps/components/IntersectionMap/index.js +2 -2
  65. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +144 -144
  66. package/package/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +273 -273
  67. package/package/kisscomps/components/IntersectionWithInterface/index.js +2 -2
  68. package/package/kisscomps/components/OverLap/OverLap.vue +193 -193
  69. package/package/kisscomps/components/OverLap/index.js +2 -2
  70. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +832 -832
  71. package/package/kisscomps/components/PatternStatus/index.js +2 -2
  72. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +772 -772
  73. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +195 -195
  74. package/package/kisscomps/components/SchemeConfig/index.js +2 -2
  75. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +198 -198
  76. package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +177 -177
  77. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +298 -298
  78. package/package/kisscomps/components/StageStatus/StageStatus.vue +304 -304
  79. package/package/kisscomps/components/StageStatus/index.js +2 -2
  80. package/package/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  81. package/package/kisscomps/components/SvgIcon/index.js +2 -2
  82. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +522 -522
  83. package/package/kisscomps/components/XRDDirSelector/index.js +2 -2
  84. package/package/kisscomps/components/patternList/index.js +2 -2
  85. package/package/kisscomps/components/patternList/patternList.vue +558 -558
  86. package/package/kisscomps/index.js +69 -69
  87. package/package/kissui.min.js +1 -1
  88. package/package.json +122 -122
  89. package/src/App.vue +24 -24
  90. package/src/EdgeMgr/EdgeModelBase.js +16 -16
  91. package/src/EdgeMgr/controller/crossDiagramMgr.js +120 -120
  92. package/src/api/authapi.js +31 -31
  93. package/src/api/config.js +21 -21
  94. package/src/api/control.js +76 -76
  95. package/src/api/fault.js +66 -66
  96. package/src/api/index.js +24 -24
  97. package/src/api/login.js +46 -46
  98. package/src/api/optimize.js +72 -72
  99. package/src/api/param.js +154 -154
  100. package/src/api/passwdAssest.js +101 -101
  101. package/src/api/template.js +27 -27
  102. package/src/i18n/index.js +26 -26
  103. package/src/i18n/language/en.js +1108 -1108
  104. package/src/i18n/language/index.js +25 -25
  105. package/src/i18n/language/zh.js +1107 -1107
  106. package/src/icons/index.js +20 -20
  107. package/src/icons/svg/bendi.svg +110 -110
  108. package/src/icons/svg/bujin.svg +36 -36
  109. package/src/icons/svg/connectBlue.svg +7 -7
  110. package/src/icons/svg/currentvolume.svg +0 -0
  111. package/src/icons/svg/cutRed.svg +7 -7
  112. package/src/icons/svg/cycle.svg +0 -0
  113. package/src/icons/svg/dingzhouqi.svg +34 -34
  114. package/src/icons/svg/ganyingkongzhi.svg +30 -30
  115. package/src/icons/svg/guandeng.svg +81 -81
  116. package/src/icons/svg/huangshan.svg +71 -71
  117. package/src/icons/svg/maincontrol.svg +0 -0
  118. package/src/icons/svg/manualcontrolbackground.svg +51 -51
  119. package/src/icons/svg/manualcontrolbackground1.svg +62 -62
  120. package/src/icons/svg/manualcontrolbackgrounden.svg +62 -62
  121. package/src/icons/svg/model.svg +0 -0
  122. package/src/icons/svg/phasediff.svg +0 -0
  123. package/src/icons/svg/quanhong.svg +86 -86
  124. package/src/icons/svg/shanghe.svg +11 -11
  125. package/src/icons/svg/shoudong.svg +103 -103
  126. package/src/icons/svg/time.svg +0 -0
  127. package/src/icons/svg/wuxianlan.svg +46 -46
  128. package/src/icons/svg/xiala.svg +11 -11
  129. package/src/icons/svg/xingrenguojie.svg +33 -33
  130. package/src/icons/svg/xitong.svg +89 -89
  131. package/src/icons/svg/youxian.svg +41 -41
  132. package/src/icons/svg/zizhukongzhi.svg +43 -43
  133. package/src/kisscomps/components/BoardCard/BoardCard.vue +85 -85
  134. package/src/kisscomps/components/BoardCard/index.js +2 -2
  135. package/src/kisscomps/components/CommonKanban/CommonKanban.vue +119 -119
  136. package/src/kisscomps/components/CommonKanban/index.js +2 -2
  137. package/src/kisscomps/components/FaultDetailModal/FaultDetailModal.vue +170 -170
  138. package/src/kisscomps/components/FaultDetailModal/index.js +2 -2
  139. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CrossRoadsSvg.vue +497 -497
  140. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/CustomRoadsSvg.vue +46 -46
  141. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +295 -295
  142. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionEWSvg.vue +300 -300
  143. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/PedSectionSNSvg.vue +288 -288
  144. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampEastSvg.vue +391 -391
  145. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampNorthSvg.vue +336 -336
  146. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampSouthSvg.vue +345 -345
  147. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/RampWestSvg.vue +389 -389
  148. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkSvg.vue +1179 -1179
  149. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeEastRoadsSvg.vue +402 -402
  150. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeNorthRoadsSvg.vue +361 -361
  151. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeSouthRoadsSvg.vue +368 -368
  152. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/TShapeWestRoadsSvg.vue +475 -475
  153. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LCrossRoadsSvg.vue +494 -494
  154. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeEastRoadsSvg.vue +401 -401
  155. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeNorthRoadsSvg.vue +360 -360
  156. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeSouthRoadsSvg.vue +367 -367
  157. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/leftroad/LTShapeWestRoadsSvg.vue +476 -476
  158. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/refreshSvg.vue +63 -63
  159. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/busMapSvg.vue +50 -50
  160. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/eastBusSvg.vue +167 -167
  161. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/northBusSvg.vue +168 -168
  162. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/southBusSvg.vue +168 -168
  163. package/src/kisscomps/components/IntersectionMap/crossDirection/busIcon/westBusSvg.vue +169 -169
  164. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +860 -860
  165. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +112 -112
  166. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +112 -112
  167. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/rampPhaseIconSvg.vue +111 -111
  168. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.json +196 -196
  169. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/busPos.left.json +196 -196
  170. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +99 -99
  171. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +99 -99
  172. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/rampPos.json +52 -52
  173. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +99 -99
  174. package/src/kisscomps/components/IntersectionMap/crossDirection/utils.js +78 -78
  175. package/src/kisscomps/components/IntersectionMap/index.js +2 -2
  176. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +144 -144
  177. package/src/kisscomps/components/IntersectionWithInterface/IntersectionWithInterface.vue +273 -273
  178. package/src/kisscomps/components/IntersectionWithInterface/index.js +2 -2
  179. package/src/kisscomps/components/OverLap/OverLap.vue +193 -193
  180. package/src/kisscomps/components/OverLap/index.js +2 -2
  181. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +832 -832
  182. package/src/kisscomps/components/PatternStatus/index.js +2 -2
  183. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +772 -772
  184. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +195 -195
  185. package/src/kisscomps/components/SchemeConfig/index.js +2 -2
  186. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +198 -198
  187. package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +177 -177
  188. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +298 -298
  189. package/src/kisscomps/components/StageStatus/StageStatus.vue +304 -304
  190. package/src/kisscomps/components/StageStatus/index.js +2 -2
  191. package/src/kisscomps/components/SvgIcon/SvgIcon.vue +53 -53
  192. package/src/kisscomps/components/SvgIcon/index.js +2 -2
  193. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +522 -522
  194. package/src/kisscomps/components/XRDDirSelector/index.js +2 -2
  195. package/src/kisscomps/components/patternList/index.js +2 -2
  196. package/src/kisscomps/components/patternList/patternList.vue +558 -558
  197. package/src/kisscomps/index.js +69 -69
  198. package/src/lib/publicjs/ArryListUtil.js +38 -38
  199. package/src/lib/publicjs/HttpurlMgr.js +45 -45
  200. package/src/lib/publicjs/KissApi.js +156 -156
  201. package/src/lib/publicjs/KissWSSub/Heartcheck.js +128 -128
  202. package/src/lib/publicjs/KissWSSub/KissWsSub.js +91 -91
  203. package/src/lib/publicjs/KissWSSub/KissWsSubByType.js +152 -152
  204. package/src/lib/publicjs/KissWSSub/SimuWsSubByType.js +44 -44
  205. package/src/lib/publicjs/KissWSSub/Sub.js +51 -51
  206. package/src/lib/publicjs/KissWSSub/SubChannel.js +119 -119
  207. package/src/lib/publicjs/basecomponents.js +65 -65
  208. package/src/lib/publicjs/localStorage.js +112 -112
  209. package/src/lib/publicjs/objdeepcopy.js +32 -32
  210. package/src/lib/publicjs/pageScroll.js +30 -30
  211. package/src/lib/publicjs/passwdAssest.js +101 -101
  212. package/src/lib/publicjs/styleclassfactory.js +32 -32
  213. package/src/main.js +44 -44
  214. package/src/router/index.js +29 -29
  215. package/src/store/getters.js +16 -16
  216. package/src/store/index.js +26 -26
  217. package/src/store/modules/globalParam.js +27 -27
  218. package/src/utils/RingDataModel.js +98 -98
  219. package/src/utils/auth.js +102 -102
  220. package/src/utils/dateFormat.js +41 -41
  221. package/src/utils/errorcode.js +224 -224
  222. package/src/utils/fault.js +195 -195
  223. package/src/utils/faultcode.js +209 -209
  224. package/src/utils/index.js +69 -69
  225. package/src/utils/pedphasedesc.js +119 -119
  226. package/src/utils/phasedesc.js +124 -124
  227. package/src/utils/responseMessage.js +21 -21
  228. package/src/utils/validate.js +43 -43
  229. package/src/views/home.1.vue +479 -479
  230. package/src/views/home.vue +63 -63
  231. package/src/views/intersection.vue +86 -86
  232. package/src/views/schemeconfig.vue +146 -146
  233. package/static/apiconfig.json +336 -336
  234. package/static/styles/common.scss +17 -17
  235. package/static/styles/commonkanban.scss +87 -87
  236. package/static/styles/dark/index.scss +2 -2
  237. package/static/styles/dark/theme/element-dark.scss +42 -42
  238. package/static/styles/index.scss +84 -84
  239. package/static/styles/intersection.scss +143 -143
  240. package/static/styles/light/index.scss +2 -2
  241. package/static/styles/light/theme/element-light.scss +42 -42
  242. package/static/styles/schemeconfig.scss +298 -298
  243. package/static/token.json +2 -2
  244. package/test/e2e/custom-assertions/elementCount.js +27 -27
  245. package/test/e2e/nightwatch.conf.js +46 -46
  246. package/test/e2e/runner.js +48 -48
  247. package/test/e2e/specs/test.js +19 -19
  248. package/test/unit/.eslintrc +7 -7
  249. package/test/unit/jest.conf.js +30 -30
  250. package/test/unit/setup.js +3 -3
  251. package/test/unit/specs/HelloWorld.spec.js +11 -11
@@ -1,304 +1,304 @@
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
- <template>
13
- <div class="main-statgestatus">
14
- <div class="stage-line"></div>
15
- <div v-for="(item, index) in numList" :key="index + '1'">
16
- <div class="stage-verticalline" :style="{'margin-left':item}"></div>
17
- </div>
18
- <div v-for="(item, index) in narr" :key="index + '2'">
19
- <div class="stage-text" :style="{'left':item}"><span class="stage-span">S{{index + 1}}</span></div>
20
- </div>
21
- </div>
22
- </template>
23
- <script>
24
-
25
- export default {
26
- name: 'stagestatus',
27
- components: {},
28
- data () {
29
- return {
30
- // stageList: [],
31
- numList: [],
32
- stateList: [],
33
- narr: [],
34
- max: '',
35
- stageStatusList: []
36
- // stageLineStatus: false
37
- }
38
- },
39
- props: {
40
- patternStatusList: {
41
- type: Array
42
- },
43
- contrloType: {
44
- type: Boolean
45
- },
46
- localPatternList: {
47
- type: Array
48
- },
49
- controlData: {
50
- type: Object
51
- }
52
- },
53
- watch: {
54
- controlData: {
55
- handler: function (val, oldVal) {
56
- // this.handleStages() // 计算屏障高度
57
- if (this.contrloType) {
58
- this.getStageLine()
59
- } else {
60
- this.getPhaseId(this.controlData)
61
- }
62
- },
63
- // 深度观察监听
64
- deep: true
65
- },
66
- patternStatusList: {
67
- handler: function (val, oldVal) {
68
- // this.handleStages() // 计算屏障高度
69
- this.getPhaseId(this.patternStatusList)
70
- },
71
- // 深度观察监听
72
- deep: true
73
- }
74
- },
75
- created () {
76
- if (this.patternStatusList && this.patternStatusList.length > 1) {
77
- this.getPhaseId(this.patternStatusList)
78
- }
79
- if (this.localPatternList) {
80
- this.getStageLine()
81
- }
82
- if (this.controlData) {
83
- // this.stageLineStatus = true
84
- this.getPhaseId(this.controlData)
85
- }
86
- },
87
- mounted () {
88
- },
89
- beforeUpdate () {
90
- if (this.patternStatusList && this.patternStatusList.length > 1) {
91
- this.getPhaseId(this.patternStatusList)
92
- } else if (this.patternStatusList && this.patternStatusList.length === 1) {
93
- this.handleStages()
94
- }
95
- },
96
- methods: {
97
- getStageLine () {
98
- for (let i = 0; i < this.localPatternList.length; i++) {
99
- if (this.controlData.patternid === this.localPatternList[i].id) {
100
- let stageCycleList = this.localPatternList[i].stagesList.map(item => {
101
- return item.stageSplit ? item.stageSplit : 0
102
- })
103
- let stageMaxCyle = stageCycleList.reduce((a, b) => {
104
- return a + b
105
- }, 0)
106
- this.addList(stageCycleList, stageMaxCyle)
107
- this.stageLists = this.localPatternList[i].stagesList.map(item => {
108
- return {
109
- ...item,
110
- greenWidth: (item.green / stageMaxCyle * 100).toFixed(3) + '%',
111
- yellowWidth: (item.yellow / stageMaxCyle * 100).toFixed(3) + '%',
112
- redWidth: (item.red / stageMaxCyle * 100).toFixed(3) + '%'
113
- }
114
- })
115
- }
116
- }
117
- },
118
- addList (baseArr, maxCycle) {
119
- this.narr = []
120
- // this.stageLineStatus = true
121
- let setArr = []
122
- let currNum = 0
123
- baseArr.forEach((item, index) => {
124
- if (index === 0) {
125
- setArr.push(baseArr[index])
126
- } else {
127
- if (currNum) {
128
- currNum = baseArr[index] + currNum
129
- } else {
130
- currNum = baseArr[index] + baseArr[index - 1]
131
- }
132
- setArr.push(currNum)
133
- }
134
- })
135
- this.numList = setArr.map(item => {
136
- return (item / maxCycle * 100).toFixed(3) + '%'
137
- })
138
- this.numList.unshift(0)
139
- for (let i = this.numList.length - 1; i >= 1; i--) {
140
- this.narr.push((Number.parseFloat(this.numList[i]) - Number.parseFloat(this.numList[i - 1])) / 2 + Number.parseFloat(this.numList[i - 1]) - 1 + '%')
141
- }
142
- this.narr = JSON.parse(JSON.stringify(this.narr.reverse()))
143
- },
144
- getControl (newList) { // 总揽实时数据
145
- let currentIds = ''
146
- let lastCurrentIds = ''
147
- this.stateList = [0]
148
- this.narr = []
149
- for (let j = 0; j <= this.max; j++) { // 指针长度
150
- for (let i = 0; i < newList.length; i++) { // 环列表
151
- let ring = newList[i]// 每个环对象
152
- let sum = 0
153
- for (let n = 0; n < ring.length; n++) { // 相位累计长度
154
- if (ring[n].mode !== 7) {
155
- if (this.controlData) {
156
- sum = sum + ring[n].split
157
- } else {
158
- sum = sum + ring[n].value
159
- }
160
- if (j < sum) {
161
- let phaseId = ring[n].id
162
- currentIds = currentIds + '-' + phaseId
163
- break
164
- }
165
- }
166
- }
167
- }
168
- if (lastCurrentIds !== currentIds && lastCurrentIds !== '') { // 当前相位id和上一个相比不同说明相位变化了
169
- this.stateList.push(j)// 阶段累计长度的集合
170
- }
171
- lastCurrentIds = currentIds
172
- currentIds = ''
173
- this.numList = this.stateList.map(item => {
174
- return (item / this.max * 100).toFixed(3) + '%'
175
- })
176
- }
177
- },
178
- getPhaseId (rings) { // 画阶段方法
179
- rings = JSON.parse(JSON.stringify(rings))
180
- if (rings.length === 0) {
181
- // this.stageLineStatus = false
182
- return
183
- }
184
- // this.stageLineStatus = true
185
- if (this.controlData) {
186
- if (!rings.rings) return
187
- let mapAdd = rings.phase.map(item => {
188
- return {
189
- id: item.id,
190
- split: item.split
191
- }
192
- })
193
- let newRings = rings.rings.map(j => {
194
- return j.sequence
195
- })
196
- let newList = newRings.map(item => {
197
- let ret = []
198
- item.map(i => {
199
- const find = mapAdd.find(j => j.id === i)
200
- if (find) {
201
- ret.push(find)
202
- }
203
- })
204
- return ret
205
- })
206
- let mapAdds = newList.map(item => {
207
- return item.map(val => {
208
- return val.split
209
- })
210
- })
211
- let maxCycle = mapAdds.length > 0 ? mapAdds.map(item => {
212
- return item.length > 0 ? item.reduce((a, b) => {
213
- return a + b
214
- }) : 0
215
- }) : 0
216
- this.max = Math.max(...maxCycle)// 每个环的周期最大值
217
- this.getControl(newList)
218
- } else {
219
- let mapAdd = rings.map(item => {
220
- return item.map(val => {
221
- return val.value
222
- })
223
- })
224
- let maxCycle = mapAdd.length > 0 ? mapAdd.map(item => {
225
- return item.length > 0 ? item.reduce((a, b) => {
226
- return a + b
227
- }) : 0
228
- }) : 0
229
- this.max = Math.max(...maxCycle)// 每个环的周期最大值
230
- this.getControl(rings)
231
- }
232
- for (let i = this.numList.length - 1; i >= 1; i--) {
233
- this.narr.push((Number.parseFloat(this.numList[i]) - Number.parseFloat(this.numList[i - 1])) / 2 + Number.parseFloat(this.numList[i - 1]) - 1 + '%')
234
- }
235
- this.narr = JSON.parse(JSON.stringify(this.narr.reverse()))
236
- },
237
- handleStages () {
238
- this.numList = [0]
239
- this.narr = []
240
- if (this.patternStatusList.length === 0) {
241
- // this.stageLineStatus = false
242
- return
243
- }
244
- // this.stageLineStatus = true
245
- let firstPatternStatusList = this.patternStatusList[0]
246
- let stageLength = 0
247
- let stageStatusLength = 0
248
- for (let i = 0; i < firstPatternStatusList.length; i++) {
249
- let tempLength = Number.parseFloat(firstPatternStatusList[i].greenWidth) + Number.parseFloat(firstPatternStatusList[i].redWidth) + Number.parseFloat(firstPatternStatusList[i].yellowWidth)
250
- stageStatusLength = stageLength + tempLength / 2 - 1
251
- stageLength = stageLength + tempLength
252
- this.numList.push(stageLength + '%')
253
- this.narr.push(stageStatusLength + '%')
254
- }
255
- }
256
- },
257
- computed: {
258
- }
259
- }
260
- </script>
261
- <style lang="scss" scoped>
262
- .main-statgestatus {
263
- position: relative;
264
- margin-bottom: 30px;
265
- }
266
- .stage-line {
267
- position: relative;
268
- top: 7px;
269
- width: 100%;
270
- height: 1px;
271
- background-color: #FFFFFF;
272
- z-index:1;
273
- }
274
- .stage-verticalline {
275
- position: absolute;
276
- float: left;
277
- width: 1px;
278
- height: 14px;
279
- background-color: #FFFFFF;
280
- z-index:2;
281
- }
282
- .stage-text {
283
- position: absolute;
284
- float: left;
285
- width: 25px;
286
- text-align: center;
287
- background-color: #202940;
288
- z-index:3;
289
- }
290
- .stage-span {
291
- // position: relative;
292
- bottom: 3px;
293
- left: 5px;
294
- width: 15px;
295
- height: 14px;
296
- font-size: 14px;
297
- font-weight: normal;
298
- font-stretch: normal;
299
- line-height: 20px;
300
- letter-spacing: 0px;
301
- background-color: #202940;
302
- color: #FFFFFF;
303
- }
304
- </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
+ <template>
13
+ <div class="main-statgestatus">
14
+ <div class="stage-line"></div>
15
+ <div v-for="(item, index) in numList" :key="index + '1'">
16
+ <div class="stage-verticalline" :style="{'margin-left':item}"></div>
17
+ </div>
18
+ <div v-for="(item, index) in narr" :key="index + '2'">
19
+ <div class="stage-text" :style="{'left':item}"><span class="stage-span">S{{index + 1}}</span></div>
20
+ </div>
21
+ </div>
22
+ </template>
23
+ <script>
24
+
25
+ export default {
26
+ name: 'stagestatus',
27
+ components: {},
28
+ data () {
29
+ return {
30
+ // stageList: [],
31
+ numList: [],
32
+ stateList: [],
33
+ narr: [],
34
+ max: '',
35
+ stageStatusList: []
36
+ // stageLineStatus: false
37
+ }
38
+ },
39
+ props: {
40
+ patternStatusList: {
41
+ type: Array
42
+ },
43
+ contrloType: {
44
+ type: Boolean
45
+ },
46
+ localPatternList: {
47
+ type: Array
48
+ },
49
+ controlData: {
50
+ type: Object
51
+ }
52
+ },
53
+ watch: {
54
+ controlData: {
55
+ handler: function (val, oldVal) {
56
+ // this.handleStages() // 计算屏障高度
57
+ if (this.contrloType) {
58
+ this.getStageLine()
59
+ } else {
60
+ this.getPhaseId(this.controlData)
61
+ }
62
+ },
63
+ // 深度观察监听
64
+ deep: true
65
+ },
66
+ patternStatusList: {
67
+ handler: function (val, oldVal) {
68
+ // this.handleStages() // 计算屏障高度
69
+ this.getPhaseId(this.patternStatusList)
70
+ },
71
+ // 深度观察监听
72
+ deep: true
73
+ }
74
+ },
75
+ created () {
76
+ if (this.patternStatusList && this.patternStatusList.length > 1) {
77
+ this.getPhaseId(this.patternStatusList)
78
+ }
79
+ if (this.localPatternList) {
80
+ this.getStageLine()
81
+ }
82
+ if (this.controlData) {
83
+ // this.stageLineStatus = true
84
+ this.getPhaseId(this.controlData)
85
+ }
86
+ },
87
+ mounted () {
88
+ },
89
+ beforeUpdate () {
90
+ if (this.patternStatusList && this.patternStatusList.length > 1) {
91
+ this.getPhaseId(this.patternStatusList)
92
+ } else if (this.patternStatusList && this.patternStatusList.length === 1) {
93
+ this.handleStages()
94
+ }
95
+ },
96
+ methods: {
97
+ getStageLine () {
98
+ for (let i = 0; i < this.localPatternList.length; i++) {
99
+ if (this.controlData.patternid === this.localPatternList[i].id) {
100
+ let stageCycleList = this.localPatternList[i].stagesList.map(item => {
101
+ return item.stageSplit ? item.stageSplit : 0
102
+ })
103
+ let stageMaxCyle = stageCycleList.reduce((a, b) => {
104
+ return a + b
105
+ }, 0)
106
+ this.addList(stageCycleList, stageMaxCyle)
107
+ this.stageLists = this.localPatternList[i].stagesList.map(item => {
108
+ return {
109
+ ...item,
110
+ greenWidth: (item.green / stageMaxCyle * 100).toFixed(3) + '%',
111
+ yellowWidth: (item.yellow / stageMaxCyle * 100).toFixed(3) + '%',
112
+ redWidth: (item.red / stageMaxCyle * 100).toFixed(3) + '%'
113
+ }
114
+ })
115
+ }
116
+ }
117
+ },
118
+ addList (baseArr, maxCycle) {
119
+ this.narr = []
120
+ // this.stageLineStatus = true
121
+ let setArr = []
122
+ let currNum = 0
123
+ baseArr.forEach((item, index) => {
124
+ if (index === 0) {
125
+ setArr.push(baseArr[index])
126
+ } else {
127
+ if (currNum) {
128
+ currNum = baseArr[index] + currNum
129
+ } else {
130
+ currNum = baseArr[index] + baseArr[index - 1]
131
+ }
132
+ setArr.push(currNum)
133
+ }
134
+ })
135
+ this.numList = setArr.map(item => {
136
+ return (item / maxCycle * 100).toFixed(3) + '%'
137
+ })
138
+ this.numList.unshift(0)
139
+ for (let i = this.numList.length - 1; i >= 1; i--) {
140
+ this.narr.push((Number.parseFloat(this.numList[i]) - Number.parseFloat(this.numList[i - 1])) / 2 + Number.parseFloat(this.numList[i - 1]) - 1 + '%')
141
+ }
142
+ this.narr = JSON.parse(JSON.stringify(this.narr.reverse()))
143
+ },
144
+ getControl (newList) { // 总揽实时数据
145
+ let currentIds = ''
146
+ let lastCurrentIds = ''
147
+ this.stateList = [0]
148
+ this.narr = []
149
+ for (let j = 0; j <= this.max; j++) { // 指针长度
150
+ for (let i = 0; i < newList.length; i++) { // 环列表
151
+ let ring = newList[i]// 每个环对象
152
+ let sum = 0
153
+ for (let n = 0; n < ring.length; n++) { // 相位累计长度
154
+ if (ring[n].mode !== 7) {
155
+ if (this.controlData) {
156
+ sum = sum + ring[n].split
157
+ } else {
158
+ sum = sum + ring[n].value
159
+ }
160
+ if (j < sum) {
161
+ let phaseId = ring[n].id
162
+ currentIds = currentIds + '-' + phaseId
163
+ break
164
+ }
165
+ }
166
+ }
167
+ }
168
+ if (lastCurrentIds !== currentIds && lastCurrentIds !== '') { // 当前相位id和上一个相比不同说明相位变化了
169
+ this.stateList.push(j)// 阶段累计长度的集合
170
+ }
171
+ lastCurrentIds = currentIds
172
+ currentIds = ''
173
+ this.numList = this.stateList.map(item => {
174
+ return (item / this.max * 100).toFixed(3) + '%'
175
+ })
176
+ }
177
+ },
178
+ getPhaseId (rings) { // 画阶段方法
179
+ rings = JSON.parse(JSON.stringify(rings))
180
+ if (rings.length === 0) {
181
+ // this.stageLineStatus = false
182
+ return
183
+ }
184
+ // this.stageLineStatus = true
185
+ if (this.controlData) {
186
+ if (!rings.rings) return
187
+ let mapAdd = rings.phase.map(item => {
188
+ return {
189
+ id: item.id,
190
+ split: item.split
191
+ }
192
+ })
193
+ let newRings = rings.rings.map(j => {
194
+ return j.sequence
195
+ })
196
+ let newList = newRings.map(item => {
197
+ let ret = []
198
+ item.map(i => {
199
+ const find = mapAdd.find(j => j.id === i)
200
+ if (find) {
201
+ ret.push(find)
202
+ }
203
+ })
204
+ return ret
205
+ })
206
+ let mapAdds = newList.map(item => {
207
+ return item.map(val => {
208
+ return val.split
209
+ })
210
+ })
211
+ let maxCycle = mapAdds.length > 0 ? mapAdds.map(item => {
212
+ return item.length > 0 ? item.reduce((a, b) => {
213
+ return a + b
214
+ }) : 0
215
+ }) : 0
216
+ this.max = Math.max(...maxCycle)// 每个环的周期最大值
217
+ this.getControl(newList)
218
+ } else {
219
+ let mapAdd = rings.map(item => {
220
+ return item.map(val => {
221
+ return val.value
222
+ })
223
+ })
224
+ let maxCycle = mapAdd.length > 0 ? mapAdd.map(item => {
225
+ return item.length > 0 ? item.reduce((a, b) => {
226
+ return a + b
227
+ }) : 0
228
+ }) : 0
229
+ this.max = Math.max(...maxCycle)// 每个环的周期最大值
230
+ this.getControl(rings)
231
+ }
232
+ for (let i = this.numList.length - 1; i >= 1; i--) {
233
+ this.narr.push((Number.parseFloat(this.numList[i]) - Number.parseFloat(this.numList[i - 1])) / 2 + Number.parseFloat(this.numList[i - 1]) - 1 + '%')
234
+ }
235
+ this.narr = JSON.parse(JSON.stringify(this.narr.reverse()))
236
+ },
237
+ handleStages () {
238
+ this.numList = [0]
239
+ this.narr = []
240
+ if (this.patternStatusList.length === 0) {
241
+ // this.stageLineStatus = false
242
+ return
243
+ }
244
+ // this.stageLineStatus = true
245
+ let firstPatternStatusList = this.patternStatusList[0]
246
+ let stageLength = 0
247
+ let stageStatusLength = 0
248
+ for (let i = 0; i < firstPatternStatusList.length; i++) {
249
+ let tempLength = Number.parseFloat(firstPatternStatusList[i].greenWidth) + Number.parseFloat(firstPatternStatusList[i].redWidth) + Number.parseFloat(firstPatternStatusList[i].yellowWidth)
250
+ stageStatusLength = stageLength + tempLength / 2 - 1
251
+ stageLength = stageLength + tempLength
252
+ this.numList.push(stageLength + '%')
253
+ this.narr.push(stageStatusLength + '%')
254
+ }
255
+ }
256
+ },
257
+ computed: {
258
+ }
259
+ }
260
+ </script>
261
+ <style lang="scss" scoped>
262
+ .main-statgestatus {
263
+ position: relative;
264
+ margin-bottom: 30px;
265
+ }
266
+ .stage-line {
267
+ position: relative;
268
+ top: 7px;
269
+ width: 100%;
270
+ height: 1px;
271
+ background-color: #FFFFFF;
272
+ z-index:1;
273
+ }
274
+ .stage-verticalline {
275
+ position: absolute;
276
+ float: left;
277
+ width: 1px;
278
+ height: 14px;
279
+ background-color: #FFFFFF;
280
+ z-index:2;
281
+ }
282
+ .stage-text {
283
+ position: absolute;
284
+ float: left;
285
+ width: 25px;
286
+ text-align: center;
287
+ background-color: #202940;
288
+ z-index:3;
289
+ }
290
+ .stage-span {
291
+ // position: relative;
292
+ bottom: 3px;
293
+ left: 5px;
294
+ width: 15px;
295
+ height: 14px;
296
+ font-size: 14px;
297
+ font-weight: normal;
298
+ font-stretch: normal;
299
+ line-height: 20px;
300
+ letter-spacing: 0px;
301
+ background-color: #202940;
302
+ color: #FFFFFF;
303
+ }
304
+ </style>
@@ -1,2 +1,2 @@
1
- import StageStatus from './StageStatus.vue'
2
- export default StageStatus
1
+ import StageStatus from './StageStatus.vue'
2
+ export default StageStatus