Newer
Older
smartKitchenFront / src / views / dashboard / components / supplierCount.vue
<template>
  <!-- 用户数量变化趋势 -->
  <div class="chart-container" :style="{ 'height': height, 'width': width }">
    <div class="chart-header">
      <!--标题  -->
      <span class="title">{{type === 'supplier' ? '供应商注册统计' : '设备注册数量统计'}}</span>
    </div>
    <div class="chart-content" :style="{ 'height': parseInt(height) - 40 + 'px'}">
      <!-- echarts内容 -->
      <gradientLineChart
        :seriesData="seriesData"
        :xAxisData="xAxisData"
        :legend="legend"
      />
    </div>
  </div>
</template>
  
  <script>
import gradientLineChart from "../../../components/echart/lineChart/gradientLineChart.vue";
import { getRegisterCount, getDeviceCount } from "@/api/cockpit/cockpit";
export default {
  name: "layoutChartSupplier",
  components: {
    gradientLineChart,
  },
  props: {
    width: {
      type: String,
      default: "500px",
    },
    height: {
      type: String,
      default: "300px",
    },
    type: {
      type: String,
      required: true,
    },
  },
  data() {
    return {
      seriesData: [],
      xAxisData: [],
      yAxisData: [],
      legend: [],
    };
  },
  mounted() {
    this.fetchData();
    // this.seriesData = [
    //   {
    //     data: [13, 15, 19, 8, 14, 3, 22],
    //   },
    // ];
    // this.xAxisData = ["10-1", "10-2", "10-3", "10-4", "10-5", "10-6", "10-7"];
  },
  methods: {
    fetchData() {
        // 供应商注册统计
        (this.type === "supplier" ? getRegisterCount() : getDeviceCount()).then((res) => {
          let seriesData = [
            {
              name: this.type === 'supplier' ? '供应商注册数量' : '设备注册数量数量',
              data: [],
            },
          ];
          let xAxisData = [];
          res.data.forEach((item) => {
            seriesData[0].data.push(this.type === "supplier" ? item.count : item.deviceCount);
            xAxisData.push(item.date);
          });
          this.seriesData = seriesData;
          this.xAxisData = xAxisData;
        });
    },
  },
};
</script>
  
  <style lang="scss" scoped>
.chart-container {
  background: #edf5f8;
  border-radius: 8px;
  margin: 10px;
  padding: 10px;
  .chart-header {
    font-size: 14px;
    color: #2076A1;
    font-weight: 700;
  }
}
</style>