增加文件
This commit is contained in:
parent
3dd126da3a
commit
fdc15d109e
78
src/jmap/shape/Switch/ESwCore.js
Normal file
78
src/jmap/shape/Switch/ESwCore.js
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import Group from 'zrender/src/container/Group';
|
||||||
|
import Line from 'zrender/src/graphic/shape/Line';
|
||||||
|
|
||||||
|
class ESwCore extends Group {
|
||||||
|
constructor(model) {
|
||||||
|
super();
|
||||||
|
this.model = model;
|
||||||
|
this._create();
|
||||||
|
}
|
||||||
|
|
||||||
|
_create() {
|
||||||
|
const model = this.model;
|
||||||
|
const style = this.model.style;
|
||||||
|
|
||||||
|
this.line = new Line({
|
||||||
|
zlevel: model.zlevel,
|
||||||
|
z: model.z,
|
||||||
|
silent: true,
|
||||||
|
shape: {
|
||||||
|
x1: model.intersectionX - model.coverLength,
|
||||||
|
y1: model.intersectionY,
|
||||||
|
x2: model.intersectionX + model.coverLength,
|
||||||
|
y2: model.intersectionY
|
||||||
|
},
|
||||||
|
style: {
|
||||||
|
lineWidth: model.switchWidth,
|
||||||
|
stroke: style.backgroundColor
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.skewLine = new Line({
|
||||||
|
zlevel: model.zlevel,
|
||||||
|
z: model.z,
|
||||||
|
silent: true,
|
||||||
|
shape: {
|
||||||
|
x1: model.intersectionX,
|
||||||
|
y1: model.intersectionY,
|
||||||
|
x2: model.intersectionX + model.triangle.drictx * model.triangle.getCotRate() * model.coverLength,
|
||||||
|
y2: model.intersectiony + model.triangle.dricty * model.coverLength
|
||||||
|
},
|
||||||
|
style: {
|
||||||
|
lineWidth: model.switchWidth,
|
||||||
|
stroke: style.backgroundColor
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.add(this.line);
|
||||||
|
this.add(this.skewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
hide() {
|
||||||
|
this.line.hide();
|
||||||
|
this.skewLine.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
show() {
|
||||||
|
this.line.show();
|
||||||
|
this.skewLine.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
setColor(color) {
|
||||||
|
this.line.setStyle('stroke', color);
|
||||||
|
this.skewLine.setStyle('stroke', color);
|
||||||
|
}
|
||||||
|
|
||||||
|
stopAnimation(flag) {
|
||||||
|
this.line.stopAnimation(flag);
|
||||||
|
this.skewLine.stopAnimation(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
animateStyle(cb) {
|
||||||
|
this.eachChild((child) => {
|
||||||
|
cb(child);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ESwCore;
|
91
src/jmap/shape/Switch/ESwName.js
Normal file
91
src/jmap/shape/Switch/ESwName.js
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
import Group from 'zrender/src/container/Group';
|
||||||
|
import Text from 'zrender/src/graphic/Text';
|
||||||
|
import Rect from 'zrender/src/graphic/shape/Rect';
|
||||||
|
|
||||||
|
class ESwName extends Group {
|
||||||
|
constructor(model) {
|
||||||
|
super();
|
||||||
|
this.model = model;
|
||||||
|
this._create();
|
||||||
|
}
|
||||||
|
|
||||||
|
_create() {
|
||||||
|
const model = this.model;
|
||||||
|
const style = this.model.style;
|
||||||
|
|
||||||
|
this.nameText = new Text({
|
||||||
|
zlevel: model.zlevel,
|
||||||
|
z: model.z + 3,
|
||||||
|
style: {
|
||||||
|
x: model.nameTextX,
|
||||||
|
y: model.nameTextY,
|
||||||
|
text: model.name,
|
||||||
|
textAlign: model.triangle.drictx === 1 ? 'left' : 'right',
|
||||||
|
textVerticalAlign: model.triangle.dricty === 1 ? 'top' : 'bottom',
|
||||||
|
textFont: style.textFontSize + 'px ' + style.textFontFormat,
|
||||||
|
textFill: style.Switch.switchTextLossColor
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const rect = this.nameText.getBoundingRect();
|
||||||
|
let textWidth = rect.width * 0.8;
|
||||||
|
if (model.triangle.drictx !== 1) {
|
||||||
|
rect.x += rect.width;
|
||||||
|
textWidth = -textWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.textRect = new Rect({
|
||||||
|
zlevel: model.zlevel,
|
||||||
|
z: model.z + 2,
|
||||||
|
silent: true,
|
||||||
|
shape: {
|
||||||
|
x: rect.x,
|
||||||
|
y: rect.y,
|
||||||
|
width: textWidth,
|
||||||
|
height: rect.height
|
||||||
|
},
|
||||||
|
style: {
|
||||||
|
lineWidth: 0,
|
||||||
|
lineDash: [3, 3],
|
||||||
|
stroke: style.Switch.switchTextBorderColor,
|
||||||
|
fill: style.transparentColor
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.arrowText = new Text({
|
||||||
|
zlevel: model.zlevel,
|
||||||
|
z: model.z,
|
||||||
|
style: {
|
||||||
|
x: model.arrowTextX,
|
||||||
|
y: model.arrowTextY,
|
||||||
|
text: `道岔区段名称: ${model.sectionName}`,
|
||||||
|
textFill: '#000',
|
||||||
|
textAlign: 'letf',
|
||||||
|
textFont: 10 + 'px consolas',
|
||||||
|
textPadding: 3,
|
||||||
|
textBackgroundColor: style.tipBackgroundColor
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.add(this.textRect);
|
||||||
|
this.add(this.nameText);
|
||||||
|
this.add(this.arrowText);
|
||||||
|
|
||||||
|
this.arrowText.hide();
|
||||||
|
model.nameShow ? this.nameText.show() : this.nameText.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
getArrowText() {
|
||||||
|
return this.arrowText;
|
||||||
|
}
|
||||||
|
|
||||||
|
getNameText() {
|
||||||
|
return this.nameText;
|
||||||
|
}
|
||||||
|
|
||||||
|
getTextRect() {
|
||||||
|
return this.textRect;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ESwName;
|
Loading…
Reference in New Issue
Block a user