Merge branch 'dev' of https://git.code.tencent.com/lian-cbtc/jl-client into dev
This commit is contained in:
commit
6c52c3b56f
@ -173,3 +173,11 @@ export function toSortMap(data) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据group获取排序的车站列表(包含车辆段/停车场) */
|
||||
export function getByGroupStationList(group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/stationWithDepot`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -503,6 +503,20 @@ export const asyncRouter = [
|
||||
},
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/displayIscs/system',
|
||||
component: IscsSystem,
|
||||
meta: {
|
||||
},
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: 'config/:mode',
|
||||
component: IscsConfig,
|
||||
hidden: true
|
||||
}
|
||||
]
|
||||
},
|
||||
{ // 综合演练室
|
||||
path: '/trainroom',
|
||||
component: TrainRoom,
|
||||
|
@ -145,7 +145,8 @@ export default {
|
||||
{ enlabel: 'ATS Traffic dispatching workstation', label: 'ATS行调工作站', value: '02'},
|
||||
{ enlabel: 'Comprehensive exercise cloud platform', label: '综合演练云平台', value: '03'},
|
||||
{ enlabel: 'Driver simulation driving system', label: '司机模拟驾驶系统', value: '04'},
|
||||
{ enlabel: 'Dispatch workstation', label: '派班工作站', value: '05'}
|
||||
{ enlabel: 'Dispatch workstation', label: '派班工作站', value: '05'},
|
||||
{ enlabel: 'ISCS workstation', label: 'ISCS工作站', value: '06'}
|
||||
]
|
||||
|
||||
}
|
||||
|
@ -3,11 +3,11 @@ export function getBaseUrl() {
|
||||
let BASE_API;
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// BASE_API = 'https://joylink.club/jlcloud';
|
||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'http://192.168.3.5:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.3.6:9000'; // 旭强
|
||||
BASE_API = 'http://192.168.3.6:9000'; // 旭强
|
||||
// BASE_API = 'http://192.168.3.41:9000'; // 张赛
|
||||
// BASE_API = 'http://192.168.8.125:9000'; // 杜康
|
||||
// BASE_API = 'http://192.168.3.82:9000'; // 杜康
|
||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛automaticRouteButtonList
|
||||
|
@ -24,7 +24,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getPublishMapInfo } from '@/api/jmap/map';
|
||||
import { getPublishMapInfo, getByGroupStationList } from '@/api/jmap/map';
|
||||
import { getGoodsTryUse } from '@/api/management/goods';
|
||||
import { PermissionType } from '@/scripts/ConstDic';
|
||||
import { launchFullscreen } from '@/utils/screen';
|
||||
@ -112,7 +112,7 @@ export default {
|
||||
this.tryUser = 0;
|
||||
this.loading = false;
|
||||
this.drawWay = res.data.drawWay;
|
||||
const remarksList = {'01':'ATS现地工作站原理级仿真实训课程', '02':'ATS行调工作站原理级仿真实训课程', '03':'各岗位应急综合演练', '04':'桌面版模拟驾驶系统', '05':'派班工作站主要是供车辆段/停车场派班员进行派班操作,可以自动生成派班计划,极大的简化了派班计划管理的复杂性'};
|
||||
const remarksList = {'01':'ATS现地工作站原理级仿真实训课程', '02':'ATS行调工作站原理级仿真实训课程', '03':'各岗位应急综合演练', '04':'桌面版模拟驾驶系统', '05':'派班工作站主要是供车辆段/停车场派班员进行派班操作,可以自动生成派班计划,极大的简化了派班计划管理的复杂性', '06': '综合监控管理原理及仿真实训'};
|
||||
this.courseModel = {
|
||||
id: resp.data.id,
|
||||
name: resp.data.name,
|
||||
@ -202,11 +202,32 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
async enterISCS() {
|
||||
try {
|
||||
this.disabled = true;
|
||||
const data = { mapId: this.courseModel.mapId, prdType: this.currentPrdType };
|
||||
let res = {};
|
||||
if (!this.drawWay) {
|
||||
res = await simulationNotify(data);
|
||||
} else {
|
||||
res = await createSimulationNew(data);
|
||||
}
|
||||
if (res && res.code == 200) {
|
||||
const query = { group: res.data };
|
||||
this.$router.push({ path: `/displayIscs/system`, query: query });
|
||||
}
|
||||
} catch (error) {
|
||||
this.disabled = false;
|
||||
console.log(error);
|
||||
}
|
||||
},
|
||||
async start() {
|
||||
if (this.courseModel.prdType == '05') {
|
||||
this.jumpScheduling();
|
||||
} else if (this.courseModel.prdType == '03') {
|
||||
this.createRoom();
|
||||
} else if (this.courseModel.prdType == '06') {
|
||||
this.enterISCS();
|
||||
} else {
|
||||
if (this.courseModel.pmsList && this.courseModel.pmsList.length) {
|
||||
this.jump();
|
||||
|
@ -15,7 +15,6 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mes: '1111'
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
393
src/views/iscs/iscsSystem/groupNav.vue
Normal file
393
src/views/iscs/iscsSystem/groupNav.vue
Normal file
@ -0,0 +1,393 @@
|
||||
<template>
|
||||
<div class="nav-box">
|
||||
<div class="nav-button-box">
|
||||
<div v-for="(item, index) in navList" :key="index" class="nav-list-box" :class="{'active': selectIndex == index}" @click="selectTab(item, index)">{{ item.name }}</div>
|
||||
</div>
|
||||
<div class="nav-button-box">
|
||||
<div v-for="(item, index) in navList[selectIndex].children" v-show="show(item)" :key="index" class="nav-list-box" :class="{'active': selectChildIndex == index}" @click="selectChildren(item, index)">{{ item.name }}</div>
|
||||
</div>
|
||||
<div class="nav-button-box station-box1">
|
||||
<div class="scroll-box">
|
||||
<div v-for="(item, index) in stationList" :key="index" class="station-box">
|
||||
<div class="station-line" />
|
||||
<div class="nav-list-box station-list-box" :class="{'active': selectStationIndex == index}" @click="selectStation(item, index)" />
|
||||
<div class="station-name">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="select-box">
|
||||
<el-select v-model="currentSystem" placeholder="请选择" size="mini" @change="changeCurrentSystem">
|
||||
<el-option
|
||||
v-for="item in systemList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="back-box" @click="back">返回主页面</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getByGroupStationList } from '@/api/jmap/map';
|
||||
import merge from 'webpack-merge';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
selectIndex: 0,
|
||||
selectChildIndex: -1,
|
||||
selectStationIndex: 0,
|
||||
type: '',
|
||||
currentSystem: 'center',
|
||||
systemList: [
|
||||
{
|
||||
label: '中心',
|
||||
value: 'center'
|
||||
},
|
||||
{
|
||||
label: '车站',
|
||||
value: 'local'
|
||||
}
|
||||
],
|
||||
navList: [
|
||||
{
|
||||
name: '火灾报警',
|
||||
children: [
|
||||
{
|
||||
name: '站台报警',
|
||||
type: 'standFAS',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '站厅报警',
|
||||
type: 'stationHallFAS',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '系统状态',
|
||||
type: 'systemFAS',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '机电', // 未知子菜单
|
||||
children: [
|
||||
{
|
||||
name: '控制模式',
|
||||
type: 'controlBAS',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '控制权限',
|
||||
type: 'controlPermissionBAS',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '广播',
|
||||
children: [
|
||||
{
|
||||
name: '主画面',
|
||||
type: 'mainScreenPA',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '广播监听',
|
||||
type: 'radioListeningPA',
|
||||
showType: ['center']
|
||||
},
|
||||
{
|
||||
name: '计时一览',
|
||||
type: 'timePreviewPA',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '乘客信息',
|
||||
children: [
|
||||
{
|
||||
name: '主画面',
|
||||
type: 'MainScreen',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: 'LCD屏控制',
|
||||
type: 'LCDcontrol',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '计时一览',
|
||||
type: 'TimePreview',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '车站网络',
|
||||
type: 'StationNetwork',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '紧急发布一览',
|
||||
type: 'EmergencyRelease',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '闭路电视',
|
||||
children: [
|
||||
{
|
||||
name: '车站控制',
|
||||
type: 'controlCCTV',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '车站时序',
|
||||
type: 'timeCCTV',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '车站时序编辑',
|
||||
type: 'timeEditCCTV',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '车站设备状态',
|
||||
type: 'statusCCTV',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '中心设备状态',
|
||||
type: 'centerStatusCCTV',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '屏蔽门',
|
||||
children: [
|
||||
{
|
||||
name: '屏蔽门',
|
||||
type: 'PSD',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '售检票',
|
||||
children: [
|
||||
{
|
||||
name: '售检票',
|
||||
type: 'AFC',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}, {
|
||||
name: '门禁',
|
||||
children: [
|
||||
{
|
||||
name: '站厅层',
|
||||
type: 'stationHallACS',
|
||||
showType: ['center', 'local']
|
||||
},
|
||||
{
|
||||
name: '站台层',
|
||||
type: 'standACS',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: '防淹门', // 未知 子菜单
|
||||
children: [
|
||||
{
|
||||
name: '防淹门',
|
||||
type: 'doorFG',
|
||||
showType: ['center', 'local']
|
||||
}
|
||||
]
|
||||
}
|
||||
// {
|
||||
// name: '网络状态', // 未知 子菜单
|
||||
// children: [
|
||||
// {
|
||||
// name: '网络状态',
|
||||
// type: 'standFAS'
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
],
|
||||
stationList: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
group() {
|
||||
return this.$route.query.group;
|
||||
}
|
||||
},
|
||||
async created () {
|
||||
// 请求当前线路车站列表
|
||||
const res = await getByGroupStationList(this.$route.query.group);
|
||||
if (res.code == 200) {
|
||||
this.stationList = [];
|
||||
res.data.forEach(station => {
|
||||
if (!station.depot) {
|
||||
const param = {
|
||||
name: station.name,
|
||||
id: station.code
|
||||
};
|
||||
this.stationList.push(param);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.navList.forEach((nav, navIndex)=>{
|
||||
if (nav.children && nav.children.length > 0) {
|
||||
nav.children.forEach((child, childIndex)=>{
|
||||
if (child.type && child.type === this.$route.params.mode) {
|
||||
this.selectIndex = navIndex;
|
||||
this.selectChildIndex = childIndex;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
show(item) {
|
||||
let flag = false;
|
||||
if (item.showType.indexOf(this.currentSystem) >= 0) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
},
|
||||
selectTab(item, index) { // 选择大分类
|
||||
if (this.selectIndex != index) {
|
||||
this.selectIndex = index;
|
||||
this.selectChildIndex = 0;
|
||||
if (item.children.length) {
|
||||
this.type = item.children[0].type;
|
||||
this.$router.push({ path: `/displayIscs/system/config/${item.children[0].type}`, query: {currentSystem:this.currentSystem, stationName: this.stationList[this.selectStationIndex].name, stationId: this.stationList[this.selectStationIndex].id, group: this.group } });
|
||||
}
|
||||
}
|
||||
},
|
||||
selectChildren(item, index) { // 选择子菜单
|
||||
this.selectChildIndex = index;
|
||||
this.type = item.type;
|
||||
this.$router.push({ path: `/displayIscs/system/config/${item.type}`, query: {currentSystem: this.currentSystem, stationName: this.stationList[this.selectStationIndex].name, stationId: this.stationList[this.selectStationIndex].id, group: this.group } });
|
||||
},
|
||||
selectStation(item, index) { // 选择子菜单
|
||||
this.selectStationIndex = index;
|
||||
if (!this.type) {
|
||||
this.type = this.$route.params.mode;
|
||||
}
|
||||
this.$router.push({ path: `/displayIscs/system/config/${this.type}`, query: {currentSystem: this.currentSystem, stationName: this.stationList[this.selectStationIndex].name, stationId: this.stationList[this.selectStationIndex].id, group: this.group } });
|
||||
},
|
||||
back() {
|
||||
this.$router.push({ path: `/trainingPlatform` });
|
||||
},
|
||||
changeCurrentSystem() {
|
||||
this.$router.push({
|
||||
query:merge(this.$route.query, {'currentSystem':this.currentSystem})
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.nav-box{
|
||||
width: 100%;
|
||||
height: 95px;
|
||||
background-color: #ACACAC;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
.nav-button-box{
|
||||
display: table;
|
||||
margin-top: 2px;
|
||||
.nav-list-box{
|
||||
width: 90px;
|
||||
height: 28px;
|
||||
text-align: center;
|
||||
line-height: 28px;
|
||||
background-color: #A7A7A7;
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
color: #4C4B6B;
|
||||
margin-left: 5px;
|
||||
margin-bottom: 2px;
|
||||
box-sizing: border-box;
|
||||
border-top: 2px solid #fff;
|
||||
border-left: 2px solid #fff;
|
||||
border-right: 2px solid #565656;
|
||||
border-bottom: 2px solid #565656;
|
||||
cursor: pointer;
|
||||
&.active,
|
||||
&:hover{
|
||||
background: #EBB570;
|
||||
border-top: 2px solid #795B31;
|
||||
border-left: 2px solid #795B31;
|
||||
border-right: 2px solid #fff;
|
||||
border-bottom: 2px solid #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.station-box1{
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
margin-top: -1px;
|
||||
// overflow: auto;
|
||||
display: block;
|
||||
.scroll-box{
|
||||
padding: 14px 20px 0;
|
||||
display: flex;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
.station-box{
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 120px;
|
||||
float: left;
|
||||
flex: 1;
|
||||
.station-list-box{
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-7px);
|
||||
}
|
||||
.station-name{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
transform: translateY(-14px);
|
||||
font-size: 12px;
|
||||
color: #4C4B6B;
|
||||
}
|
||||
.station-line{
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background: #A1D9DC;
|
||||
}
|
||||
}
|
||||
.select-box{
|
||||
display: table;
|
||||
position: absolute;
|
||||
right: 120px;
|
||||
top: 10px;
|
||||
width: 80px;
|
||||
}
|
||||
.back-box{
|
||||
display: table;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 15px;
|
||||
cursor: pointer;
|
||||
&:hover{
|
||||
color: #3161cc;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div class="iscs-system-box">
|
||||
<top-nav @selectMode="selectMode" />
|
||||
<div class="content-box iscs_content_box">
|
||||
<top-nav v-if="!$route.query.group" @selectMode="selectMode" />
|
||||
<group-nav v-if="$route.query.group" @selectMode="selectMode" />
|
||||
<div class="content-box iscs_content_box" :class="{'displayIscs': $route.query.group}">
|
||||
<router-view />
|
||||
</div>
|
||||
<!-- <bottom /> -->
|
||||
@ -10,11 +11,13 @@
|
||||
|
||||
<script>
|
||||
import TopNav from './nav.vue';
|
||||
import GroupNav from './groupNav.vue';
|
||||
// import bottom from './bottom.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
TopNav
|
||||
TopNav,
|
||||
GroupNav
|
||||
// bottom
|
||||
},
|
||||
data() {
|
||||
@ -39,6 +42,9 @@ export default {
|
||||
padding: 34px 0 0;
|
||||
background: #45607B;
|
||||
}
|
||||
.displayIscs{
|
||||
padding: 95px 0 0;
|
||||
}
|
||||
|
||||
// 谷歌、safari、qq浏览器、360浏览器滚动条样式
|
||||
// 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸
|
||||
|
Loading…
Reference in New Issue
Block a user