107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<!-- 
 | 
						|
    filename: FtoInvest.vue
 | 
						|
    author: liubin
 | 
						|
    date: 2024-04-10 08:59:28
 | 
						|
    description: 
 | 
						|
-->
 | 
						|
 | 
						|
<template>
 | 
						|
  <BarChartBase
 | 
						|
    :legend="legend"
 | 
						|
    :series="series"
 | 
						|
    :xAxis="xAxis"
 | 
						|
    in="ChipInvest"
 | 
						|
    class="chip-invest-chart"
 | 
						|
  />
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
import BarChartBase from "./sub/bar/BarChartBase.vue";
 | 
						|
 | 
						|
export default {
 | 
						|
  name: "ChipInvest",
 | 
						|
  components: { BarChartBase },
 | 
						|
  data() {
 | 
						|
    // 城市数组的顺序必须是固定的
 | 
						|
    const cities = ["瑞昌", "邯郸", "株洲", "佳木斯", "成都", "凯盛", "蚌埠"];
 | 
						|
    return {
 | 
						|
      xAxis: cities,
 | 
						|
    };
 | 
						|
  },
 | 
						|
  props: {
 | 
						|
    period: {
 | 
						|
      type: String,
 | 
						|
      default: "日",
 | 
						|
    },
 | 
						|
  },
 | 
						|
  computed: {
 | 
						|
    legend() {
 | 
						|
      switch (this.period) {
 | 
						|
        case "日":
 | 
						|
          return [{ label: "昨日", color: "#12f7f1" }];
 | 
						|
        case "周":
 | 
						|
          return [{ label: "本周", color: "#12f7f1" }];
 | 
						|
        case "月": {
 | 
						|
          const year = new Date().getFullYear();
 | 
						|
          const month = new Date().getMonth() + 1;
 | 
						|
          return [
 | 
						|
            { label: `${year - 1}年${month}月`, color: "#12f7f1" },
 | 
						|
            { label: `${year}年${month}月`, color: "#58adfa" },
 | 
						|
          ];
 | 
						|
        }
 | 
						|
        case "年": {
 | 
						|
          const year = new Date().getFullYear();
 | 
						|
          return [
 | 
						|
            { label: `${year - 1}年`, color: "#12f7f1" },
 | 
						|
            { label: `${year}年`, color: "#58adfa" },
 | 
						|
          ];
 | 
						|
        }
 | 
						|
        default:
 | 
						|
          return [
 | 
						|
            { label: `${year - 1}年`, color: "#12f7f1" },
 | 
						|
            { label: `${year}年`, color: "#58adfa" },
 | 
						|
          ];
 | 
						|
      }
 | 
						|
    },
 | 
						|
    series() {
 | 
						|
      const { chipInvest } = this.$store.getters.copilot.yield;
 | 
						|
      let dataList = null;
 | 
						|
      switch (this.period) {
 | 
						|
        case "日":
 | 
						|
        case "周":
 | 
						|
          dataList = chipInvest?.current;
 | 
						|
          break;
 | 
						|
        default:
 | 
						|
          dataList = [];
 | 
						|
          dataList[0] = chipInvest?.pervious;
 | 
						|
          dataList[1] = chipInvest?.current;
 | 
						|
      }
 | 
						|
      return getTemplate(this.period, dataList);
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
function getTemplate(period, dataList) {
 | 
						|
  const year = new Date().getFullYear();
 | 
						|
  const month = new Date().getMonth() + 1;
 | 
						|
  return period == "日" || period == "周"
 | 
						|
    ? [
 | 
						|
        {
 | 
						|
          name: period == "日" ? "昨日" : "本周",
 | 
						|
          data: dataList ?? [],
 | 
						|
        },
 | 
						|
      ]
 | 
						|
    : [
 | 
						|
        {
 | 
						|
          name: period == "年" ? `${year - 1}年` : `${year - 1}年${month}月`,
 | 
						|
          data: dataList ? dataList[0] : [],
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: period == "年" ? `${year}年` : `${year}年${month}月`,
 | 
						|
          data: dataList ? dataList[1] : [],
 | 
						|
          // : Array.from({ length: 7 }, () => Math.floor(Math.random() * 1000)),
 | 
						|
        },
 | 
						|
      ];
 | 
						|
}
 | 
						|
</script>
 |