怎么在图标旁的注释加上数据
时间: 2024-12-10 10:47:35 浏览: 13
要在图表旁边的注释加上数据,可以对现有的 `<p>` 标签进行修改,并从后端或前端获取动态数据。具体步骤如下:
1. **引入数据源**:假设数据已经存在于组件的状态(`data()` 函数返回的对象)中,或者可以通过 API 请求获取。
2. **更新模板中的注释内容**:将静态文本替换为包含动态数据的插值表达式。
以下是一个示例代码,假设你在 `data()` 中定义了相关的数据属性:
### 更新后的代码
```vue
<template>
<div>
<!-- 导出按钮 -->
<a-button
style="top: 50px;left: 100px;"
type="primary"
icon="download"
@click="handleExportXlsxWithCharts"
>
导出
</a-button>
<div class="meter-status-chart">
<!-- 在库状态 -->
<div class="chart-container">
<div id="chart-1" class="chart" style="width: 450px; height: 300px;"></div>
</div>
<!-- 表具状态 -->
<div class="chart-container">
<div id="chart-3" class="chart" style="width: 450px; height: 300px;"></div>
</div>
<!-- 检定状态 -->
<div class="chart-container" style="margin-right: 570px;">
<div id="chart-2" class="chart" style="width: 450px; height: 300px;"></div>
</div>
</div>
<p
style="margin-left: 260px; font-size: 14px; margin-top: 40px; font-weight: bold"
>
注:统计中不含表具状态=已报废、已置换、临时库存的表具。总数: {{ totalMeters }}
</p>
</div>
</template>
<script>
import * as echarts from 'echarts';
import { JeecgListMixin } from '@/mixins/JeecgListMixin';
export default {
name: 'MeterStatusChart',
mixins: [JeecgListMixin],
data() {
return {
description: 'stock_meter_base_statistics管理页面',
url: {
exportXlsxUrl: '/stock/stockMeterBase/exportExcel',
},
totalMeters: 25000 // 这里可以动态设置为从后端获取的数据
};
},
mounted() {
this.initCharts();
},
methods: {
initCharts() {
// 初始化饼图 1: 表具在库状态
const chartDom1 = document.getElementById('chart-1');
const chart1 = echarts.init(chartDom1);
const option1 = {
title: { text: '在库状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: { orient: 'vertical', right: 'right' },
series: [
{
name: '状态',
type: 'pie',
radius: '50%',
data: [
{ value: 2300, name: '在库' },
{ value: 20000, name: '出库' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
chart1.setOption(option1);
// 初始化饼图 2: 表具检定状态
const chartDom2 = document.getElementById('chart-2');
const chart2 = echarts.init(chartDom2);
const option2 = {
title: { text: '检定状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: { orient: 'vertical', right: 'right' },
series: [
{
name: '状态',
type: 'pie',
radius: '50%',
data: [
{ value: 2300, name: '检定中' },
{ value: 200000, name: '已检定' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
chart2.setOption(option2);
// 初始化饼图 3: 表具状态
const chartDom3 = document.getElementById('chart-3');
const chart3 = echarts.init(chartDom3);
const option3 = {
title: { text: '表具状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: { top: '5%', right: 'right', orient: 'vertical' },
series: [
{
name: '状态',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: { show: false, position: 'center' },
emphasis: { label: { show: true, fontSize: 40, fontWeight: 'bold' } },
labelLine: { show: false },
data: [
{ value: 350, name: '新表库存' },
{ value: 500, name: '旧表库存' },
{ value: 1000, name: '已领用' },
{ value: 5, name: '已返厂' },
{ value: 45, name: '已拆除' }
]
}
]
};
chart3.setOption(option3);
}
}
}
</script>
<style scoped>
.meter-status-chart {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
margin-top: 70px;
}
.chart-container {
display: flex;
flex-direction: column;
align-items: center;
border: 2px solid #f0f0f0;
padding: 20px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
background-color: #ffffff;
width: 550px;
margin-bottom: 20px;
}
.bottom-note {
text-align: center;
font-size: 14px;
color: #888888;
margin-top: 20px;
}
</style>
```
### 解释
1. **数据属性**:在 `data()` 中添加了一个 `totalMeters` 属性,用于存储表具总数。
2. **模板中的注释**:使用 `{{ totalMeters }}` 插值表达式来显示总数量。
通过这种方式,你可以动态地显示注释中的数据。如果需要从后端获取数据,可以在 `mounted` 钩子中调用一个异步方法来请求数据并更新 `totalMeters` 属性。
阅读全文