|
@@ -0,0 +1,108 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div ref="chart" class="chart"></div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+// 导入 ECharts 库
|
|
|
+import * as echarts from 'echarts';
|
|
|
+// 导入自定义的 axios 实例
|
|
|
+import axiosRequestAPI from '../Platform/ShiKongFenXi/lib/axiosRequestAPI';
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'MyChart',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ xAxisData: [], // 存储 class_name 数据
|
|
|
+ yAxisData: [], // 存储每个 class_name 对应的 shape_area 总和
|
|
|
+ };
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.fetchData(); // 在 mounted 生命周期钩子中调用 fetchData 获取数据
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 初始化图表
|
|
|
+ initChart() {
|
|
|
+ const chartDom = this.$refs.chart;
|
|
|
+ const myChart = echarts.init(chartDom);
|
|
|
+
|
|
|
+ const option = {
|
|
|
+ title: {
|
|
|
+ text: '用地类型',
|
|
|
+ textStyle: {
|
|
|
+ color: '#000000', // 设置标题颜色
|
|
|
+ fontWeight: 'bold',
|
|
|
+ fontSize: 18
|
|
|
+ }
|
|
|
+ },
|
|
|
+ tooltip: {},
|
|
|
+ legend: {
|
|
|
+ data: ['面积总和'],
|
|
|
+ textStyle: {
|
|
|
+ color: '#000000', // 设置图例字体颜色
|
|
|
+ }
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ data: this.xAxisData,
|
|
|
+ axisLabel: {
|
|
|
+ interval: 0, // 强制显示所有标签
|
|
|
+ color: '#000000', // 设置 X 轴标签字体颜色
|
|
|
+ }
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000000', // 设置 Y 轴标签字体颜色
|
|
|
+ }
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '面积总和',
|
|
|
+ type: 'bar',
|
|
|
+ data: this.yAxisData,
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+
|
|
|
+ myChart.setOption(option);
|
|
|
+
|
|
|
+ // 自动调整图表大小
|
|
|
+ window.addEventListener('resize', () => {
|
|
|
+ myChart.resize();
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取数据
|
|
|
+ fetchData() {
|
|
|
+ axiosRequestAPI.listClassNameAndShapeArea()
|
|
|
+ .then((data) => {
|
|
|
+ console.log("Fetched data:", data); // 打印原始数据
|
|
|
+ if (Array.isArray(data)) {
|
|
|
+ this.xAxisData = data.map(item => item.class_name); // 获取 class_name
|
|
|
+ this.yAxisData = data.map(item => item.total_area); // 获取 total_area(面积总和)
|
|
|
+ this.initChart(); // 数据加载完成后初始化图表
|
|
|
+ } else {
|
|
|
+ console.error('返回的数据格式不正确');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ console.error('获取数据失败:', error);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+.chart {
|
|
|
+ width: 100%;
|
|
|
+ height: 280px;
|
|
|
+ width: 550px;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0px;
|
|
|
+ right: -2000px;
|
|
|
+ z-index: 1000000;
|
|
|
+ background-color: rgba(240, 248, 255, 0.2);
|
|
|
+}
|
|
|
+</style>
|