rt-sim-training-client/src/jmapNew/shape/StationStand/EDetain.js

100 lines
3.2 KiB
JavaScript
Raw Normal View History

2019-11-29 12:51:58 +08:00
import Group from 'zrender/src/container/Group';
import Text from 'zrender/src/graphic/Text';
class EDetain extends Group {
constructor(model) {
super();
this.model = model;
this.isNew = false;
this.detain = null;
if (this.model.style.StationStand.common.special) {
this.create('E');
}
}
create(textName) {
if (!this.isNew) {
const model = this.model;
const style = this.model.style;
this.isNew = true;
if (style.StationStand.common.special) {
2020-02-04 11:25:21 +08:00
// inside true 内侧
2020-03-02 16:54:36 +08:00
const gag = 22;
const gagX = 6; // 左右间隔
2020-02-04 11:25:21 +08:00
let height = '';
let position = '';
if (model.right) {
if (model.inside) {
2020-03-02 16:54:36 +08:00
height = -gag;
position = -model.width / 4 - gagX;
2020-02-04 11:25:21 +08:00
} else {
2020-03-02 16:54:36 +08:00
height = gag;
position = model.width / 4 + gagX;
2020-02-04 11:25:21 +08:00
}
} else {
if (model.inside) {
2020-03-02 16:54:36 +08:00
height = gag;
position = model.width / 4 + gagX;
2020-02-04 11:25:21 +08:00
} else {
2020-03-02 16:54:36 +08:00
height = -gag;
position = -model.width / 4 - gagX;
2020-02-04 11:25:21 +08:00
}
}
this.detain = new Text({
zlevel: model.zlevel,
z: model.z,
position: [0, 0],
style: {
x: model.x + position,
y: model.y + height,
text: textName,
2020-03-02 16:54:36 +08:00
// textAlign: model.inside ? 'left' : 'right',
textAlign: 'center',
fontWeight: 'blod',
fontSize: `${style.StationStand.detainCar.fontSize} px ${style.fontFamily}`,
textFill: textName == 'E' ? '#fff' : 'red',
textVerticalAlign: 'middle'
}
});
this.add(this.detain);
} else {
this.detain = new Text({
zlevel: model.zlevel,
z: model.z,
position: [0, 0],
style: {
x: model.x,
y: model.y,
text: style.StationStand.detainCar.text,
textAlign: model.textAlign,
textVerticalAlign: model.textVerticalAlign,
fontSize: `${style.StationStand.stand.headFontSize} px ${style.fontFamily}`,
textFill: style.StationStand.detainCar.centerTrainColor,
textStroke: style.backgroundColor
}
});
this.add(this.detain);
}
}
}
setColor(color) {
this.create();
this.detain.setStyle('textFill', color);
}
hide() {
this.create();
this.detain.hide();
}
show() {
this.create('H');
this.detain.show();
}
2019-11-29 12:51:58 +08:00
}
export default EDetain;