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';
|
|
|
|
import OffLine from './menus/offLine';
|
|
|
|
import AddPlanningTrain from './menus/addPlanningTrain';
|
|
|
|
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';
|
2021-01-28 13:38:10 +08:00
|
|
|
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>
|