index.vue 1004 Bytes
<!--
 * @Description:
 * @Autor: renchao
 * @LastEditTime: 2023-07-03 17:08:05
-->
<template>
  <Chart :cdata="cdata" />
</template>

<script>
  import Chart from "./Chart";
  import work from "@/api/work";
  export default {
    data () {
      return {
        timer: null, // 定时器
        cdata: []
      }
    },
    components: {
      Chart
    },
    mounted () {
      this.$nextTick(() => {
        this.mapViews()
      })
      this.timer = setInterval(() => {
        this.mapViews();
      }, 10000) // 10s
    },
    methods: {
      async mapViews () {
        try {
          let { result: res } = await work.mapViews("A20");
          res.map((item) => {
            return (
              this.cdata.push({ "name": item.areaName, "value": item.ywtotal, "successcount": item.successcount })
            )

          });
        } catch (error) {
          this.$refs.msg.messageShow();
        }
      }
    },
    destroyed () {
      clearInterval(this.timer)
    }
  }
</script>