bytev-charts
Version:
基于echarts和JavaScript及ES6封装的一个可以直接调用的图表组件库,内置主题设计,简单快捷,且支持用户自定义配置; npm 安装方式: npm install bytev-charts 若启动提示还需额外install插件,则运行 npm install @babel/runtime-corejs2 即可;
167 lines (134 loc) • 7.56 kB
JavaScript
import _Reflect$construct from "@babel/runtime-corejs2/core-js/reflect/construct";
import _classCallCheck from "@babel/runtime-corejs2/helpers/classCallCheck";
import _createClass from "@babel/runtime-corejs2/helpers/createClass";
import _assertThisInitialized from "@babel/runtime-corejs2/helpers/assertThisInitialized";
import _get from "@babel/runtime-corejs2/helpers/get";
import _inherits from "@babel/runtime-corejs2/helpers/inherits";
import _possibleConstructorReturn from "@babel/runtime-corejs2/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime-corejs2/helpers/getPrototypeOf";
import _defineProperty from "@babel/runtime-corejs2/helpers/defineProperty";
import "core-js/modules/es.array.for-each.js";
import "core-js/modules/es.object.to-string.js";
import "core-js/modules/web.dom-collections.for-each.js";
import "core-js/modules/es.regexp.exec.js";
import "core-js/modules/es.string.replace.js";
import "core-js/modules/web.timers.js";
import _JSON$stringify from "@babel/runtime-corejs2/core-js/json/stringify";
import _Object$assign from "@babel/runtime-corejs2/core-js/object/assign";
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
import DoughnutLeftRightComponent from "../DoughnutLeftRightComponent.class.js";
/*
* 细阴影环形饼图
* */
var DoughnutThinShadow = /*#__PURE__*/function (_DoughnutLeftRightCom) {
_inherits(DoughnutThinShadow, _DoughnutLeftRightCom);
var _super = _createSuper(DoughnutThinShadow);
function DoughnutThinShadow(element, option) {
var _this;
_classCallCheck(this, DoughnutThinShadow);
_this = _super.call(this, element, option);
_defineProperty(_assertThisInitialized(_this), "name", 'DoughnutThinShadow');
return _this;
}
_createClass(DoughnutThinShadow, [{
key: "buildByteVModel",
value: function buildByteVModel() {
var _this$byteVModel;
_get(_getPrototypeOf(DoughnutThinShadow.prototype), "buildByteVModel", this).call(this); //切换皮肤时判断之前是否有自定义radius
var radius = ((_this$byteVModel = this.byteVModel) === null || _this$byteVModel === void 0 ? void 0 : _this$byteVModel.radius) || '';
this.byteVModel.radius = radius ? radius : this.theme.series.doughnutThinShadowRadius;
}
}, {
key: "setRaidusByOption",
value: function setRaidusByOption() {
_get(_getPrototypeOf(DoughnutThinShadow.prototype), "setRadiusByOption", this).call(this);
this.theme.series.convertDoughnutThinShadowRadius(this.byteVModel.radius);
}
}, {
key: "setData",
value: function setData(data) {
var _this2 = this;
_get(_getPrototypeOf(DoughnutThinShadow.prototype), "setData", this).call(this, data); // //外圈
// let arr = []
// //阴影内圈
// let arr2 = []
//
// //获取添加了分割线样式的环形图数据
// arr = this.buildDoughnutSpilt2Data(data, (item, index)=>{
// let obj2 = JSON.parse(JSON.stringify(item))
// delete obj2.emphasis
// obj2.itemStyle = {
// color: this.byteVModel.color[index % this.byteVModel.color.length] + '60'
// }
// arr2.push(obj2, {
// value: 0,
// name: item.name,
// cursor: "auto",
// itemStyle: {
// color: 'transparent'
// }
// })
// })
//外圈
var arr = this.buildDoughnutSpilt2Data(data); //阴影内圈
var arr2 = JSON.parse(_JSON$stringify(arr));
arr2.forEach(function (m, i) {
if (!m.spilt) {
m.itemStyle = {
color: _this2.byteVModel.color[(i % 2 ? i : i / 2) % _this2.byteVModel.color.length] + '60'
};
}
});
this.theme.series.doughnutThinShadow.data = arr;
this.theme.series.doughnutThinShadowEmptyCircle.emphasis = this.theme.series.doughnutThinShadow.emphasis;
this.theme.series.doughnutThinShadowEmptyCircle.data = arr2;
this.byteVModel.series.push(this.theme.series.doughnutThinShadow, this.theme.series.doughnutThinShadowEmptyCircle);
this.setCenterByOption(this.byteVModel.series);
this.setRaidusByOption(this.byteVModel.series);
this.componentInstance.setOption(this.byteVModel, true);
this.playAnimation(false);
}
}, {
key: "playAnimation",
value: function playAnimation() {
var _this3 = this;
var play = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
_get(_getPrototypeOf(DoughnutThinShadow.prototype), "playAnimation", this).call(this); //中间旋转的装饰渐变圆环和渐变圆形
this.theme.series.doughnutInnerRotatingGradientDoughnut.center = this.theme.series.doughnutInnerRotatingGradientCircle.center = this.theme.series.doughnutThinShadow.center;
this.theme.series.doughnutInnerRotatingGradientDoughnut.radius.forEach(function (itm, idx) {
_this3.theme.series.doughnutInnerRotatingGradientDoughnut.radius[idx] = _this3.theme.series.doughnutThinShadowEmptyCircle.radius[0].replace('%', '') - (idx ? 5.5 : 7) + '%';
_this3.theme.series.doughnutInnerRotatingGradientCircle.radius[idx] = idx ? _this3.theme.series.doughnutThinShadowEmptyCircle.radius[0].replace('%', '') - 7.5 + '%' : 0;
});
this.theme.series.doughnutInnerRotatingGradientDoughnut.startAngle = this.theme.series.doughnutInnerRotatingGradientCircle.startAngle = 0;
var series = [JSON.parse(_JSON$stringify(this.theme.series.doughnutInnerRotatingGradientDoughnut)), JSON.parse(_JSON$stringify(this.theme.series.doughnutInnerRotatingGradientCircle))];
this.setCenterByOption(series);
this.animationInstance.setOption({
animationDuration: 1,
series: series
});
if (!play) {
window.ByteVChartsInterval.remove(this.componentInstance.id);
return;
} //周期定时旋转装饰圆环和装饰圆形
var clxyaI = 0;
setTimeout(function () {
window.ByteVChartsInterval.add(_this3.componentInstance.id, function () {
var opt = _this3.animationInstance.getOption();
_Object$assign(opt.series[0].itemStyle.color, _this3.theme.colorLinearXYArr[clxyaI]);
_Object$assign(opt.series[1].itemStyle.color, _this3.theme.colorLinearXYArr[clxyaI]);
_this3.animationInstance.setOption(opt);
clxyaI = (clxyaI + 1) % _this3.theme.colorLinearXYArr.length;
}, 200);
}, this.theme.animationDuration * .6);
}
}, {
key: "offAnimation",
value: function offAnimation() {
_get(_getPrototypeOf(DoughnutThinShadow.prototype), "offAnimation", this).call(this);
this.playAnimation(false);
}
}]);
return DoughnutThinShadow;
}(DoughnutLeftRightComponent);
export { DoughnutThinShadow as default };