This commit is contained in:
sunzhenyu 2020-08-28 14:42:12 +08:00
commit 79af11beb6
40 changed files with 1758 additions and 165 deletions

BIN
src/assets/hand-o-right.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

BIN
src/assets/wchat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -206,12 +206,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -284,7 +287,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -206,12 +206,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPointReverse({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPointReverse({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -284,7 +287,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -181,12 +181,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -259,7 +262,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -199,12 +199,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPointReverse({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPointReverse({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/

View File

@ -266,12 +266,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/

View File

@ -266,12 +266,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/

View File

@ -226,12 +226,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}${elem.destinationCode || ''}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}${elem.destinationCode || ''}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -304,7 +307,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -96,11 +96,21 @@
<station-control ref="stationControl" />
<stand-detail ref="standDetail" />
<switch-command ref="switchCommand" />
<initialize-switch-block ref="initializeSwitchBlock" />
<switch-block ref="switchBlock" />
<switch-active ref="switchActive" />
<switch-detail ref="switchDetail" />
<initialize-signal-guide ref="initializeSignalGuide" />
<signal-guide ref="signalGuide" />
<initialzed-signal-can-block ref="initializeSignalCanBlock" />
<signal-can-block ref="signalCanBlock" />
<route-command ref="routeCommand" />
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import { TrainingMode, OperationEvent } from '@/scripts/ConstDic';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { TrainingMode } from '@/scripts/ConstDic';
import ArrangeRoute from './menuDialog/arrangeRoute';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { EventBus } from '@/scripts/event-bus';
@ -114,6 +124,15 @@ import IntervalStopNumber from './menuDialog/intervalStopNumber';
import AllocateTime from './menuDialog/allocateTime';
import StationControl from './menuDialog/stationControl';
import SwitchCommand from './menuDialog/switchCommand';
import InitializeSwitchBlock from './menuDialog/initializeSwitchBlock';
import SwitchBlock from './menuDialog/switchBlock';
import SwitchActive from './menuDialog/switchActive';
import SwitchDetail from './menuDialog/switchDetail';
import InitializeSignalGuide from './menuDialog/initializeSignalGuide';
import SignalGuide from './menuDialog/signalGuide';
import InitialzedSignalCanBlock from './menuDialog/initializeSignalCanBlock';
import SignalCanBlock from './menuDialog/signalCanBlock';
import RouteCommand from './menuDialog/routeCommand';
export default {
name: 'MenuBar',
@ -127,7 +146,16 @@ export default {
AllocateTime,
StationControl,
StandDetail,
SwitchCommand
SwitchCommand,
InitializeSwitchBlock,
SwitchBlock,
SwitchActive,
SwitchDetail,
InitializeSignalGuide,
SignalGuide,
InitialzedSignalCanBlock,
SignalCanBlock,
RouteCommand
},
props: {
selected: {
@ -302,23 +330,19 @@ export default {
},
{
title: '封锁',
click: this.undeveloped
},
{
title: '封锁',
click: this.undeveloped
click: this.setBlockSwitch
},
{
title: '解除封锁',
click: this.undeveloped
click: this.setUnblockSwitch
},
{
title: '请求动岔/请求或授权/取消',
click: this.undeveloped
click: this.setSwitchActive
},
{
title: '显示',
click: this.undeveloped
click: this.showSwitchDetail
}
]
},
@ -329,15 +353,15 @@ export default {
{
title: '引导',
click: this.undeveloped
click: this.setSignalGuide
},
{
title: '取消允许锁闭',
click: this.undeveloped
click: this.setSignalCanBlock
},
{
title: '进路/命令',
click: this.undeveloped
click: this.setRouteCommand
},
{
title: '信号指示模式',
@ -716,23 +740,19 @@ export default {
},
{
title: '封锁',
click: this.undeveloped
},
{
title: '封锁',
click: this.undeveloped
click: this.setBlockSwitch
},
{
title: '解除封锁',
click: this.undeveloped
click: this.setUnblockSwitch
},
{
title: '请求动岔/请求或授权/取消',
click: this.undeveloped
click: this.setSwitchActive
},
{
title: '显示',
click: this.undeveloped
click: this.showSwitchDetail
}
]
},
@ -743,15 +763,15 @@ export default {
{
title: '引导',
click: this.undeveloped
click: this.setSignalGuide
},
{
title: '取消允许锁闭',
click: this.undeveloped
click: this.setSignalCanBlock
},
{
title: '进路/命令',
click: this.undeveloped
click: this.setRouteCommand
},
{
title: '信号指示模式',
@ -1242,6 +1262,100 @@ export default {
this.$refs.switchCommand.doShow();
}
});
},
setBlockSwitch() {
const operate = {
type: 'bar',
operation: OperationEvent.Switch.block.init.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.initializeSwitchBlock.doShow(operate);
// this.$refs.switchBlock.doShow();
}
});
},
setUnblockSwitch() {
const operate = {
type: 'bar',
operation: OperationEvent.Switch.unblock.init.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.initializeSwitchBlock.doShow(operate);
}
});
},
setSwitchActive() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) =>{
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.switchActive.doShow();
}
});
},
showSwitchDetail() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.switchDetail.doShow();
}
});
},
setSignalGuide() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.initializeSignalGuide.doShow();
// this.$refs.signalGuide.doShow();
}
});
},
setSignalCanBlock() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.initializeSignalCanBlock.doShow();
// this.$refs.signalCanBlock.doShow();
}
});
},
setRouteCommand() {
const operate = {
type: 'bar',
operation: ''
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.routeCommand.doShow();
}
});
}
}
};

View File

@ -0,0 +1,137 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-table :data="signalList" height="300px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="blockStatus" label="允许锁闭" />
<el-table-column prop="blockProcess" label="同意取消" />
<el-table-column prop="unblockProcess" label="取消进程" />
</el-table>
</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-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</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-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'StandDetain',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
operate: ''
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '开始允许锁闭解除';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,138 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-table :data="signalList" height="300px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="blockStatus" label="显示" />
<el-table-column prop="blockProcess" label="可引导" />
<el-table-column prop="unblockProcess" label="引导过程" />
<el-table-column prop="unblockProcess" width="150" label="区间信号引导过程" />
</el-table>
</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-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</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-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'StandDetain',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
operate: ''
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '初始化引导';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,143 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-table :data="switchList" height="350px">
<el-table-column prop="name" label="道岔" />
<el-table-column prop="blockStatus" label="道岔封锁状态" />
<el-table-column prop="blockProcess" label="设置封锁进程" />
<el-table-column prop="unblockProcess" label="解除封锁进程" />
</el-table>
</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-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</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-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'StandDetain',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
mode: '',
position: '',
reserved: '',
operate: ''
};
},
computed: {
...mapGetters('map', [
'switchList'
]),
isBlock() {
return this.operate === OperationEvent.Switch.block.init.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.isBlock ? '初始化道岔封锁' : '初始化道岔解除封锁';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,174 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="3">
<el-row>
<div>开始</div>
<el-table :data="signalList" height="150">
<el-table-column prop="name" label="信号机" />
</el-table>
</el-row>
<el-row>
<div>结束</div>
<el-table :data="signalList" height="150">
<el-table-column prop="name" label="信号机" />
</el-table>
</el-row>
</el-col>
<el-col :span="6">
<el-table :data="tempData">
<el-table-column prop="path" label="路径" />
<el-table-column prop="direction" label="运行方向" />
</el-table>
</el-col>
<el-col :span="15">
<el-tabs v-model="activeName" type="card">
<el-tab-pane label="设置进路" name="first">用户管理</el-tab-pane>
<el-tab-pane label="取消进路" name="second">配置管理</el-tab-pane>
<el-tab-pane label="禁止进路" name="third">角色管理</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</el-button>
</el-col>
<el-col :span="6" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'SwitchActive',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
active: false,
activeName: 'first',
tempData: []
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '请求或允许动岔激活/取消激活';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.radio-box {
position: relative;
border: 1px solid #BBBBBB;
width: 130px;
top: 100px;
left: 8px;
padding: 15px;
}
.radio-box-title {
position: relative;
left: 18px;
top: 115px;
text-align: center;
color: #000;
width: 60px;
background: #F0F0F0;
z-index: 1;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,165 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="signalList" height="300px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="blockStatus" label="允许锁闭" />
<el-table-column prop="blockProcess" label="同意取消" />
<el-table-column prop="unblockProcess" label="取消进程" />
</el-table>
</el-col>
<el-col :span="6">
<div class="radio-box-title">命令</div>
<div class="radio-box">
<el-radio v-model="command" label="normal" style="display: block;margin-bottom: 10px;">确认</el-radio>
<el-radio v-model="command" label="reverse" style="display: block;">取消</el-radio>
</div>
</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-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</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-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'SignalCanBlock',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
operate: '',
command: ''
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '开始允许锁闭解除';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.radio-box {
position: relative;
border: 1px solid #BBBBBB;
width: 130px;
top: 100px;
left: 8px;
padding: 15px;
}
.radio-box-title {
position: relative;
left: 18px;
top: 115px;
text-align: center;
color: #000;
width: 40px;
background: #F0F0F0;
z-index: 1;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,166 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="signalList" height="300px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="blockStatus" label="显示" />
<el-table-column prop="blockProcess" label="可引导" />
<el-table-column prop="unblockProcess" label="引导过程" />
<el-table-column prop="unblockProcess" width="150" label="区间信号引导过程" />
</el-table>
</el-col>
<el-col :span="6">
<div class="radio-box-title">命令</div>
<div class="radio-box">
<el-radio v-model="command" label="normal" style="display: block;margin-bottom: 10px;">确认</el-radio>
<el-radio v-model="command" label="reverse" style="display: block;">取消</el-radio>
</div>
</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-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</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-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'SignalGuide',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
command: '',
operate: ''
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '确认/取消引导';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.radio-box {
position: relative;
border: 1px solid #BBBBBB;
width: 130px;
top: 100px;
left: 8px;
padding: 15px;
}
.radio-box-title {
position: relative;
left: 18px;
top: 115px;
text-align: center;
color: #000;
width: 40px;
background: #F0F0F0;
z-index: 1;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,160 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="switchList" height="300px">
<el-table-column prop="name" label="道岔" />
<el-table-column prop="blockStatus" label="请求或允许动岔" />
<el-table-column prop="blockProcess" label="请求或允许动岔" />
</el-table>
</el-col>
<el-col :span="6">
<div class="radio-box-title">设置状态</div>
<div class="radio-box">
<el-radio v-model="active" :label="true" style="display: block;margin-bottom: 10px;">(A)激活</el-radio>
<el-radio v-model="active" :label="false" style="display: block;">(I)取消激活</el-radio>
</div>
<el-checkbox v-model="allChecked" style="position: relative;top: 100px;left: 8px;">(A)全部</el-checkbox>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</el-button>
</el-col>
<el-col :span="6" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'SwitchActive',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
active: false
};
},
computed: {
...mapGetters('map', [
'switchList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '请求或允许动岔激活/取消激活';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.radio-box {
position: relative;
border: 1px solid #BBBBBB;
width: 130px;
top: 100px;
left: 8px;
padding: 15px;
}
.radio-box-title {
position: relative;
left: 18px;
top: 115px;
text-align: center;
color: #000;
width: 60px;
background: #F0F0F0;
z-index: 1;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,166 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="switchList" height="350px">
<el-table-column prop="name" width="80" label="道岔" />
<el-table-column prop="blockStatus" label="道岔封锁状态" />
<el-table-column prop="blockProcess" label="设置封锁进程" />
<el-table-column prop="unblockProcess" label="解除封锁进程" />
</el-table>
</el-col>
<el-col :span="6">
<div class="radio-box-title">命令</div>
<div class="radio-box">
<el-radio v-model="command" label="normal" style="display: block;margin-bottom: 10px;">确认</el-radio>
<el-radio v-model="command" label="reverse" style="display: block;">取消</el-radio>
</div>
</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-col>
<el-col :span="4" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">应用(A)</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-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'StandDetain',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
command: '',
};
},
computed: {
...mapGetters('map', [
'switchList'
]),
isBlock() {
return this.operate === OperationEvent.Switch.block.menu.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.isBlock ? '确认/取消道岔封锁' : '确认/取消道岔解除封锁';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
.radio-box {
position: relative;
border: 1px solid #BBBBBB;
width: 130px;
top: 100px;
left: 8px;
padding: 15px;
}
.radio-box-title {
position: relative;
left: 18px;
top: 115px;
text-align: center;
color: #000;
width: 40px;
background: #F0F0F0;
z-index: 1;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -0,0 +1,143 @@
<template>
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-table :data="switchList" height="350px">
<el-table-column prop="name" width="80" label="道岔" />
<el-table-column prop="position" width="80" label="位置" />
<el-table-column prop="blockStatus" width="80" label="预留" />
<el-table-column prop="blockStatus" width="80" label="状态" />
<el-table-column prop="blockStatus" width="120" label="道岔封锁状态" />
<el-table-column prop="blockProcess" width="120" label="设置封锁进程" />
<el-table-column prop="unblockProcess" width="120" label="解除封锁进程" />
</el-table>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">打印(P)</el-button>
</el-col>
<el-col :span="6" :offset="2">
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
</el-col>
<el-col :span="6" :offset="2">
<el-button>帮助(H)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
</el-dialog>
</template>
<script>
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';
export default {
name: 'StandDetain',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
mode: '',
position: '',
reserved: '',
operate: ''
};
},
computed: {
...mapGetters('map', [
'switchList'
]),
isBlock() {
return this.operate === OperationEvent.Switch.block.init.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.isBlock ? '初始化道岔封锁' : '初始化道岔解除封锁';
}
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
if (this.show) {
this.commit();
}
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, selected) {
this.selected = selected;
this.operate = operate;
//
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
},
handleClick() {
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.menu-li {
height: 30px;
line-height: 30px;
text-align: left;
list-style:none;
padding-left: 5px;
border-right: 2px solid #696969;
color: #000;
}
/deep/ {
.el-radio {
color: #000;
font-weight: bold;
}
.el-cascader-node>.el-radio, .el-radio:last-child{
margin-right: 20px;
}
}
</style>

View File

@ -218,12 +218,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -296,7 +299,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -217,12 +217,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -295,7 +298,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -43,6 +43,7 @@ export default {
fieldNum: 8,
sepField: 'Trip',
idField: 'Train ID',
destinationCode: 'DID',
columns: {
'LOC': { key: 'stationName', formatter: (val) => { return StationMap[val]; } },
'Arrive': { key: 'arriveTime', formatter: (val) => { return val; } },
@ -58,7 +59,7 @@ export default {
if (dataList && dataList.length) {
for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += this.ExcelConfig.fieldNum + 1) {
var isContinue = true;
var tripObj = { code: '', trainId: '', arrivalList: [] };
var tripObj = { code: '', trainId: '', destinationCode: '', arrivalList: [] };
for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) {
isContinue = false;
@ -86,7 +87,7 @@ export default {
valueStr = tripObj.trainId + valueStr;
delete tripObj.trainId;
JsonData.push(tripObj);
tripObj = { code: valueStr, arrivalList: [] };
tripObj = { code: valueStr, destinationCode: '', arrivalList: [] };
} else {
if (valueStr.includes('FT') || valueStr.includes('LT')) {
valueStr = valueStr.replace('FT', '').replace('LT', '');
@ -95,8 +96,10 @@ export default {
delete tripObj.trainId;
tripObj.code = valueStr;
}
} else if (titleStr === this.ExcelConfig.idField) {
} else if (titleStr == this.ExcelConfig.idField) {
tripObj.trainId = valueStr;
} else if (titleStr == this.ExcelConfig.destinationCode) {
tripObj.destinationCode = valueStr;
}
// 取需要的字段
@ -268,12 +271,15 @@ export default {
/** 如果此记录车组号的数据为第一条时,则打上标签*/
if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(time), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
const result = serie.markPoint.data.some(ele => ele.name == `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`);
if (!result) {
serie.markPoint.data.push(createMartPoint({
directionCode: elem.directionCode,
coord: [parseInt(time), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
name: `(${elem.groupNumber})${elem.serviceNumber}${elem.tripNumber}`,
color: lineStyle.color || '#000'
}));
}
}
/** 计算折返点*/
@ -346,7 +352,8 @@ export default {
/** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
computedReentryNumber(code) {
return parseInt(code || 1) % 2 ? 1 : 2;
// return parseInt(code || 1) % 2 ? 1 : 2;
return 1;
},
/** 根据方向计算y折返偏移量*/

View File

@ -45,7 +45,7 @@ export const loginInfo = {
systemType: '011'
},
drts: {
title: '城市轨道交通行车调度员竞赛练习系统',
title: '行车调度员实训系统国赛备战版',
loginPath: '/login?project=drts',
loginParam: 'DRTS',
loginTitle: '空串',
@ -316,7 +316,7 @@ export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd',
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb']; // 实训设计平台通过项目code获取地图列表的项目
export const CaseHideProjectList = ['heb', 'designheb']; // 案例展示隐藏的项目
export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts']; // 登录页右下角版本开发基于不展示
export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'drts']; // 登录页右下角主体不展示
export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls']; // 登录页右下角主体不展示
export const GenerateRouteProjectList = ['jsxt', 'refereeJsxt'];// 需要在公共路由中生成登录页面的项目
export const ProjectLoginStyleList = ['jsxt', 'refereeJsxt', 'gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'drts']; // 登录页样式
export const NoQrcodeList = ['heb', 'designheb'];

View File

@ -336,6 +336,10 @@ export const OperationEvent = {
menuButton: {
operation: '1052',
domId: '_Tips-Switch-Block-Menu{BOTTOM}'
},
init: {
operation: '1053',
domId: '_Tips-Switch-Block-Init'
}
},
// 道岔解封
@ -375,6 +379,10 @@ export const OperationEvent = {
menuButton: {
operation: '1067',
domId: '_Tips-Switch-Unblock-menu{BOTTOM}'
},
init: {
operation: '1068',
domId: '_Tips-Switch-Unblock-Init'
}
},
// 转动

View File

@ -341,7 +341,7 @@ const training = {
commit('resetScore');
// 设置其他属性状态
commit('setOffsetStationCode', null);
commit('changeMode', null);
// commit('changeMode', null);
},
/**

View File

@ -11,20 +11,12 @@
<img class="logo" :src="logoImg" :style="{width: logoWidth}">
<span>{{ loginTitle==='空串'?'':loginTitle }}</span>
</div>
<div v-if="project === 'drts' && !gameOver" style="position: absolute; top: 10%;font-size: 50px;color:#F00;">
<div style="display: inline-block;">距离全国调度大赛还剩</div>
<div v-if="project === 'drts' && !gameOver" style="position: absolute; top: 10%;font-size: 50px;color:#F00;text-align: center;">
<div style="display: inline-block;">距离2020年新誉杯全国城市轨道交通行业职业技能竞赛还剩</div>
<div class="countdown_box">{{ days[0] }}</div>
<div class="countdown_box">{{ days[1] }}</div>
<div class="countdown_box">{{ days[2] }}</div>
<div style="display: inline-block;"></div>
<div class="countdown_box">{{ hours[0] }}</div>
<div class="countdown_box">{{ hours[1] }}</div>
<div style="display: inline-block;">:</div>
<div class="countdown_box">{{ minutes[0] }}</div>
<div class="countdown_box">{{ minutes[1] }}</div>
<div style="display: inline-block;">:</div>
<div class="countdown_box">{{ seconds[0] }}</div>
<div class="countdown_box">{{ seconds[1] }}</div>
</div>
<div v-else-if="project === 'drts' && gameOver" style="position: absolute; top: 100px;font-size: 50px;color:#F00;">
<div style="display: inline-block;">全国调度大赛已结束</div>
@ -119,13 +111,26 @@
</div>
<float-part v-if="isProject && !versionBaseNoShow.includes(project)" />
<div v-if="!mainBodyNoShow.includes(project)" style="position: absolute; bottom: 10px;right: 20px; font-size: 14px;"><span>主体北京玖琏科技有限公司 备案号京ICP备18028522号</span></div>
<div v-if="project === 'drts'" style="position: absolute; bottom: 30px;text-align: center; font-size: 32px;">
<div style="text-align: left;">
<span>定制新线路需三周时间!</span><br>
<span>满足客户的一切技术需要!</span><br>
<span>联系电话: 13289398171</span>
<div v-if="project === 'drts'" style="position: absolute; bottom: 200px;text-align: center; font-size: 32px;color:#F00;">
<div>郑重承诺满足用户的一切技术需求新地图上线三周新需求两周完成新BUG两天修复</div>
<div style="width: 300px;font-size: 28px;justify-content:space-between;display: flex;margin:0 auto;margin-top: 30px;">
<div style="display: inline-block;">备战国赛</div>
<div style="display: inline-block;">免费使用</div>
</div>
</div>
<div v-if="project === 'drts'" style="position: absolute; bottom: 50px; font-size: 20px;right: 20px;color:#3D3D3D;width: 370px;">
<el-row>
<el-col :span="6">
<img :src="wchatImg" width="80" height="80">
</el-col>
<el-col :span="18" style="text-align: left">
<div style="margin-top: 10px">服务电话13289398171</div>
<div style="margin-top: 10px">截止日期2020年12月31日</div>
</el-col>
</el-row>
</div>
<div v-if="project === 'drts'" style="position: absolute; bottom: 50px; font-size: 20px;left: 20px;color:#3D3D3D;width: 200px;height: 150px;background: #FFF;padding: 10px;border: 5px solid #CCC;border-radius: 8px;cursor: pointer;">
<div class="news-box" @click="goCompetitionRules"><img :src="handRight" width="14" height="14" style="margin-right: 15px">新誉杯竞赛规程</div>
</div>
</div>
</template>
@ -144,6 +149,8 @@ import bgIscsImg from '@/assets/bg_iscs.jpg';
import bgCctvImg from '@/assets/bg_cctv.jpg';
import bgLswImg from '@/assets/bg_lsw.jpg';
import bgPsdImg from '@/assets/bg_psd.png';
import HandRight from '@/assets/hand-o-right.png';
import wchat from '@/assets/wchat.png';
import { UrlConfig } from '@/scripts/ConstDic';
import { loginInfo, ProjectIcon, ProjectLoginStyleList, VersionBaseNoShow, MainBodyNoShow, NoQrcodeList} from '@/scripts/ProjectConfig';
import { removeToken, getToken } from '@/utils/auth';
@ -152,6 +159,7 @@ import FloatPart from './floatPart';
import { getIsSignUp } from '@/api/competition';
import { getSimulationInfoNew } from '@/api/simulation';
import { getSessionStorage } from '@/utils/auth';
import { launchFullscreen } from '@/utils/screen';
export default {
name: 'Login',
@ -206,10 +214,9 @@ export default {
expirationDate: 1607562000000,
countdown: null,
days: [0, 0, 0],
hours: [0, 0],
minutes: [0, 0],
seconds: [0, 0],
gameOver: false
gameOver: false,
wchatImg: wchat,
handRight: HandRight
};
},
computed: {
@ -307,29 +314,10 @@ export default {
this.loginRefresh();
}
if (this.project === 'drts') {
this.getDaysTime();
this.countdown = setInterval(()=>{
const nowTime = Date.parse(new Date());
this.days = []; this.hours = []; this.minutes = []; this.seconds = [];
let difference = this.expirationDate - nowTime;
if (difference <= 0) {
this.gameOver = true;
}
const day = Math.floor(difference / (24 * 60 * 60 * 1000));
difference = difference % (24 * 60 * 60 * 1000);
const hour = Math.floor(difference / (60 * 60 * 1000));
difference = difference % (60 * 60 * 1000);
const minute = Math.floor(difference / (60 * 1000));
const second = difference % (60 * 1000) / 1000;
this.days.push(Math.floor(day / 100));
this.days.push(Math.floor((day % 100) / 10));
this.days.push(day % 10);
this.hours.push(Math.floor(hour / 10));
this.hours.push(hour % 10);
this.minutes.push(Math.floor(minute / 10));
this.minutes.push(minute % 10);
this.seconds.push(Math.floor(second / 10));
this.seconds.push(second % 10);
}, 1000);
this.getDaysTime();
}, 24 * 60 * 60 * 1000);
}
},
beforeDestroy() {
@ -569,6 +557,7 @@ export default {
project:this.project
}});
this.loading = false;
launchFullscreen();
});
});
} else if (!this.$route.path.includes('jsxt/login') && !this.$route.path.includes('refereeJsxt/login')) {
@ -580,6 +569,21 @@ export default {
handleLanguage() {
this.$i18n.locale = this.lang;
LangStorage.setLang(this.lang);
},
getDaysTime() {
const nowTime = Date.parse(new Date());
this.days = []; this.hours = []; this.minutes = []; this.seconds = [];
const difference = this.expirationDate - nowTime;
if (difference <= 0) {
this.gameOver = true;
}
const day = Math.floor(difference / (24 * 60 * 60 * 1000));
this.days.push(Math.floor(day / 100));
this.days.push(Math.floor((day % 100) / 10));
this.days.push(day % 10);
},
goCompetitionRules() {
window.open('https://mp.weixin.qq.com/s?__biz=MzI3NzMwODY3OQ==&mid=2247506304&idx=1&sn=77708ca228404cee2b28e131cdfb9735&chksm=eb6aade8dc1d24fe6eb9f1334aadda239f47dafc79de7d522e0f3f00e2d3ba1dd213dda6764c&xtrack=1&scene=90&subscene=93&sessionid=1598522875&clicktime=1598523062&enterid=1598523062&ascene=56&devicetype=android-29&version=3.0.27.2701&nettype=WIFI&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&exportkey=AQZ2cTPSob%2B5kBDiWnKw0Js%3D&pass_ticket=12Xyhe%2BbZsC9Vuzfs0iYUUn0i%2Br5JlZiOGCxWoExuthBhnIrpkmUyjVRi6bjyA1I&wx_header=1&platform=win', '_blank');
}
}
};
@ -672,6 +676,17 @@ export default {
text-align: center;
border-radius: 5px;
}
.news-box {
color: #409EFF;
width: 100%;
border-bottom: dashed 1px #409EFF;
font-size: 14px;
line-height: 30px;
height: 30px;
}
.news-box:hover {
color: #3943CB;
}
.login-container {
position: fixed;
display: flex;

View File

@ -55,6 +55,7 @@
import Cookies from 'js-cookie';
import ConstConfig from '@/scripts/ConstConfig';
import {getScriptPageListOnlineNew, getScriptByIdNew } from '@/api/script';
import { EventBus } from '@/scripts/event-bus';
//
export default {
@ -188,6 +189,7 @@ export default {
const res = await getScriptByIdNew(row.id);
let newMemberList = [];
if (res.code == 200) {
EventBus.$emit('clearRunSeries');
if (res.data.memberList && res.data.memberList.length > 0) {
// newMemberList
// const playerList = res.data.memberList.filter(item => item.hasPlay === true);

View File

@ -41,6 +41,7 @@ import DataTable from '@/views/planSchedule/menusPlan/components/dataTable';
import echarts from 'echarts';
import {toTimeStamp, formatDuring} from '@/utils/date';
import { deepAssign } from '@/utils/index';
import { EventBus } from '@/scripts/event-bus';
export default {
name: 'PlanSchedule',
@ -148,6 +149,9 @@ export default {
mounted() {
this.staticSeries = []; this.selectSeries = []; this.runSeries = [];
this.PlanConvert = this.$theme.loadPlanConvert(this.$route.query.lineCode);
EventBus.$on('clearRunSeries', () => {
this.runSeries = [];
});
},
beforeDestroy() {
this.destroy();
@ -401,9 +405,10 @@ export default {
return this.PlanConvert.computedFormatYAxis(this.stations, params);
},
xAxisLableFormat(value, index) {
if (value % 60 === 0) {
return timeFormat(value);
}
// if (value % 60 === 0) {
// return timeFormat(value);
// }
return timeFormat(value);
},
yAxisLableFormat(value, index) {
return '';

View File

@ -19,7 +19,8 @@
<!-- 排班计划 -->
<el-button v-if="scheduleLoadShow" type="primary" size="small" @click="jumpScheduling">派班计划加载</el-button>
<el-button v-if="schedulePreviewShow" type="primary" size="small" @click="schedulingView">派班计划预览</el-button>
<el-button v-if="isContest" size="small" type="primary" @click="viewChangeMap">切换地图</el-button>
<el-button v-if="isContest" size="small" @click="fieldPractice">实操练习</el-button>
<el-button v-if="isContest" size="small" @click="viewChangeMap">切换地图</el-button>
</el-button-group>
</div>
<Jl3d-Device
@ -201,6 +202,9 @@ export default {
},
changeMap(query) {
this.$emit('changeMap', query);
},
fieldPractice() {
this.$emit('fieldPractice');
}
}
};

View File

@ -18,6 +18,7 @@
:driver-show="isDrive"
:all-style="'top:'+(offset+textStatusHeight)+'px'"
@changeMap="changeMap"
@fieldPractice="fieldPractice"
/>
<div class="display-draft" :class="{'haerbin_btn_box': $route.query.lineCode == '07'}" :style="{bottom: offsetBottom + 'px'}">
@ -27,8 +28,10 @@
<template v-if="isScriptRun">
<el-button type="danger" size="small" @click="handleQuitQuest">退出剧本</el-button>
</template>
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
<el-button type="success" :disabled="isDisable" size="small" @click="selectBeginTime">{{ $t('display.demon.drivingByPlan') }}</el-button>
<template v-else>
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
<el-button type="success" :disabled="isDisable" size="small" @click="selectBeginTime">{{ $t('display.demon.drivingByPlan') }}</el-button>
</template>
</template>
</el-button-group>
</div>
@ -170,9 +173,11 @@ export default {
this.setRuning(false);
},
'$store.state.map.mapViewLoadedCount': function (val) { //
const initTime = new Date(this.$store.state.training.initTime || null);
const model = {initTime:this.formatTime(initTime)};
this.start(model);
if (this.$route.query.noFirst) {
const initTime = new Date(this.$store.state.training.initTime || null);
const model = {initTime:this.formatTime(initTime)};
this.start(model);
}
}
},
created() {
@ -258,6 +263,7 @@ export default {
this.$store.dispatch('training/setPrdType', this.currentPrdType); // prdType
query.group = resp.data;
const newQuery = Object.assign({}, query);
newQuery.noFirst = true;
this.$router.replace({query: newQuery});
launchFullscreen();
}).catch(error => {
@ -428,6 +434,9 @@ export default {
}
}
},
fieldPractice() {
this.$refs.menuSchema.viewRunQuest();
}
}
};

View File

@ -179,6 +179,8 @@ export default {
if (resp && resp.code == 200) {
const detail = resp.data;
await this.$store.dispatch('training/setPrdType', this.prdTypeMap[detail.prdType]);
await this.$store.dispatch('training/setTrainingData', detail); //
} else {
this.$messageBox(`获取实训步骤数据失败`);
this.endViewLoading();

View File

@ -209,6 +209,7 @@ export default {
this.textStatusHeight = textStatus.offsetHeight || 0;
textStatus.style.top = this.offset - 15 + 'px';
}
console.log(this.offset, '*************');
});
},
//

View File

@ -200,7 +200,7 @@ export default {
end() {
//
if (this.trainingObj && this.trainingObj.id) {
if (this.started) {
if (this.started) {
this.isDisable = false;
this.$store.dispatch('training/isStepOver').then((rnt) => {
if (rnt) {
@ -256,7 +256,7 @@ export default {
},
//
async initData() {
this.$store.dispatch('training/end', null);
// this.$store.dispatch('training/end', null);
if (parseInt(this.$route.query.trainingId)) {
//
//

View File

@ -64,6 +64,7 @@ import { quitScriptNew } from '@/api/simulation';
import { setGoodsTryUse } from '@/api/management/goods';
import {loadScriptNew } from '@/api/simulation';
import Vue from 'vue';
import { EventBus } from '@/scripts/event-bus';
export default {
name: 'MenuDemon',
@ -296,6 +297,8 @@ export default {
handleQuitQuest() {
quitScriptNew(this.group).then(resp => {
getSimulationInfoNew(this.group).then((res)=>{
this.isDisable = false;
EventBus.$emit('clearRunSeries');
this.quitQuest();
this.initLoadPage();
this.clearAllData();

View File

@ -6,7 +6,7 @@
<el-button-group>
<el-button v-if="isScheduling && isDepot" size="small" type="primary" @click="runPlanEditShow">运行图编辑</el-button>
<!-- 加载剧本 -->
<el-button v-if="isDemon && !isScheduling" size="small" :disabled="viewDisabled" type="success" @click="viewRunQuest">{{ $t('display.schema.loadScript') }}</el-button>
<el-button v-if="isDemon && !isScheduling && !isContest" size="small" :disabled="viewDisabled" type="success" @click="viewRunQuest">{{ $t('display.schema.loadScript') }}</el-button>
<!-- 运行图加载 -->
<el-button v-if="notScript && running" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('display.schema.previewRunDiagram') }}</el-button>
<el-button v-if="notScript && !running" size="small" type="warning" @click="loadRunPlan">{{ $t('display.schema.loadRunDiagram') }}</el-button>
@ -101,6 +101,9 @@ export default {
},
isDepot() {
return this.$route.query.type === 'DEPOT';
},
isContest() {
return this.project === 'drts';
}
},
watch: {

View File

@ -57,7 +57,7 @@ export default {
return (this.$route.query.lineCode == 10 || this.$route.query.lineCode == 11) && this.isDisplay;
},
top() {
return this.isShowDate ? (this.$route.query.prdType == '05' ? 5 : 35) : this.offset;
return this.isShowDate ? (this.$route.query.prdType == '05' ? 5 : this.offset - 10) : this.offset;
},
newRight() {
return this.isShowDate ? this.$store.state.config.width - 420 : this.$store.state.config.width / 2 - 55;

View File

@ -53,6 +53,8 @@ export default {
Switch_Hook_Lock: '道岔钩锁'
};
this.scriptTipMessage = '请对【' + targetName.label + '】下达【' + CommandList[val.commandInitiateVO.commandType] + '】指令';
} else if (val.type == 'Drive') {
// debugger;
}
}
},

View File

@ -178,6 +178,8 @@ export default {
this.$store.dispatch('training/setRoles', 'DISPATCHER');
} else if (role.type == '司机') {
prdType = '04';
this.$store.dispatch('training/setRoles', 'DRIVER');
this.$store.dispatch('scriptRecord/updateRole', 'DRIVER' + ':' + role.id);
} else if (role.type == '通号') {
prdType = '';
const routeData = this.$router.resolve({

View File

@ -696,8 +696,10 @@ export default {
}
selected.relevanceSectionList.forEach(dataCode => { //
const sectionModel = this.getSectionByCode(dataCode);
sectionModel.parentCode = '';
models.push(sectionModel);
if (sectionModel) {
sectionModel.parentCode = '';
models.push(sectionModel);
}
});
return models;
},

View File

@ -275,17 +275,6 @@ export default {
}
});
}
// if (sectiona1.points[sectiona1.points.length - 1].x == sectiona.points[0].x && sectiona1.points[sectiona1.points.length - 1].y == sectiona.points[0].y) {
// elem['relevanceSectionList'] = [elem.sectionACode, elem.sectionBCode, elem.sectionCCode, ele.sectionACode, ele.sectionBCode, ele.sectionCCode];
// sectiona1.parentCode = uid;
// sectionb1.parentCode = uid;
// sectionc1.parentCode = uid;
// sectionList.forEach((item, index) => {
// if (item.code == elem.code) {
// sectionList.splice(index, 1);
// }
// });
// }
});
}
} else {