代码调整

This commit is contained in:
dong 2022-12-12 17:56:36 +08:00
parent f6cdf07b06
commit 611e3902e5

View File

@ -15,7 +15,7 @@ import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { judgeStationControl } from '@/jmapNew/theme/components/utils/menuJudge.js';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default {
name: 'StationMenu',
@ -45,6 +45,73 @@ export default {
return {
menu: [],
menuNormal: [
{
label: '本地控制许可',
children: [
{
label: '请求',
handler: this.setStationControl,
cmdType: this.work === 'localWork' ? CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL : CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL,
isDisabled: (station, work) => {
if (work === 'localWork') {
return station.controlMode !== 'Center';
} else {
return station.controlMode === 'Center';
}
}
},
{
label: '取消',
handler: this.setCenterControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL,
isDisabled: (station, work) => {
if (work === 'localWork') {
return station.controlMode === 'Center';
} else {
return station.controlMode !== 'Center';
}
},
isShow: (station, work) => {
return work === 'localWork';
}
},
{
label: '紧急本地控制',
handler: this.setEmergencyControl,
cmdType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL,
isDisabled: (station, work) => {
return station.controlMode === 'Emergency';
},
isShow: (station, work) => {
return work === 'localWork';
}
}
]
},
{
label: '进路模式',
children: [
{
label: '自动',
handler: this.atsAutoControlALL,
cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING,
isDisabled: (station, work) => {
return false;
}
},
{
label: '人工',
handler: this.humanControlALL,
cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING,
isDisabled: (station, work) => {
return false;
}
}
],
isShow: (station, work) => {
return work === 'dispatchWork';
}
}
],
menuForce: [
{
@ -94,12 +161,21 @@ export default {
};
},
initMenu() {
const selected = this.selected;
const work = this.work;
function setDisabledShow(item) {
if (item.children) {
item.children.forEach(ii => {
setDisabledShow(ii);
});
}
item.disabled = item.isDisabled ? item.isDisabled(selected, work) : false;
item.show = item.isShow ? item.isShow(selected, work) : true;
}
if (this.selected.centralized) {
this.menu = [];
this.menuNormal.forEach(menuItem => {
const status = judgeStationControl(this.selected.belongStationCode, this.selected.stationCode, this.work);
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) || !status : false;
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work, this.lineCode) : true;
setDisabledShow(menuItem);
this.menu.push(menuItem);
});
//
@ -149,6 +225,159 @@ export default {
}
});
},
//
humanControlALL() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Station.humanControlALL.menu.operation,
param: {
stationCode: this.selected.code
}
};
this.$store.dispatch('trainingNew/next', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {
code: OperationEvent.Command.commandXian.confirm.operation,
name: '所有进路自排关',
cmdType: CMD.Station.CMD_STATION_CLOSE_AUTO_SETTING,
param: step.param
}
});
} else {
this.$refs.noticeInfo.doShow();
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
//
atsAutoControlALL() {
const step = {
start: true,
code: `${this.selected.code}`,
operation: OperationEvent.Station.atsAutoControlALL.menu.operation,
param: {
stationCode: this.selected.code
}
};
this.$store.dispatch('trainingNew/next', step).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {
code: OperationEvent.Command.commandXian.confirm.operation,
name: '所有进路自排开',
cmdType: CMD.Station.CMD_STATION_OPEN_AUTO_SETTING,
param: step.param
}
});
} else {
this.$refs.noticeInfo.doShow();
}
}).catch(() => {
this.$refs.noticeInfo.doShow();
});
},
setPriorityStrategy() {
this.getStrategyByStation('侧线优先');
},
setLineStrategy() {
this.getStrategyByStation('直线折返');
},
setLateralStrategy() {
this.getStrategyByStation('侧线折返');
},
getStrategyByStation(type) {
const tbStrategy = this.tbStrategyList.find(strategy=>{
return strategy.stationCode == this.selected.code;
});
if (tbStrategy) {
const strategy = tbStrategy.optionList.find(each=>{
return each.label == type;
});
if (strategy) {
commitOperate(menuOperate.StationControl.setBackStrategy, {stationCode: this.selected.code, id:strategy.id}, 0).then(({valid, operate})=>{
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {
code: OperationEvent.Command.commandXian.confirm.operation,
name: type,
cmdType: CMD.Station.CMD_STATION_SET_TURN_BACK_STRATEGY,
param: {stationCodes:[this.selected.code]}
}
});
}).catch((error) => {
console.error(error);
this.$refs.noticeInfo.doShow();
});
}
}
},
setStationControl() {
//
commitOperate(menuOperate.StationControl.requestStationControl, {stationCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {
code: OperationEvent.Command.commandXian.confirm.operation,
name: '请求站控',
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL,
param: {stationCodes:[this.selected.code]}
}
});
}
});
},
setCenterControl() {
//
commitOperate(menuOperate.StationControl.requestCentralControl, {stationCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {
code: OperationEvent.Command.commandXian.confirm.operation,
name: '请求中控',
cmdType: CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL,
param: {stationCodes:[this.selected.code]}
}
});
}
});
},
setEmergencyControl() {
//
commitOperate(menuOperate.StationControl.emergencyStationControl, {stationCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: {
code: OperationEvent.Command.commandXian.confirm.operation,
name: '紧急站控',
cmdType: CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL,
param: {stationCodes:[this.selected.code]}
}
});
}
});
},
undeveloped() {
this.doClose();
this.$alert('实现中......', '提示', {
confirmButtonText: '确定',
callback: action => {
}
});
},
triggerFaultManagement() {
this.$store.dispatch('training/setTriggerFaultCount', this.selected);
}