UNPKG

@ued_fpi/data-visual

Version:

<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />

66 lines (63 loc) 2.47 kB
'use strict'; (function (H) { if (!H) return const each = H.each; const round = Math.round; const cos = Math.cos; const sin = Math.sin; const deg2rad = (Math.PI / 180) * 90; H.wrap(H.seriesTypes.pie.prototype, 'translate', function (proceed) { // eslint-disable-next-line prefer-rest-params proceed.apply(this, [].slice.call(arguments, 1)); // Do not do this if the chart is not 3D if (!this.chart.is3d()) return // 判断pieType === ‘2’,渲染高低不一的3d饼图 if (this.chart.options.pieType !== '2') return // eslint-disable-next-line @typescript-eslint/no-this-alias const series = this; const chart = series.chart; const options = chart.options; const seriesOptions = series.options; const depth = seriesOptions.depth || 0; const options3d = options.chart.options3d; const alpha = options3d.alpha; const beta = options3d.beta; let z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depth; z += depth / 2; if (seriesOptions.grouping !== false) z = 0; const eachFunction = function (point) { const shapeArgs = point.shapeArgs; let angle = null; point.shapeType = 'arc3d'; const ran = point.options.h; shapeArgs.z = z; shapeArgs.depth = depth * 0.75 + ran; shapeArgs.alpha = alpha; shapeArgs.beta = beta; shapeArgs.center = series.center; shapeArgs.ran = ran; angle = (shapeArgs.end + shapeArgs.start) / 2; point.slicedTranslation = { translateX: round( cos(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad) ), translateY: round( sin(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad) ), }; }; each(series.data, eachFunction); }); H.wrap(H.SVGRenderer.prototype, 'arc3dPath', function (proceed) { // Run original proceed method // eslint-disable-next-line prefer-rest-params const ret = proceed.apply(this, [].slice.call(arguments, 1)); ret.zTop = (ret.zOut + 0.5) / 100; return ret }); })(typeof Highcharts !== 'undefined' ? Highcharts : null);