openatc-components 0.2.79 → 0.2.80

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 (57) hide show
  1. package/package/kisscomps/components/BoardCard/BoardCard.vue +4 -0
  2. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +4 -34
  3. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +7 -71
  4. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +19 -19
  5. package/package/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +19 -19
  6. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +8 -8
  7. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +8 -8
  8. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +1 -13
  9. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +94 -17
  10. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +98 -5
  11. package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +7 -11
  12. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +5 -9
  13. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +5 -7
  14. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +10 -41
  15. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +5 -9
  16. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
  17. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +8 -12
  18. package/package/kisscomps/components/Stages/index.vue +1 -2
  19. package/package/kisscomps/components/patternList/patternList.vue +4 -0
  20. package/package/kisscomps/index.js +0 -2
  21. package/package/kissui.min.js +1 -1
  22. package/package.json +1 -1
  23. package/src/api/cross.js +0 -4
  24. package/src/api/template.js +0 -4
  25. package/src/i18n/language/zh.js +2 -2
  26. package/src/kisscomps/components/BoardCard/BoardCard.vue +4 -0
  27. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +4 -34
  28. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +7 -71
  29. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/LphaseIconSvg.vue +19 -19
  30. package/src/kisscomps/components/IntersectionMap/crossDirection/phaseIcon/phaseIconSvg.vue +19 -19
  31. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +8 -8
  32. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.left.json +8 -8
  33. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +1 -13
  34. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +94 -17
  35. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +98 -5
  36. package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +7 -11
  37. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +5 -9
  38. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +5 -7
  39. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +10 -41
  40. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +5 -9
  41. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
  42. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +8 -12
  43. package/src/kisscomps/components/Stages/index.vue +1 -2
  44. package/src/kisscomps/components/patternList/patternList.vue +4 -0
  45. package/src/kisscomps/index.js +0 -2
  46. package/src/node_modules/.package_versions.json +1 -0
  47. package/src/views/intersection.vue +28 -60
  48. package/src/views/overView.vue +1 -1
  49. package/static/styles/commonkanban.scss +3 -3
  50. package/static/styles/overview.scss +2 -2
  51. package/static/styles/schemeconfig.scss +23 -38
  52. package/package/kisscomps/components/ChannelRealtimeIntersection/ChannelRealtimeIntersection.vue +0 -100
  53. package/package/kisscomps/components/ChannelRealtimeIntersection/index.js +0 -2
  54. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/sidewalk.svg +0 -535
  55. package/src/kisscomps/components/ChannelRealtimeIntersection/ChannelRealtimeIntersection.vue +0 -100
  56. package/src/kisscomps/components/ChannelRealtimeIntersection/index.js +0 -2
  57. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/sidewalk.svg +0 -535
@@ -12,33 +12,35 @@
12
12
  <template>
13
13
  <div :id="Data.key" :style="{position: 'absolute', left: Data.left, top: Data.top}">
14
14
  <div :class="Data.id < 9 ? '' : 'hide'">
15
- <!-- <svg v-if="Data.id === 4 || Data.id === 8" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 14" :width="IconLenghDiaoTou" :height="IconWdithDiaoTou">
15
+ <svg v-if="Data.id === 4 || Data.id === 8" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 14" :width="IconLenghDiaoTou" :height="IconWdithDiaoTou">
16
16
  <path id="东掉头" :class="Data.name === '东掉头' ? '' : 'invisible'" d="M4.876,10.981H8.5v3.042L16.07,9.748,8.411,5.474V8.515H4.792c-1.262,0-2.357-1.4-2.357-3.042S3.53,2.432,4.792,2.432H18.006V-0.034H4.876c-2.693,0-4.881,2.466-4.881,5.508S2.183,10.981,4.876,10.981Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
17
17
  <path id="西掉头" :class="Data.name === '西掉头' ? '' : 'invisible'" d="M13.124,3.036H9.5V0.008L1.93,4.264,9.589,8.52V5.492h3.619c1.262,0,2.357,1.391,2.357,3.028s-1.094,3.028-2.357,3.028H-0.006V14H13.124c2.693,0,4.881-2.455,4.881-5.483S15.817,3.036,13.124,3.036Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
18
- </svg> -->
19
- <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 36 26" :width="IconLengh" :height="IconWdith">
18
+ </svg>
19
+ <svg v-else xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 36 26" :width="IconLengh" :height="IconWdith">
20
20
  <!-- 东相位 -->
21
21
  <path id="东左转" :class="Data.name === '东左转' ? '' : 'invisible'" d="M11,7.1h24v-3H10.9c-3.1,0-5.7,2.6-5.8,5.7l-0.4,2.9L1,12.2l3.9,9.7l6.5-8.2l-3.7-0.5l0.5-3.3
22
22
  C8.2,8.4,9.4,7.1,11,7.1L11,7.1z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
23
23
  <path id="东右转" :class="Data.name === '东右转' ? '' : 'invisible'" d="M8.1,15.8l-0.4-3l3.7-0.5L4.9,4.1L1,13.8l3.7-0.5l0.4,2.9c0,3.2,2.6,5.7,5.8,5.7H35v-3H10.9
24
24
  c-1.5,0-2.8-1.3-2.8-2.8V15.8z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
25
25
  <polygon id="东直行" :class="Data.name === '东直行' ? '' : 'invisible'" points="35,11.5 10.1,11.5 10.1,7.8 0.9,13 10.1,18.2 10.1,14.5 35,14.5 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
26
- <path id="东掉头" :class="Data.name === '东掉头' ? '' : 'invisible'" d="M6.9,17.5h4.3v3.7l9-5.2l-9.1-5.2v3.7H6.8c-1.5,0-2.8-1.7-2.8-3.7s1.3-3.7,2.8-3.7H35v-3H6.9c-3.2,0-5.8,3-5.8,6.7C1.1,14.5,3.7,17.5,6.9,17.5z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
26
+ <!-- <path id="东掉头" :class="Data.name === '东掉头' ? '' : 'invisible'" d="M19.4,17.5h4.3v3.7l9.1-5.2l-9.1-5.2v3.7h-4.3c-1.5,0-2.8-1.7-2.8-3.7s1.3-3.7,2.8-3.7H35v-3H19.4
27
+ c-3.2,0-5.8,3-5.8,6.7C13.6,14.5,16.2,17.5,19.4,17.5z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
27
28
  <!-- 西相位 -->
28
29
  <path id="西左转" :class="Data.name === '西左转' ? '' : 'invisible'" d="M25,18.9H1v3h24.1c3.1,0,5.7-2.6,5.8-5.7l0.4-2.9l3.7,0.5l-3.9-9.7l-6.5,8.2l3.7,0.5l-0.5,3.3
29
30
  C27.8,17.6,26.6,18.9,25,18.9L25,18.9z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
30
31
  <path id="西右转" :class="Data.name === '西右转' ? '' : 'invisible'" d="M27.9,10.2l0.4,3l-3.7,0.5l6.5,8.2l3.9-9.7l-3.7,0.5l-0.4-2.9c0-3.2-2.6-5.7-5.8-5.7H1v3h24.1
31
32
  c1.5,0,2.8,1.3,2.8,2.8V10.2z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
32
33
  <polygon id="西直行" :class="Data.name === '西直行' ? '' : 'invisible'" points="1,14.5 26,14.5 26,18.2 35.1,13 26,7.8 26,11.5 1,11.5 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
33
- <path id="西掉头" :class="Data.name === '西掉头' ? '' : 'invisible'" d="M29.1,8.5h-4.3V4.8l-9,5.2l9.1,5.2v-3.7h4.3c1.5,0,2.8,1.7,2.8,3.7s-1.3,3.7-2.8,3.7H0.9v3h28.2c3.2,0,5.8-3,5.8-6.7C34.9,11.5,32.3,8.5,29.1,8.5z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
34
+ <!-- <path id="西掉头" :class="Data.name === '西掉头' ? '' : 'invisible'" d="M16.6,8.5h-4.3V4.7L3.3,10l9.1,5.2v-3.7h4.3c1.5,0,2.8,1.7,2.8,3.7s-1.3,3.7-2.8,3.7H1v3h15.6
35
+ c3.2,0,5.8-3,5.8-6.7C22.4,11.5,19.8,8.5,16.6,8.5z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
34
36
  </svg>
35
37
  </div>
36
38
  <div :class="Data.id >= 9 ? '' : 'hide'">
37
- <!-- <svg v-if="Data.id === 12 || Data.id === 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 18" :width="IconWdithDiaoTou" :height="IconLenghDiaoTou">
39
+ <svg v-if="Data.id === 12 || Data.id === 16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 18" :width="IconWdithDiaoTou" :height="IconLenghDiaoTou">
38
40
  <path id="南掉头" :class="Data.name === '南掉头' ? '' : 'invisible'" d="M3.036,4.876V8.5H0.008L4.264,16.07,8.52,8.411H5.492V4.792c0-1.262,1.391-2.357,3.028-2.357s3.028,1.094,3.028,2.357V18.006H14V4.876C14,2.183,11.548-.005,8.52-0.005S3.036,2.183,3.036,4.876Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)" />
39
41
  <path id="北掉头" :class="Data.name === '北掉头' ? '' : 'invisible'" d="M10.981,13.124V9.5h3.042L9.748,1.93,5.474,9.589H8.515v3.619c0,1.262-1.4,2.357-3.042,2.357S2.432,14.47,2.432,13.208V-0.006H-0.034V13.124c0,2.693,2.466,4.881,5.508,4.881S10.981,15.817,10.981,13.124Z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)" />
40
- </svg> -->
41
- <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
42
+ </svg>
43
+ <svg v-else xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
42
44
  viewBox="0 0 26 36" style="enable-background:new 0 0 26 36;" xml:space="preserve" :width="IconWdith" :height="IconLengh">
43
45
  <!-- 南相位 -->
44
46
  <path id="南左转" :class="Data.name === '南左转' ? '' : 'invisible'" d="M18.9,11v24h3V10.9c0-3.1-2.6-5.7-5.7-5.8l-2.9-0.4L13.8,1L4.1,4.9l8.2,6.5l0.5-3.7l3.3,0.5
@@ -46,14 +48,16 @@
46
48
  <path id="南右转" :class="Data.name === '南右转' ? '' : 'invisible'" d="M10.2,8.1l3-0.4l0.5,3.7l8.2-6.5L12.2,1l0.5,3.7L9.8,5.1c-3.2,0-5.7,2.6-5.7,5.8V35h3V10.9
47
49
  c0-1.5,1.3-2.8,2.8-2.8H10.2z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
48
50
  <polygon id="南直行" :class="Data.name === '南直行' ? '' : 'invisible'" points="14.5,35 14.5,10.1 18.2,10.1 13,0.9 7.8,10.1 11.5,10.1 11.5,35 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
49
- <path id="南掉头" :class="Data.name === '南掉头' ? '' : 'invisible'" d="M8.5,6.9v4.3H4.8l5.2,9l5.2-9.1h-3.7V6.8c0-1.5,1.7-2.8,3.7-2.8s3.7,1.3,3.7,2.8V35h3V6.9c0-3.2-3-5.8-6.7-5.8C11.5,1.1,8.5,3.7,8.5,6.9z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
51
+ <!-- <path id="南掉头" :class="Data.name === '南掉头' ? '' : 'invisible'" d="M8.5,19.4v4.3H4.7l5.2,9.1l5.2-9.1h-3.7v-4.3c0-1.5,1.7-2.8,3.7-2.8s3.7,1.3,3.7,2.8V35h3V19.4
52
+ c0-3.2-3-5.8-6.7-5.8C11.5,13.6,8.5,16.2,8.5,19.4z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
50
53
  <!-- 北相位 -->
51
54
  <path id="北左转" :class="Data.name === '北左转' ? '' : 'invisible'" d="M7.1,25V1h-3v24.1c0,3.1,2.6,5.7,5.7,5.8l2.9,0.4L12.2,35l9.7-3.9l-8.2-6.5l-0.5,3.7l-3.3-0.5
52
55
  C8.4,27.8,7.1,26.6,7.1,25L7.1,25z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
53
56
  <path id="北右转" :class="Data.name === '北右转' ? '' : 'invisible'" d="M15.8,27.9l-3,0.4l-0.5-3.7l-8.2,6.5l9.7,3.9l-0.5-3.7l2.9-0.4c3.2,0,5.7-2.6,5.7-5.8V1h-3v24.1
54
57
  c0,1.5-1.3,2.8-2.8,2.8H15.8z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
55
58
  <polygon id="北直行" :class="Data.name === '北直行' ? '' : 'invisible'" points="11.5,0.9 11.5,25.9 7.8,25.9 13,35 18.2,25.9 14.5,25.9 14.5,0.9 " :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
56
- <path id="北掉头" :class="Data.name === '北掉头' ? '' : 'invisible'" d="M17.5,29.1v-4.3h3.7l-5.2-9l-5.2,9.1h3.7v4.3c0,1.5-1.7,2.8-3.7,2.8s-3.7-1.3-3.7-2.8V0.9h-3v28.2c0,3.2,3,5.8,6.7,5.8C14.5,34.9,17.5,32.3,17.5,29.1z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/>
59
+ <!-- <path id="北掉头" :class="Data.name === '北掉头' ? '' : 'invisible'" d="M17.5,16.6v-4.3h3.7L16,3.3l-5.2,9.1h3.7v4.3c0,1.5-1.7,2.8-3.7,2.8s-3.7-1.3-3.7-2.8V1h-3v15.6
60
+ c0,3.2,3,5.8,6.7,5.8C14.5,22.4,17.5,19.8,17.5,16.6z" :fill="this.FlashColor ? this.FlashColor : (Data.color ? Data.color : defaultColor)"/> -->
57
61
  </svg>
58
62
  </div>
59
63
  </div>
@@ -135,9 +139,8 @@ export default {
135
139
  },
136
140
  methods: {
137
141
  handleClick (e) {
138
- let clickedSvg = e.currentTarget
139
- // console.log(clickedSvg)
140
- let clickedPath = clickedSvg.querySelector(`#${this.Data.name}`)
142
+ let clickedPath = e.target
143
+ // console.log(clickedPath)
141
144
  if (clickedPath) {
142
145
  // 在这里对找到的元素进行操作
143
146
  if (clickedPath.getAttribute('disabled') === 'true') {
@@ -169,12 +172,9 @@ export default {
169
172
  },
170
173
  IconAddEvent () {
171
174
  let IconDom = document.getElementById(this.Data.key)
172
- // let DirDom = IconDom.querySelector(`#${this.Data.name}`)
173
- // if (this.clickMode && DirDom.getAttribute('class') !== 'invisible') {
174
- // DirDom.addEventListener('click', this.handleClick)
175
- // }
176
- if (this.clickMode) {
177
- IconDom.addEventListener('click', this.handleClick)
175
+ let DirDom = IconDom.querySelector(`#${this.Data.name}`)
176
+ if (this.clickMode && DirDom.getAttribute('class') !== 'invisible') {
177
+ DirDom.addEventListener('click', this.handleClick)
178
178
  }
179
179
  }
180
180
  },
@@ -24,8 +24,8 @@
24
24
  "id": 4,
25
25
  "name": "东掉头",
26
26
  "ename": "East-Back",
27
- "x": "588px",
28
- "y": "325px"
27
+ "x": "602px",
28
+ "y": "300px"
29
29
  },
30
30
  {
31
31
  "id": 5,
@@ -52,8 +52,8 @@
52
52
  "id": 8,
53
53
  "name": "西掉头",
54
54
  "ename": "West-Back",
55
- "x": "244px",
56
- "y": "300px"
55
+ "x": "247px",
56
+ "y": "333px"
57
57
  },
58
58
  {
59
59
  "id": 9,
@@ -80,8 +80,8 @@
80
80
  "id": 12,
81
81
  "name": "北掉头",
82
82
  "ename": "North-Back",
83
- "x": "436px",
84
- "y": "134px"
83
+ "x": "412px",
84
+ "y": "137px"
85
85
  },
86
86
  {
87
87
  "id": 13,
@@ -108,8 +108,8 @@
108
108
  "id": 16,
109
109
  "name": "南掉头",
110
110
  "ename": "South-Back",
111
- "x": "412px",
112
- "y": "476px"
111
+ "x": "444px",
112
+ "y": "489px"
113
113
  }
114
114
  ]
115
115
  }
@@ -24,8 +24,8 @@
24
24
  "id": 4,
25
25
  "name": "东掉头",
26
26
  "ename": "East-Back",
27
- "x": "591px",
28
- "y": "301px"
27
+ "x": "604px",
28
+ "y": "334px"
29
29
  },
30
30
  {
31
31
  "id": 5,
@@ -52,8 +52,8 @@
52
52
  "id": 8,
53
53
  "name": "西掉头",
54
54
  "ename": "West-Back",
55
- "x": "246px",
56
- "y": "325px"
55
+ "x": "248px",
56
+ "y": "301px"
57
57
  },
58
58
  {
59
59
  "id": 9,
@@ -80,8 +80,8 @@
80
80
  "id": 12,
81
81
  "name": "北掉头",
82
82
  "ename": "North-Back",
83
- "x": "412px",
84
- "y": "135px"
83
+ "x": "446px",
84
+ "y": "138px"
85
85
  },
86
86
  {
87
87
  "id": 13,
@@ -108,8 +108,8 @@
108
108
  "id": 16,
109
109
  "name": "南掉头",
110
110
  "ename": "South-Back",
111
- "x": "436px",
112
- "y": "481px"
111
+ "x": "412px",
112
+ "y": "495px"
113
113
  }
114
114
  ]
115
115
  }
@@ -40,7 +40,6 @@
40
40
  :isVipRoute="isVipRoute"
41
41
  :clickMode="clickMode"
42
42
  :isThirdSignal="isThirdSignal"
43
- :channelType="channelType"
44
43
  @handleClickCrossIcon="handleClickCrossIcon" />
45
44
  </div>
46
45
  </div>
@@ -126,10 +125,6 @@ export default {
126
125
  isThirdSignal: {
127
126
  type: Boolean,
128
127
  default: false
129
- },
130
- channelType: {
131
- type: Boolean,
132
- default: false
133
128
  }
134
129
  },
135
130
  watch: {
@@ -148,13 +143,6 @@ export default {
148
143
  this.reset = true
149
144
  }
150
145
  }
151
- },
152
- channelType: {
153
- handler: function (val, oldVal) {
154
- if (val) {
155
- this.reset = true
156
- }
157
- }
158
146
  }
159
147
  },
160
148
  created () {
@@ -164,7 +152,7 @@ export default {
164
152
  },
165
153
  mounted () {
166
154
  this.getParentSize()
167
- if (this.isVipRoute || this.channelType) {
155
+ if (this.isVipRoute) {
168
156
  this.reset = true
169
157
  }
170
158
  },
@@ -11,8 +11,33 @@
11
11
  **/
12
12
  <template>
13
13
  <div class="main-patternstatus">
14
+ <!-- rcp模式 -->
15
+ <div v-if="patternType === 'rcp'">
16
+ <div class="ring-first" v-for="(list, index1) in patternRcp" :key="index1">
17
+ <div style="position: relative" :style="{height: '34px',paddingRight: '1px',float: 'left',width:
18
+ ((item.split + (item.sum ? item.sum : 0)) /(item.cycle > cycles ? item.cycle : cycles)) *100 +'%',}"
19
+ v-for="(item, index2) in list" :key="index2">
20
+ <div class="first-1" :style="{ width:
21
+ (Number(item.greenWidth.replace('%', '')) /
22
+ Number((((item.split + (item.sum ? item.sum : 0)) /
23
+ (item.cycle > cycles ? item.cycle : cycles)) * 100 + '%').replace('%', ''))) * 100 + '%', height: '34px',background: '#7ccc66'}">
24
+ </div>
25
+ <el-tooltip placement="top-start" effect="light">
26
+ <div v-if="item.id" slot="content">P{{ item.id }}:{{ item.split }}</div>
27
+ <div v-if="item.id" style="cursor: pointer">
28
+ <div
29
+ class="box"
30
+ style="position: absolute; width:40px; left: 0; top: 5px"
31
+ >
32
+ <div class="ring-nums">P{{ item.id }}:{{ item.split }}</div>
33
+ </div>
34
+ </div>
35
+ </el-tooltip>
36
+ </div>
37
+ </div>
38
+ </div>
14
39
  <!-- 环模式true -->
15
- <div v-if="this.contrloType === 'ring' || !this.contrloType">
40
+ <div v-if="(this.contrloType === 'ring' || !this.contrloType) && patternType !== 'rcp'">
16
41
  <div class="ring-first" v-for="(list, index1) in patternInfo" :key="index1">
17
42
  <div style="position: relative;" :style="{'height': '34px','float':'left','width':((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%'}" v-for="(item,index2) in list" :key="index2" :class="item.mode===7?'direction': ''">
18
43
  <div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :style="{'width':Number(item.greenWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%').replace('%', ''))*100+'%','height':'34px','background':'#7ccc66'}">
@@ -48,7 +73,7 @@
48
73
  <div class="divider" :style="{'left':item, 'height':barrierHeight}"></div>
49
74
  </div>
50
75
  </div>
51
- <div v-show="(cycle && cycle>0 && this.isControl) || (newCycle && newCycle>0 && this.isControl)">
76
+ <div v-show="(this.curtime>0 && cycle && cycle>0 && this.isControl) || (this.curtime>0 && newCycle && newCycle>0 && this.isControl)">
52
77
  <div class="curTimeDiv" :style="{'left':paddingLeft }">{{ timeNumDevide }}</div>
53
78
  <div class="curTimeLine" :style="{'left':paddingLeft, 'height':barrierHeight}"></div>
54
79
  </div>
@@ -107,6 +132,7 @@ export default {
107
132
  newCycle: this.cycles,
108
133
  patternIds: this.patternId,
109
134
  newPatterns: [],
135
+ patternRcp: [],
110
136
  newList: [],
111
137
  isControl: true,
112
138
  contrloCycle: 0,
@@ -131,6 +157,9 @@ export default {
131
157
  controlPhase: {
132
158
  type: Object
133
159
  },
160
+ patternType: {
161
+ type: String
162
+ },
134
163
  contrloType: {
135
164
  type: String
136
165
  },
@@ -213,7 +242,7 @@ export default {
213
242
  watch: {
214
243
  controlPhase: {
215
244
  handler: function (val, oldVal) {
216
- if ((val && val.curTime) || val.curTime === 0) {
245
+ if (val && val.curTime) {
217
246
  this.curtime = val.curTime
218
247
  if (val.control === 4 || val.control === 16 || val.control === 22) {
219
248
  this.isControl = false
@@ -242,7 +271,7 @@ export default {
242
271
  }
243
272
  this.handleBarrierHeight()
244
273
  }
245
- if ((val && val.curTime) || val.curTime === 0) {
274
+ if (val && val.curTime) {
246
275
  this.curtime = val.curTime
247
276
  if (val.control === 4 || val.control === 16 || val.control === 22) {
248
277
  this.isControl = false
@@ -290,6 +319,9 @@ export default {
290
319
  cycles: {
291
320
  handler: function (val, oldVal) {
292
321
  this.newCycle = this.cycles
322
+ if (this.patternType === 'rcp') {
323
+ this.handleRcp(this.patternStatusList)
324
+ }
293
325
  },
294
326
  // 深度观察监听
295
327
  deep: true
@@ -314,6 +346,9 @@ export default {
314
346
  },
315
347
  patternStatusList: {
316
348
  handler: function (val, oldVal) {
349
+ if (this.patternType === 'rcp') {
350
+ this.handleRcp(this.patternStatusList)
351
+ }
317
352
  this.handleBarrierHeight() // 计算屏障高度
318
353
  if (this.patternStatusList && this.newCycle) {
319
354
  setTimeout(() => {
@@ -346,6 +381,9 @@ export default {
346
381
  if (this.contrloType === 'stage') {
347
382
  this.getStage()
348
383
  }
384
+ if (this.patternType === 'rcp') {
385
+ this.handleRcp(this.patternStatusList)
386
+ }
349
387
  },
350
388
  methods: {
351
389
  getPed (data) {
@@ -374,6 +412,48 @@ export default {
374
412
  }
375
413
  return ped
376
414
  },
415
+ handleRcp (val) {
416
+ this.patternRcp = []
417
+ let valSplit = val.map(item => {
418
+ return item.map(val => {
419
+ return val.splitchain
420
+ })
421
+ })
422
+ let splitCycle = valSplit.length > 0 ? valSplit.map(item => {
423
+ return item.length > 0 ? item.reduce((a, b) => {
424
+ return a + b
425
+ }) : 0
426
+ }) : 0
427
+ let cycle = Math.max(...splitCycle)// 每个环的周期最大值
428
+ for (let rings of val) {
429
+ if (rings.length === 0) continue
430
+ let list = []
431
+ for (let ring of rings) {
432
+ if (ring.splitchain === 0) continue
433
+ let obj = {}
434
+ let split = ring.splitchain
435
+ obj.split = split
436
+ obj.cycle = cycle
437
+ obj.id = ring.phases
438
+ // if (ring.sum) {
439
+ // obj.sum = ring.sum
440
+ // obj.redWidth = ((currPhase.redclear + ring.sum) / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
441
+ // } else {
442
+ // obj.redWidth = (currPhase.redclear / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
443
+ // }
444
+ // obj.mode = ring.mode
445
+ obj.greenWidth = (split / (cycle > this.cycles ? cycle : this.cycles)) * 100 + '%'
446
+ // obj.flashgreen = (currPhase.flashgreen / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
447
+ // obj.yellowWidth = (currPhase.yellow / (this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle) * 100) + '%'
448
+ // 忽略相位不显示
449
+ // let mode = ring.mode
450
+ // if (mode !== 7) { // 忽略相位不显示
451
+ list.push(obj)
452
+ // }
453
+ }
454
+ this.patternRcp.push(list)
455
+ }
456
+ },
377
457
  handleStageData (data) {
378
458
  if (!data) return
379
459
  let peddirections = this.getPed(data)
@@ -610,7 +690,6 @@ export default {
610
690
  // if (stg === walk.phaseid) {
611
691
  let objs = {}
612
692
  objs.name = walk.name
613
- objs.color = 'rgba(48,49,51,0.6)'
614
693
  objs.id = walk.id
615
694
  if (ped === walk.id) {
616
695
  peddirections.push(objs)
@@ -626,7 +705,7 @@ export default {
626
705
  obj.direction = ring.desc.map(item => { // 虚相位desc为空
627
706
  return {
628
707
  id: item.id,
629
- color: '#303133'
708
+ color: '#454545'
630
709
  }
631
710
  })
632
711
  } else {
@@ -635,14 +714,14 @@ export default {
635
714
  return {
636
715
  id: item,
637
716
  peddirection: peddirections,
638
- color: '#303133'
717
+ color: '#454545'
639
718
  }
640
719
  })
641
720
  } else {
642
721
  obj.direction = [
643
722
  {
644
723
  id: '',
645
- color: '#303133',
724
+ color: '#454545',
646
725
  peddirection: peddirections
647
726
  }
648
727
  ]
@@ -863,7 +942,6 @@ export default {
863
942
  let objs = {}
864
943
  objs.name = walk.name
865
944
  objs.id = walk.id
866
- objs.color = 'rgba(48,49,51,0.6)'
867
945
  if (ped === walk.id) {
868
946
  peddirections.push(objs)
869
947
  peddirections = Array.from(new Set(peddirections))
@@ -878,7 +956,7 @@ export default {
878
956
  obj.direction = ring.desc.map(item => { // 虚相位desc为空
879
957
  return {
880
958
  id: item.id,
881
- color: '#303133'
959
+ color: '#454545'
882
960
  }
883
961
  })
884
962
  } else {
@@ -887,14 +965,14 @@ export default {
887
965
  return {
888
966
  id: item,
889
967
  peddirection: peddirections,
890
- color: '#303133'
968
+ color: '#454545'
891
969
  }
892
970
  })
893
971
  } else {
894
972
  obj.direction = [
895
973
  {
896
974
  id: '',
897
- color: '#303133',
975
+ color: '#454545',
898
976
  peddirection: peddirections
899
977
  }
900
978
  ]
@@ -1091,7 +1169,6 @@ export default {
1091
1169
  let objs = {}
1092
1170
  objs.name = walk.name
1093
1171
  objs.id = walk.id
1094
- objs.color = 'rgba(48,49,51,0.6)'
1095
1172
  if (ped === walk.id) {
1096
1173
  peddirections.push(objs)
1097
1174
  peddirections = Array.from(new Set(peddirections))
@@ -1106,7 +1183,7 @@ export default {
1106
1183
  obj.direction = ring.desc.map(item => { // 虚相位desc为空
1107
1184
  return {
1108
1185
  id: item.id,
1109
- color: '#303133',
1186
+ color: '#454545',
1110
1187
  peddirection: peddirections
1111
1188
  }
1112
1189
  })
@@ -1115,7 +1192,7 @@ export default {
1115
1192
  obj.direction = currPhase.direction.map(item => {
1116
1193
  return {
1117
1194
  id: item,
1118
- color: '#303133',
1195
+ color: '#454545',
1119
1196
  peddirection: peddirections
1120
1197
  }
1121
1198
  })
@@ -1123,7 +1200,7 @@ export default {
1123
1200
  obj.direction = [
1124
1201
  {
1125
1202
  id: '',
1126
- color: '#303133',
1203
+ color: '#454545',
1127
1204
  peddirection: peddirections
1128
1205
  }
1129
1206
  ]
@@ -1372,7 +1449,7 @@ export default {
1372
1449
  <style lang="scss" scoped>
1373
1450
  .main-patternstatus {
1374
1451
  position: relative;
1375
- /* margin-bottom: 20px; */
1452
+ margin-bottom: 20px;
1376
1453
  }
1377
1454
  .main-patternstatus {
1378
1455
  position: relative;
@@ -38,7 +38,6 @@
38
38
  :overlap="overlap"
39
39
  :patternSelect="patternSelect"
40
40
  :allPatternList="allPatternList"
41
- :isShowBack="isShowBack"
42
41
  @closeManualModal="closeManualModal"
43
42
  @selectModel="selectModel"
44
43
  @selectStages="selectStages"
@@ -46,8 +45,76 @@
46
45
  @closePhaseBack="closePhaseBack"
47
46
  @closePhaseControl="closePhaseControl"
48
47
  @selectSpecialModel="selectSpecialModelNew" />
48
+ <!-- <ManualControlModal
49
+ :controlData="controlData"
50
+ :modelList="modelList"
51
+ :patternSelect="patternSelect"
52
+ :patternAll="patternAll"
53
+ :crossStatusData="crossStatusData"
54
+ :phaseList="phaseList"
55
+ :specialcontrolList="specialcontrolList"
56
+ :currModel="currModel"
57
+ :preselectModel="preselectModel"
58
+ :preselectStages="preselectStages"
59
+ :realtimeStatusModalvisible="realtimeStatusModalvisible"
60
+ :funcSort="funcSort"
61
+ :roadDirection="roadDirection"
62
+ @closeManualModal="closeManualModal"
63
+ @selectModel="selectModel"
64
+ @selectStages="selectStages"
65
+ @patternCommit="patternCommit"
66
+ @selectSpecialModel="selectSpecialModel" /> -->
49
67
  </div>
50
68
  </transition>
69
+ <!-- <transition name="fade-left" mode="out-in"
70
+ enter-active-class="animated fadeInRight"
71
+ leave-active-class="animated fadeOutRight">
72
+ <div style="position: absolute;width: 100%;height:100%" v-show="(isOperation && isClosePhase)">
73
+ <ClosePhaseControlModal
74
+ v-if="specialPage === 'closephase'"
75
+ :controlData="controlData"
76
+ :closePhaseRings="phaseRings"
77
+ :sidewalkPhaseData="sidewalkPhaseData"
78
+ :realtimeStatusModalvisible="realtimeStatusModalvisible"
79
+ :roadDirection="roadDirection"
80
+ @closePhaseBack="closePhaseBack"
81
+ @closePhaseControl="closePhaseControl" /> -->
82
+ <!-- <LockingPhaseControlModal
83
+ v-if="specialPage === 'lockingphase'"
84
+ :roadDirection="roadDirection"
85
+ :phaseList="phaseList"
86
+ :patternStatus="statusData"
87
+ :lockPhaseBtnName="lockPhaseBtnName"
88
+ @closePhaseBack="closePhaseBack"
89
+ @closePhaseControl="closePhaseControl" /> -->
90
+ <!-- <TentativePlanControlModal
91
+ v-if="specialPage === 'tentativeplan'"
92
+ :realtimeStatusModalvisible="realtimeStatusModalvisible"
93
+ :controlData="controlData"
94
+ :phaseList="phaseList"
95
+ :overlap="overlap"
96
+ :patternSelect="patternSelect"
97
+ :allPatternList="allPatternList"
98
+ @closePhaseBack="closePhaseBack"
99
+ @closePhaseControl="closePhaseControl"
100
+ />
101
+ <priorityControl
102
+ v-if="specialPage === 'prioritycontrol'"
103
+ :realtimeStatusModalvisible="realtimeStatusModalvisible"
104
+ :phaseList="phaseList"
105
+ @closePhaseBack="closePhaseBack"
106
+ @closePhaseControl="closePhaseControl"
107
+ /> -->
108
+ <!-- <AzimuthLocking
109
+ v-if="specialPage === 'azimuthlocking'"
110
+ :realtimeStatusModalvisible="realtimeStatusModalvisible"
111
+ :phaseList="phaseList"
112
+ :patternStatus="statusData"
113
+ @closePhaseBack="closePhaseBack"
114
+ @closePhaseControl="closePhaseControl"
115
+ /> -->
116
+ <!-- </div>
117
+ </transition> -->
51
118
 
52
119
  <transition name="fade-left" mode="out-in"
53
120
  enter-active-class="animated fadeInLeft"
@@ -173,10 +240,6 @@ export default {
173
240
  isFromAtc: {
174
241
  type: Boolean,
175
242
  default: true
176
- },
177
- isShowBack: {
178
- type: Boolean,
179
- default: true
180
243
  }
181
244
  },
182
245
  data () {
@@ -410,6 +473,32 @@ export default {
410
473
  faultvisible: false,
411
474
  isClosePhase: false, // 是否在相位关断
412
475
  toPage: 1, // 与哪一个页面交互,1 代表路口信息页面,3代表 相位关断页面
476
+ specialcontrolList: [{ // 特殊控制
477
+ id: 23,
478
+ isShow: true,
479
+ permission: 'configer:manual:optimize',
480
+ iconClass: 'closephase'
481
+ }, {
482
+ id: 22,
483
+ isShow: true,
484
+ permission: 'configer:manual:optimize',
485
+ iconClass: 'lockingphase'
486
+ }, {
487
+ id: 100,
488
+ isShow: true,
489
+ permission: 'configer:manual:optimize',
490
+ iconClass: 'tentativeplan'
491
+ }, {
492
+ id: 24,
493
+ isShow: true,
494
+ permission: 'configer:manual:preempt',
495
+ iconClass: 'prioritycontrol'
496
+ }, {
497
+ id: 25,
498
+ permission: 'configer:manual:optimize',
499
+ isShow: this.realtimeStatusModalvisible,
500
+ iconClass: 'azimuthlocking'
501
+ }],
413
502
  phaseRings: [],
414
503
  curFaultList: [],
415
504
  confirmedFault: [],
@@ -773,6 +862,10 @@ export default {
773
862
  }
774
863
  },
775
864
  closePhaseBack () {
865
+ // if (!this.realtimeStatusModalvisible) {
866
+ // this.$emit('closePhaseBack')
867
+ // return
868
+ // }
776
869
  this.toPage = 3
777
870
  this.isClosePhase = false
778
871
  },