Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
8287e984da
@ -168,7 +168,8 @@ export default {
|
||||
automaticSignalUpdateSucceeded: 'Automatic signal update successful!',
|
||||
automaticSignalUpdateFailed: 'Automatic signal update failed',
|
||||
|
||||
stationName: 'The station name:',
|
||||
stationName: 'The station name',
|
||||
stationNameColon: 'The station name:',
|
||||
|
||||
property: 'attribute',
|
||||
counterCoding: 'Counter coding:',
|
||||
|
@ -156,7 +156,8 @@ export default {
|
||||
interconnected: '联锁控名称',
|
||||
buttonType: '所属类型',
|
||||
|
||||
stationName: '车站名称:',
|
||||
stationNameColon: '车站名称:',
|
||||
stationName: '车站名称',
|
||||
|
||||
property: '属性',
|
||||
counterCoding: '计数器编码:',
|
||||
|
@ -395,9 +395,9 @@ class SkinCode extends defaultStyle {
|
||||
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
|
||||
headFontSize: 10, // 站台首端字体大小
|
||||
doorOpenColor:'#00FF00', // 车门开启状态颜色
|
||||
stopColor: 'yellow', // 站台列车停站颜色
|
||||
stopColor: '#0080C0', // 站台列车停站颜色
|
||||
virtualColor: '#585858', // 虚拟站台颜色
|
||||
lineWidth: 3 // 站台线宽
|
||||
lineWidth: 6 // 站台线宽
|
||||
},
|
||||
// 站台紧急关闭
|
||||
emergentRhombus:{
|
||||
|
@ -173,7 +173,7 @@ export default class ELines extends Group {
|
||||
});
|
||||
this.routeArrowRight = new Isogon({
|
||||
zlevel: this.zlevel,
|
||||
origin: [cPointLeft.x, cPointLeft.y],
|
||||
origin: [cPointRight.x, cPointRight.y],
|
||||
rotation: -Math.PI / 2 - triangleRight.getRotation(),
|
||||
z: Z + 9,
|
||||
shape: {
|
||||
@ -191,7 +191,7 @@ export default class ELines extends Group {
|
||||
this.routeLineLeft = new Polyline({
|
||||
zlevel: this.zlevel,
|
||||
progressive: model.progressive,
|
||||
z: Z,
|
||||
z: Z + 9,
|
||||
shape: {
|
||||
points: pointsLeft
|
||||
},
|
||||
@ -203,7 +203,7 @@ export default class ELines extends Group {
|
||||
this.routeLineRight = new Polyline({
|
||||
zlevel: this.zlevel,
|
||||
progressive: model.progressive,
|
||||
z: Z,
|
||||
z: Z + 9,
|
||||
shape: {
|
||||
points: pointsRight
|
||||
},
|
||||
@ -344,8 +344,8 @@ export default class ELines extends Group {
|
||||
this.routeLineRight && this.routeLineRight.hide();
|
||||
this.routeArrowLeft && this.routeArrowLeft.setStyle({ stroke: this.model.style.Section.routeArrow.defaultArrowStroke, fill: this.model.style.Section.routeArrow.defaultArrowFill });
|
||||
this.routeArrowRight && this.routeArrowRight.setStyle({ stroke: this.model.style.Section.routeArrow.defaultArrowStroke, fill: this.model.style.Section.routeArrow.defaultArrowFill });
|
||||
this.routeLineLeft && this.routeLineLeft.setStyle({ fill: this.model.style.Section.routeArrow.defaultLineStroke });
|
||||
this.routeArrowRight && this.routeArrowRight.setStyle({ fill: this.model.style.Section.routeArrow.defaultLineStroke });
|
||||
this.routeLineLeft && this.routeLineLeft.setStyle({ stroke: this.model.style.Section.routeArrow.defaultLineStroke });
|
||||
this.routeLineRight && this.routeLineRight.setStyle({ stroke: this.model.style.Section.routeArrow.defaultLineStroke });
|
||||
}
|
||||
getBoundingRect() {
|
||||
if (this.section) {
|
||||
|
@ -147,12 +147,13 @@ export default class Section extends Group {
|
||||
});
|
||||
}
|
||||
/** 进路锁闭 04*/
|
||||
routeLock() {
|
||||
routeLock(lockRight) {
|
||||
if (this.line) {
|
||||
this.line.setStyle({
|
||||
stroke: this.style.Section.line.routeLockColor,
|
||||
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
|
||||
});
|
||||
this.line.setRouteLock(lockRight);
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,12 +207,13 @@ export default class Section extends Group {
|
||||
}
|
||||
|
||||
/** 保护区段锁闭 09*/
|
||||
protectiveLock() {
|
||||
protectiveLock(lockRight) {
|
||||
if (this.line) {
|
||||
this.line.setStyle({
|
||||
stroke: this.style.Section.line.protectiveLockColor,
|
||||
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
|
||||
});
|
||||
this.line.setRouteLock(lockRight);
|
||||
}
|
||||
}
|
||||
|
||||
@ -258,9 +260,9 @@ export default class Section extends Group {
|
||||
}
|
||||
// 顺序代表优先级
|
||||
/** 道岔保护区段锁闭 */
|
||||
model.overlapLock && this.protectiveLock();
|
||||
model.overlapLock && this.protectiveLock(model.lockRight);
|
||||
/** 空闲锁闭或者叫进路锁闭 */
|
||||
model.routeLock && this.routeLock();
|
||||
model.routeLock && this.routeLock(model.lockRight);
|
||||
/** 轨道封锁 */
|
||||
model.invalid && this.invalid();
|
||||
/** 计轴故障 */
|
||||
|
@ -11,7 +11,10 @@ class EPatternFilter extends Group {
|
||||
create() {
|
||||
const model = this.model.modelData;
|
||||
const style = this.model.style;
|
||||
const direction = model.right ? 1 : -1;
|
||||
let direction = -1;
|
||||
if ((model.right && model.inside) || (!model.right && !model.inside)) {
|
||||
direction = 1;
|
||||
}
|
||||
|
||||
const startX = (model.width / 2 + style.StationStand.patternFilter.offset.x);
|
||||
const startY = model.position.y + (model.height / 2 + style.StationStand.patternFilter.offset.y) * direction + (1 + direction) / 2 * 14;
|
||||
|
@ -25,7 +25,9 @@ class ESolidStand extends Group {
|
||||
height: model.height
|
||||
},
|
||||
style: {
|
||||
'fill':style.StationStand.solidStand.spareColor
|
||||
fill:style.StationStand.solidStand.spareColor,
|
||||
lineWidth: style.StationStand.solidStand.lineWidth || 0,
|
||||
stroke: style.StationStand.solidStand.spareStrokeColor
|
||||
}
|
||||
});
|
||||
this.add(this.stand);
|
||||
@ -61,10 +63,13 @@ class ESolidStand extends Group {
|
||||
setColor(color) {
|
||||
this.stand.setStyle('fill', color);
|
||||
}
|
||||
|
||||
setStroke(color) {
|
||||
this.stand.setStyle('stroke', color);
|
||||
}
|
||||
recover() {
|
||||
const style = this.model.style;
|
||||
this.setColor(style.StationStand.solidStand.spareColor);
|
||||
this.setStroke(style.StationStand.solidStand.spareStrokeColor);
|
||||
}
|
||||
|
||||
setState(model) {
|
||||
@ -77,6 +82,7 @@ class ESolidStand extends Group {
|
||||
model.allSkip && this.setColor(style.StationStand.solidStand.jumpStopColor);
|
||||
// 停车
|
||||
model.trainParking && this.setColor(style.StationStand.solidStand.stopColor);
|
||||
model.trainParking && this.setStroke(style.StationStand.solidStand.doorOpenColor);
|
||||
// 紧急停车
|
||||
model.emergencyClosed && this.setColor(this.style.StationStand.solidStand.spareColor);
|
||||
} else {
|
||||
|
@ -1,6 +1,7 @@
|
||||
import Text from 'zrender/src/graphic/Text';
|
||||
import Group from 'zrender/src/container/Group';
|
||||
import {isShowThePrdType} from '../../utils/handlePath';
|
||||
import BoundingRect from 'zrender/src/core/BoundingRect';
|
||||
import Vue from 'vue';
|
||||
|
||||
export default class Text2 extends Group {
|
||||
@ -14,10 +15,10 @@ export default class Text2 extends Group {
|
||||
this.style = style;
|
||||
this.z = 6;
|
||||
this.isShowShape = true;
|
||||
// if (isShowThePrdType(model.prdType, model.showConditions) || model.previewOrMapDraw) {
|
||||
if (isShowThePrdType(model.prdType, model.showConditions) || model.previewOrMapDraw) {
|
||||
this.create();
|
||||
this.setState(model);
|
||||
// }
|
||||
}
|
||||
if (model.previewOrMapDraw) {
|
||||
this.setShowMode();
|
||||
}
|
||||
@ -39,6 +40,7 @@ export default class Text2 extends Group {
|
||||
x: model.position.x,
|
||||
y: model.position.y,
|
||||
text: content,
|
||||
fontFamily: this.style.fontFamily,
|
||||
fontSize: Number(model.font),
|
||||
textFill: model.fontColor,
|
||||
textAlign: 'middle'
|
||||
@ -53,6 +55,8 @@ export default class Text2 extends Group {
|
||||
getBoundingRect() {
|
||||
if (this.text) {
|
||||
return this.text.getBoundingRect().clone();
|
||||
} else {
|
||||
return new BoundingRect(this.model.position.x, this.model.position.y, 0, 0);
|
||||
}
|
||||
}
|
||||
// 设置显示模式
|
||||
|
@ -132,6 +132,7 @@
|
||||
<all-train-detail ref="allTrainDetail" />
|
||||
<route-detail ref="routeDetail" />
|
||||
<init-section-open ref="initSectionOpen" />
|
||||
<init-section-limit-speed ref="initSectionLimitSpeed" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -162,6 +163,7 @@ import SignalCanBlock from './menuDialog/signalCanBlock';
|
||||
import RouteCommand from './menuDialog/routeCommand';
|
||||
import SectionOpen from './menuDialog/sectionOpen';
|
||||
import SectionLimitSpeed from './menuDialog/sectionLimitSpeed';
|
||||
import InitSectionLimitSpeed from './menuDialog/initSectionLimitSpeed';
|
||||
import SectionShow from './menuDialog/sectionShow';
|
||||
import SectionLock from './menuDialog/sectionLock';
|
||||
import SignalModel from './menuDialog/signalModel';
|
||||
@ -234,7 +236,8 @@ export default {
|
||||
TrainDetail,
|
||||
AllTrainDetail,
|
||||
RouteDetail,
|
||||
InitSectionOpen
|
||||
InitSectionOpen,
|
||||
InitSectionLimitSpeed
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -428,7 +431,8 @@ export default {
|
||||
},
|
||||
{
|
||||
title: '设置站间列车数量',
|
||||
click: this.setIntervalStopNumber
|
||||
// click: this.setIntervalStopNumber
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '分配停站时间',
|
||||
@ -533,23 +537,28 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '取消转换锁闭',
|
||||
click: this.handleLock
|
||||
// click: this.handleLock
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消过岔锁闭',
|
||||
click: this.handleUnLock
|
||||
// click: this.handleUnLock
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '远程预复位使能',
|
||||
click: this.handleRestoration
|
||||
// click: this.handleRestoration
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '复位',
|
||||
click: this.handleSectionRestoration
|
||||
// click: this.handleSectionRestoration
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示',
|
||||
click: this.handleSectionStopShow
|
||||
// click: this.handleSectionStopShow
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -599,11 +608,13 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: 'CBTC',
|
||||
click: this.setCbtcMode
|
||||
// click: this.setCbtcMode
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '后备',
|
||||
click: this.setReserveMode
|
||||
// click: this.setReserveMode
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -1599,7 +1610,7 @@ export default {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
|
||||
this.$refs.sectionLimitSpeed.doShow();
|
||||
this.$refs.initSectionLimitSpeed.doShow();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="1000px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="18">
|
||||
<el-table ref="singleTable1" :data="sectionList" highlight-current-row height="300px" @current-change="selectLine1">
|
||||
<el-table-column prop="name" label="轨道" />
|
||||
<el-table-column prop="blockStatus" label="MAU">
|
||||
<el-col :span="20">
|
||||
<el-table ref="singleTable1" :data="tempData" highlight-current-row height="300px" @current-change="selectLine1">
|
||||
<el-table-column prop="name" width="100" label="轨道" />
|
||||
<el-table-column prop="blockStatus" width="120" label="MAU">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getStationName(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="blockProcess" label="临时限速">
|
||||
<el-table-column prop="blockProcess" width="80" label="临时限速">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getLimitSpeed(scope.row.code) }}</span>
|
||||
</template>
|
||||
@ -19,23 +19,27 @@
|
||||
<span>{{ getIsLimit(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="blockProcess" label="设置临时限速进程" width="140" />
|
||||
<el-table-column prop="blockProcess" label="设置临时限速进程" width="140">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getProcess(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unblockProcess" label="用户里程起点" width="110" />
|
||||
<el-table-column prop="unblockProcess" label="用户里程终点" width="110" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-table ref="singleTable1" :data="limitList" highlight-current-row height="300px" @current-change="selectLine2">
|
||||
<el-col :span="4">
|
||||
<el-table ref="singleTable2" :data="limitList" highlight-current-row height="300px" @current-change="selectLine2">
|
||||
<el-table-column prop="name" label="速度" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected || speedLimitValue<=0" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
@ -45,6 +49,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
<section-limit-speed ref="sectionLimitSpeed" @commandSuccess="commandSuccess" @cancelCommand="cancelCommand" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
@ -53,11 +58,13 @@ import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
import SectionLimitSpeed from './sectionLimitSpeed';
|
||||
|
||||
export default {
|
||||
name: 'SwitchActive',
|
||||
components: {
|
||||
NoticeInfo
|
||||
NoticeInfo,
|
||||
SectionLimitSpeed
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -88,7 +95,10 @@ export default {
|
||||
{ name: '70', value: 70 },
|
||||
{ name: '75', value: 75 },
|
||||
{ name: '80', value: 80 }
|
||||
]
|
||||
],
|
||||
initEle: null,
|
||||
commandEleCode:null,
|
||||
speedLimitValue: 0
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -108,7 +118,7 @@ export default {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '确认/取消设置临时限速区域';
|
||||
return '初始化设置临时限速区域';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -125,8 +135,16 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.tempData = [];
|
||||
this.sectionList.forEach(item => {
|
||||
if (item.type === '01' || item.type === '04') {
|
||||
this.tempData.push(item);
|
||||
}
|
||||
});
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.initEle = null;
|
||||
this.commandEleCode = null;
|
||||
this.speedLimitValue = 0;
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
@ -135,26 +153,104 @@ export default {
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$refs.singleTable1.setCurrentRow();
|
||||
this.$refs.singleTable2.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
selectLine1(val) {
|
||||
if (!val) { return; }
|
||||
this.initEle = null;
|
||||
this.commandEleCode = null;
|
||||
const step = {
|
||||
code: `${val.code}`,
|
||||
operation: OperationEvent.Section.setSpeed.choose.operation,
|
||||
param: {}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.selected = val;
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.speedLimitValue = sectionEle.speedUpLimit;
|
||||
if (this.speedLimitValue > 0) {
|
||||
this.$refs.singleTable2.setCurrentRow(this.limitList[this.speedLimitValue / 5 - 1]);
|
||||
} else {
|
||||
this.$refs.singleTable2.setCurrentRow();
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
selectLine2(val) {
|
||||
|
||||
if (!val) { return; }
|
||||
this.initEle = null;
|
||||
this.commandEleCode = null;
|
||||
const step = {
|
||||
operation: OperationEvent.Section.setSpeed.choose1.operation,
|
||||
param: {speedLimitValue: val.value}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.speedLimitValue = val.value;
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
getStationName(val) {
|
||||
const stationElm = this.$store.getters['map/getDeviceByCode'](val.stationCode);
|
||||
return stationElm.name;
|
||||
},
|
||||
getIsLimit(code) {
|
||||
if (this.commandEleCode === code) {
|
||||
return this.speedLimitValue > 0 ? '开启' : '关闭';
|
||||
}
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return sectionEle.speedUpLimit ? '开启' : '关闭';
|
||||
return sectionEle.speedUpLimit > 0 ? '开启' : '关闭';
|
||||
},
|
||||
getLimitSpeed(code) {
|
||||
if (this.commandEleCode === code) {
|
||||
return this.speedLimitValue > 0 ? this.speedLimitValue : 0;
|
||||
}
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return sectionEle.speedUpLimit;
|
||||
return sectionEle.speedUpLimit > 0 ? sectionEle.speedUpLimit : 0;
|
||||
},
|
||||
getProcess(code) {
|
||||
if (this.commandEleCode && this.commandEleCode === code) {
|
||||
return '完成';
|
||||
} else if (this.initEle && this.initEle.code === code) {
|
||||
return '已初始化';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
commit() {
|
||||
const step = {
|
||||
code: `${this.selected.code}`,
|
||||
operation: OperationEvent.Section.setSpeed.confirm.operation,
|
||||
param: {}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.sectionLimitSpeed.doShow(step, this.selected, this.speedLimitValue);
|
||||
this.initEle = this.selected;
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
commandSuccess(code, val) {
|
||||
this.commandEleCode = code;
|
||||
if (!val) {
|
||||
this.speedLimitValue = 0;
|
||||
this.$refs.singleTable2.setCurrentRow();
|
||||
}
|
||||
},
|
||||
cancelCommand() {
|
||||
this.initEle = null;
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="700px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-table ref="singleTable" :data="sectionList" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table ref="singleTable" :data="tempData" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table-column prop="name" label="轨道" />
|
||||
<el-table-column prop="blockStatus" label="MAU">
|
||||
<template slot-scope="scope">
|
||||
@ -25,7 +25,7 @@
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="commitDisabled" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
@ -93,7 +93,8 @@ export default {
|
||||
return this.isBlock ? '初始化关闭轨道' : '初始化开放轨道';
|
||||
},
|
||||
commitDisabled() {
|
||||
return !this.selected || (this.selected.blockade && this.isBlock) || (!this.selected.blockade && !this.isBlock);
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode']((this.selected || {}).code);
|
||||
return !this.selected || (sectionEle.blockade && this.isBlock) || (!sectionEle.blockade && !this.isBlock);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -110,6 +111,12 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.tempData = [];
|
||||
this.sectionList.forEach(item => {
|
||||
if (item.type === '01' || item.type === '04') {
|
||||
this.tempData.push(item);
|
||||
}
|
||||
});
|
||||
this.initEle = null;
|
||||
this.commandEleCode = null;
|
||||
this.selected = selected;
|
||||
@ -138,7 +145,7 @@ export default {
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.selected = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.selected = val;
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
|
@ -2,27 +2,43 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="1000px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="18">
|
||||
<el-table :data="sectionList" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table ref="singleTable1" :data="tempData" highlight-current-row height="300px" @current-change="selectLine1">
|
||||
<el-table-column prop="name" label="轨道" />
|
||||
<el-table-column prop="blockStatus" label="MAU" />
|
||||
<el-table-column prop="blockProcess" label="临时限速" />
|
||||
<el-table-column prop="unblockProcess" label="PM临时限速" width="110" />
|
||||
<el-table-column prop="blockProcess" label="设置临时限速进程" width="140" />
|
||||
<el-table-column prop="blockStatus" width="120" label="MAU">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getStationName(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="blockProcess" width="80" label="临时限速">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getLimitSpeed(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unblockProcess" label="PM临时限速" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getIsLimit(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="blockProcess" label="设置临时限速进程" width="140">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getProcess(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unblockProcess" label="用户里程起点" width="110" />
|
||||
<el-table-column prop="unblockProcess" label="用户里程终点" width="110" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-table :data="limitList" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table ref="singleTable2" :data="limitList" highlight-current-row height="300px" @current-change="selectLine2">
|
||||
<el-table-column prop="name" label="速度" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col v-if="selectShow" :span="3">
|
||||
<el-col :span="3">
|
||||
<fieldset style="padding-left: 10px;">
|
||||
<legend class="card_title">命令</legend>
|
||||
<el-radio-group v-model="radio">
|
||||
<el-radio label="1" style="margin-bottom: 10px;">确认(F)</el-radio>
|
||||
<el-radio label="2">取消(N)</el-radio>
|
||||
<el-radio-group v-model="command">
|
||||
<el-radio :label="true" style="margin-bottom: 10px;">确认(F)</el-radio>
|
||||
<el-radio :label="false">取消(N)</el-radio>
|
||||
</el-radio-group>
|
||||
</fieldset>
|
||||
</el-col>
|
||||
@ -32,7 +48,7 @@
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
@ -50,6 +66,7 @@ import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'SwitchActive',
|
||||
@ -65,10 +82,11 @@ export default {
|
||||
loading: false,
|
||||
selected: null,
|
||||
active: false,
|
||||
selectShow: false,
|
||||
activeName: 'first',
|
||||
tempData: [],
|
||||
radio: '1',
|
||||
command: true,
|
||||
operate: null,
|
||||
speedLimitValue: 0,
|
||||
limitList: [
|
||||
{ name: '5', value: 5 },
|
||||
{ name: '10', value: 10 },
|
||||
@ -122,11 +140,21 @@ export default {
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
doShow(operate, selected, value) {
|
||||
this.tempData = [];
|
||||
this.sectionList.forEach(item => {
|
||||
if (item.type === '01' || item.type === '04') {
|
||||
this.tempData.push(item);
|
||||
}
|
||||
});
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.operate = operate;
|
||||
this.speedLimitValue = value;
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$refs.singleTable1.setCurrentRow(selected);
|
||||
this.$refs.singleTable2.setCurrentRow(this.limitList[value / 5 - 1]);
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
@ -135,14 +163,46 @@ export default {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
selectLine(val) {
|
||||
// console.log(val);
|
||||
this.selectShow = true;
|
||||
selectLine1(val) {
|
||||
this.$refs.singleTable1.setCurrentRow(this.selected);
|
||||
},
|
||||
selectLine2(val) {
|
||||
this.$refs.singleTable2.setCurrentRow(this.limitList[this.speedLimitValue / 5 - 1]);
|
||||
},
|
||||
getStationName(val) {
|
||||
const stationElm = this.$store.getters['map/getDeviceByCode'](val.stationCode);
|
||||
return stationElm.name;
|
||||
},
|
||||
getIsLimit(code) {
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return sectionEle.speedUpLimit > 0 ? '开启' : '关闭';
|
||||
},
|
||||
getLimitSpeed(code) {
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return sectionEle.speedUpLimit > 0 ? sectionEle.speedUpLimit : 0;
|
||||
},
|
||||
getProcess(code) {
|
||||
if (this.selected && this.selected.code === code) {
|
||||
return '等待确认/取消';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
commit() {
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
const operate = {
|
||||
cmdType: this.command ? CMD.Section.CMD_SECTION_SET_LIMIT_SPEED : CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED,
|
||||
operation: this.command ? OperationEvent.Section.setSpeed.confirm1.operation : OperationEvent.Section.cancelSpeed.confirm1.operation,
|
||||
over: true,
|
||||
param: {sectionCode: this.selected.code, speedLimitValue:this.speedLimitValue}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
this.$emit('commandSuccess', this.selected.code, this.command ? this.speedLimitValue : 0);
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
@ -2,7 +2,7 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="700px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="18">
|
||||
<el-table ref="singleTable" :data="sectionList" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table ref="singleTable" :data="tempData" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table-column prop="name" label="轨道" />
|
||||
<el-table-column prop="blockStatus" label="MAU">
|
||||
<template slot-scope="scope">
|
||||
@ -114,6 +114,12 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.tempData = [];
|
||||
this.sectionList.forEach(item => {
|
||||
if (item.type === '01' || item.type === '04') {
|
||||
this.tempData.push(item);
|
||||
}
|
||||
});
|
||||
this.selected = selected;
|
||||
this.operate = operate;
|
||||
this.dialogShow = true;
|
||||
|
@ -2,32 +2,48 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="700px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-table :data="sectionList" highlight-current-row height="300px" @current-change="selectLine">
|
||||
<el-table-column prop="name" label="轨道" />
|
||||
<el-table-column prop="blockStatus" label="MAU" />
|
||||
<el-table-column prop="blockProcess" label="状态" />
|
||||
<el-table-column prop="unblockProcess" label="临时限速" />
|
||||
<el-table-column prop="unblockProcess" label="PM临时限速" />
|
||||
<el-table :data="tempData" highlight-current-row height="350px" @current-change="selectLine">
|
||||
<el-table-column prop="name" width="100" label="轨道" />
|
||||
<el-table-column prop="blockStatus" width="120" label="MAU">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getStationName(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="blockProcess" width="150" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getSectionStatus(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unblockProcess" label="临时限速">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getLimitSpeed(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unblockProcess" width="100" label="PM临时限速">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getIsLimit(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unblockProcess" label="站台" />
|
||||
<el-table-column prop="unblockProcess" label="闭塞区段" />
|
||||
<el-table-column prop="unblockProcess" label="打开进程" />
|
||||
<el-table-column prop="unblockProcess" label="关闭进程" />
|
||||
<el-table-column prop="unblockProcess" label="设置临时限速进程" />
|
||||
<el-table-column prop="unblockProcess" label="清除临时限速进程" />
|
||||
<el-table-column prop="unblockProcess" label="用户里程起点" />
|
||||
<el-table-column prop="unblockProcess" label="用户里程终点" />
|
||||
<el-table-column prop="unblockProcess" width="140" label="设置临时限速进程" />
|
||||
<el-table-column prop="unblockProcess" width="140" label="清除临时限速进程" />
|
||||
<el-table-column prop="unblockProcess" width="120" label="用户里程起点" />
|
||||
<el-table-column prop="unblockProcess" width="120" label="用户里程终点" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="5">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">打印(P)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="true">打印(P)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
<el-button :disabled="true">帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
@ -94,6 +110,12 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.tempData = [];
|
||||
this.sectionList.forEach(item => {
|
||||
if (item.type === '01' || item.type === '04') {
|
||||
this.tempData.push(item);
|
||||
}
|
||||
});
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
@ -112,8 +134,21 @@ export default {
|
||||
},
|
||||
commit() {
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
getStationName(val) {
|
||||
const stationElm = this.$store.getters['map/getDeviceByCode'](val.stationCode);
|
||||
return stationElm.name;
|
||||
},
|
||||
getLimitSpeed(code) {
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return sectionEle.speedUpLimit > 0 ? sectionEle.speedUpLimit : 0;
|
||||
},
|
||||
getSectionStatus(val) {
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
return sectionEle.blockade ? '关闭双向:所有列车' : '打开';
|
||||
},
|
||||
getIsLimit(code) {
|
||||
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return sectionEle.speedUpLimit > 0 ? '开启' : '关闭';
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
@ -51,53 +51,53 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '区段故障解锁',
|
||||
handler: this.fault,
|
||||
cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
|
||||
},
|
||||
{
|
||||
label: '区段跟踪激活',
|
||||
handler: this.active,
|
||||
cmdType: CMD.Section.CMD_SECTION_ACTIVE
|
||||
},
|
||||
{
|
||||
label: '区段跟踪切除',
|
||||
handler: this.split,
|
||||
cmdType: CMD.Section.CMD_SECTION_CUT_OFF
|
||||
},
|
||||
{
|
||||
label: '区段封锁',
|
||||
handler: this.lock,
|
||||
cmdType: CMD.Section.CMD_SECTION_BLOCK
|
||||
},
|
||||
{
|
||||
label: '区段解封',
|
||||
handler: this.unlock,
|
||||
cmdType: CMD.Section.CMD_SECTION_UNBLOCK
|
||||
}
|
||||
// {
|
||||
// label: '区段故障解锁',
|
||||
// handler: this.fault,
|
||||
// cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '区段跟踪激活',
|
||||
// handler: this.active,
|
||||
// cmdType: CMD.Section.CMD_SECTION_ACTIVE
|
||||
// },
|
||||
// {
|
||||
// label: '区段跟踪切除',
|
||||
// handler: this.split,
|
||||
// cmdType: CMD.Section.CMD_SECTION_CUT_OFF
|
||||
// },
|
||||
// {
|
||||
// label: '区段封锁',
|
||||
// handler: this.lock,
|
||||
// cmdType: CMD.Section.CMD_SECTION_BLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '区段解封',
|
||||
// handler: this.unlock,
|
||||
// cmdType: CMD.Section.CMD_SECTION_UNBLOCK
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
label: '区段跟踪激活',
|
||||
handler: this.active,
|
||||
cmdType: CMD.Section.CMD_SECTION_ACTIVE
|
||||
},
|
||||
{
|
||||
label: '区段跟踪切除',
|
||||
handler: this.split,
|
||||
cmdType: CMD.Section.CMD_SECTION_CUT_OFF
|
||||
},
|
||||
{
|
||||
label: '确认计轴有效',
|
||||
handler: this.alxeEffective,
|
||||
cmdType: CMD.Section.CMD_SECTION_COMFIRMATION_AXLE
|
||||
},
|
||||
{
|
||||
label: '设置临时限速',
|
||||
handler: this.setSpeed,
|
||||
cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
|
||||
}
|
||||
// {
|
||||
// label: '区段跟踪激活',
|
||||
// handler: this.active,
|
||||
// cmdType: CMD.Section.CMD_SECTION_ACTIVE
|
||||
// },
|
||||
// {
|
||||
// label: '区段跟踪切除',
|
||||
// handler: this.split,
|
||||
// cmdType: CMD.Section.CMD_SECTION_CUT_OFF
|
||||
// },
|
||||
// {
|
||||
// label: '确认计轴有效',
|
||||
// handler: this.alxeEffective,
|
||||
// cmdType: CMD.Section.CMD_SECTION_COMFIRMATION_AXLE
|
||||
// },
|
||||
// {
|
||||
// label: '设置临时限速',
|
||||
// handler: this.setSpeed,
|
||||
// cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED
|
||||
// }
|
||||
]
|
||||
},
|
||||
menuForce: [
|
||||
|
@ -54,113 +54,113 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '排列进路',
|
||||
handler: this.arrangementRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
},
|
||||
{
|
||||
label: '取消进路',
|
||||
handler: this.cancelTrainRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
},
|
||||
{
|
||||
label: '信号重开',
|
||||
handler: this.reopenSignal,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||
},
|
||||
{
|
||||
label: '信号机引导办理',
|
||||
handler: this.guide,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
||||
},
|
||||
{
|
||||
label: '人工解锁进路', // 信号机引导取消
|
||||
handler: this.humanTrainRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE
|
||||
},
|
||||
{
|
||||
label: '信号封锁',
|
||||
handler: this.lock,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
|
||||
},
|
||||
{
|
||||
label: '信号解封',
|
||||
handler: this.unlock,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
|
||||
},
|
||||
{
|
||||
label: 'Fleet进路办理',
|
||||
handler: this.singalPassModel,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
|
||||
},
|
||||
{
|
||||
label: 'Fleet进路取消',
|
||||
handler: this.singalCancelPassModel,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
|
||||
},
|
||||
{
|
||||
label: '进路交人工控',
|
||||
handler: this.humanControl,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
||||
},
|
||||
{
|
||||
label: '进路交自动控',
|
||||
handler: this.atsAutoControl,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
},
|
||||
{
|
||||
label: '查询进路控制状态',
|
||||
handler: this.detail,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
|
||||
}
|
||||
// {
|
||||
// label: '排列进路',
|
||||
// handler: this.arrangementRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '取消进路',
|
||||
// handler: this.cancelTrainRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '信号重开',
|
||||
// handler: this.reopenSignal,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||
// },
|
||||
// {
|
||||
// label: '信号机引导办理',
|
||||
// handler: this.guide,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
||||
// },
|
||||
// {
|
||||
// label: '人工解锁进路', // 信号机引导取消
|
||||
// handler: this.humanTrainRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE
|
||||
// },
|
||||
// {
|
||||
// label: '信号封锁',
|
||||
// handler: this.lock,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '信号解封',
|
||||
// handler: this.unlock,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
|
||||
// },
|
||||
// {
|
||||
// label: 'Fleet进路办理',
|
||||
// handler: this.singalPassModel,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
|
||||
// },
|
||||
// {
|
||||
// label: 'Fleet进路取消',
|
||||
// handler: this.singalCancelPassModel,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
|
||||
// },
|
||||
// {
|
||||
// label: '进路交人工控',
|
||||
// handler: this.humanControl,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '进路交自动控',
|
||||
// handler: this.atsAutoControl,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '查询进路控制状态',
|
||||
// handler: this.detail,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
label: '排列进路',
|
||||
handler: this.arrangementRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
},
|
||||
{
|
||||
label: '取消进路',
|
||||
handler: this.cancelTrainRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
},
|
||||
{
|
||||
label: '人工解锁进路', // 信号机引导取消
|
||||
handler: this.humanTrainRoute,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE
|
||||
},
|
||||
{
|
||||
label: '信号重开',
|
||||
handler: this.reopenSignal,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||
},
|
||||
{
|
||||
label: '进路交人工控',
|
||||
handler: this.humanControl,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
||||
},
|
||||
{
|
||||
label: '进路交自动控',
|
||||
handler: this.atsAutoControl,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
},
|
||||
{
|
||||
label: '设置通过模式',
|
||||
handler: this.singalPassModel,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
|
||||
},
|
||||
{
|
||||
label: '取消通过模式',
|
||||
handler: this.singalCancelPassModel,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
|
||||
},
|
||||
{
|
||||
label: '查询进路控制状态',
|
||||
handler: this.detail,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
|
||||
}
|
||||
// {
|
||||
// label: '排列进路',
|
||||
// handler: this.arrangementRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '取消进路',
|
||||
// handler: this.cancelTrainRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
||||
// },
|
||||
// {
|
||||
// label: '人工解锁进路', // 信号机引导取消
|
||||
// handler: this.humanTrainRoute,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE
|
||||
// },
|
||||
// {
|
||||
// label: '信号重开',
|
||||
// handler: this.reopenSignal,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL
|
||||
// },
|
||||
// {
|
||||
// label: '进路交人工控',
|
||||
// handler: this.humanControl,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '进路交自动控',
|
||||
// handler: this.atsAutoControl,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '设置通过模式',
|
||||
// handler: this.singalPassModel,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
|
||||
// },
|
||||
// {
|
||||
// label: '取消通过模式',
|
||||
// handler: this.singalCancelPassModel,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
|
||||
// },
|
||||
// {
|
||||
// label: '查询进路控制状态',
|
||||
// handler: this.detail,
|
||||
// cmdType: CMD.Signal.CMD_SIGNAL_DETAIL
|
||||
// }
|
||||
]
|
||||
},
|
||||
menuForce: [
|
||||
|
@ -46,43 +46,43 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '全站设置联锁自动触发',
|
||||
handler: this.setAutoTrigger,
|
||||
cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER
|
||||
},
|
||||
{
|
||||
label: '全站取消联锁自动触发',
|
||||
handler: this.cancelAutoTrigger,
|
||||
cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER
|
||||
},
|
||||
{
|
||||
label: '上电解锁',
|
||||
handler: this.powerUnLock,
|
||||
cmdType: CMD.Station.CMD_STATION_POWER_ON_UNLOCK
|
||||
},
|
||||
{
|
||||
label: '执行关键操作测试',
|
||||
handler: this.execKeyOperationTest,
|
||||
cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST
|
||||
}
|
||||
// {
|
||||
// label: '全站设置联锁自动触发',
|
||||
// handler: this.setAutoTrigger,
|
||||
// cmdType: CMD.Station.CMD_STATION_SET_CI_AUTO_TRIGGER
|
||||
// },
|
||||
// {
|
||||
// label: '全站取消联锁自动触发',
|
||||
// handler: this.cancelAutoTrigger,
|
||||
// cmdType: CMD.Station.CMD_STATION_CANCEL_CI_AUTO_TRIGGER
|
||||
// },
|
||||
// {
|
||||
// label: '上电解锁',
|
||||
// handler: this.powerUnLock,
|
||||
// cmdType: CMD.Station.CMD_STATION_POWER_ON_UNLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '执行关键操作测试',
|
||||
// handler: this.execKeyOperationTest,
|
||||
// cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
label: '所有进路自排关',
|
||||
handler: this.humanControlALL,
|
||||
cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING
|
||||
},
|
||||
{
|
||||
label: '所有进路自排开',
|
||||
handler: this.atsAutoControlALL,
|
||||
cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING
|
||||
},
|
||||
{
|
||||
label: '执行关键操作测试',
|
||||
handler: this.execKeyOperationTest,
|
||||
cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST
|
||||
}
|
||||
// {
|
||||
// label: '所有进路自排关',
|
||||
// handler: this.humanControlALL,
|
||||
// cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '所有进路自排开',
|
||||
// handler: this.atsAutoControlALL,
|
||||
// cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING
|
||||
// },
|
||||
// {
|
||||
// label: '执行关键操作测试',
|
||||
// handler: this.execKeyOperationTest,
|
||||
// cmdType: CMD.Station.CMD_STATION_KEY_OPERATION_TEST
|
||||
// }
|
||||
]
|
||||
},
|
||||
menuForce: [
|
||||
|
@ -33,28 +33,28 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '请求站控',
|
||||
handler: this.setStationControl,
|
||||
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL
|
||||
},
|
||||
{
|
||||
label: '请求遥控',
|
||||
handler: this.setCenterControl,
|
||||
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL
|
||||
}
|
||||
// {
|
||||
// label: '请求站控',
|
||||
// handler: this.setStationControl,
|
||||
// cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL
|
||||
// },
|
||||
// {
|
||||
// label: '请求遥控',
|
||||
// handler: this.setCenterControl,
|
||||
// cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
label: '请求站控',
|
||||
handler: this.setStationControl,
|
||||
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL
|
||||
},
|
||||
{
|
||||
label: '请求遥控',
|
||||
handler: this.setCenterControl,
|
||||
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL
|
||||
}
|
||||
// {
|
||||
// label: '请求站控',
|
||||
// handler: this.setStationControl,
|
||||
// cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL
|
||||
// },
|
||||
// {
|
||||
// label: '请求遥控',
|
||||
// handler: this.setCenterControl,
|
||||
// cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL
|
||||
// }
|
||||
]
|
||||
},
|
||||
menuForce: [
|
||||
|
@ -54,88 +54,88 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '扣车',
|
||||
handler: this.setDetainTrain,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN
|
||||
},
|
||||
{
|
||||
label: '取消扣车',
|
||||
handler: this.cancelDetainTrain,
|
||||
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN
|
||||
},
|
||||
{
|
||||
label: '提前发车',
|
||||
handler: this.earlyDeparture,
|
||||
cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART
|
||||
},
|
||||
{
|
||||
label: '站台详细信息',
|
||||
handler: this.detail,
|
||||
cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS
|
||||
}
|
||||
// {
|
||||
// label: '扣车',
|
||||
// handler: this.setDetainTrain,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN
|
||||
// },
|
||||
// {
|
||||
// label: '取消扣车',
|
||||
// handler: this.cancelDetainTrain,
|
||||
// cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN
|
||||
// },
|
||||
// {
|
||||
// label: '提前发车',
|
||||
// handler: this.earlyDeparture,
|
||||
// cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART
|
||||
// },
|
||||
// {
|
||||
// label: '站台详细信息',
|
||||
// handler: this.detail,
|
||||
// cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
label: '扣车',
|
||||
handler: this.setDetainTrain,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN
|
||||
},
|
||||
{
|
||||
label: '取消扣车',
|
||||
handler: this.cancelDetainTrain,
|
||||
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN
|
||||
},
|
||||
{
|
||||
label: '批量扣车',
|
||||
handler: this.setBulkBuckleTrain,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_ALL
|
||||
},
|
||||
{
|
||||
label: '批量取消扣车',
|
||||
handler: this.cancelBulkBuckleTrain,
|
||||
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_ALL
|
||||
},
|
||||
{
|
||||
label: '提前发车',
|
||||
handler: this.earlyDeparture,
|
||||
cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART
|
||||
},
|
||||
{
|
||||
label: '设置跳停',
|
||||
handler: this.setJumpStop,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_JUMP_STOP
|
||||
},
|
||||
{
|
||||
label: '取消跳停',
|
||||
handler: this.cancelJumpStop,
|
||||
cmdType:CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP
|
||||
},
|
||||
{
|
||||
label: '设置停站时间',
|
||||
handler: this.setStopTime,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_PARK_TIME
|
||||
},
|
||||
{
|
||||
label: '设置运行等级',
|
||||
handler: this.setRunLevel,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_RUN_TIME
|
||||
},
|
||||
{
|
||||
label: '区间列车数量限制',
|
||||
handler: this.setDetainTrainAll,
|
||||
cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_AUTO
|
||||
},
|
||||
{
|
||||
label: '取消区间列车数量限制',
|
||||
handler: this.cancelDetainTrainAll,
|
||||
cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_AUTO
|
||||
},
|
||||
{
|
||||
label: '查看站台信息',
|
||||
handler: this.detail,
|
||||
cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS
|
||||
}
|
||||
// {
|
||||
// label: '扣车',
|
||||
// handler: this.setDetainTrain,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN
|
||||
// },
|
||||
// {
|
||||
// label: '取消扣车',
|
||||
// handler: this.cancelDetainTrain,
|
||||
// cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN
|
||||
// },
|
||||
// {
|
||||
// label: '批量扣车',
|
||||
// handler: this.setBulkBuckleTrain,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_ALL
|
||||
// },
|
||||
// {
|
||||
// label: '批量取消扣车',
|
||||
// handler: this.cancelBulkBuckleTrain,
|
||||
// cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_ALL
|
||||
// },
|
||||
// {
|
||||
// label: '提前发车',
|
||||
// handler: this.earlyDeparture,
|
||||
// cmdType:CMD.Stand.CMD_STAND_EARLY_DEPART
|
||||
// },
|
||||
// {
|
||||
// label: '设置跳停',
|
||||
// handler: this.setJumpStop,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_JUMP_STOP
|
||||
// },
|
||||
// {
|
||||
// label: '取消跳停',
|
||||
// handler: this.cancelJumpStop,
|
||||
// cmdType:CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP
|
||||
// },
|
||||
// {
|
||||
// label: '设置停站时间',
|
||||
// handler: this.setStopTime,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_PARK_TIME
|
||||
// },
|
||||
// {
|
||||
// label: '设置运行等级',
|
||||
// handler: this.setRunLevel,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_RUN_TIME
|
||||
// },
|
||||
// {
|
||||
// label: '区间列车数量限制',
|
||||
// handler: this.setDetainTrainAll,
|
||||
// cmdType:CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_AUTO
|
||||
// },
|
||||
// {
|
||||
// label: '取消区间列车数量限制',
|
||||
// handler: this.cancelDetainTrainAll,
|
||||
// cmdType:CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_AUTO
|
||||
// },
|
||||
// {
|
||||
// label: '查看站台信息',
|
||||
// handler: this.detail,
|
||||
// cmdType:CMD.Stand.CMD_STAND_VIEW_STATUS
|
||||
// }
|
||||
]
|
||||
},
|
||||
menuForce: [
|
||||
|
@ -52,87 +52,87 @@ export default {
|
||||
menu: [],
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
label: '定操',
|
||||
handler: this.locate,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
|
||||
},
|
||||
{
|
||||
label: '反操',
|
||||
handler: this.reverse,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
|
||||
},
|
||||
{
|
||||
label: '道岔单锁',
|
||||
handler: this.lock,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
|
||||
},
|
||||
{
|
||||
label: '道岔单解',
|
||||
handler: this.unlock,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK
|
||||
},
|
||||
{
|
||||
label: '道岔封锁',
|
||||
handler: this.block,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_BLOCK
|
||||
},
|
||||
{
|
||||
label: '道岔解封',
|
||||
handler: this.unblock,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK
|
||||
}
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
label: '定操',
|
||||
handler: this.locate,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
|
||||
},
|
||||
{
|
||||
label: '反操',
|
||||
handler: this.reverse,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
|
||||
},
|
||||
// {
|
||||
// label: '定操',
|
||||
// handler: this.locate,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
|
||||
// },
|
||||
// {
|
||||
// label: '反操',
|
||||
// handler: this.reverse,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
|
||||
// },
|
||||
// {
|
||||
// label: '道岔单锁',
|
||||
// handler: this.lock,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
|
||||
// },
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: '区段激活',
|
||||
handler: this.active,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_ACTIVE
|
||||
},
|
||||
{
|
||||
label: '区段切除',
|
||||
handler: this.split,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_CUT_OFF
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: '确认计轴有效',
|
||||
handler: this.alxeEffective,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE
|
||||
},
|
||||
{
|
||||
label: '设置临时限速',
|
||||
handler: this.setSpeed,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: '查看公里标',
|
||||
handler: this.undeveloped,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED
|
||||
}
|
||||
// {
|
||||
// label: '道岔单解',
|
||||
// handler: this.unlock,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '道岔封锁',
|
||||
// handler: this.block,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_BLOCK
|
||||
// },
|
||||
// {
|
||||
// label: '道岔解封',
|
||||
// handler: this.unblock,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK
|
||||
// }
|
||||
],
|
||||
Center: [
|
||||
// {
|
||||
// label: '定操',
|
||||
// handler: this.locate,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
|
||||
// },
|
||||
// {
|
||||
// label: '反操',
|
||||
// handler: this.reverse,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
|
||||
// },
|
||||
// {
|
||||
// label: '道岔单锁',
|
||||
// handler: this.lock,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
|
||||
// },
|
||||
// {
|
||||
// type: 'separator'
|
||||
// },
|
||||
// {
|
||||
// label: '区段激活',
|
||||
// handler: this.active,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_ACTIVE
|
||||
// },
|
||||
// {
|
||||
// label: '区段切除',
|
||||
// handler: this.split,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_CUT_OFF
|
||||
// },
|
||||
// {
|
||||
// type: 'separator'
|
||||
// },
|
||||
// {
|
||||
// label: '确认计轴有效',
|
||||
// handler: this.alxeEffective,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE
|
||||
// },
|
||||
// {
|
||||
// label: '设置临时限速',
|
||||
// handler: this.setSpeed,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED
|
||||
// },
|
||||
// {
|
||||
// type: 'separator'
|
||||
// },
|
||||
// {
|
||||
// label: '查看公里标',
|
||||
// handler: this.undeveloped,
|
||||
// cmdType: CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED
|
||||
// }
|
||||
]
|
||||
},
|
||||
menuForce: [
|
||||
|
@ -13,7 +13,7 @@ import FaviconBxkc from '@/assets/icon/favicon_bxkc.png';
|
||||
import FaviconCrsc from '@/assets/icon/favicon_crsc.png';
|
||||
import FaviconNty from '@/assets/icon/favicon_nty.png';
|
||||
import FaviconBjd from '@/assets/icon/favicon_bjd.png';
|
||||
import FaviconJdy from '@/assets/icon/favicon_jdy.png';
|
||||
import FaviconSdy from '@/assets/icon/favicon_jdy.png';
|
||||
import Link_Bxkc from '@/assets/icon/link_bxkc.png';
|
||||
import Link_Crsc from '@/assets/icon/link_crsc.png';
|
||||
import Link_Hls from '@/assets/icon/link_hls.png';
|
||||
@ -45,17 +45,35 @@ export const loginInfo = {
|
||||
navigationMarginLeft: '175px',
|
||||
systemType: '011'
|
||||
},
|
||||
jdy: {
|
||||
sdy: {
|
||||
title: '江苏电子信息职业学院城市轨道交通实训平台',
|
||||
loginPath: '/login?project=jdy',
|
||||
loginParam: 'DEFAULT',
|
||||
loginPath: '/login?project=sdy',
|
||||
loginParam: 'SDY',
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
ntyc: {
|
||||
title: '南京铁道职业技术学院城市轨道交通实训平台(专用版)',
|
||||
loginPath: '/login?project=ntyc',
|
||||
loginParam: 'NTYC',
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
ntyl: {
|
||||
title: '南京铁道职业技术学院城市轨道交通实训平台',
|
||||
loginPath: '/login?project=ntyl',
|
||||
loginParam: 'NTYL',
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
nty: {
|
||||
title: '南京铁道职业技术学院城市轨道交通实训平台',
|
||||
title: '南京铁道职业技术学院城市轨道交通实训平台(通用版)',
|
||||
loginPath:'/login?project=nty',
|
||||
loginParam: 'NTY',
|
||||
titleDistance: '-150px',
|
||||
@ -118,8 +136,26 @@ export const loginInfo = {
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '013'
|
||||
},
|
||||
designnty: {
|
||||
designntyl: {
|
||||
title: '南京铁道职业技术学院城市轨道交通设计平台',
|
||||
loginPath:'/design/login?project=ntyl',
|
||||
loginParam: 'NTYL',
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
designntyc: {
|
||||
title: '南京铁道职业技术学院城市轨道交通设计平台(专用版)',
|
||||
loginPath:'/design/login?project=ntyc',
|
||||
loginParam: 'NTYC',
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
designnty: {
|
||||
title: '南京铁道职业技术学院城市轨道交通设计平台(通用版)',
|
||||
loginPath:'/design/login?project=nty',
|
||||
loginParam: 'NTY',
|
||||
titleDistance: '-150px',
|
||||
@ -127,10 +163,10 @@ export const loginInfo = {
|
||||
navigationMarginLeft: '60px',
|
||||
systemType: '011'
|
||||
},
|
||||
designjdy: {
|
||||
designsdy: {
|
||||
title: '江苏电子信息职业学院城市轨道交通设计平台',
|
||||
loginPath: '/design/login?project=jdy',
|
||||
loginParam: 'DEFAULT',
|
||||
loginPath: '/design/login?project=sdy',
|
||||
loginParam: 'JYD',
|
||||
titleDistance: '-150px',
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '60px',
|
||||
@ -379,10 +415,14 @@ export const ProjectIcon = {
|
||||
designdrts: Favicon,
|
||||
nty: FaviconNty,
|
||||
designnty: FaviconNty,
|
||||
ntyc: FaviconNty,
|
||||
designntyc: FaviconNty,
|
||||
nty1: FaviconNty,
|
||||
designntyl: FaviconNty,
|
||||
bjd: FaviconBjd,
|
||||
designbjd: FaviconBjd,
|
||||
jdy: FaviconJdy,
|
||||
designjdy: FaviconJdy
|
||||
sdy: FaviconSdy,
|
||||
designsdy: FaviconSdy
|
||||
};
|
||||
|
||||
export const ProjectCode = {
|
||||
@ -398,17 +438,22 @@ export const ProjectCode = {
|
||||
designdrts: 'DRTS',
|
||||
nty: 'NTY',
|
||||
designnty: 'NTY',
|
||||
ntyl: 'NTYL',
|
||||
designnty1: 'NTYL',
|
||||
ntyc: 'NTYC',
|
||||
designntyc: 'NTYC',
|
||||
bjd: 'BJD',
|
||||
designbjd: 'BJD',
|
||||
jdy: 'JDY',
|
||||
designjdy: 'JDY'
|
||||
sdy: 'SDY',
|
||||
designsdy: 'SDY'
|
||||
};
|
||||
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd']; // 底部栏仅展示公司信息不展示备案号
|
||||
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'nty', 'designnty']; // 实训设计平台通过项目code获取地图列表的项目
|
||||
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designnty1']; // 实训设计平台通过项目code获取地图列表的项目
|
||||
export const CaseHideProjectList = ['heb', 'designheb']; // 案例展示隐藏的项目
|
||||
export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts', 'hyd', 'designhyd']; // 登录页右下角版本开发基于不展示
|
||||
export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd']; // 登录页右下角主体不展示
|
||||
export const ProjectLoginStyleList = ['gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'drts', 'hyd', 'designhyd', 'nty', 'designnty', 'bjd', 'designbjd', 'jdy', 'designjdy']; // 登录页样式
|
||||
export const ProjectLoginStyleList = ['gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc',
|
||||
'crsc', 'designcrsc', 'hls', 'designhls', 'drts', 'hyd', 'designhyd', 'nty', 'designnty', 'bjd', 'designbjd', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl']; // 登录页样式
|
||||
export const NoQrcodeList = ['heb', 'designheb'];
|
||||
export const NoSimulationQrCodeList = ['heb', 'bjd'];
|
||||
export const goOtherPlatformMenu = { // 导航栏快速切换平台
|
||||
@ -438,8 +483,8 @@ export const goOtherPlatformMenu = { // 导航栏快速切换平台
|
||||
designnty: '/login?project=nty',
|
||||
bjd: '/design/login?project=bjd',
|
||||
designbjd: '/login?project=bjd',
|
||||
jdy: '/design/login?project=jdy',
|
||||
designjdy: '/login?project=jdy'
|
||||
sdy: '/design/login?project=sdy',
|
||||
designsdy: '/login?project=sdy'
|
||||
};
|
||||
export const ProjectList = [
|
||||
{value:'xty', label:'西铁院'},
|
||||
@ -447,8 +492,10 @@ export const ProjectList = [
|
||||
{value: 'xadt', label: '西安地铁'},
|
||||
{value: 'heb', label: '哈尔滨'},
|
||||
{value: 'drts', label: '调度大赛'},
|
||||
{value: 'nty', label: '南铁院'},
|
||||
{value: 'nty', label: '南铁院(通用版)'},
|
||||
{value: 'ntyc', label: '南铁院(专用版)'},
|
||||
{value: 'ntyl', label: '南铁院(本地版)'},
|
||||
{value: 'bjd', label: '北交大'},
|
||||
{value: 'urtss', label: '陪标项目'},
|
||||
{value: 'jdy', label: '江苏电子'}
|
||||
{value: 'sdy', label: '苏电院'}
|
||||
];
|
||||
|
@ -1337,6 +1337,10 @@ export const OperationEvent = {
|
||||
menuButton: {
|
||||
operation: '4077',
|
||||
domId: '_Tips-Section-SetSpeed-Menu{BOTTOM}'
|
||||
},
|
||||
choose1: {
|
||||
operation: '4078',
|
||||
domId: '_Tips-Section-SetSpeed-Choose1'
|
||||
}
|
||||
},
|
||||
// 取消速度
|
||||
|
@ -741,7 +741,7 @@ export default {
|
||||
font-size: 40px;
|
||||
font-weight: bold;
|
||||
top: 150px;
|
||||
width: 1000px;
|
||||
width: 1050px;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ export default {
|
||||
name: this.$t('map.drawData'),
|
||||
item: [
|
||||
{ prop:'type', label: this.$t('map.saidLampType'), type: 'select', optionLabel: 'name', optionValue: 'value', options: this.typeList, deviceChange: this.typeChange },
|
||||
{ prop: 'code', label: `${this.$t('map.code')}`, type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.selectLists, deviceChange: this.deviceChange },
|
||||
{ prop: 'code', label: `${this.$t('map.code')}`, type: 'select', optionLabel: 'code', optionValue: 'code', options: this.selectLists, deviceChange: this.deviceChange },
|
||||
{ prop: 'name', label: this.$t('map.saidLampName'), type: 'input', isHidden: this.noNameTypeList.includes(this.editModel.type) },
|
||||
{ prop: 'position', label: this.$t('map.textPoints'), type: 'coordinate', width: '140px', children: [
|
||||
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '20px' },
|
||||
|
@ -137,7 +137,7 @@ export default {
|
||||
all:{
|
||||
name:'',
|
||||
item: [
|
||||
{ prop: 'stationCode', label: this.$t('map.stationName'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.stationList },
|
||||
{ prop: 'stationCode', label: this.$t('map.stationNameColon'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.stationList },
|
||||
{ prop: 'type', label: this.$t('map.counterType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.typeList }
|
||||
]
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ export default {
|
||||
all:{
|
||||
name:'',
|
||||
item: [
|
||||
{ prop: 'stationCode', label: this.$t('map.stationName'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.stationList }
|
||||
{ prop: 'stationCode', label: this.$t('map.stationNameColon'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.stationList }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ class Model {
|
||||
this.position = { x: 0, y: 0 };
|
||||
this.kilometerPosition = { x: 0, y: 0 }; // 公里标偏移坐标
|
||||
this.createControlMode = false;
|
||||
// this.createTurnBack = false;
|
||||
this.createTurnBack = false;
|
||||
// this.turnBackPoint = {x: 0, y: 0}; // 按图折返坐标
|
||||
this.controlModePoint = { x: 0, y: 0 }; // 控制模式坐标
|
||||
}
|
||||
@ -192,5 +192,6 @@ class Model {
|
||||
|
||||
export default function getModel(type) {
|
||||
const model = new Model(type);
|
||||
// console.log(model, type, '****');
|
||||
return model;
|
||||
}
|
||||
|
483
src/views/newMap/newMapdraft/mapoperate/signal/batchSetting.vue
Normal file
483
src/views/newMap/newMapdraft/mapoperate/signal/batchSetting.vue
Normal file
@ -0,0 +1,483 @@
|
||||
<template>
|
||||
<el-collapse v-model="collapseActive" accordion style="margin-left: 20px">
|
||||
<el-collapse-item title="构建信号机偏移量" name="1">
|
||||
<el-form ref="mark" label-width="130px" :model="addModel" size="mini">
|
||||
<el-form-item label="左右偏移值" prop="number">
|
||||
<el-input v-model="addModel.number" style="width: 178px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="editAll">设置</el-button>
|
||||
<el-button type="" style="margin: 0;" size="small" @click="questionList = []">{{ $t('map.clearHint') }}</el-button>
|
||||
</div>
|
||||
<div class="questionTip">
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||
<el-card v-if="questionList.length" class="box-card">
|
||||
<div v-for="(item, index) in questionList" :key="index" class="text item">{{ item }}</div>
|
||||
</el-card>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机类型" name="2">
|
||||
<el-form ref="signalType" label-width="130px" :model="typeModel" size="mini" style="margin-top: 40px">
|
||||
<el-form-item label="设置信号机范围:" prop="scope">
|
||||
<el-select v-model="typeModel.scope" placeholder="请选择">
|
||||
<el-option v-for="item in signalScopeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="信号机类型:" prop="type">
|
||||
<el-select v-model="typeModel.type" placeholder="请选择">
|
||||
<el-option v-for="item in signalTypeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setAllSignalType">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机归属联锁站" name="3">
|
||||
<el-form ref="signalCiStation" label-width="130px" :model="ciModel" size="mini">
|
||||
<el-form-item label="信号机范围:">
|
||||
<el-select v-model="ciModel.stationList" multiple placeholder="请选择">
|
||||
<el-option v-for="item in centralizedStationList" :key="item.code" :label="item.name+'下信号机'" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="归属联锁站:">
|
||||
<el-select v-model="ciModel.ciStation" placeholder="请选择">
|
||||
<el-option v-for="item in ciStationList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setCiStationSignal">设置</el-button>
|
||||
</div>
|
||||
<el-form ref="signalCiStation1" label-width="130px" :model="ciModelForm" size="mini" :rules="ciModelFormRules" style="margin-top: 15px;">
|
||||
<el-form-item label="信号机选择:" prop="signalList">
|
||||
<el-select v-model="ciModelForm.signalList" multiple filterable placeholder="请选择">
|
||||
<el-option v-for="item in filterSignalList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'signalCodes' ? 'danger' : 'primary'"
|
||||
@click="hover('signalCodes')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="归属联锁站:" prop="ciStation">
|
||||
<el-select v-model="ciModelForm.ciStation" placeholder="请选择">
|
||||
<el-option v-for="item in ciStationList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setCiStationSignalLists">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置引导信号" name="4">
|
||||
<el-form ref="setGuideSignal" label-width="130px" :model="guideModel" size="mini">
|
||||
<el-form-item label="设置信号机范围:" prop="scope">
|
||||
<el-select v-model="guideModel.scope" placeholder="请选择">
|
||||
<el-option v-for="item in signalScopeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否引导信号:" prop="number">
|
||||
<el-checkbox v-model="guideModel.callOn" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box" style="margin-top: 20px">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setSignalCallOn">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置灭灯显示(CTC级)" name="5">
|
||||
<el-form ref="ctcForm" label-width="160px" :model="ctcModel" size="mini">
|
||||
<el-form-item label="是否灭灯显示(CTC级):" prop="number">
|
||||
<el-checkbox v-model="ctcModel.ctc" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setCtcShow">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置灯位类型" name="6">
|
||||
<el-form ref="ctcForm" label-width="160px" :model="lampPositionModel" size="mini">
|
||||
<el-form-item label="灯位类型:" prop="lampPositionType">
|
||||
<el-select v-model="lampPositionModel.lampPositionType">
|
||||
<el-option v-for="item in SignalLampPositionTypeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setLampPosition">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="是否无延续保护" name="7">
|
||||
<el-form ref="noOverlapForm" label-width="160px" :model="noOverlapModel" size="mini">
|
||||
<el-form-item label="是否无延续保护">
|
||||
<el-checkbox v-model="noOverlapModel.noOverlap" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setLampNoOverlap">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机唯一名称" name="8">
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setSignalName">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机名称与车站关联" name="9">
|
||||
<el-form ref="signalStationForm" label-width="160px" :model="signalStationModel" size="mini" :rules="signalStationRules">
|
||||
<el-form-item label="车站选择" prop="signalStationCode">
|
||||
<el-select v-model="signalStationModel.signalStationCode" placeholder="请选择">
|
||||
<el-option v-for="item in stationList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'signalStationCodeType' ? 'danger' : 'primary'"
|
||||
@click="hover('signalStationCodeType')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="信号机选择" prop="signalLists">
|
||||
<el-select v-model="signalStationModel.signalLists" multiple placeholder="请选择">
|
||||
<el-option v-for="item in signalList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'signalCodesType' ? 'danger' : 'primary'"
|
||||
@click="hover('signalCodesType')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setSignalUniqueName">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</template>
|
||||
<script>
|
||||
import { deepAssign } from '@/utils/index';
|
||||
import { mapGetters } from 'vuex';
|
||||
export default {
|
||||
name:'BatchSetting',
|
||||
props: {
|
||||
field:{
|
||||
type:String,
|
||||
default: function () {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
collapseActive: '',
|
||||
SignalLampPositionTypeList: [],
|
||||
addModel: {
|
||||
number: 2
|
||||
},
|
||||
questionList: [],
|
||||
signalStationModel: {
|
||||
signalStationCode: '',
|
||||
signalLists: []
|
||||
},
|
||||
signalStationRules: {
|
||||
signalStationCode: [
|
||||
{ required: true, message: '请选择车站', trigger: 'change' }
|
||||
],
|
||||
signalLists: [
|
||||
{ required: true, message: '请选择信号机', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
ctcModel: {
|
||||
ctc: true
|
||||
},
|
||||
noOverlapModel: {
|
||||
noOverlap: false
|
||||
},
|
||||
guideModel: {
|
||||
scope: 'All',
|
||||
callOn: true
|
||||
},
|
||||
lampPositionModel: {
|
||||
lampPositionType: ''
|
||||
},
|
||||
ciModel: {
|
||||
stationList: [],
|
||||
ciStation: []
|
||||
},
|
||||
ciModelForm: {
|
||||
signalList: [],
|
||||
ciStation: ''
|
||||
},
|
||||
ciModelFormRules: {
|
||||
signalList: [
|
||||
{ required: true, message: '请选择信号机', trigger: 'change' }
|
||||
],
|
||||
ciStation: [
|
||||
{ required: true, message: '请选择连锁站', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
signalScopeList: [
|
||||
{ code: 'All', name: '全部信号机'},
|
||||
{ code: 'Virtual', name: '虚拟信号机'},
|
||||
{ code: 'NoVirtual', name: '非虚拟信号机'}
|
||||
],
|
||||
signalTypeList: [
|
||||
{ code: 'PROTECTION', name: '防护信号机'},
|
||||
{ code: 'BLOCKING', name: '阻挡信号机'},
|
||||
{ code: 'PASSING', name: '通过信号机'}
|
||||
],
|
||||
typeModel: {
|
||||
scope: 'All',
|
||||
type: 'PROTECTION'
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'signalList',
|
||||
'sectionList',
|
||||
'stationList',
|
||||
'lineCode'
|
||||
]),
|
||||
// 未设置联锁站信号机列表
|
||||
filterSignalList() {
|
||||
let list = [];
|
||||
if (this.signalList && this.signalList.length) {
|
||||
list = this.signalList.filter(elem => {
|
||||
return !elem.interlockStationCode;
|
||||
});
|
||||
}
|
||||
console.log(list, '过滤信号机联锁');
|
||||
return list;
|
||||
},
|
||||
ciStationList() {
|
||||
let list = [];
|
||||
list = this.stationList.filter(station=>{
|
||||
return station.ciStation;
|
||||
});
|
||||
return list;
|
||||
},
|
||||
centralizedStationList() {
|
||||
let list = [];
|
||||
list = this.stationList.filter(station=>{
|
||||
return station.centralized;
|
||||
});
|
||||
return list;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$Dictionary.signalLampPositionType().then(list => {
|
||||
this.SignalLampPositionTypeList = list;
|
||||
});
|
||||
},
|
||||
methods:{
|
||||
hover(field) {
|
||||
field = field === this.field ? '' : field;
|
||||
this.$emit('signalSectionCode', field);
|
||||
},
|
||||
// 构建信号机偏移量
|
||||
editAll() {
|
||||
if (this.addModel.number != '') {
|
||||
const models = [];
|
||||
this.questionList = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
const section = this.findSection(signalModel); // 关联区段model
|
||||
if (section.code && item.sectionCode != section.code) {
|
||||
signalModel.sectionCode = section.code; // 重置信号机所属区段
|
||||
}
|
||||
if (!section.code) {
|
||||
this.questionList.push(`${item.name}(${item.code}) 信号机位置可能不正确,请手动调试归属区段及偏移量.`);
|
||||
} else { // 一旦不正确 不做偏移处理
|
||||
signalModel.sectionOffset = this.addModel.number;
|
||||
if (signalModel.right) {
|
||||
if (section.lengthFact) {
|
||||
signalModel.sectionOffset = Math.abs(Number(section.lengthFact) - this.addModel.number);
|
||||
}
|
||||
}
|
||||
}
|
||||
models.push(signalModel);
|
||||
// if (this.editModel.code == signalModel.code) {
|
||||
// this.editModel.sectionCode = signalModel.sectionCode;
|
||||
// }
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
// this.deviceSelect();
|
||||
|
||||
} else {
|
||||
this.$message('请输入偏移量');
|
||||
}
|
||||
},
|
||||
// 寻找信号机关联区段
|
||||
findSection(signal) {
|
||||
// 01 向左 02 向右
|
||||
let model = {};
|
||||
this.sectionList.forEach(section => {
|
||||
if (!signal.right && section.type != '02' && section.type != '04') {
|
||||
if (section.points[0].x == signal.position.x && Math.abs(section.points[0].y - signal.position.y) <= 20) {
|
||||
model = section;
|
||||
}
|
||||
} else if (signal.right && section.type != '02' && section.type != '04') {
|
||||
if (section.points[section.points.length - 1].x == signal.position.x && Math.abs(section.points[section.points.length - 1].y - signal.position.y) <= 20) {
|
||||
model = section;
|
||||
}
|
||||
}
|
||||
});
|
||||
return model;
|
||||
},
|
||||
setSignalName() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item);
|
||||
signalModel.uniqueName = item.name;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setSignalUniqueName() {
|
||||
this.$refs['signalStationForm'].validate(valid => {
|
||||
if (valid) {
|
||||
const models = [];
|
||||
this.signalStationModel.signalLists.forEach(code => {
|
||||
const signalModel = deepAssign({}, this.$store.getters['map/getDeviceByCode'](code));
|
||||
const stationModel = this.$store.getters['map/getDeviceByCode'](this.signalStationModel.signalStationCode);
|
||||
signalModel.uniqueName = `${signalModel.name}_${stationModel.jp}`;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
this.signalStationModel.signalLists = [];
|
||||
}
|
||||
});
|
||||
},
|
||||
setLampNoOverlap() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item);
|
||||
signalModel.noOverlap = this.noOverlapModel.noOverlap;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setSignalCallOn() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
if (this.guideModel.scope === 'All' || (this.guideModel.scope === 'Virtual' && item.virtual) || (this.guideModel.scope === 'NoVirtual' && !item.virtual)) {
|
||||
if (signalModel.type !== 'BLOCKING') {
|
||||
signalModel.callOn = this.guideModel.callOn;
|
||||
}
|
||||
models.push(signalModel);
|
||||
}
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setCtcShow() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
signalModel.ctc = this.ctcModel.ctc;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setLampPosition() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
signalModel.lampPositionType = this.lampPositionModel.lampPositionType;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setAllSignalType(val) {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
if (this.typeModel.scope === 'All' || (this.typeModel.scope === 'Virtual' && item.virtual) || (this.typeModel.scope === 'NoVirtual' && !item.virtual)) {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
signalModel.type = this.typeModel.type;
|
||||
models.push(signalModel);
|
||||
}
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setCiStationSignalLists() {
|
||||
this.$refs['signalCiStation1'].validate(valid => {
|
||||
if (valid) {
|
||||
const models = [];
|
||||
this.ciModelForm.signalList.forEach(code => {
|
||||
const signalModel = deepAssign({}, this.$store.getters['map/getDeviceByCode'](code)); // 深拷贝
|
||||
signalModel.interlockStationCode = this.ciModelForm.ciStation;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
this.ciModelForm.signalList = [];
|
||||
}
|
||||
});
|
||||
},
|
||||
setCiStationSignal() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
if (this.ciModel.stationList.includes(item.stationCode)) {
|
||||
signalModel.interlockStationCode = this.ciModel.ciStation;
|
||||
}
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setData(type, data) {
|
||||
switch (type) {
|
||||
case 'signalStationCodeType': {
|
||||
this.signalStationModel.signalStationCode = data;
|
||||
break;
|
||||
}
|
||||
case 'signalCodesType': {
|
||||
if (!this.signalStationModel.signalLists.includes(data)) {
|
||||
this.signalStationModel.signalLists.push(data);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'signalCodes': {
|
||||
if (!this.ciModelForm.signalList.includes(data)) {
|
||||
this.ciModelForm.signalList.push(data);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
@import "src/styles/mixin.scss";
|
||||
.flex_box{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.questionTip{
|
||||
height: 90px;
|
||||
margin-top: 10px;
|
||||
border-radius: 4px;
|
||||
width: 98%;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.box-card {
|
||||
width: calc(100% - 80px);
|
||||
margin: 20px auto 0;
|
||||
padding: 0 20px;
|
||||
.text {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 6px 0;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -175,6 +175,8 @@ export default {
|
||||
});
|
||||
|
||||
this.$emit('updateMapModel', model);
|
||||
this.$refs.createForm.resetForm();
|
||||
|
||||
} else {
|
||||
this.$messageBox(this.$t('tip.selectedSectionEmpty'));
|
||||
}
|
||||
|
@ -15,156 +15,7 @@
|
||||
<create-signal ref="createSignal" :field="field" @signalSectionCode="signalSectionCode" v-on="$listeners" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane class="view-control" label="批量操作" name="three" :lazy="lazy">
|
||||
<el-collapse v-model="collapseActive" accordion style="margin-left: 20px">
|
||||
<el-collapse-item title="构建信号机偏移量" name="1">
|
||||
<el-form ref="mark" label-width="130px" :model="addModel" size="mini">
|
||||
<el-form-item label="左右偏移值" prop="number">
|
||||
<el-input v-model="addModel.number" style="width: 178px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="editAll">设置</el-button>
|
||||
<el-button type="" style="margin: 0;" size="small" @click="questionList = []">{{ $t('map.clearHint') }}</el-button>
|
||||
</div>
|
||||
<div class="questionTip">
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||
<el-card v-if="questionList.length" class="box-card">
|
||||
<div v-for="(item, index) in questionList" :key="index" class="text item">{{ item }}</div>
|
||||
</el-card>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机类型" name="2">
|
||||
<el-form ref="signalType" label-width="130px" :model="typeModel" size="mini" style="margin-top: 40px">
|
||||
<el-form-item label="设置信号机范围:" prop="scope">
|
||||
<el-select v-model="typeModel.scope" placeholder="请选择">
|
||||
<el-option v-for="item in signalScopeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="信号机类型:" prop="type">
|
||||
<el-select v-model="typeModel.type" placeholder="请选择">
|
||||
<el-option v-for="item in signalTypeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setAllSignalType">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机归属联锁站" name="3">
|
||||
<el-form ref="signalCiStation" label-width="130px" :model="ciModel" size="mini">
|
||||
<el-form-item label="信号机范围:">
|
||||
<el-select v-model="ciModel.stationList" multiple placeholder="请选择">
|
||||
<el-option v-for="item in centralizedStationList" :key="item.code" :label="item.name+'下信号机'" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="归属连锁站:">
|
||||
<el-select v-model="ciModel.ciStation" placeholder="请选择">
|
||||
<el-option v-for="item in ciStationList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setCiStationSignal">设置</el-button>
|
||||
</div>
|
||||
<el-form ref="signalCiStation1" label-width="130px" :model="ciModelForm" size="mini" :rules="ciModelFormRules" style="margin-top: 15px;">
|
||||
<el-form-item label="信号机选择:" prop="signalList">
|
||||
<el-select v-model="ciModelForm.signalList" multiple filterable placeholder="请选择">
|
||||
<el-option v-for="item in filterSignalList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'signalCodes' ? 'danger' : 'primary'"
|
||||
@click="hover('signalCodes')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="归属连锁站:" prop="ciStation">
|
||||
<el-select v-model="ciModelForm.ciStation" placeholder="请选择">
|
||||
<el-option v-for="item in ciStationList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setCiStationSignalLists">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置引导信号" name="4">
|
||||
<el-form ref="setGuideSignal" label-width="130px" :model="guideModel" size="mini">
|
||||
<el-form-item label="设置信号机范围:" prop="scope">
|
||||
<el-select v-model="guideModel.scope" placeholder="请选择">
|
||||
<el-option v-for="item in signalScopeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否引导信号:" prop="number">
|
||||
<el-checkbox v-model="guideModel.callOn" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box" style="margin-top: 20px">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setSignalCallOn">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置灭灯显示(CTC级)" name="5">
|
||||
<el-form ref="ctcForm" label-width="160px" :model="ctcModel" size="mini">
|
||||
<el-form-item label="是否灭灯显示(CTC级):" prop="number">
|
||||
<el-checkbox v-model="ctcModel.ctc" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setCtcShow">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置灯位类型" name="6">
|
||||
<el-form ref="ctcForm" label-width="160px" :model="lampPositionModel" size="mini">
|
||||
<el-form-item label="灯位类型:" prop="lampPositionType">
|
||||
<el-select v-model="lampPositionModel.lampPositionType">
|
||||
<el-option v-for="item in SignalLampPositionTypeList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setLampPosition">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="是否无延续保护" name="7">
|
||||
<el-form ref="noOverlapForm" label-width="160px" :model="noOverlapModel" size="mini">
|
||||
<el-form-item label="是否无延续保护">
|
||||
<el-checkbox v-model="noOverlapModel.noOverlap" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setLampNoOverlap">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机唯一名称" name="8">
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setSignalName">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="设置信号机名称与车站关联" name="9">
|
||||
<el-form ref="signalStationForm" label-width="160px" :model="signalStationModel" size="mini" :rules="signalStationRules">
|
||||
<el-form-item label="车站选择" prop="signalStationCode">
|
||||
<el-select v-model="signalStationModel.signalStationCode" placeholder="请选择">
|
||||
<el-option v-for="item in stationList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'signalStationCodeType' ? 'danger' : 'primary'"
|
||||
@click="hover('signalStationCodeType')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="信号机选择" prop="signalLists">
|
||||
<el-select v-model="signalStationModel.signalLists" multiple placeholder="请选择">
|
||||
<el-option v-for="item in signalList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'signalCodesType' ? 'danger' : 'primary'"
|
||||
@click="hover('signalCodesType')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex_box">
|
||||
<el-button type="primary" style="margin-right: 10px;" size="small" @click="setSignalUniqueName">设置</el-button>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
<batch-setting ref="batchSetting" :field="field" @updateMapModel="updateMapModel" @signalSectionCode="signalSectionCode" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
@ -173,6 +24,7 @@
|
||||
import { mapGetters } from 'vuex';
|
||||
import { deepAssign } from '@/utils/index';
|
||||
import createSignal from './create';
|
||||
import batchSetting from './batchSetting';
|
||||
import OperateProperty from '../components/operateProperty';
|
||||
import getModel from '../models.js';
|
||||
|
||||
@ -180,7 +32,8 @@ export default {
|
||||
name: 'SignalDraft',
|
||||
components: {
|
||||
createSignal,
|
||||
OperateProperty
|
||||
OperateProperty,
|
||||
batchSetting
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -193,81 +46,26 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
activeName: 'first',
|
||||
collapseActive: '',
|
||||
lazy: true,
|
||||
SignalDirectionList: [
|
||||
{ code: false, name: '向左' },
|
||||
{ code: true, name: '向右' }
|
||||
],
|
||||
SignalLeftOrRightList: [],
|
||||
// SignalLeftOrRightList: [],
|
||||
SignalLampPostTypeList: [],
|
||||
SignalLampPositionTypeList: [],
|
||||
SignalPositionTypeList: [],
|
||||
failTypes: [
|
||||
{ code: '00', name: this.$t('map.normal') },
|
||||
{ code: '01', name: this.$t('map.signalFilamentAlarm') }
|
||||
],
|
||||
// failTypes: [
|
||||
// { code: '00', name: this.$t('map.normal') },
|
||||
// { code: '01', name: this.$t('map.signalFilamentAlarm') }
|
||||
// ],
|
||||
signalTypeList: [
|
||||
{ code: 'PROTECTION', name: '防护信号机'},
|
||||
{ code: 'BLOCKING', name: '阻挡信号机'},
|
||||
{ code: 'PASSING', name: '通过信号机'}
|
||||
],
|
||||
signalScopeList: [
|
||||
{ code: 'All', name: '全部信号机'},
|
||||
{ code: 'Virtual', name: '虚拟信号机'},
|
||||
{ code: 'NoVirtual', name: '非虚拟信号机'}
|
||||
],
|
||||
questionList: [],
|
||||
field:'',
|
||||
editModel: getModel('Signal'),
|
||||
addModel: {
|
||||
number: 2
|
||||
},
|
||||
typeModel: {
|
||||
scope: 'All',
|
||||
type: 'PROTECTION'
|
||||
},
|
||||
ciModel: {
|
||||
stationList: [],
|
||||
ciStation: []
|
||||
},
|
||||
ciModelForm: {
|
||||
signalList: [],
|
||||
ciStation: ''
|
||||
},
|
||||
ctcModel: {
|
||||
ctc: true
|
||||
},
|
||||
noOverlapModel: {
|
||||
noOverlap: false
|
||||
},
|
||||
signalStationModel: {
|
||||
signalStationCode: '',
|
||||
signalLists: []
|
||||
},
|
||||
signalStationRules: {
|
||||
signalStationCode: [
|
||||
{ required: true, message: '请选择车站', trigger: 'change' }
|
||||
],
|
||||
signalLists: [
|
||||
{ required: true, message: '请选择信号机', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
ciModelFormRules: {
|
||||
signalList: [
|
||||
{ required: true, message: '请选择信号机', trigger: 'change' }
|
||||
],
|
||||
ciStation: [
|
||||
{ required: true, message: '请选择连锁站', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
guideModel: {
|
||||
scope: 'All',
|
||||
callOn: true
|
||||
},
|
||||
lampPositionModel: {
|
||||
lampPositionType: ''
|
||||
},
|
||||
centralizedStationList: [], // 设备集中站列表
|
||||
ciStationList: [] // 联锁站列表
|
||||
};
|
||||
@ -296,17 +94,6 @@ export default {
|
||||
}
|
||||
return list;
|
||||
},
|
||||
// 未设置联锁站信号机列表
|
||||
filterSignalList() {
|
||||
let list = [];
|
||||
if (this.signalList && this.signalList.length) {
|
||||
list = this.signalList.filter(elem => {
|
||||
return !elem.interlockStationCode;
|
||||
});
|
||||
}
|
||||
console.log(list, '过滤信号机联锁');
|
||||
return list;
|
||||
},
|
||||
form() {
|
||||
return {
|
||||
labelWidth: '150px',
|
||||
@ -411,7 +198,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.SignalLeftOrRightList = this.$ConstSelect.SignalLeftOrRightList;
|
||||
// this.SignalLeftOrRightList = this.$ConstSelect.SignalLeftOrRightList;
|
||||
|
||||
this.$Dictionary.signalLampPostType().then(list => {
|
||||
this.SignalLampPostTypeList = list;
|
||||
@ -465,14 +252,16 @@ export default {
|
||||
this.field = '';
|
||||
this.$emit('deviceSelect', '');
|
||||
} else if (selected && selected._type == 'Station' && this.field == 'signalStationCodeType') {
|
||||
this.signalStationModel.signalStationCode = selected.code;
|
||||
// this.signalStationModel.signalStationCode = selected.code;
|
||||
this.$refs.batchSetting.setData('signalStationCodeType', selected.code);
|
||||
this.activeName = 'three';
|
||||
this.field = '';
|
||||
this.$emit('deviceSelect', '');
|
||||
} else if (selected && selected._type == 'Signal' && this.field == 'signalCodesType') {
|
||||
if (!this.signalStationModel.signalLists.includes(selected.code)) {
|
||||
this.signalStationModel.signalLists.push(selected.code);
|
||||
}
|
||||
this.$refs.batchSetting.setData('signalCodesType', selected.code);
|
||||
// if (!this.signalStationModel.signalLists.includes(selected.code)) {
|
||||
// this.signalStationModel.signalLists.push(selected.code);
|
||||
// }
|
||||
this.activeName = 'three';
|
||||
} else if (selected && selected._type == 'Signal' && this.field == 'signalIgnoreRouteEnd') {
|
||||
if (!this.editModel.ignoreRouteEnd.includes(selected.code) && this.editModel.code != selected.code) {
|
||||
@ -480,9 +269,10 @@ export default {
|
||||
}
|
||||
this.activeName = 'first';
|
||||
} else if (selected && selected._type == 'Signal' && this.field == 'signalCodes') {
|
||||
if (!this.ciModelForm.signalList.includes(selected.code)) {
|
||||
this.ciModelForm.signalList.push(selected.code);
|
||||
}
|
||||
// if (!this.ciModelForm.signalList.includes(selected.code)) {
|
||||
// this.ciModelForm.signalList.push(selected.code);
|
||||
// }
|
||||
this.$refs.batchSetting.setData('signalCodes', selected.code);
|
||||
this.activeName = 'three';
|
||||
}
|
||||
},
|
||||
@ -498,40 +288,6 @@ export default {
|
||||
this.$emit('deviceSelect', '');
|
||||
}
|
||||
},
|
||||
// 构建信号机偏移量
|
||||
editAll() {
|
||||
if (this.addModel.number != '') {
|
||||
const models = [];
|
||||
this.questionList = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
const section = this.findSection(signalModel); // 关联区段model
|
||||
if (section.code && item.sectionCode != section.code) {
|
||||
signalModel.sectionCode = section.code; // 重置信号机所属区段
|
||||
}
|
||||
if (!section.code) {
|
||||
this.questionList.push(`${item.name}(${item.code}) 信号机位置可能不正确,请手动调试归属区段及偏移量.`);
|
||||
} else { // 一旦不正确 不做偏移处理
|
||||
signalModel.sectionOffset = this.addModel.number;
|
||||
if (signalModel.right) {
|
||||
if (section.lengthFact) {
|
||||
signalModel.sectionOffset = Math.abs(Number(section.lengthFact) - this.addModel.number);
|
||||
}
|
||||
}
|
||||
}
|
||||
models.push(signalModel);
|
||||
if (this.editModel.code == signalModel.code) {
|
||||
this.editModel.sectionCode = signalModel.sectionCode;
|
||||
}
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
this.deviceSelect();
|
||||
|
||||
} else {
|
||||
this.$message('请输入偏移量');
|
||||
}
|
||||
},
|
||||
virtualChange(val) {
|
||||
if (val) {
|
||||
this.editModel.turnBack = false;
|
||||
@ -539,132 +295,6 @@ export default {
|
||||
this.editModel.turnBack = false;
|
||||
}
|
||||
},
|
||||
setAllSignalType(val) {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
if (this.typeModel.scope === 'All' || (this.typeModel.scope === 'Virtual' && item.virtual) || (this.typeModel.scope === 'NoVirtual' && !item.virtual)) {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
signalModel.type = this.typeModel.type;
|
||||
models.push(signalModel);
|
||||
}
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setCiStationSignal() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
if (this.ciModel.stationList.includes(item.stationCode)) {
|
||||
signalModel.interlockStationCode = this.ciModel.ciStation;
|
||||
}
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setCiStationSignalLists() {
|
||||
this.$refs['signalCiStation1'].validate(valid => {
|
||||
if (valid) {
|
||||
const models = [];
|
||||
this.ciModelForm.signalList.forEach(code => {
|
||||
const signalModel = deepAssign({}, this.$store.getters['map/getDeviceByCode'](code)); // 深拷贝
|
||||
signalModel.interlockStationCode = this.ciModelForm.ciStation;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
this.ciModelForm.signalList = [];
|
||||
}
|
||||
});
|
||||
},
|
||||
setSignalCallOn() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
if (this.guideModel.scope === 'All' || (this.guideModel.scope === 'Virtual' && item.virtual) || (this.guideModel.scope === 'NoVirtual' && !item.virtual)) {
|
||||
if (signalModel.type !== 'BLOCKING') {
|
||||
signalModel.callOn = this.guideModel.callOn;
|
||||
}
|
||||
models.push(signalModel);
|
||||
}
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setCtcShow() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
signalModel.ctc = this.ctcModel.ctc;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setLampPosition() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item); // 深拷贝
|
||||
signalModel.lampPositionType = this.lampPositionModel.lampPositionType;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setLampNoOverlap() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item);
|
||||
signalModel.noOverlap = this.noOverlapModel.noOverlap;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
// 寻找信号机关联区段
|
||||
findSection(signal) {
|
||||
// 01 向左 02 向右
|
||||
let model = {};
|
||||
this.sectionList.forEach(section => {
|
||||
if (!signal.right && section.type != '02' && section.type != '04') {
|
||||
if (section.points[0].x == signal.position.x && Math.abs(section.points[0].y - signal.position.y) <= 20) {
|
||||
model = section;
|
||||
}
|
||||
} else if (signal.right && section.type != '02' && section.type != '04') {
|
||||
if (section.points[section.points.length - 1].x == signal.position.x && Math.abs(section.points[section.points.length - 1].y - signal.position.y) <= 20) {
|
||||
model = section;
|
||||
}
|
||||
}
|
||||
});
|
||||
return model;
|
||||
},
|
||||
setSignalName() {
|
||||
const models = [];
|
||||
this.signalList.forEach(item => {
|
||||
const signalModel = deepAssign({}, item);
|
||||
signalModel.uniqueName = item.name;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
},
|
||||
setSignalUniqueName() {
|
||||
this.$refs['signalStationForm'].validate(valid => {
|
||||
if (valid) {
|
||||
const models = [];
|
||||
this.signalStationModel.signalLists.forEach(code => {
|
||||
const signalModel = deepAssign({}, this.$store.getters['map/getDeviceByCode'](code));
|
||||
const stationModel = this.$store.getters['map/getDeviceByCode'](this.signalStationModel.signalStationCode);
|
||||
signalModel.uniqueName = `${signalModel.name}_${stationModel.jp}`;
|
||||
models.push(signalModel);
|
||||
});
|
||||
this.$emit('updateMapModel', models);
|
||||
this.$message.success('数据构建成功!');
|
||||
this.signalStationModel.signalLists = [];
|
||||
}
|
||||
});
|
||||
},
|
||||
deleteObj() {
|
||||
this.$refs.dataform.deleteObj();
|
||||
},
|
||||
@ -682,30 +312,6 @@ export default {
|
||||
height: 100%;
|
||||
overflow: scroll;
|
||||
}
|
||||
.flex_box{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.questionTip{
|
||||
height: 90px;
|
||||
margin-top: 10px;
|
||||
border-radius: 4px;
|
||||
width: 98%;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.box-card {
|
||||
width: calc(100% - 80px);
|
||||
margin: 20px auto 0;
|
||||
padding: 0 20px;
|
||||
.text {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 6px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.card {
|
||||
height: 100%;
|
||||
|
@ -163,7 +163,7 @@ export default {
|
||||
name: this.$t('map.drawData'),
|
||||
item: [
|
||||
{ prop: 'code', label: this.$t('map.stationCode'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.stationList, deviceChange: this.deviceChange },
|
||||
{ prop: 'name', label: this.$t('map.stationName'), type: 'input' },
|
||||
{ prop: 'name', label: this.$t('map.stationNameColon'), type: 'input' },
|
||||
{ prop: 'number', label: this.$t('map.stationNumber'), type: 'input' },
|
||||
{ prop: 'sn', label: '车站序号', type: 'input' },
|
||||
{ prop: 'position', label: this.$t('map.stationPosition'), type: 'coordinate', width: '120px', children: [
|
||||
@ -234,9 +234,9 @@ export default {
|
||||
kmRange: [
|
||||
{ required: true, message: this.$t('rules.stationKmRange'), trigger: 'blur' }
|
||||
],
|
||||
kmPost: [
|
||||
{ required: true, message: this.$t('rules.stationKmPost'), trigger: 'blur' }
|
||||
],
|
||||
// kmPost: [
|
||||
// { required: true, message: this.$t('rules.stationKmPost'), trigger: 'blur' }
|
||||
// ],
|
||||
'position.x': [
|
||||
{ required: true, message: this.$t('rules.pleaseEnterXCoordinate'), trigger: 'blur' }
|
||||
],
|
||||
|
@ -43,10 +43,13 @@ export default {
|
||||
{ value: 5, label: '等级五' }
|
||||
],
|
||||
formModel: {
|
||||
gernarateType:'01',
|
||||
serviceNumber:'', // 服务号
|
||||
beginTime: '', // 开始时间
|
||||
overTime: '', // 结束时间
|
||||
runLevel:'', // 运行等级
|
||||
departureInterval:180, // 发车间隔
|
||||
reentryTime:80, // 折返时间
|
||||
inboundRouting:'', // 回库交路code
|
||||
outboundRouting:'', // 出库交路code
|
||||
runningRouting1: '', // 环路code1
|
||||
@ -66,6 +69,12 @@ export default {
|
||||
runLevel: [
|
||||
{ required: true, message: '请选择运行等级', trigger: 'change' }
|
||||
],
|
||||
departureInterval:[
|
||||
{ required: true, message: '请填写发车间隔', trigger: 'blur' }
|
||||
],
|
||||
reentryTime:[
|
||||
{ required: true, message: '请填写折返时间', trigger: 'blur' }
|
||||
],
|
||||
inboundRouting: [
|
||||
{ required: true, message: '请选择回库交路', trigger: 'change' }
|
||||
],
|
||||
@ -93,13 +102,19 @@ export default {
|
||||
labelWidth: '100px',
|
||||
size:'small',
|
||||
items: [
|
||||
{ prop: 'serviceNumber', label: '服务号', type: 'text', rightWidth:true, maxlength:3 },
|
||||
{ prop: 'gernarateType', label: '生成类型', type: 'checkBox', children: [
|
||||
{ name: '单条服务', value: '01' },
|
||||
{ name: '多条服务', value: '02' }
|
||||
] },
|
||||
{ prop: 'serviceNumber', label: '服务号', type: 'text', rightWidth:true, maxlength:3, show:this.formModel.gernarateType == '01'},
|
||||
{ prop: 'beginTime', label: '开始时间', type: 'timePicker'},
|
||||
{ prop: 'overTime', label: '结束时间', type: 'timePicker'},
|
||||
{ prop: 'runLevel', label: '运行等级', type: 'select', options: this.runLevelList },
|
||||
{ prop: 'departureInterval', label: '发车间隔', type: 'number', show:this.formModel.gernarateType == '02', min:0, step:1, precisionFlag:true, precision:0, message:'s'},
|
||||
{ prop: 'reentryTime', label: '折返时间', type: 'number', min:0, step:1, precisionFlag:true, precision:0, message:'s' },
|
||||
{ prop: 'outboundRouting', label: '出库交路', type: 'select', options: this.covertRouting('OUTBOUND'), noDataText:'请先设置交路'},
|
||||
{ prop: 'runningRouting1', label: '环路交路1', type: 'select', options: this.covertRouting('LOOP'), noDataText:'请先设置交路', change:true, onChange:this.changeRoute('runningRouting2')},
|
||||
{ prop: 'runningRouting2', label: '环路交路2', type: 'select', options: this.covertRouting('LOOP'), noDataText:'请先设置交路', change:true, onChange:this.changeRoute('runningRouting1')},
|
||||
{ prop: 'runningRouting1', label: '环路交路1', type: 'select', show:true, options: this.covertRouting('LOOP'), noDataText:'请先设置交路', change:true, onChange:this.changeRoute2 },
|
||||
{ prop: 'runningRouting2', label: '环路交路2', type: 'select', show:true, options: this.covertRouting('LOOP'), noDataText:'请先设置交路', change:true, onChange:this.changeRoute1},
|
||||
{ prop: 'inboundRouting', label: '入库交路', type: 'select', options: this.covertRouting('INBOUND'), noDataText:'请先设置交路'}
|
||||
]
|
||||
};
|
||||
@ -141,6 +156,12 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
changeRoute2() {
|
||||
this.changeRoute('runningRouting2');
|
||||
},
|
||||
changeRoute1() {
|
||||
this.changeRoute('runningRouting1');
|
||||
},
|
||||
changeRoute(runningRouting) {
|
||||
if (this.formModel[runningRouting]) { this.$refs.dataform.validateField([runningRouting]); }
|
||||
},
|
||||
@ -158,10 +179,18 @@ export default {
|
||||
this.$messageBox('结束时间必须大于开始时间');
|
||||
return false;
|
||||
}
|
||||
const formModel = Object.assign({}, this.formModel);
|
||||
if (formModel.gernarateType == '01') {
|
||||
delete formModel.departureInterval;
|
||||
} else {
|
||||
delete formModel.serviceNumber;
|
||||
}
|
||||
delete formModel.gernarateType;
|
||||
this.loading = true;
|
||||
generatePlanTrain(this.$route.query.planId || this.loadRunPlanId, this.formModel).then(res => {
|
||||
generatePlanTrain(this.$route.query.planId || this.loadRunPlanId, formModel).then(res => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.dataform.resetForm();
|
||||
this.$store.dispatch('runPlan/refresh');
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
|
@ -19,8 +19,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getStationList, populatingGenericData } from '@/api/runplan';
|
||||
|
||||
import { listUserRoutingData, populatingGenericData } from '@/api/runplan';
|
||||
export default {
|
||||
props: {
|
||||
loadRunPlanId: {
|
||||
@ -33,7 +32,8 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
stationList: [],
|
||||
// stationList: [],
|
||||
routingList: [],
|
||||
loading: false,
|
||||
formModel: {
|
||||
stationRunningTime: 60, // 站间运行时间
|
||||
@ -41,10 +41,12 @@ export default {
|
||||
beginTime: '',
|
||||
overTime: '',
|
||||
departureTimeInterval: 180, // 发车间隔时间
|
||||
parkedTime: 30, // 停止时间
|
||||
// parkedTime: 30, // 停止时间
|
||||
reentryTime: 60, // 折返时间
|
||||
startStationCode: '',
|
||||
endStationCode: ''
|
||||
runningRouting1:'', // 环路code1
|
||||
runningRouting2:'' // 环路code2
|
||||
// startStationCode: '',
|
||||
// endStationCode: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
@ -57,18 +59,24 @@ export default {
|
||||
departureTimeInterval: [
|
||||
{ required: true, message: '请填写发车间隔', trigger: 'blur' }
|
||||
],
|
||||
parkedTime: [
|
||||
{ required: true, message: '请填写停站时间', trigger: 'blur' }
|
||||
],
|
||||
// parkedTime: [
|
||||
// { required: true, message: '请填写停站时间', trigger: 'blur' }
|
||||
// ],
|
||||
reentryTime: [
|
||||
{ required: true, message: '请填写折返时间', trigger: 'blur' }
|
||||
],
|
||||
startStationCode: [
|
||||
{ required: true, message: '请选择起始站', trigger: 'change' }
|
||||
runningRouting1: [
|
||||
{ required: true, validator: this.validateRunningRouting, trigger: 'change' }
|
||||
],
|
||||
endStationCode: [
|
||||
{ required: true, message: '请选择终止站', trigger: 'change' }
|
||||
runningRouting2: [
|
||||
{ required: true, validator: this.validateRunningRouting, trigger: 'change' }
|
||||
]
|
||||
// startStationCode: [
|
||||
// { required: true, message: '请选择起始站', trigger: 'change' }
|
||||
// ],
|
||||
// endStationCode: [
|
||||
// { required: true, message: '请选择终止站', trigger: 'change' }
|
||||
// ]
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -82,34 +90,43 @@ export default {
|
||||
items: [
|
||||
{ prop: 'beginTime', label: '开始时间', type: 'timePicker'},
|
||||
{ prop: 'overTime', label: '结束时间', type: 'timePicker'},
|
||||
{ prop: 'departureTimeInterval', label: '发车间隔', type: 'number'},
|
||||
{ prop: 'parkedTime', label: '停站时间', type: 'number'},
|
||||
{ prop: 'reentryTime', label: '折返时间', type: 'number'},
|
||||
{ prop: 'departureTimeInterval', label: '发车间隔', type: 'number', min:0, step:1, precisionFlag:true, precision:0, message:'s'},
|
||||
// { prop: 'parkedTime', label: '停站时间', type: 'number', min:0, step:1, precisionFlag:true, precision:0},
|
||||
{ prop: 'reentryTime', label: '折返时间', type: 'number', min:0, step:1, precisionFlag:true, precision:0, message:'s'},
|
||||
{ prop: 'right', label: '发车类型', type: 'checkBox', children: [
|
||||
{ name: '上行发车', value: 1 },
|
||||
{ name: '下次发车', value: 2 },
|
||||
{ name: '同时发车', value: 3 }
|
||||
] },
|
||||
{ prop: 'startStationCode', label: '起始站', type: 'select', options: this.stationList },
|
||||
{ prop: 'endStationCode', label: '终止站', type: 'select', options: this.stationList }
|
||||
|
||||
{ prop: 'runningRouting1', label: '环路交路1', type: 'select', show:true, options: this.covertRouting('LOOP'), noDataText:'请先设置交路', change:true, onChange:this.changeRoute2 },
|
||||
{ prop: 'runningRouting2', label: '环路交路2', type: 'select', show:true, options: this.covertRouting('LOOP'), noDataText:'请先设置交路', change:true, onChange:this.changeRoute1}
|
||||
// { prop: 'startStationCode', label: '起始站', type: 'select', options: this.stationList },
|
||||
// { prop: 'endStationCode', label: '终止站', type: 'select', options: this.stationList }
|
||||
]
|
||||
};
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const mapId = this.$route.query.mapId;
|
||||
if (mapId) {
|
||||
getStationList(mapId).then(response => {
|
||||
this.stationList = response.data.map(elem => { return { value: elem.code, label: elem.name }; });
|
||||
}).catch(() => {
|
||||
this.$messageBox(`获取车站列表失败`);
|
||||
});
|
||||
}
|
||||
// const mapId = this.$route.query.mapId;
|
||||
// if (mapId) {
|
||||
// getStationList(mapId).then(response => {
|
||||
// this.stationList = response.data.map(elem => { return { value: elem.code, label: elem.name }; });
|
||||
// }).catch(() => {
|
||||
// this.$messageBox(`获取车站列表失败`);
|
||||
// });
|
||||
// }
|
||||
},
|
||||
methods: {
|
||||
doShow(params) {
|
||||
this.loading = false;
|
||||
const mapId = this.$route.query.mapId;
|
||||
if (mapId) {
|
||||
listUserRoutingData(mapId).then(response => {
|
||||
this.routingList = response.data.map(elem => { return { value: elem.code, label: elem.name, routingType:elem.routingType }; });
|
||||
}).catch(() => {
|
||||
this.$messageBox(`获取交路列表失败`);
|
||||
});
|
||||
}
|
||||
this.dialogShow = true;
|
||||
},
|
||||
doClose() {
|
||||
@ -141,18 +158,29 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
// 转换时间格式
|
||||
formatDateTime(date) {
|
||||
console.log(date, 3333);
|
||||
let h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
let minute = date.getMinutes();
|
||||
let second = date.getSeconds();
|
||||
minute = minute < 10 ? ('0' + minute) : minute;
|
||||
second = second < 10 ? ('0' + second) : second;
|
||||
return h + ':' + minute + ':' + second;
|
||||
validateRunningRouting(rule, value, callback) {
|
||||
if (value.trim().length == 0) {
|
||||
return callback(new Error('请选择环路'));
|
||||
} else {
|
||||
if (this.formModel.runningRouting1 == this.formModel.runningRouting2) {
|
||||
return callback(new Error('环路交路1和环路交路2不能相同'));
|
||||
} else {
|
||||
return callback();
|
||||
}
|
||||
}
|
||||
},
|
||||
changeRoute2() {
|
||||
this.changeRoute('runningRouting2');
|
||||
},
|
||||
changeRoute1() {
|
||||
this.changeRoute('runningRouting1');
|
||||
},
|
||||
changeRoute(runningRouting) {
|
||||
if (this.formModel[runningRouting]) { this.$refs.dataform.validateField([runningRouting]); }
|
||||
},
|
||||
covertRouting(routingType) {
|
||||
return this.routingList.filter(route=>{ return route.routingType == routingType; });
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -32,7 +32,7 @@
|
||||
height="300"
|
||||
class="el-parkSectionCode-table"
|
||||
>
|
||||
<el-table-column prop="stationCode" :label="$t('map.sectionName')">
|
||||
<el-table-column prop="stationCode" :label="$t('map.stationName')">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatName(scope.row.stationCode) }}</span>
|
||||
</template>
|
||||
|
@ -1,485 +0,0 @@
|
||||
<template>
|
||||
<div class="plan-tool" style="width: 100%; height: 100%;">
|
||||
<menu-bar ref="menuBar" :plan-convert="PlanConvert" @dispatchDialog="dispatchDialog" />
|
||||
<schedule
|
||||
ref="schedule"
|
||||
:line-code="lineCode"
|
||||
:plan-convert="PlanConvert"
|
||||
:max-height="height"
|
||||
:max-width="width"
|
||||
/>
|
||||
<status-bar ref="statusBar" @dispatchDialog="dispatchDialog" @showTrain="showTrain" />
|
||||
|
||||
<!-- <open-run-plan ref="openRunPlan" :skin-code="skinCode" @dispatchDialog="dispatchDialog" /> -->
|
||||
<!-- <create-empty-plan ref="createEmptyPlan" :plan-convert="PlanConvert" @dispatchOperate="dispatchOperate" @dispatchDialog="dispatchDialog" /> -->
|
||||
<parameter ref="parameter" />
|
||||
<off-line ref="offLine" @handleConfirm="handleConfirm" @dispatchDialog="dispatchDialog" />
|
||||
<!-- <add-planning-train ref="addPlanningTrain" @dispatchDialog="dispatchDialog" /> -->
|
||||
<!-- <edit-planning-train
|
||||
ref="editPlanningTrain"
|
||||
@dispatchDialog="dispatchDialog"
|
||||
@dispatchOperate="dispatchOperate"
|
||||
/> -->
|
||||
<!-- <edit-smooth-run-time ref="editSmoothRunTime" @dispatchDialog="dispatchDialog" /> -->
|
||||
<!-- <add-smooth-run-time ref="addSmoothRunTime" @dispatchDialog="dispatchDialog" /> -->
|
||||
<duplicate-train ref="duplicateTrain" @dispatchDialog="dispatchDialog" @dispatchOperate="dispatchOperate" />
|
||||
<!-- <modifying-routing ref="modifyingRouting" @dispatchDialog="dispatchDialog" /> -->
|
||||
<!-- <modifying-begin-time ref="modifyingBeginTime" /> -->
|
||||
|
||||
<systerm-out ref="systermOut" />
|
||||
<!-- <add-task ref="addTask" @dispatchOperate="dispatchOperate" /> -->
|
||||
<!-- <delete-task ref="deleteTask" @dispatchOperate="dispatchOperate" /> -->
|
||||
<!-- <modifying-task ref="modifyingTask" @dispatchOperate="dispatchOperate" /> -->
|
||||
|
||||
<!-- <edit-station-between-time ref="editStationBetweenTime" /> -->
|
||||
|
||||
<!-- <modifying-station-interval-time ref="modifyingStationIntervalTime" /> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import TitleBar from './titleBar';
|
||||
import MenuBar from './menuBar';
|
||||
import StatusBar from './statusBar';
|
||||
import Schedule from './schedule';
|
||||
// import OpenRunPlan from './menus/openRunPlan';
|
||||
// import CreateEmptyPlan from './menus/createEmptyPlan';
|
||||
import Parameter from './menus/parameter/index';
|
||||
import OffLine from './menus/offLine';
|
||||
// import AddPlanningTrain from './menus/addPlanningTrain';
|
||||
// import EditPlanningTrain from './menus/editPlanningTrain';
|
||||
import DuplicateTrain from './menus/duplicateTrain';
|
||||
import SystermOut from './menus/systermOut';
|
||||
// import AddTask from './menus/addTask';
|
||||
// import DeleteTask from './menus/deleteTask';
|
||||
// import ModifyingTask from './menus/modifyingTask';
|
||||
// import ModifyingRouting from './menus/modifyingRouting';
|
||||
// import ModifyingBeginTime from './menus/modifyingBeginTime';
|
||||
// import EditStationBetweenTime from './menus/editStationBetweenTime';
|
||||
// import AddSmoothRunTime from './menus/addSmoothRunTime';
|
||||
// import EditSmoothRunTime from './menus/editSmoothRunTime';
|
||||
// import ModifyingStationIntervalTime from './menus/modifyingStationIntervalTime';
|
||||
import { deletePlanService } from '@/api/runplan';
|
||||
|
||||
export default {
|
||||
name: 'Menus',
|
||||
components: {
|
||||
MenuBar,
|
||||
StatusBar,
|
||||
Schedule,
|
||||
// OpenRunPlan,
|
||||
// CreateEmptyPlan,
|
||||
Parameter,
|
||||
OffLine,
|
||||
// AddPlanningTrain,
|
||||
// EditPlanningTrain,
|
||||
DuplicateTrain,
|
||||
SystermOut
|
||||
// AddTask,
|
||||
// DeleteTask,
|
||||
// ModifyingTask,
|
||||
// ModifyingRouting,
|
||||
// ModifyingBeginTime,
|
||||
// EditStationBetweenTime,
|
||||
// AddSmoothRunTime,
|
||||
// EditSmoothRunTime,
|
||||
// ModifyingStationIntervalTime
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
PlanConvert: {}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
lineCode() {
|
||||
return this.$route.query.lineCode || '02';
|
||||
},
|
||||
width() {
|
||||
return this.$store.state.app.width;
|
||||
},
|
||||
height() {
|
||||
return this.$store.state.app.height;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.PlanConvert = this.$theme.loadPlanConvert(this.lineCode);
|
||||
},
|
||||
methods: {
|
||||
setPosition() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.schedule.setPosition();
|
||||
});
|
||||
},
|
||||
dispatchDialog(dialogObj) {
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs[dialogObj.name]) {
|
||||
this.$refs[dialogObj.name].doShow(dialogObj.params);
|
||||
}
|
||||
});
|
||||
},
|
||||
dispatchOperate(operateObj) {
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs[operateObj.dialogName]) {
|
||||
this.$refs[operateObj.dialogName][operateObj.operate](operateObj.params);
|
||||
}
|
||||
});
|
||||
},
|
||||
handleConfirm(params) {
|
||||
if (params.operate == 'AddPlanningTrain') {
|
||||
// 添加计划
|
||||
this.$refs.addPlanningTrain.handleConfirm();
|
||||
} else if (params.operate == 'DeletePlanningTrain') {
|
||||
// 删除计划
|
||||
const model = {
|
||||
planId: this.$route.query.planId,
|
||||
serviceNumber: params.serviceNumber
|
||||
};
|
||||
deletePlanService(model).then(resp => {
|
||||
this.$message.success(this.$t('tip.deletePlanSuccessfully'));
|
||||
this.$store.dispatch('runPlan/setDraftSelected', {});
|
||||
this.$store.dispatch('runPlan/refresh');
|
||||
// this.$refs.openRunPlan.loadRunPlanData(Object.assign({refresh: true}, this.$route.query));
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.deletePlanFailed'));
|
||||
});
|
||||
}
|
||||
},
|
||||
showTrain() {
|
||||
if (this.$refs.schedule) {
|
||||
this.$refs.schedule.displayTrain();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.plan-tool {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.plan-tool .pop-menu {
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.plan-tool .pop-menu span {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.plan-tool .system-close {
|
||||
cursor: pointer;
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
background: -webkit-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
background: -o-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
background: -moz-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid white;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.plan-tool .system-close::before {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
.planEdit__tool {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
/* .planEdit__tool .el-dialog {
|
||||
overflow: hidden !important;
|
||||
background: rgba(202, 221, 253, 0.88);;
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
border: 2px solid #727375;
|
||||
border-radius: 4px;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__header {
|
||||
height: 30px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__footer {
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__body {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin: 0px 3px 3px 3px;
|
||||
border: 2px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
color: #000;
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__title {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__headerbtn {
|
||||
background: -webkit-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
background: -o-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
background: -moz-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid white;
|
||||
border-radius: 4px;
|
||||
top: 0px;
|
||||
right: 3px;
|
||||
line-height: 26px;
|
||||
width: 26px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-tabs--top {
|
||||
border: 2px outset #FEFEFD;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-tabs__item {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
color: #000 !important;
|
||||
border-right: 2px outset #fff;
|
||||
padding-left: 10px !important;
|
||||
padding-right: 10px !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-tab-pane {
|
||||
margin: 10px !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||
border-bottom: none
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-tabs--card>.el-tabs__header .el-tabs__item:not(.is-active) {
|
||||
border-bottom: 2px inset #fff
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-form {
|
||||
background: #ECE9D8 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-card {
|
||||
background: #ECE9D8 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-button {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
border: 2px outset #E2E2E2;
|
||||
border-radius: 0px !important;
|
||||
color: #000;
|
||||
background: #ECE9D8;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .expand {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-button:focus span {
|
||||
border: 1px dashed gray;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-button:active {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-button:disabled {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-button:disabled span {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .button-group {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-input {
|
||||
border: 2px inset #E9E9E9;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-input .el-input__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-textarea {
|
||||
border: 2px inset #E9E9E9;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-textarea .el-textarea__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-table {
|
||||
border: 2px inset #E9E9E9;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-table .cell {
|
||||
line-height: unset !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-table th.is-leaf {
|
||||
background: #ECE9D8 !important;
|
||||
border-right: 1px solid #BDBDBD !important;
|
||||
border-bottom: 1px solid #BDBDBD !important;
|
||||
color: #000 !important;
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-table tr td {
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-table .el-table__empty-text {
|
||||
top: 15px !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .current-row>td {
|
||||
background: #316AC5 !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-radio__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-radio__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
background-color: #000 !important;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -15px;
|
||||
top: -18px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .button-group {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.planEdit__tool .el-dialog .el-tree__empty-block {
|
||||
background: #E9E9E9 !important;
|
||||
color: #000 !important;
|
||||
} */
|
||||
</style>
|
@ -77,9 +77,9 @@ export default {
|
||||
height: 800,
|
||||
roadData: [],
|
||||
focus: false,
|
||||
booleanList: ['upRight', 'lockFirst', 'switchSingleHandle', 'switchNRTurnChain', 'switchSingleLockChain', 'switchLossChain', 'signalForceCancelRoute', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock', 'guideNeedRouteSettingFirst', 'signalOpenAfterParking', 'standHoldCloseLogicLight', 'atsAutoHandleManualFrontTurnBack'],
|
||||
booleanList: ['upRight', 'lockFirst', 'switchSingleHandle', 'switchNRTurnChain', 'switchSingleLockChain', 'switchLossChain', 'signalForceCancelRoute', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock', 'guideNeedRouteSettingFirst', 'signalOpenAfterParking', 'standHoldCloseLogicLight', 'atsAutoHandleManualFrontTurnBack', 'doNotSetRouteWhenSectionOccupied'],
|
||||
selectList: ['runMode'],
|
||||
generalConfig: ['lockFirst', 'switchSingleHandle', 'upRight', 'switchNRTurnChain', 'switchSingleLockChain', 'switchLossChain', 'signalForceCancelRoute', 'runMode', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock', 'noParkingSM', 'parkingSM', 'rmAtpSpeed', 'urmAtpSpeed', 'guideNeedRouteSettingFirst', 'signalOpenAfterParking', 'standHoldCloseLogicLight', 'atsAutoHandleManualFrontTurnBack'],
|
||||
generalConfig: ['lockFirst', 'switchSingleHandle', 'upRight', 'switchNRTurnChain', 'switchSingleLockChain', 'switchLossChain', 'signalForceCancelRoute', 'runMode', 'initSingleLockSwitch', 'ctcOverlapOnlyTurnBackStationLock', 'noParkingSM', 'parkingSM', 'rmAtpSpeed', 'urmAtpSpeed', 'guideNeedRouteSettingFirst', 'signalOpenAfterParking', 'standHoldCloseLogicLight', 'atsAutoHandleManualFrontTurnBack', 'doNotSetRouteWhenSectionOccupied'],
|
||||
rangeList: ['noParkingSM', 'parkingSM'],
|
||||
speedList: ['rmAtpSpeed', 'urmAtpSpeed'],
|
||||
numberList: [],
|
||||
@ -104,7 +104,8 @@ export default {
|
||||
guideNeedRouteSettingFirst: '引导办理是否需要先排列进路',
|
||||
signalOpenAfterParking: '是否列车停站开门后,才办理出站进路开放出站信号机',
|
||||
standHoldCloseLogicLight: '站台扣车是否关闭逻辑点灯的信号机',
|
||||
atsAutoHandleManualFrontTurnBack:'ATS是否自动处理人工设置的站前折返自动更新车次'
|
||||
atsAutoHandleManualFrontTurnBack:'ATS是否自动处理人工设置的站前折返自动更新车次',
|
||||
doNotSetRouteWhenSectionOccupied: '当进路的区段占用时不排列进路'
|
||||
}
|
||||
};
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user