rt-sim-training-client/src/views/planMonitor/newEditTool/index.vue

255 lines
8.9 KiB
Vue
Raw Normal View History

2020-08-14 18:30:04 +08:00
<template>
<div class="plan-tool" style="width: 100%; height: 100%;">
<menu-bar
ref="menuBar"
:plan-convert="PlanConvert"
:load-run-plan-id="loadRunPlanId"
@doClose="doClose"
2021-03-05 16:44:32 +08:00
@refresh="refresh"
2020-08-14 18:30:04 +08:00
@dispatchDialog="dispatchDialog"
@loadingRunPlan="loadingRunPlan"
2021-03-05 16:44:32 +08:00
@checkIsLoadRunPlan="checkIsLoadRunPlan"
2020-08-14 18:30:04 +08:00
@modifyRunPlanName="modifyRunPlanName"
/>
<schedule
ref="schedule"
2021-03-05 16:44:32 +08:00
v-loading="runplanLoading"
2020-08-14 18:30:04 +08:00
:plan-convert="PlanConvert"
:load-run-plan-id="loadRunPlanId"
:load-run-plan-name="loadRunPlanName"
/>
2020-12-22 17:27:04 +08:00
<status-bar ref="statusBar" :load-run-plan-id="loadRunPlanId" @dispatchDialog="dispatchDialog" @showTrain="showTrain" @refresh="refresh" />
2020-08-14 18:30:04 +08:00
<parameter ref="parameter" />
<off-line ref="offLine" @handleConfirm="handleConfirm" @dispatchDialog="dispatchDialog" />
<add-planning-train ref="addPlanningTrain" :load-run-plan-id="loadRunPlanId" @dispatchDialog="dispatchDialog" />
<edit-planning-train
ref="editPlanningTrain"
@dispatchDialog="dispatchDialog"
@dispatchOperate="dispatchOperate"
@refresh="refresh"
/>
2021-03-05 16:44:32 +08:00
<duplicate-train ref="duplicateTrain" @dispatchDialog="dispatchDialog" @dispatchOperate="dispatchOperate" @refresh="refresh" />
2020-12-22 17:27:04 +08:00
<move-planing-train ref="movePlaningTrain" :load-run-plan-id="loadRunPlanId" @dispatchDialog="dispatchDialog" @dispatchOperate="dispatchOperate" @refresh="refresh" />
2020-08-14 18:30:04 +08:00
<modifying-routing ref="modifyingRouting" @dispatchDialog="dispatchDialog" />
<modifying-begin-time ref="modifyingBeginTime" />
<systerm-out ref="systermOut" />
2021-03-05 16:44:32 +08:00
<add-task ref="addTask" @dispatchOperate="dispatchOperate" @refresh="refresh" />
<delete-task ref="deleteTask" @dispatchOperate="dispatchOperate" @refresh="refresh" />
2020-08-14 18:30:04 +08:00
<modifying-task ref="modifyingTask" :load-run-plan-id="loadRunPlanId" @dispatchOperate="dispatchOperate" @refresh="refresh" />
<edit-station-between-time ref="editStationBetweenTime" />
<modifying-station-interval-time ref="modifyingStationIntervalTime" />
2021-03-05 16:44:32 +08:00
<modifying-station-stop-time ref="modifyingStationStopTime" />
2020-08-14 18:30:04 +08:00
<populating-generic-data ref="populatingGenericData" :load-run-plan-id="loadRunPlanId" />
<edit-plan-name ref="editPlan" @renewal="refreshRunPlanName" />
2020-12-11 20:17:18 +08:00
<gernarate-plan ref="gernaratePlanTrain" />
2020-08-14 18:30:04 +08:00
</div>
</template>
<script>
import MenuBar from './menuBar';
import StatusBar from './statusBar';
import Schedule from './schedule';
import Parameter from './menus/parameter/index';
2021-03-09 15:41:05 +08:00
import OffLine from '../components/menus/offLine';
import AddPlanningTrain from '../components/menus/addPlanningTrain';
2020-08-14 18:30:04 +08:00
import EditPlanningTrain from './menus/editPlanningTrain';
import EditPlanName from './menus/editPlanName';
import DuplicateTrain from './menus/duplicateTrain';
import SystermOut from './menus/systermOut';
import AddTask from './menus/addTask';
2021-03-09 14:55:03 +08:00
import DeleteTask from '../components/menus/deleteTask';
2020-08-14 18:30:04 +08:00
import ModifyingTask from './menus/modifyingTask';
import ModifyingRouting from './menus/modifyingRouting';
import ModifyingBeginTime from './menus/modifyingBeginTime';
import EditStationBetweenTime from './menus/editStationBetweenTime';
2021-03-09 14:45:50 +08:00
import GernaratePlan from '../components/menus/gernaratePlanTrain';
2021-03-05 16:44:32 +08:00
import MovePlaningTrain from './menus/movePlaningTrain';
2021-03-09 14:45:50 +08:00
import ModifyingStationIntervalTime from '../components/menus/modifyingStationIntervalTime';
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
2021-03-09 14:55:03 +08:00
import PopulatingGenericData from '../components/menus/populatingGenericData';
2020-08-14 18:30:04 +08:00
import { deletePlanService } from '@/api/runplan';
import { checkLoginLine } from '@/api/login';
import { loadMapDataById } from '@/utils/loaddata';
2020-08-14 18:30:04 +08:00
export default {
name: 'Menus',
components: {
MenuBar,
StatusBar,
Schedule,
PopulatingGenericData,
Parameter,
OffLine,
AddPlanningTrain,
EditPlanningTrain,
DuplicateTrain,
SystermOut,
AddTask,
DeleteTask,
ModifyingTask,
ModifyingRouting,
ModifyingBeginTime,
EditStationBetweenTime,
2021-03-05 16:44:32 +08:00
// AddSmoothRunTime,
// EditSmoothRunTime,
2020-08-14 18:30:04 +08:00
ModifyingStationIntervalTime,
2021-03-05 16:44:32 +08:00
ModifyingStationStopTime,
2020-12-11 20:17:18 +08:00
EditPlanName,
GernaratePlan,
2020-12-22 17:27:04 +08:00
MovePlaningTrain
2020-08-14 18:30:04 +08:00
},
data() {
return {
PlanConvert: {},
timeDemon: null,
runPlanList: [],
loadRunPlanId: '',
2021-03-05 16:44:32 +08:00
loadRunPlanName: '',
runplanLoading:false
2020-08-14 18:30:04 +08:00
};
},
computed: {
lineCode() {
2021-03-05 16:44:32 +08:00
return this.$route.query.lineCode || '02';
}
},
watch: {
'$store.state.map.mapDataLoadedCount': function (val) {
this.loadRunPlanId = this.$route.query.planId;
this.runplanLoading = false;
2020-08-14 18:30:04 +08:00
}
},
created() {
this.PlanConvert = this.$theme.loadPlanConvert(this.lineCode);
},
2020-12-11 20:17:18 +08:00
async mounted() {
2020-08-14 18:30:04 +08:00
this.timeDemon = setInterval(() => {
checkLoginLine();
}, 5000 * 60);
2021-03-05 16:44:32 +08:00
this.loadRunPlanName = this.$route.query.planName;
2020-08-14 18:30:04 +08:00
if (this.$route.query.mapId) {
this.refreshRunPlanList(true);
2020-12-11 20:17:18 +08:00
await this.loadMap();
2020-08-14 18:30:04 +08:00
}
},
beforeDestroy() {
if (this.timeDemon) {
clearTimeout(this.timeDemon);
}
},
methods: {
dispatchDialog(dialogObj) {
this.$nextTick(() => {
if (this.$refs[dialogObj.name]) {
this.$refs[dialogObj.name].doShow(dialogObj.params);
}
});
},
dispatchOperate(operateObj) {
this.$nextTick(() => {
if (this.$refs[operateObj.dialogName]) {
this.$refs[operateObj.dialogName][operateObj.operate](operateObj.params);
}
});
},
2021-03-05 16:44:32 +08:00
async loadMap() {
this.runplanLoading = true;
// 加载地图数据
loadMapDataById(this.$route.query.mapId, 'parse');
},
2020-08-14 18:30:04 +08:00
handleConfirm(params) {
if (params.operate == 'AddPlanningTrain') {
// 添加计划
this.$refs.addPlanningTrain.handleConfirm();
} else if (params.operate == 'DeletePlanningTrain') {
// 删除计划
const model = {
2021-03-05 16:44:32 +08:00
planId: this.$route.query.planId,
2020-08-14 18:30:04 +08:00
serviceNumber: params.serviceNumber
};
deletePlanService(model).then(resp => {
this.$message.success(this.$t('tip.deletePlanSuccessfully'));
2021-03-05 16:44:32 +08:00
this.$store.dispatch('runPlan/setSelected', {});
2020-08-14 18:30:04 +08:00
this.$store.dispatch('runPlan/refresh');
2021-03-05 16:44:32 +08:00
// this.$refs.openRunPlan.loadRunPlanData(Object.assign({refresh: true}, this.$route.query));
2020-08-14 18:30:04 +08:00
}).catch(() => {
this.$messageBox(this.$t('tip.deletePlanFailed'));
});
}
},
showTrain() {
if (this.$refs.schedule) {
this.$refs.schedule.displayTrain();
}
},
refresh() {
this.$store.dispatch('runPlan/refresh');
},
2021-03-05 16:44:32 +08:00
refreshRunPlanList(firstLoad) {
2020-08-14 18:30:04 +08:00
},
doClose() {
2021-03-05 16:44:32 +08:00
this.$emit('doClose');
2020-08-14 18:30:04 +08:00
},
loadingRunPlan(param) {
this.loadRunPlanId = param.planId;
this.loadRunPlanName = param.planName;
},
2021-03-05 16:44:32 +08:00
checkIsLoadRunPlan(planId) {
this.refreshRunPlanList(planId === this.loadRunPlanId);
},
2020-08-14 18:30:04 +08:00
modifyRunPlanName() {
if (this.loadRunPlanId && this.loadRunPlanName) {
this.$refs.editPlan.doShow({id: this.loadRunPlanId, name: this.loadRunPlanName});
} else {
this.$message.info(this.$t('planMonitor.openRunPlan.pleaseSelectRunplan'));
}
},
refreshRunPlanName(name) {
this.$refs.schedule.refreshRunPlanName(name);
2021-03-05 16:44:32 +08:00
this.$router.replace({ path: this.$route.path, query: { ...this.$route.query, planName: name }});
2020-08-14 18:30:04 +08:00
}
}
};
</script>
<style>
.plan-tool {
position: absolute;
}
.plan-tool .pop-menu {
background: #F0F0F0;
}
.plan-tool .pop-menu span {
color: #000;
}
.plan-tool .system-close {
cursor: pointer;
height: 25px;
width: 25px;
background: -webkit-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
background: -o-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
background: -moz-linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
border: 1px solid white;
border-radius: 4px;
}
.plan-tool .system-close::before {
position: absolute;
top: 0px;
left: 0px;
font-size: x-large;
}
.planEdit__tool {
overflow: hidden !important;
}
</style>