This commit is contained in:
fan 2021-01-29 13:23:41 +08:00
commit f1822495d2
8 changed files with 185 additions and 166 deletions

View File

@ -6,7 +6,8 @@ class SkinCode extends defaultStyle {
super();
this.fontFamily = '宋体';
this[deviceType.Section] = {
elemnetType:['name', 'standTrackText', 'reentryTrackText', 'transferTrackText', 'destinationText', 'line', 'separator', 'speedLimit'],
elemnetType:['name', 'standTrackText', 'reentryTrackText', 'transferTrackText', 'destinationText', 'line', 'separator', 'speedLimit'],
preAxleIgnoreFault: true,
active: {
routeColor: false // 进路触发颜色
},
@ -124,7 +125,7 @@ class SkinCode extends defaultStyle {
},
trainPosition:{
display: false // 列车实时位置显示
}
}
};
this[deviceType.Signal] = {

View File

@ -154,6 +154,11 @@ export default class Section extends Group {
/** 非通信车占用状态 03*/
unCommunicationOccupied() {
console.log(this.style.Section.preAxleIgnoreFault);
if (this.style.Section.preAxleIgnoreFault && this.model.preReset) {
return ;
}
if (this.line) {
this.line.setStyle({
stroke: this.style.Section.line.unCommunicationOccupiedColor,
@ -170,6 +175,10 @@ export default class Section extends Group {
}
/** ARB故障 */
invalid() {
if (this.style.Section.preAxleIgnoreFault && this.model.preReset) {
return ;
}
this.line && this.line.setStyle({
stroke: this.style.Section.line.invalidColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
@ -292,7 +301,7 @@ export default class Section extends Group {
if (this.style.Section.sectionMiddle && this.style.Section.sectionMiddle.preResetColor && !blockade) { // 南京二号线
this.sectionMiddle.setStyle({stroke: this.style.Section.sectionMiddle.preResetColor});
this.sectionMiddle.show();
}
}
}
// 延时解锁
delayUnlock() {
@ -356,13 +365,13 @@ export default class Section extends Group {
setState(model, flag = false) {
if (!this.isShowShape) return;
this.recover();
this.handleSwitchSection(model, flag);
this.handleSwitchSection(model, flag);
// 顺序代表优先级
/** 道岔保护区段锁闭 */
model.overlapLock && this.protectiveLock(model.lockRight);
/** 空闲锁闭或者叫进路锁闭 */
model.routeLock && this.routeLock(model.lockRight);
/** 计轴故障 */
/** 计轴故障 */
model.invalid && this.invalid();
/** 轨道封锁 */
model.blockade && this.block(model.routeLock);

View File

@ -299,7 +299,7 @@ export default {
setStoppage() {
commitOperate(menuOperate.Common.setFault, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.setFault.doShow(menuOperate.Common.SetFault, this.selected);
this.$refs.setFault.doShow(menuOperate.Common.setFault, this.selected);
}
});
},

View File

@ -28,14 +28,14 @@
<el-table-column prop="name" :width="210" :label="this.$t('menu.nextPlatform')" />
<el-table-column prop="time" :label="this.$t('menu.intervalRunningTime')">
<template slot-scope="scope">
<el-select :id="domIdChoose" v-model="scope.row.time" size="mini" @change="timeSelectChange">
<el-option
v-for="item in timeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-select :id="domIdChoose" v-model="scope.row.time" size="mini" @change="timeSelectChange">
<el-option
v-for="item in timeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column prop="check" :label="this.$t('menu.alwaysEffective')">
@ -114,7 +114,6 @@ export default {
timeList() {
const list = [
{ value: 0, label: this.$t('menu.automatic2') }
// { value: 1, label: '1' }
];
for (var i = 60; i <= this.maxRunLevel; i++) {
list.push({ value: i, label: `${i}` });
@ -130,7 +129,7 @@ export default {
this.checkTableDataSelction(val);
},
deep: true
}
}
},
mounted() {
this.sortStationList = [];
@ -140,7 +139,6 @@ export default {
},
methods: {
loadInitData(selected) {
this.tempData = [];
if (!this.sortStationList.length) {
getStationList(this.$route.query.mapId).then(resp => {
this.sortStationList = resp.data;
@ -151,11 +149,12 @@ export default {
}
},
handleTempData(selected) {
const tempData = [];
const stationIndex = this.sortStationList.findIndex((item) => item.code == selected.stationCode);
if (selected.right) {
const nextStation = this.sortStationList[stationIndex + 1];
const nextStationStand = this.stationStandList.find(stand => stand.stationCode === nextStation.code && stand.right);
nextStation && nextStationStand && this.tempData.push({
nextStation && nextStationStand && tempData.push({
name: `${nextStationStand.name}(${nextStation.name})`,
time: selected.runLevelTime ? selected.runLevelTime : 0,
check: !!selected.runLevelTimeForever
@ -163,12 +162,13 @@ export default {
} else {
const nextStation = this.sortStationList[stationIndex - 1];
const nextStationStand = this.stationStandList.find(stand => stand.stationCode === nextStation.code && !stand.right);
nextStation && nextStationStand && this.tempData.push({
nextStation && nextStationStand && tempData.push({
name: `${nextStationStand.name}(${nextStation.name})`,
time: selected.runLevelTime ? selected.runLevelTime : 0,
check: !!selected.runLevelTimeForever
});
}
}
this.tempData = tempData;
},
doShow(operate, selected) {
//
@ -181,13 +181,15 @@ export default {
if (station) {
this.stationName = station.name;
}
}
this.loadInitData(selected);
}
}
this.loadInitData(selected);
}
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
this.dialogShow = true;
this.$nextTick(function() {
setTimeout(() => {
this.$store.dispatch('training/emitTipFresh');
}, 300);
});
},
checkTableDataSelction(data) {

View File

@ -443,10 +443,7 @@ export default {
{ deviceType: '03', orderNum: 3, operateCode: '4043', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '03', orderNum: 4, operateCode: '4044', tip: '鼠标左键点击【确认2】按钮' },
{ deviceType: '03', orderNum: 5, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
],
config: {
sectionTypes: ['02']
}
]
},
{
maxDuration: 15,
@ -465,7 +462,10 @@ export default {
{ 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: '鼠标左键点击【关闭】按钮' }
]
],
config: {
sectionTypes: ['02']
}
},
{
maxDuration: 15,
@ -483,7 +483,10 @@ export default {
{ deviceType: '03', orderNum: 4, operateCode: '4083', tip: '鼠标左键点击【确认1】按钮' },
{ deviceType: '03', orderNum: 5, operateCode: '4084', tip: '鼠标左键点击【确认2】按钮', val: '0' },
{ deviceType: '03', orderNum: 6, operateCode: '001', tip: '鼠标左键点击【关闭】按钮' }
]
],
config: {
sectionTypes: ['02']
}
},
{

View File

@ -1,49 +1,49 @@
export const OperationEvent = {
// 直接指令
Command: {
// 对话框
common: {
choose: {
operation: 'com01',
domId: '_Tips-Cmd-Common-Choose'
},
select: {
operation: 'com02',
domId: '_Tips-Cmd-Common-Select'
},
confirm: {
operation: 'com03',
domId: '_Tips-Cmd-Common-Confirm'
},
apply: {
operation: 'com04',
domId: '_Tips-Cmd-Common-Apply'
},
close: {
operation: 'com05',
domId: '_Tips-Cmd-Common-Close'
},
choose1: {
operation: 'com06',
domId: '_Tips-Cmd-Common-Choose1'
},
select: {
operation: 'com07',
domId: '_Tips-Cmd-Common-Select'
},
confirm1: {
operation: 'com08',
domId: '_Tips-Cmd-Common-Confirm1'
},
apply1: {
operation: 'com09',
domId: '_Tips-Cmd-Common-Apply1'
},
close1: {
operation: 'com10',
domId: '_Tips-Cmd-Common-Close1'
},
},
// 对话框
common: {
choose: {
operation: 'com01',
domId: '_Tips-Cmd-Common-Choose'
},
select: {
operation: 'com02',
domId: '_Tips-Cmd-Common-Select'
},
confirm: {
operation: 'com03',
domId: '_Tips-Cmd-Common-Confirm'
},
apply: {
operation: 'com04',
domId: '_Tips-Cmd-Common-Apply'
},
close: {
operation: 'com05',
domId: '_Tips-Cmd-Common-Close'
},
choose1: {
operation: 'com06',
domId: '_Tips-Cmd-Common-Choose1'
},
select: {
operation: 'com07',
domId: '_Tips-Cmd-Common-Select'
},
confirm1: {
operation: 'com08',
domId: '_Tips-Cmd-Common-Confirm1'
},
apply1: {
operation: 'com09',
domId: '_Tips-Cmd-Common-Apply1'
},
close1: {
operation: 'com10',
domId: '_Tips-Cmd-Common-Close1'
}
},
// 取消操作
cancel: {
@ -625,26 +625,26 @@ export const OperationEvent = {
menu: {
operation: '107',
domId: '_Tips-Switch-Turnout-Menu'
},
menuButton: {
},
menuButton: {
operation: '1071',
domId: '_Tips-Switch-Turnout-MenuButton{BOTTOM}'
}
}
},
// 强制扳动
turnoutForce: {
menu: {
menu: {
operation: '108',
domId: '_Tips-Switch-TurnoutForce-Menu'
},
button: {
},
button: {
operation: '1080',
domId: '_Tips-Switch-TurnoutForce-Mbm{TOP}'
},
menuButton: {
menuButton: {
operation: '1081',
domId: '_Tips-Switch-TurnoutForce-MenuButton{BOTTOM}'
}
}
},
// 道岔故障解锁
fault: {
@ -671,11 +671,11 @@ export const OperationEvent = {
stop: {
operation: '1095',
domId: '_Tips-Switch-Fault-Stop'
},
menuButton: {
},
menuButton: {
operation: '1096',
domId: '_Tips-Switch-Fault-MenuButton{BOTTOM}'
}
}
},
// 计轴预复位
axlePreReset: {
@ -854,18 +854,18 @@ export const OperationEvent = {
operation: '1190',
domId: '_Tips-Switch-GuideLock-Button{TOP}'
}
},
// 挤岔恢复
squeezeRecovery: {
},
// 挤岔恢复
squeezeRecovery: {
button: {
operation: '11a0',
domId: '_Tips-Switch-Squeeze-Recovery-Button{TOP}'
},
menuButton: {
},
menuButton: {
operation: '11a1',
domId: '_Tips-Switch-Squeeze-Recovery-MenuButton{TOP}'
}
}
}
}
},
// 控制模式操作
@ -949,11 +949,11 @@ export const OperationEvent = {
passwordConfirm: {
operation: '2035',
domId: '_Tips-Control-Forced-PasswordConfirm'
},
menuButton: {
operation: '2036',
},
menuButton: {
operation: '2036',
domId: '_Tips-Control-Forced-Menu{BOTTOM}'
}
}
},
// 请求中控
requestCentralControl: {
@ -1637,11 +1637,11 @@ export const OperationEvent = {
stop: {
operation: '4095',
domId: '_Tips-Section-AxlePreReset-Stop'
},
menuButton: {
},
menuButton: {
operation: '4096',
domId: '_Tips-Section-AxlePreReset-Menu{BOTTOM}'
}
}
},
// 设备状态
detail: {
@ -2105,14 +2105,14 @@ export const OperationEvent = {
operation: '519',
domId: '_Tips-Stand-openPsdByHand-Menu'
}
},
// 取消设置
},
// 取消设置
cancelTrain:{
menuButton: {
operation: '520',
domId: '_Tips-Stand-CancelTrain-MenuButton{BOTTOM}'
}
}
}
},
Station: {

View File

@ -32,66 +32,67 @@ export default {
},
watch: {
'$store.state.training.tipEvent': function (val) {
this.tipInit();
this.tipInit();
this.$nextTick(function() {
this.tipInit();
});
}
},
methods: {
tipInit() {
this.$store.dispatch('training/isTeachMode').then(() => {
this.tipShow = true;
this.$nextTick(() => {
const offset = this.$store.state.config.canvasOffset;
if (this.$store.state.training.trainingStart) {
const order = this.$store.state.training.order;
const steps = this.$store.state.training.steps;
const offset = this.$store.state.config.canvasOffset;
if (this.$store.state.training.trainingStart) {
const order = this.$store.state.training.order;
const steps = this.$store.state.training.steps;
if (order > -1 && order < steps.length) {
const step = steps[order];
const distance = 5;
this.tip = step.tip;
/** 如果mbm或者bar的处理*/
if (step.type === 'mbm' || step.type === 'bar') {
const position = this.getOtherTipPoint(step);
if (position) {
this.position = position;
this.position.y -= distance;
this.popTipShow();
}
} else if (step.code) {
/** 默认是shape类型如果找不到坐标则可以认为是存在code的dailog*/
const position = this.getShapeTipPoint(step);
if (position) {
this.position = {
x: position.x + offset.x,
y: position.y + offset.y - distance
};
this.popTipShow();
} else {
const position = this.getOtherTipPoint(step);
if (position) {
this.position = position;
this.position.y -= distance;
this.popTipShow();
}
}
if (order > -1 && order < steps.length) {
const step = steps[order];
const distance = 5;
this.tip = step.tip;
/** 如果mbm或者bar的处理*/
if (step.type === 'mbm' || step.type === 'bar') {
const position = this.getOtherTipPoint(step);
if (position) {
this.position = position;
this.position.y -= distance;
this.popTipShow();
}
} else if (step.code) {
/** 默认是shape类型如果找不到坐标则可以认为是存在code的dailog*/
const position = this.getShapeTipPoint(step);
if (position) {
this.position = {
x: position.x + offset.x,
y: position.y + offset.y - distance
};
this.popTipShow();
} else {
/** 不存在code字段的dialog处理*/
const position = this.getOtherTipPoint(step);
if (position) {
this.position = position;
this.position.y -= distance;
this.popTipShow();
} else {
this.popTipHide();
}
}
} else {
this.tipShow = false;
/** 不存在code字段的dialog处理*/
const position = this.getOtherTipPoint(step);
if (position) {
this.position = position;
this.position.y -= distance;
this.popTipShow();
} else {
this.popTipHide();
}
}
} else {
this.tipShow = false;
}
});
} else {
this.tipShow = false;
}
}).catch(() => {
this.tipShow = false;
});

View File

@ -70,32 +70,34 @@ export default {
falseValue: false,
id: '',
height: 800,
initData: {
upRight: false,
signalApproachOnlyOne: false,
signalApproachOnlyNpSwitch: false,
routeNameUseEndOppositeSignalName: false,
generateTbRoute: false,
tbRouteNameUseEndOppositeSignalName: false,
routeSignalAlwaysGreen: false,
routeApartByOverlap: false,
overlapOnlySwitch: false,
overlapSwitchNpOnly: false,
overlapSignalOppositeSwitchNpOnly: false,
overlapOnlyOneSwitch: false,
generateCycle: false,
routeButton: false,
likeHa1: false,
getNearlySignal: false,
overlapSettingByTrigger: false,
overlapReleaseTime: 45,
routeReleaseTime: 60
},
// initData: {
// upRight: false,
// signalApproachOnlyOne: false,
// signalApproachOnlyNpSwitch: false,
// routeNameUseEndOppositeSignalName: false,
// generateTbRoute: false,
// tbRouteNameUseEndOppositeSignalName: false,
// routeSignalAlwaysGreen: false,
// routeApartByOverlap: false,
// overlapOnlySwitch: false,
// overlapSwitchNpOnly: false,
// overlapSignalOppositeSwitchNpOnly: false,
// overlapOnlyOneSwitch: false,
// generateCycle: false,
// routeButton: false,
// likeHa1: false,
// getNearlySignal: false,
// overlapSettingByTrigger: false,
// generateFls:false,
// signalApproachNotPassPreSignal:false,
// overlapReleaseTime: 45,
// routeReleaseTime: 60
// },
roadData: [],
focus: false,
booleanList: ['upRight', 'lockFirst', 'switchSingleHandle', 'signalApproachOnlyOne', 'signalApproachOnlyNpSwitch',
'routeNameUseEndOppositeSignalName', 'generateTbRoute', 'tbRouteNameUseEndOppositeSignalName', 'routeSignalAlwaysGreen',
'routeApartByOverlap', 'overlapOnlySwitch', 'overlapSwitchNpOnly', 'overlapSignalOppositeSwitchNpOnly', 'overlapOnlyOneSwitch', 'generateCycle', 'routeButton', 'likeHa1', 'getNearlySignal', 'overlapSettingByTrigger', 'generateFls'],
'routeApartByOverlap', 'overlapOnlySwitch', 'overlapSwitchNpOnly', 'overlapSignalOppositeSwitchNpOnly', 'overlapOnlyOneSwitch', 'generateCycle', 'routeButton', 'likeHa1', 'getNearlySignal', 'overlapSettingByTrigger', 'generateFls', 'signalApproachNotPassPreSignal'],
selectList: [],
numberList: ['overlapReleaseTime', 'routeReleaseTime'],
optionsMap: {
@ -123,7 +125,8 @@ export default {
likeHa1: '是否类似哈尔滨一号线联锁分为ATP信号、地面信号、引导信号',
getNearlySignal: '生成进路信号按钮,进路信号按钮是否取最近的一个信号机',
overlapSettingByTrigger: '延续保护的建立方式:是-通过触发建立,否-随进路建立',
generateFls: '是否生成侧防:是-生成侧防,不要联动道岔,否-不生成侧防,用联动道岔'
generateFls: '是否生成侧防:是-生成侧防,不要联动道岔,否-不生成侧防,用联动道岔',
signalApproachNotPassPreSignal:'信号机接近区段不跨过前方同向信号机'
}
};
},