Merge remote-tracking branch 'origin/test'

# Conflicts:
#	src/jmapNew/theme/datie_02/menus/menuButton.vue
This commit is contained in:
fan 2022-07-26 18:08:14 +08:00
commit ff9101233c
69 changed files with 2764 additions and 355 deletions

View File

@ -513,3 +513,10 @@ export function queryIscsResourcesByGroup(group, params) {
params
});
}
/** 获取机器人驾驶参数 */
export function getRobotDrivingParam(simulationId, groupNumber) {
return request({
url: `/simulation/${simulationId}/driveParam/${groupNumber}`,
method: 'get'
});
}

View File

@ -89,7 +89,7 @@ class SkinCode extends defaultStyle {
unCommunicationOccupiedColor: '#FF0000', // 区段非通讯车占用颜色 (红色)
routeLockColor: '#FFFFFF', // 区段进路锁定颜色 (白色)
faultLockColor: '#006400', // 区段故障锁定颜色
faultLockColor: '#00FF00', // 区段故障锁定颜色
undefinedColor: '#0071C1', // 区段未定义颜色
blockColor: '#00FF00', // 区段封锁颜色

File diff suppressed because it is too large Load Diff

View File

@ -85,15 +85,20 @@ class Jlmap {
}
reloadStyle(lineCode) {
if (this.lineCode !== lineCode) {
this.handleModelData(this.lineCode, lineCode);
this.reloadModelData(this.lineCode, lineCode);
}
this.lineCode = lineCode;
this.style = selectLineCode(lineCode);
this.$zr.dom.style.backgroundColor = this.style.backgroundColor || '#000';
}
// 处理私有属性
handleModelData(oldLineCode, lineCode) {
reloadModelData(oldLineCode, lineCode) {
const propConvert = lineCode ? Vue.prototype.$theme.loadPropConvert(lineCode) : null;
const oldPropConvert = oldLineCode ? Vue.prototype.$theme.loadPropConvert(oldLineCode) : null;
for (const deviceCode in this.mapDevice) {
oldPropConvert.deletePrivateProps(this.mapDevice[deviceCode]);
propConvert.initPrivateProps(this.mapDevice[deviceCode]);
}
}
loadDefaultState() { // 加载默认状态
const defaultStateDict = {};

View File

@ -1163,7 +1163,7 @@ class Signal extends Group {
// 灯颜色状态显示
exec(SignalAspectMap[model.signalAspect], this.lamps, this.style);
// 灯是否点灯显示
this.lamps.forEach(lamp => { lamp.setStop(model.signalLight); });
// this.lamps.forEach(lamp => { lamp.setStop(model.signalLight); });
}
if (model.hasSelected) {
this.sigName && this.sigName.setAnimationStart(this.style.Signal.text.defaultColor);

View File

@ -246,16 +246,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -450,7 +450,7 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -43,9 +43,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -56,9 +56,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -66,6 +66,16 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -159,16 +159,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -346,7 +346,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -46,9 +46,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -59,9 +59,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -69,6 +69,16 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -142,16 +142,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -317,7 +317,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -43,9 +43,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -56,9 +56,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -66,6 +66,16 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -16,6 +16,20 @@
<el-row>
<el-form ref="form" :model="formModel" :rules="rules">
<el-col :span="24">
<el-form-item prop="speedLimit" label="限速:">
<el-input v-model="formModel.speedLimit" style="width: 115px;margin-right: 10px;" size="small" />
<span>km/h</span>
<el-tooltip style="margin-left: 10px;" effect="dark" content="值为5-65之间不填为取消限速" placement="top-start">
<i class="el-icon-warning" />
</el-tooltip>
</el-form-item>
<el-form-item prop="through" label="">
<el-radio-group v-model="formModel.through">
<el-radio :label="1">越红灯行驶</el-radio>
<el-radio :label="2">越引导行驶</el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="targetDeviceCode" label="目的地:">
<el-select ref="faultSelect1" v-model="formModel.targetDeviceCode" filterable size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
<el-option
@ -85,6 +99,7 @@ import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
import { deviceFaultType, deviceType} from '@/scripts/cmdPlugin/Config';
import { menuOperate } from '@/jmapNew/theme/components/utils/menuOperate';
import { mapGetters } from 'vuex';
import { getRobotDrivingParam } from '@/api/simulation';
export default {
name: 'SwitchControl',
@ -109,6 +124,8 @@ export default {
faultList: [],
form: { faultType: ''},
formModel: {
speedLimit: '',
through: 0,
targetDeviceCode: ''
},
groupNumber: '',
@ -146,7 +163,7 @@ export default {
} else if (this.operation == OperationEvent.MixinCommand.cancelStoppage.menu.operation) {
return '取消故障';
} else if (this.operation == OperationEvent.MixinCommand.collocation.menu.operation) {
return '驾驶';
return '驾驶';
}
return '';
}
@ -203,7 +220,8 @@ export default {
];
} else if (selected._type === 'Section' && this.popClass === 'datie-02__systerm') {
this.faultList = [
{label: '电路故障', value: 'FAULT'}
{label: '电路故障', value: 'FAULT'},
{label: '故障锁闭', value: 'FAULT_LOCK'}
// {label: '', value: 'CBTC_OCCUPIED_FAULT'}
];
} else if (selected._type === 'Switch' && this.popClass === 'haerbin-01__systerm') {
@ -220,7 +238,7 @@ export default {
{label: '失表', value: 'SPLIT'},
{label: '定位失表', value: 'NORMAL_SPLIT'},
{label: '反位失表', value: 'REVERSE_SPLIT'},
// {label: '', value: 'SQUEEZE'},
{label: '挤岔', value: 'SQUEEZE'},
// {label: '', value: 'CBTC_OCCUPIED_FAULT'},
{label: '电路故障', value: 'AXLE_FAULT'}
];
@ -277,6 +295,11 @@ export default {
if (judge) {
this.judge = judge;
this.groupNumber = selected.groupNumber;
getRobotDrivingParam(this.$route.query.group, this.groupNumber).then(resp => {
this.formModel.speedLimit = resp.data.speedLimit ? resp.data.speedLimit : '';
this.formModel.through = resp.data.through;
this.formModel.targetDeviceCode = resp.data.targetDeviceCode ? resp.data.targetDeviceCode : '';
});
}
}
if (selected._type) {
@ -344,8 +367,12 @@ export default {
cmdType: menuOperate.Common.collocation.cmdType,
param: {
groupNumber: this.groupNumber,
param: {
speedLimit: this.formModel.speedLimit,
through: this.formModel.through,
targetDeviceCode: this.formModel.targetDeviceCode
}
}
};
this.sendCommand(setp);
},

View File

@ -45,7 +45,7 @@
<script>
import { mapGetters } from 'vuex';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { commitTrainSend } from '@/jmapNew/theme/components/utils/menuOperate';
// import { commitTrainSend } from '@/jmapNew/theme/components/utils/menuOperate';
import {menuOperate, commitOperate} from '../../utils/menuOperate';
export default {
name: 'SwitchHookLock',
@ -125,8 +125,8 @@ export default {
},
commit() {
this.loading = true;
if (this.operation) {
commitOperate(menuOperate.Switch.hookLock, {normal: this.normal}, 2).then(({valid})=>{
// if (this.operation) {
commitOperate(menuOperate.Switch.hookLock, {normal: this.normal, switchCode: this.selected.code}, 2).then(({valid})=>{
this.loading = false;
if (valid) {
this.doClose();
@ -137,25 +137,25 @@ export default {
console.error(error);
this.$refs.noticeInfo.doShow();
});
} else {
const group = this.$route.query.group;
const param = {
commandType: 'Switch_Hook_Lock',
// Switch_Hook_Lock
targetMemberId: this.targetMemberId,
params: {
switchCode: this.selected.code,
normal: this.normal
}
};
commitTrainSend(group, param).then(({valid, operate})=>{
this.doClose();
}).catch((error) => {
console.error(error);
this.$refs.noticeInfo.doShow();
this.doClose();
});
}
// } else {
// const group = this.$route.query.group;
// const param = {
// commandType: 'Switch_Hook_Lock',
// // Switch_Hook_Lock
// targetMemberId: this.targetMemberId,
// params: {
// switchCode: this.selected.code,
// normal: this.normal
// }
// };
// commitTrainSend(group, param).then(({valid, operate})=>{
// this.doClose();
// }).catch((error) => {
// console.error(error);
// this.$refs.noticeInfo.doShow();
// this.doClose();
// });
// }
}
}

View File

@ -15,7 +15,7 @@
<div style="width: 96%;">
<el-form-item label="限速值:" label-width="95px" prop="speedLimit">
<div style="display: flex;align-items: center;">
<el-input v-model="addModel.speedLimit" style="width: 130px;margin-right: 10px;" size="small" />
<el-input v-model="addModel.speedLimit" style="width: 115px;margin-right: 10px;" size="small" />
<span>km/h</span>
<el-tooltip style="margin-left: 10px;" effect="dark" content="值为5-65之间-1为取消限速" placement="top-start">
<i class="el-icon-warning" />
@ -135,7 +135,7 @@ export default {
};
commitTrainSend(group, param).then(({valid, operate})=>{
this.doClose();
}).catch((error) => {
}).catch(() => {
this.$refs.noticeInfo.doShow();
this.doClose();
});

View File

@ -0,0 +1,133 @@
<template>
<el-dialog
v-dialogDrag
:class="popClass"
class="stand-stop-time"
:title="title"
:visible.sync="show"
width="340px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<el-form ref="form" size="small" label-width="80px" :model="addModel" @submit.native.prevent>
<div style="width: 96%;">
<el-form-item label="是否EB:" label-width="95px" prop="speedLimit">
<div style="display: flex;align-items: center;">
<el-checkbox v-model="addModel.eb" />
</div>
</el-form-item>
</div>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button type="primary" :loading="loading" @click="commit">确定</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button @click="doClose"> </el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" :pop-class="popClass" />
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import NoticeInfo from '../childDialog/noticeInfo';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default {
name: 'TrainAddPlan',
components: {
NoticeInfo
},
props: {
popClass: {
type: String,
default() {
return '';
}
}
},
data() {
return {
selected: {},
addModel: {
eb: false //
},
dialogShow: false,
loading: false
};
},
computed: {
...mapGetters('training', [
'memberList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
title() {
return '输入限速值';
}
},
watch:{
'$store.state.map.keyboardEnterCount': function (val) {
if (this.dialogShow && this.popClass === 'ningbo-01__systerm') {
this.commit();
}
}
},
mounted() {
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.groupNumber = selected.groupNumber;
this.addModel = { eb:false };
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$root.$emit('dialogClose', this.selected);
this.$store.dispatch('training/emitTipFresh');
this.$store.dispatch('map/setTrainWindowShow', false);
},
commit() {
this.$refs['form'].validate((valid) => {
if (valid) {
console.log(this.groupNumber, '----------');
commitOperate(menuOperate.Train.driverStop, {groupNumber:this.groupNumber, eb: this.addModel.eb}, 3)
.then(({ valid }) => {
this.loading = false;
if (valid) {
this.doClose();
}
})
.catch(() => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow();
});
} else {
return false;
}
});
}
}
};
</script>
<style scoped>
.foshan-01__systerm .el-dialog .base-label {
background: rgba(0, 0, 0, x);
position: relative;
left: -5px;
top: -18px;
padding: 0 5px;
background-color: #F0F0F0;
}
</style>

View File

@ -526,6 +526,10 @@ export const menuOperate = {
// 删车次号 (大铁线路 车组号)
operation: OperationEvent.Train.removeTrip.menu.operation,
cmdType: CMD.Train.CMD_TRAIN_REMOVE_TRAIN_TRACE
},
driverStop: {
operation: OperationEvent.Train.driverStop.menu.operation,
cmdType: CMD.Driver.CMD_DRIVER_STOP
}
},
CTC: {

View File

@ -43,22 +43,21 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
}
return model;
}
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -66,6 +65,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -33,7 +33,7 @@
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">与中心通信正常</div>
</div>
</div>
<div v-if="$store.state.training.prdType == '01'&& !isCtc" style="width: 1405px;position: fixed;height: 30px;background: #808080;z-index: 9;bottom: 0;left: 0;display: flex;">
<div v-if="$store.state.training.prdType == '01'&& !isCtc" style="width: 1560px;position: fixed;height: 30px;background: #808080;z-index: 9;bottom: 0;left: 0;display: flex;">
<div style="width: 60%;height: 30px;line-height: 30px;text-align: center;">提示信息窗</div>
<div style="width: 40%;height: 30px;line-height: 30px;text-align: center;border-left: 2px #ccc solid;">{{ '操控A:主机' + ' ' + dateString + ' ' + time }}</div>
</div>

View File

@ -71,16 +71,16 @@
<center><b>道岔解封</b></center>
</span>
</button>
<!--<button :id="Signal.signalLight.menuButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.signalLight.menuButton.operation, ['Signal'])">-->
<!--<span style="color: black">-->
<!--<center><b>点灯</b></center>-->
<!--</span>-->
<!--</button>-->
<!--<button :id="Signal.signalDestroy.menuButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.signalDestroy.menuButton.operation, ['Signal'])">-->
<!--<span style="color:#800000">-->
<!--<center><b>灭灯</b></center>-->
<!--</span>-->
<!--</button>-->
<!-- <button :id="Signal.signalTurnOn.menuButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.signalTurnOn.menuButton.operation, ['Signal'])">-->
<!-- <span style="color: black">-->
<!-- <center><b>点灯</b></center>-->
<!-- </span>-->
<!-- </button>-->
<!-- <button :id="Signal.signalTurnOff.menuButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="buttonDown(Signal.signalTurnOff.menuButton.operation, ['SignalButton'])">-->
<!-- <span style="color:#800000">-->
<!-- <center><b>灭灯</b></center>-->
<!-- </span>-->
<!-- </button>-->
<button :id="Station.stationMasterLock.menuButton.domId" class="button_box" :style="{width: width+'px', backgroundColor: sGuideMasterLock? guideColorDown: guideColorUp}" @click="guideLockLeftButtonDown()">
<span style="color: #800000">
<center><b>S引导总锁</b></center>
@ -240,6 +240,10 @@ export default {
return CMD.Signal.CMD_SIGNAL_SET_ROUTE;
case this.Signal.guide.button.operation: //
return CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE;
case this.Signal.signalTurnOn.menuButton.operation:
return CMD.Signal.CMD_SIGNAL_TURN_ON;
case this.Signal.signalTurnOff.menuButton.operation:
return CMD.Signal.CMD_SIGNAL_TURN_OFF;
}
return '';
}
@ -272,11 +276,11 @@ export default {
}
},
'$store.state.map.showCentralizedStationCode': function(val) {
if (val){
if (val) {
const station = this.$store.getters['map/getDeviceByCode'](val);
this.$store.getters['map/checkStationGuideMaster'](station.code, station.sGuideMasterLock, station.xGuideMasterLock);
}
},
}
},
beforeDestroy() {
this.routeDataMap = null;
@ -377,7 +381,8 @@ export default {
operation: operation
};
//
const operationList = [this.Signal.humanTrainRoute.button.operation, this.Section.fault.button.operation];
const operationList = [this.Signal.humanTrainRoute.button.operation, this.Section.fault.button.operation, this.Section.defectiveShunting.button.operation,
this.Signal.signalTurnOff.menuButton.operation];
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.operation = operation;
@ -527,7 +532,7 @@ export default {
val: model.code,
cmdType: CMD.Signal.CMD_SIGNAL_HUMAN_RELEASE_ROUTE
};
const signal = this.$store.getters['map/getDeviceByCode'](model.signalCode || model.code);
// const signal = this.$store.getters['map/getDeviceByCode'](model.signalCode || model.code);
if (model._type === 'SignalButton' && model.type === 'PICK') {
operate.param = {signalCode: model.signalCode};
this.sendCommand(operate);
@ -625,6 +630,28 @@ export default {
this.sendCommand(operate);
}
},
handleSignalTurnOn(model) {
const operate = {
over: true,
code: model.code,
operation: this.$store.state.menuOperation.buttonOperation,
cmdType: CMD.Signal.CMD_SIGNAL_TURN_ON,
param: {signalCode: model.code}
};
this.sendCommand(operate);
},
handleSignalTurnOff(model) {
if (model.type === 'PICK') {
const operate = {
over: true,
code: model.code,
operation: this.$store.state.menuOperation.buttonOperation,
cmdType: CMD.Signal.CMD_SIGNAL_TURN_OFF,
param: {signalCode: model.signalCode}
};
this.sendCommand(operate);
}
},
// CHANGE_DIRECTION
selectedChange() {
//
@ -654,6 +681,12 @@ export default {
this.handelSignalBlockOrUnblock(model);
} else if (buttonOperation === this.Section.fault.button.operation) {
this.handelFaultSection(model);
} else if (buttonOperation === this.Section.defectiveShunting.button.operation) {
this.handelDefectiveShunting(model);
} else if (buttonOperation === this.Signal.signalTurnOn.menuButton.operation) {
this.handleSignalTurnOn(model);
} else if (buttonOperation === this.Signal.signalTurnOff.menuButton.operation) {
this.handleSignalTurnOff(model);
} else {
this.clearOperate();
}

View File

@ -86,9 +86,15 @@ export default {
},
{
label: '封锁/解封',
handler: '',
cmdType: ''
handler: this.lockOrUnlock
// cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
},
// {
// label: '',
// handler: '',
// cmdType: ''
// },
{
label: '总人解',
handler: this.humanTrainRoute,
@ -312,14 +318,14 @@ export default {
});
},
lockOrUnlock() {
if (this.selected.lock) {
commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
if (this.selected.blockade) {
commitOperate(menuOperate.Signal.unlock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}
});
} else {
commitOperate(menuOperate.Signal.unlock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
commitOperate(menuOperate.Signal.lock, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.routeControl.doShow(operate, this.selected);
}

View File

@ -9,6 +9,8 @@
<train-delete-number ref="trainDeleteNumber" />
<train-detail-info ref="trainDetailInfo" />
<set-fault ref="setFault" pop-class="chengdou-03__systerm" />
<speed-limit ref="speedLimit" pop-class="chengdou-03__systerm" />
<train-stop ref="trainStop" pop-class="chengdou-03__systerm" />
<!-- <train-set-plan ref="trainSetPlan" /> -->
<update-trip ref="updateTrip" />
</div>
@ -33,6 +35,8 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import { menuOperate, commitOperate, commitTrainSend } from '@/jmapNew/theme/components/utils/menuOperate';
import SpeedLimit from '@/jmapNew/theme/components/menus/dialog/trainSpeedLimit';
import TrainStop from '@/jmapNew/theme/components/menus/dialog/trainStop';
export default {
name: 'MenuTrain',
@ -46,7 +50,9 @@ export default {
TrainDeleteNumber,
TrainDetailInfo,
SetFault,
UpdateTrip
UpdateTrip,
SpeedLimit,
TrainStop
// TrainSetPlan
},
mixins: [
@ -191,9 +197,13 @@ export default {
handler: this.handleOverEedLight
},
// {
// label: '',
// handler: this.handleDriveTo
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '驾驶',
handler: this.handleDriveTo
},
{
label: '换端',
handler: this.handleTurnDirection
@ -312,6 +322,9 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
limitSpeed() {
const operate = {
@ -539,7 +552,7 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
@ -575,18 +588,11 @@ export default {
});
},
handleParkingTrain() {
const group = this.$route.query.group;
const param = {
commandType: 'Parking_Train',
targetMemberId: this.memberList.find(ele => ele.deviceCode == this.selected.code).id,
params: {}
};
commitTrainSend(group, param).then(({valid, operate}) => {
}).catch((error)=> {
console.error(error);
this.$refs.noticeInfo.doShow();
commitOperate(menuOperate.Train.driverStop, {groupNumber:this.selected.groupNumber}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.trainStop.doShow(operate, this.selected);
}
});
},
modifyTripNumber() {
commitOperate(menuOperate.Train.updateTrip, {groupNumber:this.selected.groupNumber}, 0).then(({valid, operate})=>{
@ -597,8 +603,7 @@ export default {
},
removeTripNumber() {
commitOperate(menuOperate.Train.removeTrip, {groupNumber:this.selected.groupNumber}, 3).then(({valid, operate})=>{
if (valid) {
}
// if (valid) {}
}).catch((error)=> {
console.error(error);
this.$refs.noticeInfo.doShow();

View File

@ -43,9 +43,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -56,9 +56,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -66,6 +66,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -11,6 +11,7 @@
<set-fault ref="setFault" pop-class="chengdou-03__systerm" />
<!-- <train-set-plan ref="trainSetPlan" /> -->
<update-trip ref="updateTrip" />
<train-stop ref="trainStop" pop-class="chengdou-03__systerm" />
</div>
</template>
@ -33,6 +34,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import { menuOperate, commitOperate, commitTrainSend } from '@/jmapNew/theme/components/utils/menuOperate';
import TrainStop from '@/jmapNew/theme/components/menus/dialog/trainStop';
export default {
name: 'MenuTrain',
@ -46,7 +48,8 @@ export default {
TrainDeleteNumber,
TrainDetailInfo,
SetFault,
UpdateTrip
UpdateTrip,
TrainStop
// TrainSetPlan
},
mixins: [
@ -191,7 +194,7 @@ export default {
handler: this.handleOverEedLight
},
// {
// label: '',
// label: '',
// handler: this.handleDriveTo
// },
{
@ -536,7 +539,7 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
@ -572,18 +575,11 @@ export default {
});
},
handleParkingTrain() {
const group = this.$route.query.group;
const param = {
commandType: 'Parking_Train',
targetMemberId: this.memberList.find(ele => ele.deviceCode == this.selected.code).id,
params: {}
};
commitTrainSend(group, param).then(({valid, operate}) => {
}).catch((error)=> {
console.error(error);
this.$refs.noticeInfo.doShow();
commitOperate(menuOperate.Train.driverStop, {groupNumber:this.selected.groupNumber}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.trainStop.doShow(operate, this.selected);
}
});
},
modifyTripNumber() {
commitOperate(menuOperate.Train.updateTrip, {groupNumber:this.selected.groupNumber}, 0).then(({valid, operate})=>{

View File

@ -43,9 +43,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -56,9 +56,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -66,6 +66,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -43,9 +43,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -56,9 +56,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -66,6 +66,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -150,16 +150,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -330,7 +330,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -45,9 +45,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -58,9 +58,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -68,6 +68,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -124,16 +124,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -325,7 +325,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -45,9 +45,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -58,9 +58,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -68,6 +68,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -91,16 +91,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -295,7 +295,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -44,9 +44,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -57,9 +57,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -67,6 +67,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -91,16 +91,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -294,7 +294,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -44,9 +44,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -57,9 +57,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -67,6 +67,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -230,16 +230,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -406,7 +406,7 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -54,9 +54,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -67,9 +67,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -77,6 +77,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -231,16 +231,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -406,7 +406,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -54,9 +54,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -67,9 +67,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -77,6 +77,17 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -233,10 +233,10 @@ export default {
label: '确认运行至前方站',
handler: this.nextStation
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '越引导信号行驶',
handler: this.handleOverFuideSignal
@ -254,7 +254,7 @@ export default {
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -519,7 +519,7 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -54,9 +54,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -67,9 +67,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -77,6 +77,16 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -175,16 +175,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -464,7 +464,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -45,9 +45,9 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -58,9 +58,9 @@ class Model {
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
@ -68,6 +68,16 @@ class Model {
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -253,16 +253,16 @@ export default {
label: '开关门',
handler: this.handleOpenOrCloseDoor
},
{
label: '限速指令',
handler: this.handleSpeedLimit
},
// {
// label: '',
// handler: this.handleSpeedLimit
// },
{
label: '换端',
handler: this.handleTurnDirection
},
{
label: '驾驶',
label: '驾驶',
handler: this.handleDriveTo
},
{
@ -436,7 +436,7 @@ export default {
handleSpeedLimit() { //
this.$refs.speedLimit.doShow(this.selected);
},
//
//
handleDriveTo() {
commitOperate(menuOperate.Common.collocation, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {

View File

@ -48,29 +48,38 @@ class Model {
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
const modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
}
return model;
}
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
const modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
for (const prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
}
return model;
}
deletePrivateProps(model) {
if (model) {
const modelInitial = this.private[model._type];
if (modelInitial) {
for (const prop in modelInitial) {
delete model[prop];
}
}
}
}
}
export default new Model();

View File

@ -74,7 +74,14 @@ export default {
{label: '行调', value: 'DISPATCHER', enLabel: 'Dispatcher '},
{label: '上级部门', value: 'PARENT_DEPARTMENT', enLabel: 'Parent department'},
{label: '停车场信号楼', value: 'PARKING_LOT_SIGNAL_BUILDING', enLabel: 'Parking Signal Building'},
{label: '车站助理', value: 'STATION_ASSISTANT', enLabel: 'StationAssistant'}
{label: '车站助理', value: 'STATION_ASSISTANT', enLabel: 'StationAssistant'},
{label: '车站站长', value: 'STATION_MASTER', enLabel: 'StationMaster'},
{label: '车站信号员', value: 'STATION_SIGNALER', enLabel: 'StationSignaler'},
{label: '车站客运员', value: 'STATION_PASSENGER', enLabel: 'StationPassenger'},
{label: '车站扳道员', value: 'STATION_SWITCH_MAN', enLabel: 'StationSwitchMan'},
{label: '车站引导员', value: 'STATION_FACILITATOR', enLabel: 'StationFacilitator'},
{label: '车站工务工', value: 'STATION_WORKER', enLabel: 'StationWorker'},
{label: '设备管理员', value: 'DEVICE_MANAGER', enLabel: 'DeviceManager'}
],
releaseReview: [

View File

@ -168,7 +168,15 @@ export const SimulationType = {
STATION_SUPERVISOR: '车站值班员',
DRIVER: '司机',
MAINTAINER: '通号',
STATION_ASSISTANT: '车站助理'
STATION_ASSISTANT: '车站助理',
STATION_MASTER:'车站站长',
STATION_SIGNALER:'车站信号员',
STATION_PASSENGER:'车站客运员',
STATION_SWITCH_MAN:'车站扳道员',
STATION_FACILITATOR:'车站引导员',
STATION_WORKER:'车站工务工',
DEVICE_MANAGER:'设备管理员'
};
export const UrlConfig = {
displayNew: '/displayNew',

View File

@ -91,7 +91,8 @@ export default {
CMD_DRIVER_PRESELECTION_MODE_UP:{value:'Driver_Preselection_Mode_Up', label:'列车预选模式升'},
CMD_DRIVER_DOOR_MODE:{value:'Driver_Door_Mode', label:'列车门模式'},
CMD_DRIVER_DOOR_SELECTION:{value:'Driver_Door_Selection', label:'列车门选择'},
CMD_DRIVER_CONFIRM:{value:'Driver_Confirm', label:'确认'}
CMD_DRIVER_CONFIRM:{value:'Driver_Confirm', label:'确认'},
CMD_DRIVER_STOP:{value: 'Driver_Stop', label: '停车'}
},
// 信号机操作
@ -139,7 +140,11 @@ export default {
/** 设置保护 */
CMD_SIGNAL_SET_OVERLAP : {value: 'Signal_Set_Overlap', label: '设置保护'},
/** 冲突进路办理 */
CMD_SIGNAL_CONFLICT_ROUTE_SET_CONFIRM:{value: 'Signal_Conflict_Route_Set_Confirm', label: '冲突进路办理'}
CMD_SIGNAL_CONFLICT_ROUTE_SET_CONFIRM:{value: 'Signal_Conflict_Route_Set_Confirm', label: '冲突进路办理'},
/** 信号机点灯 */
CMD_SIGNAL_TURN_ON: {value: 'Signal_Turn_On', label: '信号机点灯'},
/** 信号机灭灯 */
CMD_SIGNAL_TURN_OFF: {value: 'Signal_Turn_Off', label: '信号机灭灯'}
},
// 物理区段操作
@ -391,25 +396,27 @@ export default {
CTC_CANCEL_DEPARTURE_NOTICE: {value: 'CTC_CANCEL_DEPARTURE_NOTICE', label: '取消发预'},
CTC_FINISH_DEPARTURE: {value: 'CTC_FINISH_DEPARTURE', label: '完成发点'},
CTC_CANCEL_DEPARTURE: {value: 'CTC_CANCEL_DEPARTURE', label: '取消发点'},
CTC_ASSIST_PRESS_DOWN_TURN_DIRECTION:{value:'ASSIST_PRESS_DOWN_TURN_DIRECTION', label:'改方'},
CTC_AUTO_TRIGGER: {value: 'CTC_AUTO_TRIGGER', label: '自动触发'},
CTC_ASSIST_PRESS_MAIN_ASSIST:{value: 'ASSIST_PRESS_MAIN_ASSIST', label: '总辅助'},
CTC_ASSIST_PRESS_RECEIVE_ASSIST:{value: 'ASSIST_PRESS_RECEIVE_ASSIST', label: '接辅助'},
CTC_ASSIST_PRESS_DELIVER_ASSIST:{value: 'ASSIST_PRESS_DELIVER_ASSIST', label: '发辅助'},
CTC_ASSIST_PRESS_BLOCK:{value: 'ASSIST_PRESS_BLOCK', label: '阻塞'},
CTC_ASSIST_PRESS_RESTORE:{value: 'ASSIST_PRESS_RESTORE', label: '复原'},
CTC_ASSIST_PRESS_ACCIDENT:{value: 'ASSIST_PRESS_ACCIDENT', label: '事故'},
CTC_ASSIST_PRESS_DOWN_TURN_DIRECTION:{value:'ASSIST_PRESS_DOWN_TURN_DIRECTION', label:'改方'},
// CTC_BATCH_MODIFY_RUN_PLAN:{value: 'CTC_BATCH_MODIFY_RUN_PLAN', label: '批量修改股道'},
CTC_MODIFY_SECTION:{value: 'CTC_MODIFY_SECTION', label: '修改股道'},
CTC_STATION_SEND_OUT_RUN_PLAN:{value: 'CTC_STATION_SEND_OUT_RUN_PLAN', label: '车站发送计划'},
CTC_CANCEL_TWINKLE:{value: 'CTC_CANCEL_TWINKLE', label: '车站取消红闪'},
// CTC_REMOVE_RUN_PLAN:{value: 'CTC_REMOVE_RUN_PLAN', label: '移除行车日志'},
CTC_MODIFY_ADJACENT_STATION:{value: 'CTC_MODIFY_ADJACENT_STATION', label: '修改邻站信息'},
CTC_MODIFY_TRIP_NUMBER:{value: 'CTC_MODIFY_TRIP_NUMBER', label: '修改车次号(大铁CTC)'},
CTC_SEND_NOTICE:{value: 'CTC_SEND_NOTICE', label: '发送发车预告'},
CTC_AGREE_NOTICE:{value: 'CTC_AGREE_NOTICE', label: '同意发车预告'},
CTC_LOG_CANCEL_ARRIVE:{value: 'CTC_LOG_CANCEL_ARRIVE', label: '取消到达'},
CTC_LOG_CANCEL_DEPARTURE:{value: 'CTC_LOG_CANCEL_DEPARTURE', label: '取消出发'},
CTC_LOG_CANCEL_BLOCK:{value: 'CTC_LOG_CANCEL_BLOCK', label: '取消闭塞'},
@ -428,17 +435,22 @@ export default {
CTC_RELEASE_RUN_PLAN_TO_SIMULATION:{value: 'CTC_RELEASE_RUN_PLAN_TO_SIMULATION', label: '运行计划发布至CTC'},
CTC_SET_ROUTE:{value: 'CTC_SET_ROUTE', label: 'CTC办理进路'},
CTC_ZONE_SAVE_RUN_PLAN:{value:'CTC_ZONE_SAVE_RUN_PLAN', label: '调度台添加行车计划'},
CTC_ZONE_DELETE_RUN_PLAN:{value:'CTC_ZONE_DELETE_RUN_PLAN', label: '调度台删除行车计划'},
CTC_ZONE_RELEASE_ALL_RUN_PLAN:{value:'CTC_ZONE_RELEASE_ALL_RUN_PLAN', label: '调度台发布所有行车计划'},
CTC_ZONE_RELEASE_STATION_RUN_PLAN:{value:'CTC_ZONE_RELEASE_STATION_RUN_PLAN', label: '调度台发布车站行车计划'},
CTC_STATION_SIGN_RUN_PLAN:{value:'CTC_STATION_SIGN_RUN_PLAN', label: '车站签收阶段计划'},
CTC_ZONE_SAVE_TRACK_SECTION:{value:'CTC_ZONE_SAVE_TRACK_SECTION', label: '调度台行车计划修改股道'},
CTC_ZONE_SAVE_TRIP_NUMBER:{value:'CTC_ZONE_SAVE_TRIP_NUMBER', label: '调度台行车计划修改车次'},
CTC_ZONE_SAVE_PLAN_TIME:{value:'CTC_ZONE_SAVE_PLAN_TIME', label: '调度台行车计划修改时间'},
CTC_ZONE_SAVE_DIRECTION:{value:'CTC_ZONE_SAVE_DIRECTION', label: '调度台行车计划修改出入口'},
CTC_ZONE_SAVE_STATION:{value:'CTC_ZONE_SAVE_STATION', label: '调度台行车计划修改到发车站'}
CTC_ZONE_SAVE_STATION:{value:'CTC_ZONE_SAVE_STATION', label: '调度台行车计划修改到发车站'},
CTC_ZONE_SAVE_RUN_PLAN:{value:'CTC_ZONE_SAVE_RUN_PLAN', label: '调度台添加行车计划'},
CTC_ZONE_DELETE_RUN_PLAN:{value:'CTC_ZONE_DELETE_RUN_PLAN', label: '调度台删除行车计划'},
CTC_ZONE_RELEASE_ALL_RUN_PLAN:{value:'CTC_ZONE_RELEASE_ALL_RUN_PLAN', label: '调度台发布所有行车计划'},
CTC_ZONE_RELEASE_STATION_RUN_PLAN:{value:'CTC_ZONE_RELEASE_STATION_RUN_PLAN', label: '调度台发布车站行车计划'},
CTC_QUERY_DISPATCH_COMMAND:{value:'CTC_QUERY_DISPATCH_COMMAND', label: '调度台命令查询'},
CTC_SEND_DISPATCH_COMMAND:{value:'CTC_SEND_DISPATCH_COMMAND', label: '调度台命令发送'},
CTC_SIGN_DISPATCH_COMMAND:{value:'CTC_SIGN_DISPATCH_COMMAND', label: '调度台命令签收'},
CTC_READ_DISPATCH_COMMAND:{value:'CTC_READ_DISPATCH_COMMAND', label: '调度台命令已读'}
},
RAIL: {

View File

@ -46,7 +46,7 @@ class CommandHandle {
// },
Train_Trust: {
operate: 'Train_Trust',
paramList:[{name: 'groupNumber'}, {name: 'targetDeviceCode'}],
paramList:[{name: 'groupNumber'}, {name: 'param'}],
simulationRole: 'Center',
controlMode: ['OperateCenterControl'],
conditionList: []
@ -73,6 +73,10 @@ class CommandHandle {
Train_Calculate_Interval: {
operate: 'Train_Calculate_Interval',
paramList: [{name: 'calculateParam'}]
},
Driver_Stop: {
operate: 'Driver_Stop',
paramList: [{name: 'groupNumber'}, {name: 'eb'}]
}
}
};

View File

@ -1774,17 +1774,17 @@ export const OperationEvent = {
}
},
// 点灯 (大铁)
signalLight: {
signalTurnOn: {
menuButton: {
operation: '3231',
domId: '_Tips-Signal-signalLight-MenuButton{BOTTOM}'
domId: '_Tips-Signal-signalTurnOn-MenuButton{BOTTOM}'
}
},
// 灭灯 (大铁)
signalDestroy: {
signalTurnOff: {
menuButton: {
operation: '3232',
domId: '_Tips-Signal-signalDestroy-MenuButton{BOTTOM}'
domId: '_Tips-Signal-signalTurnOff-MenuButton{BOTTOM}'
}
}
},
@ -3431,6 +3431,12 @@ export const OperationEvent = {
operation: '70v',
domId: '_Tips-Train-removeTrip-Menu'
}
},
driverStop: {
menu: {
operation: '70w',
domId: '_Tips-Train-driverStop-Menu'
}
}
},

View File

@ -181,7 +181,7 @@ export default {
},
beforeDestroy() {},
mounted() {
this.searchCmd();
// this.searchCmd();
},
methods:{
tableRowClassName({row, rowIndex}) {

View File

@ -388,6 +388,14 @@ export default {
const maintainerList = {};
const parentDepartmentList = {};
const parkingLotSignalBuilding = {};
const stationAssistant = {};
const stationMaster = {};
const stationSignaler = {};
const stationPassenger = {};
const stationSwitchMan = {};
const stationFacilitator = {};
const stationWorker = {};
const deviceManager = {};
val.forEach(item => {
const device = this.$store.getters['map/getDeviceByCode'](item.deviceCode);
this.memberData[item.id]['active'] = false;
@ -436,6 +444,46 @@ export default {
this.memberData[item.id].labelName = '停车场信号楼' + (item.name || '');
parkingLotSignalBuilding[item.id] = this.memberData[item.id];
break;
case 'STATION_ASSISTANT':
this.memberData[item.id].label = '车站助理-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站助理-' + device.name + ( item.name || '');
stationAssistant[item.id] = this.memberData[item.id];
break;
case 'STATION_MASTER':
this.memberData[item.id].label = '车站站长-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站站长-' + device.name + (item.name || '');
stationMaster[item.id] = this.memberData[item.id];
break;
case 'STATION_SIGNALER':
this.memberData[item.id].label = '车站信号员-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站信号员-' + device.name + (item.name || '');
stationSignaler[item.id] = this.memberData[item.id];
break;
case 'STATION_PASSENGER':
this.memberData[item.id].label = '车站客运员-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站客运员-' + device.name + (item.name || '');
stationPassenger[item.id] = this.memberData[item.id];
break;
case 'STATION_SWITCH_MAN':
this.memberData[item.id].label = '车站扳道员-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站扳道员-' + device.name + (item.name || '');
stationSwitchMan[item.id] = this.memberData[item.id];
break;
case 'STATION_FACILITATOR':
this.memberData[item.id].label = '车站引导员-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站引导员-' + device.name + (item.name || '');
stationFacilitator[item.id] = this.memberData[item.id];
break;
case 'STATION_WORKER':
this.memberData[item.id].label = '车站工务工-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '车站工务工-' + device.name + (item.name || '');
stationWorker[item.id] = this.memberData[item.id];
break;
case 'DEVICE_MANAGER':
this.memberData[item.id].label = '设备管理员-' + device.name + (item.name || '');
this.memberData[item.id].labelName = '设备管理员-' + device.name + (item.name || '');
deviceManager[item.id] = this.memberData[item.id];
break;
}
});
// { label: '', value: 'allConcentrateStation', active: false, sign: 'DEVICE_STATION' },
@ -483,7 +531,56 @@ export default {
id: 'parkingLotSignalBuilding',
type: 'role',
children: parkingLotSignalBuilding
}];
},
{
label: '车站助理',
id: 'stationAssistant',
type: 'role',
children: stationAssistant
},
{
label: '车站站长',
id: 'stationMaster',
type: 'role',
children: stationMaster
},
{
label: '车站信号员',
id: 'stationSignaler',
type: 'role',
children: stationSignaler
},
{
label: '车站客运员',
id: 'stationPassenger',
type: 'role',
children: stationPassenger
},
{
label: '车站扳道员',
id: 'stationSwitchMan',
type: 'role',
children: stationSwitchMan
},
{
label: '车站引导员',
id: 'stationFacilitator',
type: 'role',
children: stationFacilitator
},
{
label: '车站工务工',
id: 'stationWorker',
type: 'role',
children: stationWorker
},
{
label: '设备管理员',
id: 'deviceManager',
type: 'role',
children: deviceManager
}
];
this.initCommonMemberList();
this.filterNode();
// this.$nextTick(() => {
@ -1016,6 +1113,14 @@ export default {
const temMaintainerList = [];
const temDriverList = [];
const temDepotDispatcherList = [];
const temStationAssistList = [];
const temStationMasterList = [];
const temStationSignalerList = [];
const temStationPassengerList = [];
const temStationSwitchManList = [];
const temStationFacilitatorList = [];
const temStationWorkerList = [];
const temDeviceManagerList = [];
this.$store.state.training.memberList.forEach(item =>{
switch (item.type) {
case 'DISPATCHER':
@ -1033,9 +1138,35 @@ export default {
case 'DEPOT_DISPATCHER':
temDepotDispatcherList.push({memberId: item.id, connect:true });
break;
case 'STATION_ASSISTANT':
temStationAssistList.push({memberId: item.id, connect:true });
break;
case 'STATION_MASTER':
temStationMasterList.push({memberId: item.id, connect:true });
break;
case 'STATION_SIGNALER':
temStationSignalerList.push({memberId: item.id, connect:true });
break;
case 'STATION_PASSENGER':
temStationPassengerList.push({memberId: item.id, connect:true });
break;
case 'STATION_SWITCH_MAN':
temStationSwitchManList.push({memberId: item.id, connect:true });
break;
case 'STATION_FACILITATOR':
temStationFacilitatorList.push({memberId: item.id, connect:true });
break;
case 'STATION_WORKER':
temStationWorkerList.push({memberId: item.id, connect:true });
break;
case 'DEVICE_MANAGER':
temDeviceManagerList.push({memberId: item.id, connect:true });
break;
}
});
this.commonMemberList = [...temDispatcherList, ...temStationSupervisorList, ...temMaintainerList, ...temDriverList, ...temDepotDispatcherList];
this.commonMemberList = [...temDispatcherList, ...temStationSupervisorList, ...temMaintainerList, ...temDriverList, ...temDepotDispatcherList,
...temStationAssistList, ...temStationMasterList, ...temStationSignalerList, ...temStationPassengerList, ...temStationSwitchManList,
...temStationFacilitatorList, temStationWorkerList, temDeviceManagerList];
if (this.userRole == 'AUDIENCE' || this.commonConversation) {
this.conversitionMemberList = [];
this.messageList = [...this.commonMessageList];

View File

@ -15,7 +15,7 @@ export function covertMemberData (activeTrainList, resp) {
lastData = JSON.parse(lastData);
const lastMemberList = [];
// const electricDispatcherList = [];
const deviceListData = [[], [], [], [], [], [], [], []];
const deviceListData = [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []];
const driverList = [];
lastData.forEach((member, index)=>{
if (member.userId && member.userId == store.state.user.id) {
@ -37,7 +37,7 @@ export function covertMemberData (activeTrainList, resp) {
member.label = member.type + name + userName;
member.normalName = member.type + name;
}
const deviceType = ['行调', '通号', '行值', '司机', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼'];
const deviceType = ['行调', '通号', '行值', '司机', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼', '车站助理', '车站站长', '车站信号员', '车站客运员', '车站扳道员', '车站引导员', '车站工务工', '设备管理员'];
const deviceTypeIndex = deviceType.indexOf(member.type);
if (deviceTypeIndex >= 0) {
if (deviceTypeIndex == 3) {

View File

@ -5,7 +5,7 @@
<el-button-group ref="button_group_box" class="button_group_box" :style="`margin-left:-${btnWidth}px`">
<!-- 地图错误判断 -->
<!-- 设备视图 -->
<el-button v-if="jl3dmodelShow && !isContest && project !== 'bjd' && project !== 'teaching'" size="small" @click="jumpjlmap3dmodel">{{ jl3dmodel }}</el-button>
<el-button v-if="jl3dmodelShow && !isContest && project !== 'bjd' && $route.query.lineCode !== '16' && project !== 'teaching'" size="small" @click="jumpjlmap3dmodel">{{ jl3dmodel }}</el-button>
<!-- 三维视图/数字沙盘 -->
<el-button v-if="jl3dnameShow && !isContest && project !== 'bjd' && $route.query.lineCode !== '16' && project !== 'teaching'" size="small" @click="jumpjlmap3d">{{ jl3dname }}</el-button>
<!-- cctv视图 -->

View File

@ -193,6 +193,79 @@ export default {
}
case 'PARKING_LOT_SIGNAL_BUILDING': {
member.label = '停车场信号楼' + (member.name ? member.name : '');
break;
}
case 'STATION_ASSISTANT': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站助理-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
case 'STATION_MASTER': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站站长-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
case 'STATION_SIGNALER': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站信号员-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
case 'STATION_PASSENGER': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站客运员-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
case 'STATION_SWITCH_MAN': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站扳道员-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
case 'STATION_FACILITATOR': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站引导员-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
case 'STATION_WORKER': {
// member.label = '' + (member.name ? member.name : '');
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '车站工务工-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
break;
}
case 'DEVICE_MANAGER': {
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (device) {
member.label = '设备管理员-' + device.name + (member.name ? member.name : '');
member.deviceName = device.name;
}
// member.label = '' + (member.name ? member.name : '');
break;
}
}
});

View File

@ -1,17 +1,21 @@
<template>
<div class="main" :style="{width: canvasWidth+'px',height:'100%',position:'absolute',overflow:'hidden'}">
<div class="main" :style="{width: canvasWidth+'px'}">
<template>
<transition name="el-zoom-in-bottom">
<map-system-draft ref="mapCanvas" @back="back" />
<map-system-draft v-show="!specialDispatch" ref="mapCanvas" @back="back" />
</transition>
<menu-demon v-if="isDemon" ref="menuDemon" :offset="offset" :offset-bottom="offsetBottom" :data-error="dataError" :text-status-height="textStatusHeight" @start="start" @end="end" />
<menu-lesson v-if="isLesson" ref="lessonMenu" :offset="offset" :data-error="dataError" :offset-bottom="offsetBottom" :tip-bottom="tipBottom" />
<menu-exam v-if="isExam" ref="menuExam" :offset="offset" :data-error="dataError" :offset-bottom="offsetBottom" />
<menu-script v-if="isScript" ref="menuScript" :offset-bottom="offsetBottom" :offset="offset" :text-status-height="textStatusHeight" :data-error="dataError" @start="start" @end="end" />
<menu-script v-if="isScript" ref="menuScript" :offset-bottom="offsetBottom" :offset="offset" :text-status-height="textStatusHeight" :data-error="dataError" @start="start" @end="end" @changeShowMap="changeShowMap" />
<menu-dispather-contest v-if="isContest" ref="menuDispatherContest" :offset="offset" :offset-bottom="offsetBottom" :data-error="dataError" :text-status-height="textStatusHeight" @start="start" @end="end" />
<div v-if="lineCode === '16'" v-show="prdType === '02'&& !showMap" style="position:absolute;width: 100%;top:0;left:0;">
<!-- && (isScript || isDemon) -->
<dispatcher-station ref="dispatcherStation" @changeShowMap="changeShowMap" />
</div>
</template>
<menu-train-list v-if="isDemon||isContest||isScript" />
<menu-system-time v-if="$route.query.lineCode !== '16'" ref="menuSystemTime" :offset="offset" :group="group" />
<menu-system-time v-if="lineCode !== '16'" ref="menuSystemTime" :offset="offset" :group="group" />
</div>
</template>
<script>
@ -29,6 +33,7 @@ import MenuTrainList from '@/views/newMap/displayNew/menuTrainList';
import MenuSystemTime from '@/views/newMap/displayNew/menuSystemTime';
import { clearSimulation, getSimulationInfoNew, ranAsPlan, exitRunPlan } from '@/api/simulation';
import { loadMapDataById } from '@/utils/loaddata';
import DispatcherStation from '../jointTrainingNew/dispatcherStation';
import { EventBus } from '@/scripts/event-bus';
export default {
@ -41,7 +46,8 @@ export default {
MenuSystemTime,
MenuTrainList,
MenuDispatherContest,
MenuScript
MenuScript,
DispatcherStation
},
data() {
return {
@ -51,7 +57,8 @@ export default {
textStatusHeight: 0,
planRunning:false,
dataError: false,
group:''
group:'',
showMap: false
};
},
computed:{
@ -87,6 +94,15 @@ export default {
},
height() {
return this.$store.state.app.height;
},
prdType() {
return this.$store.state.training.prdType;
},
lineCode() {
return this.$route.query.lineCode;
},
specialDispatch() {
return (this.lineCode === '14' && this.$store.state.training.prdType === '02') || (this.lineCode === '16' && this.$store.state.training.prdType === '02' && !this.showMap);
}
},
watch:{
@ -201,7 +217,6 @@ export default {
this.group = this.$route.query.group;
this.$store.dispatch('training/reset');
this.loadSimulationInfo();
this.loadMapData();
},
// 仿group仿
async loadSimulationInfo() {
@ -221,6 +236,10 @@ export default {
if (resp.data.planRunning) {
this.$store.commit('training/start');
}
if (this.isScript) {
this.$store.dispatch('training/setPrdType', '02');
}
this.loadMapData();
} else {
this.$messageBox('此地图数据正在维护中,无法运行!');
}
@ -321,7 +340,20 @@ export default {
}).catch(() => {
this.$messageBox(this.$t('display.demon.endSimulationFail'));
});
},
changeShowMap(flag) {
this.showMap = flag;
}
}
};
</script>
<style scoped lang="scss" rel="stylesheep/scss">
.main {
display: block;
width: 100% !important;
height: 100%;
overflow: hidden;
position: relative;
background: #000000;
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<div>
<div style="height:100%;">
<div class="schema" :style="{top: offset+'px'}">
<select-station v-show="!$route.query.joint" v-if="isShowSelectStation && !isScript" ref="selectStation" :style-css="'width: 100px;'" />
<el-select v-model="speed" style="width: 100px;" size="small" @change="speedChange">
@ -12,9 +12,12 @@
</el-select>
<template v-if="!dataError">
<el-button-group v-if="project !== 'bjd'">
<el-button v-if="$route.query.lineCode === '16'&&!isCtc && project !== 'teaching'" size="small" @click="goCtc">车务终端</el-button>
<el-button v-if="$route.query.lineCode === '16'&&!isCtc && project !== 'teaching'&&isLocalStation" size="small" @click="goCtc">车务终端</el-button>
<el-button v-if="$route.query.lineCode ==='16'&&isLocalStation" size="small" @click="showTrainTicket">路票</el-button>
<el-button v-if="$route.query.lineCode === '16'&&isLocalStation" size="small" @click="showRegisterBook">簿册</el-button>
<!-- <el-button v-if="$route.query.lineCode === '16'&&!isCtc" size="small" @click="goRpManage">管理终端</el-button> -->
<!-- <el-button v-if="$route.query.lineCode === '16'&&!isCtc" size="small" @click="goDsManage">调度台</el-button> -->
<el-button v-if="showDispatcherStation" size="small" @click="changeShowMap">调度台</el-button>
<el-button v-if="isLocalStation && $route.query.lineCode!='08' && $route.query.lineCode!='16' && project !== 'teaching'" size="small" @click="goIbp">IBP盘</el-button>
<el-button v-if="isScheduling && isDepot && project !== 'teaching'" size="small" type="primary" @click="runPlanEditShow">运行图编辑</el-button>
<!-- 加载剧本 -->
@ -37,6 +40,8 @@
<!-- 加载剧本列表弹窗 -->
<add-quest ref="addQuest" @selectQuest="selectQuest" />
<line-board ref="lineBoard" />
<train-ticket ref="trainTicket" />
<register-book ref="registerBook" />
<!-- <run-plan-edit v-if="isScheduling && isDepot" ref="runPlanEdit" /> -->
</div>
</template>
@ -56,6 +61,8 @@ import { getIbpInfoByStation } from '@/api/ibp';
import { loadRunPlanData } from '@/utils/loaddata';
import { EventBus } from '@/scripts/event-bus';
import { timesSpeedPlayback } from '@/api/rtSimulation';
import TrainTicket from '../trainTicket/index';
import RegisterBook from '../registerBook/index';
//
export default {
@ -67,7 +74,9 @@ export default {
AddQuest,
// RunPlanEdit,
SelectStation,
LineBoard
LineBoard,
TrainTicket,
RegisterBook
},
props: {
offset: {
@ -89,7 +98,9 @@ export default {
swch: '02',
isScriptCommand:false,
faultMode: false,
speed: 1
speed: 1,
centralizedstationList: [],
centralizedStationMap: {}
// firstLoad: true
};
},
@ -130,12 +141,18 @@ export default {
isDepot() {
return this.$route.query.type === 'DEPOT';
},
showDispatcherStation() {
return this.$route.query.lineCode === '16' && this.$store.state.training.prdType === '02';
},
isContest() {
return this.project.includes('drts');
},
isAdmin() {
return this.$store.state.user.roles.includes('04') || this.$store.state.user.roles.includes('05');
},
userId() {
return this.$store.state.user ? this.$store.state.user.id : '';
},
speedList() {
return this.isAdmin ? [
{ value: 1, label: '1倍速' },
@ -189,6 +206,21 @@ export default {
},
'$store.state.socket.simulationSpeed': function (val) {
this.speed = val;
},
'$store.state.map.map': function (map) {
if (map) {
this.setCentralizedstationList(map); //
}
},
'$store.state.training.simulationUserList': function(list) {
if (list && list.length && this.$route.query.lineCode == '16' && this.isCtc && !this.$route.query.joint) {
this.checkRoleInit(list);
}
},
'$store.state.socket.simulationRoleList':function(list) {
if (list && list.length && this.$route.query.lineCode == '16' && this.isCtc && !this.$route.query.joint) {
this.checkRoleChange(list);
}
}
},
mounted() {
@ -220,24 +252,116 @@ export default {
showLineBoard() {
this.$refs.lineBoard.doShow();
},
changeShowMap() {
this.$emit('changeShowMap', false);
},
goCtc() {
// const routeData = this.$router.resolve({
// path:'/displayNew/demon',
// query:{
// lineCode:this.$route.query.lineCode,
// group: this.$route.query.group,
// prdType: this.$store.state.training.prdType,
// mapId:this.$route.query.mapId,
// project: this.project,
// newApi: this.$route.query.newApi,
// ctc: true,
// try: this.$route.query.try,
// token:getToken(),
// noPreLogout: true
// }
// });
const routeData = this.$router.resolve({
path:'/displayNew/demon',
query:{
lineCode:this.$route.query.lineCode,
group: this.$route.query.group,
prdType: this.$route.query.prdType,
prdType: '01',
mapId:this.$route.query.mapId,
project: this.project,
newApi: this.$route.query.newApi,
newApi: false,
// joint: true,
ctc: true,
try: this.$route.query.try,
try: this.$route.query.try || 0,
token:getToken(),
noPreLogout: true
}
});
window.open(routeData.href, '_blank');
},
showTrainTicket() {
const stationSupervisorList = [];
for (const memberId in this.$store.state.training.memberData) {
const item = this.$store.state.training.memberData[memberId];
if (item.type === 'STATION_SUPERVISOR') {
const device = this.$store.getters['map/getDeviceByCode'](item.deviceCode);
const memberData = { labelName: '值班员-' + device.name + (item.name ? `-${item.name }` : ''), id:item.id, userId:item.userId };
stationSupervisorList.push(memberData);
}
}
EventBus.$emit('trainTicketMember', stationSupervisorList);
this.$refs.trainTicket.doShow();
},
showRegisterBook() {
this.$refs.registerBook.doShow();
},
checkRoleInit(data) {
const stationRoleList = ['STATION_SUPERVISOR', 'STATION_ASSISTANT', 'STATION_MASTER', 'STATION_SIGNALER',
'STATION_PASSENGER', 'STATION_SWITCH_MAN', 'STATION_FACILITATOR', 'STATION_WORKER', 'DEVICE_MANAGER'];
data.forEach(item => {
if ((item.admin && item.online) && item.userId == this.userId && stationRoleList.includes(item.type)) {
this.$store.dispatch('training/setRoleDeviceCode', item.deviceCode);
this.deviceCode = item.deviceCode;
this.setShowStation(item.deviceCode);
this.$store.dispatch('training/setPrdType', '01');
}
});
},
checkRoleChange(data) {
const stationRoleList = ['STATION_SUPERVISOR', 'STATION_ASSISTANT', 'STATION_MASTER', 'STATION_SIGNALER',
'STATION_PASSENGER', 'STATION_SWITCH_MAN', 'STATION_FACILITATOR', 'STATION_WORKER', 'DEVICE_MANAGER'];
data.forEach(item => {
if ((item.messageType === 'PLAY_CHANGE' || item.messageType === 'ONLINE' ) && item.userId == this.userId && stationRoleList.includes(item.type)) {
// this.userRole = item.type || 'AUDIENCE';
this.$store.dispatch('training/setRoleDeviceCode', item.deviceCode);
this.deviceCode = item.deviceCode;
// this.setShowStation(item.deviceCode);
this.setShowStation(item.deviceCode);
this.$store.dispatch('training/setPrdType', '01');
// this.setSimulationPrdType(this.centralizedStationMap[item.deviceCode]);
// this.$nextTick(() => {
// if (item.deviceCode && this.$store.state.training.prdType !== '09') { this.setCenter(item.deviceCode); }
// });
}
});
},
setShowStation(stationCode) {
const showStation = this.centralizedStationMap[stationCode];
const list = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const key in mapDevice) {
list.push(mapDevice[key]);
}
this.$jlmap.updateShowStation(list, showStation);
this.$nextTick(()=>{
this.$jlmap.setCenter(showStation);
});
},
setCentralizedstationList(map) {
this.centralizedstationList = [];
(map.stationList || []).forEach(item => {
if (item.centralized) {
this.centralizedstationList.push({value: item.code, name: item.name});
this.centralizedStationMap[item.code] = item.code;
item.chargeStationCodeList && item.chargeStationCodeList.length && item.chargeStationCodeList.forEach(ele => {
this.centralizedStationMap[ele] = item.code;
});
}
});
// if (this.centralizedstationList.length && !this.showStation) {
// this.showStation = this.centralizedstationList[0].value;
// }
},
// goRpManage() {
// const routeData = this.$router.resolve({
// path:'/bigTrainRunplanManage',

View File

@ -155,7 +155,42 @@ export const operateEnum = {
},
Station:{
code:'stationCode',
type:'车站'
type:'车站',
// 总辅助
ASSIST_PRESS_MAIN_ASSIST:{
isList:true,
params:[
{
code:'labelEnum',
name:'区间'
},
{
code:'pressDown',
name:'按钮',
result:[
{data:1, name:'按下', judge:'='},
{data:0, name:'弹起', judge:'='}
]
}
]
},
// 接辅助
ASSIST_PRESS_RECEIVE_ASSIST:{
code:'labelEnum',
name:'区间为'
},
// 发辅助
ASSIST_PRESS_DELIVER_ASSIST:{
code:'labelEnum',
name:'区间为'
}
// param:{
// labelEnum:model.labelEnum,
// stationCode:model.stationCode
// }
// labelEnum:model.labelEnum,
// stationCode:model.stationCode,
// pressDown:model.pressDown ? 0 : 1 // 1按下、0弹起
},
Driver:{
code:'groupNumber',
@ -239,6 +274,10 @@ export const operateEnum = {
}
};
export const ctcOperateEnum = {
};
// 转换函数
export function covertOperate(operationType, operationParamMap) {
if (operationType == 'Set_Fault' || operationType == 'Cancel_Fault') {
@ -268,6 +307,25 @@ export function covertOperate(operationType, operationParamMap) {
});
return tip;
} else if (operationType.includes('CTC')) {
const tip = '请打开';
// ctcOperateEnum
// 车务终端,找到
return tip;
// 总辅助按钮
// CTC_ASSIST_PRESS_MAIN_ASSIST
// labelEnum:model.labelEnum,
// stationCode:model.stationCode,
// pressDown:model.pressDown ? 0 : 1 // 1按下、0弹起
// CTC_ASSIST_PRESS_RECEIVE_ASSIST
// labelEnum;
// stationCode;
// CTC_ASSIST_PRESS_DELIVER_ASSIST
// CTC_ASSIST_PRESS_BLOCK
// CTC_ASSIST_PRESS_RESTORE
// CTC_ASSIST_PRESS_ACCIDENT
// CTC_ASSIST_PRESS_DOWN_TURN_DIRECTION
} else {
let device = operationType.split('_')[0];
if (device == 'CM') {
@ -276,6 +334,9 @@ export function covertOperate(operationType, operationParamMap) {
if (operationType == 'Train_Load_Spare_Train') {
device = 'Section';
}
if (operationType.includes('ASSIST')) {
device = 'Station';
}
const list = ['Train_Update_Type',
'Train_Add_Train_Trace',
'Train_Remove_Train_Trace',

View File

@ -258,7 +258,72 @@ export default {
id: 'parkingLotSignalBuilding',
type: 'role',
children: result.deviceListData[7]
}];
},
{
label: '车站助理',
id: 'stationAssistant',
type: 'role',
children: result.deviceListData[8]
},
{
label: '车站站长',
id: 'stationMaster',
type: 'role',
children: result.deviceListData[9]
},
{
label: '车站信号员',
id: 'stationSignaler',
type: 'role',
children: result.deviceListData[10]
},
{
label: '车站客运员',
id: 'stationPassenger',
type: 'role',
children: result.deviceListData[11]
},
{
label: '车站扳道员',
id: 'stationSwitchMan',
type: 'role',
children: result.deviceListData[12]
},
{
label: '车站引导员',
id: 'stationFacilitator',
type: 'role',
children: result.deviceListData[13]
},
{
label: '车站工务工',
id: 'stationWorker',
type: 'role',
children: result.deviceListData[14]
},
{
label: '设备管理员',
id: 'deviceManager',
type: 'role',
children: result.deviceListData[15]
}
];
/**
* 车站助理
*/
// STATION_ASSISTANT,
// STATION_MASTER:'',
// STATION_SIGNALER:'',
// STATION_PASSENGER:'',
// STATION_SWITCH_MAN:'',
// STATION_FACILITATOR:'',
// STATION_WORKER:''
// stationMaster
// stationSignaler
// stationPassenger
// stationSwitchMan
// stationFacilitator
// stationWorker
const lastMemberList = result.lastMemberList;
this.$emit('setTreeData', treeData);
this.$emit('setMemberData', lastMemberList);

View File

@ -1,5 +1,5 @@
<template>
<div>
<div style="width:100%;height:100%;">
<div class="display-draft">
<el-button-group>
<el-button v-if="!isReplaceBg" type="primary" @click="back">{{ $t('scriptRecord.scriptBack') }}</el-button>
@ -25,6 +25,7 @@
:offset="offset"
:data-error="dataError"
:offset-bottom="offsetBottom"
@changeShowMap="changeShowMap"
/>
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
@ -93,7 +94,9 @@ export default {
return {
isScriptCommand:false,
isReplaceBg: false,
userRole:''
userRole:'',
centralizedstationList: [],
centralizedStationMap: {}
};
},
@ -118,6 +121,9 @@ export default {
},
isDisable() {
return this.$store.state.training.started;
},
userId() {
return this.$store.state.user ? this.$store.state.user.id : '';
}
},
watch: {
@ -129,6 +135,11 @@ export default {
this.$store.dispatch('map/setShowCentralizedStationNum');
});
},
'$store.state.map.map': function (map) {
if (map) {
this.setCentralizedstationList(map); //
}
},
'$store.state.map.mapViewLoadedCount': function (val) { //
getSimulationMemberList(this.group).then(resp => {
this.$store.dispatch('training/setMemberList', {memberList:resp.data, userId:this.$store.state.user.id});
@ -137,8 +148,10 @@ export default {
return mem.userId != '' && mem.userId != undefined;
});
if (member) {
const memberType = ['STATION_SUPERVISOR', 'DISPATCHER', 'DRIVER', 'MAINTAINER', 'DEPOT_DISPATCHER', 'PARENT_DEPARTMENT', 'ELECTRIC_DISPATCHER', 'PARKING_LOT_SIGNAL_BUILDING'];
const prdTypeList = ['01', '02', '04', '', '05', '', ''];
const memberType = ['STATION_SUPERVISOR', 'DISPATCHER', 'DRIVER', 'MAINTAINER', 'DEPOT_DISPATCHER', 'PARENT_DEPARTMENT',
'ELECTRIC_DISPATCHER', 'PARKING_LOT_SIGNAL_BUILDING', 'STATION_ASSISTANT', 'STATION_MASTER', 'STATION_SIGNALER',
'STATION_PASSENGER', 'STATION_SWITCH_MAN', 'STATION_FACILITATOR', 'STATION_WORKER', 'DEVICE_MANAGER'];
const prdTypeList = ['01', '02', '04', '', '05', '', '', '', '', '', '01', '', '', '', '', ''];
const index = memberType.indexOf(member.type);
let prdType;
if (index >= 0) {
@ -156,7 +169,18 @@ export default {
},
'$store.state.scriptRecord.userRole':function (val) {
this.userRole = val;
},
// '$store.state.training.roleDeviceCode':function (val) {
// if (val) {
// this.setShowStation(val);
// }
// },
'$store.state.socket.simulationRoleList':function(list) {
if (list && list.length && this.$route.query.lineCode == '16') { //
this.checkRoleChange(list);
}
}
},
beforeDestroy() {
// this.clearAutoSave();
@ -192,6 +216,62 @@ export default {
},
setReplace(isRp) {
this.isReplaceBg = isRp;
},
changeShowMap() {
this.$emit('changeShowMap', false);
},
checkRoleChange(data) {
const stationRoleList = ['STATION_SUPERVISOR', 'STATION_ASSISTANT', 'STATION_MASTER', 'STATION_SIGNALER',
'STATION_PASSENGER', 'STATION_SWITCH_MAN', 'STATION_FACILITATOR', 'STATION_WORKER', 'DEVICE_MANAGER'];
data.forEach(item => {
if ((item.messageType === 'PLAY_CHANGE' || item.messageType === 'ONLINE' ) && item.userId == this.userId && (stationRoleList.includes(item.type) )) {
// this.userRole = item.type || 'AUDIENCE';
this.$store.dispatch('training/setRoleDeviceCode', item.deviceCode);
this.deviceCode = item.deviceCode;
if (item.type == 'STATION_SUPERVISOR' || item.type == 'STATION_SIGNALER') {
this.setShowStation(item.deviceCode);
this.$store.dispatch('training/setPrdType', '01');
} else {
const showStation = this.centralizedStationMap[item.deviceCode];
this.setShowStation('');
this.$jlmap.setCenter(showStation);
}
// this.setSimulationPrdType(this.centralizedStationMap[item.deviceCode]);
// this.$nextTick(() => {
// if (item.deviceCode && this.$store.state.training.prdType !== '09') { this.setCenter(item.deviceCode); }
// });
}
});
},
setShowStation(stationCode) {
const showStation = this.centralizedStationMap[stationCode];
const list = [];
const mapDevice = this.$store.state.map.mapDevice;
for (const key in mapDevice) {
list.push(mapDevice[key]);
}
this.$jlmap.updateShowStation(list, showStation);
this.$nextTick(()=>{
this.$jlmap.setCenter(showStation);
});
},
setCentralizedstationList(map) {
this.centralizedstationList = [];
(map.stationList || []).forEach(item => {
if (item.centralized) {
this.centralizedstationList.push({value: item.code, name: item.name});
this.centralizedStationMap[item.code] = item.code;
item.chargeStationCodeList && item.chargeStationCodeList.length && item.chargeStationCodeList.forEach(ele => {
this.centralizedStationMap[ele] = item.code;
});
}
});
// if (this.centralizedstationList.length && !this.showStation) {
// this.showStation = this.centralizedstationList[0].value;
// }
}
}
};

View File

@ -69,6 +69,35 @@ export default {
const member = this.$store.state.training.memberData[val];
const station = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
if (station) {
const pictureLineCodeList = ['16'];
if (pictureLineCodeList.includes(this.$route.query.lineCode) && this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCode === station.code && picture.type === 'chainStation');
if (picture) {
const mapDevice = this.$store.state.map.mapDevice;
const list = [];
const deviceList = [];
for (const key in mapDevice) {
list.push(mapDevice[key]);
deviceList.push(key);
}
this.$jlmap.updateShowStation(list, '');
this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
} else {
this.jmapShowStation(station);
}
} else {
this.jmapShowStation(station);
}
}
}).catch((err) => {
console.log(err);
this.showMemberId = this.oldShowMemberId;
this.$message.error('调整角色成员失败!');
});
},
jmapShowStation(station) {
this.showStation = station.code;
const showStationCode = this.stationCentralizedMap[station.code];
const mapDevice = this.$store.state.map.mapDevice;
@ -79,12 +108,6 @@ export default {
this.$store.dispatch('training/setRoleDeviceCode', station.code);
this.$jlmap.updateShowStation(list, showStationCode || station.code);
this.setCenter(showStationCode);
}
}).catch((err) => {
console.log(err);
this.showMemberId = this.oldShowMemberId;
this.$message.error('调整角色成员失败!');
});
},
setCenter(code) {
if (this.$store.state.training.prdType === '09' && this.$store.state.map.map.displayList && this.$store.state.map.map.displayList.length) {

View File

@ -15,7 +15,7 @@ export function covertMemberData (activeTrainList, resp) {
lastData = JSON.parse(lastData);
const lastMemberList = [];
// const electricDispatcherList = [];
const deviceListData = [[], [], [], [], [], [], [], []];
const deviceListData = [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []];
const driverList = [];
lastData.forEach((member, index)=>{
if (member.userId && member.userId == store.state.user.id) {
@ -37,7 +37,26 @@ export function covertMemberData (activeTrainList, resp) {
member.label = member.type + name + userName;
member.normalName = member.type + name;
}
const deviceType = ['行调', '通号', '行值', '司机', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼'];
const deviceType = ['行调', '通号', '行值', '司机', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼', '车站助理', '车站站长', '车站信号员', '车站客运员', '车站扳道员', '车站引导员', '车站工务工', '设备管理员'];
/**
* 车站助理
*/
// STATION_ASSISTANT,
// STATION_MASTER:'车站站长',
// STATION_SIGNALER:'车站信号员',
// STATION_PASSENGER:'车站客运员',
// STATION_SWITCH_MAN:'车站扳道员',
// STATION_FACILITATOR:'车站引导员',
// STATION_WORKER:'车站工务工'
// stationMaster
// stationSignaler
// stationPassenger
// stationSwitchMan
// stationFacilitator
// stationWorker
// 设备管理员 deviceManager DEVICE_MANAGER
const deviceTypeIndex = deviceType.indexOf(member.type);
if (deviceTypeIndex >= 0) {
if (deviceTypeIndex == 3) {

View File

@ -437,6 +437,7 @@ export default {
setSimulationPrdType(deviceCode) {
// Dispatcher STATION_SUPERVISOR Audience Driver MAINTAINER
this.showStation = '';
const pictureLineCodeList = ['16'];
let tempData;
let dataZoom;
switch (this.userRole) {
@ -466,8 +467,28 @@ export default {
}
this.$jlmap.updateShowMode(list, '02');
}
if (pictureLineCodeList.includes(this.lineCode) && this.$store.state.map.map && this.$store.state.map.map.pictureList) {
const picture = this.$store.state.map.map.pictureList.find(picture => picture.stationCode === deviceCode && picture.type === 'chainStation');
if (picture) {
const mapDevice = this.$store.state.map.mapDevice;
const list = [];
const deviceList = [];
for (const key in mapDevice) {
list.push(mapDevice[key]);
deviceList.push(key);
}
this.$jlmap.updateShowStation(list, '');
this.$store.dispatch('map/setPictureDeviceMap', picture.deviceMap);
this.$jlmap.updatePicture(deviceList);
this.$jlmap.updateTransform(picture.scaling, picture.origin);
} else {
this.$jlmap.amendDevice([...this.sectionList, ...this.signalList, ...this.trainWindowList]);
this.mapViewLoadedOver && this.switchStationMode(deviceCode);
}
} else {
this.$jlmap.amendDevice([...this.sectionList, ...this.signalList, ...this.trainWindowList]);
this.mapViewLoadedOver && this.switchStationMode(deviceCode);
}
this.jl3dmaintainershow = false;
this.drivingShow = false;
break;

View File

@ -70,7 +70,15 @@ export default {
typeList: [
{label: '行调', value: 'DISPATCHER'},
{label: '通号', value: 'MAINTAINER'},
{label: '车站值班员', value: 'STATION_SUPERVISOR'}
{label: '车站值班员', value: 'STATION_SUPERVISOR'},
{label: '车站助理', value: 'STATION_ASSISTANT'},
{label: '车站站长', value: 'STATION_MASTER'},
{label: '车站信号员', value: 'STATION_SIGNALER'},
{label: '车站客运员', value: 'STATION_PASSENGER'},
{label: '车站扳道员', value: 'STATION_SWITCH_MAN'},
{label: '车站引导员', value: 'STATION_FACILITATOR'},
{label: '车站工务工', value: 'STATION_WORKER'},
{label: '设备管理员', value: 'DEVICE_MANAGER'}
]
};
},

View File

@ -120,7 +120,36 @@ export default {
}, {
labelName: '车站助理',
children: []
}]
},
{
labelName: '车站站长',
children: []
},
{
labelName: '车站信号员',
children: []
},
{
labelName: '车站客运员',
children: []
},
{
labelName: '车站扳道员',
children: []
},
{
labelName: '车站引导员',
children: []
},
{
labelName: '车站工务工',
children: []
},
{
labelName: '设备管理员',
children: []
}
]
};
},
computed: {
@ -155,6 +184,13 @@ export default {
const maintainerList = [];
const ctcOperatorList = [];
const stationAssistantList = [];
const stationMasterList = [];
const stationSignalerList = [];
const stationPassengerList = [];
const stationSwitchManList = [];
const stationFacilitatorList = [];
const stationWorkerList = [];
const deviceManagerList = [];
val.forEach(item => {
const device = this.$store.getters['map/getDeviceByCode'](item.deviceCode);
switch (item.type) {
@ -190,6 +226,35 @@ export default {
this.memberData[item.id].labelName = '车站助理-' + device.name + (item.name ? `-${item.name }` : '');
stationAssistantList.push(this.memberData[item.id]);
break;
case 'STATION_MASTER':
this.memberData[item.id].labelName = '车站站长-' + device.name + (item.name ? `-${item.name }` : '');
stationMasterList.push(this.memberData[item.id]);
break;
case 'STATION_SIGNALER':
this.memberData[item.id].labelName = '车站信号员-' + device.name + (item.name ? `-${item.name }` : '');
stationSignalerList.push(this.memberData[item.id]);
break;
case 'STATION_PASSENGER':
this.memberData[item.id].labelName = '车站客运员-' + device.name + (item.name ? `-${item.name }` : '');
stationPassengerList.push(this.memberData[item.id]);
break;
case 'STATION_SWITCH_MAN':
this.memberData[item.id].labelName = '车站扳道员-' + device.name + (item.name ? `-${item.name }` : '');
stationSwitchManList.push(this.memberData[item.id]);
break;
case 'STATION_FACILITATOR':
this.memberData[item.id].labelName = '车站引导员-' + device.name + (item.name ? `-${item.name }` : '');
stationFacilitatorList.push(this.memberData[item.id]);
break;
case 'STATION_WORKER':
this.memberData[item.id].labelName = '车站工务工-' + device.name + (item.name ? `-${item.name }` : '');
stationWorkerList.push(this.memberData[item.id]);
break;
case 'DEVICE_MANAGER':
this.memberData[item.id].labelName = '设备管理员-' + device.name + (item.name ? `-${item.name }` : '');
deviceManagerList.push(this.memberData[item.id]);
break;
// DEVICE_MANAGER:'' deviceManager
}
});
this.treeData = [{
@ -224,6 +289,41 @@ export default {
labelName: '车站助理',
id: 'stationAssistant',
children: stationAssistantList
},
{
labelName: '车站站长',
id: 'stationMaster',
children: stationMasterList
},
{
labelName: '车站信号员',
id: 'stationSignaler',
children: stationSignalerList
},
{
labelName: '车站客运员',
id: 'stationPassenger',
children: stationPassengerList
},
{
labelName: '车站扳道员',
id: 'stationSwitchMan',
children: stationSwitchManList
},
{
labelName: '车站引导员',
id: 'stationFacilitator',
children: stationFacilitatorList
},
{
labelName: '车站工务工',
id: 'stationWorker',
children: stationWorkerList
},
{
labelName: '设备管理员',
id: 'deviceManager',
children: deviceManagerList
}
];
EventBus.$emit('trainTicketMember', [...stationSupervisorList, ...stationAssistantList]);

View File

@ -23,9 +23,9 @@ export default {
topic: '/user/queue/training',
stomp: null,
currentMap: null,
ierval: null,
// ierval: null,
mouseNum: 1,
mouseNumTime: 0,
// mouseNumTime: 0,
mapBoxP: null,
mode: '',
groupModel: ''
@ -78,7 +78,7 @@ export default {
this.mode = this.$route.params.mode || '';
this.currentMap = this.$refs.mapCommon;
this.groupModel = this.$route.query.group;
this.checkMouseStatusTimer(); //
// this.checkMouseStatusTimer(); //
this.$nextTick(() => {
setTimeout(() => {
this.$store.dispatch('config/resetCanvasOffset');
@ -88,7 +88,7 @@ export default {
beforeDestroy() {
this.clearSubscribe();
this.clearSubscribeNew();
this.clearAllTimer();
// this.clearAllTimer();
},
methods: {
async mapViewLoaded(loading) {
@ -118,11 +118,11 @@ export default {
async subscribe() {
this.clearSubscribe();
const header = { group: this.$route.query.group || '', 'X-Token': getToken() };
creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
creatSubscribe(getTopic('STATE', this.$route.query.group), header);
await creatSubscribe(`${displayTopic}\/${this.$route.query.group}`, header);
await creatSubscribe(getTopic('STATE', this.$route.query.group), header);
// if (this.$route.query.ctc == 'true') {
if (this.$route.query.lineCode == '16') {
creatSubscribe(getTopic('CTC', this.$route.query.group), header);
await creatSubscribe(getTopic('CTC', this.$route.query.group), header);
}
// $route.query.lineCode === '16';
// if (this.$route.query.dispatcherStation == 'true') {
@ -133,9 +133,9 @@ export default {
async subscribeNew() {
this.clearSubscribeNew();
const header = { 'X-Token': getToken() };
creatSubscribe(getTopic('ATS', this.$route.query.group), header);
creatSubscribe(getTopic('SYSTIME', this.$route.query.group), header);
creatSubscribe(getTopic('STATE', this.$route.query.group), header);
await creatSubscribe(getTopic('ATS', this.$route.query.group), header);
await creatSubscribe(getTopic('SYSTIME', this.$route.query.group), header);
await creatSubscribe(getTopic('STATE', this.$route.query.group), header);
await this.$store.dispatch('training/setHasSubscribed');
},
clearSubscribeNew() {
@ -161,33 +161,33 @@ export default {
this.mouseNum = 1;
},
// 线
clearAllTimer() {
if (this.ierval) {
clearInterval(this.ierval);
this.ierval = null;
}
},
// clearAllTimer() {
// if (this.ierval) {
// clearInterval(this.ierval);
// this.ierval = null;
// }
// },
//
checkMouseStatusTimer() {
if (this.ierval) {
clearInterval(this.ierval);
}
this.ierval = setInterval(() => {
if (this.mouseNum) {
this.mouseNum = 0;
this.mouseNumTime = 0;
if (this.mapBoxP) {
this.mapBoxP.style.cursor = this.mapBoxP.style.cursor != 'none' ? this.mapBoxP.style.cursor : '';
}
} else {
this.mouseNumTime += 1;
}
if (this.mapBoxP) {
if (this.mouseNumTime >= 12) {
this.mapBoxP.style.cursor = 'none';
}
}
}, 1000);
// if (this.ierval) {
// clearInterval(this.ierval);
// }
// this.ierval = setInterval(() => {
// if (this.mouseNum) {
// this.mouseNum = 0;
// this.mouseNumTime = 0;
// if (this.mapBoxP) {
// this.mapBoxP.style.cursor = this.mapBoxP.style.cursor != 'none' ? this.mapBoxP.style.cursor : '';
// }
// } else {
// this.mouseNumTime += 1;
// }
// if (this.mapBoxP) {
// if (this.mouseNumTime >= 12) {
// this.mapBoxP.style.cursor = 'none';
// }
// }
// }, 1000);
},
initMemberUserInfo(isFirst = false) {
if (this.$route.query.newApi + '' === 'true') {

View File

@ -72,7 +72,15 @@ export default {
typeList: [
{label: '行调', value: 'DISPATCHER'},
{label: '通号', value: 'MAINTAINER'},
{label: '车站值班员', value: 'STATION_SUPERVISOR'}
{label: '车站值班员', value: 'STATION_SUPERVISOR'},
{label: '车站助理', value: 'STATION_ASSISTANT'},
{label: '车站站长', value: 'STATION_MASTER'},
{label: '车站信号员', value: 'STATION_SIGNALER'},
{label: '车站客运员', value: 'STATION_PASSENGER'},
{label: '车站扳道员', value: 'STATION_SWITCH_MAN'},
{label: '车站引导员', value: 'STATION_FACILITATOR'},
{label: '车站工务工', value: 'STATION_WORKER'},
{label: '设备管理员', value: 'DEVICE_MANAGER'}
]
};
},

View File

@ -47,7 +47,8 @@
<el-button v-if="actionInfo.visible && !actionInfo.isModify" type="primary" size="mini" style="margin-left:10px;" @click="modifyAction(actionInfo)">{{ $t('scriptRecord.modifyConversitionButton') }}</el-button>
<el-button v-if="actionInfo.visible && actionInfo.isModify" :loading="modifyTextLoading" type="danger" size="mini" style="margin-left:10px;" @click="confirmModify(actionInfo)">确定</el-button>
<el-button v-if="actionInfo.visible && actionInfo.isModify" type="" size="mini" style="margin-left:10px;" @click="cancleModify(actionInfo)">取消</el-button>
<el-button v-if="actionInfo.visible && !actionInfo.isModify" type="danger" size="mini" :loading="deleteLoading" @click="deleteAction(actionInfo.id)">删除</el-button>
<el-button v-if="actionInfo.isDelete" type="danger" size="mini" :loading="actionInfo.deleteLoading" @click="deleteAction(actionInfo)">删除</el-button>
<!-- .deleteLoading,actionInfo.id -->
</div>
</el-card>
</el-timeline-item>
@ -84,7 +85,7 @@ export default {
// isModify:false,
// modifyText:'',
modifyTextLoading:false,
deleteLoading:false,
// deleteLoading:false,
// behaviorName:"",
memberName: '',
conditionActionId: ''
@ -144,16 +145,16 @@ export default {
});
}
this.actionInfoList.push({id: element.id, isStartCoversition: true, memberName: memberName, targetName:targetNameList.toString(), condition: element.condition });
this.actionInfoList.push({id: element.id, isStartCoversition: true, memberName: memberName, targetName:targetNameList.toString(), condition: element.condition, isDelete:true, deleteLoading:false });
break;
}
case 'Drive': {
this.actionInfoList.push({id: element.id, isDrive: true, memberName: memberName, targetName:this.covertSection(element.targetSectionCode), condition: element.condition});
this.actionInfoList.push({id: element.id, isDrive: true, memberName: memberName, targetName:this.covertSection(element.targetSectionCode), isDelete:true, condition: element.condition, deleteLoading:false});
break;
}
case 'Conversation':
{
this.actionInfoList.push({id: element.id, isCoversition: true, memberName: memberName, reply: element.content, row: element, visible: true, isModify:false, modifyText:'', condition: element.condition});
this.actionInfoList.push({id: element.id, isCoversition: true, memberName: memberName, reply: element.content, row: element, visible: true, isModify:false, isDelete:true, modifyText:'', condition: element.condition, deleteLoading:false});
break;
}
// case 'Exit_Conversation': {
@ -177,18 +178,18 @@ export default {
});
});
if (operateName) {
const deviceTypeList = {Section:'区段', Switch:'道岔', Signal:'信号机', Stand:'站台', Station:'车站', TrainWindow:'车次窗', ControlConvertMenu:'控制模式', Driver:'司机', Train:'列车'};
const deviceTypeList = {Section:'区段', Switch:'道岔', Signal:'信号机', Stand:'站台', Station:'车站', TrainWindow:'车次窗', ControlConvertMenu:'控制模式', Driver:'司机', Train:'列车', CTC:'车务终端', RAIL:'票据/簿册'};
const operateTypeName = deviceTypeList[operateType];
this.actionInfoList.push({id: element.id, isOperation: true, memberName: memberName, command: operateTypeName + '(' + operateName.label + ')', row: element, visible: false, condition: element.condition});
this.actionInfoList.push({id: element.id, isOperation: true, memberName: memberName, command: operateTypeName + '(' + operateName.label + ')', row: element, visible: false, condition: element.condition, isDelete:true, deleteLoading:false });
}
} else {
// deviceFaultType
// element.operationParamMap.faultType;
// '(' + operateName.label + ')'
if (commandName == 'Set_Fault') {
this.actionInfoList.push({id: element.id, isOperation: true, memberName: memberName, command: '设置故障', row: element, visible: false, condition: element.condition});
this.actionInfoList.push({id: element.id, isOperation: true, memberName: memberName, command: '设置故障', row: element, visible: false, condition: element.condition, isDelete:true, deleteLoading:false });
} else if (commandName == 'Cancel_Fault') {
this.actionInfoList.push({id: element.id, isOperation: true, memberName: memberName, command: '取消故障', row: element, visible: false, condition: element.condition});
this.actionInfoList.push({id: element.id, isOperation: true, memberName: memberName, command: '取消故障', row: element, visible: false, condition: element.condition, isDelete:true, deleteLoading:false });
}
}
break;
@ -210,7 +211,7 @@ export default {
Apply_CM_Mode: '转CM模式',
Apply_AM_Mode: '转AM模式'
};
this.actionInfoList.push({id: element.id, isCommand: true, memberName: memberName, command: CommandList[element.commandInitiateVO.commandType], targetName:targetName.name, row: element, visible: false, condition: element.condition});
this.actionInfoList.push({id: element.id, isCommand: true, memberName: memberName, command: CommandList[element.commandInitiateVO.commandType], targetName:targetName.name, row: element, visible: false, condition: element.condition, deleteLoading:false});
break;
}
}
@ -281,13 +282,13 @@ export default {
}
}
},
deleteAction(actionId) {
this.deleteLoading = true;
deleteScriptAction(this.group, actionId).then(res=>{
this.deleteLoading = false;
deleteAction(actionInfo) {
actionInfo.deleteLoading = true;
deleteScriptAction(this.group, actionInfo.id).then(res=>{
actionInfo.deleteLoading = false;
this.reloadTable();
}).catch(error=>{
this.deleteLoading = false;
actionInfo.deleteLoading = false;
this.$messageBox('删除会话/动作失败:' + error.message);
});
},

View File

@ -145,6 +145,9 @@ export default {
},
drawUp(index, row) {
scriptRecordNotifyNew(row.id).then(resp => {
if (this.loadingProjectList.includes(this.project)) {
this.$store.dispatch('app/transitionAnimations');
}
const query = { mapId: row.mapId, group: resp.data, scriptId: row.id, lang:row.lang, lineCode:this.$route.query.lineCode, record: true};
this.$router.push({ path: `${UrlConfig.scriptDisplayNew}/script`, query });
launchFullscreen();

View File

@ -228,6 +228,54 @@ export default {
id: 'parkingLotSignalBuilding',
type: 'role',
children: result.deviceListData[7]
},
{
label: '车站助理',
id: 'stationAssistant',
type: 'role',
children: result.deviceListData[8]
},
{
label: '车站站长',
id: 'stationMaster',
type: 'role',
children: result.deviceListData[9]
},
{
label: '车站信号员',
id: 'stationSignaler',
type: 'role',
children: result.deviceListData[10]
},
{
label: '车站客运员',
id: 'stationPassenger',
type: 'role',
children: result.deviceListData[11]
},
{
label: '车站扳道员',
id: 'stationSwitchMan',
type: 'role',
children: result.deviceListData[12]
},
{
label: '车站引导员',
id: 'stationFacilitator',
type: 'role',
children: result.deviceListData[13]
},
{
label: '车站工务工',
id: 'stationWorker',
type: 'role',
children: result.deviceListData[14]
},
{
label: '设备管理员',
id: 'deviceManager',
type: 'role',
children: result.deviceListData[15]
}
];
this.memberList = result.lastMemberList;
@ -284,7 +332,7 @@ export default {
const covertmember = this.covert(lastData, ConstConfig.ConstSelect.roleTypeNew);
const newMember = covertmember[0];
this.memberList.push(newMember);
const deviceTypeList = ['行调', '行值', '司机', '通号', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼'];
const deviceTypeList = ['行调', '行值', '司机', '通号', '车辆段信号楼', '上级部门', '电力调度', '停车场信号楼', '车站助理', '车站站长', '车站信号员', '车站客运员', '车站扳道员', '车站引导员', '车站工务工', '设备管理员'];
const index = deviceTypeList.indexOf(newMember.type);
if (index >= 0) {
const treeDataIn = this.treeData[index];
@ -502,6 +550,39 @@ export default {
prdType = '';
role.type = 'PARKING_LOT_SIGNAL_BUILDING';
this.$store.dispatch('training/setRoles', 'PARKING_LOT_SIGNAL_BUILDING');
} else if (role.type == '车站助理') {
prdType = '';
role.type = 'STATION_ASSISTANT';
this.$store.dispatch('training/setRoles', 'STATION_ASSISTANT');
} else if (role.type == '车站站长') {
prdType = '';
role.type = 'STATION_MASTER';
this.$store.dispatch('training/setRoles', 'STATION_MASTER');
} else if (role.type == '车站信号员') {
prdType = '01';
role.type = 'STATION_SIGNALER';
this.$store.dispatch('training/setRoles', 'STATION_SIGNALER');
} else if (role.type == '车站客运员') {
prdType = '';
role.type = 'STATION_PASSENGER';
this.$store.dispatch('training/setRoles', 'STATION_PASSENGER');
} else if (role.type == '车站扳道员') {
prdType = '';
role.type = 'STATION_SWITCH_MAN';
this.$store.dispatch('training/setRoles', 'STATION_SWITCH_MAN');
} else if (role.type == '车站引导员') {
prdType = '';
role.type = 'STATION_FACILITATOR';
this.$store.dispatch('training/setRoles', 'STATION_FACILITATOR');
} else if (role.type == '车站工务工') {
prdType = '';
role.type = 'STATION_WORKER';
this.$store.dispatch('training/setRoles', 'STATION_WORKER');
} else if (role.type == '设备管理员') {
prdType = '';
role.type = 'DEVICE_MANAGER';
this.$store.dispatch('training/setRoles', 'DEVICE_MANAGER');
} else {
prdType = '';
}
@ -530,7 +611,16 @@ export default {
'DEPOT_DISPATCHER':'车辆段信号楼',
'PARENT_DEPARTMENT':'上级部门',
'ELECTRIC_DISPATCHER':'电力调度',
'PARKING_LOT_SIGNAL_BUILDING':'停车场信号楼'
'PARKING_LOT_SIGNAL_BUILDING':'停车场信号楼',
'STATION_ASSISTANT':'车站助理',
'STATION_MASTER':'车站站长',
'STATION_SIGNALER':'车站信号员',
'STATION_PASSENGER':'车站客运员',
'STATION_SWITCH_MAN':'车站扳道员',
'STATION_FACILITATOR':'车站引导员',
'STATION_WORKER':'车站工务工',
'DEVICE_MANAGER':'设备管理员'
};
newRole.type = roleTypeEnumMap[newRole.type];
this.quickChangeMember.list.push(newRole);

View File

@ -116,7 +116,8 @@ export default {
'tripNumberIsUnique',
'standTbStrategyIsInvalid',
'updateTripPlanByServiceNumber',
'railway'
'railway',
'SFUCanOnlyApplyForFaultLockSection'
],
selectList: ['runMode', 'singleApproachLockCancelRoute'],
generalConfig: [
@ -166,7 +167,8 @@ export default {
'tripNumberIsUnique',
'standTbStrategyIsInvalid',
'updateTripPlanByServiceNumber',
'railway'
'railway',
'SFUCanOnlyApplyForFaultLockSection'
],
rangeList: ['noParkingSM', 'parkingSM'],
speedList: ['rmAtpSpeed', 'urmAtpSpeed'],
@ -222,7 +224,8 @@ export default {
tripNumberIsUnique: '运行图中车次号是否唯一',
standTbStrategyIsInvalid: '站台折返策略不生效',
updateTripPlanByServiceNumber: '根据服务号更新车次计划',
railway: '大铁线路'
railway: '大铁线路',
SFUCanOnlyApplyForFaultLockSection: '区故解只能应用于故障锁闭区段'
}
};
},