Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
028ded01e3
@ -257,9 +257,33 @@ class SkinCode extends defaultStyle {
|
||||
};
|
||||
|
||||
this[deviceType.SignalButton] = {
|
||||
shape: 'roundWithDock'
|
||||
shape: 'roundWithDock',
|
||||
fillColor: '#808080',
|
||||
showName: true
|
||||
}
|
||||
|
||||
this[deviceType.SwitchFault] = {
|
||||
displayCondition: '01', // 显示条件 (01所有模式下显示 02 行调显示 03现地显示)
|
||||
text: {
|
||||
fontSize: 14, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: -50 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
square: true, // 方形
|
||||
radiusR: 20,
|
||||
switchState: true, // 是否用颜色表示道岔状态
|
||||
controlColor: '#00ff00', // 定位颜色
|
||||
reverseColor: '#ffff00', // 反位颜色
|
||||
switchingColor: '#999999', // 转换中颜色
|
||||
faultColor: '#ff0000', // 挤岔颜色
|
||||
blockColor: '#0000ff', // 单封颜色
|
||||
lockColor: '#ff0000', // 单锁颜色
|
||||
lineWidth: 2,
|
||||
strokeColor: '#FFFFFF' // 控制灯描边样式
|
||||
}
|
||||
};
|
||||
|
||||
// 供电线路
|
||||
this[deviceType.Power] = {
|
||||
noElectricStrokeColor:'#808080', // 无电颜色
|
||||
|
@ -541,6 +541,7 @@ class SkinCode extends defaultStyle {
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
square: false, // 方形
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#000000', // 控制灯颜色
|
||||
offColor: '#ff0000',
|
||||
|
@ -45,12 +45,13 @@ export default class SaidLamp extends Group {
|
||||
this.control = new EControl({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
arc: {
|
||||
control: {
|
||||
shape: {
|
||||
cx: this.computedPosition.x,
|
||||
cy: this.computedPosition.y,
|
||||
r: this.deviceStyle.lamp.radiusR
|
||||
},
|
||||
isSquare: this.deviceStyle.lamp.square,
|
||||
subType: 'Control',
|
||||
lineWidth: this.deviceStyle.lamp.lineWidth || 0,
|
||||
fill: this.deviceStyle.lamp.controlColor,
|
||||
@ -282,7 +283,6 @@ export default class SaidLamp extends Group {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,338 +1,312 @@
|
||||
import Group from 'zrender/src/container/Group';
|
||||
import Rect from 'zrender/src/graphic/shape/Rect';
|
||||
import Line from 'zrender/src/graphic/shape/Line';
|
||||
import Text from 'zrender/src/graphic/Text';
|
||||
import Arc from 'zrender/src/graphic/shape/Arc';
|
||||
import Circle from 'zrender/src/graphic/shape/Circle';
|
||||
import store from '@/store/index';
|
||||
import Group from 'zrender/src/container/Group'
|
||||
import Rect from 'zrender/src/graphic/shape/Rect'
|
||||
import Line from 'zrender/src/graphic/shape/Line'
|
||||
import Text from 'zrender/src/graphic/Text'
|
||||
import Arc from 'zrender/src/graphic/shape/Arc'
|
||||
import Circle from 'zrender/src/graphic/shape/Circle'
|
||||
import store from '@/store/index'
|
||||
const typeList = [
|
||||
'PICK_ASSIST',
|
||||
'DEPART_ASSIST',
|
||||
'ASSIST',
|
||||
'GUIDELOCK',
|
||||
'SECTION_FAULT_UNLOCK',
|
||||
'LOCATE',
|
||||
'REVERSE',
|
||||
'CANCEL',
|
||||
'HUMAN_RELEASE_ROUTE',
|
||||
'MONOLOCK',
|
||||
'UNLOCK',
|
||||
'BLOCK',
|
||||
'UNBLOCK',
|
||||
'CHANGE_DIRECTION'
|
||||
]
|
||||
|
||||
export default class SignalButton extends Group {
|
||||
constructor(model, {style}) {
|
||||
super();
|
||||
this._code = model.code;
|
||||
this._type = model._type;
|
||||
this.zlevel = model.zlevel;
|
||||
const pictureDevice = store.getters['map/getPictureDeviceByCode'](model.code);
|
||||
if (pictureDevice) {
|
||||
this.computedPosition = pictureDevice.position;
|
||||
} else {
|
||||
this.computedPosition = model.position;
|
||||
}
|
||||
this.z = 0;
|
||||
this.model = model;
|
||||
this.style = style;
|
||||
// Line
|
||||
this.create();
|
||||
this.setState(model);
|
||||
constructor(model, { style }) {
|
||||
super()
|
||||
this._code = model.code
|
||||
this._type = model._type
|
||||
this.zlevel = model.zlevel
|
||||
const pictureDevice = store.getters['map/getPictureDeviceByCode'](model.code)
|
||||
if (pictureDevice) {
|
||||
this.computedPosition = pictureDevice.position
|
||||
} else {
|
||||
this.computedPosition = model.position
|
||||
}
|
||||
this.z = 0
|
||||
this.model = model
|
||||
this.style = style
|
||||
// Line
|
||||
this.create()
|
||||
this.setState(model)
|
||||
}
|
||||
|
||||
create() {
|
||||
const model = this.model;
|
||||
const computedPosition = this.computedPosition;
|
||||
const fillColor = this.getTypeColor();
|
||||
// const queryList = window.location.search.substring(1).split('&');
|
||||
// const queryCtc = queryList.find(item => {
|
||||
// return item.includes('ctc');
|
||||
// });
|
||||
// const ctcArcList = ['OCCLUSION', 'RECOVERY', 'CHANGE_DIRECTION', 'ACCIDENT', 'DEPART_ASSIST', 'PICK_ASSIST', 'ASSIST'];
|
||||
const typeList = [];
|
||||
// debugger;
|
||||
// console.log(model.type);
|
||||
// if (queryCtc && ctcArcList.includes(model.type)) {
|
||||
// // debugger;
|
||||
// this.arcShape = new Arc({
|
||||
// zlevel: this.zlevel,
|
||||
// z: this.z,
|
||||
// shape: {
|
||||
// cx: computedPosition.x + 7,
|
||||
// cy: computedPosition.y + 7,
|
||||
// r: 7
|
||||
// },
|
||||
// style: {
|
||||
// stroke: '#69666E',
|
||||
// lineWidth: 1,
|
||||
// fill: fillColor
|
||||
// }
|
||||
// });
|
||||
// this.add(this.arcShape);
|
||||
// } else
|
||||
if (this.style.SignalButton &&
|
||||
this.style.SignalButton.shape === 'roundWithDock' &&
|
||||
typeList.includes(model.type)) {
|
||||
const circle1 = new Circle({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 2,
|
||||
shape: {
|
||||
cx: computedPosition.x + 7,
|
||||
cy: computedPosition.y + 7,
|
||||
r: 7
|
||||
},
|
||||
style: {
|
||||
stroke: '#69666E',
|
||||
lineWidth: 1,
|
||||
fill: fillColor
|
||||
}
|
||||
});
|
||||
const circle2 = new Circle({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
cx: computedPosition.x + 7,
|
||||
cy: computedPosition.y + 9,
|
||||
r: 8
|
||||
},
|
||||
style: {
|
||||
fill: '#000'
|
||||
}
|
||||
});
|
||||
const circle3 = new Circle({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
cx: computedPosition.x + 7,
|
||||
cy: computedPosition.y + 9,
|
||||
r: 9
|
||||
},
|
||||
style: {
|
||||
fill: '#eee'
|
||||
}
|
||||
});
|
||||
this.arcShape = circle1;
|
||||
this.add(circle1).add(circle2).add(circle3);
|
||||
create() {
|
||||
const model = this.model
|
||||
const computedPosition = this.computedPosition
|
||||
const fillColor = this.getTypeColor()
|
||||
if (this.style.SignalButton && this.style.SignalButton.shape === 'roundWithDock' && typeList.includes(model.type)) {
|
||||
const circle1 = new Circle({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 2,
|
||||
shape: {
|
||||
cx: computedPosition.x + 7,
|
||||
cy: computedPosition.y + 7,
|
||||
r: 7
|
||||
},
|
||||
style: {
|
||||
stroke: '#69666E',
|
||||
lineWidth: 1,
|
||||
fill: fillColor
|
||||
}
|
||||
})
|
||||
const circle2 = new Circle({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
cx: computedPosition.x + 7,
|
||||
cy: computedPosition.y + 9,
|
||||
r: 8
|
||||
},
|
||||
style: {
|
||||
fill: '#000'
|
||||
}
|
||||
})
|
||||
const circle3 = new Circle({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
cx: computedPosition.x + 7,
|
||||
cy: computedPosition.y + 9,
|
||||
r: 9
|
||||
},
|
||||
style: {
|
||||
fill: '#eee'
|
||||
}
|
||||
})
|
||||
this.arcShape = circle1
|
||||
this.arcShapeDock1 = circle2
|
||||
this.arcShapeDock2 = circle3
|
||||
this.add(circle1)
|
||||
.add(circle2)
|
||||
.add(circle3)
|
||||
} else {
|
||||
this.rectButton = new Rect({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
x: computedPosition.x,
|
||||
y: computedPosition.y,
|
||||
width: 14,
|
||||
height: 14
|
||||
},
|
||||
style: {
|
||||
lineDash: null,
|
||||
stroke: '#69666E',
|
||||
lineWidth: 1,
|
||||
fill: fillColor
|
||||
}
|
||||
})
|
||||
this.add(this.rectButton)
|
||||
}
|
||||
this.leftLine = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x + 1,
|
||||
y1: computedPosition.y + 1,
|
||||
x2: computedPosition.x + 13,
|
||||
y2: computedPosition.y + 13
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#ff0000'
|
||||
}
|
||||
})
|
||||
this.add(this.leftLine)
|
||||
this.leftLine.hide()
|
||||
this.rightLine = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x + 13,
|
||||
y1: computedPosition.y + 1,
|
||||
x2: computedPosition.x + 1,
|
||||
y2: computedPosition.y + 13
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#ff0000'
|
||||
}
|
||||
})
|
||||
this.add(this.rightLine)
|
||||
this.rightLine.hide()
|
||||
this.leftBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x - 1,
|
||||
y1: computedPosition.y - 1,
|
||||
x2: computedPosition.x - 1,
|
||||
y2: computedPosition.y + 15
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#FFFFFF'
|
||||
}
|
||||
})
|
||||
this.add(this.leftBoard)
|
||||
this.leftBoard.hide()
|
||||
this.topBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x - 1,
|
||||
y1: computedPosition.y - 1,
|
||||
x2: computedPosition.x + 15,
|
||||
y2: computedPosition.y - 1
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#FFFFFF'
|
||||
}
|
||||
})
|
||||
this.add(this.topBoard)
|
||||
this.topBoard.hide()
|
||||
this.rightBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x + 15,
|
||||
y1: computedPosition.y - 1,
|
||||
x2: computedPosition.x + 15,
|
||||
y2: computedPosition.y + 15
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#A0A0A0'
|
||||
}
|
||||
})
|
||||
this.add(this.rightBoard)
|
||||
this.rightBoard.hide()
|
||||
this.bottomBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x - 1,
|
||||
y1: computedPosition.y + 15,
|
||||
x2: computedPosition.x + 15,
|
||||
y2: computedPosition.y + 15
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#A0A0A0'
|
||||
}
|
||||
})
|
||||
this.add(this.bottomBoard)
|
||||
this.bottomBoard.hide()
|
||||
const hasTextList = ['PASS', 'ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION']
|
||||
if (hasTextList.includes(model.type) || (this.style.SignalButton && this.style.SignalButton.showName)) {
|
||||
this.buttonText = new Text({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
style: {
|
||||
x: computedPosition.x + model.nameOffset.x,
|
||||
y: computedPosition.y + model.nameOffset.y,
|
||||
fontWeight: '400',
|
||||
fontSize: 10,
|
||||
fontFamily: '',
|
||||
text: model.name,
|
||||
textFill: '#C0C0C0',
|
||||
textAlign: 'middle',
|
||||
textVerticalAlign: 'top'
|
||||
}
|
||||
})
|
||||
this.add(this.buttonText)
|
||||
}
|
||||
}
|
||||
startAnimate() {
|
||||
this.rectButton &&
|
||||
this.rectButton
|
||||
.animateStyle(true)
|
||||
.when(0, { fill: '#000' })
|
||||
.when(1000, { fill: this.getTypeColor() })
|
||||
.when(2000, { fill: '#000' })
|
||||
.start()
|
||||
}
|
||||
stopAnimation() {
|
||||
this.rectButton && this.rectButton.stopAnimation(true)
|
||||
// this.arcFlash && this.arcFlash.stopAnimation(false);
|
||||
}
|
||||
getTypeColor() {
|
||||
if (this.style.SignalButton && this.style.SignalButton.fillColor && typeList.includes(this.model.type)) {
|
||||
return this.style.SignalButton.fillColor
|
||||
}
|
||||
let color = ''
|
||||
const list = ['ASSIST', 'ACCIDENT', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION']
|
||||
if (this.model.type === 'FLEXIBLE' || this.model.type === 'SHUNT_TERMINAL') {
|
||||
color = '#808080'
|
||||
} else if (this.model.type === 'GUIDE') {
|
||||
color = '#5050E1'
|
||||
} else if (list.includes(this.model.type)) {
|
||||
color = '#ccc'
|
||||
} else {
|
||||
color = '#008000'
|
||||
}
|
||||
return color
|
||||
} //
|
||||
recover() {
|
||||
this.stopAnimation()
|
||||
this.rectButton && this.rectButton.setStyle({ fill: this.getTypeColor() })
|
||||
this.arcShape && this.arcShape.setStyle({ fill: this.getTypeColor() })
|
||||
this.rightLine && this.rightLine.hide()
|
||||
this.leftLine && this.leftLine.hide()
|
||||
this.rectButton && this.rectButton.show()
|
||||
this.arcShape && this.arcShape.show()
|
||||
this.arcShapeDock1 && this.arcShapeDock1.show()
|
||||
this.arcShapeDock2 && this.arcShapeDock2.show()
|
||||
this.buttonText && this.buttonText.show()
|
||||
this.leftBoard && this.leftBoard.hide()
|
||||
this.rightBoard && this.rightBoard.hide()
|
||||
this.topBoard && this.topBoard.hide()
|
||||
this.bottomBoard && this.bottomBoard.hide()
|
||||
}
|
||||
blockShow() {
|
||||
this.rightLine && this.rightLine.show()
|
||||
this.leftLine && this.leftLine.show()
|
||||
}
|
||||
setState(model) {
|
||||
this.recover()
|
||||
// { value: 'ASSIST', label: '总辅助按钮' },
|
||||
// { value: 'PICK_ASSIST', label: '接辅助按钮' },
|
||||
// { value: 'DEPART_ASSIST', label: '发辅助按钮' },
|
||||
const list = ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'ACCIDENT', 'RECOVERY', 'OCCLUSION']
|
||||
if (list.includes(model.type)) {
|
||||
if (this.rectButton) {
|
||||
if (model.pressDown) {
|
||||
this.rectButton.setStyle({ fill: '#FFFF00' })
|
||||
} else {
|
||||
this.rectButton = new Rect({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: {
|
||||
x: computedPosition.x,
|
||||
y: computedPosition.y,
|
||||
width: 14,
|
||||
height: 14
|
||||
},
|
||||
style: {
|
||||
lineDash: null,
|
||||
stroke: '#69666E',
|
||||
lineWidth:1,
|
||||
fill: fillColor
|
||||
}
|
||||
});
|
||||
this.add(this.rectButton);
|
||||
this.rectButton.setStyle({ fill: this.getTypeColor() })
|
||||
}
|
||||
this.leftLine = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x + 1,
|
||||
y1: computedPosition.y + 1,
|
||||
x2: computedPosition.x + 13,
|
||||
y2: computedPosition.y + 13
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#ff0000'
|
||||
}
|
||||
});
|
||||
this.add(this.leftLine);
|
||||
this.leftLine.hide();
|
||||
this.rightLine = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x + 13,
|
||||
y1: computedPosition.y + 1,
|
||||
x2: computedPosition.x + 1,
|
||||
y2: computedPosition.y + 13
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#ff0000'
|
||||
}
|
||||
});
|
||||
this.add(this.rightLine);
|
||||
this.rightLine.hide();
|
||||
this.leftBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x - 1,
|
||||
y1: computedPosition.y - 1,
|
||||
x2: computedPosition.x - 1,
|
||||
y2: computedPosition.y + 15
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#FFFFFF'
|
||||
}
|
||||
});
|
||||
this.add(this.leftBoard);
|
||||
this.leftBoard.hide();
|
||||
this.topBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x - 1,
|
||||
y1: computedPosition.y - 1,
|
||||
x2: computedPosition.x + 15,
|
||||
y2: computedPosition.y - 1
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#FFFFFF'
|
||||
}
|
||||
});
|
||||
this.add(this.topBoard);
|
||||
this.topBoard.hide();
|
||||
this.rightBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x + 15,
|
||||
y1: computedPosition.y - 1,
|
||||
x2: computedPosition.x + 15,
|
||||
y2: computedPosition.y + 15
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#A0A0A0'
|
||||
}
|
||||
});
|
||||
this.add(this.rightBoard);
|
||||
this.rightBoard.hide();
|
||||
this.bottomBoard = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 1,
|
||||
shape: {
|
||||
x1: computedPosition.x - 1,
|
||||
y1: computedPosition.y + 15,
|
||||
x2: computedPosition.x + 15,
|
||||
y2: computedPosition.y + 15
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
stroke: '#A0A0A0'
|
||||
}
|
||||
});
|
||||
this.add(this.bottomBoard);
|
||||
this.bottomBoard.hide();
|
||||
const hasTextList = ['PASS', 'ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION'];
|
||||
if (hasTextList.includes(model.type)) {
|
||||
this.buttonText = new Text({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
style: {
|
||||
x: computedPosition.x + model.nameOffset.x,
|
||||
y: computedPosition.y + model.nameOffset.y,
|
||||
fontWeight: '400',
|
||||
fontSize: 10,
|
||||
fontFamily: '',
|
||||
text: model.name,
|
||||
textFill: '#C0C0C0',
|
||||
textAlign: 'middle',
|
||||
textVerticalAlign: 'top'
|
||||
}
|
||||
});
|
||||
this.add(this.buttonText);
|
||||
}
|
||||
// if (model.type === 'CHANGE_DIRECTION') {
|
||||
// this.arcFlash = new Arc({
|
||||
// _subType: 'change_direction_flash',
|
||||
// zlevel: this.zlevel,
|
||||
// z: this.z,
|
||||
// shape: {
|
||||
// cx: model.position.x + 18 + 7,
|
||||
// cy: model.position.y + 7,
|
||||
// r: 6
|
||||
// },
|
||||
// style: {
|
||||
// lineWidth: 0,
|
||||
// fill: '#ffff00'
|
||||
// }
|
||||
// });
|
||||
// this.add(this.arcFlash);
|
||||
// }
|
||||
}
|
||||
}
|
||||
startAnimate() {
|
||||
this.rectButton && this.rectButton.animateStyle(true)
|
||||
.when(0, { fill: '#000' })
|
||||
.when(1000, { fill: this.getTypeColor() })
|
||||
.when(2000, { fill: '#000' })
|
||||
.start();
|
||||
}
|
||||
stopAnimation() {
|
||||
this.rectButton && this.rectButton.stopAnimation(true);
|
||||
// this.arcFlash && this.arcFlash.stopAnimation(false);
|
||||
}
|
||||
getTypeColor() {
|
||||
let color = '';
|
||||
const list = ['ASSIST', 'ACCIDENT', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION'];
|
||||
if (this.model.type === 'FLEXIBLE' || this.model.type === 'SHUNT_TERMINAL') {
|
||||
color = '#808080';
|
||||
} else if (this.model.type === 'GUIDE') {
|
||||
color = '#5050E1';
|
||||
} else if (list.includes(this.model.type)) {
|
||||
color = '#ccc';
|
||||
} else {
|
||||
color = '#008000';
|
||||
}
|
||||
return color;
|
||||
}//
|
||||
recover() {
|
||||
this.stopAnimation();
|
||||
this.rectButton && this.rectButton.setStyle({ fill:this.getTypeColor() });
|
||||
this.arcShape && this.arcShape.setStyle({ fill:this.getTypeColor() });
|
||||
this.rightLine && this.rightLine.hide();
|
||||
this.leftLine && this.leftLine.hide();
|
||||
this.rectButton && this.rectButton.show();
|
||||
this.arcShape && this.arcShape.show();
|
||||
this.buttonText && this.buttonText.show();
|
||||
this.leftBoard && this.leftBoard.hide();
|
||||
this.rightBoard && this.rightBoard.hide();
|
||||
this.topBoard && this.topBoard.hide();
|
||||
this.bottomBoard && this.bottomBoard.hide();
|
||||
}
|
||||
blockShow() {
|
||||
this.rightLine && this.rightLine.show();
|
||||
this.leftLine && this.leftLine.show();
|
||||
}
|
||||
setState(model) {
|
||||
this.recover();
|
||||
// { value: 'ASSIST', label: '总辅助按钮' },
|
||||
// { value: 'PICK_ASSIST', label: '接辅助按钮' },
|
||||
// { value: 'DEPART_ASSIST', label: '发辅助按钮' },
|
||||
const list = ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'CHANGE_DIRECTION', 'ACCIDENT', 'RECOVERY', 'OCCLUSION'];
|
||||
if (list.includes(model.type)) {
|
||||
if (this.rectButton) {
|
||||
if (model.pressDown) {
|
||||
this.rectButton.setStyle({ fill:'#FFFF00' });
|
||||
// this.arcFlash.show();
|
||||
// const style = this.style;
|
||||
// this.arcFlash.animateStyle(true)
|
||||
// .when(0, { fill: style.backgroundColor })
|
||||
// .when(500, { fill: '#FFFF00' })
|
||||
// .when(1000, { fill: style.backgroundColor })
|
||||
// .start();
|
||||
} else {
|
||||
this.rectButton.setStyle({ fill:this.getTypeColor() });
|
||||
// this.arcFlash.stopAnimation(false);
|
||||
// this.arcFlash.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
// let
|
||||
// { value: 'PICK', label: '接车按钮' },
|
||||
// { value: 'SHUNT_TERMINAL', label: '调车终端按钮' },
|
||||
if (!store.getters['map/checkDeviceShow'](this._code)) {
|
||||
this.buttonText && this.buttonText.hide();
|
||||
this.rectButton && this.rectButton.hide();
|
||||
this.leftLine && this.leftLine.hide();
|
||||
this.rightLine && this.rightLine.hide();
|
||||
this.arcShape && this.arcShape.hide();
|
||||
} else {
|
||||
if (model.hasSelected) {
|
||||
this.startAnimate();
|
||||
}
|
||||
}
|
||||
}
|
||||
getAnchorPoint() {
|
||||
// let
|
||||
// { value: 'PICK', label: '接车按钮' },
|
||||
// { value: 'SHUNT_TERMINAL', label: '调车终端按钮' },
|
||||
if (!store.getters['map/checkDeviceShow'](this._code)) {
|
||||
this.buttonText && this.buttonText.hide()
|
||||
this.rectButton && this.rectButton.hide()
|
||||
this.leftLine && this.leftLine.hide()
|
||||
this.rightLine && this.rightLine.hide()
|
||||
this.arcShape && this.arcShape.hide()
|
||||
this.arcShapeDock1 && this.arcShapeDock1.hide()
|
||||
this.arcShapeDock2 && this.arcShapeDock2.hide()
|
||||
} else {
|
||||
if (model.hasSelected) {
|
||||
this.startAnimate()
|
||||
}
|
||||
}
|
||||
}
|
||||
getAnchorPoint() {}
|
||||
}
|
||||
|
@ -26,8 +26,6 @@ class ESwDot extends Group {
|
||||
this.add(this.dot)
|
||||
}
|
||||
setColor(color) {
|
||||
console.log(this.dot)
|
||||
console.log(color)
|
||||
this.dot.setStyle({ fill: color })
|
||||
}
|
||||
}
|
||||
|
@ -481,15 +481,27 @@ export default class Switch extends Group {
|
||||
.start();
|
||||
}
|
||||
// N-定位 R-反位 NO-无(失表) EX-挤叉
|
||||
setSwitchFault(fault) {
|
||||
setSwitchFault(model) {
|
||||
const { pos, fault, /* 单锁 */singleLock, /* 封锁 */blockade } = model
|
||||
const faultList = ['SPLIT', 'SQUEEZE', 'NORMAL_SPLIT', 'REVERSE_SPLIT', 'SPLIT_1'];
|
||||
// (fault === 'SPLIT' || fault === 'SQUEEZE' || (fault === 'NORMAL_SPLIT' && !reversePosition) || (fault === 'REVERSE_SPLIT' && !normalPosition))
|
||||
if (this.model.switchFaultCode && fault && faultList.includes(fault) ) {
|
||||
if (this.model.switchFaultCode) {
|
||||
const switchFault = this.mapDevice[this.model.switchFaultCode];
|
||||
switchFault.instance.setControlColor('#F00', true);
|
||||
} else if (this.model.switchFaultCode) {
|
||||
const switchFault = this.mapDevice[this.model.switchFaultCode];
|
||||
switchFault.instance.setControlColor(this.style.backgroundColor, false);
|
||||
if (this.style.SwitchFault.lamp.switchState) {
|
||||
console.log(fault)
|
||||
console.log(pos)
|
||||
if (pos === 'N') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.controlColor)
|
||||
else if (pos === 'R') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.reverseColor)
|
||||
else if (pos === 'NO') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.switchingColor)
|
||||
else if (pos === 'EX') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.faultColor)
|
||||
if (singleLock) switchFault.instance.setControlColor(this.style.SwitchFault.lamp.lockColor)
|
||||
if (blockade === 'EX') switchFault.instance.setControlColor(this.style.SwitchFault.lamp.blockColor)
|
||||
} else {
|
||||
if ( fault && faultList.includes(fault) ) {
|
||||
switchFault.instance.setControlColor('#F00', true);
|
||||
} else {
|
||||
switchFault.instance.setControlColor(this.style.backgroundColor, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
// stopAnimation
|
||||
this.shapeModelB.stopAnimation(false);
|
||||
@ -803,7 +815,8 @@ export default class Switch extends Group {
|
||||
this.setAshShow();
|
||||
}
|
||||
} else {
|
||||
this.setSwitchFault(model.fault);
|
||||
this.setSwitchFault(model);
|
||||
console.log(model)
|
||||
|
||||
// model.pos == 'NO' || model.pos == 'EX';
|
||||
// N-定位 R-反位 NO-无(失表) EX-挤叉
|
||||
|
@ -13,23 +13,40 @@ export default class EControl extends Group {
|
||||
this.z = model.z;
|
||||
this.style = model.style;
|
||||
this.textStyle = model.text;
|
||||
this.arcStyle = model.arc;
|
||||
this.controlStyle = model.control;
|
||||
this.create();
|
||||
}
|
||||
|
||||
create() {
|
||||
this.control = new Arc({
|
||||
_subType: this.arcStyle.subType,
|
||||
this.control = this.controlStyle.isSquare ? new Rect({
|
||||
_subType: this.controlStyle.subType,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: this.arcStyle.shape,
|
||||
style: {
|
||||
lineWidth: this.arcStyle.lineWidth,
|
||||
fill: this.arcStyle.fill,
|
||||
stroke: this.arcStyle.stroke
|
||||
shape: {
|
||||
width: this.controlStyle.shape.r,
|
||||
height: this.controlStyle.shape.r,
|
||||
x: this.controlStyle.shape.cx - this.controlStyle.shape.r / 2,
|
||||
y: this.controlStyle.shape.cy - this.controlStyle.shape.r / 2,
|
||||
},
|
||||
onmouseover: this.arcStyle.mouseover,
|
||||
onmouseout: this.arcStyle.mouseout
|
||||
style: {
|
||||
lineWidth: this.controlStyle.lineWidth,
|
||||
fill: this.controlStyle.fill,
|
||||
stroke: this.controlStyle.stroke
|
||||
},
|
||||
onmouseover: this.controlStyle.mouseover,
|
||||
onmouseout: this.controlStyle.mouseout
|
||||
}) : new Arc({
|
||||
_subType: this.controlStyle.subType,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
shape: this.controlStyle.shape,
|
||||
style: {
|
||||
lineWidth: this.controlStyle.lineWidth,
|
||||
fill: this.controlStyle.fill,
|
||||
stroke: this.controlStyle.stroke
|
||||
},
|
||||
onmouseover: this.controlStyle.mouseover,
|
||||
onmouseout: this.controlStyle.mouseout
|
||||
});
|
||||
this.text = new Text({
|
||||
_subType: 'Text',
|
||||
@ -63,7 +80,7 @@ export default class EControl extends Group {
|
||||
height: arcRect.height + 4
|
||||
},
|
||||
style: {
|
||||
lineDash: this.arcStyle.lineDash || this.style.arcBorderStyle.lineDash,
|
||||
lineDash: this.controlStyle.lineDash || this.style.arcBorderStyle.lineDash,
|
||||
stroke: this.style.arcBorderStyle.stroke,
|
||||
fill: this.style.arcBorderStyle.fill
|
||||
}
|
||||
@ -106,15 +123,15 @@ export default class EControl extends Group {
|
||||
setControlFlashing(color) {
|
||||
if (color) {
|
||||
this.control.animateStyle(true)
|
||||
.when(0, { fill: this.arcStyle.fill })
|
||||
.when(0, { fill: this.controlStyle.fill })
|
||||
.when(1000, { stroke: color })
|
||||
.when(2000, { fill: this.arcStyle.fill })
|
||||
.when(2000, { fill: this.controlStyle.fill })
|
||||
.start();
|
||||
}
|
||||
}
|
||||
recover() {
|
||||
this.control.stopAnimation(false);
|
||||
this.control.setStyle('fill', this.arcStyle.fill);
|
||||
this.control.setStyle('fill', this.controlStyle.fill);
|
||||
}
|
||||
setControlStroke(color, lineWidth) {
|
||||
this.control.setStyle('lineWidth', lineWidth);
|
||||
|
@ -723,12 +723,17 @@ export default {
|
||||
}
|
||||
},
|
||||
handelSwitchOperate(model) {
|
||||
let code = ''
|
||||
if (model._type === 'Switch') code = model.code
|
||||
else if (model._type === 'SwitchFault') {
|
||||
code = this.$store.getters['map/getDeviceByCode'](model.switchCode).code
|
||||
}
|
||||
const operate = {
|
||||
over: true,
|
||||
code: model.code,
|
||||
operation: this.$store.state.menuOperation.buttonOperation,
|
||||
cmdType: this.cmdType,
|
||||
param: { switchCode: model.code }
|
||||
param: { switchCode: code }
|
||||
}
|
||||
this.sendCommand(operate)
|
||||
},
|
||||
@ -837,6 +842,15 @@ export default {
|
||||
this.Switch.block.button.operation,
|
||||
this.Switch.unblock.button.operation
|
||||
]
|
||||
const signalButtonOperation = [
|
||||
'LOCATE', //总定
|
||||
'REVERSE', //总反
|
||||
'MONOLOCK', //单锁
|
||||
'UNLOCK', //解锁
|
||||
'BLOCK', //单封
|
||||
'UNBLOCK', //解封,
|
||||
'SECTION_FAULT_UNLOCK' //区故解
|
||||
]
|
||||
if ((this.guideLockLeftFlag || this.guideLockRightFlag) && model._type === 'SignalButton' && model.type === 'GUIDE') {
|
||||
this.handleGuideLock(model)
|
||||
} else if (buttonOperation && this.commandTypeList.includes(model._type)) {
|
||||
@ -862,6 +876,30 @@ export default {
|
||||
} else if (model._type === 'SignalButton' && signalButtonList.includes(model.type)) {
|
||||
// 改方操作 总辅助操作 接辅助操作 发辅助操作
|
||||
this.assistOperateOrChange(model)
|
||||
} else if (model._type === 'SignalButton' && model.type === 'GUIDELOCK') {
|
||||
// 引导总锁
|
||||
if (model.labelEnum === 'S') {
|
||||
this.guideLockLeftButtonDown()
|
||||
} else if (model.labelEnum === 'X') {
|
||||
this.guideLockRightButtonDown()
|
||||
}
|
||||
} else if (model._type === 'SignalButton' && signalButtonOperation.includes(model.type)) {
|
||||
//总定总反单锁解锁单封解封
|
||||
if (model.type === 'LOCATE') {
|
||||
this.buttonDown(this.Switch.locate.button.operation, ['Switch', 'SwitchFault'])
|
||||
} else if (model.type === 'REVERSE') {
|
||||
this.buttonDown(this.Switch.reverse.button.operation, ['Switch', 'SwitchFault'])
|
||||
} else if (model.type === 'MONOLOCK') {
|
||||
this.buttonDown(this.Switch.lock.button.operation, ['Switch', 'SwitchFault'])
|
||||
} else if (model.type === 'UNLOCK') {
|
||||
this.buttonDown(this.Switch.unlock.button.operation, ['Switch', 'SwitchFault'])
|
||||
} else if (model.type === 'BLOCK') {
|
||||
this.buttonDown(this.Switch.block.button.operation, ['Switch', 'SwitchFault'])
|
||||
} else if (model.type === 'UNBLOCK') {
|
||||
this.buttonDown(this.Switch.unblock.button.operation, ['Switch', 'SwitchFault'])
|
||||
} else if (model.type === 'SECTION_FAULT_UNLOCK') {
|
||||
this.buttonDown(this.Section.fault.button.operation, ['Section'])
|
||||
}
|
||||
} else if (
|
||||
(model._type === 'SignalButton' && !this.checkSignalBlock(model.signalCode)) ||
|
||||
(model._type === 'Signal' && !model.blockade)
|
||||
|
@ -190,7 +190,8 @@ export default {
|
||||
this.signedId = activeUser.memberId;
|
||||
}
|
||||
},
|
||||
doShow() {
|
||||
async doShow() {
|
||||
await this.searchCmd(); // 补齐剧本指令,同cmdManage
|
||||
this.getSenderName();
|
||||
this.getSignedData();
|
||||
this.dialogShow = true;
|
||||
@ -245,6 +246,16 @@ export default {
|
||||
}).catch(error => {
|
||||
this.$messageBox('查询调度命令失败:' + error.message);
|
||||
});
|
||||
},
|
||||
searchCmd() {
|
||||
return new Promise((resolve, reject) => {
|
||||
sendCommandNew(this.group, 'CTC_QUERY_DISPATCH_COMMAND', {}).then((res) => {
|
||||
console.log(res, '---res----');
|
||||
resolve();
|
||||
}).catch(error => {
|
||||
reject(error.message);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -636,7 +636,7 @@ function getCTCDevicename(operationType) {
|
||||
deviceName = '车务终端 --> 调度命令';
|
||||
}
|
||||
} else if (operationType == 'CTC_READ_DISPATCH_COMMAND') {
|
||||
deviceName = '调度命令';
|
||||
deviceName = '车务终端 --> 调度命令';
|
||||
} else if (operationType == 'CTC_SIGN_DISPATCH_COMMAND') {
|
||||
deviceName = '车务终端 --> 调度命令';
|
||||
} else if (operationType == 'CTC_SEND_DISPATCH_COMMAND') {
|
||||
|
@ -87,7 +87,18 @@ export default {
|
||||
{ value: 'ACCIDENT', label: '事故按钮' },
|
||||
{ value: 'CHANGE_DIRECTION', label: '改方按钮' },
|
||||
{ value: 'RECOVERY', label: '复原按钮' },
|
||||
{ value: 'OCCLUSION', label: '闭塞按钮' }
|
||||
{ value: 'OCCLUSION', label: '闭塞按钮' },
|
||||
{ value: 'LOCATE', label: '总定位按钮' },
|
||||
{ value: 'REVERSE', label: '总反位按钮' },
|
||||
{ value: 'HUMAN_RELEASE_ROUTE', label: '总人解按钮' },
|
||||
{ value: 'CANCEL', label: '总取消按钮' },
|
||||
{ value: 'GUIDELOCK', label: '引导总锁按钮' },
|
||||
{ value: 'SECTION_FAULT_UNLOCK', label: '区故解按钮' },
|
||||
{ value: 'MONOLOCK', label: '单锁按钮' },
|
||||
{ value: 'UNLOCK', label: '单解按钮' },
|
||||
{ value: 'BLOCK', label: '单封按钮' },
|
||||
{ value: 'UNBLOCK', label: '解封按钮' },
|
||||
|
||||
],
|
||||
centralizedStationList: [], // 设备集中站列表
|
||||
directionList: [
|
||||
@ -314,7 +325,7 @@ export default {
|
||||
return this.editModel.type === 'FLEXIBLE'
|
||||
},
|
||||
isLinkDirection() {
|
||||
return ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION'].includes(
|
||||
return ['ASSIST', 'PICK_ASSIST', 'DEPART_ASSIST', 'ACCIDENT', 'CHANGE_DIRECTION', 'RECOVERY', 'OCCLUSION', 'GUIDELOCK'].includes(
|
||||
this.editModel.type
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user