This commit is contained in:
fan 2020-03-17 09:26:02 +08:00
commit 1598e77215
9 changed files with 88 additions and 36 deletions

View File

@ -71,6 +71,14 @@ export default class ELines extends Group {
}); });
} }
setZleve(lev) {
this.eachChild((child) => {
if (child.setStyle && child.isLine) {
child.attr('z', lev);
}
});
}
hide() { hide() {
this.eachChild((child) => { this.eachChild((child) => {
child.hide(); child.hide();

View File

@ -38,18 +38,19 @@ export default class Section extends Group {
const model = this.model; const model = this.model;
// 01:计轴区段02逻辑区段03道岔区段 04道岔计轴区段 // 01:计轴区段02逻辑区段03道岔区段 04道岔计轴区段
this.createSectionText(); // 创建区段文字 this.createSectionText(); // 创建区段文字
if ((model.type === '01' || model.type === '03') && ( // if ((model.type === '01' || model.type === '03') && (
model.logicSectionNum.length <= 0 || // model.logicSectionNum.length <= 0 ||
model.logicSectionNum.length == 1 && model.logicSectionNum[0] == 0) || // model.logicSectionNum.length == 1 && model.logicSectionNum[0] == 0) ||
model.type === '02') { // model.type === '02') {
this.createSection(); // 创建区段 // if (model.type === '01' || model.type === '03') {
this.creatRelease(); // 创建延时释放 this.createSection(); // 创建区段
this.createSeparator(); // 创建分隔符 this.creatRelease(); // 创建延时释放
this.createTurnBack(); // 创建成都三号线 折返箭头 this.createSeparator(); // 创建分隔符
if (model.type === '01' && model.type === '03') { this.createTurnBack(); // 创建成都三号线 折返箭头
this.createAxles(); // 创建计轴 if (model.type === '01' && model.type === '03') {
} this.createAxles(); // 创建计轴
} }
// }
} }
createMouseEvent() { createMouseEvent() {
@ -70,7 +71,7 @@ export default class Section extends Group {
// 创建区段 // 创建区段
this.section = new ELines({ this.section = new ELines({
zlevel: this.zlevel, zlevel: this.zlevel,
z: this.z, z: model.type == '02' ? this.z + 1 : this.z, // 逻辑区段层级降低一层
isSwitchSection: model.switchSection, isSwitchSection: model.switchSection,
isCurve: model.curve, isCurve: model.curve,
points: model.points, points: model.points,
@ -574,9 +575,18 @@ export default class Section extends Group {
}); });
} }
setModelTypeLevel() { // 给含有逻辑区段的 section 层级加一
if (this.model.type == '01' && this.model.logicSectionCodeList && this.model.logicSectionCodeList.length > 0) {
this.section.setZleve(this.z + 2);
}
}
/** 设置区段恢复默认状态*/ /** 设置区段恢复默认状态*/
recover() { recover() {
if (this.section) { if (this.section) {
if (this.model.type == '01') {
this.section.setZleve(this.z);
}
this.section.stopAnimation(true); this.section.stopAnimation(true);
this.sectionBlock && this.sectionBlock.hide(); // 因此特殊区段 this.sectionBlock && this.sectionBlock.hide(); // 因此特殊区段
this.section.setStyle({ this.section.setStyle({
@ -623,6 +633,7 @@ export default class Section extends Group {
stroke: this.style.Section.line.communicationOccupiedColor, stroke: this.style.Section.line.communicationOccupiedColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
}); });
this.setModelTypeLevel();
} }
} }
@ -633,6 +644,7 @@ export default class Section extends Group {
stroke: this.style.Section.line.unCommunicationOccupiedColor, stroke: this.style.Section.line.unCommunicationOccupiedColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
}); });
this.setModelTypeLevel();
} }
} }
@ -643,6 +655,7 @@ export default class Section extends Group {
stroke: this.style.Section.line.routeLockColor, stroke: this.style.Section.line.routeLockColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
}); });
this.setModelTypeLevel();
} }
} }
@ -656,12 +669,13 @@ export default class Section extends Group {
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
}); });
} }
if (this.style.Section.block.blockGlint) { if (this.style.Section.block.blockGlint && this.section) {
this.section && this.section.animateStyle(true, [ this.section.animateStyle(true, [
{ time: 1000, styles: { stroke: this.style.backgroundColor } }, { time: 1000, styles: { stroke: this.style.backgroundColor } },
{ time: 2000, styles: { stroke: this.style.Section.line.blockColor } } { time: 2000, styles: { stroke: this.style.Section.line.blockColor } }
]); ]);
} }
this.setModelTypeLevel();
} }
/** 故障锁定状态 05*/ /** 故障锁定状态 05*/
@ -702,6 +716,7 @@ export default class Section extends Group {
stroke: this.style.Section.line.protectiveLockColor, stroke: this.style.Section.line.protectiveLockColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
}); });
this.setModelTypeLevel();
} }
} }
@ -751,6 +766,7 @@ export default class Section extends Group {
{ time: 1000, styles: { stroke: this.style.backgroundColor } }, { time: 1000, styles: { stroke: this.style.backgroundColor } },
{ time: 2000, styles: { lineWidth: lineWidth } } { time: 2000, styles: { lineWidth: lineWidth } }
]); ]);
this.setModelTypeLevel();
} }
} }
@ -789,9 +805,6 @@ export default class Section extends Group {
// 实际上就是 状态重置 必须在设置其他状态之前 设置颜色之类的 // 实际上就是 状态重置 必须在设置其他状态之前 设置颜色之类的
if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) { if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) {
const switchModel = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode]; const switchModel = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode];
// if (switchModel.name == 'D1801' || switchModel.name == 'D1802' || switchModel.name == 'D1803' || switchModel.name == 'D1804') {
// console.log('switchModel', switchModel, switchModel.name, switchModel.normalPosition, '1 定位 0 反位');
// }
if (switchModel.normalPosition != 0) { // 定位情况 if (switchModel.normalPosition != 0) { // 定位情况
const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode]; const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode];
sectionC && sectionC.instance && sectionC.instance.section.setStyle({ stroke: this.style.Switch.sectionAction.spareColor }); sectionC && sectionC.instance && sectionC.instance.section.setStyle({ stroke: this.style.Switch.sectionAction.spareColor });

View File

@ -28,7 +28,7 @@ class ELowButton extends Group {
}); });
this.add(this.button); this.add(this.button);
// this.hide(); this.hide();
} }
// 隐藏 // 隐藏

View File

@ -521,6 +521,11 @@ class Signal extends Group {
} else if (!model.isRouteActive && isShowThePrdType(model.prdType, '03') && this.style.Signal.lowButton.display) { } else if (!model.isRouteActive && isShowThePrdType(model.prdType, '03') && this.style.Signal.lowButton.display) {
this.setLowButtonRecover(); this.setLowButtonRecover();
} }
/** 信号机进路按钮显示 */
if (model.isRouteSignal) {
this.setLowButtonShow();
}
/** 信号机封锁 */ /** 信号机封锁 */
model.blockade && this.block(); model.blockade && this.block();
/** 设置点灯类型*/ /** 设置点灯类型*/

View File

@ -83,6 +83,7 @@ export default {
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.$store.dispatch('config/updateMenuBar'); this.$store.dispatch('config/updateMenuBar');
this.$refs['menuSignal'].setRouteSignal();
}); });
} }
}; };

View File

@ -166,6 +166,22 @@ export default {
this.$refs.popMenu.close(); this.$refs.popMenu.close();
} }
}, },
setRouteSignal() {
if (this.$store.state.training.prdType == '01') {
let signalList = [];
this.routeList.forEach(route=>{
signalList.push(route.startSignalCode);
signalList.push(route.endSignalCode);
});
signalList = Array.from(new Set(signalList));
signalList.forEach(signal=>{
const signalDevice = this.$store.getters['map/getDeviceByCode'](signal);
const signalModel = Object.assign({_type: 'Signal'}, signalDevice);
signalModel.isRouteSignal = true;
this.$store.dispatch('map/updateMapDevices', signalModel);
});
}
},
operationHandler(buttonOperation, selectType) { operationHandler(buttonOperation, selectType) {
switch (buttonOperation) { switch (buttonOperation) {
case OperationEvent.Signal.arrangementRoute.button.operation: { case OperationEvent.Signal.arrangementRoute.button.operation: {

View File

@ -22,7 +22,7 @@
<el-input v-model="sectionName" size="small" disabled /> <el-input v-model="sectionName" size="small" disabled />
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-top: 10px;" v-if="isShow"> <el-row v-if="isShow" style="margin-top: 10px;">
<el-col :span="11"> <el-col :span="11">
<el-radio v-model="radio" label="1" :disabled="radio == 2" style="display: block; text-align: center;"> <el-radio v-model="radio" label="1" :disabled="radio == 2" style="display: block; text-align: center;">
激活</el-radio> 激活</el-radio>
@ -106,7 +106,7 @@ export default {
this.sectionName += section.name; this.sectionName += section.name;
} }
} }
this.sectionName += `-${selected.name}`; this.sectionName += `${selected.name}`;
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
if (station) { if (station) {

View File

@ -15,11 +15,11 @@
<div style="overflow: hidden;"> <div style="overflow: hidden;">
<div>操作设备</div> <div>操作设备</div>
<el-col :span="11"> <el-col :span="11">
<el-input :value="messageText1" placeholder="" size="mini" disabled /> <el-input :value="messageText1" placeholder="" size="mini" disabled />
</el-col> </el-col>
<el-col :span="8" :offset="1"> <el-col :span="8" :offset="1">
<el-button :id="confirmId1" class="status_btn" :disabled="disabledConfirm1" @click="confirm1">确认 <el-button :id="confirmId1" class="status_btn" :disabled="disabledConfirm1" @click="confirm1">确认
</el-button> </el-button>
</el-col> </el-col>
</div> </div>
</div> </div>
@ -28,13 +28,13 @@
<div style="overflow: hidden;"> <div style="overflow: hidden;">
<div>操作设备</div> <div>操作设备</div>
<el-col :span="11"> <el-col :span="11">
<el-select :id="domIdChoose" v-model="messageText2" filterable size="mini" :disabled="disabledConfirm2" @change="SelectChange"> <el-select :id="domIdChoose" v-model="messageText2" filterable size="mini" :disabled="disabledConfirm2" @change="SelectChange">
<el-option v-for="option in sectionList" :key="option.code" :label="option.name" :value="option.name" /> <el-option v-for="option in sectionList" :key="option.code" :label="option.name + '(' + option.code + ')'" :value="option.name" />
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="8" :offset="1"> <el-col :span="8" :offset="1">
<el-button :id="confirmId2" class="status_btn" :disabled="disabledConfirm2" @click="confirm2">确认 <el-button :id="confirmId2" class="status_btn" :disabled="disabledConfirm2" @click="confirm2">确认
</el-button> </el-button>
</el-col> </el-col>
</div> </div>
</div> </div>
@ -126,7 +126,11 @@ export default {
doShow(operate, selected) { doShow(operate, selected) {
this.selected = selected; this.selected = selected;
if (!this.dialogShow) { if (!this.dialogShow) {
this.messageText1 = selected.name; this.messageText1 = `${selected.name}(${selected.code})`;
// if (selected.parentCode) {
// const parentSection = this.$store.getters['map/getDeviceByCode'](selected.parentCode);
// this.messageText1 = `${parentSection.name}${selected.name}`;
// }
this.operation = operate.operation; this.operation = operate.operation;
} }
@ -137,6 +141,11 @@ export default {
}, },
doClose() { doClose() {
this.dialogShow = false; this.dialogShow = false;
this.disabledConfirm1 = false;
this.disabledConfirm2 = true;
this.timeCountConfirm = -1;
this.messageText1 = '';
this.messageText2 = '';
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
this.mouseCancelState(this.selected); this.mouseCancelState(this.selected);
}, },
@ -194,10 +203,10 @@ export default {
if (this.operation == OperationEvent.Section.unlock.menu.operation) { if (this.operation == OperationEvent.Section.unlock.menu.operation) {
operate.operation = OperationEvent.Section.unlock.confirm2.operation; operate.operation = OperationEvent.Section.unlock.confirm2.operation;
operate.cmdType = CMD.Section.CMD_SECTION_UNBLOCK operate.cmdType = CMD.Section.CMD_SECTION_UNBLOCK;
} else if (this.operation == OperationEvent.Section.fault.menu.operation) { } else if (this.operation == OperationEvent.Section.fault.menu.operation) {
operate.operation = OperationEvent.Section.fault.confirm2.operation; operate.operation = OperationEvent.Section.fault.confirm2.operation;
operate.cmdType = CMD.Section.CMD_SECTION_FAULT_UNLOCK operate.cmdType = CMD.Section.CMD_SECTION_FAULT_UNLOCK;
} }
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
@ -214,7 +223,7 @@ export default {
commit() { commit() {
const operate = { const operate = {
over: true, over: true,
operation: '', operation: ''
}; };
if (this.operation == OperationEvent.Section.unlock.menu.operation) { if (this.operation == OperationEvent.Section.unlock.menu.operation) {
@ -224,7 +233,7 @@ export default {
} }
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose(); this.doClose();
}).catch((error) => { }).catch((error) => {
this.doClose(); this.doClose();

View File

@ -215,11 +215,11 @@ export default {
} }
}; };
if (this.controlMode == 'center') { if (this.controlMode == 'center') {
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
operate.operation = OperationEvent.StationControl.requestCentralControl.menu.operation;
} else if (this.controlMode == 'local') {
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL; operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL;
operate.operation = OperationEvent.StationControl.requestStationControl.menu.operation; operate.operation = OperationEvent.StationControl.requestStationControl.menu.operation;
} else if (this.controlMode == 'local') {
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
operate.operation = OperationEvent.StationControl.requestCentralControl.menu.operation;
} }
this.loading = true; this.loading = true;