rt-graphic-component/components/packages/Platform/THPlatform.js
joylink_zhaoerwei 910306d3bf 测试
2024-01-12 11:17:09 +08:00

122 lines
4.4 KiB
JavaScript

import { THConsts } from './common/PlatformConfig.js';
import { JlPlatform, DoorGraphic, CodeGraphic, LozengeGraphic } from './common/JlPlatform.js';
import { THStation } from '../Station/THStation.js';
class THPlatform extends JlPlatform {
doorGraphic;
codeGraphic;
lozengeGraphic;
constructor() {
super(THConsts);
this.doorGraphic = new DoorGraphic(THConsts);
this.addChild(this.doorGraphic);
this.codeGraphic = new CodeGraphic(THConsts);
this.addChild(this.codeGraphic);
this.lozengeGraphic = new LozengeGraphic(THConsts);
this.addChild(this.lozengeGraphic);
}
get states() {
return this.getStates();
}
doRepaint() {
this.rectGraphic.stateFillColor = THConsts.noTrainStop;
if (this.states.trainberth) {
this.rectGraphic.stateFillColor = THConsts.trainStop;
}
if (this.states.upSkipstop || this.states.downSkipstop) {
this.rectGraphic.stateFillColor = THConsts.trainJump;
}
const station = this.getGraphicApp().queryStore.queryByCodeAndType(this.states.rtuId > 9
? '' + this.states.rtuId
: '0' + this.states.rtuId, THStation.Type);
const doorGraphic = this.doorGraphic;
doorGraphic.stateFillColor = THConsts.doorGraphic.doorGreen;
if (!!station?.states.ipRtuStusDown) {
doorGraphic.stateFillColor = THConsts.doorGraphic.doorBlue;
}
else if (this.states.psdCut) {
doorGraphic.stateFillColor = THConsts.doorGraphic.doorRed;
}
super.draw();
this.doorGraphic.draw();
this.codeGraphic.draw();
this.lozengeGraphic.draw();
if (this.datas.direction == 'down') {
this.doorGraphic.changePosition(this.position);
this.codeGraphic.changePosition(this.position);
this.lozengeGraphic.changePosition(this.position);
}
//门的状态
if (this.datas.hasdoor) {
if (this.states.psdOpen) {
doorGraphic.doorCloseGraphic.visible = false;
}
else {
doorGraphic.doorCloseGraphic.visible = true;
}
}
if (this.states.emergstop) {
this.lozengeGraphic.lozenge.visible = true;
}
else {
this.lozengeGraphic.lozenge.visible = false;
}
//扣车
const codeGraphic = this.codeGraphic;
if (this.states.upHold ||
this.states.upOccHold ||
this.states.downHold ||
this.states.downOccHold) {
codeGraphic.character.text = 'H';
codeGraphic.character.visible = true;
codeGraphic.circle.visible = true;
//上行扣车
if (this.states.upHold) {
codeGraphic.character.style.fill = THConsts.codeGraphic.HCharYellow;
}
if (this.states.upOccHold) {
codeGraphic.character.style.fill = THConsts.codeGraphic.HCharWhite;
}
if (this.states.upHold && this.states.upOccHold) {
codeGraphic.character.style.fill = THConsts.codeGraphic.HCharRed;
}
//下行扣车
if (this.states.downHold) {
codeGraphic.character.style.fill = THConsts.codeGraphic.HCharYellow;
}
if (this.states.downOccHold) {
codeGraphic.character.style.fill = THConsts.codeGraphic.HCharWhite;
}
if (this.states.downHold && this.states.downOccHold) {
codeGraphic.character.style.fill = THConsts.codeGraphic.HCharRed;
}
}
//运行等级
if (this.states.nextSectionRunLevel) {
codeGraphic.runLevel.visible = false;
codeGraphic.runLevel.text = this.states.nextSectionRunLevel;
}
//运行时间
if (this.states.nextSectionRunTime) {
codeGraphic.runTime.visible = true;
codeGraphic.runTime.text = this.states.nextSectionRunTime;
}
//停站时间
if (this.states.stopTime) {
codeGraphic.stopTime.visible = true;
codeGraphic.stopTime.text = this.states.stopTime;
}
}
buildRelation() {
super.buildCommonRelation();
}
saveRelations() {
super.saveCommonRelations();
}
loadRelations() {
super.loadCommonRelations();
}
}
export { THPlatform };