69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
|
import Arc from 'zrender/src/graphic/shape/Arc';
|
||
|
import Group from 'zrender/src/container/Group';
|
||
|
import Text from 'zrender/src/graphic/Text';
|
||
|
|
||
|
/** 单个控制灯*/
|
||
|
export default class ESingleControl extends Group {
|
||
|
constructor(model) {
|
||
|
super();
|
||
|
this.model = model;
|
||
|
this.zlevel = model.zlevel;
|
||
|
this._subType = model._subType;
|
||
|
// this.z = model.z;
|
||
|
this.z = 20;
|
||
|
this._create(model);
|
||
|
}
|
||
|
|
||
|
_create(model) {
|
||
|
var _subType = 'ControlSignal';
|
||
|
var _val = '0';
|
||
|
if (model.pop) {
|
||
|
_subType = 'ControlButton';
|
||
|
_val = '1';
|
||
|
}
|
||
|
this.control = new Arc({
|
||
|
pop: model.pop,
|
||
|
_subType: _subType,
|
||
|
_val: _val,
|
||
|
zlevel: this.zlevel,
|
||
|
z: this.z,
|
||
|
shape: {
|
||
|
cx: model.point.x,
|
||
|
cy: model.point.y,
|
||
|
r: model.style.stationControlmodeR
|
||
|
},
|
||
|
style: {
|
||
|
lineWidth: 0.5,
|
||
|
fill: model.style.stationControlGrayColor,
|
||
|
stroke: model.style.stationControlGrayColor
|
||
|
}
|
||
|
});
|
||
|
|
||
|
this.text = new Text({
|
||
|
pop: model.pop,
|
||
|
_subType: _subType,
|
||
|
zlevel: this.zlevel,
|
||
|
z: this.z,
|
||
|
position: [0, 0],
|
||
|
style: {
|
||
|
x: model.point.x,
|
||
|
y: model.point.y + model.style.stationControlmodeR + model.style.nameDistance,
|
||
|
text: model.context,
|
||
|
textFill: model.style.textFontColor,
|
||
|
textFont: model.style.textFontSize + 'px ' + model.style.textFontFormat,
|
||
|
textAlign: 'middle',
|
||
|
textVerticalAlign: 'top'
|
||
|
}
|
||
|
});
|
||
|
|
||
|
this.add(this.control);
|
||
|
this.add(this.text);
|
||
|
}
|
||
|
|
||
|
setColor(color) {
|
||
|
if (color) {
|
||
|
this.control.setStyle('fill', color);
|
||
|
}
|
||
|
}
|
||
|
}
|