import Line from 'zrender/src/graphic/shape/Line'; import Group from 'zrender/src/container/Group'; import { stat } from 'fs'; class Link extends Group { constructor({ _code, _type, zlevel, model, state }, style) { super(); this._code = _code; this._type = _type; this.zlevel = zlevel; this.model = model; this.state = state; this.style = style; this.create(); } create() { let model = this.model; let style = this.style; let textPosition = 'insideBottom'; if (model.beg.x !== model.end.x && model.beg.y !== model.end.y) { textPosition = model.beg.y > model.end.y ? 'insideLeft' : 'insideRight'; } this.link = new Line({ zlevel: this.zlevel, shape: { x1: model.beg.x, y1: model.beg.y, x2: model.end.x, y2: model.end.y, }, style: { lineWidth: style.Link.linkWidth, stroke: style.Link.linkColor, text: model.code, textDistance: style.Link.linkWidth * 2, textPosition: textPosition, textAlign: 'middle', fontSize: style.Global.textFontSize, textFill: style.Link.linkTextColor, textStroke: style.Global.backgroundColor, } }); this.add(this.link); } setStatus() { } tipBasePoint() { return { x: (this.link.shape.x1 + this.link.shape.x2) / 2, y: (this.link.shape.y1 + this.link.shape.y2) / 2 }; } } export default Link;