<template>
  <div id="chart-temp" style="width: 100%; height: 450px"></div>
</template>

<script>
export default {
  name: "chartTemp",
  data() {
    return {
      myCharts: null
    }
  },
  props: {
    tempList: {
      type: Array
    }
  },
  watch: {
    tempList: {
      handler(newVal) {
        if(newVal) {
          this.myCharts.clear();
          this.init();
        }
      },
      deep: true,
    }
  },
  methods: {
    init() {
      let options;
      let that = this;
      if(this.tempList[0].length > 0) {
        options = {
          legend: {
            data: ['耳根温度', '环境温度'],
            x: 'center',
            y: '5%',
          },
          tooltip: {
            trigger: 'axis',
            // formatter: '{b} <br/>{a0}: {c0}℃',
            // position(pt) {
            //   return [pt[0], '10%'];
            // },
          },
          dataZoom: [{
            type: 'inside',
            start: 90,
            end: 100,
          }, {
            start: 0,
            end: 10,
            handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
            handleSize: '80%',
            handleStyle: {
              color: '#fff',
              shadowBlur: 3,
              shadowColor: 'rgba(0, 0, 0, 0.6)',
              shadowOffsetX: 2,
              shadowOffsetY: 2,
            },
          }],
          grid: {
            left: '2%',
            right: '4%',
            bottom: '12%',
            containLabel: true,
          },
          xAxis: {
            type: 'category',
            boundaryGap: false,
            data: that.tempList[0],
          },
          yAxis: {
            type: 'value',
            name: '单位:℃',
            boundaryGap: [0, '100%'],
            min(value) {
              return value.min - 1;
            },
            axisLabel: {
              formatter(value) {
                return value.toFixed(2);
              },
            },
          },
          series: [
            {
              name: '耳根温度',
              type: 'line',
              smooth: true,
              // symbol: 'none',
              sampling: 'average',
              itemStyle: {
                normal: {
                  color: '#7ED3F4', // 改变折线点的颜色
                  // label: { // 显示数值
                  //   show: true
                  // }
                },
              },
              data: that.tempList[1],
            },
            {
              name: '环境温度',
              type: 'line',
              smooth: true,
              sampling: 'average',
              itemStyle: {
                normal: {
                  color: '#7387F3', // 改变折线点的颜色
                  // label: { // 显示数值
                  //   show: true
                  // }
                },
              },
              data: that.tempList[2],
            },
          ],
        }
      } else {
        options = {
          title: {
            text: '暂无数据',
            x: 'center',
            y: 'center',
            textStyle: {
              color: '#000000',
              fontWeight: 'normal',
              fontSize: 12,
            },
          },
          grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true,
          },
          xAxis: {
            type: 'category',
            boundaryGap: false,
            data: [],
            axisLabel: {
              show: true,
              textStyle: {
                color: '#000000', // 更改坐标轴文字颜色
              },
            },
          },
          yAxis: {
            type: 'value',
            axisLabel: {
              show: true,
              textStyle: {
                color: '#000000', // 更改坐标轴文字颜色
              },
            },
          },
        }
      }
      this.myCharts.setOption(options);
    }
  },
  mounted() {
    this.myCharts = this.$echarts.init(document.getElementById('chart-temp'));
    this.init();
    window.onresize = () => {
      this.myCharts.resize();
    }
  }
}
</script>

<style scoped>

</style>
