onesight-charts 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/components/download-image/demo/index.js +22 -0
  2. package/dist/components/download-image/index.js +63 -0
  3. package/dist/components/download-image/index.scss +64 -0
  4. package/dist/components/icon/iconfont.css +23 -0
  5. package/dist/components/icon/iconfont.ttf +0 -0
  6. package/dist/components/icon/iconfont.woff +0 -0
  7. package/dist/components/icon/iconfont.woff2 +0 -0
  8. package/dist/components/icon/index.js +16 -0
  9. package/dist/components/line/demo.js +2 -2
  10. package/dist/components/line/index.js +1 -2
  11. package/dist/components/pie/demo/demo.js +22 -0
  12. package/dist/components/pie/demo/legendDemo.js +24 -0
  13. package/dist/components/pie/demo/orderDemo.js +25 -0
  14. package/dist/components/pie/demo/paginationDemo.js +73 -0
  15. package/dist/components/pie/demo/tooltipDemo.js +24 -0
  16. package/dist/components/pie/index.js +145 -43
  17. package/dist/components/pie/legend/index.js +134 -0
  18. package/dist/components/pie/legend/style.scss +125 -0
  19. package/dist/components/pie/pagination/index.js +43 -0
  20. package/dist/components/pie/pagination/style.scss +45 -0
  21. package/dist/components/pie/style.scss +85 -0
  22. package/dist/components/pie/tooltipConfig.js +43 -0
  23. package/dist/umd/onesight-charts.min.js +1 -1
  24. package/dist/utils/chartUtils.js +39 -1
  25. package/dist/utils/common.js +42 -0
  26. package/lib/components/download-image/demo/index.js +53 -0
  27. package/lib/components/download-image/index.js +71 -0
  28. package/lib/components/download-image/index.scss +64 -0
  29. package/lib/components/icon/iconfont.css +23 -0
  30. package/lib/components/icon/iconfont.ttf +0 -0
  31. package/lib/components/icon/iconfont.woff +0 -0
  32. package/lib/components/icon/iconfont.woff2 +0 -0
  33. package/lib/components/icon/index.js +33 -0
  34. package/lib/components/line/index.js +1 -2
  35. package/lib/components/pie/demo/demo.js +56 -0
  36. package/lib/components/pie/demo/legendDemo.js +56 -0
  37. package/lib/components/pie/demo/orderDemo.js +57 -0
  38. package/lib/components/pie/demo/paginationDemo.js +116 -0
  39. package/lib/components/pie/demo/tooltipDemo.js +56 -0
  40. package/lib/components/pie/index.js +115 -45
  41. package/lib/components/pie/legend/index.js +153 -0
  42. package/lib/components/pie/legend/style.scss +125 -0
  43. package/lib/components/pie/pagination/index.js +60 -0
  44. package/lib/components/pie/pagination/style.scss +45 -0
  45. package/lib/components/pie/style.scss +85 -0
  46. package/lib/components/pie/tooltipConfig.js +88 -0
  47. package/lib/utils/chartUtils.js +36 -2
  48. package/lib/utils/common.js +62 -0
  49. package/package.json +3 -1
  50. package/dist/components/pie/index.scss +0 -5
  51. package/dist/components/tooltip/demo/line-chart.js +0 -908
  52. package/dist/components/tooltip/index.js +0 -128
  53. package/dist/components/tooltip/index.scss +0 -5
  54. package/lib/components/pie/index.scss +0 -5
  55. package/lib/components/tooltip/demo/line-chart.js +0 -1020
  56. package/lib/components/tooltip/index.js +0 -156
  57. package/lib/components/tooltip/index.scss +0 -5
@@ -0,0 +1,22 @@
1
+ import { useRef } from 'react';
2
+ import Line from "../../line";
3
+ import DownloadImage from "../index.jsx";
4
+ var xAxis = ['07/25', '07/26', '07/27', '07/28', '07/29', '07/30', '07/31'];
5
+ var seriesData = {
6
+ Facebook: [1002, 831, 960, 750, 1451, 1717, 903],
7
+ X: [22094, 20075, 17410, 12374, 13413, 13904, 6895]
8
+ };
9
+ export default (function () {
10
+ var dimensionDOM = useRef(); // 提及趋势 DOM
11
+
12
+ return /*#__PURE__*/React.createElement("div", {
13
+ ref: dimensionDOM
14
+ }, /*#__PURE__*/React.createElement(Line, {
15
+ xAxis: xAxis,
16
+ seriesData: seriesData
17
+ }), /*#__PURE__*/React.createElement(DownloadImage, {
18
+ loading: false,
19
+ DOM: dimensionDOM,
20
+ fileName: "download-chart"
21
+ }));
22
+ });
@@ -0,0 +1,63 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { Dropdown, Menu } from 'antd';
8
+ import domtoimage from 'dom-to-image';
9
+ import React, { useState } from 'react';
10
+ // import { useIntl } from 'umi';
11
+ import { DownloadFile } from "../../utils/common";
12
+ import "./index.scss";
13
+ function DownloadImage(_ref) {
14
+ var Loading = _ref.Loading,
15
+ DOM = _ref.DOM,
16
+ FileName = _ref.FileName;
17
+ // const { formatMessage } = useIntl();
18
+ var _useState = useState(false),
19
+ _useState2 = _slicedToArray(_useState, 2),
20
+ visiable = _useState2[0],
21
+ setVisiable = _useState2[1];
22
+ // 导出csv 和 png图片
23
+ var handleMenuFn = function handleMenuFn(value) {
24
+ if (Loading) {
25
+ return false;
26
+ }
27
+ if (value.key === 'csv') {
28
+ console.log(value, 'csv');
29
+ } else {
30
+ setVisiable(false);
31
+ setTimeout(function () {
32
+ domtoimage.toPng(DOM.current).then(function (dataUrl) {
33
+ DownloadFile(dataUrl, FileName ? FileName : 'filename');
34
+ }).catch(function (error) {
35
+ console.error('oops, something went wrong!', error);
36
+ });
37
+ }, 500);
38
+ }
39
+ };
40
+ return /*#__PURE__*/React.createElement("div", {
41
+ className: "dropdown_wrap"
42
+ }, /*#__PURE__*/React.createElement(Dropdown, {
43
+ getPopupContainer: function getPopupContainer(triggerNode) {
44
+ return triggerNode.parentElement;
45
+ },
46
+ visiable: true,
47
+ overlay: /*#__PURE__*/React.createElement(Menu, {
48
+ className: "dropdown_wrap_menu",
49
+ onClick: handleMenuFn
50
+ }, /*#__PURE__*/React.createElement(Menu.Item, {
51
+ key: "png"
52
+ }, /*#__PURE__*/React.createElement("a", null, /*#__PURE__*/React.createElement("i", {
53
+ className: "iconfont iconPNG"
54
+ })))),
55
+ trigger: ['click'],
56
+ placement: "topRight"
57
+ }, /*#__PURE__*/React.createElement("a", {
58
+ className: "common-btn common-more a-common-more ant-dropdown-trigger"
59
+ }, /*#__PURE__*/React.createElement("i", {
60
+ className: "iconfont icongengduo3"
61
+ }))));
62
+ }
63
+ export default DownloadImage;
@@ -0,0 +1,64 @@
1
+ .dropdown_wrap {
2
+ .dropdown_wrap_menu {
3
+ z-index: 100;
4
+ padding: 8px 8px 4px;
5
+ min-width: 120px;
6
+ border: 1px solid #dddddd;
7
+ box-shadow: 0 4px 20px 0 rgb(0 0 0 / 8%);
8
+ border-radius: 8px;
9
+
10
+ li {
11
+ padding: 0px 8px !important;
12
+ height: 32px;
13
+ border-radius: 6px;
14
+ margin-bottom: 4px;
15
+ font-weight: bold;
16
+ font-size: 14px;
17
+ color: #273333;
18
+ }
19
+
20
+ a > i {
21
+ margin-right: 8px;
22
+ }
23
+
24
+ .disabled {
25
+ background-color: #ffffff;
26
+ color: #ccc;
27
+
28
+ &:hover {
29
+ background-color: #f3f4f4;
30
+ }
31
+ }
32
+ }
33
+
34
+ .common-more {
35
+ width: 32px;
36
+ height: 32px;
37
+ }
38
+
39
+ .iconXLS,
40
+ .iconPNG {
41
+ font-size: 14px;
42
+ margin-right: 4px;
43
+ margin-top: -2px;
44
+ }
45
+
46
+ .icongengduo2 {
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: 32px;
51
+ height: 32px;
52
+ background: #ffffff;
53
+ border: 1px solid #dddddd;
54
+ border-radius: 8px;
55
+ cursor: pointer;
56
+ }
57
+
58
+ &:hover {
59
+ .icongengduo2 {
60
+ color: #1da9a0;
61
+ border-color: #1da9a0;
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,23 @@
1
+ @font-face {
2
+ font-family: "iconfont"; /* Project id 4645053 */
3
+ src: url('iconfont.woff2?t=1722927505240') format('woff2'),
4
+ url('iconfont.woff?t=1722927505240') format('woff'),
5
+ url('iconfont.ttf?t=1722927505240') format('truetype');
6
+ }
7
+
8
+ .iconfont {
9
+ font-family: "iconfont" !important;
10
+ font-size: 16px;
11
+ font-style: normal;
12
+ -webkit-font-smoothing: antialiased;
13
+ -moz-osx-font-smoothing: grayscale;
14
+ }
15
+
16
+ .icon-left:before {
17
+ content: "\e60b";
18
+ }
19
+
20
+ .icon-right:before {
21
+ content: "\e60c";
22
+ }
23
+
@@ -0,0 +1,16 @@
1
+ import "./iconfont.css";
2
+ function Icon(_ref) {
3
+ var name = _ref.name,
4
+ size = _ref.size,
5
+ color = _ref.color,
6
+ className = _ref.className;
7
+ var style = {
8
+ fontSize: size,
9
+ color: color
10
+ };
11
+ return /*#__PURE__*/React.createElement("i", {
12
+ className: "iconfont ".concat(name, " ").concat(className || ''),
13
+ style: style
14
+ });
15
+ }
16
+ export default Icon;
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
- import LineChart from "./index.jsx";
2
+ import Line from "./index.jsx";
3
3
  var xAxis = ['07/25', '07/26', '07/27', '07/28', '07/29', '07/30', '07/31'];
4
4
  var seriesData = {
5
5
  Facebook: [1002, 831, 960, 750, 1451, 1717, 903],
6
6
  X: [22094, 20075, 17410, 12374, 13413, 13904, 6895]
7
7
  };
8
8
  export default (function () {
9
- return /*#__PURE__*/React.createElement(LineChart, {
9
+ return /*#__PURE__*/React.createElement(Line, {
10
10
  xAxis: xAxis,
11
11
  seriesData: seriesData
12
12
  });
@@ -29,7 +29,6 @@ function Line(props) {
29
29
  }, [seriesData]);
30
30
  var seriesTotal = legendValue ? calculateSeriesTotal(seriesData) : {};
31
31
  var ceartChart = function ceartChart() {
32
- var chartColor = color || defaultChartColors;
33
32
  var myChart = echarts.init(chartRef.current, null, {
34
33
  renderer: 'svg'
35
34
  });
@@ -93,7 +92,7 @@ function Line(props) {
93
92
  }
94
93
  },
95
94
  tooltip: tooltipConfig,
96
- color: chartColor,
95
+ color: color || defaultChartColors,
97
96
  animation: false,
98
97
  grid: {
99
98
  top: '24px',
@@ -0,0 +1,22 @@
1
+ import Pie from "../index.jsx";
2
+ var seriesData = [{
3
+ name: '积极',
4
+ value: 30,
5
+ percentage: 0.3659,
6
+ color: '#1DA9A0'
7
+ }, {
8
+ name: '消极',
9
+ value: 8,
10
+ percentage: 0.0976,
11
+ color: '#EE6666'
12
+ }, {
13
+ name: '中性',
14
+ value: 44,
15
+ percentage: 0.5365,
16
+ color: '#bbbbbb'
17
+ }];
18
+ export default (function () {
19
+ return /*#__PURE__*/React.createElement(Pie, {
20
+ seriesData: seriesData
21
+ });
22
+ });
@@ -0,0 +1,24 @@
1
+ import Pie from "../index.jsx";
2
+ var seriesData = [{
3
+ name: '积极',
4
+ value: 30,
5
+ percentage: 0.3659,
6
+ color: '#1DA9A0'
7
+ }, {
8
+ name: '消极',
9
+ value: 8,
10
+ percentage: 0.0976,
11
+ color: '#EE6666'
12
+ }, {
13
+ name: '中性',
14
+ value: 44,
15
+ percentage: 0.5365,
16
+ color: '#bbbbbb'
17
+ }];
18
+ export default (function () {
19
+ return /*#__PURE__*/React.createElement(Pie, {
20
+ seriesData: seriesData,
21
+ legendNumShow: false,
22
+ legendPerShow: false
23
+ });
24
+ });
@@ -0,0 +1,25 @@
1
+ import Pie from "../index.jsx";
2
+ var seriesData = [{
3
+ name: '积极',
4
+ value: 30,
5
+ percentage: 0.3659,
6
+ color: '#1DA9A0'
7
+ }, {
8
+ name: '消极',
9
+ value: 8,
10
+ percentage: 0.0976,
11
+ color: '#EE6666'
12
+ }, {
13
+ name: '中性',
14
+ value: 44,
15
+ percentage: 0.5365,
16
+ color: '#bbbbbb'
17
+ }];
18
+ var order = ['积极', '消极', '中性'];
19
+ export default (function () {
20
+ return /*#__PURE__*/React.createElement(Pie, {
21
+ seriesData: seriesData,
22
+ order: order,
23
+ id: "orderId"
24
+ });
25
+ });
@@ -0,0 +1,73 @@
1
+ import Pie from "../index.jsx";
2
+ var seriesData = [{
3
+ name: '积极',
4
+ value: 30,
5
+ percentage: 0.3659,
6
+ color: '#1DA9A0'
7
+ }, {
8
+ name: '消极',
9
+ value: 8,
10
+ percentage: 0.0976,
11
+ color: '#EE6666'
12
+ }, {
13
+ name: '中性',
14
+ value: 44,
15
+ percentage: 0.5365,
16
+ color: '#bbbbbb'
17
+ }, {
18
+ name: '兴奋',
19
+ value: 15,
20
+ percentage: 0.1829,
21
+ color: '#91CC75'
22
+ }, {
23
+ name: '失望',
24
+ value: 6,
25
+ percentage: 0.0732,
26
+ color: '#FAC858'
27
+ }, {
28
+ name: '惊讶',
29
+ value: 10,
30
+ percentage: 0.122,
31
+ color: '#73C0DE'
32
+ }, {
33
+ name: '愤怒',
34
+ value: 5,
35
+ percentage: 0.061,
36
+ color: '#FC8452'
37
+ }, {
38
+ name: '满意',
39
+ value: 20,
40
+ percentage: 0.2439,
41
+ color: '#9A60B4'
42
+ }, {
43
+ name: '困惑',
44
+ value: 7,
45
+ percentage: 0.0854,
46
+ color: '#EA7CCC'
47
+ }, {
48
+ name: '期待',
49
+ value: 12,
50
+ percentage: 0.1463,
51
+ color: '#5470C6'
52
+ }, {
53
+ name: '担忧',
54
+ value: 9,
55
+ percentage: 0.1098,
56
+ color: '#FF9A7A'
57
+ }, {
58
+ name: '平静',
59
+ value: 18,
60
+ percentage: 0.2195,
61
+ color: '#7ED3F4'
62
+ }, {
63
+ name: '好奇',
64
+ value: 11,
65
+ percentage: 0.1341,
66
+ color: '#C1232B'
67
+ }];
68
+ export default (function () {
69
+ return /*#__PURE__*/React.createElement(Pie, {
70
+ seriesData: seriesData,
71
+ legendNumber: 5
72
+ });
73
+ });
@@ -0,0 +1,24 @@
1
+ import Pie from "../index.jsx";
2
+ var seriesData = [{
3
+ name: '积极',
4
+ value: 30,
5
+ percentage: 0.3659,
6
+ color: '#1DA9A0'
7
+ }, {
8
+ name: '消极',
9
+ value: 8,
10
+ percentage: 0.0976,
11
+ color: '#EE6666'
12
+ }, {
13
+ name: '中性',
14
+ value: 44,
15
+ percentage: 0.5365,
16
+ color: '#bbbbbb'
17
+ }];
18
+ export default (function () {
19
+ return /*#__PURE__*/React.createElement(Pie, {
20
+ seriesData: seriesData,
21
+ tooltipName: "\u6570\u91CF",
22
+ tooltipPerShow: false
23
+ });
24
+ });
@@ -1,25 +1,121 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
4
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1
11
  import * as echarts from 'echarts';
2
- import { useEffect } from 'react';
3
- import "./index.scss";
4
- export default function Pie() {
5
- var chartID = 'chart-pie';
12
+ import { useEffect, useRef, useState } from 'react';
13
+ import { dealSort, numberFormatNull, sumValues, transformedSeriesData } from "../../utils/chartUtils";
14
+ import { defaultChartColors } from "../../utils/colors";
15
+ import Legend from "./legend";
16
+ import "./style.scss";
17
+ import { createCustomTooltip } from "./tooltipConfig";
18
+ function Pie(props) {
19
+ var _props$id = props.id,
20
+ id = _props$id === void 0 ? 'pieId' : _props$id,
21
+ _props$width = props.width,
22
+ width = _props$width === void 0 ? '222px' : _props$width,
23
+ _props$height = props.height,
24
+ height = _props$height === void 0 ? '320px' : _props$height,
25
+ color = props.color,
26
+ _props$valueType = props.valueType,
27
+ valueType = _props$valueType === void 0 ? 'value' : _props$valueType,
28
+ _props$seriesData = props.seriesData,
29
+ seriesData = _props$seriesData === void 0 ? [] : _props$seriesData,
30
+ _props$radius = props.radius,
31
+ radius = _props$radius === void 0 ? [70, 95] : _props$radius,
32
+ emphasisRich = props.emphasisRich,
33
+ _props$tooltipNumShow = props.tooltipNumShow,
34
+ tooltipNumShow = _props$tooltipNumShow === void 0 ? true : _props$tooltipNumShow,
35
+ _props$tooltipPerShow = props.tooltipPerShow,
36
+ tooltipPerShow = _props$tooltipPerShow === void 0 ? true : _props$tooltipPerShow,
37
+ _props$centerShow = props.centerShow,
38
+ centerShow = _props$centerShow === void 0 ? true : _props$centerShow,
39
+ _props$centerName = props.centerName,
40
+ centerName = _props$centerName === void 0 ? '提及数' : _props$centerName,
41
+ _props$tooltipShow = props.tooltipShow,
42
+ tooltipShow = _props$tooltipShow === void 0 ? true : _props$tooltipShow,
43
+ _props$tooltipName = props.tooltipName,
44
+ tooltipName = _props$tooltipName === void 0 ? '提及数' : _props$tooltipName,
45
+ _props$legendPerShow = props.legendPerShow,
46
+ legendPerShow = _props$legendPerShow === void 0 ? true : _props$legendPerShow,
47
+ _props$legendNumShow = props.legendNumShow,
48
+ legendNumShow = _props$legendNumShow === void 0 ? true : _props$legendNumShow,
49
+ _props$legendNumber = props.legendNumber,
50
+ legendNumber = _props$legendNumber === void 0 ? 10 : _props$legendNumber,
51
+ order = props.order,
52
+ handleClick = props.handleClick;
53
+ var chartRef = useRef();
54
+ var chart = useRef(null);
55
+ var currentPage = useRef(1);
56
+ var _useState = useState([]),
57
+ _useState2 = _slicedToArray(_useState, 2),
58
+ legendData = _useState2[0],
59
+ setLegendData = _useState2[1];
6
60
  useEffect(function () {
7
61
  ceartChart();
8
- }, []);
62
+ }, [JSON.stringify(seriesData)]);
63
+ var chartColor = color || defaultChartColors;
9
64
  var ceartChart = function ceartChart() {
10
- var myChart = echarts.init(document.getElementById(chartID), null, {
65
+ var myChart = echarts.init(chartRef.current, null, {
11
66
  renderer: 'svg'
12
67
  });
68
+ chart.current = myChart;
69
+ dealSort(seriesData, order);
70
+ var dealData = transformedSeriesData(JSON.parse(JSON.stringify(seriesData)));
71
+ dealData.forEach(function (item) {
72
+ if (item.value === 0) {
73
+ item.value = -1;
74
+ }
75
+ });
76
+ var tooltipConfig = createCustomTooltip({
77
+ tooltipShow: tooltipShow,
78
+ chartColor: chartColor,
79
+ seriesData: seriesData,
80
+ tooltipPerShow: tooltipPerShow,
81
+ tooltipNumShow: tooltipNumShow,
82
+ valueType: valueType,
83
+ tooltipName: tooltipName
84
+ });
85
+ var total = sumValues(seriesData);
13
86
  var option = {
14
- tooltip: {
15
- show: false,
16
- className: 'pie-tooltip',
17
- trigger: 'item',
18
- padding: 0
87
+ title: {
88
+ show: centerShow,
89
+ text: numberFormatNull(total),
90
+ textStyle: {
91
+ fontSize: 24,
92
+ fontWeight: 700,
93
+ fontFamily: '思源黑体 Bold',
94
+ color: '#273333'
95
+ },
96
+ left: 'center',
97
+ top: '41%'
98
+ },
99
+ graphic: {
100
+ elements: [{
101
+ type: 'text',
102
+ left: 'center',
103
+ top: '54%',
104
+ style: {
105
+ text: centerName,
106
+ fontSize: 14,
107
+ fontWeight: 500,
108
+ fontFamily: '思源黑体 Bold',
109
+ fill: '#364141',
110
+ opacity: centerShow ? 1 : 0
111
+ }
112
+ }]
19
113
  },
114
+ color: chartColor,
115
+ tooltip: tooltipConfig,
20
116
  series: [{
21
117
  type: 'pie',
22
- radius: [70, 95],
118
+ radius: radius,
23
119
  itemStyle: {
24
120
  borderColor: '#fff',
25
121
  borderWidth: 2
@@ -31,10 +127,10 @@ export default function Pie() {
31
127
  emphasis: {
32
128
  label: {
33
129
  show: true,
34
- formatter: function formatter() {
130
+ formatter: function formatter(res) {
35
131
  return '';
36
132
  },
37
- rich: {
133
+ rich: emphasisRich || {
38
134
  n: {
39
135
  height: 40,
40
136
  padding: [0, 0, 12, 0],
@@ -55,40 +151,46 @@ export default function Pie() {
55
151
  }
56
152
  }
57
153
  },
58
- data: [{
59
- value: 5325,
60
- name: 'positive',
61
- proportion: 0.0595,
62
- type: 1,
63
- itemStyle: {
64
- color: '#1DA9A0'
65
- }
66
- }, {
67
- value: 1879,
68
- name: 'negative',
69
- proportion: 0.021,
70
- type: 2,
71
- itemStyle: {
72
- color: '#EE6666'
73
- }
74
- }, {
75
- value: 82344,
76
- name: 'neutral',
77
- proportion: 0.9195,
78
- type: 3,
79
- itemStyle: {
80
- color: '#bbbbbb'
81
- }
82
- }],
154
+ data: dealData,
83
155
  selectedMode: true,
84
156
  selectedOffset: 0,
85
157
  minAngle: 3
86
158
  }]
87
159
  };
88
160
  myChart.setOption(option);
161
+ var legendShowData = JSON.parse(JSON.stringify(seriesData));
162
+ setLegendData(legendShowData.slice(0, legendNumber));
163
+ myChart.off('click');
164
+ myChart.on('click', 'series', function (params) {
165
+ handleClick && handleClick(params.data);
166
+ });
167
+ };
168
+ var paginationCb = function paginationCb(currData, page) {
169
+ setLegendData(_toConsumableArray(currData));
170
+ currentPage.current = page;
89
171
  };
90
172
  return /*#__PURE__*/React.createElement("div", {
91
- id: chartID,
92
- className: "onesight-chart-pie"
93
- });
94
- }
173
+ id: id,
174
+ className: "onesight-pie-chart-wrap"
175
+ }, /*#__PURE__*/React.createElement("div", {
176
+ className: "chart-pie",
177
+ ref: chartRef,
178
+ style: {
179
+ width: width,
180
+ height: height
181
+ }
182
+ }), /*#__PURE__*/React.createElement(Legend, {
183
+ seriesData: seriesData,
184
+ legendData: legendData,
185
+ chartColor: chartColor,
186
+ legendPerShow: legendPerShow,
187
+ legendNumShow: legendNumShow,
188
+ valueType: valueType,
189
+ chart: chart,
190
+ handleClick: handleClick,
191
+ legendNumber: legendNumber,
192
+ currentPage: currentPage,
193
+ paginationCb: paginationCb
194
+ }));
195
+ }
196
+ export default Pie;