张涛 1年前
父节点
当前提交
1984e23ba9
共有 4 个文件被更改,包括 75450 次插入12909 次删除
  1. 58955
    0
      package-lock.json
  2. 1
    1
      package.json
  3. 28
    35
      src/subpkg1/components/chart/index.jsx
  4. 16466
    12873
      yarn.lock

+ 58955
- 0
package-lock.json
文件差异内容过多而无法显示
查看文件


+ 1
- 1
package.json 查看文件

@@ -50,7 +50,7 @@
50 50
     "@tarojs/taro": "3.6.25",
51 51
     "@zjxpcyc/js_event": "^1.0.0",
52 52
     "@zjxpcyc/react-tiny-store": "^2.0.1",
53
-    "echarts": "5.4.1",
53
+    "echarts": "^5.4.1",
54 54
     "echarts-for-weixin": "^1.0.2",
55 55
     "md5": "^2.3.0",
56 56
     "postcss-modules": "^6.0.0",

+ 28
- 35
src/subpkg1/components/chart/index.jsx 查看文件

@@ -1,5 +1,8 @@
1
-import React from 'react';
2
-import * as echarts from '@/subpkg1/components/ec-canvas/echarts';
1
+import React from "react";
2
+// import * as echarts from '@/subpkg1/components/ec-canvas/echarts';
3
+import * as echarts from "echarts";
4
+
5
+import { View } from "@tarojs/components";
3 6
 
4 7
 /**
5 8
  * 使用本组件前, 页面组件必须引入 ec-canvas 组件
@@ -7,47 +10,37 @@ import * as echarts from '@/subpkg1/components/ec-canvas/echarts';
7 10
  *   'ec-canvas': '@/subpkg1/components/ec-canvas/ec-canvas'
8 11
  * }
9 12
  */
10
-const Chart = (props) => {
13
+export default function Chart(props) {
11 14
   const { option, className, style } = props;
12
-  
15
+
13 16
   const [inited, setInited] = React.useState(false);
14 17
   const chartRef = React.useRef();
15
-  const canvasId = React.useMemo(() => `canvas-${Math.random().toString(36).substring(2, 7)}`, []);
16
-  const ec = React.useMemo(() => {
17
-    const onInit = (canvas, width, height, dpr) => {
18
-      const chart = echarts.init(canvas, null, {
19
-        width: width,
20
-        height: height,
21
-        devicePixelRatio: dpr // new
22
-      });
23
-      canvas.setChart(chart);
24
-      chartRef.current = chart;
25
-      setInited(true);
26
-    }
18
+  const domRef = React.useRef();
27 19
 
28
-    return {
29
-      onInit
30
-    }
31
-  }, []);
32 20
 
33 21
   React.useEffect(() => {
34
-    if (inited) {
35
-      chartRef.current.setOption(option);
22
+    if (!chartRef.current) {
23
+      chartRef.current = echarts.init(domRef.current);
36 24
     }
37
-  }, [option, inited]);
38 25
 
39
-  return (
40
-    <View className={className} style={style}>
41
-      <ec-canvas canvasId={canvasId} ec={ec}></ec-canvas>
42
-    </View>
43
-  )
44
-}
26
+    const resize = () => {
27
+      const t = setTimeout(() => {
28
+        clearTimeout(t);
29
+        chartRef.current.resize();
30
+      }, 100);
31
+    };
32
+
33
+    chartRef.current.setOption(option);
34
+    resize();
45 35
 
46
-export default Chart;
36
+    window.addEventListener("resize", resize);
37
+    return () => window.removeEventListener("resize", resize);
38
+  }, [option]);
39
+  console.log(option);
40
+  return <div className={className} style={style} ref={domRef}></div>;
41
+}
47 42
 
48
-const getLinearGradient = (...args) => new echarts.graphic.LinearGradient(...args);
43
+const getLinearGradient = (...args) =>
44
+  new echarts.graphic.LinearGradient(...args);
49 45
 
50
-export {
51
-  echarts,
52
-  getLinearGradient,
53
-}
46
+export { echarts, getLinearGradient };

+ 16466
- 12873
yarn.lock
文件差异内容过多而无法显示
查看文件