Merge remote-tracking branch 'origin/test'

This commit is contained in:
fan 2019-10-16 16:25:05 +08:00
commit f9a3461c63
23 changed files with 277 additions and 69 deletions

View File

@ -238,3 +238,12 @@ export function getPermissionJoint(group) {
}
});
}
//
export function setRealDevice(group, data) {
return request({
url: `/api/jointTraining/room/realDevice?group=${group}`,
method: 'post',
data: data
});
}

View File

@ -122,3 +122,11 @@ export function getPublishMapDetailList(params, code) {
params: params
});
}
/** 获取有屏蔽门的站台列表*/
export function hasDoorStationList(mapId) {
return request({
url: `/api/map/${mapId}/stand/hasDoor`,
method: 'get'
});
}

View File

@ -408,3 +408,20 @@ export function schedulingNotify(params) {
params
});
}
/** 获取PLC网关 */
export function getPlcGateway(group) {
return request({
url: `/api/simulation/${group}/plcGateway`,
method: 'get'
});
}
/** 处理ibp盘事件 */
export function handlerIbpEvent(group, data) {
return request({
url: `/api/simulation/${group}/ibp/event`,
method: 'post',
data: data
});
}

View File

@ -13,10 +13,10 @@ export default {
forcedStationControl: 'Forced Station Control',
toCentralControl: 'Switch Central Control',
requestOperationArea: 'RequestOperationArea',
historyQuery: 'HistoryQuery',
userManage: 'UserManage',
historyQuery: 'History',
userManage: 'Users',
help: 'Help',
about: 'ControlMonitor(A)',
about: 'About ControlMonitor(A)',
planCarOperation: 'PlanCarOperation',
addPlanCar: 'Add Plan Car',
panPlanCar: 'Pan Plan Car',
@ -184,8 +184,8 @@ export default {
confirm: 'Confirm',
close: 'Close',
jobNumber: 'JobNumber:',
userName: 'User Name:',
jobNumber: 'Staff ID:',
userName: 'Name:',
password: 'Password:',
confirmPassword: 'Confirm Password:',
inputJobNumber: 'Please enter job number',
@ -220,14 +220,14 @@ export default {
about: 'About ControlMonitor',
userList: 'User List',
jobNumber: 'JobNumber',
userName: 'UserName',
jobNumber: 'Staff ID',
userName: 'Name',
refresh: 'Refresh',
add: 'Add',
modify: 'Modify',
delete: 'Delete',
cancel: 'Cancel',
userManage: 'User Manage',
userManage: 'Users',
selectUser: 'Please select a user first',
deleteMessageOne: 'Are you sure to delete user',
deleteMessageTwo: '?',
@ -301,9 +301,9 @@ export default {
trainIDDisplaySetting: 'Train ID Display Setting',
plantrainDisplayMode: 'Plan train Display Mode',
serviceNumber: 'Service Number',
tripNumber: 'Train Number',
groupNumber: 'Group Number',
serviceNumber: 'Table No. ',
tripNumber: 'Train Trip No.',
groupNumber: 'Train No.',
targetNumber: 'Target Number',
headCodeStationDisplayMode: 'Head Code Train Display Mode',
fontSize: 'Font Size',
@ -317,8 +317,8 @@ export default {
stopTime: 'Stop time',
departureTime: 'Departure time',
runLevel: 'Run level',
serviceNumber: 'Service number',
tripNumber: 'Trip number',
serviceNumber: 'Table No.',
tripNumber: 'Train Trip No.',
stationName: 'Station name:',
stationKilometerMark: 'Station kilometer mark:',
arrivalTime2: 'Arrival time:',
@ -479,7 +479,7 @@ export default {
switch: 'Switch',
activation: 'Activation',
resection: 'Resection',
groupNumber: 'Group number',
groupNumber: 'Train No.',
planTrain: 'Plan train',
headCodeTrain: 'Head code train',
artificialTrain: 'Artificial train',

View File

@ -27,7 +27,7 @@ export default {
createTime: 'Creation Time',
detail: 'Detail',
generateRunPlan: 'Generate Daily Plan',
generateRunjihua: 'Generate general shift schedule',
generateRunjihua: 'Generate General Shift Schedule',
selectTemplateRunPlan: 'Select Template Run Plan',
pleaseSelectTemplate: 'Please Select Template Run Plan',
selectMap: 'Select Map',
@ -55,6 +55,7 @@ export default {
publishVersion: 'Version',
lessonDeleteBtn: 'Delete',
durationMinutes: ' minutes',
copyRunPlan: 'Copy run plan',
testDefinitionMaking: 'Test Definition Making',
examRuleMaking: 'Exam Rule Making',

View File

@ -14,7 +14,7 @@ export default {
createScriptSuccess: 'Create script success',
createScriptFail: 'Create script failure',
scriptDetail: 'Script Detail',
scriptRecord: 'Record',
scriptRecord: 'Edit',
scriptModify: 'Modify',
scriptDelete: 'Delete',
getScriptFail: 'Get script information failure',
@ -40,7 +40,7 @@ export default {
resetDataFail: 'Reset script failure',
allRoles: 'All Roles',
actors: 'Actors',
actors: 'Actor Role',
roleSexMale: 'Male',
roleSexFemale: 'Female',
selectScriptActorSuccess: 'Select script actor success',
@ -50,9 +50,9 @@ export default {
modifyScriptActorSexSuccess: 'Modify script actor sex success',
modifyScriptActorSexFail: 'Modify script actor sex failure',
addConversition: 'Add Conversition',
narrator: 'Narrator',
narratorRules: 'Please select narrator',
addConversition: 'Add Dialogue',
narrator: 'Sender',
narratorRules: 'Please select Sender',
receiver: 'Receiver',
receiverRules: 'Please select receiver',
conversitionContent: 'Content',
@ -67,12 +67,12 @@ export default {
endStationRules: 'Please select end station',
addCommandButton: 'Add Command',
addConversitionButton: 'Add Conversition',
addConversitionButton: 'Add Dialogue',
conversitionContentRules: 'Please input content',
addCommandSucess: 'Add command sucess',
addCommandFail: 'Add command failure',
addConversitionSuccess: 'Add conversition success',
addConversitionFail: 'Add conversition failure',
addConversitionSuccess: 'Add dialogue success',
addConversitionFail: 'Add dialogue failure',
modifyConversitionSuccess: 'Modify conversition success',
modifyConversitionFail: 'Modify conversition failure',
modifyConversition: 'Modify Conversition',

View File

@ -25,5 +25,7 @@ export default {
sending: 'sending...',
holdAndTalk: 'Hold and talk',
recording: 'recording...',
sendText: 'Send text'
sendText: 'Send text',
left: 'left',
right: 'right'
};

View File

@ -25,5 +25,7 @@ export default {
sending: '发送中...',
holdAndTalk: '按住说话',
recording: '录音中...',
sendText: '发送文字'
sendText: '发送文字',
left: '左',
right: '右'
};

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@ class IbpPan {
this.methods = opts.methods;
// 鼠标事件
this.events = { __Pan: 'pan', Contextmenu: 'contextmenu'};
this.events = { __Pan: 'pan', Selected: 'selected', Contextmenu: 'contextmenu'};
// 设备数据
this.ibpDevice = {};
@ -180,7 +180,22 @@ class IbpPan {
if (this.methods.stateUpdate instanceof Function) { this.methods.stateUpdate(list); }
}
setStatus(code, model) {
const oDevcie = this.ibpDevice[code].instance;
oDevcie.setStatus(model);
}
setDeviceStatus(list) {
const deviceList = Object.values(this.ibpDevice);
console.log(list, deviceList);
deviceList.forEach(elem =>{
(list || []).forEach(it =>{
if (elem.model.linkDevice === it.code) {
elem.instance.setStatus(it);
}
});
});
}
drawIbpInit() {
this.$mouseController.setAllowDragging(true);
}

View File

@ -13,6 +13,7 @@ class EventModel {
if (Object.values(deviceType).includes(view._type)) {
this.deviceCode = view._code;
this.deviceType = view._type;
this.deviceModel = view.model;
this.eventTarget = view;
break;
}
@ -36,6 +37,7 @@ class MouseController extends Eventful {
if (zr) {
zr.on('contextmenu', this.contextmenu, this);
zr.on('mousemove', this.moveEvent, this);
zr.on('click', this.click, this);
this.enable = function (opts) {
opts = opts || {};
@ -62,6 +64,7 @@ class MouseController extends Eventful {
};
this.dispose = function () {
zr.off('click', this.click);
zr.off('contextmenu', this.contextmenu);
zr.off('mousemove', this.moveEvent);
this.disable();
@ -141,7 +144,10 @@ class MouseController extends Eventful {
var em = this.checkEvent(e);
this.trigger(this.events.Contextmenu, em);
}
click(e) {
var em = this.checkEvent(e);
this.trigger(this.events.Selected, em);
}
moveEvent(e) {
const newEm = new EventModel(e);
const trainDetails = store.state.map.trainDetails;

View File

@ -86,20 +86,20 @@ export default class button extends Group {
}
onclick() {
if (!this.model.draggable) {
switch (this.model.status) {
case 'off': {
this.open();
this.model.status='on';
break;
}
case 'on': {
this.close();
this.model.status='off';
break;
}
}
}
// if (!this.model.draggable) {
// switch (this.model.status) {
// case 'off': {
// this.open();
// this.model.status='on';
// break;
// }
// case 'on': {
// this.close();
// this.model.status='off';
// break;
// }
// }
// }
}
// 关闭
close() {

View File

@ -10,7 +10,7 @@ export default class CircularLamp extends Group {
this.zlevel = device.model.zlevel;
this.z = device.model.z;
this.create();
this.setStatus(this.model);
// this.setStatus(this.model);
}
create() {
@ -39,9 +39,9 @@ export default class CircularLamp extends Group {
this.lamp.setStyle({fill: color});
}
setStatus(model) {
if (model.switch === 'on') {
if ( model.holdStatus === '02'|| model.holdStatus === '03'|| model.holdStatus === '04') {
this.setCircularLampColor('#D8FCF2');
} else {
} else if (model.holdStatus === '01') {
this.setCircularLampColor('#332C22');
}
}

View File

@ -1,3 +1,4 @@
import LangStorage from '@/utils/lang';
import Group from 'zrender/src/container/Group';
import Text from 'zrender/src/graphic/Text';
import Rect from 'zrender/src/graphic/shape/Rect';
@ -54,6 +55,8 @@ class ESwName extends Group {
}
});
const data=LangStorage.getLang() == 'en'?'Turnout section':'道岔区段名称';
this.arrowText = new Text({
zlevel: model.zlevel,
z: model.z + 20,
@ -63,9 +66,9 @@ class ESwName extends Group {
fontSize: style.arrowFontSize,
fontWeight: style.Switch.text.fontWeight,
fontFamily: style.fontFamily,
text: `道岔区段名称: ${model.sectionName}`,
text: `${data}: ${model.sectionName}`,
textFill: '#000',
textAlign: 'letf',
textAlign: 'left',
textPadding: 3,
textBackgroundColor: style.tipBackgroundColor
}

View File

@ -11,11 +11,11 @@ class EMouse extends Group {
create() {
let destinationText = '';
switch (this.device.model.destinationStatus) {
case '01': destinationText = LangStorage.getLang() == 'en' ? 'fiducial point' : '准点'; break;
case '02': destinationText = LangStorage.getLang() == 'en' ? 'soon' : '早点'; break;
case '03': destinationText = LangStorage.getLang() == 'en' ? 'Severe early' : '严重早点'; break;
case '04': destinationText = LangStorage.getLang() == 'en' ? 'behind schedule' : '晚点'; break;
case '05': destinationText = LangStorage.getLang() == 'en' ? 'Serious delays' : '严重晚点'; break;
case '01': destinationText = LangStorage.getLang() == 'en' ? 'on time' : '准点'; break;
case '02': destinationText = LangStorage.getLang() == 'en' ? 'early' : '早点'; break;
case '03': destinationText = LangStorage.getLang() == 'en' ? 'early seriously' : '严重早点'; break;
case '04': destinationText = LangStorage.getLang() == 'en' ? 'late' : '晚点'; break;
case '05': destinationText = LangStorage.getLang() == 'en' ? 'late seriously ' : '严重晚点'; break;
default: destinationText = LangStorage.getLang() == 'en' ? 'unknown' : '未知'; break;
}
let trainType = '';
@ -27,7 +27,7 @@ class EMouse extends Group {
}
let text = '';
if (LangStorage.getLang() == 'en') {
text = ` The train type: ${trainType} \n table number: ${this.device.model.serviceNumber} \n Train no: ${this.device.model.tripNumber}\n Destination: ${this.device.model.targetCode ? this.device.model.targetCode : ''}\n The number of: ${this.device.model.groupNumber}\n Point in the morning and evening: ${destinationText}\n moving direction: ${this.device.model.directionType == '02' ? 'up' : 'down'}\n Crew: \n The station name: \n The terminal name: \n Take up the orbit: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n In the station: \n train-ground communication: normal \n Run level: 4 \n Button vehicle state: ${this.device.model.runControlStatus == '01' ? 'normal' : this.device.model.runControlStatus == '03' ? '跳停' : '扣车'}\n Stationary state: ${this.device.model.runStatus == '02' ? 'Has not stopped' : 'come to a standstill'}\n blocked state: no \n train speed: ${this.device.model.speed || 0} km/h \n Authorized distance of train movement: ${this.device.model.maLen || 0} m`;
text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.targetCode ? this.device.model.targetCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${this.device.model.directionType == '02' ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n Current Station: \n train-ground communication: normal \n Operational Mode: 4 \n Detained: ${this.device.model.runControlStatus == '01' ? 'normal' : this.device.model.runControlStatus == '03' ? 'Jump' : 'Detain'}\n Stationary: ${this.device.model.runStatus == '02' ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`;
} else {
text = `列车类型: ${trainType} \n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.targetCode ? this.device.model.targetCode : ''}\n\0\0号: ${this.device.model.groupNumber}\n\0\0点: ${destinationText}\n运行方向: ${this.device.model.directionType == '02' ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? this.device.model.sectionModel.name : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${this.device.model.runControlStatus == '01' ? '正常' : this.device.model.runControlStatus == '03' ? '跳停' : '扣车'}\n停稳状态: ${this.device.model.runStatus == '02' ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`;
}

View File

@ -711,7 +711,7 @@ export default {
$height: 30px;
$menuPadding: 10px;
$menuItemHeight: 30px;
$menuItemWidth: 180px;
$menuItemWidth: 190px;
$menuItemPadding: 5px;
#menuBar {

View File

@ -80,7 +80,7 @@ export default {
{label: '行值', value: 'Attendant', enLabel: 'Attendant '},
{label: '观众', value: 'Audience', enLabel: 'Audience '},
{label: '司机', value: 'Driver', enLabel: 'Driver '},
{label: '通号', value: 'Repair', enLabel: 'Repair '}
{label: '通号', value: 'Repair', enLabel: 'Repairman '}
],
SimulationType: [

View File

@ -1,3 +1,12 @@
/**
* 真实设备类型
*/
export const RealDeviceType = {
Section: '区段',
Switch: '道岔',
Signal: '信号机',
ScreenDoor: '屏蔽门'
};
/**
* 权限类型
*/
@ -2174,3 +2183,12 @@ export function checkOperationIsCurrentOperate(operation, operate) {
}
}
}
/**
* ibp操作
*/
export const IbpOperation = {
Up_Hold_Train: {operate: '01', status: 'on'},
Up_Cancel_Hold_Train: {operate: '02', status: 'off'},
Down_Hold_Train: {operate: '03', status: 'on'},
Down_Cancel_Hold_Train: {operate: '04', status: 'off'}
};

View File

@ -88,6 +88,9 @@ function handle(state, data) {
case 'Simulation_Quest_Finish': // 任务结束标志
state.tipOperateCount++;
break;
case 'JointTraining_Device':
handleDeviceInfo(state, msg);
break;
case 'Simulation_Control_Pause': // 暂停中
store.dispatch('scriptRecord/updateSimulationPause', msg);
}
@ -182,6 +185,11 @@ function handleUserinfo(state, data) {
state.roleInfo = data;
}
}
function handleDeviceInfo(state, data) {
if (data) {
state.deviceInfo = data;
}
}
function handleMessageInfo(state, type, data) {
const message = {
join: true,
@ -275,7 +283,8 @@ const socket = {
permissionOver: {}, // 权限结束
tipOperateCount: 0 // 任务结束提示消息
tipOperateCount: 0, // 任务结束提示消息
deviceInfo: [] // 真实设备信息
},
getters: {

View File

@ -13,6 +13,8 @@ import ibpData from '@/ibp/constant/ibpData';
import { mapGetters } from 'vuex';
import { exitFullscreen } from '@/utils/screen';
import { putJointTrainingSimulationUser } from '@/api/chat';
import { handlerIbpEvent } from '@/api/simulation';
import { IbpOperation } from '@/scripts/ConstDic'
export default {
name: 'Ibp',
@ -43,7 +45,8 @@ export default {
showBackButton: true,
initTime: '',
started: false,
loading: false
loading: false,
stationCode: '',
};
},
computed: {
@ -53,7 +56,7 @@ export default {
]),
ibpId() {
return ['ibp', (Math.random().toFixed(5)) * 100000].join('_');
}
},
},
watch: {
'$store.state.config.canvasSizeCount': function (val) {
@ -73,8 +76,13 @@ export default {
if (this.$ibp) {
this.setClockStart(started);
}
},
'$store.state.socket.equipmentStatus': function (val) {
if (val.length) {
this.statusMessage(val);
}
},
},
mounted() {
this.setWindowSize();
},
@ -86,6 +94,7 @@ export default {
if (!deviceCode) {
return;
}
this.stationCode = deviceCode;
document.getElementById(this.ibpId).oncontextmenu = function (e) {
return false;
};
@ -116,6 +125,9 @@ export default {
});
Vue.prototype.$ibp = this.$ibp;
this.$ibp.on('contextmenu', this.onContextMenu, this);
if (this.$route.query.group) {
this.$ibp.on('selected', this.onSelected, this);
}
this.setMap(data,ibpData[deviceCode]);
this.$store.dispatch('ibp/setIbpData', ibpData[deviceCode]);
this.initClockTime(this.initTime);
@ -128,6 +140,10 @@ export default {
},
//
onSelected(em) {
if (em.deviceModel.mean) {
const params = { operate:IbpOperation[em.deviceModel.mean].operate,stationCode:this.stationCode };
handlerIbpEvent(this.$route.query.group,params);
}
},
//
onContextMenu(em) {
@ -178,6 +194,9 @@ export default {
},
handleViewLoaded() {
this.loading = false;
},
statusMessage(val) {
this.$ibp.setDeviceStatus(val);
}
}
};

View File

@ -158,3 +158,9 @@ export default {
}
};
</script>
<style lang="scss" scoped>
/deep/
.el-button+.el-button {
margin-top: 5px;
}
</style>

View File

@ -185,3 +185,9 @@ export default {
}
};
</script>
<style lang="scss" scoped>
/deep/
.el-button+.el-button {
margin-top:5px;
}
</style>

View File

@ -172,6 +172,35 @@
<el-button icon="el-icon-plus" circle plain @click="addingRoles('bigScreen', '增加大屏')" />
</div>
</div>
<!--<div class="Scheduling">-->
<!--<p class="title">真实设备-<span>{{hasPlc?'[PLC网关在线]':'[PLC网关离线]'}}</span></p>-->
<!--<ul>-->
<!--<li v-for="(nor, index) in stationStandList" :key="index" class="selectPerson">-->
<!--<span>{{ realDeviceType[nor.deviceType] }}</span>-->
<!--<div style="float: right; margin-right: 15px;">-->
<!--<el-select-->
<!--v-model="nor.deviceCode"-->
<!--:placeholder="$t('global.choose')"-->
<!--size="mini"-->
<!--:disabled="userId != roomInfo.creatorId"-->
<!--@change="handleChangeDevice(nor, doorList, stationStandList)"-->
<!--&gt;-->
<!--<el-option-->
<!--v-for="item in doorList"-->
<!--:key="item.code"-->
<!--:label="item.name"-->
<!--:value="item.code"-->
<!--:disabled="item.disabled"-->
<!--style="margin-left: 10px"-->
<!--/>-->
<!--</el-select>-->
<!--</div>-->
<!--</li>-->
<!--</ul>-->
<!--<div v-if="userId == roomInfo.creatorId" class="add-box">-->
<!--<el-button icon="el-icon-plus" circle plain @click="addingDevice" />-->
<!--</div>-->
<!--</div>-->
</div>
</div>
<div class="start-box">
@ -254,12 +283,13 @@
</template>
<script>
import { getJoinTrainCode, deljointTrainRoom, putUserRoles, postRoomDetail, getJointTrainRoomUserList, putJointTrainingExit, startJointTraining, putJointTrainingSimulation, putJointTrainingSimulationEntrance } from '@/api/chat';
import { getJoinTrainCode, deljointTrainRoom, putUserRoles, postRoomDetail, getJointTrainRoomUserList, putJointTrainingExit, startJointTraining, putJointTrainingSimulation, putJointTrainingSimulationEntrance,setRealDevice } from '@/api/chat';
import { getStationList } from '@/api/runplan';
import { launchFullscreen } from '@/utils/screen';
import { DeviceMenu } from '@/scripts/ConstDic';
import { DeviceMenu,RealDeviceType } from '@/scripts/ConstDic';
import { checkLoginLine } from '@/api/login';
import { getPublishMapInfo } from '@/api/jmap/map';
import { getPublishMapInfo,hasDoorStationList } from '@/api/jmap/map';
import { getPlcGateway } from '@/api/simulation';
import trainChat from './trainChat';
import AddPerson from './addPerson';
import QrCode from '@/components/QrCode';
@ -300,6 +330,7 @@ export default {
signalList: [],
bigScreenList: [],
stationList: [],
stationStandList: [],
ibpList: [],
point: {
x: 0,
@ -309,7 +340,10 @@ export default {
timeDemon: null,
starting: false,
mapId: '',
loading: false
loading: false,
hasPlc: false,
doorList: [],
realDeviceType:RealDeviceType
};
},
computed: {
@ -329,7 +363,7 @@ export default {
},
stationListForIBP() {
return this.stationList.map(item => {
const elem = { value: item.code, label: item.name, children:[{value: 'left', label: '左'}, {value: 'right', label: '右'}] };
const elem = { value: item.code, label: item.name, children:[{value: 'left', label: this.$t('trainRoom.left')}, {value: 'right', label: this.$t('trainRoom.right')}] };
return elem;
});
}
@ -371,8 +405,13 @@ export default {
val.state = '02';
await this.addPeopleList(val);
}
},
'$store.state.socket.deviceInfo': async function (val) {
if (val) { //
await this.handlerDeviceList(val);
}
},
},
beforeDestroy() {
if (this.timeDemon) {
clearTimeout(this.timeDemon);
@ -382,6 +421,7 @@ export default {
this.userId = this.$store.state.user.id;
this.getRoomInfo(); // info
this.getUserList(); //
this.checkPlcGateway(); //PLC
this.timeDemon = setInterval(() => {
checkLoginLine();
}, 5000 * 60);
@ -579,6 +619,8 @@ export default {
const resp = await getStationList(res.data.mapId);
this.stationList = resp.data;
this.computePermissionRest();
//
this.handleDoorList(res.data.mapId, resp.data);
},
// list Admin Instructor Dispatcher Attendant Audience Driver Repair IBP IBP
async getUserList() {
@ -848,6 +890,51 @@ export default {
message: message,
type: type
});
},
checkPlcGateway() {
getPlcGateway(this.$route.query.group).then(resp=>{
if(resp.data){
this.hasPlc = true;
}else {
this.hasPlc = false;
}
}).catch(() => {
this.$messageBox('查询PLC设备失败');
});
},
handleDoorList(mapId,stationList) {
let doorList = [];
hasDoorStationList(mapId).then(res =>{
stationList.forEach(item => {
res.data.forEach(it =>{
if (item.code === it.stationCode) {
const direction = parseInt(it.doorLocationType)%2 ===0? '上行站台':'下行站台';
doorList.push({code:it.code,name:item.name+direction})
}
})
});
this.doorList = doorList;
}).catch((error) => {
this.$messageBox('获取屏蔽门列表失败!');
})
},
addingDevice() {
const roomDeviceVo = {id:'',deviceType:'ScreenDoor',deviceCode:''};
setRealDevice(this.$route.query.group,roomDeviceVo);
},
handleChangeDevice(nor,doorList, stationStandList){
setRealDevice(this.$route.query.group,nor);
doorList.forEach(item => {
item.disabled = false;
stationStandList.forEach(nor => {
if (item.code == nor.deviceCode) {
item.disabled = true;
}
});
});
},
handlerDeviceList(data) {
this.stationStandList = [data];
}
}
};
@ -858,7 +945,7 @@ export default {
.Scheduling {
.el-input__inner {
height: 30px;
width: 140px;
width: 180px;
}
}
}