mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-03 00:26:40 +08:00
图表增加了适配窗口大小
This commit is contained in:
parent
c1a37cdf53
commit
b8d8b8353f
@ -146,6 +146,20 @@ function EchartsComponent({ currentDate, setCurrentDate }: ComponentProps) {
|
|||||||
};
|
};
|
||||||
}, [currentDate, searchDate]); // 空数组作为第二个参数,表示仅在组件挂载和卸载时执行
|
}, [currentDate, searchDate]); // 空数组作为第二个参数,表示仅在组件挂载和卸载时执行
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleResize = () => {
|
||||||
|
console.log("窗口大小变化");
|
||||||
|
let chartDom = document.getElementById("usage-by-model-chart");
|
||||||
|
if (!chartDom) return;
|
||||||
|
const myChart = echarts.getInstanceByDom(chartDom);
|
||||||
|
myChart?.resize();
|
||||||
|
};
|
||||||
|
window.addEventListener("resize", handleResize);
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener("resize", handleResize);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
id="usage-by-model-chart"
|
id="usage-by-model-chart"
|
||||||
|
@ -12,8 +12,9 @@ import Script from "next/script";
|
|||||||
|
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
// var echarts = require('echarts');
|
// var echarts = require('echarts');
|
||||||
require("echarts");
|
import "echarts/extension/bmap/bmap";
|
||||||
require("echarts/extension/bmap/bmap");
|
// require("echarts");
|
||||||
|
// require("echarts/extension/bmap/bmap");
|
||||||
|
|
||||||
interface DataItem {
|
interface DataItem {
|
||||||
name: string;
|
name: string;
|
||||||
@ -21,6 +22,10 @@ interface DataItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default function UserByMap() {
|
export default function UserByMap() {
|
||||||
|
const userByMapChart = useRef(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!userByMapChart.current) return;
|
||||||
const data: DataItem[] = [
|
const data: DataItem[] = [
|
||||||
{ name: "海门", value: 9 },
|
{ name: "海门", value: 9 },
|
||||||
{ name: "鄂尔多斯", value: 12 },
|
{ name: "鄂尔多斯", value: 12 },
|
||||||
@ -609,18 +614,32 @@ export default function UserByMap() {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
useEffect(() => {
|
|
||||||
const loadEcharts = () => {
|
const loadEcharts = () => {
|
||||||
let chartDom = document.getElementById("userByMapChart");
|
let chartDom = document.getElementById("userByMapChart");
|
||||||
|
if (!chartDom) return;
|
||||||
let myChart = echarts.init(chartDom, "default", {
|
let myChart = echarts.init(chartDom, "default", {
|
||||||
renderer: "canvas",
|
renderer: "canvas",
|
||||||
useDirtyRect: false,
|
useDirtyRect: false,
|
||||||
});
|
});
|
||||||
option && myChart.setOption(option);
|
option && myChart?.setOption(option);
|
||||||
};
|
};
|
||||||
|
|
||||||
loadEcharts();
|
loadEcharts();
|
||||||
}, [option]);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleResize = () => {
|
||||||
|
let chartDom = document.getElementById("userByMapChart");
|
||||||
|
if (!chartDom) return;
|
||||||
|
const myChart = echarts.getInstanceByDom(chartDom);
|
||||||
|
myChart?.resize();
|
||||||
|
};
|
||||||
|
handleResize();
|
||||||
|
window.addEventListener("resize", handleResize);
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener("resize", handleResize);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@ -636,8 +655,9 @@ export default function UserByMap() {
|
|||||||
{/*/>*/}
|
{/*/>*/}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
ref={userByMapChart}
|
||||||
id="userByMapChart"
|
id="userByMapChart"
|
||||||
style={{ width: "960px", height: "500px" }}
|
style={{ width: "1080px", height: "600px" }}
|
||||||
></div>
|
></div>
|
||||||
<Script
|
<Script
|
||||||
src="https://api.map.baidu.com/api?v=3.0&ak=19e9FKQC49u5uQe4CBqan9ER2mYhQ3ip&callback=onBMapCallback"
|
src="https://api.map.baidu.com/api?v=3.0&ak=19e9FKQC49u5uQe4CBqan9ER2mYhQ3ip&callback=onBMapCallback"
|
||||||
|
Loading…
Reference in New Issue
Block a user