Vue3 电测听体检报告单图表实时展示 - Echarts.js 实现
我们将使用Vue3和Echarts.js制作一个电测听体检报告单图标,实时展示左右耳的听力级数据。用户可通过输入框实时修改数据,图标会根据输入内容动态更新。
首先,你需要安装echarts.js依赖:
npm install echarts
然后,你可以创建一个新的Vue组件,使用<script setup>语法来编写脚本部分,并将echarts图标指示到模板中。
<template>
<div>
<div>
<label>左耳数据:</label>
<input v-model="leftEarData" type="text" />
</div>
<div>
<label>右耳数据:</label>
<input v-model="rightEarData" type="text" />
</div>
<div ref="chart" style="width: 600px; height: 400px;"></div>
</div>
</template>
<script setup>
import { ref, onMounted, watch } from 'vue';
import * as echarts from 'echarts';
const leftEarData = ref('');
const rightEarData = ref('');
// 初始化echarts图标
const chart = ref(null);
onMounted(() => {
chart.value = echarts.init($refs.chart);
});
// 监听左耳数据变化
watch(leftEarData, (newValue) => {
updateChart('left', newValue);
});
// 监听右耳数据变化
watch(rightEarData, (newValue) => {
updateChart('right', newValue);
});
// 更新图标数据
function updateChart(ear, data) {
const option = {
xAxis: {
type: 'category',
data: ['100', '200', '500', '1000', '2000', '4000', '8000'],
},
yAxis: {
type: 'value',
min: 0,
max: 120,
},
series: [
{
name: '听力级',
type: 'line',
data: parseData(data),
symbol: ear === 'left' ? 'cross' : 'circle',
},
],
};
chart.value.setOption(option);
}
// 解析数据
function parseData(data) {
if (!data) {
return [];
}
return data.split(',').map((value) => parseInt(value));
}
</script>
在上面的代码中,我们使用ref来创建响应性变量,并使用onMounted键子来初始化echarts图标。然后,使用watch来监听左耳数据和右耳数据的变化,并在数据变化时更新图标。updateChart函数根据输入的耳类型和数据,生成相应的echarts配置项,并更新图标。
在模板中,我们使用v-model指令将输入框的值绑定到leftEarData和rightEarData变量上。然后,使用ref创建一个号象,将它绑定到图标容器上,以便在onMounted键子中初始化echarts图标。
最后,将组件引入到你的应用中,并使用<chart>标签来使用该组件。
<template>
<div>
<chart></chart>
</div>
</template>
<script>
import Chart from './Chart.vue';
export default {
components: {
Chart,
},
};
</script>
这样就可以在应用中使用Chart组件来展示电测听体检报告单图标了。输入左右耳的数据后,图标会实时更新。左耳的折线图使用×表示,右耳的折线图使用o表示。
原文地址: https://www.cveoy.top/t/topic/p3le 著作权归作者所有。请勿转载和采集!