调整:新增pa客戶端
This commit is contained in:
parent
71ed5445c3
commit
e9facb70f5
@ -205,7 +205,8 @@ export default {
|
||||
{ label: '站台PIS', value: 'PIS_STAND' },
|
||||
{ label: '列车PIS', value: 'PIS_TRAIN' },
|
||||
{ label: '乘客PIS', value: 'PIS' },
|
||||
{ label: 'TMS', value: 'TMS' }
|
||||
{ label: 'TMS', value: 'TMS' },
|
||||
{ label: 'PA', value: 'PA' }
|
||||
],
|
||||
responderTypeList: [{ name: '固定应答器', value: 'FB' }, { name: '可变应答器', value: 'VB' }, { name: '填充应答器', value: 'IB' }],
|
||||
loadRuleList: [
|
||||
|
@ -407,7 +407,8 @@ export const ClientList = [
|
||||
{ label: '运行图预览', value: 'diagramPreview' },
|
||||
{ label: '运行图编制', value: 'diagramEdit' },
|
||||
{ label: '乘客信息发布系统', value: 'pisScreen' },
|
||||
{ label: 'TMS', value: 'tms' }
|
||||
{ label: 'TMS', value: 'tms' },
|
||||
{ label: 'PA', value: 'paScreen' }
|
||||
];
|
||||
/** 实训类型list */
|
||||
export const TrainingTypeList = [
|
||||
|
@ -889,7 +889,7 @@ const map = {
|
||||
if (station.ciStation) {
|
||||
const centrailzedList = [station.code];
|
||||
state.stationControlMap[station.code] = centrailzedList;
|
||||
station.relStationCodeList.forEach(relStationCode => {
|
||||
station.relStationCodeList && station.relStationCodeList.forEach(relStationCode => {
|
||||
state.stationControlMap[relStationCode] = centrailzedList;
|
||||
if (state.mapDevice[relStationCode].centralized && !centrailzedList.includes(relStationCode)) {
|
||||
centrailzedList.push(relStationCode);
|
||||
|
@ -29,7 +29,7 @@ export function handlerUrl() {
|
||||
// BASE_API = 'http://114.116.51.125/jlcloud';
|
||||
// BASE_API = 'http://192.168.33.93:9000'; // 周寅
|
||||
// BASE_API = 'http://192.168.3.94:9000'; // 旭强
|
||||
// BASE_API = 'http://192.168.33.207:9000'; // 张赛
|
||||
BASE_API = 'http://192.168.33.207:9000'; // 张赛
|
||||
// BASE_API = 'http://192.168.3.5:9000'; // 夏增彬
|
||||
// BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
|
||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||
|
@ -305,7 +305,15 @@ export default {
|
||||
iscsDeviceMap: {},
|
||||
iscsDeviceList: [],
|
||||
iscsDeviceState: {},
|
||||
deviceMap: {},
|
||||
deviceMap: {
|
||||
LCD:{},
|
||||
UP_STAND: {},
|
||||
DOWN_STAND: {},
|
||||
ADMINISTRATIVE_AREA: {},
|
||||
GATE: {},
|
||||
TRANSFER_CHANNEL: {},
|
||||
PROPERTY: {}
|
||||
},
|
||||
timedList: []
|
||||
};
|
||||
},
|
||||
@ -314,7 +322,7 @@ export default {
|
||||
this.initTimedPlayList();
|
||||
},
|
||||
'stationId': function () {
|
||||
const params2 = { mapId: this.$route.query.mapId, system: 'PA', station: this.stationId };
|
||||
const params2 = { mapId: this.$route.querysetMapData.mapId, system: 'PA', station: this.stationId };
|
||||
queryIscsDeviceCod(params2).then(resp => {
|
||||
this.iscsDeviceList = resp.data;
|
||||
this.iscsDeviceList.forEach(device => {
|
||||
@ -336,7 +344,7 @@ export default {
|
||||
}
|
||||
const device = this.iscsDeviceMap[item.code];
|
||||
if (device) {
|
||||
const oldState = parseInt(this.deviceMap[device.position].state);
|
||||
const oldState = parseInt(this.deviceMap[device.position] ? this.deviceMap[device.position].state : 0);
|
||||
const newState = parseInt(item.state);
|
||||
const div = document.getElementById(device.position);
|
||||
if (!oldState || oldState > newState) {
|
||||
|
@ -99,7 +99,7 @@ export default {
|
||||
return this.$route.query.type;
|
||||
},
|
||||
syncLogin() {
|
||||
const synchronousLogin = ['VR_IBP', 'LSW', 'CCTV', 'ISCS_LW', 'ISCS_CW', 'VR_PSD', 'SANDBOX', 'ILW', 'PIS_STAND', 'PIS_TRAIN', 'PIS', 'TMS'];
|
||||
const synchronousLogin = ['VR_IBP', 'LSW', 'CCTV', 'ISCS_LW', 'ISCS_CW', 'VR_PSD', 'SANDBOX', 'ILW', 'PIS_STAND', 'PIS_TRAIN', 'PIS', 'TMS', 'PA'];
|
||||
return this.type ? synchronousLogin.includes(this.type) : false;
|
||||
},
|
||||
bgImg() {
|
||||
@ -146,7 +146,8 @@ export default {
|
||||
PIS_STAND:{text:'检测教员机登录中'},
|
||||
SANDBOX:{Img:bgLswImg, text:'检测教员机登录中'},
|
||||
PIS:{text:'检测教员机登录中', Img: bgPisImg},
|
||||
TMS:{text:'检测列车驾驶终端登录中', Img: bgTmsImg}
|
||||
TMS:{text:'检测列车驾驶终端登录中', Img: bgTmsImg},
|
||||
PA:{text:'检测现地工作站登录中', Img: bgPisImg}
|
||||
};
|
||||
this.loadingText = deviceMap[this.type].text;
|
||||
this.deviceImg = deviceMap[this.type].Img;
|
||||
|
@ -39,7 +39,7 @@
|
||||
<test-runplan v-if="picture=='testRunplan'" ref="testRunplan" :plan-id="loadPlanId" @pictureChange="pictureChangeAndPlan" />
|
||||
<driver-ats-work v-if="picture=='driverAtsWork'" ref="driverAtsWork" />
|
||||
<pis-screen v-if="picture=='pisScreen'" ref="pisScreen" />
|
||||
|
||||
<pa-screen v-if="picture =='paScreen'" ref="paScreen" />
|
||||
<terminal-menu
|
||||
v-show="menuShow"
|
||||
ref="terminalMenu"
|
||||
@ -92,6 +92,7 @@ import NccWork from './nccWork';
|
||||
import LineMonitor from './lineMonitor';
|
||||
import PisScreen from './pisScreen';
|
||||
import TmsPage from '@/views/jlmap3d/drive/sceneview/tmsPage';
|
||||
import PaScreen from './paScreen';
|
||||
|
||||
export default {
|
||||
name: 'Index',
|
||||
@ -132,7 +133,8 @@ export default {
|
||||
NccWork,
|
||||
LineMonitor,
|
||||
PisScreen,
|
||||
TmsPage
|
||||
TmsPage,
|
||||
PaScreen
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
183
src/views/newMap/display/terminals/paScreen.vue
Normal file
183
src/views/newMap/display/terminals/paScreen.vue
Normal file
@ -0,0 +1,183 @@
|
||||
<template>
|
||||
<div class="content-box-station">
|
||||
<div class="station-nav-out">
|
||||
<div class="station-nav">
|
||||
<div class="stationList">
|
||||
<div class="station-line" />
|
||||
<div v-for="(item, index) in stationList" :key="index" class="station-box-out">
|
||||
<div class="station-box">
|
||||
<div class="leftRect" />
|
||||
<div class="rightRect" />
|
||||
<div class="station-list-box" :class="{'active': selectStation == item.id,'currentStation':tractionList.includes(item.name)}" @click="changeStation(item.id)" />
|
||||
</div>
|
||||
<div class="station-name" :class="index==0?'station-name-first':index%2==1?'station-name-up':'station-name-down'">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<station-home ref="stationHome" :staiton-id="selectStation" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import StationHome from '../../../iscs/iscsSystemNew/config/broadcast/stationHome';
|
||||
import { getByGroupStationList } from '@/api/jmap/map';
|
||||
export default {
|
||||
name: 'PaScreen',
|
||||
components: {
|
||||
StationHome
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selectStation: '',
|
||||
stationList:[],
|
||||
tractionList:[]
|
||||
};
|
||||
},
|
||||
async created () {
|
||||
// 请求当前线路车站列表
|
||||
const res = await getByGroupStationList(this.$route.query.group);
|
||||
if (res.code == 200) {
|
||||
this.stationList = [];
|
||||
res.data.forEach(station => {
|
||||
if (!station.depot && station.visible) {
|
||||
const param = {
|
||||
name: station.runPlanName.includes('站') ? station.runPlanName : `${station.runPlanName}站`,
|
||||
id: station.code
|
||||
};
|
||||
if (station.centralized) {
|
||||
this.tractionList.push(param.name);
|
||||
}
|
||||
this.stationList.push(param);
|
||||
}
|
||||
});
|
||||
this.selectStation = this.$store.state.training.roleDeviceCode;
|
||||
}
|
||||
this.$store.dispatch('app/animationsClose');
|
||||
},
|
||||
methods: {
|
||||
changeStation(item) {
|
||||
this.selectStation = item;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content-box-station{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 65px 0 30px 0;
|
||||
background: #45607B;
|
||||
}
|
||||
.station-nav-out{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.station-nav{
|
||||
width: 100%;
|
||||
height: 65px;
|
||||
background-color: #ACACAC;
|
||||
position: relative;
|
||||
padding-left: 5px;
|
||||
}
|
||||
.station-line{
|
||||
height: 12px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background-image: linear-gradient(to bottom , #9c9c9c, #F0F0F0,#9c9c9c);
|
||||
top: 25px;
|
||||
border: 1px #505050 solid;
|
||||
}
|
||||
.station-list-box{
|
||||
width: 1vw;
|
||||
height: 1vw;
|
||||
border-radius: 1vw;
|
||||
background: #ccc;
|
||||
left: 4px;
|
||||
top: 50%;
|
||||
position: absolute;
|
||||
border-left: 1px #fdfdfd solid;
|
||||
border-right: 1px #262626 solid;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
.station-list-box.currentStation::before{
|
||||
content: '';
|
||||
width: 128%;
|
||||
height: 124%;
|
||||
border: 1px #10ff00 solid;
|
||||
position: absolute;
|
||||
left: -16%;
|
||||
top: -10%;
|
||||
border-radius: 130%;
|
||||
}
|
||||
.station-list-box.active,.station-list-button.active{
|
||||
background:#cdcd37;
|
||||
}
|
||||
.station-name{
|
||||
font-size:12px;
|
||||
position:absolute;
|
||||
}
|
||||
.station-name-first{
|
||||
transform: translateX(0%);
|
||||
top: 45px;
|
||||
white-space: nowrap;
|
||||
left: 0%;
|
||||
}
|
||||
.station-name-up{
|
||||
top: 5px;
|
||||
transform: translateX(-50%);
|
||||
left: 25%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.station-name-down{
|
||||
top: 45px;
|
||||
// transform: translateX(-25%);
|
||||
transform: translateX(-38%);
|
||||
white-space: nowrap;
|
||||
left: 0%;
|
||||
}
|
||||
.station-box-out{
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.station-box{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
// margin-right: 1.8vw;
|
||||
width: 1.5vw;
|
||||
margin-top: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.leftRect{
|
||||
width: 6px;
|
||||
height: 19px;
|
||||
background-image: linear-gradient(to bottom, #686868, #e9e9e9, #686868);
|
||||
border: 1px #585858 solid;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
.rightRect{
|
||||
width: 6px;
|
||||
height: 19px;
|
||||
position: absolute;
|
||||
margin-left: 0.8vw;
|
||||
background-image: linear-gradient(to bottom, #686868, #e9e9e9, #686868);
|
||||
border: 1px #585858 solid;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
.stationList{
|
||||
// display: inline-block;
|
||||
display: flex;
|
||||
position: relative;
|
||||
justify-content: space-between;
|
||||
float: left;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
</style>
|
@ -69,7 +69,7 @@ export default {
|
||||
} else {
|
||||
this.initPictureShow();
|
||||
}
|
||||
} else if (!clientIdList || !clientIdList.length) {
|
||||
} else if (clientIdList.length) {
|
||||
this.initTerminalList(clientIdList);
|
||||
if (this.$store.state.trainingNew.trainingDetail && this.$store.state.trainingNew.trainingDetail.client) {
|
||||
const client = this.findTerminalFromMap(this.$store.state.trainingNew.trainingDetail.client);
|
||||
|
@ -65,7 +65,8 @@ export default {
|
||||
{ label: '轨道详览', key: 'troDetailWork' },
|
||||
{ label: '通号端', key: 'maintainerSelect' },
|
||||
{ label: '乘客信息发布系统', key: 'pisScreen' },
|
||||
{ label: 'TMS', key: 'tms' }
|
||||
{ label: 'TMS', key: 'tms' },
|
||||
{ label: 'PA', value: 'paScreen' }
|
||||
]
|
||||
};
|
||||
},
|
||||
|
@ -287,6 +287,11 @@ export default {
|
||||
code: 'pisScreen',
|
||||
isShow: () => type === 'METRO'
|
||||
},
|
||||
{
|
||||
name: 'PA',
|
||||
code: 'paScreen',
|
||||
isShow: () => type === 'METRO'
|
||||
},
|
||||
{
|
||||
name: '大屏',
|
||||
code: 'bigScreen',
|
||||
|
@ -79,13 +79,13 @@ export default {
|
||||
title: this.$t('lesson.trainingName'),
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: this.$t('lesson.prdType'),
|
||||
prop: 'prdType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.prdType, this.prdTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
// {
|
||||
// title: this.$t('lesson.prdType'),
|
||||
// prop: 'prdType',
|
||||
// type: 'tag',
|
||||
// columnValue: (row) => { return this.$convertField(row.prdType, this.prdTypeList, ['value', 'label']); },
|
||||
// tagType: (row) => { return 'success'; }
|
||||
// },
|
||||
{
|
||||
title: this.$t('lesson.trainingType'),
|
||||
prop: 'type',
|
||||
@ -132,12 +132,12 @@ export default {
|
||||
};
|
||||
},
|
||||
computed:{
|
||||
prdTypeList() {
|
||||
const productTypeList = ConstConfig.ConstSelect.prdType;
|
||||
return Cookies.get('user_lang') == 'en'
|
||||
? productTypeList.map(elem => { return { value: elem.value, label: elem.enlabel }; })
|
||||
: productTypeList.map(elem => { return { value: elem.value, label: elem.label }; });
|
||||
}
|
||||
// prdTypeList() {
|
||||
// const productTypeList = ConstConfig.ConstSelect.prdType;
|
||||
// return Cookies.get('user_lang') == 'en'
|
||||
// ? productTypeList.map(elem => { return { value: elem.value, label: elem.enlabel }; })
|
||||
// : productTypeList.map(elem => { return { value: elem.value, label: elem.label }; });
|
||||
// }
|
||||
},
|
||||
async created() {
|
||||
await this.loadInitData();
|
||||
|
@ -88,7 +88,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form v-show="['TMS', 'PIS'].includes(data.type)" ref="formTms" :model="formTms" label-width="100px" :rules="rulesTms">
|
||||
<el-form v-show="['TMS', 'PIS', 'PA'].includes(data.type)" ref="formTms" :model="formTms" label-width="100px" :rules="rulesTms">
|
||||
<el-form-item label="关联设备:" prop="deviceCode" size="small">
|
||||
<el-select v-model="formTms.deviceCode" placeholder="请选择" size="small">
|
||||
<el-option
|
||||
@ -395,7 +395,7 @@ export default {
|
||||
this.formIscs = {deviceCode: '', picture: '', stationCode: '', roleCode:'', client:'', clientList: []};
|
||||
const form = JSON.parse(resp.data.config);
|
||||
this.formIscs = Object.assign(this.formIscs, form);
|
||||
} else if (resp.data.config && ['PIS', 'TMS'].includes(resp.data.type)) {
|
||||
} else if (resp.data.config && ['PIS', 'TMS', 'PA'].includes(resp.data.type)) {
|
||||
this.formTms = {deviceCode: '', roleCode:'', client:'', clientList: []};
|
||||
const form = JSON.parse(resp.data.config);
|
||||
this.formTms = Object.assign(this.formTms, form);
|
||||
@ -408,7 +408,7 @@ export default {
|
||||
this.initData(row);
|
||||
this.data = row;
|
||||
this.stationList = [];
|
||||
if (['VR_IBP', 'ISCS_LW'].includes(this.data.type)) {
|
||||
if (['VR_IBP', 'ISCS_LW', 'PA'].includes(this.data.type)) {
|
||||
getDevicesByType(row.project, 'LW').then(res => {
|
||||
if (res.data && res.data.length) {
|
||||
this.lwList = res.data;
|
||||
@ -511,7 +511,7 @@ export default {
|
||||
self.$message.error(this.$t('tip.modifyTheFailure') + error.message);
|
||||
});
|
||||
});
|
||||
} else if (this.data.type === 'PIS' || this.data.type === 'TMS') {
|
||||
} else if (this.data.type === 'PIS' || this.data.type === 'TMS' || this.data.type === 'PA') {
|
||||
this.$refs.formTms.validate(() => {
|
||||
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(this.formTms) };
|
||||
setDeviceConfig(data).then(response => {
|
||||
|
@ -188,7 +188,7 @@ export default {
|
||||
},
|
||||
editConfig(index, row) {
|
||||
const configGatewayList = ['SWITCH', 'SIGNAL', 'PSD', 'PSL', 'PSC', 'UDP_LOW', 'SECTION', 'TRAIN', 'UDP_CLIENT', 'PIS_STAND', 'PIS_TRAIN', 'PIS'];
|
||||
if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW', 'IM', 'CW', 'DRIVE', 'DEPOT', 'TMS', 'PIS'].includes(row.type)) {
|
||||
if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW', 'IM', 'CW', 'DRIVE', 'DEPOT', 'TMS', 'PIS', 'PA'].includes(row.type)) {
|
||||
this.$refs.editConfig.doShow(row);
|
||||
} else if (configGatewayList.includes(row.type)) {
|
||||
this.$refs.editConfigGateway.doShow(row);
|
||||
|
Loading…
Reference in New Issue
Block a user