This commit is contained in:
joylink_cuiweidong 2020-12-10 13:54:13 +08:00
commit a22445552a
28 changed files with 1496 additions and 190 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

View File

@ -93,18 +93,21 @@ export function StationStandList() {
let jlmapstationdata = jlmapdata.stationList;
let jlmapstanddata = jlmapdata.stationStandList;
// jlmapstationdata.splice(0,1);
console.log(standsdata);
console.log(jlmapstationdata);
for(let i=0;i<jlmapstationdata.length;i++){
if(jlmapstationdata[i].visible == false){
if(jlmapstationdata[i].visible == false || jlmapstationdata[i].subheadDisplay == false){
jlmapstationdata.splice(i,1);
i--;
}else{
standsdata[i].code = jlmapstationdata[i].code;
standsdata[i].name = jlmapstationdata[i].name;
}
// console.log(jlmapstationdata[i].subheadDisplay);
}
console.log(standsdata);
// console.log(jlmapstationdata);
// console.log(jlmapstanddata);
console.log(standsdata);
let stations = jlmap3ddata.stationstandlist.list;
let num;
let num2;

View File

@ -90,7 +90,7 @@ class SkinCode extends defaultStyle {
faultLockColor: '#81007F', // 区段故障锁定颜色
undefinedColor: '#0071C1', // 区段未定义颜色
protectionLockedColor: '#FFFFFF', // 保护区段锁闭
blockColor: '#d659d6', // 区段封锁颜色(淡紫色)
blockColor: '#FE0000', // 区段封锁颜色(淡紫色)
atcExcisionColor: '#A0522D', // 区段atc切除颜色
atsExcisionColor: '#A0522D', // 区段ats切除颜色
invalidColor: '#AC8F40', // 计轴故障颜色
@ -146,7 +146,7 @@ class SkinCode extends defaultStyle {
halfHeight: 8 // 区段分隔符高度的一半
},
block: {
blockGlint: true // 区段封锁闪烁显示
blockGlint: false // 区段封锁闪烁显示
},
trainPosition:{
display: true, // 列车实时位置显示

View File

@ -131,6 +131,7 @@
<train-detail ref="trainDetail" />
<all-train-detail ref="allTrainDetail" />
<route-detail ref="routeDetail" />
<init-section-open ref="initSectionOpen" />
</div>
</template>
<script>
@ -184,7 +185,7 @@ import TrainRunType from './menuDialog/trainRunType';
import TrainDetail from './menuDialog/trainDetail';
import AllTrainDetail from './menuDialog/allTrainDetail';
import RouteDetail from './menuDialog/routeDetail';
import Route from '../../../../views/newMap/newMapdraft/dataRelation/runLeveloperate/route';
import InitSectionOpen from './menuDialog/initSectionOpen';
export default {
name: 'MenuBar',
@ -232,7 +233,8 @@ export default {
TrainRunType,
TrainDetail,
AllTrainDetail,
RouteDetail
RouteDetail,
InitSectionOpen
},
props: {
selected: {
@ -1471,7 +1473,7 @@ export default {
setBlockSwitch() {
const operate = {
type: 'bar',
operation: OperationEvent.Switch.block.init.operation
operation: OperationEvent.Switch.block.button.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
@ -1485,7 +1487,7 @@ export default {
setUnblockSwitch() {
const operate = {
type: 'bar',
operation: OperationEvent.Switch.unblock.init.operation
operation: OperationEvent.Switch.unblock.button.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
@ -1565,26 +1567,26 @@ export default {
handleOpenSection() {
const operate = {
type: 'bar',
operation: ''
operation: OperationEvent.Section.unlock.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.sectionOpen.doShow();
this.$refs.initSectionOpen.doShow(operate);
}
});
},
handleCloseSection() {
const operate = {
type: 'bar',
operation: ''
operation: OperationEvent.Section.lock.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.sectionOpen.doShow();
this.$refs.initSectionOpen.doShow(operate);
}
});
},
@ -1701,20 +1703,20 @@ export default {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.signalBlock.doShow(operate);
this.$refs.initSignalBlock.doShow(operate);
}
});
},
setSignalCancelBlock() {
const operate = {
type: 'bar',
operation: OperationEvent.Signal.lock.menu.operation
operation: OperationEvent.Signal.unlock.menu.operation
};
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
if (valid) {
this.closeMenu(true);
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
this.$refs.signalBlock.doShow(operate);
this.$refs.initSignalBlock.doShow(operate);
}
});
},

View File

@ -0,0 +1,196 @@
<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">
<template slot-scope="scope">
<span>{{ getStationName(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" 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" />
<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-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-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: 'SwitchActive',
components: {
NoticeInfo
},
data() {
return {
status: false,
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
active: false,
activeName: 'first',
tempData: [],
radio: '1',
limitList: [
{ name: '5', value: 5 },
{ name: '10', value: 10 },
{ name: '15', value: 15 },
{ name: '20', value: 20 },
{ name: '25', value: 25 },
{ name: '30', value: 30 },
{ name: '35', value: 35 },
{ name: '40', value: 40 },
{ name: '45', value: 45 },
{ name: '50', value: 50 },
{ name: '55', value: 55 },
{ name: '60', value: 60 },
{ name: '65', value: 65 },
{ name: '70', value: 70 },
{ name: '75', value: 75 },
{ name: '80', value: 80 }
]
};
},
computed: {
...mapGetters('map', [
'sectionList'
]),
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');
},
selectLine1(val) {
},
selectLine2(val) {
},
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 ? '开启' : '关闭';
},
getLimitSpeed(code) {
const sectionEle = this.$store.getters['map/getDeviceByCode'](code);
return sectionEle.speedUpLimit;
},
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,225 @@
<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-column prop="name" label="轨道" />
<el-table-column prop="blockStatus" label="MAU">
<template slot-scope="scope">
<span>{{ getStationName(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="状态">
<template slot-scope="scope">
<span>{{ getSectionStatus(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" :label="isBlock?'关闭进程':'打开进程'">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
</template>
</el-table-column>
</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" :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-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" />
<section-open ref="sectionOpen" @commandSuccess="commandSuccess" @cancelCommand="cancelCommand" />
</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';
import SectionOpen from './sectionOpen';
export default {
name: 'SwitchActive',
components: {
NoticeInfo,
SectionOpen
},
data() {
return {
status: false,
operate: {},
standStatus: true,
allChecked: false,
dialogShow: false,
loading: false,
selected: null,
active: false,
selectShow: false,
activeName: 'first',
tempData: [],
radio: '1',
initEle: null,
commandEleCode: null
};
},
computed: {
...mapGetters('map', [
'sectionList'
]),
isBlock() {
return !!this.operate && this.operate.operation === OperationEvent.Section.lock.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 ? '初始化关闭轨道' : '初始化开放轨道';
},
commitDisabled() {
return !this.selected || (this.selected.blockade && this.isBlock) || (!this.selected.blockade && !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.initEle = null;
this.commandEleCode = null;
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.$refs.singleTable.setCurrentRow();
this.$store.dispatch('training/emitTipFresh');
},
selectLine(val) {
if (!val) { return; }
this.initEle = null;
this.commandEleCode = null;
const step = {
code: `${val.code}`,
operation: this.isBlock ? OperationEvent.Section.lock.choose.operation : OperationEvent.Section.unlock.choose.operation,
param: {}
};
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);
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
getProcess(code) {
if (this.commandEleCode && this.commandEleCode === code) {
return this.isBlock ? '已完成关闭' : '已完成打开';
} else if (this.initEle && this.initEle.code === code) {
return '已初始化';
} else {
return '';
}
},
getStationName(val) {
const stationElm = this.$store.getters['map/getDeviceByCode'](val.stationCode);
return stationElm.name;
},
getSectionStatus(code) {
const sectionElm = this.$store.getters['map/getDeviceByCode'](code);
if (this.commandEleCode && this.commandEleCode === code && this.isBlock) {
return '关闭双向:所有列车';
} else if (this.commandEleCode && this.commandEleCode === code && !this.isBlock) {
return '打开';
}
return sectionElm.blockade ? '关闭双向:所有列车' : '打开';
},
commit() {
const step = {
code: `${this.selected.code}`,
operation: this.isBlock ? OperationEvent.Section.lock.confirm.operation : OperationEvent.Section.unlock.confirm.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.sectionOpen.doShow(step, this.selected);
this.initEle = this.selected;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
commandSuccess(code) {
this.commandEleCode = code;
},
cancelCommand() {
this.initEle = null;
},
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

@ -1,16 +1,34 @@
<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="350px">
<el-table
ref="singleTable"
:data="signalList"
highlight-current-row
height="350px"
@current-change="handleCurrentChange"
>
<el-table-column prop="name" label="信号机" />
<el-table-column prop="status" label="信号机封锁状态" />
<el-table-column prop="status" label="设置封锁进程" />
<el-table-column prop="status" label="解除封锁进程" />
<el-table-column prop="status" label="信号机封锁状态">
<template slot-scope="scope">
<span>{{ getSignalStatus(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="设置封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code, 'lock') }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="解除封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code, 'unlock') }}</span>
</template>
</el-table-column>
</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-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected || !!initEle" @click="commit">确定(O)</el-button>
</el-col>
<el-col :span="4" :offset="2">
<el-button>应用(A)</el-button>
@ -23,6 +41,7 @@
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
<signal-block ref="signalBlock" @commandSuccess="commandSuccess" @cancelCommand="cancelCommand" />
</el-dialog>
</template>
@ -31,11 +50,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 SignalBlock from './signalBlock';
export default {
name: 'InitSignalBlock',
components: {
NoticeInfo
NoticeInfo,
SignalBlock
},
data() {
return {
@ -45,13 +66,18 @@ export default {
dialogShow: false,
loading: false,
selected: null,
operate: {}
operate: {},
initEle: null,
commandEleCode: null
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
isBlock() {
return this.operate && this.operate.operation === OperationEvent.Signal.lock.menu.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
@ -82,6 +108,8 @@ export default {
},
methods: {
doShow(operate, selected) {
this.initEle = null;
this.commandEleCode = null;
this.selected = selected;
this.operate = operate;
//
@ -93,12 +121,68 @@ export default {
doClose() {
this.loading = false;
this.dialogShow = false;
this.$refs.singleTable.setCurrentRow();
this.$store.dispatch('training/emitTipFresh');
},
commit() {
const step = {
code: `${this.selected.code}`,
operation: this.isBlock ? OperationEvent.Signal.lock.confirm.operation : OperationEvent.Signal.unlock.confirm.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.signalBlock.doShow(step, this.selected);
this.initEle = this.selected;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleClick() {
handleCurrentChange(val) {
if (!val) { return; }
this.initEle = null;
this.commandEleCode = null;
const step = {
code: `${val.code}`,
operation: this.isBlock ? OperationEvent.Signal.lock.choose.operation : OperationEvent.Signal.unlock.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
getSignalStatus(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (this.commandEleCode === code) {
return this.isBlock ? '锁闭的' : '未锁闭的';
}
if (signalEle.blockade) {
return '锁闭的';
} else {
return '未设锁闭';
}
},
commandSuccess(code) {
this.commandEleCode = code;
},
cancelCommand() {
this.initEle = null;
},
getProcess(code, type) {
if (this.commandEleCode && this.commandEleCode === code && ((type === 'lock' && this.isBlock) || (type === 'unlock' && !this.isBlock))) {
return this.isBlock ? '已完成封锁' : '已完成解封';
} else if (this.initEle && this.initEle.code === code && ((type === 'lock' && this.isBlock) || (type === 'unlock' && !this.isBlock))) {
return '已初始化';
} else {
return '';
}
},
cancel() {
const operate = {

View File

@ -1,16 +1,30 @@
<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-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 :data="signalList" height="300px">
<el-table
ref="singleTable"
:data="signalList"
highlight-current-row
height="300px"
@current-change="handleCurrentChange"
>
<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="blockStatus" label="允许锁闭">
<template slot-scope="scope">
<span>{{ getSignalBlock(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="同意取消"></el-table-column>
<el-table-column prop="unblockProcess" label="取消进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
</template>
</el-table-column>
</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-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected" @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>
@ -23,6 +37,7 @@
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
<signal-can-block ref="signalCanBlock" @commandSuccess="commandSuccess" @cancelCommand="cancelCommand" />
</el-dialog>
</template>
@ -31,11 +46,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 SignalCanBlock from './signalCanBlock';
export default {
name: 'StandDetain',
components: {
NoticeInfo
NoticeInfo,
SignalCanBlock
},
data() {
return {
@ -45,7 +62,9 @@ export default {
dialogShow: false,
loading: false,
selected: null,
operate: ''
operate: '',
initEle: null,
commandEleCode: null
};
},
computed: {
@ -82,6 +101,8 @@ export default {
},
methods: {
doShow(operate, selected) {
this.initEle = null;
this.commandEleCode = null;
this.selected = selected;
this.operate = operate;
//
@ -93,12 +114,65 @@ export default {
doClose() {
this.loading = false;
this.dialogShow = false;
this.$refs.singleTable.setCurrentRow();
this.$store.dispatch('training/emitTipFresh');
},
commit() {
const step = {
code: `${this.selected.code}`,
operation: OperationEvent.Signal.lock.confirm.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.signalCanBlock.doShow(step, this.selected);
this.initEle = this.selected;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleClick() {
getSignalBlock(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.blockade) {
return '关闭';
} else {
return '开启';
}
},
getProcess(code) {
if (this.commandEleCode === code) {
return '完成';
} else if (this.initEle && this.initEle.code === code) {
return '已初始化';
} else {
return '';
}
},
commandSuccess(code) {
this.commandEleCode = code;
},
cancelCommand() {
this.initEle = null;
},
handleCurrentChange(val) {
if (!val) { return; }
this.initEle = null;
this.commandEleCode = null;
const step = {
code: `${val.code}`,
operation: OperationEvent.Signal.lock.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
cancel() {
const operate = {

View File

@ -1,17 +1,35 @@
<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
ref="singleTable"
:data="signalList"
highlight-current-row
height="300px"
@current-change="handleCurrentChange"
>
<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="blockStatus" label="显示">
<template slot-scope="scope">
<span>{{ getSignalShow(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="可引导">
<template slot-scope="scope">
<span>{{ getCanGuide(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="引导过程" width="120">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
</template>
</el-table-column>
<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-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected || !selected.callOn" @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>
@ -24,6 +42,7 @@
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
<signal-guide ref="signalGuide" @commandSuccess="commandSuccess" @cancelCommand="cancelCommand" />
</el-dialog>
</template>
@ -31,11 +50,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 SignalGuide from './signalGuide';
import { mapGetters } from 'vuex';
export default {
name: 'StandDetain',
components: {
SignalGuide,
NoticeInfo
},
data() {
@ -46,7 +67,9 @@ export default {
dialogShow: false,
loading: false,
selected: null,
operate: ''
operate: '',
initEle: null,
commandEleCode: null
};
},
computed: {
@ -83,6 +106,8 @@ export default {
},
methods: {
doShow(operate, selected) {
this.initEle = null;
this.commandEleCode = null;
this.selected = selected;
this.operate = operate;
//
@ -94,12 +119,79 @@ export default {
doClose() {
this.loading = false;
this.dialogShow = false;
this.$refs.singleTable.setCurrentRow();
this.$store.dispatch('training/emitTipFresh');
},
commit() {
getSignalShow(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.redOpen && !signalEle.yellowOpen && !signalEle.greenOpen) {
return '红';
} else if (!signalEle.redOpen && !signalEle.yellowOpen && signalEle.greenOpen) {
return '绿';
} else if (!signalEle.redOpen && signalEle.yellowOpen && !signalEle.greenOpen) {
return '黄';
} else if (signalEle.redOpen && signalEle.yellowOpen && !signalEle.greenOpen) {
return '引导';
} else {
return '';
}
},
handleClick() {
getCanGuide(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.callOn) {
return '是';
} else {
return '否';
}
},
getProcess(code) {
if (this.commandEleCode === code) {
return '完成';
} else if (this.initEle && this.initEle.code === code) {
return '等待确认/取消';
} else {
return '';
}
},
commit() {
const step = {
code: `${this.selected.code}`,
operation: OperationEvent.Signal.guide.confirm.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$refs.signalGuide.doShow(step, this.selected);
this.initEle = this.selected;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleCurrentChange(val) {
if (!val) { return; }
this.initEle = null;
this.commandEleCode = null;
const step = {
code: `${val.code}`,
operation: OperationEvent.Signal.guide.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
commandSuccess(code) {
this.commandEleCode = code;
},
cancelCommand() {
this.initEle = null;
},
cancel() {
const operate = {

View File

@ -1,5 +1,5 @@
<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-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"
@ -16,10 +16,14 @@
</el-table-column>
<el-table-column prop="blockProcess" label="设置封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
<span>{{ getProcess(scope.row.code, 'block') }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="解除封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code, 'unblock') }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="解除封锁进程" />
</el-table>
</el-row>
<el-row justify="center" class="button-group">
@ -37,7 +41,7 @@
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
<switch-block ref="switchBlock" @commandSuccess="commandSuccess" />
<switch-block ref="switchBlock" @commandSuccess="commandSuccess" @cancelCommand="cancelCommand" />
</el-dialog>
</template>
@ -75,7 +79,7 @@ export default {
'switchList'
]),
isBlock() {
return this.operate === OperationEvent.Switch.block.init.operation;
return this.operate && this.operate.operation === OperationEvent.Switch.block.button.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
@ -126,7 +130,7 @@ export default {
commit() {
const step = {
code: `${this.selected.code}`,
operation: OperationEvent.Switch.block.menu.init,
operation: this.isBlock ? OperationEvent.Switch.block.confirm.operation : OperationEvent.Switch.unblock.confirm.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
@ -142,24 +146,36 @@ export default {
handleCurrentChange(val) {
if (!val) { return; }
this.initEle = null;
commitOperate(menuOperate.Switch.block, {code:val.code}, 1).then(({valid})=>{
this.commandEleCode = null;
const step = {
code: `${val.code}`,
operation: this.isBlock ? OperationEvent.Switch.block.choose.operation : OperationEvent.Switch.unblock.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
getSwitchStatus(code) {
const switchEle = this.$store.getters['map/getDeviceByCode'](code);
if (this.commandEleCode === code) {
return this.isBlock ? '锁闭的' : '未锁闭的';
}
if (switchEle.blockade) {
return '锁闭的';
} else {
return '未锁闭的';
}
},
getProcess(code) {
if (this.commandEleCode && this.commandEleCode === code) {
return '已完成封锁';
} else if (this.initEle && this.initEle.code === code) {
getProcess(code, type) {
if (this.commandEleCode && this.commandEleCode === code && ((type === 'block' && this.isBlock) || (type === 'unblock' && !this.isBlock))) {
return this.isBlock ? '已完成封锁' : '已完成解封';
} else if (this.initEle && this.initEle.code === code && ((type === 'block' && this.isBlock) || (type === 'unblock' && !this.isBlock))) {
return '已初始化';
} else {
return '';
@ -169,6 +185,9 @@ export default {
this.commandEleCode = code;
this.$refs.singleTable.setCurrentRow();
},
cancelCommand() {
this.initEle = null;
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation

View File

@ -33,7 +33,15 @@
<el-col :span="18">
<div class="border-box">
<div class="border-box-title">CBTC</div>
<el-table :data="routeList" height="120px" style="position: relative;top: -15px;">
<!--<el-table :data="routeList" height="120px" style="position: relative;top: -15px;">-->
<el-table
ref="singleTable1"
:data="routeList"
highlight-current-row
style="position: relative;top: -15px;"
height="120px"
@current-change="handleCurrentChange1"
>
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="area" label="区域" />
<el-table-column prop="status" label="状态" />
@ -50,9 +58,20 @@
</el-row>
<el-row class="border-box">
<div class="border-box-title">后备</div>
<el-table :data="routeList" height="160px" style="position: relative;top: -15px;">
<el-table
ref="singleTable2"
:data="routeList"
highlight-current-row
style="position: relative;top: -15px;"
height="160px"
@current-change="handleCurrentChange2"
>
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="direction" label="运行方向" />
<el-table-column prop="direction" label="运行方向">
<template slot-scope="scope">
<span>{{ getRouteDirection(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" />
<el-table-column prop="pmi" width="50" label="PMI" />
<el-table-column prop="signalModel" width="80" label="信号模式" />
@ -64,7 +83,15 @@
<el-row>
<div class="border-box">
<div class="border-box-title">CBTC</div>
<el-table :data="routeList" height="120px" style="position: relative;top: -15px;">
<!--<el-table :data="routeList" height="120px" style="position: relative;top: -15px;">-->
<el-table
ref="singleTable3"
:data="routeList"
highlight-current-row
style="position: relative;top: -15px;"
height="120px"
@current-change="handleCurrentChange3"
>
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="area" label="区域" />
<el-table-column prop="status" label="状态" />
@ -73,9 +100,21 @@
</el-row>
<el-row class="border-box">
<div class="border-box-title">后备</div>
<el-table :data="routeList" height="160px" style="position: relative;top: -15px;">
<!--<el-table :data="routeList" height="160px" style="position: relative;top: -15px;">-->
<el-table
ref="singleTable4"
:data="routeList"
highlight-current-row
style="position: relative;top: -15px;"
height="160px"
@current-change="handleCurrentChange4"
>
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="direction" label="运行方向" />
<el-table-column prop="direction" label="运行方向">
<template slot-scope="scope">
<span>{{ getRouteDirection(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" />
<el-table-column prop="pmi" width="50" label="PMI" />
<el-table-column prop="signalModel" width="80" label="信号模式" />
@ -83,28 +122,39 @@
<el-input placeholder="PMI进路选择" size="mini" style="position: relative;top: -10px;" />
</el-row>
</el-tab-pane>
<el-tab-pane label="禁止进路" name="third">
<el-row class="border-box">
<el-col :span="18">
<div class="border-box-title">后备</div>
<el-table :data="routeList" height="332px" style="position: relative;top: -15px;">
<el-table-column prop="name" width="130" label="进路" />
<el-table-column prop="direction" label="运行方向" />
<el-table-column prop="status" label="状态" />
<el-table-column prop="pmi" width="50" label="PMI" />
<el-table-column prop="signalModel" width="80" label="信号模式" />
</el-table>
</el-col>
<el-col :span="6">
<div class="radio-box-title">禁止进路</div>
<div class="radio-box">
<el-radio v-model="forbidRoute" :label="true" style="display: block;margin-bottom: 10px;">设置(S)</el-radio>
<el-radio v-model="forbidRoute" :label="false" style="display: block;">取消(N)</el-radio>
</div>
</el-col>
<el-input placeholder="PMI进路选择" size="mini" style="position: relative;top: -10px;" />
</el-row>
</el-tab-pane>
<!--<el-tab-pane label="禁止进路" name="third">-->
<!--<el-row class="border-box">-->
<!--<el-col :span="18">-->
<!--<div class="border-box-title">后备</div>-->
<!--<el-table-->
<!--ref="singleTable5"-->
<!--:data="routeList"-->
<!--highlight-current-row-->
<!--style="position: relative;top: -15px;"-->
<!--height="332px"-->
<!--@current-change="handleCurrentChange5"-->
<!--&gt;-->
<!--<el-table-column prop="name" width="130" label="进路" />-->
<!--<el-table-column prop="direction" label="运行方向">-->
<!--<template slot-scope="scope">-->
<!--<span>{{ getRouteDirection(scope.row) }}</span>-->
<!--</template>-->
<!--</el-table-column>-->
<!--<el-table-column prop="status" label="状态" />-->
<!--<el-table-column prop="pmi" width="50" label="PMI" />-->
<!--<el-table-column prop="signalModel" width="80" label="信号模式" />-->
<!--</el-table>-->
<!--</el-col>-->
<!--<el-col :span="6">-->
<!--<div class="radio-box-title">禁止进路</div>-->
<!--<div class="radio-box">-->
<!--<el-radio v-model="forbidRoute" :label="true" style="display: block;margin-bottom: 10px;">设置(S)</el-radio>-->
<!--<el-radio v-model="forbidRoute" :label="false" style="display: block;">取消(N)</el-radio>-->
<!--</div>-->
<!--</el-col>-->
<!--<el-input placeholder="PMI进路选择" size="mini" style="position: relative;top: -10px;" />-->
<!--</el-row>-->
<!--</el-tab-pane>-->
</el-tabs>
</el-col>
</el-row>
@ -131,6 +181,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',
@ -149,7 +200,7 @@ export default {
activeName: 'first',
tempData: [],
checked: false,
unlockType: '',
unlockType: 'auto',
forbidRoute: false
};
},
@ -199,11 +250,118 @@ export default {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
this.$refs.singleTable1.setCurrentRow();
this.$refs.singleTable2.setCurrentRow();
this.$refs.singleTable3.setCurrentRow();
this.$refs.singleTable4.setCurrentRow();
},
commit() {
const step = {
over: true,
param: {routeCode: this.selected.code, signalCode: this.selected.startSignalCode}
};
if (this.activeName === 'first') {
if (this.unlockType === 'auto') {
step.operation = OperationEvent.Signal.atsAutoControl.confirm.operation;
step.cmdType = CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING;
} else if (this.unlockType === 'artificial') {
step.operation = OperationEvent.Signal.humanControl.confirm.operation;
step.cmdType = CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING;
}
} else if (this.activeName === 'second') {
step.operation = OperationEvent.Signal.cancelTrainRoute.confirm.operation;
step.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE;
}
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
}
}).catch((error) => {
this.$refs.noticeInfo.doShow();
});
},
handleClick() {
handleCurrentChange1(val) {
this.$refs.singleTable2.setCurrentRow();
this.$refs.singleTable1.setCurrentRow(val);
if (!val) { return; }
const step = {
code: `${val.code}`,
operation: OperationEvent.Signal.atsAutoControl.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleCurrentChange2(val) {
this.$refs.singleTable1.setCurrentRow();
this.$refs.singleTable2.setCurrentRow(val);
if (!val) { return; }
const step = {
code: `${val.code}`,
operation: OperationEvent.Signal.atsAutoControl.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleCurrentChange3(val) {
this.$refs.singleTable4.setCurrentRow();
this.$refs.singleTable3.setCurrentRow(val);
if (!val) { return; }
const step = {
code: `${val.code}`,
operation: OperationEvent.Signal.cancelTrainRoute.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleCurrentChange4(val) {
this.$refs.singleTable3.setCurrentRow();
this.$refs.singleTable4.setCurrentRow(val);
const step = {
code: `${val.code}`,
operation: OperationEvent.Signal.cancelTrainRoute.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleCurrentChange5(val) {
},
getRouteDirection(route) {
const signalEle = this.$store.getters['map/getDeviceByCode'](route.startSignalCode);
if (signalEle.right) {
return '0';
} else {
return '1';
}
},
cancel() {
const operate = {

View File

@ -2,19 +2,31 @@
<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 :data="sectionList" highlight-current-row height="300px" @current-change="selectLine">
<el-table ref="singleTable" :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="blockStatus" 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.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" :label="isBlock?'关闭进程':'打开进程'">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col v-if="selectShow" :span="5" :offset="1">
<el-col :span="5" :offset="1">
<fieldset>
<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>
@ -42,6 +54,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',
@ -57,16 +70,20 @@ export default {
loading: false,
selected: null,
active: false,
selectShow: false,
activeName: 'first',
tempData: [],
radio: '1'
radio: '1',
operate: {},
command: true
};
},
computed: {
...mapGetters('map', [
'sectionList'
]),
isBlock() {
return !!this.operate && this.operate.operation === OperationEvent.Section.lock.confirm.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
@ -80,7 +97,7 @@ export default {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '初始化开放轨道';
return this.isBlock ? '初始化关闭轨道' : '初始化开放轨道';
}
},
watch: {
@ -98,9 +115,10 @@ export default {
methods: {
doShow(operate, selected) {
this.selected = selected;
//
this.operate = operate;
this.dialogShow = true;
this.$nextTick(function () {
this.$refs.singleTable.setCurrentRow(this.selected);
this.$store.dispatch('training/emitTipFresh');
});
},
@ -110,13 +128,42 @@ export default {
this.$store.dispatch('training/emitTipFresh');
},
selectLine(val) {
// console.log(val);
this.selectShow = true;
this.$refs.singleTable.setCurrentRow(this.selected);
},
getProcess(code) {
if (this.selected && this.selected.code === code) {
return '等待确认/取消';
} else {
return '';
}
},
getStationName(val) {
const stationElm = this.$store.getters['map/getDeviceByCode'](val.stationCode);
return stationElm.name;
},
getSectionStatus(code) {
const sectionElm = this.$store.getters['map/getDeviceByCode'](code);
return sectionElm.blockade ? '关闭双向:所有列车' : '打开';
},
commit() {
},
handleClick() {
if (this.command) {
const operate = {
cmdType: this.isBlock ? CMD.Section.CMD_SECTION_BLOCK : CMD.Section.CMD_SECTION_UNBLOCK,
operation: this.isBlock ? OperationEvent.Section.lock.confirm1.operation : OperationEvent.Section.unlock.confirm1.operation,
over: true,
param: {sectionCode: this.selected.code}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
this.$emit('commandSuccess', this.selected.code);
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
} else {
this.cancel();
}
},
cancel() {
const operate = {

View File

@ -2,17 +2,35 @@
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="750px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
<el-row>
<el-col :span="18">
<el-table :data="signalList" height="350px">
<el-table
ref="singleTable"
:data="signalList"
highlight-current-row
height="350px"
@current-change="handleCurrentChange"
>
<el-table-column prop="name" label="信号机" />
<el-table-column prop="status" label="信号机封锁状态" />
<el-table-column prop="status" label="设置封锁进程" />
<el-table-column prop="status" label="解除封锁进程" />
<el-table-column prop="status" label="信号机封锁状态">
<template slot-scope="scope">
<span>{{ getSignalStatus(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="设置封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code, 'lock') }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="解除封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code, 'unlock') }}</span>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="5" :offset="1">
<div class="set-status-title">命令</div>
<div class="set-status-box">
<el-radio v-model="command" :disabled="true" :label="true">确认</el-radio>
<el-radio v-model="command" :label="true">确认</el-radio>
<br>
<el-radio v-model="command" :label="false">取消</el-radio>
</div>
@ -41,6 +59,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: 'SignalBlock',
@ -55,13 +74,17 @@ export default {
dialogShow: false,
loading: false,
selected: null,
operate: {}
operate: {},
title: ''
};
},
computed: {
...mapGetters('map', [
'signalList'
]),
isBlock() {
return this.operate && this.operate.operation === OperationEvent.Signal.lock.confirm.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
@ -73,10 +96,10 @@ export default {
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.operate.operation === OperationEvent.Signal.lock.menu.operation ? '确认/取消信号机封锁' : '确认/取消信号机解除封锁';
}
// title() {
// return this.operate.operation === OperationEvent.Signal.lock.menu.operation ? '/' : '/';
// }
},
watch: {
'$store.state.map.keyboardEnterCount': function (val) {
@ -95,8 +118,10 @@ export default {
this.selected = selected;
this.operate = operate;
//
this.title = this.operate && this.operate.operation === OperationEvent.Switch.block.confirm.operation ? '确认/取消信号机封锁' : '确认/取消信号机解除封锁';
this.dialogShow = true;
this.$nextTick(function () {
this.$refs.singleTable.setCurrentRow(selected);
this.$store.dispatch('training/emitTipFresh');
});
},
@ -106,9 +131,42 @@ export default {
this.$store.dispatch('training/emitTipFresh');
},
commit() {
if (this.command) {
const operate = {
cmdType: this.isBlock ? CMD.Signal.CMD_SIGNAL_BLOCK : CMD.Signal.CMD_SIGNAL_UNBLOCK,
operation: this.isBlock ? OperationEvent.Signal.lock.confirm1.operation : OperationEvent.Signal.unlock.confirm1.operation,
over: true,
param: {signalCode: this.selected.code}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
this.$emit('commandSuccess', this.selected.code);
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
} else {
this.cancel();
}
},
handleClick() {
handleCurrentChange(val) {
this.$refs.singleTable.setCurrentRow(this.selected);
},
getSignalStatus(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.blockade) {
return '锁闭的';
} else {
return '未设锁闭';
}
},
getProcess(code, type) {
if (this.selected.code === code && ((type === 'lock' && this.isBlock) || (type === 'unlock' && !this.isBlock))) {
return '等待确认/取消';
} else {
return '';
}
},
cancel() {
const operate = {
@ -116,6 +174,7 @@ export default {
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$emit('cancelCommand');
this.doClose();
}
}).catch(() => {

View File

@ -1,19 +1,33 @@
<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-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 :data="signalList" height="300px">
<el-table
ref="singleTable"
:data="signalList"
highlight-current-row
height="300px"
@current-change="handleCurrentChange"
>
<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="blockStatus" label="允许锁闭">
<template slot-scope="scope">
<span>{{ getSignalBlock(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="同意取消"></el-table-column>
<el-table-column prop="unblockProcess" label="取消进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
</template>
</el-table-column>
</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>
<el-radio v-model="command" :label="true" style="display: block;margin-bottom: 10px;">确认</el-radio>
<el-radio v-model="command" :label="false" style="display: block;">取消</el-radio>
</div>
</el-col>
</el-row>
@ -40,6 +54,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: 'SignalCanBlock',
@ -55,7 +70,7 @@ export default {
loading: false,
selected: null,
operate: '',
command: ''
command: true
};
},
computed: {
@ -97,6 +112,7 @@ export default {
//
this.dialogShow = true;
this.$nextTick(function () {
this.$refs.singleTable.setCurrentRow(selected);
this.$store.dispatch('training/emitTipFresh');
});
},
@ -106,9 +122,38 @@ export default {
this.$store.dispatch('training/emitTipFresh');
},
commit() {
const operate = {
cmdType: this.command ? CMD.Signal.CMD_SIGNAL_BLOCK : CMD.Signal.CMD_SIGNAL_UNBLOCK,
operation: this.command ? OperationEvent.Signal.lock.confirm1.operation : OperationEvent.Signal.unlock.confirm1.operation,
over: true,
param: {signalCode: this.selected.code}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
this.$emit('commandSuccess', this.selected.code);
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleClick() {
handleCurrentChange(val) {
this.$refs.singleTable.setCurrentRow(this.selected);
},
getSignalBlock(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.blockade) {
return '关闭';
} else {
return '开启';
}
},
getProcess(code) {
if (this.selected && this.selected.code === code) {
return '等待确认/取消';
} else {
return '';
}
},
cancel() {
const operate = {

View File

@ -3,7 +3,11 @@
<el-row>
<el-table :data="signalList" height="350px">
<el-table-column prop="name" label="信号机" />
<el-table-column prop="status" label="显示" />
<el-table-column prop="show" label="显示">
<template slot-scope="scope">
<span>{{ getSignalShow(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="错误代码" />
<el-table-column prop="status" label="引导过程" />
<el-table-column prop="status" width="160" label="区间信号机引导过程" />
@ -14,20 +18,24 @@
<el-table-column prop="allowSpeed" label="允许速度" />
<el-table-column prop="canOrdered" label="可命令" />
<el-table-column prop="confirmProcess" label="确认进程" />
<el-table-column prop="signalBlockState" width="160" label="信号机封锁状态" />
<el-table-column prop="status" label="信号机封锁状态">
<template slot-scope="scope">
<span>{{ getSignalStatus(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="setBlockProcess" width="160" label="信号机封锁进程" />
<el-table-column prop="cancelBlockProcess" width="160" 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-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="true" @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-button :disabled="true">帮助(H)</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
@ -111,8 +119,27 @@ export default {
}
});
},
handleClick() {
getSignalStatus(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.blockade) {
return '锁闭的';
} else {
return '未设锁闭';
}
},
getSignalShow(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.redOpen && !signalEle.yellowOpen && !signalEle.greenOpen) {
return '红';
} else if (!signalEle.redOpen && !signalEle.yellowOpen && signalEle.greenOpen) {
return '绿';
} else if (!signalEle.redOpen && signalEle.yellowOpen && !signalEle.greenOpen) {
return '黄';
} else if (signalEle.redOpen && signalEle.yellowOpen && !signalEle.greenOpen) {
return '引导';
} else {
return '';
}
},
cancel() {
const operate = {

View File

@ -2,19 +2,37 @@
<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
ref="singleTable"
:data="signalList"
highlight-current-row
height="300px"
@current-change="handleCurrentChange"
>
<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="blockStatus" label="显示">
<template slot-scope="scope">
<span>{{ getSignalShow(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" label="可引导">
<template slot-scope="scope">
<span>{{ getCanGuide(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="引导过程" width="120">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
</template>
</el-table-column>
<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>
<el-radio v-model="command" :label="true" style="display: block;margin-bottom: 10px;">确认</el-radio>
<el-radio v-model="command" :label="false" style="display: block;">取消</el-radio>
</div>
</el-col>
</el-row>
@ -41,6 +59,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: 'SignalGuide',
@ -55,7 +74,7 @@ export default {
dialogShow: false,
loading: false,
selected: null,
command: '',
command: true,
operate: ''
};
},
@ -98,6 +117,7 @@ export default {
//
this.dialogShow = true;
this.$nextTick(function () {
this.$refs.singleTable.setCurrentRow(selected);
this.$store.dispatch('training/emitTipFresh');
});
},
@ -107,9 +127,52 @@ export default {
this.$store.dispatch('training/emitTipFresh');
},
commit() {
const operate = {
cmdType: this.command ? CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE : CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE,
operation: this.command ? OperationEvent.Signal.guide.confirm1.operation : OperationEvent.Signal.cancelGuide.confirm1.operation,
over: true,
param: {signalCode: this.selected.code}
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.doClose();
this.$emit('commandSuccess', this.selected.code);
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleClick() {
getSignalShow(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.redOpen && !signalEle.yellowOpen && !signalEle.greenOpen) {
return '红';
} else if (!signalEle.redOpen && !signalEle.yellowOpen && signalEle.greenOpen) {
return '绿';
} else if (!signalEle.redOpen && signalEle.yellowOpen && !signalEle.greenOpen) {
return '黄';
} else if (signalEle.redOpen && signalEle.yellowOpen && !signalEle.greenOpen) {
return '引导';
} else {
return '';
}
},
getCanGuide(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.callOn) {
return '是';
} else {
return '否';
}
},
getProcess(code) {
if (this.selected && this.selected.code === code) {
return '等待确认/取消';
} else {
return '';
}
},
handleCurrentChange(val) {
this.$refs.singleTable.setCurrentRow(this.selected);
},
cancel() {
const operate = {
@ -117,6 +180,7 @@ export default {
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$emit('cancelCommand');
this.doClose();
}
}).catch(() => {

View File

@ -11,7 +11,9 @@
>
<el-table-column prop="name" label="站台" />
<el-table-column prop="groupNumber" label="状态">
<span>打开</span>
<template slot-scope="scope">
<span>{{ getStandStatus(scope.row.code) }}</span>
</template>
</el-table-column>
</el-table>
</el-col>
@ -22,7 +24,7 @@
<br>
<el-radio v-model="status" :disabled="!standStatus" :label="false">关闭</el-radio>
</div>
<el-checkbox v-model="allChecked" style="position: relative; top: 220px;">所有站台(F)</el-checkbox>
<el-checkbox v-model="allChecked" :disabled="true" style="position: relative; top: 220px;">所有站台(F)</el-checkbox>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
@ -46,8 +48,8 @@
<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';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default {
name: 'StandControl',
@ -108,15 +110,51 @@ export default {
doClose() {
this.loading = false;
this.dialogShow = false;
this.$refs.singleTable.setCurrentRow();
this.$store.dispatch('training/emitTipFresh');
},
commit() {
// commitOperate(menuOperate.StationStand.setDetainTrain, {stationCodes:[this.stationCode]}, 0).then((data)=>{
// this.doClose();
// });
const step = {
over: true,
cmdType:this.status ? CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP : CMD.Stand.CMD_STAND_SET_JUMP_STOP,
operation:this.status ? OperationEvent.StationStand.cancelJumpStop.confirm.operation : OperationEvent.StationStand.setJumpStop.confirm.operation,
param: {standCode: this.selected.code}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
}
}).catch((error) => {
this.$refs.noticeInfo.doShow();
});
},
getStandStatus(code) {
const standEle = this.$store.getters['map/getDeviceByCode'](code);
if (standEle.allSkip) {
return '关闭';
} else {
return '打开';
}
},
handleCurrentChange(val) {
if (!val) { return; }
const standEle = this.$store.getters['map/getDeviceByCode'](val.code);
const step = {
code: `${val.code}`,
operation:standEle.allSkip ? OperationEvent.StationStand.setJumpStop.choose.operation : OperationEvent.StationStand.cancelJumpStop.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
this.standStatus = !standEle.allSkip;
this.status = !!standEle.allSkip;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
cancel() {
const operate = {

View File

@ -2,24 +2,34 @@
<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
ref="singleTable"
:data="switchList"
highlight-current-row
height="300px"
@current-change="handleCurrentChange"
>
<el-table-column prop="name" width="80" label="道岔" />
<el-table-column prop="blockStatus" label="请求或允许动岔">
<template slot-scope="scope">
<span>{{ getSignalLock(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockProcess" width="170" label="请求或允许动岔输出错">正确</el-table-column>
</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>
<el-radio v-model="active" :label="true" style="display: block;margin-bottom: 10px;" :disabled="!active">(A)激活</el-radio>
<el-radio v-model="active" :label="false" style="display: block;" :disabled="active">(I)取消激活</el-radio>
</div>
<el-checkbox v-model="allChecked" style="position: relative;top: 100px;left: 8px;">(A)全部</el-checkbox>
<el-checkbox v-model="allChecked" :disabled="true" 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-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selected" @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>
@ -37,6 +47,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',
@ -98,12 +109,50 @@ export default {
doClose() {
this.loading = false;
this.dialogShow = false;
this.$refs.singleTable.setCurrentRow();
this.$store.dispatch('training/emitTipFresh');
},
commit() {
const step = {
over: true,
cmdType: this.active ? CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK : CMD.Switch.CMD_SWITCH_SINGLE_LOCK,
operation: this.active ? OperationEvent.Switch.unlock.confirm.operation : OperationEvent.Switch.lock.confirm.operation,
param: { switchCode: this.selected.code}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
handleClick() {
handleCurrentChange(val) {
if (!val) { return; }
const step = {
code: `${val.code}`,
operation: OperationEvent.Switch.lock.choose.operation,
param: {}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.selected = val;
const signalEle = this.$store.getters['map/getDeviceByCode'](val.code);
this.active = !!signalEle.singleLock;
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
getSignalLock(code) {
const signalEle = this.$store.getters['map/getDeviceByCode'](code);
if (signalEle.singleLock) {
return '未激活';
} else {
return '激活';
}
},
cancel() {
const operate = {

View File

@ -1,5 +1,5 @@
<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-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
@ -17,10 +17,14 @@
</el-table-column>
<el-table-column prop="blockProcess" label="设置封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code) }}</span>
<span>{{ getProcess(scope.row.code, 'block') }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="解除封锁进程">
<template slot-scope="scope">
<span>{{ getProcess(scope.row.code, 'unblock') }}</span>
</template>
</el-table-column>
<el-table-column prop="unblockProcess" label="解除封锁进程" />
</el-table>
</el-col>
<el-col :span="6">
@ -69,7 +73,8 @@ export default {
dialogShow: false,
loading: false,
selected: null,
command: true
command: true,
title: ''
};
},
computed: {
@ -77,7 +82,7 @@ export default {
'switchList'
]),
isBlock() {
return this.operate === OperationEvent.Switch.block.menu.operation;
return this.operate && this.operate.operation === OperationEvent.Switch.block.confirm.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
@ -90,9 +95,6 @@ export default {
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.isBlock ? '确认/取消道岔封锁' : '确认/取消道岔解除封锁';
}
},
watch: {
@ -111,6 +113,8 @@ export default {
doShow(operate, selected) {
this.selected = selected;
//
this.operate = operate;
this.title = this.operate && this.operate.operation === OperationEvent.Switch.block.confirm.operation ? '确认/取消道岔封锁' : '确认/取消道岔解除封锁';
this.dialogShow = true;
this.$nextTick(function () {
this.$refs.singleTable.setCurrentRow(selected);
@ -133,8 +137,8 @@ export default {
commit() {
if (this.command) {
const operate = {
cmdType: CMD.Switch.CMD_SWITCH_BLOCK,
operation: OperationEvent.Switch.block.confirm.operation,
cmdType: this.isBlock ? CMD.Switch.CMD_SWITCH_BLOCK : CMD.Switch.CMD_SWITCH_UNBLOCK,
operation: this.isBlock ? OperationEvent.Switch.block.confirm1.operation : OperationEvent.Switch.unblock.confirm1.operation,
over: true,
param: {switchCode: this.selected.code}
};
@ -144,7 +148,7 @@ export default {
this.$emit('commandSuccess', this.selected.code);
}
}).catch(() => {
this.doClose();
this.$refs.noticeInfo.doShow();
});
} else {
this.cancel();
@ -153,8 +157,8 @@ export default {
handleCurrentChange(val) {
this.$refs.singleTable.setCurrentRow(this.selected);
},
getProcess(code) {
if (this.selected.code === code) {
getProcess(code, type) {
if (this.selected.code === code && ((type === 'block' && this.isBlock) || (type === 'unblock' && !this.isBlock))) {
return '等待确认/取消';
} else {
return '';
@ -166,6 +170,7 @@ export default {
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$emit('cancelCommand');
this.doClose();
}
}).catch(() => {

View File

@ -1,11 +1,19 @@
<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-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 :data="switchList" height="350px">
<el-table-column prop="name" width="80" label="道岔" />
<el-table-column prop="position" width="80" label="位置" />
<el-table-column prop="position" width="80" label="位置">
<template slot-scope="scope">
<span>{{ getSwitchPosition(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockStatus" width="80" label="预留" />
<el-table-column prop="blockStatus" width="80" label="状态" />
<el-table-column prop="blockStatus" width="80" label="状态">
<template slot-scope="scope">
<span>{{ getSwitchStatus(scope.row.code) }}</span>
</template>
</el-table-column>
<el-table-column prop="blockStatus" width="120" label="道岔封锁状态" />
<el-table-column prop="blockProcess" width="120" label="设置封锁进程" />
<el-table-column prop="unblockProcess" width="120" label="解除封锁进程" />
@ -55,9 +63,6 @@ export default {
...mapGetters('map', [
'switchList'
]),
isBlock() {
return this.operate === OperationEvent.Switch.block.init.operation;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
@ -71,7 +76,7 @@ export default {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return this.isBlock ? '初始化道岔封锁' : '初始化道岔解除封锁';
return '道岔信息显示';
}
},
watch: {
@ -105,6 +110,24 @@ export default {
},
handleClick() {
},
getSwitchPosition(code) {
const switchEle = this.$store.getters['map/getDeviceByCode'](code);
if (switchEle.normalPosition) {
return '定位';
} else if (switchEle.reversePosition) {
return '反位';
} else {
return '';
}
},
getSwitchStatus(code) {
const switchEle = this.$store.getters['map/getDeviceByCode'](code);
if (switchEle.blockade) {
return '锁闭的';
} else {
return '未锁闭的';
}
},
cancel() {
const operate = {

View File

@ -13,6 +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 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';
@ -44,6 +45,15 @@ export const loginInfo = {
navigationMarginLeft: '175px',
systemType: '011'
},
jdy: {
title: '江苏电子信息职业学院城市轨道交通实训平台',
loginPath: '/login?project=jdy',
loginParam: 'DEFAULT',
titleDistance: '-150px',
navigationLogoWidth: '40px',
navigationMarginLeft: '60px',
systemType: '011'
},
nty: {
title: '南京铁道职业技术学院城市轨道交通实训平台',
loginPath:'/login?project=nty',
@ -117,6 +127,15 @@ export const loginInfo = {
navigationMarginLeft: '60px',
systemType: '011'
},
designjdy: {
title: '江苏电子信息职业学院城市轨道交通设计平台',
loginPath: '/design/login?project=jdy',
loginParam: 'DEFAULT',
titleDistance: '-150px',
navigationLogoWidth: '40px',
navigationMarginLeft: '60px',
systemType: '011'
},
gzb: {
title: '贵州装备制造职业学院城市轨道交通实训平台',
loginPath:'/login?project=gzb',
@ -361,7 +380,9 @@ export const ProjectIcon = {
nty: FaviconNty,
designnty: FaviconNty,
bjd: FaviconBjd,
designbjd: FaviconBjd
designbjd: FaviconBjd,
jdy: FaviconJdy,
designjdy: FaviconJdy
};
export const ProjectCode = {
@ -378,14 +399,16 @@ export const ProjectCode = {
nty: 'NTY',
designnty: 'NTY',
bjd: 'BJD',
designbjd: 'BJD'
designbjd: 'BJD',
jdy: 'JDY',
designjdy: 'JDY'
};
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 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']; // 登录页样式
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 NoQrcodeList = ['heb', 'designheb'];
export const NoSimulationQrCodeList = ['heb', 'bjd'];
export const goOtherPlatformMenu = { // 导航栏快速切换平台
@ -414,7 +437,9 @@ export const goOtherPlatformMenu = { // 导航栏快速切换平台
nty: '/design/login?project=nty',
designnty: '/login?project=nty',
bjd: '/design/login?project=bjd',
designbjd: '/login?project=bjd'
designbjd: '/login?project=bjd',
jdy: '/design/login?project=jdy',
designjdy: '/login?project=jdy'
};
export const ProjectList = [
{value:'xty', label:'西铁院'},
@ -424,5 +449,6 @@ export const ProjectList = [
{value: 'drts', label: '调度大赛'},
{value: 'nty', label: '南铁院'},
{value: 'bjd', label: '北交大'},
{value: 'urtss', label: '陪标项目'}
{value: 'urtss', label: '陪标项目'},
{value: 'jdy', label: '江苏电子'}
];

View File

@ -294,6 +294,14 @@ export const OperationEvent = {
menuButton: {
operation: '1031',
domId: '_Tips-Switch-Lock-Menu{BOTTOM}'
},
choose: {
operation: '1032',
domId: '_Tips-Switch-Lock-Choose'
},
confirm: {
operation: '1033',
domId: '_Tips-Switch-Lock-confirm'
}
},
// 道岔解锁
@ -356,6 +364,14 @@ export const OperationEvent = {
init: {
operation: '1053',
domId: '_Tips-Switch-Block-Init'
},
choose: {
operation: '1054',
domId: '_Tips-Switch-Block-Choose'
},
confirm1: {
operation: '1055',
domId: '_Tips-Switch-Block-Confirm1'
}
},
// 道岔解封
@ -806,6 +822,10 @@ export const OperationEvent = {
menuButton: {
operation: '3032',
domId: '_Tips-Signal-CancelTrainRoute-Menu{BOTTOM}'
},
choose: {
operation: '3033',
domId: '_Tips-Signal-CancelTrainRoute-Choose'
}
},
// 信号重开
@ -863,6 +883,14 @@ export const OperationEvent = {
menuButton:{
operation: '3062',
domId: '_Tips-Signal-Lock-Menu{BOTTOM}'
},
choose: {
operation: '3063',
domId: '_Tips-Signal-Lock-Choose'
},
confirm1: {
operation: '3064',
domId: '_Tips-Signal-Lock-Confirm1'
}
},
// 解锁
@ -1099,6 +1127,10 @@ export const OperationEvent = {
menuButton: {
operation: '3182',
domId: '_Tips-Signal-cancelGuide-Menu{BOTTOM}'
},
confirm1: {
operation: '3183',
domId: '_Tips-Signal-cancelGuide-Confirm1'
}
},
// 联锁进路
@ -1201,6 +1233,18 @@ export const OperationEvent = {
menuButton: {
operation: '4031',
domId: '_Tips-Section-Lock-Menu{BOTTOM}'
},
choose: {
operation: '4032',
domId: '_Tips-Section-Lock-Choose'
},
confirm: {
operation: '4033',
domId: '_Tips-Section-Lock-Confirm'
},
confirm1: {
operation: '4034',
domId: '_Tips-Section-Lock-Confirm1'
}
},
// 解锁
@ -1542,6 +1586,10 @@ export const OperationEvent = {
menuButton: {
operation: '5025',
domId: '_Tips-Stand-SetJumpStop-Menu{BOTTOM}'
},
confirm: {
operation: '5036',
domId: '_Tip-Stand-SetJumpStop-Confirm'
}
},
// 取消跳停
@ -1569,6 +1617,10 @@ export const OperationEvent = {
menuButton: {
operation: '5035',
domId: '_Tips-Stand-CancelJumpStop-Menu{BOTTOM}'
},
confirm: {
operation: '5036',
domId: '_Tip-Stand-CancelJumpStop-Confirm'
}
},
// 设置扣车

View File

@ -129,6 +129,7 @@ import axios from 'axios';
}
window.updateDriverTrust = this.updateDriverTrust;
window.updateDriveValue = this.updateDriveValue;
// this.teststomp = new StompClient();
@ -274,6 +275,12 @@ import axios from 'axios';
}
}
},
updateDriveValue(newvalue){
if(newvalue != this.value){
this.value = newvalue;
}
},
updatetrainlist(){
getSimulationTrainlistNew(this.group).then(netdata => {
this.options = [];

View File

@ -1,6 +1,6 @@
<template>
<div class="jalmap3ddiv">
<div id="drivediv" class="jalmap3ddiv" >
<div class="trainstatus">
{{$t('jlmap3d.trainGroupNumber')}}{{ trainnum }}</br>
@ -71,6 +71,7 @@ export default {
},
data() {
return {
driveIndex:1500,
trainlist: null,
stationlist: null,
msgdata: null,
@ -92,6 +93,7 @@ export default {
dcontrolshow: false,
msgshow:false,
controlmsg:"不能选择其它列车",
};
},
watch: {
@ -181,11 +183,14 @@ export default {
// this.$refs.mmiui.init();
},
methods: {
show: function (skinCode,group) {
show: function (skinCode,group,zindex) {
// console.log("show");
// console.log(skinCode);
// console.log(this.jlmap3d);
if(zindex){
this.driveIndex = zindex;
document.getElementById("drivediv").style.zIndex = zindex;
}
if (this.jlmap3d == null) {
this.init(skinCode,group);
} else {
@ -287,9 +292,14 @@ export default {
updatestatus(newdata){
if(newdata.groupNumber){
this.trainnum = newdata.groupNumber;
updateDriveValue(this.trainnum);
}
updatedoorlight(newdata);
this.$refs.mmiui.updatetrainstatus(newdata);
if(this.$refs.mmiui){
this.$refs.mmiui.updatetrainstatus(newdata);
}
updatabuttonlight(newdata);
},
warningmsg(nowmsg){
@ -354,7 +364,7 @@ export default {
}
.trainstatus{
left:0;
left:48%;
top:0;
width:fit-content;
width:-webkit-fit-content;

View File

@ -1071,7 +1071,7 @@ export default {
width: 503px;
transform: translateX(-503px);
transition: all 0.4s;
z-index: 9;
z-index: 35;
&.active{
transform: translateX(0px);
}

View File

@ -393,6 +393,7 @@ export default {
this.$store.dispatch('training/setPrdType', '04');
this.$store.dispatch('training/setRoles', 'DRIVER');
this.jl3dmaintainershow = false;
this.hidepanel();
break;
case 'MAINTAINER':
this.$store.dispatch('training/setPrdType', '');
@ -484,7 +485,7 @@ export default {
if (this.$store.state.training.prdType == '04') {
this.panelShow = false;
this.drivingShow = true;
this.$refs.Jl3dDrive.show(this.mapId, this.group);
this.$refs.Jl3dDrive.show(this.mapId, this.group,34);
} else {
const routeData = this.$router.resolve({
path:'/jlmap3d/sandbox',

View File

@ -244,7 +244,7 @@ export default {
</script>
<style>
.schema {
z-index: 34;
z-index: 8;
display: inline;
position: absolute;
right: 5px;

View File

@ -88,13 +88,13 @@ export default {
if (id) {
getData(this.dicId, id).then(response => {
this.formModel = response.data;
this.$refs.dataform.resetForm();
this.$refs.dataform && this.$refs.dataform.resetForm();
this.isAdd = false;
this.title = this.$t('system.editDetail');
});
} else {
this.isAdd = true;
this.$refs.dataform.resetForm();
this.$refs.dataform && this.$refs.dataform.resetForm();
this.title = this.$t('system.createDetail');
}
this.dialogVisible = true;