UNPKG

@alicloud/cloud-charts

Version:

![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200)

190 lines (180 loc) 6.39 kB
'use strict'; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.Line = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _Base2 = _interopRequireDefault(require("../common/Base")); var _errorWrap = _interopRequireDefault(require("../common/errorWrap")); var _themes = _interopRequireDefault(require("../themes")); var _common = require("../common/common"); var _guide = _interopRequireDefault(require("../common/guide")); var _rectXAxis = _interopRequireDefault(require("../common/rectXAxis")); var _rectYAxis = _interopRequireDefault(require("../common/rectYAxis")); var _autoTimeScale = _interopRequireDefault(require("../common/autoTimeScale")); var _rectTooltip = _interopRequireDefault(require("../common/rectTooltip")); var _rectLegend = _interopRequireDefault(require("../common/rectLegend")); var _legendFilter = _interopRequireDefault(require("../common/legendFilter")); var _rectZoom = _interopRequireDefault(require("../common/rectZoom")); var _rectSlider = _interopRequireDefault(require("../common/rectSlider")); var _drawLine = _interopRequireDefault(require("../common/drawLine")); var _ChartProvider = require("../ChartProvider"); require("./index.css"); var Line = exports.Line = /*#__PURE__*/function (_Base) { (0, _inheritsLoose2["default"])(Line, _Base); function Line() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _Base.call.apply(_Base, [this].concat(args)) || this; _this.chartName = 'G2Line'; return _this; } var _proto = Line.prototype; _proto.getDefaultConfig = function getDefaultConfig() { return { colors: _themes["default"].category_12, areaColors: [], xAxis: { type: 'time', // 默认为时间连续 mask: 'auto' // 上述type为time时,此字段生效 }, yAxis: { labelFormatter: null, // 可以强制覆盖,手动设置label max: null, min: null }, legend: { visible: true, align: 'left', nameFormatter: null // 可以强制覆盖,手动设置label }, tooltip: { titleFormatter: null, nameFormatter: null, valueFormatter: null, lockable: false }, area: false, stack: false, // 仅Area有效 spline: false, grid: false, symbol: false, zoom: false, label: false, step: null // TODO // mini: false, // dataConfig: { // nameKey: 'name', // valueKey: 'value', // // valueKey: ['value1', 'value2'], // typeKey: 'type' // } }; }; _proto.init = function init(chart, config, data) { var _this2 = this; var defs = { x: (0, _common.propertyAssign)(_common.propertyMap.axis, { type: 'time', // 折线图X轴的范围默认覆盖全部区域,保证没有空余 range: [0, 1] }, config.xAxis), type: { type: 'cat' } }; if (Array.isArray(config.yAxis)) { config.yAxis.forEach(function (axis, yIndex) { defs["y" + yIndex] = (0, _common.propertyAssign)(_common.propertyMap.axis, { type: 'linear', tickCount: 5, nice: true }, axis); }); } else { defs.y = (0, _common.propertyAssign)(_common.propertyMap.axis, { type: 'linear', tickCount: 5, nice: true }, config.yAxis); } (0, _autoTimeScale["default"])(defs, this.rawData, this.language || this.context.language); // rectAutoTickCount(chart, config, defs, false); chart.scale(defs); chart.data(data); // 如果开启标签或者标记点则需要留出右边的空余,尺寸需要通过计算获得 // 配置的scale和生成的会有不符合的地方 // 设置X轴 (0, _rectXAxis["default"])(this, chart, config); if (Array.isArray(config.yAxis)) { config.yAxis.forEach(function (axis, yIndex) { var yAxisConfig = { line: { style: { stroke: _themes["default"]['widgets-axis-line'] } } }; if (yIndex !== 0) { yAxisConfig.grid = null; } (0, _rectYAxis["default"])(_this2, chart, (0, _extends2["default"])({}, config, { yAxis: axis }), "y" + yIndex, yAxisConfig); }); } else { // 设置单个Y轴 (0, _rectYAxis["default"])(this, chart, config); } // 设置图例 (0, _rectLegend["default"])(this, chart, config, null, 'multiple', 'type'); (0, _legendFilter["default"])(this, chart); // tooltip的标记点配置 var markerOptions = { marker: { symbol: 'circle' } }; if (config.symbol && typeof config.symbol === 'object') { // 样式合并 markerOptions.marker = Object.assign(markerOptions.marker, config.symbol.geomStyle); // 图形 if (config.symbol.shape) { markerOptions.marker.symbol = config.symbol.shape; } // 大小 if (typeof config.symbol.size === 'number') { markerOptions.marker = Object.assign(markerOptions.marker, { r: config.symbol.size + 4, width: config.symbol.size + 4, height: config.symbol.size + 4 }); } } // tooltip (0, _rectTooltip["default"])(this, chart, config, markerOptions); // 绘制辅助线,辅助背景区域 (0, _guide["default"])(chart, config); if (Array.isArray(config.yAxis)) { config.yAxis.forEach(function (axis, yIndex) { (0, _drawLine["default"])(chart, config, "y" + yIndex); }); } else { (0, _drawLine["default"])(chart, config); } // 拖拽缩放 (0, _rectZoom["default"])(chart, config, (0, _ChartProvider.getText)('reset', this.language || this.context.language, this.context.locale)); // 缩略轴 (0, _rectSlider["default"])(chart, config); }; return Line; }(_Base2["default"]); /** Wline 折线图 */ var Wline = (0, _errorWrap["default"])(Line); var _default = exports["default"] = Wline;