UNPKG

chartx

Version:

Data Visualization Chart Library

208 lines (203 loc) 6.42 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _canvax = _interopRequireDefault(require("canvax")); var _tools = require("../../../utils/tools"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var _ = _canvax.default._, event = _canvax.default.event; var Line = _canvax.default.Shapes.Line; var Circle = _canvax.default.Shapes.Circle; var Polygon = _canvax.default.Shapes.Polygon; var polarGrid = exports.default = /*#__PURE__*/function (_event$Dispatcher) { function polarGrid(opt, app) { var _this; (0, _classCallCheck2.default)(this, polarGrid); _this = _callSuper(this, polarGrid, [opt, app]); _this.width = 0; _this.height = 0; _this.app = app; //该组件被添加到的目标图表项目, _this.pos = { x: 0, y: 0 }; _this.dataSection = []; _this.sprite = null; //总的sprite _this.induce = null; //最外层的那个网,用来触发事件 _.extend(true, _this, (0, _tools.getDefaultProps)(polarGrid.defaultProps()), opt); _this.init(opt); return _this; } (0, _inherits2.default)(polarGrid, _event$Dispatcher); return (0, _createClass2.default)(polarGrid, [{ key: "init", value: function init() { this.sprite = new _canvax.default.Display.Sprite(); } }, { key: "setX", value: function setX($n) { this.sprite.context.x = $n; } }, { key: "setY", value: function setY($n) { this.sprite.context.y = $n; } }, { key: "draw", value: function draw(opt) { _.extend(true, this, opt); this._widget(); this.setX(this.pos.x); this.setY(this.pos.y); } }, { key: "clean", value: function clean() { this.sprite.removeAllChildren(); } }, { key: "reset", value: function reset(opt) { /* this.sprite.removeAllChildren(); this.draw( opt ); */ } }, { key: "_widget", value: function _widget() { var me = this; _.each(this.dataSection, function (num, i) { if (num) { var r = me.app.getROfNum(num); var points = me.app.getPointsOfR(r); var ctx = { //lineType : me.ring.lineType, lineWidth: me.ring.lineWidth, strokeStyle: me._getStyle(me.ring.strokeStyle, i - 1), //me.ring.strokeStyle, fillStyle: me._getStyle(me.ring.fillStyle, i - 1), fillAlpha: me.ring.fillAlpha }; var _ring; var ringType = Circle; if (me.ring.shapeType == "circle") { ctx.r = r; _ring = new ringType({ context: ctx }); } else { ctx.pointList = []; _.each(points, function (point, i) { if (i < points.length) { ctx.pointList.push([point.x, point.y]); } }); ringType = Polygon; _ring = new ringType({ context: ctx }); } ; me.sprite.addChildAt(_ring, 0); if (i == me.dataSection.length - 1) { ctx.fillAlpha = 0; ctx.fillStyle = "#ffffff"; me.induce = new ringType({ context: ctx }); me.sprite.addChild(me.induce); } ; //绘制中心出发的蜘蛛网线 var aAxisLayoutData = []; _.each(points, function (point) { var _line = new Line({ context: { end: point, lineWidth: me.ring.lineWidth, strokeStyle: me.ring.strokeStyle } }); me.sprite.addChild(_line); }); } }); } }, { key: "_getStyle", value: function _getStyle(color, i) { if (_.isArray(color)) { return color[i % color.length]; } return color; } }], [{ key: "defaultProps", value: function defaultProps() { return { enabled: { detail: '是否开启grid', default: false }, ring: { detail: '环背景线', propertys: { shapeType: { detail: '线的图形样式,默认poly,可选circle', default: 'poly' }, lineType: { detail: '线条样式,sold实线,dashed虚线', default: 'sold' }, lineWidth: { detail: '线宽', default: 1 }, strokeStyle: { detail: '线颜色', default: '#e5e5e5' }, fillStyle: { detail: '环填充色,支持函数配置', default: null }, fillAlpha: { detail: '环填充的透明度', default: 0.5 } } }, ray: { detail: '射线', propertys: { enabled: { detail: '是否开启', default: true }, lineWidth: { detail: '线宽', default: 1 }, strokeStyle: { detail: '线颜色', default: '#e5e5e5' } } } }; } }]); }(event.Dispatcher);