This commit is contained in:
fan 2020-03-13 13:25:54 +08:00
commit 6c52c3b56f
8 changed files with 452 additions and 10 deletions

View File

@ -173,3 +173,11 @@ export function toSortMap(data) {
data: data
});
}
/** 根据group获取排序的车站列表包含车辆段/停车场) */
export function getByGroupStationList(group) {
return request({
url: `/simulation/${group}/stationWithDepot`,
method: 'get'
});
}

View File

@ -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,

View File

@ -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'}
]
}

View File

@ -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

View File

@ -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();

View File

@ -15,7 +15,6 @@ export default {
},
data() {
return {
mes: '1111'
};
},
mounted() {

View 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>

View File

@ -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;
}
// safariqq360
//