openatc-components 0.3.50 → 0.3.52
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.
- package/package/kisscomps/components/BoardCard/BoardCard.vue +5 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +46 -145
- package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +4 -4
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +83 -4
- package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +9 -11
- package/package/kisscomps/components/patternList/patternList.vue +5 -0
- package/package/kissui.min.js +1 -1
- package/package.json +1 -1
- package/src/kisscomps/components/BoardCard/BoardCard.vue +5 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +46 -145
- package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +4 -4
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +83 -4
- package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +9 -11
- package/src/kisscomps/components/patternList/patternList.vue +5 -0
- package/src/node_modules/.package_versions.json +1 -0
- package/static/styles/common.scss +3 -3
- package/static/styles/dark/theme/element-dark.scss +1 -1
- package/static/styles/intersection.scss +5 -15
- package/static/styles/light/theme/element-light.scss +1 -1
- package/static/styles/schemeconfig.scss +6 -3
|
@@ -212,8 +212,8 @@ export default {
|
|
|
212
212
|
Detector: [], // 管理所有检测器
|
|
213
213
|
DetectorChart: [], // 管理所有检测器统计图
|
|
214
214
|
motorwayicon: '',
|
|
215
|
-
IconLengh:
|
|
216
|
-
IconWdith:
|
|
215
|
+
IconLengh: 33,
|
|
216
|
+
IconWdith: 109,
|
|
217
217
|
textareaW: 200,
|
|
218
218
|
textareaH: 100,
|
|
219
219
|
pedW: 206,
|
|
@@ -389,8 +389,8 @@ export default {
|
|
|
389
389
|
h: this.IconWdith,
|
|
390
390
|
angle: 0
|
|
391
391
|
}
|
|
392
|
-
this.IconLengh =
|
|
393
|
-
this.IconWdith =
|
|
392
|
+
this.IconLengh = 33
|
|
393
|
+
this.IconWdith = 109
|
|
394
394
|
let Motorwaysitem = {
|
|
395
395
|
index: this.index,
|
|
396
396
|
id: this.motorid,
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
<!-- 环模式true -->
|
|
15
15
|
<div v-if="this.contrloType === 'ring' || !this.contrloType">
|
|
16
16
|
<div class="ring-first" v-for="(list, index1) in patternInfo" :key="index1">
|
|
17
|
-
<
|
|
18
|
-
<div
|
|
17
|
+
<draggable :move="move" @end="endDrag(index1)" :disabled="isMove" :list="list">
|
|
18
|
+
<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': ''">
|
|
19
|
+
<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'}">
|
|
19
20
|
<el-tooltip placement="top-start" effect="light">
|
|
20
21
|
<div slot="content">{{$t('openatccomponents.phase.phase')}}{{item.id}}:{{item.split}}</div>
|
|
21
22
|
<div style="cursor:pointer;">
|
|
@@ -25,7 +26,19 @@
|
|
|
25
26
|
</div>
|
|
26
27
|
<div v-if="isShowTip" class="box" style="position: absolute; left:40px; width:40px; top: -1px;">
|
|
27
28
|
<div class="ring-nums">{{$t('openatccomponents.phase.phase')}}{{item.id}}</div>
|
|
28
|
-
<div class="ring-nums">{{item.split}}</div>
|
|
29
|
+
<div v-if="isMove" class="ring-nums">{{item.split}}</div>
|
|
30
|
+
<el-input-number
|
|
31
|
+
v-if="!isMove"
|
|
32
|
+
:disabled="!cycles"
|
|
33
|
+
class="ring-nums"
|
|
34
|
+
size="small"
|
|
35
|
+
:controls="false"
|
|
36
|
+
:min="0"
|
|
37
|
+
:step="1"
|
|
38
|
+
v-model.number="item.split"
|
|
39
|
+
@change="handleEdit(item)"
|
|
40
|
+
style="width: 24px"
|
|
41
|
+
></el-input-number>
|
|
29
42
|
</div>
|
|
30
43
|
</div>
|
|
31
44
|
</el-tooltip>
|
|
@@ -41,7 +54,8 @@
|
|
|
41
54
|
<div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :style="{'width':Number(item.flashgreen.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%').replace('%', ''))*100+'%','height':'34px','float':'left','background': 'linear-gradient(to right, #ffffff 50%, #7ccc66 0)','background-size': '4px 100%'}"></div>
|
|
42
55
|
<div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :style="{'width':Number(item.yellowWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100) + '%').replace('%', ''))*100+'%','height':'34px','background':'#f9dc6a'}"></div>
|
|
43
56
|
<div class="first-1" :class="item.mode === 8 ? 'mask' : item.mode === 9 ? 'yellowClass' : ''" :style="{'width':Number(item.redWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%').replace('%', ''))*100+'%','height':'34px','background':'#f27979'}"></div>
|
|
44
|
-
|
|
57
|
+
</div>
|
|
58
|
+
</draggable>
|
|
45
59
|
</div>
|
|
46
60
|
<div v-if="showBarrier">
|
|
47
61
|
<div v-for="(item, index) in barrierList" :key="index + '1'">
|
|
@@ -100,6 +114,7 @@
|
|
|
100
114
|
<script>
|
|
101
115
|
// import patternwalksvg from '../PatternWalkSvg/PatternWalkSvg'
|
|
102
116
|
import xdrdirselector from '../XRDDirSelector/XRDDirSelector'
|
|
117
|
+
import draggable from 'vuedraggable'
|
|
103
118
|
// import PatternWalkSvg from '../IntersectionMap/crossDirection/baseImg/PatternWalkSvg'
|
|
104
119
|
import PhaseDataModel from '../IntersectionMap/crossDirection/utils.js'
|
|
105
120
|
import CrossDiagramMgr from '../../../EdgeMgr/controller/crossDiagramMgr.js'
|
|
@@ -107,6 +122,7 @@ export default {
|
|
|
107
122
|
name: 'pattern-list',
|
|
108
123
|
components: {
|
|
109
124
|
// patternwalksvg,
|
|
125
|
+
draggable,
|
|
110
126
|
xdrdirselector
|
|
111
127
|
},
|
|
112
128
|
data () {
|
|
@@ -114,6 +130,7 @@ export default {
|
|
|
114
130
|
barrierHeight: '',
|
|
115
131
|
stageCycle: '',
|
|
116
132
|
barrierList: [],
|
|
133
|
+
barrierArr: [],
|
|
117
134
|
newCycle: this.cycles,
|
|
118
135
|
patternIds: this.patternId,
|
|
119
136
|
newPatterns: [],
|
|
@@ -142,6 +159,10 @@ export default {
|
|
|
142
159
|
stagesChange: {
|
|
143
160
|
type: Array
|
|
144
161
|
},
|
|
162
|
+
isMove: {
|
|
163
|
+
type: Boolean,
|
|
164
|
+
default: true
|
|
165
|
+
},
|
|
145
166
|
controlPhase: {
|
|
146
167
|
type: Object
|
|
147
168
|
},
|
|
@@ -375,6 +396,63 @@ export default {
|
|
|
375
396
|
}
|
|
376
397
|
},
|
|
377
398
|
methods: {
|
|
399
|
+
move (e) {
|
|
400
|
+
// 这里的e表示即将停靠的元素。
|
|
401
|
+
let result = this.barrierArr.filter(item => item.includes(e.relatedContext.element.id))[0]
|
|
402
|
+
if (!result.includes(e.draggedContext.element.id)) {
|
|
403
|
+
return false
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
endDrag (index) {
|
|
407
|
+
// 拖动后对原数据排序
|
|
408
|
+
const idIndexMap = {}
|
|
409
|
+
this.patternInfo.forEach((subArray, subArrayIndex) => {
|
|
410
|
+
subArray.forEach((item, index) => {
|
|
411
|
+
idIndexMap[item.id] = { subArrayIndex, index }
|
|
412
|
+
})
|
|
413
|
+
})
|
|
414
|
+
this.patternStatusList.forEach((subArray, subArrayIndex) => {
|
|
415
|
+
if (subArray.length > 0) {
|
|
416
|
+
subArray.sort((aItem, bItem) => {
|
|
417
|
+
const aIndex = idIndexMap[aItem.id] ? idIndexMap[aItem.id].index : Infinity
|
|
418
|
+
const bIndex = idIndexMap[bItem.id] ? idIndexMap[bItem.id].index : Infinity
|
|
419
|
+
return aIndex - bIndex
|
|
420
|
+
})
|
|
421
|
+
}
|
|
422
|
+
})
|
|
423
|
+
},
|
|
424
|
+
handleEdit (val) {
|
|
425
|
+
this.patternStatusList.map(d => {
|
|
426
|
+
d.map(r => {
|
|
427
|
+
if (r.id === val.id) {
|
|
428
|
+
r.value = val.split
|
|
429
|
+
}
|
|
430
|
+
})
|
|
431
|
+
})
|
|
432
|
+
let n = this.index
|
|
433
|
+
const globalParamModel = this.$store.getters.globalParamModel
|
|
434
|
+
let pattern = globalParamModel.getParamsByType('patternList')[n]
|
|
435
|
+
globalParamModel.getParamsByType('patternList')[n].cycle = this.getMaxCycle(pattern)
|
|
436
|
+
},
|
|
437
|
+
getMaxCycle (pattern) {
|
|
438
|
+
let modeId = pattern.stages.filter(item => item.length === 1)[0]
|
|
439
|
+
let rings = pattern.rings
|
|
440
|
+
let maxCycle = 0
|
|
441
|
+
for (let ring of rings) {
|
|
442
|
+
if (ring.length === 0) continue
|
|
443
|
+
let cycle = 0
|
|
444
|
+
for (let r of ring) {
|
|
445
|
+
if (r.mode === 7 && (modeId && modeId[0] === r.id)) { // 忽略相位不计周期
|
|
446
|
+
continue
|
|
447
|
+
}
|
|
448
|
+
cycle = cycle + r.value
|
|
449
|
+
}
|
|
450
|
+
if (cycle > maxCycle) {
|
|
451
|
+
maxCycle = cycle
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
return maxCycle
|
|
455
|
+
},
|
|
378
456
|
getPed (data) {
|
|
379
457
|
let ped = []
|
|
380
458
|
for (let stg of data) {
|
|
@@ -1179,6 +1257,7 @@ export default {
|
|
|
1179
1257
|
}
|
|
1180
1258
|
}
|
|
1181
1259
|
let resArr = ringArr.map(item => item.data)
|
|
1260
|
+
this.barrierArr = resArr
|
|
1182
1261
|
let ringTeam = this.step1(this.phaseList, resArr)
|
|
1183
1262
|
let ringTeams = ringTeam.filter(item => item.length !== 0)
|
|
1184
1263
|
if (this.patternList) {
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
:model="manualInfo"
|
|
21
21
|
label-width="90px">
|
|
22
22
|
<el-form-item
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
:label="$t('openatccomponents.overview.duration')"
|
|
24
|
+
prop="count">
|
|
25
|
+
<el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDuration" size="small"></el-input-number>
|
|
26
|
+
</el-form-item>
|
|
27
27
|
|
|
28
28
|
<el-form-item
|
|
29
29
|
:label="$t('openatccomponents.overview.yellowflash')"
|
|
@@ -44,13 +44,11 @@
|
|
|
44
44
|
label-position="left"
|
|
45
45
|
:model="manualInfo"
|
|
46
46
|
label-width="90px">
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
</el-form-item>
|
|
53
|
-
|
|
47
|
+
<el-form-item
|
|
48
|
+
:label="$t('openatccomponents.overview.greenclear')"
|
|
49
|
+
prop="intersection">
|
|
50
|
+
<el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempGreenflash" size="small"></el-input-number>
|
|
51
|
+
</el-form-item>
|
|
54
52
|
<el-form-item
|
|
55
53
|
:label="$t('openatccomponents.overview.allred')"
|
|
56
54
|
prop="intersection">
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
:contrloType="contrloType"
|
|
6
6
|
:stagesChange="stagesChange"
|
|
7
7
|
:isShowTip="isShowTip"
|
|
8
|
+
:isMove="isMove"
|
|
8
9
|
:patternStatusList="patternStatusList"
|
|
9
10
|
:cycles="cycles"
|
|
10
11
|
:cycle="cycle"
|
|
@@ -502,6 +503,10 @@ export default {
|
|
|
502
503
|
type: Boolean,
|
|
503
504
|
default: true
|
|
504
505
|
},
|
|
506
|
+
isMove: {
|
|
507
|
+
type: Boolean,
|
|
508
|
+
default: true
|
|
509
|
+
},
|
|
505
510
|
contrloType: {
|
|
506
511
|
type: String
|
|
507
512
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
|
|
12
12
|
// 全局滚动条样式
|
|
13
13
|
::-webkit-scrollbar {
|
|
14
|
-
width:
|
|
15
|
-
height:
|
|
14
|
+
width: 6PX;
|
|
15
|
+
height: 6PX;
|
|
16
16
|
}
|
|
17
17
|
::-webkit-scrollbar-thumb {
|
|
18
18
|
// 滚动条的滑块
|
|
19
|
-
border-radius:
|
|
19
|
+
border-radius: 3PX;
|
|
20
20
|
background: rgba(144, 147, 153, 0.3);
|
|
21
21
|
}
|
|
22
22
|
::-webkit-scrollbar-corner{
|
|
@@ -34,7 +34,7 @@ $--button-danger-font-color: #FFFFFF;
|
|
|
34
34
|
$--button-success-font-color: #FFFFFF;
|
|
35
35
|
$--radio-button-checked-font-color: #FFFFFF;
|
|
36
36
|
$--radio-font-color: $--color-text-secondary;
|
|
37
|
-
$--tag-info-color:
|
|
37
|
+
$--tag-info-color: #FFFFFF;
|
|
38
38
|
$--tooltip-color: $--color-white;
|
|
39
39
|
$--checkbox-font-color: $--color-text-secondary;
|
|
40
40
|
|
|
@@ -38,9 +38,6 @@
|
|
|
38
38
|
zoom: 0.9;
|
|
39
39
|
|
|
40
40
|
}
|
|
41
|
-
.centerText .text {
|
|
42
|
-
font-size: 14px;
|
|
43
|
-
}
|
|
44
41
|
}
|
|
45
42
|
/*当屏幕小于等于1440px的屏幕样式*/
|
|
46
43
|
@media only screen and (max-width: 1440px){
|
|
@@ -49,9 +46,6 @@
|
|
|
49
46
|
zoom: 0.8;
|
|
50
47
|
|
|
51
48
|
}
|
|
52
|
-
.centerText .text {
|
|
53
|
-
font-size: 18px;
|
|
54
|
-
}
|
|
55
49
|
}
|
|
56
50
|
/*当屏幕小于等于1280px的屏幕样式*/
|
|
57
51
|
@media only screen and (max-width: 1280px){
|
|
@@ -59,9 +53,6 @@
|
|
|
59
53
|
// transform: scale(0.65);
|
|
60
54
|
zoom: 0.65;
|
|
61
55
|
}
|
|
62
|
-
.centerText .text {
|
|
63
|
-
font-size: 20px;
|
|
64
|
-
}
|
|
65
56
|
}
|
|
66
57
|
/*当屏幕小于等于960px的屏幕样式*/
|
|
67
58
|
@media only screen and (max-width: 960px){
|
|
@@ -69,9 +60,6 @@
|
|
|
69
60
|
// transform: scale(0.5);
|
|
70
61
|
zoom: 0.5;
|
|
71
62
|
}
|
|
72
|
-
.centerText .text {
|
|
73
|
-
font-size: 14px;
|
|
74
|
-
}
|
|
75
63
|
}
|
|
76
64
|
/*当屏幕小于等于720px的屏幕样式*/
|
|
77
65
|
@media only screen and (max-width: 720px){
|
|
@@ -79,9 +67,6 @@
|
|
|
79
67
|
// transform: scale(0.45);
|
|
80
68
|
zoom: 0.45;
|
|
81
69
|
}
|
|
82
|
-
.centerText .text {
|
|
83
|
-
font-size: 14px;
|
|
84
|
-
}
|
|
85
70
|
}
|
|
86
71
|
// 小屏幕打开首页适配样式
|
|
87
72
|
.minifont {
|
|
@@ -188,4 +173,9 @@
|
|
|
188
173
|
color: $--color-text-primary;
|
|
189
174
|
font-size:30PX;
|
|
190
175
|
}
|
|
176
|
+
.centerText {
|
|
177
|
+
.text {
|
|
178
|
+
font-size: 18PX;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
191
181
|
}
|
|
@@ -34,7 +34,7 @@ $--card-background-selected: #c1e0ff;
|
|
|
34
34
|
// $--button-success-font-color: #FFFFFF;
|
|
35
35
|
// $--radio-button-checked-font-color: #FFFFFF;
|
|
36
36
|
// $--radio-font-color: $--color-text-secondary;
|
|
37
|
-
|
|
37
|
+
$--tag-info-color: #303133;
|
|
38
38
|
// $--tooltip-color: $--color-white;
|
|
39
39
|
// $--checkbox-font-color: $--color-text-secondary;
|
|
40
40
|
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
overflow-y: auto;
|
|
227
227
|
}
|
|
228
228
|
.manual-common-content::-webkit-scrollbar {
|
|
229
|
-
width:
|
|
229
|
+
width: 6PX;
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
// 手动控制弹框
|
|
@@ -498,12 +498,12 @@
|
|
|
498
498
|
width: 85% !important;
|
|
499
499
|
}
|
|
500
500
|
.el-input.is-disabled .el-input__inner {
|
|
501
|
-
text-align:
|
|
501
|
+
text-align: left;
|
|
502
502
|
}
|
|
503
503
|
.el-input-number {
|
|
504
504
|
width: 100%;
|
|
505
505
|
.el-input__inner {
|
|
506
|
-
text-align:
|
|
506
|
+
text-align: left;
|
|
507
507
|
}
|
|
508
508
|
}
|
|
509
509
|
.el-select {
|
|
@@ -540,6 +540,9 @@
|
|
|
540
540
|
}
|
|
541
541
|
.el-input-number {
|
|
542
542
|
width: 100%;
|
|
543
|
+
.el-input__inner {
|
|
544
|
+
text-align: left;
|
|
545
|
+
}
|
|
543
546
|
}
|
|
544
547
|
.el-input-number--mini{
|
|
545
548
|
width: 100%;
|