openatc-components 0.1.139 → 0.1.142
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/CommonKanban/CommonKanban.vue +8 -4
- package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +1 -1
- package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +1 -1
- package/package/kisscomps/components/ExpendConfig/ExpendConfig.vue +1 -1
- package/package/kisscomps/components/KanBan/kanban.vue +1 -1
- package/package/kisscomps/components/OverLap/OverLap.vue +2 -2
- package/package/kisscomps/components/PatternOptimize/PatternOptimize.vue +1 -1
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +21 -20
- package/package/kisscomps/components/PhaseMarker/phasemarker.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +54 -13
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +8 -8
- package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +2 -0
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1 -1
- package/package/kisscomps/components/Stages/index.vue +32 -2
- package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +458 -626
- package/package/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
- package/package/kisscomps/components/XiaoKanban/index.vue +102 -0
- package/package/kisscomps/components/patternConfig/index.js +2 -0
- package/package/kisscomps/components/patternConfig/index.vue +1010 -0
- package/package/kisscomps/components/patternConfig/pattern/patternTable.vue +349 -0
- package/package/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
- package/package/kisscomps/components/patternConfig/planContent.vue +572 -0
- package/package/kisscomps/components/patternConfig/planMenu.vue +329 -0
- package/package/kisscomps/components/patternConfig/utils.js +152 -0
- package/package/kisscomps/index.js +4 -0
- package/package/kissui.min.js +1 -1
- package/package.json +14 -13
- package/src/api/control.js +19 -0
- package/src/api/device.js +135 -0
- package/src/api/route.js +171 -0
- package/src/i18n/language/en.js +149 -0
- package/src/i18n/language/zh.js +133 -0
- package/src/kisscomps/components/CommonKanban/CommonKanban.vue +8 -4
- package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +1 -1
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +1 -1
- package/src/kisscomps/components/ExpendConfig/ExpendConfig.vue +1 -1
- package/src/kisscomps/components/KanBan/kanban.vue +1 -1
- package/src/kisscomps/components/OverLap/OverLap.vue +2 -2
- package/src/kisscomps/components/PatternOptimize/PatternOptimize.vue +1 -1
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +21 -20
- package/src/kisscomps/components/PhaseMarker/phasemarker.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +54 -13
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +8 -8
- package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +2 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1 -1
- package/src/kisscomps/components/Stages/index.vue +32 -2
- package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +458 -626
- package/src/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
- package/src/kisscomps/components/XiaoKanban/index.vue +102 -0
- package/src/kisscomps/components/patternConfig/index.js +2 -0
- package/src/kisscomps/components/patternConfig/index.vue +1010 -0
- package/src/kisscomps/components/patternConfig/pattern/patternTable.vue +349 -0
- package/src/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
- package/src/kisscomps/components/patternConfig/planContent.vue +572 -0
- package/src/kisscomps/components/patternConfig/planMenu.vue +329 -0
- package/src/kisscomps/components/patternConfig/utils.js +152 -0
- package/src/kisscomps/index.js +4 -0
- package/src/lib/publicjs/KissApi.js +2 -2
- package/src/router/index.js +7 -0
- package/src/utils/auth.js +24 -3
- package/src/views/intersection.vue +1 -1
- package/src/views/patternConfig.vue +1468 -0
- package/static/apiconfig.json +85 -0
- package/static/styles/common.scss +2 -0
- package/static/styles/patternConfig.scss +57 -0
- package/static/styles/xiaokanban.scss +51 -0
package/src/i18n/language/zh.js
CHANGED
|
@@ -142,6 +142,14 @@ const zh = {
|
|
|
142
142
|
'priorityPhase': '优先相位',
|
|
143
143
|
'typeOption0': '常规优先',
|
|
144
144
|
'typeOption1': '紧急优先',
|
|
145
|
+
'dong': '东',
|
|
146
|
+
'xi': '西',
|
|
147
|
+
'bei': '北',
|
|
148
|
+
'nan': '南',
|
|
149
|
+
'dongnan': '东南',
|
|
150
|
+
'xinan': '西南',
|
|
151
|
+
'dongbei': '东北',
|
|
152
|
+
'xibei': '西北',
|
|
145
153
|
'es': '东直行',
|
|
146
154
|
'el': '东左转',
|
|
147
155
|
'er': '东右转',
|
|
@@ -1200,6 +1208,131 @@ const zh = {
|
|
|
1200
1208
|
'detector': '检测器',
|
|
1201
1209
|
'port': '端口'
|
|
1202
1210
|
},
|
|
1211
|
+
'greenwaveoptimize': {
|
|
1212
|
+
'downSend': '下发',
|
|
1213
|
+
'patternName': '方案名称',
|
|
1214
|
+
'period': '时段',
|
|
1215
|
+
'distancenull': '距离不能设置为0',
|
|
1216
|
+
'spaceGraph': '时距图',
|
|
1217
|
+
'addplan': '点击添加按钮添加绿波协调计划',
|
|
1218
|
+
'createconfig': '点击编辑按钮开始生成配置',
|
|
1219
|
+
'operation': '操作',
|
|
1220
|
+
'isdelete': '是否删除',
|
|
1221
|
+
'nochooseplan': '未选中任何方案!',
|
|
1222
|
+
'namerepeat': '名称重复!',
|
|
1223
|
+
'addfail': '新增失败,名称重复!',
|
|
1224
|
+
'addroute': '新增路线管理',
|
|
1225
|
+
'editroute': '编辑路线管理',
|
|
1226
|
+
'name': '名称',
|
|
1227
|
+
'routename': '路线名称',
|
|
1228
|
+
'isClose': '配置未保存,是否确认关闭?',
|
|
1229
|
+
'coordinateparamconfig': '路线参数',
|
|
1230
|
+
'device': '路口',
|
|
1231
|
+
'phase': '相位',
|
|
1232
|
+
'distance': '距离',
|
|
1233
|
+
'pattern': '方案',
|
|
1234
|
+
'choosephase': '请选择相位!',
|
|
1235
|
+
'choosepattern': '请选择方案!',
|
|
1236
|
+
'configsuccess': '参数配置成功!',
|
|
1237
|
+
'adddevice': '新增路口',
|
|
1238
|
+
'deletedevice': '是否删除设备',
|
|
1239
|
+
'deviceid': '路口ID',
|
|
1240
|
+
'devicename': '路口名称',
|
|
1241
|
+
'type': '类型',
|
|
1242
|
+
'IP': 'IP',
|
|
1243
|
+
'port': '端口',
|
|
1244
|
+
'describe': '路口描述',
|
|
1245
|
+
'deletedevsuccess': '删除路口成功!',
|
|
1246
|
+
'distancemeter': '距离(m)',
|
|
1247
|
+
'widthmeter': '宽度(m)',
|
|
1248
|
+
'forward': '上行',
|
|
1249
|
+
'back': '下行',
|
|
1250
|
+
'generate': '生成',
|
|
1251
|
+
'edit': '编辑',
|
|
1252
|
+
'confirmdownloadpattern': '确认下载此方案?',
|
|
1253
|
+
'offset': '相位差',
|
|
1254
|
+
'cycle': '周期',
|
|
1255
|
+
'timespace': '干线实时监控',
|
|
1256
|
+
'coordinationstrategy': '协调策略',
|
|
1257
|
+
'coordinationdirection': '协调方向',
|
|
1258
|
+
'keyintersection': '关键路口',
|
|
1259
|
+
'upspeed': '上行速度(km/h)',
|
|
1260
|
+
'downspeed': '下行速度(km/h)',
|
|
1261
|
+
'up': '上行',
|
|
1262
|
+
'down': '下行',
|
|
1263
|
+
'optstrategyoption1': '绿波优化',
|
|
1264
|
+
'optstrategyoption2': '红波优化',
|
|
1265
|
+
'optstrategyoption3': '车队尾策略',
|
|
1266
|
+
'optstrategyoption4': '动态绿波',
|
|
1267
|
+
'directionOption1': '上行',
|
|
1268
|
+
'directionOption2': '下行',
|
|
1269
|
+
'directionOption3': '双向',
|
|
1270
|
+
'duration': '持续时间:',
|
|
1271
|
+
'speed': '速度:',
|
|
1272
|
+
'vehicle': '车辆:',
|
|
1273
|
+
'es': '东直行',
|
|
1274
|
+
'el': '东左转',
|
|
1275
|
+
'er': '东右转',
|
|
1276
|
+
'eb': '东掉头',
|
|
1277
|
+
'ws': '西直行',
|
|
1278
|
+
'wl': '西左转',
|
|
1279
|
+
'wr': '西右转',
|
|
1280
|
+
'wb': '西掉头',
|
|
1281
|
+
'ns': '北直行',
|
|
1282
|
+
'nl': '北左转',
|
|
1283
|
+
'nr': '北右转',
|
|
1284
|
+
'nb': '北掉头',
|
|
1285
|
+
'ss': '南直行',
|
|
1286
|
+
'sl': '南左转',
|
|
1287
|
+
'sr': '南右转',
|
|
1288
|
+
'sb': '南掉头',
|
|
1289
|
+
'notonline': '不在线!',
|
|
1290
|
+
'generatesuedsucc': '生成成功!',
|
|
1291
|
+
'planissuedsucc': '方案下发成功!',
|
|
1292
|
+
'chooseRoute': '请选择路线!',
|
|
1293
|
+
'onlyOneTab': '只允许一个tab!',
|
|
1294
|
+
'scene': '仿真实例',
|
|
1295
|
+
'choosePattern': '请先点击选择方案!',
|
|
1296
|
+
'routeDeviceNotOnline': '路线路口不在线!',
|
|
1297
|
+
'atleastOnePattern': '最少要保留一个方案!',
|
|
1298
|
+
'chooseCros': '请选择路口!',
|
|
1299
|
+
'choosePhase': '请选择相位!',
|
|
1300
|
+
'errDownloadParam': '下载参数异常!',
|
|
1301
|
+
'pleaseChoseOptstrategy': '请选择协调策略!',
|
|
1302
|
+
'pleaseInputPatternName': '请输入方案名称!',
|
|
1303
|
+
'repeatPatternName': '方案名称重复!',
|
|
1304
|
+
'pleaseChoseKeyintersection': '请选择关键路口!',
|
|
1305
|
+
'pleaseInputUpspeed': '请输入上行速度!',
|
|
1306
|
+
'pleaseInputDownspeed': '请输入下行速度!',
|
|
1307
|
+
'abnormalIntersections': '路口数据异常!',
|
|
1308
|
+
'routeCros': '路线路口',
|
|
1309
|
+
'setDistance': '设置距离',
|
|
1310
|
+
'setPhase': '设置相位',
|
|
1311
|
+
'intesectionDistance': '路口名称/间隔距离(米)',
|
|
1312
|
+
'intesectionWidth': '路口宽度(米)',
|
|
1313
|
+
'inputRouteName': '请输入路线名称!',
|
|
1314
|
+
'executePlan': '执行临时方案',
|
|
1315
|
+
'backSelfControl': '恢复自主控制',
|
|
1316
|
+
'downloadPlan': '下载协调方案',
|
|
1317
|
+
'updated': '已更新',
|
|
1318
|
+
'ignored': '忽略',
|
|
1319
|
+
'failed': '失败',
|
|
1320
|
+
'continueOnfailure': '遇到失败继续',
|
|
1321
|
+
'executeTime': '执行时间',
|
|
1322
|
+
'saveParams': '参数保存',
|
|
1323
|
+
'time': '时间(s)',
|
|
1324
|
+
'realtimecoordinationscheme': '实时路线协调方案',
|
|
1325
|
+
'planningcoordinationscheme': '规划路线协调方案'
|
|
1326
|
+
},
|
|
1327
|
+
'token': {
|
|
1328
|
+
'username': '用户名',
|
|
1329
|
+
'tokenManage': 'Token管理',
|
|
1330
|
+
'timeStart': '有效期开始',
|
|
1331
|
+
'timeEnd': '有效期截止',
|
|
1332
|
+
'isValid': '是否启用',
|
|
1333
|
+
'yes': '是',
|
|
1334
|
+
'no': '否'
|
|
1335
|
+
},
|
|
1203
1336
|
'channelizationmap': {
|
|
1204
1337
|
'importpicture': '导入图片',
|
|
1205
1338
|
'importtip': '图片格式为svg、png、jpg,大小不超过10Mb',
|
|
@@ -27,8 +27,10 @@
|
|
|
27
27
|
<el-tooltip class="item" effect="dark" placement="left">
|
|
28
28
|
<div slot="content">{{element.name}}</div>
|
|
29
29
|
<div class="common-phase-description">
|
|
30
|
-
<xdrdirselector Width="
|
|
31
|
-
Height="
|
|
30
|
+
<xdrdirselector Width="70px"
|
|
31
|
+
Height="70px"
|
|
32
|
+
Widths="60px"
|
|
33
|
+
Heights="60px"
|
|
32
34
|
:showlist="element.desc"
|
|
33
35
|
:ISActiveMask="ISActiveMask"
|
|
34
36
|
:MaskColor="MaskColor"
|
|
@@ -50,8 +52,10 @@
|
|
|
50
52
|
<div slot="content">{{element.name}}</div>
|
|
51
53
|
<div class="common-phase-description">
|
|
52
54
|
<!-- <patternwalksvg :sidewalkPhaseData="sidewalkPhaseData" :showWalk="element.peddirection" Width="38" Height="40"></patternwalksvg> -->
|
|
53
|
-
<xdrdirselector Width="
|
|
54
|
-
Height="
|
|
55
|
+
<xdrdirselector Width="70px"
|
|
56
|
+
Height="70px"
|
|
57
|
+
Widths="60px"
|
|
58
|
+
Heights="60px"
|
|
55
59
|
:showlist="element.desc"
|
|
56
60
|
:ISActiveMask="ISActiveMask"
|
|
57
61
|
:MaskColor="MaskColor"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
<div class="phase-icon" v-if="item.direction">
|
|
21
|
-
<xdr-dir-selector Width="
|
|
21
|
+
<xdr-dir-selector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="getShowlist(item)" :roadDirection="roadDirection"></xdr-dir-selector>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
24
|
<div class="single-phase-name">{{$t('openatccomponents.channelizationmap.phase') + item.id}}</div>
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
<div class="phase-icon" v-if="item.direction">
|
|
21
|
-
<xdr-dir-selector Width="
|
|
21
|
+
<xdr-dir-selector Width="50px" Height="50px" Widths="60px" Heights="60px" :showlist="getShowlist(item)" :roadDirection="roadDirection"></xdr-dir-selector>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
24
24
|
<div class="single-phase-name">{{$t('openatccomponents.channelizationmap.phase') + item.id}}</div>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<el-tooltip class="item" effect="dark" placement="left">
|
|
27
27
|
<div slot="content">{{element.name}}</div>
|
|
28
28
|
<div class="common-phase-description">
|
|
29
|
-
<xdrdirselector
|
|
29
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="element.desc" :ISActiveMask="ISActiveMask" :MaskColor="MaskColor"></xdrdirselector>
|
|
30
30
|
</div>
|
|
31
31
|
</el-tooltip>
|
|
32
32
|
</el-col>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<el-tooltip class="item" effect="dark" placement="left">
|
|
24
24
|
<div slot="content">{{element.name}}</div>
|
|
25
25
|
<div class="common-phase-description">
|
|
26
|
-
<xdrdirselector
|
|
26
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="element.desc" :ISActiveMask="ISActiveMask" :MaskColor="MaskColor"></xdrdirselector>
|
|
27
27
|
</div>
|
|
28
28
|
</el-tooltip>
|
|
29
29
|
</el-col>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div style="cursor:pointer;">
|
|
15
15
|
<div class="ring-phase">
|
|
16
16
|
<!-- <patternwalksvg :showWalk="list.peddirection" :Width="'32'" :Height="'34'"></patternwalksvg> -->
|
|
17
|
-
<xdrdirselector Width="
|
|
17
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="item.direction"></xdrdirselector>
|
|
18
18
|
</div>
|
|
19
19
|
<div class="box">
|
|
20
20
|
<div class="ring-nums">
|
|
@@ -136,7 +136,7 @@ export default {
|
|
|
136
136
|
let overlapData = overlap.map(item => {
|
|
137
137
|
let findIndexs = []
|
|
138
138
|
item.includedphases.forEach(i => {
|
|
139
|
-
const findItems = stageList.filter(j => j.
|
|
139
|
+
const findItems = stageList.filter(j => j.phases.includes(i))
|
|
140
140
|
if (findItems.length) findIndexs.push(...findItems.map(m => m.key))
|
|
141
141
|
})
|
|
142
142
|
findIndexs = Array.from(new Set(findIndexs))
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<el-tooltip class="item" effect="dark" placement="left">
|
|
51
51
|
<div slot="content">{{element.name}}</div>
|
|
52
52
|
<div class="common-phase-description">
|
|
53
|
-
<xdrdirselector Width="
|
|
53
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :Data="showStyle" :Datas="showStyle" :showlist="element.desc" :ISActiveMask="ISActiveMask" :MaskColor="MaskColor"></xdrdirselector>
|
|
54
54
|
</div>
|
|
55
55
|
</el-tooltip>
|
|
56
56
|
</el-col>
|
|
@@ -15,32 +15,32 @@
|
|
|
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
17
|
<div style="position: relative;" :style="{'height': '34px','float':'left','width':((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%'}" v-for="(item,index2) in list" :key="index2" :class="item.mode===7?'direction': ''">
|
|
18
|
-
<div class="first-1" :class="item.mode===8?'
|
|
18
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :style="{'width':Number(item.greenWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%').replace('%', ''))*100+'%','height':'34px','background':'#7ccc66'}">
|
|
19
19
|
<el-tooltip placement="top-start" effect="light">
|
|
20
20
|
<div slot="content">P{{item.id}}:{{item.split}}</div>
|
|
21
21
|
<div style="cursor:pointer;">
|
|
22
22
|
<div class="ring-phase">
|
|
23
23
|
<!-- <patternwalksvg :showWalk="item.peddirection" :Width="'32'" :Height="'34'"></patternwalksvg> -->
|
|
24
|
-
<xdrdirselector Width="
|
|
24
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="item.direction"></xdrdirselector>
|
|
25
25
|
</div>
|
|
26
|
-
<div class="box" style="position: absolute; left:40px;top:
|
|
26
|
+
<div class="box" style="position: absolute; left:40px;top: -1px;">
|
|
27
27
|
<div class="ring-nums">P{{item.id}}</div>
|
|
28
28
|
<div class="ring-nums">{{item.split}}</div>
|
|
29
29
|
</div>
|
|
30
30
|
</div>
|
|
31
31
|
</el-tooltip>
|
|
32
32
|
<div style="width:50px;" v-for="(bus,index3) in busPhaseData" :key="index3">
|
|
33
|
-
<i class="iconfont icon-lukouzhilu" style="position: absolute;top: 8px;left:
|
|
34
|
-
<i class="iconfont icon-BRT" style="position: absolute;top: 8px;left:
|
|
35
|
-
<i class="iconfont icon-xuxiangwei-xin" style="position: absolute;top: 8px;left:
|
|
36
|
-
<i class="iconfont icon-feijidongche" style="position: absolute;top: 8px;left:
|
|
37
|
-
<i class="iconfont icon-gongjiaoche" style="position: absolute;top: 8px;left:
|
|
38
|
-
<i class="iconfont icon-youguidianche" style="position: absolute;top: 8px;left:
|
|
33
|
+
<i class="iconfont icon-lukouzhilu" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 1 && bus.phaseid===item.id"></i>
|
|
34
|
+
<i class="iconfont icon-BRT" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 4 && bus.phaseid===item.id"></i>
|
|
35
|
+
<i class="iconfont icon-xuxiangwei-xin" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 99 && bus.phaseid===item.id"></i>
|
|
36
|
+
<i class="iconfont icon-feijidongche" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 6 && bus.phaseid===item.id"></i>
|
|
37
|
+
<i class="iconfont icon-gongjiaoche" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 3 && bus.phaseid===item.id"></i>
|
|
38
|
+
<i class="iconfont icon-youguidianche" style="position: absolute;top: 8px;left:70px;font-size:12px;color:#454545;" v-if="bus.controltype === 5 && bus.phaseid===item.id"></i>
|
|
39
39
|
</div>
|
|
40
40
|
</div>
|
|
41
|
-
<div class="first-1" :class="item.mode===8?'
|
|
42
|
-
<div class="first-1" :class="item.mode===8?'
|
|
43
|
-
<div class="first-1" :class="item.mode===8?'
|
|
41
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :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
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :style="{'width':Number(item.yellowWidth.replace('%', ''))/Number((((item.split+(item.sum?item.sum:0)) / (max?max:item.cycle) * 100).toFixed(3) + '%').replace('%', ''))*100+'%','height':'34px','background':'#f9dc6a'}"></div>
|
|
43
|
+
<div class="first-1" :class="item.mode===8?'masks': ''" :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
44
|
</div>
|
|
45
45
|
</div>
|
|
46
46
|
<div v-if="showBarrier">
|
|
@@ -60,19 +60,19 @@
|
|
|
60
60
|
<el-tooltip placement="top-start" effect="light">
|
|
61
61
|
<div slot="content">
|
|
62
62
|
<span class="ring-nums" v-for="(pha,index) in list.phases" :key="index">
|
|
63
|
-
P
|
|
63
|
+
P{{pha}}
|
|
64
64
|
</span>
|
|
65
65
|
</div>
|
|
66
66
|
<div style="cursor:pointer;">
|
|
67
67
|
<div class="ring-phase">
|
|
68
68
|
<!-- <patternwalksvg :showWalk="list.peddirection" :Width="'32'" :Height="'34'"></patternwalksvg> -->
|
|
69
|
-
<xdrdirselector Width="
|
|
69
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="list.direction"></xdrdirselector>
|
|
70
70
|
</div>
|
|
71
|
-
<div class="box" style="line-height:28px">
|
|
71
|
+
<!-- <div class="box" style="line-height:28px">
|
|
72
72
|
<span class="ring-nums" v-for="(pha,index) in list.phases" :key="index">
|
|
73
73
|
P:{{pha}}
|
|
74
74
|
</span>
|
|
75
|
-
</div>
|
|
75
|
+
</div> -->
|
|
76
76
|
</div>
|
|
77
77
|
</el-tooltip>
|
|
78
78
|
</div>
|
|
@@ -323,17 +323,18 @@ export default {
|
|
|
323
323
|
if (directionList.length === 0) {
|
|
324
324
|
tempList.push({
|
|
325
325
|
id: '',
|
|
326
|
-
color: '#
|
|
326
|
+
color: '#454545',
|
|
327
327
|
peddirection: peddirections
|
|
328
328
|
})
|
|
329
329
|
} else {
|
|
330
330
|
tempList = directionList.map(dir => ({
|
|
331
331
|
id: dir,
|
|
332
|
-
color: '#
|
|
332
|
+
color: '#454545',
|
|
333
333
|
peddirection: peddirections
|
|
334
334
|
}))
|
|
335
335
|
}
|
|
336
|
-
|
|
336
|
+
let newTemp = tempList.filter(item => item.id !== '')
|
|
337
|
+
stagesTemp.push(...newTemp)
|
|
337
338
|
}
|
|
338
339
|
return stagesTemp
|
|
339
340
|
},
|
|
@@ -1355,7 +1356,7 @@ export default {
|
|
|
1355
1356
|
.direction {
|
|
1356
1357
|
filter: brightness(70%);
|
|
1357
1358
|
}
|
|
1358
|
-
.
|
|
1359
|
+
.masks {
|
|
1359
1360
|
background: rgb(242, 121, 121) !important;
|
|
1360
1361
|
}
|
|
1361
1362
|
.first-1 {
|
|
@@ -731,7 +731,7 @@ export default {
|
|
|
731
731
|
return
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
|
-
this.$
|
|
734
|
+
this.$message.success(this.$t('openatccomponents.common.download'))
|
|
735
735
|
}).catch(error => {
|
|
736
736
|
this.unlockScreen()
|
|
737
737
|
console.log(error)
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
<div style="margin-top:20px" class="model-label-title">{{currentName}}{{$t('openatccomponents.overview.currentphase')}}:</div>
|
|
60
60
|
<div class="control-model" v-for="(item, index) in sidewalkPhaseData" :key="index">
|
|
61
61
|
<div style="position:relative;" class="single-model">
|
|
62
|
-
<xdr-dir-selector Width="
|
|
62
|
+
<xdr-dir-selector Width="75PX" Height="75PX" Widths="65PX" Heights="65PX" :Data="showStyle" :Datas="showStyles" :showlist="item"></xdr-dir-selector>
|
|
63
63
|
<div style="height:65px;display:flex;flex-direction:row;justify-content:center;align-items:end;">
|
|
64
64
|
<div class="current-stage-num" style="width:20%;">{{index + 1}}</div>
|
|
65
65
|
<div style="width:70%;">
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
<script>
|
|
103
103
|
import { getPhase } from './utils'
|
|
104
104
|
import { getIframdevid } from '../../../../utils/auth'
|
|
105
|
-
import { getlockPhase, lockPhase } from '../../../../api/control'
|
|
105
|
+
import { getlockPhase, lockPhase, getAllDerection } from '../../../../api/control'
|
|
106
106
|
import Stages from '../../Stages/index'
|
|
107
107
|
import RingDataModel from '../../../../utils/RingDataModel.js'
|
|
108
108
|
import { getMessageByCode } from '../../../../utils/responseMessage'
|
|
@@ -142,18 +142,25 @@ export default {
|
|
|
142
142
|
obj.name = this.$t(obj.name)
|
|
143
143
|
arrays.push(obj)
|
|
144
144
|
})
|
|
145
|
-
|
|
145
|
+
let arr1Ids = this.allDirection.map(item => item.id)
|
|
146
|
+
const result = arrays.filter(item => arr1Ids.includes(item.id))
|
|
147
|
+
return result
|
|
146
148
|
}
|
|
147
149
|
},
|
|
148
150
|
data () {
|
|
149
151
|
return {
|
|
150
152
|
showStyle: {
|
|
153
|
+
top: '7PX',
|
|
154
|
+
left: '13px'
|
|
155
|
+
},
|
|
156
|
+
showStyles: {
|
|
151
157
|
top: '5PX',
|
|
152
|
-
left: '
|
|
158
|
+
left: '12px'
|
|
153
159
|
},
|
|
154
160
|
sidewalkPhaseData: [],
|
|
155
161
|
currentName: '',
|
|
156
162
|
lockList: [],
|
|
163
|
+
allDirection: [],
|
|
157
164
|
patternCycleEqual: true,
|
|
158
165
|
spanIndex: [],
|
|
159
166
|
directions: [],
|
|
@@ -167,25 +174,59 @@ export default {
|
|
|
167
174
|
}
|
|
168
175
|
},
|
|
169
176
|
created () {
|
|
177
|
+
this.getAllDerection()
|
|
170
178
|
},
|
|
171
179
|
methods: {
|
|
172
180
|
checkId (val) {
|
|
173
181
|
if (val.id === 1) {
|
|
174
|
-
return 2
|
|
175
|
-
} else if (val.id === 5) {
|
|
176
182
|
return 1
|
|
183
|
+
} else if (val.id === 5) {
|
|
184
|
+
return 2
|
|
177
185
|
} else if (val.id === 13) {
|
|
178
|
-
return 4
|
|
179
|
-
} else if (val.id === 9) {
|
|
180
186
|
return 3
|
|
187
|
+
} else if (val.id === 9) {
|
|
188
|
+
return 4
|
|
181
189
|
} else if (val.id === 17) {
|
|
182
|
-
return
|
|
190
|
+
return 6
|
|
183
191
|
} else if (val.id === 21) {
|
|
184
|
-
return 5
|
|
185
|
-
} else if (val.id === 25) {
|
|
186
192
|
return 7
|
|
193
|
+
} else if (val.id === 25) {
|
|
194
|
+
return 5
|
|
187
195
|
} else if (val.id === 29) {
|
|
188
|
-
return
|
|
196
|
+
return 8
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
getAllDerection () {
|
|
200
|
+
let iframdevid = getIframdevid()
|
|
201
|
+
getAllDerection(iframdevid).then((res) => {
|
|
202
|
+
if (res.data.success !== true) {
|
|
203
|
+
this.$message.error(getMessageByCode(res.data.code, this.$i18n.locale))
|
|
204
|
+
return
|
|
205
|
+
}
|
|
206
|
+
this.allDirection = res.data.data.map(item => {
|
|
207
|
+
return {
|
|
208
|
+
id: this.checkDirection(item.direction)
|
|
209
|
+
}
|
|
210
|
+
})
|
|
211
|
+
})
|
|
212
|
+
},
|
|
213
|
+
checkDirection (id) {
|
|
214
|
+
if (id === 1) {
|
|
215
|
+
return 1
|
|
216
|
+
} else if (id === 2) {
|
|
217
|
+
return 5
|
|
218
|
+
} else if (id === 3) {
|
|
219
|
+
return 13
|
|
220
|
+
} else if (id === 4) {
|
|
221
|
+
return 9
|
|
222
|
+
} else if (id === 5) {
|
|
223
|
+
return 25
|
|
224
|
+
} else if (id === 6) {
|
|
225
|
+
return 17
|
|
226
|
+
} else if (id === 7) {
|
|
227
|
+
return 21
|
|
228
|
+
} else if (id === 8) {
|
|
229
|
+
return 29
|
|
189
230
|
}
|
|
190
231
|
},
|
|
191
232
|
getLockPhase (val) {
|
|
@@ -248,7 +289,7 @@ export default {
|
|
|
248
289
|
this.$message.error(getMessageByCode(res.data.code, this.$i18n.locale))
|
|
249
290
|
return
|
|
250
291
|
}
|
|
251
|
-
this.$
|
|
292
|
+
this.$message.success(this.$t('openatccomponents.common.download'))
|
|
252
293
|
// if (res.data.success !== true) {
|
|
253
294
|
// this.$message.error(getMessageByCode(res.data.code, this.$i18n.locale))
|
|
254
295
|
// }
|
|
@@ -14,56 +14,56 @@ let images = [
|
|
|
14
14
|
{
|
|
15
15
|
id: 1,
|
|
16
16
|
// name: 'East-Straight',
|
|
17
|
-
name: 'openatccomponents.overview.
|
|
17
|
+
name: 'openatccomponents.overview.dong',
|
|
18
18
|
// img: require('./images/East-Straight.svg'),
|
|
19
19
|
class: 'iconfont icon-dongzhihang'
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
id: 5,
|
|
23
23
|
// name: 'West-Straight',
|
|
24
|
-
name: 'openatccomponents.overview.
|
|
24
|
+
name: 'openatccomponents.overview.xi',
|
|
25
25
|
// img: require('./images/West-Straight.svg'),
|
|
26
26
|
class: 'iconfont icon-xizhihang'
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
id: 13,
|
|
30
30
|
// name: 'South-Straight',
|
|
31
|
-
name: 'openatccomponents.overview.
|
|
31
|
+
name: 'openatccomponents.overview.nan',
|
|
32
32
|
// img: require('./images/South-Straight.svg'),
|
|
33
33
|
class: 'iconfont icon-nanzhihang'
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
id: 9,
|
|
37
37
|
// name: 'North-Straight',
|
|
38
|
-
name: 'openatccomponents.overview.
|
|
38
|
+
name: 'openatccomponents.overview.bei',
|
|
39
39
|
// img: require('./images/North-Straight.svg'),
|
|
40
40
|
class: 'iconfont icon-beizhihang'
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
id: 17,
|
|
44
44
|
// name: 'South-Back',
|
|
45
|
-
name: 'openatccomponents.overview.
|
|
45
|
+
name: 'openatccomponents.overview.dongnan',
|
|
46
46
|
// img: require('./images/South-Back.svg'),
|
|
47
47
|
class: 'iconfont icon-dongnanzhihang'
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
id: 21,
|
|
51
51
|
// name: 'South-Back',
|
|
52
|
-
name: 'openatccomponents.overview.
|
|
52
|
+
name: 'openatccomponents.overview.xinan',
|
|
53
53
|
// img: require('./images/South-Back.svg'),
|
|
54
54
|
class: 'iconfont icon-xinanzhihang'
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
id: 25,
|
|
58
58
|
// name: 'South-Back',
|
|
59
|
-
name: 'openatccomponents.overview.
|
|
59
|
+
name: 'openatccomponents.overview.dongbei',
|
|
60
60
|
// img: require('./images/South-Back.svg'),
|
|
61
61
|
class: 'iconfont icon-dongbeizhihang'
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
id: 29,
|
|
65
65
|
// name: 'South-Back',
|
|
66
|
-
name: 'openatccomponents.overview.
|
|
66
|
+
name: 'openatccomponents.overview.xibei',
|
|
67
67
|
// img: require('./images/South-Back.svg'),
|
|
68
68
|
class: 'iconfont icon-xibeizhihang'
|
|
69
69
|
}
|
|
@@ -62,6 +62,8 @@
|
|
|
62
62
|
<div style="width: 100%; height: auto;overflow: hidden;" v-if="isHasPermission('configer:manual:dwell')">
|
|
63
63
|
<Stages :crossStatusData="manuals?manualsStage:realtimeStage"
|
|
64
64
|
:phaseList="phaseList"
|
|
65
|
+
:preselectStages="preselectStages"
|
|
66
|
+
:preselectModel="preselectModel"
|
|
65
67
|
:isShowCurrentStage="false"
|
|
66
68
|
@onSelectStages="selectStages"></Stages>
|
|
67
69
|
</div>
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
:label="item.label"
|
|
52
52
|
:value="item.value">
|
|
53
53
|
<div class="single-model">
|
|
54
|
-
<xdrdirselector Width="
|
|
54
|
+
<xdrdirselector Width="60px" Height="60px" Widths="50px" Heights="50px" :showlist="item.item"></xdrdirselector>
|
|
55
55
|
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.label }}</span>
|
|
56
56
|
</div>
|
|
57
57
|
</el-option>
|