/* * lC区域控制模式 */ import Group from 'zrender/src/container/Group'; import EControl from '../element/EControl'; import EMouse from './EMouse'; export default class LcControl extends Group { constructor(model, style) { super(); this.z = 20; this._code = model.code; this._type = model._type; this.zlevel = model.zlevel; this.model = model; this.style = style; this.isShowShape = true; this.create(); this.createMouseEvent(); this.setState(model); } create() { const model = this.model; this.control = new EControl({ zlevel: this.zlevel, z: this.z, arc: { shape: { cx: model.position.x, cy: model.position.y, r: this.style.LcControl.lamp.radiusR }, subType: 'Control', lineWidth: 0, fill: this.style.LcControl.lamp.controlColor }, text: { position: [0, 0], x: model.position.x, y: model.position.y + this.style.LcControl.lamp.radiusR + this.style.LcControl.text.distance, fontWeight: this.style.LcControl.text.fontWeight, fontSize: this.style.LcControl.text.fontSize, fontFamily: this.style.fontFamily, text: model.name, textFill: '#fff', textAlign: 'middle', textVerticalAlign: 'top' }, style: this.style }); this.add(this.control); } // 设置状态 setState(model) { if (!this.isShowShape) return; } createMouseEvent() { if (this.style.LcControl.mouseOverStyle) { this.mouseEvent = new EMouse(this); this.add(this.mouseEvent); this.on('mouseout', (e) => { this.mouseEvent.mouseout(e); }); this.on('mouseover', (e) => { this.mouseEvent.mouseover(e); }); } } getShapeTipPoint() { if (this.control) { var distance = 2; var rect = this.control.getBoundingRect(); return { x: rect.x + rect.width / 2, y: rect.y - distance }; } return null; } setShowMode() {} setShowStation(stationCode) { if (!stationCode || this.model.stationCode === stationCode) { this.control.show(); this.isShowShape = true; this.setState(this.model); } else { this.control.hide(); this.isShowShape = false; } } }