以下是使用Vue 3中的<script setup>语法和ECharts库来实现电测听体检报告单图表的示例代码:

<template>
  <div>
    <div class="input-container">
      <label for="leftEarData">左耳数据:</label>
      <textarea id="leftEarData" v-model="leftEarData" rows="4" cols="30"></textarea>
    </div>
    <div class="input-container">
      <label for="rightEarData">右耳数据:</label>
      <textarea id="rightEarData" v-model="rightEarData" rows="4" cols="30"></textarea>
    </div>
    <div id="chart" style="width: 600px; height: 400px;"></div>
  </div>
</template>

<script setup>
import { ref, watchEffect, onMounted } from 'vue';
import * as echarts from 'echarts';

const leftEarData = ref('');
const rightEarData = ref('');

onMounted(() => {
  const chart = echarts.init(document.getElementById('chart'));

  watchEffect(() => {
    const leftData = parseData(leftEarData.value);
    const rightData = parseData(rightEarData.value);

    const option = {
      xAxis: {
        type: 'value',
        name: '频率(Hz)'
      },
      yAxis: {
        type: 'value',
        name: '听力级(dB)'
      },
      series: [
        {
          type: 'line',
          symbol: 'none',
          lineStyle: {
            color: 'red'
          },
          data: leftData
        },
        {
          type: 'line',
          symbol: 'circle',
          lineStyle: {
            color: 'blue'
          },
          data: rightData
        }
      ]
    };

    chart.setOption(option);
  });

  function parseData(dataStr) {
    const data = [];
    const lines = dataStr.trim().split('\n');

    for (const line of lines) {
      const [frequency, hearingLevel] = line.trim().split(' ');
      data.push([Number(frequency), Number(hearingLevel)]);
    }

    return data;
  }
});
</script>

<style>
.input-container {
  margin-bottom: 10px;
}
</style>

在上述代码中,我们首先引入了refwatchEffectonMounted等Vue 3的响应式函数,以及echarts库。然后,在<script setup>中定义了leftEarDatarightEarData这两个响应式数据,并使用watchEffect函数监听这两个数据的变化。

leftEarDatarightEarData发生变化时,会自动触发回调函数,内部会解析输入的数据字符串,并通过echarts库绘制图表。左耳数据使用红色折线表示,右耳数据使用蓝色圆圈表示。

在模板中,我们使用v-model指令将输入框与leftEarDatarightEarData进行双向绑定,使得输入的数据能够实时更新到响应式数据上。

最后,我们在onMounted生命周期钩子中初始化了ECharts实例,并将图表容器的ID设置为chart。在watchEffect回调函数中,根据leftEarDatarightEarData的值动态生成图表数据,并通过setOption方法设置图表的配置项。

请确保已安装echarts库,可以使用以下命令进行安装:

npm install echarts

然后,可以将上述代码保存为一个单文件组件(例如,Chart.vue),并在Vue应用中使用该组件即可展示电测听体检报告单图表

用vue3《script setup》帮我做一个电测听体检报告单图表x轴是频率Hzy轴是听力级dB左右耳数据在表单内输入后实时展现在图标上左耳折线数据用×表示右耳折线数据用o用echartjs来实现

原文地址: http://www.cveoy.top/t/topic/ilfY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录