改变图片的样式使得每个饼图或环形图周围有一个偏白色的方框,在页面底部配有注:统计中不含表具状态=已报废、已置换、临时库存的表具这句话,并且每个图的注释统一放到图的右边,最后使得四个图整齐排在页面上
时间: 2024-12-10 21:32:45 浏览: 11
为了实现您的要求,需要修改文档中的HTML和CSS部分以添加边框、统一对每个图表进行注释并使图表排列整洁。下面是修改后的代码示例:
### 修改后的HTML和CSS代码
```html
<template>
<div class="meter-status-chart">
<!-- 在库状态 -->
<div class="chart-container">
<div id="chart-1" class="chart" style="width: 600px; height: 400px;"></div>
<div class="caption">在库状态</div>
</div>
<!-- 检定状态 -->
<div class="chart-container">
<div id="chart-2" class="chart" style="width: 600px; height: 400px;"></div>
<div class="caption">检定状态</div>
</div>
<!-- 表具状态 -->
<div class="chart-container">
<div id="chart-3" class="chart" style="width: 600px; height: 400px;"></div>
<div class="caption">表具状态</div>
</div>
<!-- 保养状态 -->
<div class="chart-container">
<div id="chart-4" class="chart" style="width: 600px; height: 400px;"></div>
<div class="caption">保养状态</div>
</div>
</div>
<!-- 页面底部注释 -->
<div class="bottom-note">
注:统计中不含表具状态=已报废、已置换、临时库存的表具
</div>
</template>
<script>
import * as echarts from 'echarts';
export default {
name: 'MeterStatusChart',
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', left: 'left' },
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)' }
}
}
]
};
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', left: 'left' },
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%', left: 'center' },
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);
// 环形图 2: 表具检定状态(详细分类)
const chartDom4 = document.getElementById('chart-4');
const chart4 = echarts.init(chartDom4);
const option4 = {
title: { text: '保养状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: { top: '5%', left: 'center' },
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: 10000, name: '大保养' },
{ value: 2000, name: '小保养' },
{ value: 2201100, name: '未保养' },
{ value: 100, name: '保养超期' }
]
}
]
};
chart4.setOption(option4);
}
}
}
</script>
<style scoped>
.meter-status-chart {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
}
.chart-container {
display: flex;
flex-direction: column;
align-items: center;
border: 2px solid #f0f0f0; /* 偏白色方框 */
padding: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* 轻微阴影 */
background-color: #ffffff; /* 白色背景 */
width: 620px; /* 考虑到padding和border的宽度 */
margin-bottom: 20px;
}
.caption {
font-size: 16px;
margin-top: 10px;
color: #333333;
text-align: right;
margin-right: 20px;
}
.bottom-note {
text-align: center;
font-size: 14px;
color: #888888;
margin-top: 20px;
}
</style>
```
### 解释
1. **HTML 结构**:
- 使用 `chart-container` 包裹每个图表及其对应的注释。
- 每个 `chart-container` 中包含一个 `div` 用于绘制图表和一个 `div` 用于显示注释。
- 添加了页面底部的注释 `bottom-note`。
2. **CSS 样式**:
- `.chart-container` 设置为带有边框的盒子,使用 `box-shadow` 添加轻微的阴影效果。
- 图表的容器大小设置为 `620px` 以适应内容和边框。
- `caption` 类用于显示图表的注释,并将其对齐到右边。
- `.bottom-note` 类用于显示页面底部的注释,居中对齐并适当调整字体颜色和大小。
这样,图表将整齐地排列在页面上,每个图表都有一个偏白色的边框,且注释统一放在图表的右侧。页面底部还会有一条统一的注释。
阅读全文