@easyv/charts 1.4.20 → 1.4.22
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.
- package/lib/components/CartesianChart.js +1 -1
- package/lib/components/PieChart.js +20 -0
- package/lib/hooks/index.js +8 -2
- package/lib/hooks/useAiData.js +23 -5
- package/package.json +1 -1
- package/src/components/CartesianChart.js +1 -1
- package/src/components/PieChart.js +19 -2
- package/src/hooks/index.js +3 -2
- package/src/hooks/useAiData.js +18 -2
|
@@ -37,6 +37,8 @@ var _formatter = require("../formatter");
|
|
|
37
37
|
|
|
38
38
|
var _piechartModule = _interopRequireDefault(require("../css/piechart.module.css"));
|
|
39
39
|
|
|
40
|
+
var _hooks = require("../hooks");
|
|
41
|
+
|
|
40
42
|
var _excluded = ["startAngle", "endAngle", "antiClockwise"],
|
|
41
43
|
_excluded2 = ["padAngle", "innerRadius", "outerRadius", "cornerRadius", "startAngle", "endAngle"],
|
|
42
44
|
_excluded3 = ["formatter"],
|
|
@@ -523,6 +525,24 @@ var Component = /*#__PURE__*/(0, _react.memo)(function (_ref5) {
|
|
|
523
525
|
animation = null;
|
|
524
526
|
};
|
|
525
527
|
}, [JSON.stringify(arcs), on, currentIndex, trigger, onEmit, triggerOnRelative]);
|
|
528
|
+
var aiData = (0, _hooks.useAiDataOfPie)(_arcs, legend);
|
|
529
|
+
(0, _react.useEffect)(function () {
|
|
530
|
+
if (aiData.length) {
|
|
531
|
+
if (!window.aiData) {
|
|
532
|
+
window.aiData = {};
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
window.aiData[id] = {
|
|
536
|
+
getAI: function getAI() {
|
|
537
|
+
return aiData;
|
|
538
|
+
}
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
return function () {
|
|
543
|
+
window.aiData && window.aiData[id] && delete window.aiData[id];
|
|
544
|
+
};
|
|
545
|
+
}, [JSON.stringify(aiData), id]);
|
|
526
546
|
var halfChartWidth = chartWidth / 2;
|
|
527
547
|
var halfChartHeight = chartHeight / 2;
|
|
528
548
|
var rotate_ = decorate2 ? -(arcs[+currentIndex].startAngle + arcs[+currentIndex].endAngle) * 90 / Math.PI + rotate : 0;
|
package/lib/hooks/index.js
CHANGED
|
@@ -8,7 +8,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
Object.defineProperty(exports, "useAiData", {
|
|
9
9
|
enumerable: true,
|
|
10
10
|
get: function get() {
|
|
11
|
-
return _useAiData
|
|
11
|
+
return _useAiData.useAiData;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "useAiDataOfPie", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _useAiData.useAiDataOfPie;
|
|
12
18
|
}
|
|
13
19
|
});
|
|
14
20
|
Object.defineProperty(exports, "useAnimateData", {
|
|
@@ -68,4 +74,4 @@ var _useCarouselAxisX = _interopRequireDefault(require("./useCarouselAxisX"));
|
|
|
68
74
|
|
|
69
75
|
var _useExtentData = _interopRequireDefault(require("./useExtentData"));
|
|
70
76
|
|
|
71
|
-
var _useAiData =
|
|
77
|
+
var _useAiData = require("./useAiData");
|
package/lib/hooks/useAiData.js
CHANGED
|
@@ -5,14 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports.useAiDataOfPie = exports.useAiData = void 0;
|
|
9
9
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
|
14
14
|
//生成AI图表分析所需的数据
|
|
15
|
-
var
|
|
15
|
+
var useAiData = function useAiData(data, axes, series) {
|
|
16
16
|
try {
|
|
17
17
|
var xAxis = axes.get("x");
|
|
18
18
|
var xType = xAxis.config.label.format.type == "date" ? "时间" : "类别";
|
|
@@ -47,11 +47,29 @@ var _default = function _default(data, axes, series) {
|
|
|
47
47
|
});
|
|
48
48
|
return obj;
|
|
49
49
|
});
|
|
50
|
-
} catch (e) {
|
|
51
|
-
|
|
50
|
+
} catch (e) {// console.error("生成AI数据失败:",e);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return [];
|
|
54
|
+
}; //生成饼图的AI图表分析所需的数据
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
exports.useAiData = useAiData;
|
|
58
|
+
|
|
59
|
+
var useAiDataOfPie = function useAiDataOfPie(series, legend) {
|
|
60
|
+
try {
|
|
61
|
+
var _legend$config$value$ = legend.config.value.suffix,
|
|
62
|
+
show = _legend$config$value$.show,
|
|
63
|
+
text = _legend$config$value$.text;
|
|
64
|
+
return series.map(function (d) {
|
|
65
|
+
var _ref2;
|
|
66
|
+
|
|
67
|
+
return _ref2 = {}, (0, _defineProperty2["default"])(_ref2, d.displayName, d.value + (show ? text : "")), (0, _defineProperty2["default"])(_ref2, "占比值", d.percent + "%"), _ref2;
|
|
68
|
+
});
|
|
69
|
+
} catch (e) {// console.error("生成ai数据失败:",e);
|
|
52
70
|
}
|
|
53
71
|
|
|
54
72
|
return [];
|
|
55
73
|
};
|
|
56
74
|
|
|
57
|
-
exports
|
|
75
|
+
exports.useAiDataOfPie = useAiDataOfPie;
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import React, {
|
|
|
7
7
|
useCallback,
|
|
8
8
|
useRef,
|
|
9
9
|
useState,
|
|
10
|
+
useEffect,
|
|
10
11
|
useContext,
|
|
11
12
|
useLayoutEffect,
|
|
12
13
|
Fragment,
|
|
@@ -24,6 +25,7 @@ import { animate, linear } from 'popmotion';
|
|
|
24
25
|
import LinearGradient from './LinearGradient';
|
|
25
26
|
import { pieLegendFormatter as legendFormatter } from '../formatter';
|
|
26
27
|
import ringCss from '../css/piechart.module.css';
|
|
28
|
+
import { useAiDataOfPie } from '../hooks';
|
|
27
29
|
|
|
28
30
|
const PI = Math.PI;
|
|
29
31
|
|
|
@@ -284,7 +286,6 @@ const Component = memo(
|
|
|
284
286
|
triggerOnRelative,
|
|
285
287
|
onEmit,
|
|
286
288
|
} = useContext(chartContext);
|
|
287
|
-
|
|
288
289
|
const [y, setY] = useState(1);
|
|
289
290
|
const radius = (Math.min(chartWidth, chartHeight) / 2) * outerRadius;
|
|
290
291
|
|
|
@@ -382,7 +383,7 @@ const Component = memo(
|
|
|
382
383
|
if(_series.length<arcs.length) console.warn("请检查数据中是否存在相同的s");
|
|
383
384
|
return arcs.map((arc, index) => getArc(radius, arc, _series, index));
|
|
384
385
|
}, [series, arcs, radius]);
|
|
385
|
-
|
|
386
|
+
|
|
386
387
|
const onClick = useCallback(
|
|
387
388
|
(e) =>
|
|
388
389
|
onEvent({
|
|
@@ -448,6 +449,22 @@ const Component = memo(
|
|
|
448
449
|
onEmit,
|
|
449
450
|
triggerOnRelative,
|
|
450
451
|
]);
|
|
452
|
+
const aiData = useAiDataOfPie(_arcs, legend);
|
|
453
|
+
useEffect(()=>{
|
|
454
|
+
if(aiData.length){
|
|
455
|
+
if(!window.aiData){
|
|
456
|
+
window.aiData={};
|
|
457
|
+
}
|
|
458
|
+
window.aiData[id]={
|
|
459
|
+
getAI:()=>{
|
|
460
|
+
return aiData;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return ()=>{
|
|
465
|
+
window.aiData && window.aiData[id] && delete window.aiData[id];
|
|
466
|
+
}
|
|
467
|
+
},[JSON.stringify(aiData),id]);
|
|
451
468
|
|
|
452
469
|
const halfChartWidth = chartWidth / 2;
|
|
453
470
|
const halfChartHeight = chartHeight / 2;
|
package/src/hooks/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import useTooltip from './useTooltip';
|
|
|
5
5
|
import useAnimateData from './useAnimateData';
|
|
6
6
|
import useCarouselAxisX from './useCarouselAxisX';
|
|
7
7
|
import useExtentData from './useExtentData';
|
|
8
|
-
import useAiData from './useAiData';
|
|
8
|
+
import { useAiData, useAiDataOfPie } from './useAiData';
|
|
9
9
|
|
|
10
10
|
export {
|
|
11
11
|
useFilterData,
|
|
@@ -15,5 +15,6 @@ export {
|
|
|
15
15
|
useAnimateData,
|
|
16
16
|
useCarouselAxisX,
|
|
17
17
|
useExtentData,
|
|
18
|
-
useAiData
|
|
18
|
+
useAiData,
|
|
19
|
+
useAiDataOfPie
|
|
19
20
|
};
|
package/src/hooks/useAiData.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//生成AI图表分析所需的数据
|
|
2
|
-
export
|
|
2
|
+
export const useAiData = (data, axes, series)=>{
|
|
3
3
|
try{
|
|
4
4
|
const xAxis = axes.get("x");
|
|
5
5
|
const xType = xAxis.config.label.format.type=="date"?"时间":"类别";
|
|
@@ -34,9 +34,25 @@ export default (data, axes, series)=>{
|
|
|
34
34
|
obj[target[0]] = target[1];
|
|
35
35
|
});
|
|
36
36
|
return obj;
|
|
37
|
+
});
|
|
38
|
+
}catch(e){
|
|
39
|
+
// console.error("生成AI数据失败:",e);
|
|
40
|
+
}
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//生成饼图的AI图表分析所需的数据
|
|
45
|
+
export const useAiDataOfPie = (series, legend)=>{
|
|
46
|
+
try{
|
|
47
|
+
const { show, text } = legend.config.value.suffix;
|
|
48
|
+
return series.map(d=>{
|
|
49
|
+
return {
|
|
50
|
+
[d.displayName]:d.value+(show?text:""),
|
|
51
|
+
"占比值":d.percent+"%"
|
|
52
|
+
}
|
|
37
53
|
})
|
|
38
54
|
}catch(e){
|
|
39
|
-
console.error("生成
|
|
55
|
+
// console.error("生成ai数据失败:",e);
|
|
40
56
|
}
|
|
41
57
|
return [];
|
|
42
58
|
}
|