大铁项目 调度台行车计划修改股道 删除计划

This commit is contained in:
joylink_cuiweidong 2022-06-29 13:53:35 +08:00
parent 47da7cfc43
commit ec5c6f5ff4
8 changed files with 163 additions and 82 deletions

View File

@ -513,3 +513,11 @@ export function updateTemplateRunPlan (data) {
data
});
}
// 大铁 获取 调度台 运行计划
export function getRunplanInRailway(group) {
return request({
url: `/api/simulation/${group}/ctc/railway/runPlan/list`,
method: 'get'
});
}

View File

@ -637,6 +637,11 @@ export const menuOperate = {
releaseAllDispatcherLogerRp:{
operation: OperationEvent.CTCCommand.releaseAllDispatcherLogerRp.menu.operation,
cmdType: CMD.CTC.CTC_ZONE_RELEASE_ALL_RUN_PLAN
},
// 调度台行车计划修改股道
modifyDispatcherLogerRpSection:{
operation: OperationEvent.CTCCommand.modifyDispatcherLogerRpSection.menu.operation,
cmdType: CMD.CTC.CTC_ZONE_SAVE_TRACK_SECTION
}
}
@ -676,11 +681,11 @@ export function commitOperate(operate, paramList, over, fillStep = {}) {
Object.assign(step, fillStep);
return new Promise(function(resolve, reject) {
store.dispatch('training/nextNew', step).then(({ valid }) => {
store.dispatch('training/nextNew', step).then(({ valid, response }) => {
if (valid) {
store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
resolve({ valid: valid, operate: {...step} });
resolve({ valid: valid, operate: {...step}, response:response});
}).catch(error=>{
reject(error);
});

View File

@ -42,13 +42,13 @@
</el-select>
</el-form-item>
<el-form-item label="到达车次:" prop="arriveTripNumber">
<el-input v-model="model.arriveTripNumber" style="width:160px" :disabled="!model.startRunPlan" />
<el-input v-model="model.arriveTripNumber" style="width:160px" :disabled="model.endRunPlan" />
</el-form-item>
<el-form-item label="出发车次:" prop="departTripNumber" style="margin-left: 66px;">
<el-input v-model="model.departTripNumber" style="width:160px" :disabled="!model.endRunPlan" />
<el-input v-model="model.departTripNumber" style="width:160px" :disabled="model.startRunPlan" />
</el-form-item>
<el-form-item label="接车口:" prop="arriveDirectionCode">
<el-select v-model="model.arriveDirectionCode" placeholder="" style="width:180px" :disabled="!model.startRunPlan">
<el-select v-model="model.arriveDirectionCode" placeholder="" style="width:180px" :disabled="model.endRunPlan">
<el-option
v-for="item in mapStationDirectionList"
:key="item.code"
@ -58,7 +58,7 @@
</el-select>
</el-form-item>
<el-form-item label="发车口:" prop="departDirectionCode" style="margin-left:45px;">
<el-select v-model="model.departDirectionCode" placeholder="" style="width:180px" :disabled="!model.endRunPlan">
<el-select v-model="model.departDirectionCode" placeholder="" style="width:180px" :disabled="model.startRunPlan">
<el-option
v-for="item in mapStationDirectionList"
:key="item.code"
@ -68,7 +68,7 @@
</el-select>
</el-form-item>
<el-form-item label="接车股道:" prop="arriveSectionCode">
<el-select v-model="model.arriveSectionCode" placeholder="" style="width:160px" :disabled="!model.startRunPlan">
<el-select v-model="model.arriveSectionCode" placeholder="" style="width:160px" :disabled="model.endRunPlan">
<el-option
v-for="item in filterSectionList"
:key="item.code"
@ -78,7 +78,7 @@
</el-select>
</el-form-item>
<el-form-item label="发车股道:" prop="departSectionCode" style="margin-left: 67px;">
<el-select v-model="model.departSectionCode" placeholder="" style="width:160px" :disabled="!model.endRunPlan">
<el-select v-model="model.departSectionCode" placeholder="" style="width:160px" :disabled="model.startRunPlan">
<el-option
v-for="item in filterSectionList"
:key="item.code"
@ -88,13 +88,13 @@
</el-select>
</el-form-item>
<el-form-item label="到达时间:" prop="arrivePlanTime">
<el-date-picker v-model="model.arrivePlanTime" type="datetime" :disabled="!model.startRunPlan" value-format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm" style="width:160px" />
<el-date-picker v-model="model.arrivePlanTime" type="datetime" :disabled="model.endRunPlan" value-format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm" style="width:160px" />
</el-form-item>
<el-form-item label="" prop="startRunPlan" class="noMargin" style="margin-left:10px;">
<el-checkbox v-model="model.startRunPlan">始发</el-checkbox>
</el-form-item>
<el-form-item label="出发时间:" prop="departPlanTime" style="margin-left:10px;">
<el-date-picker v-model="model.departPlanTime" type="datetime" :disabled="!model.endRunPlan" value-format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm" style="width:160px" />
<el-date-picker v-model="model.departPlanTime" type="datetime" :disabled="model.startRunPlan" value-format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm" style="width:160px" />
</el-form-item>
<el-form-item label="" prop="endRunPlan" class="noMargin" style="margin-left:10px;">
<el-checkbox v-model="model.endRunPlan">终到</el-checkbox>
@ -242,9 +242,9 @@ export default {
}
},
methods: {
doShow({filterSectionMap, mapStationDirectionMap}) {
doShow({filterSectionList, mapStationDirectionMap}) {
this.mapStationDirectionList = Object.values(mapStationDirectionMap);
this.filterSectionList = Object.values(filterSectionMap);
this.filterSectionList = filterSectionList;
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
@ -282,8 +282,9 @@ export default {
this.$refs.form.validate((valid) => {
if (valid) {
this.loading = true;
commitOperate(menuOperate.CTC.addDispatcherLogerRp, {planParam:this.model}, 3).then(({valid})=>{
commitOperate(menuOperate.CTC.addDispatcherLogerRp, {planParam:this.model}, 3).then(({valid, response})=>{
if (valid) {
this.$emit('addDisLoger', response.data);
this.doClose();
}
}).catch(() => {

View File

@ -79,10 +79,12 @@ export default {
},
commit() {
this.loading = true;
commitOperate(menuOperate.CTC.deleteDispatcherLogerRp, this.model, 2).then(({valid})=>{
const param = this.model;
commitOperate(menuOperate.CTC.deleteDispatcherLogerRp, param, 2).then(({valid})=>{
this.loading = false;
this.$emit('clearRpRow');
if (valid) {
this.$emit('deleteDisLoger', param);
this.doClose();
}
}).catch(() => {

View File

@ -33,7 +33,7 @@
<div>{{ scope.row.tripNumber }} {{ scope.row.status==-1?'(删)':'' }}</div>
</template>
</el-table-column>
<el-table-column width="155" prop="trainType" label="列车类型">
<!-- <el-table-column width="155" prop="trainType" label="列车类型">
<template slot-scope="scope">
<div v-if="scope.row.trainType" class="accessName">
{{ runTypeMap[scope.row.trainType] }}
@ -43,12 +43,16 @@
<el-table-column width="155" prop="runType" label="运行类型">
<template slot-scope="scope">
<div v-if="scope.row.runType" class="accessName">
{{ filterSectionMap[scope.row.runType].name }}
{{ runTypeMap[scope.row.runType].name }}
</div>
</template>
</el-table-column> -->
<el-table-column width="155" prop="arriveTripNumber" label="到达车次">
<template slot-scope="scope">{{ scope.row.arriveTripNumber }}</template>
</el-table-column>
<el-table-column width="155" prop="departTripNumber" label="发车车次">
<template slot-scope="scope">{{ scope.row.departTripNumber }}</template>
</el-table-column>
<el-table-column width="155" prop="arriveTripNumber" label="到达车次" />
<el-table-column width="155" prop="departTripNumber" label="发车车次" />
<!-- runPlanCode:"", stationCode:"", tripNumber:"", groupNumber:"",
trackSectionCode:"", arriveSectionCode:"", departSectionCode:"",
arriveTime:"", departTime:"", arrivePlanTime:"", departPlanTime:"",
@ -63,7 +67,7 @@
<el-table-column prop="arriveDirectionCode" label="接车口">
<template slot-scope="scope">
<div v-if="scope.row.arriveDirectionCode" class="accessName" :title="scope.row.arriveDirectionCode">
{{ mapStationDirectionMap[scope.row.arriveDirectionCode].name }}
{{ mapStationDirectionData[scope.row.arriveDirectionCode].name }}
</div>
</template>
</el-table-column>
@ -71,13 +75,13 @@
<el-table-column prop="departDirectionCode" label="发车口">
<template slot-scope="scope">
<div v-if="scope.row.departDirectionCode" class="accessName" :title="scope.row.departDirectionCode">
{{ mapStationDirectionMap[scope.row.departDirectionCode].name }}
{{ mapStationDirectionData[scope.row.departDirectionCode].name }}
</div>
</template>
</el-table-column>
<el-table-column width="155" prop="arriveSectionCode" label="接车股道">
<template slot-scope="scope">
<!-- <el-select
<el-select
v-model="tableData[scope.$index].arriveSectionCode"
placeholder=""
size="mini"
@ -90,25 +94,25 @@
:label="item.name"
:value="item.code"
/>
</el-select> -->
</el-select>
<!--
electrical
电力
passenger
办理客运 -->
<div v-if="scope.row.arriveSectionCode" class="accessName">
<!-- <div v-if="scope.row.arriveSectionCode" class="accessName">
{{ filterSectionMap[scope.row.arriveSectionCode].name }}
</div>
</template>
</el-table-column>
</template> -->
</template></el-table-column>
<el-table-column width="155" prop="departSectionCode" label="发车股道">
<template slot-scope="scope">
<!-- <el-select
<el-select
v-model="tableData[scope.$index].departSectionCode"
placeholder=""
size="mini"
popper-class="stationSelect"
@change="changeArriveRunPlan($event,scope.row,scope.$index)"
@change="changeDepartRunPlan($event,scope.row,scope.$index)"
>
<el-option
v-for="item in filterSectionList"
@ -116,10 +120,10 @@ passenger
:label="item.name"
:value="item.code"
/>
</el-select> -->
<div v-if="scope.row.departSectionCode" class="accessName">
</el-select>
<!-- <div v-if="scope.row.departSectionCode" class="accessName">
{{ filterSectionMap[scope.row.departSectionCode].name }}
</div>
</div> -->
</template>
</el-table-column>
<el-table-column width="155" prop="arrivePlanTime" label="到达时间">
@ -138,15 +142,16 @@ passenger
</el-table-column>
</el-table>
</div>
<add-dispatcher-loger-runplan ref="addDispatcherLogerRunplan" @noticeInfo="noticeInfo" />
<delete-dispatcher-loger ref="deleteDispatcherLoger" @clearRpRow="clearRpRow" @noticeInfo="noticeInfo" />
<add-dispatcher-loger-runplan ref="addDispatcherLogerRunplan" @noticeInfo="noticeInfo" @addDisLoger="addDisLoger" />
<delete-dispatcher-loger ref="deleteDispatcherLoger" @clearRpRow="clearRpRow" @noticeInfo="noticeInfo" @deleteDisLoger="deleteDisLoger" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
</div>
</template>
<script>
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { copyAssign } from '@/utils/index';
// import { copyAssign } from '@/utils/index';
import {getRunplanInRailway} from '@/api/runplan';
import AddDispatcherLogerRunplan from './dialog/addDispatcherLogerRunplan';
import DeleteDispatcherLoger from './dialog/deleteDispatcherLoger';
import { mapGetters } from 'vuex';
@ -161,9 +166,10 @@ export default {
return {
isShow:false,
height: this.$store.state.app.height - 37,
// filterSectionList:[],
filterSectionMap:{},
filterSectionList:[],
// filterSectionMap:{},
tableData:[],
group:'',
currentRow:null,
trainTypeMap:{'FAST_PASSENGER_TRAIN':'跨局快速旅客列车'},
runTypeMap:{'FAST_PASSENGER_TRAIN':'快速旅客列车'}
@ -178,40 +184,86 @@ export default {
}
},
watch:{
'$store.state.socket.railwaySimulationRpChange': function (val) {
// '$store.state.socket.railwaySimulationRpChange': function (val) {
// this.loadData();
// }
'$store.state.map.mapDataLoadedCount': function (val) { //
this.loadData();
}
},
mounted() {
this.group = this.$route.query.group;
},
methods:{
loadData() {
getRunplanInRailway(this.group).then(response => {
this.tableData = response.data || [];
}).catch(()=>{
this.tableData = [];
});
this.tableData = [];
const railwaySimulationRpMsg = copyAssign({}, this.$store.state.socket.railwaySimulationRpMsg);
this.tableData = Object.values(railwaySimulationRpMsg);
//
// const railwaySimulationRpMsg = copyAssign({}, this.$store.state.socket.railwaySimulationRpMsg);
// this.tableData = Object.values(railwaySimulationRpMsg);
},
doShow() {
this.loadFilterSectionMap();
// this.filterSectionList = [];
// this.filterSectionList = this.sectionList.filter(section=>{
// return section.standTrack && section.belongStation == this.$store.state.training.roleDeviceCode;
// });
this.tableData = [];
this.loadData();
// this.tableData = [];
// this.loadData();
this.isShow = true;
},
loadFilterSectionMap() {
this.filterSectionMap = {};
this.sectionList.forEach(section=>{
if (section.standTrack) {
this.filterSectionMap[section.code] = {code:section.code, name:section.name};
// this.filterSectionMap = {};
// this.sectionList.forEach(section=>{
// if (section.standTrack) {
// this.filterSectionMap[section.code] = {code:section.code, name:section.name};
// }
// });
this.filterSectionList = [];
this.filterSectionList = this.sectionList.filter(section=>{
return section.standTrack;
});
},
addDisLoger(model) {
this.tableData.push(model);
},
deleteDisLoger(model) {
this.tableData.map(data=>{
if (data.stationCode == model.stationCode && data.runPlanCode == model.runPlanCode) {
data.status = -1;
}
});
},
changeArriveRunPlan(event, row, index) {
this.modifyDispatcherLogerRpSection(row, row.arriveSectionCode, 'R');
},
changeDepartRunPlan(event, row, index) {
this.modifyDispatcherLogerRpSection(row, row.departSectionCode, 'D');
},
modifyDispatcherLogerRpSection(row, sectionCode, type) {
// stationCode
// runPlanCode
// sectionCode
// model R,D
const params = {stationCode:row.stationCode, runPlanCode:row.runPlanCode, sectionCode:sectionCode, model:type};
commitOperate(menuOperate.CTC.modifyDispatcherLogerRpSection, params, 3).then(({valid, response})=>{
if (valid) {
const reslut = response.data;
this.tableData.map(data=>{
if (data.stationCode == reslut.stationCode && data.runPlanCode == reslut.runPlanCode) {
data.arriveSectionCode = reslut.arriveSectionCode;
data.departSectionCode = reslut.departSectionCode;
}
});
}
}).catch(() => {
// this.$message.error('');
});
},
doClose() {
this.isShow = false;
this.rpMenuPopShow = false;
this.currentRow = null;
this.clearRpRow();
},
//
sendRunplan() {
@ -243,7 +295,7 @@ export default {
},
addRunplan() {
this.$refs.addDispatcherLogerRunplan.doShow({
filterSectionMap:this.filterSectionMap,
filterSectionList:this.filterSectionList,
mapStationDirectionMap:this.mapStationDirectionData
});
},

View File

@ -3813,7 +3813,16 @@ export const OperationEvent = {
operation: '1131',
domId: '_Tips-CTC-stationSignRunplan-Menu{TOP}'
}
},
// 调度台行车计划修改股道
modifyDispatcherLogerRpSection:{
menu: {
operation: '1132',
domId: '_Tips-CTC-modifyDispatcherLogerRpSection-Menu{TOP}'
}
}
// CTC_ZONE_SAVE_TRIP_NUMBER
// 调度台行车计划修改车次
}
};

View File

@ -233,6 +233,10 @@ function handle(state, data) {
});
state.railCtcRunplanChange++;
break;
// 大铁项目 ctc 调度下发消息
case 'SIMULATION_RAILWAY_RUN_PLAN_SEND':
// TODO
break;
// 大铁项目 ctc 车务管理端 初始化消息
case 'SIMULATION_CTC_MANAGER_RUN_PLAN_EDIT_INIT':
state.railCtcStationManageRpMsg = {};
@ -258,30 +262,30 @@ function handle(state, data) {
});
state.railCtcStationManageRpChange++;
break;
// 大铁项目 调度台 运行图信息 初始化消息
case 'SIMULATION_RAILWAY_RUN_PLAN_INIT':
state.railwaySimulationRpMsg = {};
msg.forEach(element => {
const code = element.stationCode + '' + element.runPlanCode;
state.railwaySimulationRpMsg[code] = element;
});
break;
// 大铁项目 调度台 运行图信息 修改/增加消息
case 'SIMULATION_RAILWAY_RUN_PLAN_CHANGE':
msg.forEach(element => {
const code = element.stationCode + '' + element.runPlanCode;
state.railwaySimulationRpMsg[code] = copyAssign(state.railwaySimulationRpMsg[code] || {}, element);
});
state.railwaySimulationRpChange++;
break;
// 大铁项目 调度台 运行图信息 移除消息
case 'SIMULATION_RAILWAY_RUN_PLAN_REMOVE':
msg.forEach(element => {
const code = element.stationCode + '' + element.runPlanCode;
delete state.railwaySimulationRpMsg[code];
});
state.railwaySimulationRpChange++;
break;
// // 大铁项目 调度台 运行图信息 初始化消息
// case 'SIMULATION_RAILWAY_RUN_PLAN_INIT':
// state.railwaySimulationRpMsg = {};
// msg.forEach(element => {
// const code = element.stationCode + '' + element.runPlanCode;
// state.railwaySimulationRpMsg[code] = element;
// });
// break;
// // 大铁项目 调度台 运行图信息 修改/增加消息
// case 'SIMULATION_RAILWAY_RUN_PLAN_CHANGE':
// msg.forEach(element => {
// const code = element.stationCode + '' + element.runPlanCode;
// state.railwaySimulationRpMsg[code] = copyAssign(state.railwaySimulationRpMsg[code] || {}, element);
// });
// state.railwaySimulationRpChange++;
// break;
// // 大铁项目 调度台 运行图信息 移除消息
// case 'SIMULATION_RAILWAY_RUN_PLAN_REMOVE':
// msg.forEach(element => {
// const code = element.stationCode + '' + element.runPlanCode;
// delete state.railwaySimulationRpMsg[code];
// });
// state.railwaySimulationRpChange++;
// break;
}
}
@ -436,9 +440,9 @@ const socket = {
railCtcRunplanInitMsg:{}, // 大铁项目 ctc 运行图初始化信息
railCtcRunplanChange:0, // 大铁项目 ctc 运行图信息变化
railCtcStationManageRpMsg:{}, // 大铁项目 ctc 车务管理 端运行图信息
railCtcStationManageRpChange:0, // 大铁项目 ctc 车务管理 运行图信息变化
railwaySimulationRpMsg:{}, // 大铁项目 调度台 调度台
railwaySimulationRpChange:0 // 大铁项目 调度台 运行图信息变化
railCtcStationManageRpChange:0 // 大铁项目 ctc 车务管理 运行图信息变化
// railwaySimulationRpMsg:{}, // 大铁项目 调度台 调度台
// railwaySimulationRpChange:0 // 大铁项目 调度台 运行图信息变化
},
getters: {
},

View File

@ -85,14 +85,14 @@ export default {
// }
// },
mounted() {
const _that = this;
window.onbeforeunload = () => { _that.clearSubscribe(); };
// const _that = this;
// window.onbeforeunload = () => { _that.clearSubscribe(); };
this.groupModel = this.$route.query.group;
// this.subscribe();
},
beforeDestroy() {
this.clearSubscribe();
},
// beforeDestroy() {
// this.clearSubscribe();
// },
methods: {
doShow(refPath) {
if (!refPath) {