This commit is contained in:
sunzhenyu 2021-01-22 16:47:36 +08:00
commit 1ca93b98e5
38 changed files with 726 additions and 421 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -183,6 +183,7 @@ class SkinCode extends defaultStyle {
},
auto: {
signalFrontTriangle: false, // 信号灯前三角展示
autoRouteType:'line', // 自动进路类型 line 为西安二号线的类型(只更改信号机灯柱的颜色)
direction: false, // 自动通过方向
offset: { x: -4, y: 0}, // 自动通过偏移量
width: 5, // 自动宽度

View File

@ -247,6 +247,14 @@ class MouseController extends Eventful {
x2: item.namePosition.x,
y2: item.namePosition.y
};
} else if (item.type == '05') {
const rect = item.instance.getBoundingRect();
deviceBoundingRect = {
x1: rect.x,
y1: rect.y,
x2: rect.x + rect.width,
y2:rect.y + rect.height
};
} else {
deviceBoundingRect = {
x1: item.points[0].x,

View File

@ -362,6 +362,9 @@ export default class ELines extends Group {
this.routeArrowRight.hide();
this.routeLineRight.hide();
}
if (model.type == '01' && model.parentCode) {
this.section.setStyle({stroke:'#5b5b5b'});
}
}
}
@ -374,7 +377,8 @@ export default class ELines extends Group {
}
setOrignalCross() {
this.crossSection && this.crossSection.setStyle({lineWidth:0, fill:this.model.style.Section.cross.crossSection.fillColor});
this.crossSection && this.crossSection.setStyle({lineWidth:0 });
// fill:this.model.style.Section.cross.crossSection.fillColor
}
setCrossBlock() {
@ -384,12 +388,11 @@ export default class ELines extends Group {
this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.defaultColor});
}
setCrossSpeedUpperLimit(speedLimit) {
if (speedLimit) {
debugger;
this.crossSpeedText && this.crossSpeedText.setStyle({text:speedLimit, textFill: 'red' });
}
this.crossSpeedText && this.crossSpeedText.setStyle({text:speedLimit, textFill: 'red' });
}
setCrossDefault() {
this.crossSection && this.crossSection.setStyle({fill:this.model.style.Section.cross.crossSection.fillColor});
}
setZleve(lev) {
this.section && this.section.attr('z', lev);
}
@ -402,9 +405,17 @@ export default class ELines extends Group {
show() {
this.section && this.section.show();
this.crossSection && this.crossSection.show();
this.crossText && this.crossText.show();
this.crossSpeedText && this.crossSpeedText.show();
this.centerSquare && this.centerSquare.show();
}
setCrossRouteLock() {
if (this.crossSection) {
this.crossSection.setStyle({fill:'rgba(0,0,0,0)'});
}
}
animateStyle(loop, animates) {
if (animates && animates.length) {
if (this.section && this.section.animateStyle && this.section.isLine) {

View File

@ -90,11 +90,16 @@ export default class Section extends Group {
this.line.stopAnimation(true);
this.sectionBlock && this.sectionBlock.hide(); // 因此特殊区段
this.sectionBlock && this.sectionBlock.stopAnimation();
this.line.setStyle({
stroke: this.style.Section.line.spareColor,
lineWidth: this.style.Section.line.width
});
if (this.model.type == '01' && this.model.parentCode) {
this.line.setStyle({stroke:'#5b5b5b'});
} else {
this.line.setStyle({
stroke: this.style.Section.line.spareColor,
lineWidth: this.style.Section.line.width
});
}
this.line.setCrossSpeedUpperLimit('');
this.line.setCrossDefault();
}
this.name && this.name.recover();
this.speedLimit && this.speedLimit.hide();
@ -121,10 +126,15 @@ export default class Section extends Group {
/** 空闲状态 01*/
spare() {
if (this.line) {
this.line.setStyle({
stroke: this.style.Section.line.spareColor,
lineWidth: this.style.Section.line.width
});
if (this.model.type == '01' && this.model.parentCode) {
this.section.setStyle({stroke:'#5b5b5b'});
} else {
this.line.setStyle({
stroke: this.style.Section.line.spareColor,
lineWidth: this.style.Section.line.width
});
}
}
}
@ -172,6 +182,7 @@ export default class Section extends Group {
stroke: this.style.Section.line.routeLockColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
});
this.line.setCrossRouteLock();
this.line.setRouteLock(lockRight);
}
}
@ -179,6 +190,7 @@ export default class Section extends Group {
/** 封锁 06*/
block(routeLock) {
if (this.sectionBlock && this.model.type !== '03') {
this.sectionBlock.setStyle({stroke: this.style.Section.line.blockColor});
this.sectionBlock.show();
routeLock && this.style.Section.line.routeBlockFlashing && this.sectionBlock.animateStyle(true, [
{ time: 500, styles: { stroke: this.style.backgroundColor } },
@ -277,20 +289,31 @@ export default class Section extends Group {
this.line && this.line.setStyle({stroke: '#7F7F7F'});
this.name && this.name.setStyle({textFill: '#7F7F7f'});
}
// 南京二号线
setSwitchSectionColor(section1, section2) {
section1 && section1.instance && section1.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor });
section2 && section2.instance && section2.instance.setState(section2, true);
}
handleSwitchSection(model, flag) {
// 哈尔滨线路 南京二 道岔相关区段设置 默认颜色
if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) {
const switchModel = Vue.prototype.$jlmap.mapDevice[model.relSwitchCode];
const sectionB = Vue.prototype.$jlmap.mapDevice[switchModel.sectionBCode];
const sectionC = Vue.prototype.$jlmap.mapDevice[switchModel.sectionCCode];
if (switchModel && (switchModel.normalPosition === 1 || (switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse'))) { // 定位情况
sectionC && sectionC.instance && sectionC.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor });
sectionB && sectionB.instance && sectionB.instance.setState(sectionB, true);
} else if (switchModel && switchModel.reversePosition === 1 || (switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal')) { // 反位情况
sectionB && sectionB.instance && sectionB.instance.line.setStyle({ stroke: this.style.Switch.sectionAction.spareColor });
sectionC && sectionC.instance && sectionC.instance.setState(sectionC, true);
if (switchModel && switchModel.normalPosition === 1) {
this.setSwitchSectionColor(sectionC, sectionB);// 定位
} else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse' && switchModel.fault !== 'SPLIT') {
this.setSwitchSectionColor(sectionC, sectionB);// 反位转定位前
} else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal' && (switchModel.fault === 'SPLIT' || switchModel.fault === 'NORMAL_SPLIT')) {
this.setSwitchSectionColor(sectionC, sectionB);// 定位变失表或定位失表
} else if (switchModel && switchModel.reversePosition === 1) {
this.setSwitchSectionColor(sectionB, sectionC); // 反位
} else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'normal' && switchModel.fault !== 'SPLIT') {
this.setSwitchSectionColor(sectionB, sectionC); // 定位转反位前
} else if (switchModel && switchModel.normalPosition === 0 && switchModel.reversePosition === 0 && switchModel.instance && switchModel.instance.switchPosition === 'reverse' && (switchModel.fault === 'SPLIT' || switchModel.fault === 'REVERSE_SPLIT')) {
this.setSwitchSectionColor(sectionB, sectionC);// 反位变失表后反位失表
}
if (this.style.Section.switchFault && switchModel.split) {
if (this.style.Section.switchFault && switchModel.fault === 'SQUEEZE') {
if (sectionB && sectionB.instance) {
sectionB.instance.setState(sectionB, true);
sectionB.instance.line.animateStyle(true, [

View File

@ -613,7 +613,7 @@ class Signal extends Group {
this.sigRoute.show();
this.sigRoute.setStyle({ fill: this.style.Signal.auto.autoRoute });
} else {
if (this.style.Signal.auto.autoRouteType != 'text') {
if (this.style.Signal.auto.autoRouteType != 'text' && this.style.Signal.auto.autoRouteType != 'line') {
this.sigAuto.setColor(this.style.Signal.auto.autoRoute);
this.sigAuto.show();
}
@ -625,7 +625,7 @@ class Signal extends Group {
if (this.style.Signal.post.autoRouteColor) {
this.sigPost.setColor(this.style.Signal.post.autoRouteColor);
} else if (this.style.Signal.post.autoRouteVerColor) {
this.sigPost.setVerColor(this.style.Signal.post.setVerColor);
this.sigPost.setVerColor(this.style.Signal.post.autoRouteVerColor);
}
}
@ -801,11 +801,11 @@ class Signal extends Group {
});
}
}
if ( model.level === 3) {
if ( model.level === 3 && this.style.Signal.post.mainSignalVerColor && !model.fleetMode) {
this.sigPost.setVerColor(this.style.Signal.post.mainSignalVerColor);
} else if (model.level === 1 && this.style.Signal.post.closeSignalVerColor) {
} else if (model.level === 1 && this.style.Signal.post.closeSignalVerColor && !model.fleetMode) {
this.sigPost.setVerColor(this.style.Signal.post.closeSignalVerColor);
} else if (model.level === 2 && this.style.Signal.post.guideSignalVerColor) {
} else if (model.level === 2 && this.style.Signal.post.guideSignalVerColor && !model.fleetMode) {
this.sigPost.setVerColor(this.style.Signal.post.guideSignalVerColor);
}
// 信号机故障

View File

@ -151,6 +151,8 @@ export default class Switch extends Group {
const arrowTextY = model.intersection.y + 15;
const nameTextX = model.namePosition.x + model.intersection.x + directx * (style.Section.line.width * 3 + style.Switch.text.offset.x) * this.triangle.getCotRate();
const nameTextY = model.namePosition.y + model.intersection.y + style.Switch.text.offset.y * (style.Switch.text.position || directy);
const eTextX = nameTextX
const eTextY = nameTextY + (directy == 1? 6 * directy: 3 * directy);
this.name = new ESwName({ // 道岔名称
zlevel: this.zlevel,
@ -168,16 +170,15 @@ export default class Switch extends Group {
this.enabledName = new Text({ // 道岔使能 E 西安二号线独有
zlevel: this.zlevel,
z: this.z + 6,
z: this.z + 99,
_subType: 'enabled', // 标识
style: {
x: nameTextX,
// y: nameTextY + directy * 20,
y: nameTextY + 20,
x: eTextX,
y: eTextY,
fontSize: 12,
text: 'E',
textAlign: 'center',
textVerticalAlign: 'middle',
textVerticalAlign: directy == 1 ? 'top': 'bottom',
textFill: 'yellow'
}
});
@ -326,7 +327,7 @@ export default class Switch extends Group {
}
}
// 南京二号线 A,B闪烁
shapeFlashing(split) {
shapeFlashing(fault) {
let bColor = '#7F7F7F';
let aColor = '#7F7F7F';
if (this.switchPosition === 'normal') {
@ -351,19 +352,19 @@ export default class Switch extends Group {
.start();
});
}, 100);
if (split) {
if (fault === 'SQUEEZE') {
this.shapeModelA.hide();
this.shapeModelB.hide();
this.shapeModelC.hide();
}
}
/** 失去*/
setLossAction(split) {
setLossAction(fault) {
this.shapeModelA.show();
this.shapeModelB.show();
this.shapeModelC.show();
this.shapeModelC.setColor(this.style.backgroundColor);
this.style.Switch.shapeFlash && this.shapeFlashing(split);
this.style.Switch.shapeFlash && this.shapeFlashing(fault);
this.setTextColor(this.style.Switch.text.lossColor);
this.style.Switch.text.faultFlashing && this.nameTextAnimation();
@ -374,18 +375,18 @@ export default class Switch extends Group {
.when(1000, { stroke: this.style.backgroundColor })
.start();
}
setSwitchFault(split, normalPosition, reversePosition) {
if (this.style.Switch.jointImg.faultStatus && split && !reversePosition && !normalPosition ) { // 宁波线失表状态
setSwitchFault(fault, normalPosition, reversePosition) {
if (this.style.Switch.jointImg.faultStatus && fault && !reversePosition && !normalPosition ) { // 宁波线失表状态
this.setForkAction(); // 道岔挤岔
} else if (this.style.Switch.faultNoHandle ) {
this.shapeModelA.hide();
this.shapeModelB.hide();
this.shapeModelC.hide();
} else {
if (this.model.switchFaultCode && split) {
if (this.model.switchFaultCode && fault) {
const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode);
switchFault.instance.setControlColor('#F00', true);
} else if (this.model.switchFaultCode && !split) {
} else if (this.model.switchFaultCode && !fault) {
const switchFault = store.getters['map/getDeviceByCode'](this.model.switchFaultCode);
switchFault.instance.setControlColor(this.style.backgroundColor, false);
}
@ -578,7 +579,7 @@ export default class Switch extends Group {
setState(model) {
if (!this.isShowShape) return;
this.recover();
this.setSwitchFault(model.split, model.normalPosition, model.reversePosition);
this.setSwitchFault(model.fault, model.normalPosition, model.reversePosition);
if (model.normalPosition) {
this.switchPosition = 'normal';
this.setLocationAction(model); /** 定位*/
@ -586,7 +587,7 @@ export default class Switch extends Group {
this.switchPosition = 'reverse';
this.setInversionAction(model); /** 反位*/
} else {
this.setLossAction(model.split); // 失去
this.setLossAction(model.fault); // 失去
}
model.isCiConfirm && this.setCiConfirm(); // 道岔使能显示

View File

@ -117,6 +117,7 @@ import PasswordBox from './dialog/childDialog/passwordInputBox.vue';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { mapGetters } from 'vuex';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { OperateMode } from '@/scripts/ConstDic';
export default {
name: 'MapButtonMenu',
@ -143,13 +144,15 @@ export default {
};
},
computed: {
...mapGetters('training', [
'operatemode'
]),
...mapGetters('map', [
'routeList',
'routeData',
'signalList',
'autoReentryList',
'autoReentryData',
''
]),
Switch() {
return OperationEvent.Switch;
@ -330,7 +333,7 @@ export default {
const operate = {
operation: this.$store.state.menuOperation.buttonOperation
};
let isArrangementRoute = false;
let isArrangementRoute = false;
if (deviceList.length === 1) {
const signal = deviceList[0];
const sectionModel = this.$store.getters['map/getDeviceByCode'](signal.sectionCode);
@ -694,8 +697,8 @@ export default {
this.clearOperate();
}
} else {
this.clearOperate();
// this.$messageBox('');
this.clearOperate();
this.operatemode != OperateMode.FAULT && this.$message.info('请先切换到站控或紧急站控');
}
}
}

View File

@ -8,6 +8,39 @@
// STAND 站台
// ROUTE 进路
// CYCLE 自动折返
// {id: "1", trainingType: "ControlConvertMenu", name: "车站名称"}
// {id: "2", trainingType: "ControlConvertMenu", name: "车站控制模式编号"}
// {id: "3", trainingType: "Signal", name: "进路名称"}
// {id: "4", trainingType: "Signal", name: "进路编号"}
// {id: "5", trainingType: "Signal", name: "信号机名称"}
// {id: "6", trainingType: "Signal", name: "信号机编号"}
// {id: "7", trainingType: "Switch", name: "道岔名称"}
// {id: "8", trainingType: "Section", name: "物理区段名称"}
// {id: "9", trainingType: "Section", name: "逻辑区段名称"}
// {id: "10", trainingType: "Stand", name: "车站名称"}
// {id: "11", trainingType: "Stand", name: "站台行驶方向编号"}
// {id: "12", trainingType: "Stand", name: "站台行驶方向"}
// {id: "13", trainingType: "Stand", name: "站台行驶方向编号(反)"}
// {id: "14", trainingType: "Stand", name: "站台行驶方向(反)"}
// {id: "15", trainingType: "Switch", name: "道岔位置"}
// {id: "16", trainingType: "Switch", name: "道岔位置(反)"}
// {id: "17", trainingType: "Switch", name: "道岔编码"}
// {id: "18", trainingType: "Section", name: "逻辑区段编码"}
// {id: "19", trainingType: "Section", name: "区段编号"}
// {id: "20", trainingType: "Section", name: "车站名称"}
// {id: "21", trainingType: "Switch", name: "车站名称"}
// {id: "22", trainingType: "Section", name: "车站编号"}
// {id: "23", trainingType: "Switch", name: "车站编号"}
// {id: "24", trainingType: "Switch", name: "道岔计轴区段编号"}
// {id: "25", trainingType: "Switch", name: "道岔计轴区段名称"}
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default {
list: [
@ -85,7 +118,8 @@ export default {
{ deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'START_SIGNAL' },
{ deviceType: '04', orderNum: 3, operateCode: '3010', tip: '鼠标左键点击【{5}】', codeType:'END_SIGNAL' }
]
},
},
{
maxDuration: 15,
minDuration: 8,

View File

@ -52,16 +52,16 @@ export default {
menu: [],
menuNormal: {
Local: [
{
label: '道岔强扳定位',
handler: this.locate,
cmdType:CMD.Switch.CMD_SWITCH_NORMAL_POSITION
},
{
label: '道岔强扳反位',
handler: this.reverse,
cmdType:CMD.Switch.CMD_SWITCH_REVERSE_POSITION
},
// {
// label: '',
// handler: this.locate,
// cmdType:CMD.Switch.CMD_SWITCH_NORMAL_POSITION
// },
// {
// label: '',
// handler: this.reverse,
// cmdType:CMD.Switch.CMD_SWITCH_REVERSE_POSITION
// },
{
label: '区段激活',
handler: this.active,

View File

@ -91,7 +91,35 @@ export default {
{ deviceType: '05', orderNum: 7, operateCode: '0013', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '05', orderNum: 8, operateCode: '000', tip: '鼠标左键点击【关闭】按钮' }
]
},
},
// 未生成
{
maxDuration: 15,
minDuration: 8,
operateType: 'CMD_STATION_SET_CI_AUTO_TRIGGER',
skinCode: '07',
trainingName: '全站设置联锁自动触发({26})',
trainingRemark: '全站设置联锁自动触发',
trainingType: 'Station',
productTypes: ['01'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '601', tip: '鼠标右键菜单选择【全站设置联锁自动触发】' },
]
},
// 未生成
{
maxDuration: 15,
minDuration: 8,
operateType: 'CMD_STATION_CANCEL_CI_AUTO_TRIGGER',
skinCode: '07',
trainingName: '全站取消联锁自动触发({26})',
trainingRemark: '全站取消联锁自动触发',
trainingType: 'Station',
productTypes: ['01'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '602', tip: '鼠标右键菜单选择【全站取消联锁自动触发】' },
]
},
{
maxDuration: 15,
@ -364,24 +392,25 @@ export default {
{ deviceType: '03', orderNum: 1, operateCode: '406', tip: '鼠标右键菜单选择【区段激活】' },
{ deviceType: '03', orderNum: 2, operateCode: '406', tip: '鼠标左键点击【确定】按钮' }
]
},
// 未生成
{
maxDuration: 15,
minDuration: 8,
operateType: 'Section_Axis_Pre_Reset',
skinCode: '02',
trainingName: '计轴预复位({8}{9})',
trainingRemark: '计轴预复位功能',
trainingType: 'Section',
productTypes: ['01', '02'],
stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '409', tip: '鼠标右键菜单选择【区段计轴预复位】' },
{ deviceType: '03', orderNum: 2, operateCode: '4091', tip: '鼠标左键点击【下达】按钮' },
{ deviceType: '03', orderNum: 3, operateCode: '4093', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '03', orderNum: 4, operateCode: '4094', tip: '鼠标左键点击【确认2】按钮' },
{ deviceType: '03', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
},
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Section_Axis_Pre_Reset',
// skinCode: '02',
// trainingName: '计轴预复位({8}{9})',
// trainingRemark: '计轴预复位功能',
// trainingType: 'Section',
// productTypes: ['01', '02'],
// stepVOList: [
// { deviceType: '03', orderNum: 1, operateCode: '409', tip: '鼠标右键菜单选择【区段计轴预复位】' },
// { deviceType: '03', orderNum: 2, operateCode: '4091', tip: '鼠标左键点击【下达】按钮' },
// { deviceType: '03', orderNum: 3, operateCode: '4093', tip: '鼠标左键点击【确认1】按钮' },
// { deviceType: '03', orderNum: 4, operateCode: '4094', tip: '鼠标左键点击【确认2】按钮' },
// { deviceType: '03', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
// ]
// },
{
maxDuration: 15,
minDuration: 8,
@ -543,24 +572,25 @@ export default {
{ deviceType: '02', orderNum: 4, operateCode: '1094', tip: '鼠标左键点击【确认2】按钮' },
{ deviceType: '02', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
},
// 未生成实训
{
maxDuration: 15,
minDuration: 8,
operateType: 'Switch_Axis_Pre_Reset',
skinCode: '02',
trainingName: '道岔计轴预复位({7})',
trainingRemark: '道岔计轴预复位功能',
trainingType: 'Switch',
productTypes: ['01'],
stepVOList: [
{ deviceType: '02', orderNum: 1, operateCode: '110', tip: '鼠标右键菜单选择【道岔计轴预复位】' },
{ deviceType: '02', orderNum: 2, operateCode: '1101', tip: '鼠标左键点击【下达】按钮' },
{ deviceType: '02', orderNum: 3, operateCode: '1103', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '02', orderNum: 4, operateCode: '1104', tip: '鼠标左键点击【确认2】按钮' },
{ deviceType: '02', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
},
// { // 未生成实训
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Switch_Axis_Pre_Reset',
// skinCode: '02',
// trainingName: '道岔计轴预复位({7})',
// trainingRemark: '道岔计轴预复位功能',
// trainingType: 'Switch',
// productTypes: ['01'],
// stepVOList: [
// { deviceType: '02', orderNum: 1, operateCode: '110', tip: '鼠标右键菜单选择【道岔计轴预复位】' },
// { deviceType: '02', orderNum: 2, operateCode: '1101', tip: '鼠标左键点击【下达】按钮' },
// { deviceType: '02', orderNum: 3, operateCode: '1103', tip: '鼠标左键点击【确认1】按钮' },
// { deviceType: '02', orderNum: 4, operateCode: '1104', tip: '鼠标左键点击【确认2】按钮' },
// { deviceType: '02', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
// ]
// },
{
maxDuration: 15,
minDuration: 8,
@ -642,6 +672,20 @@ export default {
{ deviceType: '04', orderNum: 3, operateCode: '301', tip: '鼠标左键点击【确定】按钮', val: '{4}' },
{ deviceType: '04', orderNum: 4, operateCode: '3012', tip: '鼠标左键点击【确定】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Signal_Find_Routes_Status',
skinCode: '04',
trainingName: '查询进路控制模式({5} 信号机)',
trainingRemark: '查询进路控制模式',
trainingType:'Signal',
productTypes: ['01', '02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【查询进路控制模式】' },
{ deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' }
]
},
{
maxDuration: 15,
@ -733,6 +777,23 @@ export default {
{ deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '3041', tip: '鼠标左键点击【确定】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Signal_Set_Guide',
skinCode: '02',
trainingName: '进路引导({3})',
trainingRemark: '进路办理信号引导',
trainingType: 'Signal',
productTypes: ['01'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【进路引导】' },
{ deviceType: '04', orderNum: 2, operateCode: '3081', tip: '鼠标左键点击【下达】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '3083', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '04', orderNum: 4, operateCode: '3084', tip: '鼠标左键点击【确认2】按钮' },
{ deviceType: '04', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
},
{
maxDuration: 15,
@ -742,9 +803,9 @@ export default {
trainingName: '引导进路办理({3})',
trainingRemark: '进路办理信号引导',
trainingType: 'Signal',
productTypes: ['01'],
productTypes: ['02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【进路引导】' },
{ deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【引导进路办理】' },
{ deviceType: '04', orderNum: 2, operateCode: '3081', tip: '鼠标左键点击【下达】按钮' },
{ deviceType: '04', orderNum: 3, operateCode: '3083', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '04', orderNum: 4, operateCode: '3084', tip: '鼠标左键点击【确认2】按钮' },

View File

@ -995,12 +995,12 @@ export default {
{ name: '预复位', cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '封锁岔心', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '解封岔心', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强解岔心', cmdType: CMD.Section.CMD_SECTION_FORCE_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }
{ name: '强解岔心', cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }
] : [
{ name: '轨区设限', cmdType: CMD.Section.CMD_SECTION_SET_LIMIT_SPEED, operate: OperationEvent.Section.setSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '轨区消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强行消限', cmdType: CMD.Section.CMD_SECTION_CANCEL_LIMIT_SPEED, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强解区段', cmdType: CMD.Section.CMD_SECTION_FORCE_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强解区段', cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '预复位', cmdType: CMD.Section.CMD_SECTION_AXIS_PRE_RESET, operate: OperationEvent.Section.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '封锁区段', cmdType: CMD.Section.CMD_SECTION_BLOCK, operate: OperationEvent.Section.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '解封区段', cmdType: CMD.Section.CMD_SECTION_UNBLOCK, operate: OperationEvent.Section.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch }
@ -1010,7 +1010,7 @@ export default {
{ name: '岔区消限', cmdType: CMD.Switch.CMD_SWITCH_CANCEL_LIMIT_SPEED, operate: OperationEvent.Switch.cancelSpeed.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '转换道岔', cmdType: CMD.Switch.CMD_SWITCH_TURN, operate: OperationEvent.Switch.locate.menuButton, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强行转岔', cmdType: CMD.Switch.CMD_SWITCH_FORCE_TURN, operate: OperationEvent.Switch.locate.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强解道岔', cmdType: '', operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '强解道岔', cmdType: CMD.Switch.CMD_SWITCH_FAULT_UNLOCK, operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '挤岔恢复', cmdType: '', operate: OperationEvent.Section.fault.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '单独锁定', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK, operate: OperationEvent.Switch.lock.menuButton, disabledCb: (selectedObj) => !this.modeMatch },
{ name: '取消锁定', cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK, operate: OperationEvent.Switch.unlock.menuButton, securityCommand: true, disabledCb: (selectedObj) => !this.modeMatch },

View File

@ -162,7 +162,7 @@ export default {
},
{
title: '站遥控',
operate: OperationEvent.MixinCommand.remoteControl.mbar,
operate: OperationEvent.Command.mBar.remoteControl,
click: this.stationRemoteControl
},
{

View File

@ -85,22 +85,23 @@ export default {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdChooseControl() {
return this.dialogShow ? OperationEvent.Command.order.choose.domId : '';
return this.dialogShow ? OperationEvent.MixinCommand.remoteControl.select.domId : '';
},
domIdChooseStation() {
return this.dialogShow ? OperationEvent.Command.order.choose1.domId : '';
},
domIdCommit() {
if (this.dialogShow) {
if (this.stationType == '01') {
return OperationEvent.StationControl.requestCentralControl.menu.domId;
} else if (this.stationType == '02') {
return OperationEvent.StationControl.requestStationControl.menu.domId;
} else if (this.stationType == '03') {
return OperationEvent.StationControl.emergencyStationControl.menu.domId;
} else {
return '';
}
// if (this.stationType == '01') {
// return OperationEvent.StationControl.requestCentralControl.menu.domId;
// } else if (this.stationType == '02') {
// return OperationEvent.StationControl.requestStationControl.menu.domId;
// } else if (this.stationType == '03') {
// return OperationEvent.StationControl.emergencyStationControl.menu.domId;
// } else {
// return '';
// }
return OperationEvent.MixinCommand.remoteControl.confirm.domId;
} else {
return '';
}

View File

@ -779,6 +779,22 @@ export default {
{ deviceType: '05', orderNum: 2, operateCode: '2023', tip: '鼠标左键点击【应用】' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'CM_Emergency_Station_Control',
skinCode: '06',
trainingName: '紧急站控({1})',
trainingRemark: '控制权限转换,中控转紧急站控',
trainingType: 'ControlConvertMenu',
productTypes: ['01'],
stepVOList: [
{ deviceType: 'mBar', orderNum: 1, operateCode: '002', tip: '鼠标左键点击【系统】' },
{ deviceType: '05', orderNum: 2, operateCode: '0024', tip: '鼠标左键点击【站遥控】' },
{ deviceType: '05', orderNum: 3, operateCode: '299b', tip: '选择【紧急站控】' },
{ deviceType: '05', orderNum: 4, operateCode: '299c', tip: '鼠标左键点击【设置】' }
]
},
{
maxDuration: 15,
minDuration: 8,
@ -864,7 +880,6 @@ export default {
productTypes: ['01'],
stepVOList: [
{ deviceType: '05', orderNum: 1, operateCode: '602', tip: '鼠标右键菜单选择【全站取消联锁自动触发】'}
// { deviceType: '05', orderNum: 2, operateCode: '602', tip: '鼠标左键点击【确定】' }
]
},
{
@ -878,8 +893,52 @@ export default {
productTypes: ['01'],
stepVOList: [
{ deviceType: '05', orderNum: 1, operateCode: '601', tip: '鼠标右键菜单选择【全站设置联锁自动触发】'}
// { deviceType: '05', orderNum: 2, operateCode: '601', tip: '鼠标左键点击【确定】' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Station_Set_Turn_Back_Strategy',
skinCode: '06',
trainingName: '设置折返策略({1})({折返策略})',
trainingRemark: '设置折返策略',
trainingType: 'Station',
productTypes: ['01'],
stepVOList: [
{ deviceType: '', orderNum: 1, operateCode: '', tip: '鼠标右键菜单选择【设置折返策略】'},
{ deviceType: '', orderNum: 2, operateCode: '', tip: '选择折返策略' },
{ deviceType: '', orderNum: 3, operateCode: '', tip: '鼠标左键点击【确定】' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Station_Key_Operation_Test',
skinCode: '06',
trainingName: '执行关键性操作测试({1})',
trainingRemark: '执行关键性操作测试',
trainingType: 'Station',
productTypes: ['01', '02'],
stepVOList: [
{ deviceType: '05', orderNum: 1, operateCode: '604', tip: '鼠标右键菜单选择【执行关键性操作测试】' },
{ deviceType: '05', orderNum: 2, operateCode: '6041', tip: '鼠标左键点击【下达】' },
{ deviceType: '05', orderNum: 3, operateCode: '6042', tip: '鼠标左键点击【确认1】' },
{ deviceType: '05', orderNum: 4, operateCode: '6043', tip: '鼠标左键点击【确认2】'},
{ deviceType: '05', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
}
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Station_Power_On_Unlock',
// skinCode: '06',
// trainingName: '上电解锁({1})',
// trainingRemark: '上电解锁',
// trainingType: 'Station',
// productTypes: ['01'],
// stepVOList:[
// {deviceType: '05', orderNum: 1, operateCode: '603', tip: '鼠标右键菜单'}
// ]
// }
]
};

View File

@ -99,15 +99,27 @@ export default {
},
commit() {
const operate = {
operation: OperationEvent.Section.unlock.confirm.operation
};
};
let name = '';
let cmdType = '';
if (this.operation == OperationEvent.Section.unlock.menu.operation) {
operate.operation = OperationEvent.Section.unlock.confirm.operation;
cmdType = CMD.Section.CMD_SECTION_UNBLOCK;
name = '区段解锁';
} else if (this.operation == OperationEvent.Section.fault.menu.operation) {
operate.operation = OperationEvent.Section.fault.confirm.operation;
cmdType = CMD.Section.CMD_SECTION_FAULT_UNLOCK;
name = '区段故障解锁';
}
this.$store.dispatch('training/nextNew', operate).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.Section.CMD_SECTION_UNBLOCK,
operation: { code: OperationEvent.Command.commandXian.confirm.operation, name },
cmdType,
param: {
sectionCode: this.selected.code
}

View File

@ -22,7 +22,7 @@ import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'
import { mapGetters } from 'vuex';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
// import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import LoadSpareTrain from '@/jmapNew/theme/components/menus/dialog/loadSpareTrain';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
@ -58,27 +58,27 @@ export default {
label: '区段故障解锁',
handler: this.fault,
cmdType: CMD.Section.CMD_SECTION_FAULT_UNLOCK
},
{
label: '区段跟踪激活',
handler: this.active,
cmdType: CMD.Section.CMD_SECTION_ACTIVE
},
{
label: '区段跟踪切除',
handler: this.split,
cmdType: CMD.Section.CMD_SECTION_CUT_OFF
},
{
label: '区段封锁',
handler: this.lock,
cmdType: CMD.Section.CMD_SECTION_BLOCK
},
{
label: '区段解封',
handler: this.unlock,
cmdType: CMD.Section.CMD_SECTION_UNBLOCK
}
// {
// label: '',
// handler: this.active,
// cmdType: CMD.Section.CMD_SECTION_ACTIVE
// },
// {
// label: '',
// handler: this.split,
// cmdType: CMD.Section.CMD_SECTION_CUT_OFF
// }
// {
// label: '',
// handler: this.lock,
// cmdType: CMD.Section.CMD_SECTION_BLOCK
// },
// {
// label: '',
// handler: this.unlock,
// cmdType: CMD.Section.CMD_SECTION_UNBLOCK
// }
],
Center: [
{
@ -181,9 +181,9 @@ export default {
},
initMenu() {
//
// this.menu = MenuContextHandler.covert(this.menuNormal);
if (this.selected.type != '04') {
this.menu = this.menuNormal.Center;
// this.menu = this.menuNormal.Center;
this.menu = MenuContextHandler.covert2(this.menuNormal);
} else {
this.menu = [];
}

View File

@ -54,13 +54,13 @@ export default {
},
{
label: '开放自动进路',
handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
handler: this.setAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
},
{
label: '关闭自动进路',
handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
handler: this.cancelAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
},
{
label: '终端信号封锁',
@ -117,13 +117,13 @@ export default {
},
{
label: '开放自动进路',
handler: this.atsAutoControl,
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
handler: this.setAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO
},
{
label: '关闭自动进路',
handler: this.humanControl,
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
handler: this.cancelAutoInterlock,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO
},
{
label: '终端信号封锁',
@ -451,20 +451,13 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
humanControl() {
const routeCodeList = [];
this.routeList.forEach(item => {
if (item.startSignalCode === this.selected.code) {
routeCodeList.push(item.code);
}
});
//
cancelAutoInterlock() {
const step = {
code: `${this.selected.code}`,
operation: OperationEvent.Signal.humanControl.menu.operation,
operation: OperationEvent.Signal.cancelAutoInterlock.menu.operation,
param: {
signalCode: this.selected.code,
routeCodeList: routeCodeList
signalCode: this.selected.code
}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
@ -473,7 +466,7 @@ export default {
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '关闭自动进路'},
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING,
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO,
param: step.param
});
} else {
@ -483,20 +476,13 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
//
atsAutoControl() {
const routeCodeList = [];
this.routeList.forEach(item => {
if (item.startSignalCode === this.selected.code) {
routeCodeList.push(item.code);
}
});
//
setAutoInterlock() {
const step = {
code: `${this.selected.code}`,
operation: OperationEvent.Signal.atsAutoControl.menu.operation,
operation: OperationEvent.Signal.setAutoInterlock.menu.operation,
param: {
signalCode: this.selected.code,
routeCodeList: routeCodeList
signalCode: this.selected.code
}
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
@ -505,7 +491,7 @@ export default {
this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected,
operation: { code: OperationEvent.Command.commandXian.confirm.operation, name: '开放自动进路'},
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING,
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO,
param: step.param
});
} else {

View File

@ -32,20 +32,6 @@ export default {
{ deviceType: '06', orderNum: 4, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Stand_Early_Depart',
// skinCode: '09',
// trainingName: '提前发车({10}-{12}站台)',
// trainingRemark: '提前发车功能',
// trainingType: 'Stand',
// productTypes: ['01', '02'],
// stepVOList: [
// { deviceType: '06', orderNum: 1, operateCode: '501', tip: '鼠标右键菜单选择【提前发车】' },
// { deviceType: '06', orderNum: 2, operateCode: '501', tip: '鼠标左键点击【确定】按钮' }
// ]
// },
{
maxDuration: 15,
minDuration: 8,
@ -151,79 +137,77 @@ export default {
trainingType: 'Section',
productTypes: ['01'],
stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区段故障解锁】' },
{ deviceType: '03', orderNum: 2, operateCode: '4024', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '03', orderNum: 3, operateCode: '4028', tip: '鼠标左键选择({8}{9})区段', val: '{19}' },
{ deviceType: '03', orderNum: 4, operateCode: '4025', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '03', orderNum: 5, operateCode: '4023', tip: '鼠标左键点击【关闭】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Section_Cut_Off',
skinCode: '09',
trainingName: '区段跟踪切除({8}{9})',
trainingRemark: '区段跟踪切除',
trainingType: 'Section',
productTypes: ['01'],
stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '405', tip: '鼠标右键菜单选择【区段跟踪切除】' },
{ deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Section_Active',
skinCode: '09',
trainingName: '区段跟踪激活({8}{9})',
trainingRemark: '区段跟踪激活功能',
trainingType: 'Section',
productTypes: ['01'],
stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '406', tip: '鼠标右键菜单选择【区段跟踪激活】' },
{ deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Section_Set_Limit_Speed',
skinCode: '09',
trainingName: '设置临时限速({8}{9})',
trainingRemark: '设置临时限速功能限速值5',
trainingType: 'Section',
productTypes: ['02'],
stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' },
{ deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【限速值5】', val: '5' },
{ deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' },
{ deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' },
{ deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '5' },
{ deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Section_Set_Limit_Speed',
skinCode: '09',
trainingName: '设置临时限速({8}{9})',
trainingRemark: '设置临时限速功能-取消临时限速(限速值:不限速)',
trainingType: 'Section',
productTypes: ['02'],
stepVOList: [
{ deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' },
{ deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【不限速】', val: '0' },
{ deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' },
{ deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' },
{ deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '0' },
{ deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
{ deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区段故障解锁】' },
{ deviceType: '03', orderNum: 2, operateCode: '4023', tip: '鼠标左键点击【确定】按钮' },
{ deviceType: '03', orderNum: 3, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Section_Cut_Off',
// skinCode: '09',
// trainingName: '区段跟踪切除({8}{9})',
// trainingRemark: '区段跟踪切除',
// trainingType: 'Section',
// productTypes: ['01'],
// stepVOList: [
// { deviceType: '03', orderNum: 1, operateCode: '405', tip: '鼠标右键菜单选择【区段跟踪切除】' },
// { deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
// ]
// },
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Section_Active',
// skinCode: '09',
// trainingName: '区段跟踪激活({8}{9})',
// trainingRemark: '区段跟踪激活功能',
// trainingType: 'Section',
// productTypes: ['01'],
// stepVOList: [
// { deviceType: '03', orderNum: 1, operateCode: '406', tip: '鼠标右键菜单选择【区段跟踪激活】' },
// { deviceType: '03', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
// ]
// },
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Section_Set_Limit_Speed',
// skinCode: '09',
// trainingName: '设置临时限速({8}{9})',
// trainingRemark: '设置临时限速功能限速值5',
// trainingType: 'Section',
// productTypes: ['02'],
// stepVOList: [
// { deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' },
// { deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【限速值5】', val: '5' },
// { deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' },
// { deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' },
// { deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' },
// { deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '5' },
// { deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
// ]
// },
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Section_Set_Limit_Speed',
// skinCode: '09',
// trainingName: '设置临时限速({8}{9})',
// trainingRemark: '设置临时限速功能-取消临时限速(限速值:不限速)',
// trainingType: 'Section',
// productTypes: ['02'],
// stepVOList: [
// { deviceType: '03', orderNum: 1, operateCode: '407', tip: '鼠标右键菜单选择【设置临时限速】' },
// { deviceType: '03', orderNum: 2, operateCode: '4076', tip: '鼠标左键选择【不限速】', val: '0' },
// { deviceType: '03', orderNum: 3, operateCode: '4071', tip: '鼠标左键点击【下达】按钮' },
// { deviceType: '03', orderNum: 4, operateCode: '4072', tip: '鼠标左键点击【确认】按钮' },
// { deviceType: '03', orderNum: 5, operateCode: '4073', tip: '鼠标左键点击【确认1】按钮' },
// { deviceType: '03', orderNum: 6, operateCode: '4074', tip: '鼠标左键点击【确认2】按钮', val: '0' },
// { deviceType: '03', orderNum: 7, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
// ]
// },
{
maxDuration: 15,
minDuration: 8,
@ -339,35 +323,34 @@ export default {
productTypes: ['01', '02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '303', tip: '鼠标右键菜单选择【取消进路】' },
// { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' }
{ deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Signal_Open_Auto_Setting',
operateType: 'Signal_Set_CI_Auto',
skinCode: '09',
trainingName: '进路交自动控({5})',
trainingRemark: '进路交自动控',
trainingName: '开放自动进路({5})',
trainingRemark: '设置联锁自动进路',
trainingType: 'Signal',
productTypes: ['01', '02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【开放自动进路】' },
{ deviceType: '04', orderNum: 1, operateCode: '309', tip: '鼠标右键菜单选择【开放自动进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Signal_Close_Auto_Setting',
operateType: 'Signal_Cancel_CI_Auto',
skinCode: '09',
trainingName: '进路交人工控({5})',
trainingRemark: '进路交人工控',
trainingName: '关闭自动进路({5})',
trainingRemark: '取消自动联锁进路',
trainingType: 'Signal',
productTypes: ['01', '02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【关闭自动进路】' },
{ deviceType: '04', orderNum: 1, operateCode: '310', tip: '鼠标右键菜单选择【关闭自动进路】' },
{ deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' }
]
},
@ -379,7 +362,7 @@ export default {
trainingName: '终端信号封锁({5})',
trainingRemark: '终端信号封锁功能',
trainingType: 'Signal',
productTypes: ['01', '02'],
productTypes: ['02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '306', tip: '鼠标右键菜单选择【终端信号封锁】' },
{ deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
@ -393,7 +376,7 @@ export default {
trainingName: '终端信号解封({5})',
trainingRemark: '终端信号解封功能',
trainingType: 'Signal',
productTypes: ['01', '02'],
productTypes: ['02'],
stepVOList: [
{ deviceType: '04', orderNum: 1, operateCode: '307', tip: '鼠标右键菜单选择【终端信号解封】', codeType:'SIGNAL' },
{ deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' },
@ -429,35 +412,34 @@ export default {
// { deviceType: '04', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【确定】按钮' }
// ]
// },
{
maxDuration: 15,
minDuration: 8,
operateType: 'Train_Hold',
skinCode: '09',
trainingName: '列车扣车({5})',
trainingRemark: '列车扣车功能',
trainingType: 'Train',
productTypes: ['02'],
stepVOList: [
{ deviceType: '07', orderNum: 1, operateCode: '70k', tip: '鼠标右键菜单选择【列车/扣车】' },
{ deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
{
maxDuration: 15,
minDuration: 8,
operateType: 'Train_Cancel_Hold',
skinCode: '09',
trainingName: '列车放行({5})',
trainingRemark: '列车放行功能',
trainingType: 'Train',
productTypes: ['02'],
stepVOList: [
{ deviceType: '07', orderNum: 1, operateCode: '70l', tip: '鼠标右键菜单选择【列车/放行】' },
{ deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
]
},
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Train_Hold',
// skinCode: '09',
// trainingName: '列车扣车({5})',
// trainingRemark: '列车扣车功能',
// trainingType: 'Train',
// productTypes: ['02'],
// stepVOList: [
// { deviceType: '07', orderNum: 1, operateCode: '70k', tip: '鼠标右键菜单选择【列车/扣车】' },
// { deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
// ]
// },
// {
// maxDuration: 15,
// minDuration: 8,
// operateType: 'Train_Cancel_Hold',
// skinCode: '09',
// trainingName: '列车放行({5})',
// trainingRemark: '列车放行功能',
// trainingType: 'Train',
// productTypes: ['02'],
// stepVOList: [
// { deviceType: '07', orderNum: 1, operateCode: '70l', tip: '鼠标右键菜单选择【列车/放行】' },
// { deviceType: '07', orderNum: 2, operateCode: '009', tip: '鼠标左键点击【发送请求】按钮' }
// ]
// },
{
maxDuration: 20,
minDuration: 15,

View File

@ -13,11 +13,8 @@
<i class="el-icon-caret-bottom" style="color: #909399;" />
</div>
<el-dropdown-menu slot="dropdown" class="user-dropdown">
<el-dropdown-item>
<span style="display:block;" @click="goToCaseShow">西安铁路职业技术学院</span>
</el-dropdown-item>
<el-dropdown-item>
<span style="display:block;" @click="goToCase">贵州装备制造职业学院</span>
<el-dropdown-item v-for="(el, i) in caseList" :key="i">
<span style="display:block;" @click="goToCaseShow(el)">{{el.name}}</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
@ -85,7 +82,21 @@ export default {
hidden: getSessionStorage('project').endsWith('heb')
}
],
],
caseList: [
{
name: '西安铁路职业技术学院',
url: 'https://joylink.club/oss/portal/cases/西安铁路职业技术学院.pdf'
},
{
name: '贵州装备制造职业学院',
url: 'https://joylink.club/oss/portal/cases/贵州装备制造职业学院机电技术专业实训室建设.pdf'
},
{
name: '江苏电子信息职业学院',
url: 'https://joylink.club/oss/portal/cases/江苏电子信息职业学院-城市轨道交通行车组织综合实训室.pdf'
}
],
stomp: null,
header: null,
lang: 'zh'
@ -134,13 +145,8 @@ export default {
window.open(href, '_blank');
},
goEmpty() {},
goToCaseShow() {
const href = 'https://joylink.club/oss/portal/cases/西安铁路职业技术学院.pdf';
window.open(href, '_blank');
},
goToCase() {
const href = 'https://joylink.club/oss/portal/cases/贵州装备制造职业学院机电技术专业实训室建设.pdf';
window.open(href, '_blank');
goToCaseShow(item) {
window.open(item.url, '_blank');
},
goToTraining() {
const routeData = this.$router.resolve({

View File

@ -141,6 +141,7 @@ const BoardManage = () => import('@/views/messageBoard/manage');
const DraftLessonManage = () => import('@/views/teach/draftLessonManage');
const OrganizationManage = () => import('@/views/organization/index');
const RunPlanViewWindow = () => import('@/views/newMap/displayNew/demon/runPlanViewWindow');
const SecondaryHome = () => import('@/views/trainingPlatform/secondaryHome');
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
// import { getSessionStorage } from '@/utils/auth';
@ -625,6 +626,11 @@ export const asyncRouter = [
path: 'permission/:mapId',
component: Package,
hidden: true
},
{ // 二级home页面
path: 'secondaryHome',
component: SecondaryHome,
hidden: true
}
]
}

View File

@ -2,10 +2,10 @@
* 鼠标事件
*/
export const MouseEvent = {
Left: 1,
Right: 2,
Wheel: 3
}
Left: 1,
Right: 2,
Wheel: 3
};
/**
* 权限类型
*/
@ -194,7 +194,8 @@ export const UrlConfig = {
course: '/trainingPlatform/course',
practical: '/trainingPlatform/practical',
permission: '/trainingPlatform/permission',
pay: '/trainingPlatform/pay'
pay: '/trainingPlatform/pay',
secondaryHome: '/trainingPlatform/secondaryHome'
},
bank: {
questionCreate: '/design/race/questionCreate',

View File

@ -181,9 +181,9 @@ export default {
/** 站台总取消 */
CMD_STAND_TOTAL_CANCLE:{value:'Stand_Total_Cancle', label: '站台总取消'},
/** 手动开启屏蔽门 */
CMD_STAND_OPEN_PSD:{value:'Stand_Open_Psd', label: '手动开启屏蔽门'},
/** 取消设置*/
CMD_STAND_CANCEL_SETTING: {value: 'Stand_Cancel_Setting', label: '取消设置'}
CMD_STAND_OPEN_PSD:{value:'Stand_Open_Psd', label: '手动开启屏蔽门'},
/** 取消设置*/
CMD_STAND_CANCEL_SETTING: {value: 'Stand_Cancel_Setting', label: '取消设置'}
},
Station: {

View File

@ -38,7 +38,8 @@ export const deviceFaultType = {
Switch: [
{label: '失表', value: 'SPLIT'},
{label: '定位失表', value: 'NORMAL_SPLIT'},
{label: '反位失表', value: 'REVERSE_SPLIT'}
{label: '反位失表', value: 'REVERSE_SPLIT'},
{label: '挤岔', value: 'SQUEEZE'}
// {label: '道岔区段计轴故障', value: 'AXLE_FAULT'}
],
StationStand: [

View File

@ -60,6 +60,28 @@ class MenuContextHandler {
return result;
}
covert2(menuList) {
const selected = this.getCurrentStateObject();
let menu = [];
const control = this.getStationControl(selected);
if (control && !store.state.scriptRecord.audioPlay) {
if (this.getPrdType() != '' && this.getPrdType() != null) {
const type = State2SimulationMap[this.getPrdType()];
const status = State2ControlMap[control.controlMode]; // 判断当前模式
if (type) {
menu = [...menuList[type]];
}
// 特殊处理站台的右键操作( 因为小站台不允许有操作 )
if (selected._type == 'StationStand') {
if (selected.small) {
menu = [];
}
}
}
}
return menu;
}
covert(menuList) {
const selected = this.getCurrentStateObject();
let menu = [];

View File

@ -97,11 +97,11 @@ export const OperationEvent = {
domId: '_Tips-Mbar-0-detainControl'
},
cbtcMode: {
operation: '0030',
operation: '002a',
domId: '_Tips-Mbar-0-cbtcMode'
},
reserveMode: {
operation: '0031',
operation: '002b',
domId: '_Tips-Mbar-0-reserveMode'
}
},
@ -2522,13 +2522,6 @@ export const OperationEvent = {
// 混合指令
MixinCommand: {
/** 控制模式操作 */
remoteControl: {
mbar: {
operation: '2999',
domId: '_Tips-Control-StationControl-Mbar{TOP}'
}
},
// 封锁
block: {
button: {
@ -2584,6 +2577,21 @@ export const OperationEvent = {
operation: '2998',
domId: '_Tips-SetLink-Menu{TOP}'
}
},
/** 控制模式操作 */
remoteControl: {
mbar: {
operation: '299a',
domId: '_Tips-Control-StationControl-Mbar{TOP}'
},
select: {
operation: '299b',
domId: '_Tips-Control-StationControl-Select{TOP}'
},
confirm: {
operation: '299c',
domId: '_Tips-Control-StationControl-Confirm{TOP}'
}
}
}

View File

@ -102,10 +102,12 @@
<el-input-number v-model="formModel[item.prop]" :min="item.min" :max="item.max" :label="item.label" :disabled="item.disabled" style="width: 140px" @change="((val)=>{deviceChange(val,item)})" />
</template>
<span style="padding-left: 1px;">{{ item.placeholder }}</span>
<el-button v-if="item.button" type="primary" size="mini" style="margin-left: 20px;" @click="item.clickFunction">{{ item.buttonText }}</el-button>
</template>
<template v-else>
<el-input-number v-model="formModel[item.firstLevel][item.secondLevel]" :min="item.min" :max="item.max" :label="item.label" :disabled="item.disabled" />
<span style="padding-left: 1px;">{{ item.placeholder }}</span>
<el-button v-if="item.button" type="primary" size="mini" style="margin-left: 20px;" @click="item.clickFunction">{{ item.buttonText }}</el-button>
</template>
</el-form-item>
</template>
@ -279,6 +281,21 @@
</el-input>
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'lengthFact')">
<div v-if="!item.isHidden" :key="item.prop" class="coordinate">
<span class="title" :style="{width: item.width}">{{ item.label }}</span>
<div class="point-section">
<template v-for="(elem, j) in formModel[item.prop]">
<div :key="j" style="overflow: hidden;">
<el-form-item :label="elem.name" :prop="'logicLengthList[' + j + '].lengthFact'" label-width="20px">
<el-input-number v-model="elem.lengthFact" :min="0" :precision="3" style="width: 120px;" /><span></span>
<el-button v-if="!j" type="primary" size="mini" style="margin-left: 20px;" @click="item.mergeLength">合并长度</el-button>
</el-form-item>
</div>
</template>
</div>
</div>
</template>
</template>
</fieldset>
</template>

View File

@ -53,6 +53,7 @@ class Model {
this.belongStation = ''; // 所属车站
this.rightAxleOffset = { x: 0, y: 0 };
this.leftAxleOffset = { x: 0, y: 0 };
this.logicLengthList = [];
}
SignalModel() {
this._type = 'Signal';

View File

@ -315,19 +315,12 @@ export default {
let startOffset = 0;
const sectionMap = {};
if (section.logicSectionCodeList && section.logicSectionCodeList.length) {
const sectionModel = deepAssign({}, section);
sectionModel.lengthFact = Number(sectionModel.logicSectionCodeList.reduce((pre, code) => pre + Number(this.$store.getters['map/getDeviceByCode'](code).lengthFact), 0).toFixed(3));
models.push(sectionModel);
section.logicSectionCodeList.forEach(sectionCode => {
const logicSection = this.$store.getters['map/getDeviceByCode'](sectionCode);
sectionMap[logicSection.points[0].x + 's' + logicSection.points[0].y] = logicSection;
});
while (sectionMap[startPoint]) {
const model = deepAssign({}, sectionMap[startPoint]);
if (!model.lengthFact) {
const length = section.lengthFact / section.logicSectionCodeList.length;
model.lengthFact = length.toFixed(3);
}
model.logicSectionStartOffset = startOffset;
model.logicSectionEndOffset = (model.lengthFact * 1000 + startOffset * 1000) / 1000;
models.push(model);

View File

@ -7,7 +7,7 @@
<div class="button_box">
<el-button-group class="map-draft-group">
<el-button type="primary" size="small" @click="edit">{{ $t('map.updateObj') }}</el-button>
<el-button type="danger" size="small" @click="deleteObj">{{ $t('map.deleteObj') }}</el-button>
<el-button :disabled="editModel.type == '02'" type="danger" size="small" @click="deleteObj">{{ $t('map.deleteObj') }}</el-button>
</el-button-group>
</div>
</el-tab-pane>
@ -206,13 +206,12 @@ export default {
item: [
{ prop: 'stationCode', label: this.$t('map.equipmentStation') + ':', type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', disabled: this.isStationCodeDisabled, options: this.centralizedStationList, isHidden: this.isStationCodeDisabled },
{ prop: 'belongStation', label: '所属车站:', type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', options: this.stationList, isHidden: !this.editModel.standTrack && !this.editModel.reentryTrack && !this.editModel.transferTrack },
{ prop: 'lengthFact', label: this.$t('map.actualLength') + ':', type: 'number', min: 0, placeholder: this.$t('map.meter'), isHidden: !this.isSwitchSectionType || !this.isCrossSectionType },
{ prop: 'lengthFact', label: this.$t('map.actualLength') + ':', type: 'number', min: 0, placeholder: this.$t('map.meter'), disabled: this.isStationCodeDisabled, isHidden: !this.isSwitchSectionType || !this.isCrossSectionType, button:true, clickFunction: this.divideLength, buttonText: '均分长度' },
{ prop: 'logicLengthList', label: '逻辑区段实际长度:', type: 'lengthFact', isHidden: !this.isHasLogicPhysicalSection, mergeLength: this.mergeLength, width: '160px'},
{ prop: 'leftStopPointOffset', label: this.$t('map.leftStopPointOffset'), type: 'number', min: 0, max: this.maxLengthFact, isHidden: !this.isStopPointOffset }, //
{ prop: 'rightStopPointOffset', label: this.$t('map.rightStopPointOffset'), type: 'number', min: 0, max: this.maxLengthFact, isHidden: !this.isStopPointOffset }, //
{ prop: 'region', label: this.$t('map.sectionColon'), type: 'select', optionLabel: 'label', optionValue: 'value', options: this.regionList, isHidden: !this.sectionColonShow },
{ prop: 'trainWindowCode', label: '关联车次窗', type: 'input', disabled: true, isHidden: !this.isSwitchSectionShow || !this.isCrossSectionType }
// { prop: 'kmRangeLeft', label: this.$t('map.leftKilometerMark'), type: 'number', min: 0, placeholder: this.$t('map.meter') },
// { prop: 'kmRangeRight', label: this.$t('map.rightKilometerMark'), type: 'number', min: 0, placeholder: this.$t('map.meter') }
]
}
}
@ -228,20 +227,6 @@ export default {
callback();
}
};
// var validateLeftStopPointOffset = (rule, value, callback) => {
// if (value != this.editModel.rightStopPointOffset) {
// callback();
// } else {
// callback(new Error(''));
// }
// };
// var validateRightStopPointOffset = (rule, value, callback) => {
// if (value != this.editModel.leftStopPointOffset) {
// callback();
// } else {
// callback(new Error(''));
// }
// };
const rules = {
code: [
{ required: true, message: this.$t('rules.selectEquipment'), trigger: 'change' }
@ -252,14 +237,6 @@ export default {
type: [
{ required: true, message: this.$t('rules.pleaseEnterSectionType'), trigger: 'blur' }
],
// leftStopPointOffset: [
// { required: true, message: this.$t('rules.pleaseEnterLeftStopPointOffset'), trigger: 'blur' },
// { validator: validateLeftStopPointOffset, trigger: 'blur' }
// ],
// rightStopPointOffset: [
// { required: true, message: this.$t('rules.rightStopPointOffset'), trigger: 'blur' },
// { validator: validateRightStopPointOffset, trigger: 'blur' }
// ],
'destinationCodePoint.x': [
{ required: true, message: this.$t('rules.destinationCodePointX'), trigger: 'blur' }
],
@ -367,7 +344,9 @@ export default {
isStopPointOffset() {
return this.editModel.type !== '04' && (this.editModel.reentryTrack || this.editModel.standTrack || this.editModel.transferTrack);
},
isHasLogicPhysicalSection() { //
return this.editModel.type == '01' && this.editModel.logicSectionCodeList && this.editModel.logicSectionCodeList.length;
},
isLeftSectionButtonShow() {
return this.field === 'leftSection';
},
@ -446,6 +425,7 @@ export default {
this.clear();
this.handleInit();
this.activeName = 'first';
this.handleLogicLengthList(selected);
this.editModel = deepAssign(this.editModel, selected);
this.oldPoint = JSON.parse(JSON.stringify(selected.points));
this.oldLeftSectionCode = selected.leftSectionCode;
@ -505,6 +485,30 @@ export default {
this.$emit('deviceSelect', '');
}
},
handleLogicLengthList(selected) {
if (selected.type === '01' && selected.logicSectionCodeList && selected.logicSectionCodeList.length) {
const logicLengthList = [];
selected.logicSectionCodeList.forEach(sectionCode => {
const section = this.$store.getters['map/getDeviceByCode'](sectionCode);
logicLengthList.push({code: section.code, name: section.name, lengthFact: section.lengthFact});
});
// this.$set(this.editModel, 'logicLengthList', logicLengthList);
this.editModel.logicLengthList = [...logicLengthList];
}
},
divideLength() {
const logicLength = this.editModel.lengthFact / this.editModel.logicSectionCodeList.length;
this.editModel.logicLengthList.forEach(logic => {
logic.lengthFact = logicLength.toFixed(3);
});
},
mergeLength() {
let physicalLength = 0;
this.editModel.logicLengthList.forEach(logic => {
physicalLength += logic.lengthFact * 1000;
});
this.editModel.lengthFact = (physicalLength / 1000).toFixed(3);
},
addPoint(index) {
const data = { x: 0, y: 0 };
this.editModel.points.splice(index + 1, 0, data);
@ -529,7 +533,6 @@ export default {
const changeSectionList = this.handleOtherSectionChange(model);
const changeStandList = this.handleRelevanceStand(model);
models = [...changeSectionList, ...changeStandList];
this.$emit('updateMapModel', models);
this.oldPoint = JSON.parse(JSON.stringify(model.points));
this.oldLeftSectionCode = model.leftSectionCode;
@ -540,6 +543,7 @@ export default {
this.$message('还有属性未填写,修改未生效!');
this.$emit('deviceSelect', '');
}
// debugger;
});
},
handleRelevanceStand(model) { //
@ -559,39 +563,13 @@ export default {
let models = [model];
const pointModel = [];
const slope1 = (this.oldPoint[this.oldPoint.length - 1].y - this.oldPoint[0].y) / (this.oldPoint[this.oldPoint.length - 1].x - this.oldPoint[0].x);
const logicLengthMap = {};
this.editModel.logicLengthList.forEach(item => { logicLengthMap[item.code] = item.lengthFact; });
this.sectionList.forEach(section => {
if (section.type == '02') {
// section.parentCode
// const sectionModel = this.$store.getters['map/getDeviceByCode'](section.parentCode);
// const copySection = deepAssign({}, sectionModel);
// // if (section.leftSectionCode) {
// // console.log(section.leftSectionCode, '111111');
// // }
// if (section.rightSectionCode) {
// const sectionModel1 = this.$store.getters['map/getDeviceByCode'](section.rightSectionCode);
// if (sectionModel1.type == '02') {
// copySection.rightSectionCode = sectionModel1.parentCode;
// } else {
// copySection.rightSectionCode = section.rightSectionCode;
// }
// console.log(section.rightSectionCode, '22222');
// }
// models.push(copySection);
// console.log(section.rightSectionCode, section.leftSectionCode);
// const copySection = deepAssign({}, section);
// if (section.rightSectionCode) {
// delete copySection.rightSectionCode;
// }
// if (section.leftSectionCode) {
// delete copySection.leftSectionCode;
// }
// models.push(copySection);
}
if (section.parentCode == model.code && section.type == '02') { //
const copySection = deepAssign({}, section);
copySection.stationCode = model.stationCode; //
const length = model.lengthFact / model.logicSectionCodeList.length;
copySection.lengthFact = length.toFixed(3);
copySection.lengthFact = logicLengthMap[copySection.code];
if (this.checkPointsCoincide(this.oldPoint[0], copySection.points[0])) {
copySection.points[0] = model.points[0];
}
@ -622,24 +600,6 @@ export default {
}
}
}
if (model.parentCode == copySection.code) { //
let lengthFact = copySection.logicSectionCodeList.filter(code => model.code != code).reduce((pre, code) => {
const length = this.$store.getters['map/getDeviceByCode'](code).lengthFact;
return pre + Number(length);
}, 0);
lengthFact += model.lengthFact;
copySection.lengthFact = Number(lengthFact.toFixed(3)); //
const logicSectionCodeList = copySection.logicSectionCodeList;
const last = deepAssign({}, this.$store.getters['map/getDeviceByCode'](logicSectionCodeList[logicSectionCodeList.length - 1]));
last.logicSectionEndOffset = copySection.lengthFact;
models.push(last);
if (copySection.lengthFact > 5) {
copySection.leftStopPointOffset = copySection.leftStopPointOffset || 5;
copySection.rightStopPointOffset = copySection.rightStopPointOffset || copySection.lengthFact - 5;
}
updataFlag = true;
}
if (this.checkPointsCoincide(this.oldPoint[0], section.points[section.points.length - 1])) {
pointModel.push(copySection);
}
@ -670,20 +630,10 @@ export default {
}
});
if (!model.parentCode) {
if (model.type === '01') {
const arr = this.setLogicOffset(model, models);
models = [...models, ...arr];
} else {
const sectionModel = this.$store.getters['map/getDeviceByCode'](model.parentCode);
let arr = [];
if (sectionModel) {
arr = this.setLogicOffset(sectionModel, models);
} else {
arr = this.setLogicOffset(model, models);
}
models = [...models, ...arr];
}
return models;
},
selectSectionCode(code, list) {
@ -708,10 +658,6 @@ export default {
});
while (sectionMap[startPoint]) {
const model = sectionMap[startPoint].deepFlag ? sectionMap[startPoint] : deepAssign({}, sectionMap[startPoint]);
if (!model.lengthFact) {
const length = section.lengthFact / section.logicSectionCodeList.length;
model.lengthFact = length.toFixed(3);
}
model.logicSectionStartOffset = startOffset;
const lastData = Object.keys(sectionMap);
const temp = lastData[lastData.length - 1];

View File

@ -101,6 +101,9 @@ export default {
this.mapId = obj.id;
const router = { path: `${UrlConfig.trainingPlatform.permission}/${this.mapId}`};
this.toNextPage(isReplace, router);
} else if ( obj.type === 'System' ) {
const router = { path: `${UrlConfig.trainingPlatform.secondaryHome}`, query: { type: obj.id } };
this.toNextPage(isReplace, router);
} else if ( obj.type === 'MapSystem') {
getSubSystemInfo(obj.id).then(resp => { //
let router = '';

View File

@ -0,0 +1,119 @@
<template>
<div class="joylink-card">
<el-scrollbar wrap-class="scrollbar-wrapper">
<div class="content_box">
<h1 class="title">{{ title }}</h1>
<div class="card-box">
<el-carousel :interval="4000" type="card" height="380px">
<el-carousel-item v-for="(item, index) in listImg" :key="index">
<img :src="item.src" alt="" height="100%" width="100%">
</el-carousel-item>
</el-carousel>
</div>
<!--<div class="brief-box">{{ $t('demonstration.simulationSystemDescription') }}</div>-->
</div>
</el-scrollbar>
</div>
</template>
<script>
import simulation1 from '@/assets/home_simulation/simulation1.png';
import simulation2 from '@/assets/home_simulation/simulation2.png';
import simulation3 from '@/assets/home_simulation/simulation3.png';
import simulation4 from '@/assets/home_simulation/simulation4.png';
import simulation5 from '@/assets/home_simulation/simulation5.png';
import teach1 from '@/assets/home_teach/teach1.png';
import exam1 from '@/assets/home_exam/exam1.png';
export default {
name: 'SecondaryHome',
data() {
return {
simulationImgList: [
{ src: simulation1 },
{ src: simulation2 },
{ src: simulation3 },
{ src: simulation4 },
{ src: simulation5 }
],
teachImgList: [
{ src: teach1 }
],
examImgList: [
{ src: exam1 }
]
};
},
computed: {
listImg() {
if (this.$route.query.type === 'Simulation') {
return this.simulationImgList;
} else if (this.$route.query.type === 'Lesson') {
return this.teachImgList;
} else if (this.$route.query.type === 'Exam') {
return this.examImgList;
} else {
return [];
}
},
title() {
if (this.$route.query.type === 'Simulation') {
return '仿真系统';
} else if (this.$route.query.type === 'Lesson') {
return '教学系统';
} else if (this.$route.query.type === 'Exam') {
return '考试系统';
} else {
return '';
}
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
/deep/ .el-carousel {
overflow: hidden;
width:100%;
}
.joylink-card{
height: 100%;
font-family: 'Microsoft YaHei';
overflow: hidden;
.content_box{
padding: 0 100px 15px;
}
.title {
font-size: 35px;
width: 100%;
text-align: center;
font-weight: 400;
margin-top: 55px;
border-bottom: 2px dashed #333;
padding-bottom: 15px;
margin-bottom: 70px;
position: relative;
.logo-img {
position: absolute;
right: 0;
top: 0;
width: 55px;
}
}
.card-box {
width: 100%;
padding: 0 50px;
}
.brief-box {
font-size: 18px;
text-indent: 2em;
line-height: 32px;
padding: 40px 20px 0;
font-family: unset;
}
}
</style>