<template>
  <div class="l-m flex-d-b bb">
    <div class="t">
      <CharsAndTitle :titleText="optionsData[0].name" :options="options" />
    </div>
    <div class="b">
      <CharsAndTitle titleText="当前安检任务统计" :options="options2" />
    </div>
  </div>
</template>

<script>
import CharsAndTitle from "@/components/CharsCom/CharsAndTitle.vue/";
import {
  userCurrentInspectStatistic,
  userCurrentTaskStatistic,
} from "@/api/screenstatistic/statistic.js";

export default {
  name: "",
  components: {
    CharsAndTitle,
  },
  data() {
    return {
      optionsData: [
        {
          name: "楼道存在安全隐患住宅",
          value: "0",
        },
      ],
      charsData: [
        { x: "1月", a: 0 },
        { x: "2月", a: 0 },
        { x: "3月", a: 0 },
        { x: "4月", a: 0 },
        { x: "5月", a: 0 },
        { x: "6月(当前)", a: 0 },
      ],
      options: {},
      options2: {},
    };
  },
  mounted() {
    // 巡检图表

    // 任务
    this.userCurrentTaskStatistic({ type: 1 }).then((res) => {
      if(!res.data){
        this.setOptions(this.optionsData);
        return;
      }

      this.optionsData = [
        {
          name: res.data.title,
          value: res.data.percent,
        },
      ];

      this.setOptions(this.optionsData);
    });
    this.userCurrentInspectStatistic({ type: 1 }).then((res) => {

      if(!res.data || res.data.length == 0){
        this.setOptions2(this.charsData);
        return;
      }

      this.charsData = res.data.map((item, index) => {
        let x =
          index == res.data.length - 1
            ? item.month + "月(当前)"
            : item.month + "月";

        return {
          x,
          a: item.inspectNum,
        };
      });

      this.setOptions2(this.charsData);
    });
  },
  methods: {
    userCurrentInspectStatistic(obj) {
      return userCurrentInspectStatistic(obj);
    },
    userCurrentTaskStatistic(obj) {
      return userCurrentTaskStatistic(obj);
    },
    setOptions(optionsData) {
      const leftText = optionsData.map((item) => {
        return item.name;
      });
      const rightValue = optionsData.map((item) => {
        return item.value;
      });
      console.log("rightValue", rightValue);
      this.options = {
        xAxis: {
          show: false,
          type: "value",
          lineStyle: {
            color: "#ffffff",
            type: "dashed",
          },
          axisTick: {
            show: true,
          },
          axisLine: {
            show: true,
            lineStyle: {
              color: "rgba(19, 135, 167, 1)",
            },
          },
          // 是否显示刻度延长线
          splitLine: {
            show: false,
          },
          min: 0,
          max: 100,
          // 文字样式
          axisLabel: {
            show: true,
            color: "#ffffff",
          },
        },
        yAxis: [
          // {
          //   type: "category",
          //   data: leftText.reverse(),
          //   // 轴线样式
          //   axisLine: {
          //     show: false,

          //     lineStyle: {
          //       color: "rgba(19, 135, 167, 1)",
          //     },
          //   },

          //   // 文字样式
          //   axisLabel: {
          //     color: "#ffffff",
          //     align: "left",
          //     margin: 130,
          //   },
          //   // 刻度延长线样式
          //   splitLine: {
          //     show: false,
          //     lineStyle: {
          //       color: "rgba(19, 135, 167, .5)",
          //       type: "dashed",
          //     },
          //   },
          //   //刻度
          //   axisTick: {
          //     show: false,
          //   },
          // },
          // 最右边的y轴
          {
            type: "category",
            name: "right",
            // data: rightValue,
            data: [...rightValue].reverse(),

            position: "right",
            show: true,
            axisLabel: {
              formatter: "{value}" + "%",
              align: "right",
              margin: 40,
              fontSize: 18,
              fontWeight: 500,
            },
            axisLine: {
              show: false,
              lineStyle: {
                color: "rgba(19, 250, 223, 1)",
              },
            },
            axisTick: {
              show: false,
            },
          },
        ],
        // 位置与大小
        grid: {
          left: "0%",
          right: "10%",
          top: "0%",
          bottom: "0%",
        },
        series: [
          {
            // realtimeSort: true,
            // 是否显示底黑
            showBackground: true,
            backgroundStyle: {
              color: "rgba(0,0,0,1)",
            },
            barWidth: 15,

            name: "X",
            type: "bar",
            data: rightValue.reverse(),
            // data: [20, 7, 7, 7, 9],
            // 柱形样式
            itemStyle: {
              color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
                {
                  offset: 0,
                  color: "rgba(19, 250, 223, 1)",
                },
                {
                  offset: 1,
                  color: "rgba(2, 137, 255, 1)",
                },
              ]),
              barBorderRadius: [0, 13, 13, 0],
            },
            // 跟随文字
            // label: {
            //   show: false,
            //   gridIndex: 1,
            //   position: "right",
            //   color: "#ffffff",
            //   valueAnimation: true,
            //   formatter: "{c} ",
            // },
          },
        ],
      };
    },

    setOptions2(optionsData) {
      // const leftText = optionsData.map((item) => {
      //   return item.name;
      // });
      // const rightValue = optionsData.map((item) => {
      //   return item.value;
      // });
      // console.log("rightValue", rightValue);
      const xData = optionsData.map((item) => {
        return item.x;
      });
      const aData = optionsData.map((item) => {
        return item.a;
      });
      this.options2 = {
        // backgroundColor: "#0E1327",
        grid: {
          containLabel: true,
          bottom: "0%",
          top: "10%",
          left: "0%",
          right: "0%",
        },
        // tooltip: {
        // trigger: "axis",
        // axisPointer: {
        //   type: "shadow",
        // },
        // },
        legend: {
          show: false,
          top: "0%",
          right: "45%",
          data: ["计划出货", "实际出货"],
          itemWidth: 15,
          itemHeight: 10,
          // itemGap: 30,
          textStyle: {
            fontSize: 12,
            color: "#C9D2FA",
            padding: [0, 0, 0, 1],
          },
        },
        xAxis: {
          // name: "班级",
          triggerEvent: true,
          data: xData,
          axisLabel: {
            show: true,
            fontSize: 10,
            color: "#ffffff",
            // rotate: 10, // 设置旋转角度为30度
            align: "center",
            verticalAlign: "top",
          },
          axisLine: {
            show: true,
            lineStyle: {
              show: false,
              color: "#4BA5F4",
              width: 1,
            },
          },

          axisTick: {
            show: true,
            inside: true,
          },
        },
        yAxis: [
          {
            // name: '单位:万',
            // type: 'value',
            // nameTextStyle: {
            //   color: '#444444',
            // },
            axisLabel: {
              interval: 0,
              show: true,
              fontSize: 12,
              color: "#ffffff",
            },
            axisLine: {
              show: false,
              // lineStyle: {
              //   color: "#F3F3F3",
              //   width: 2
              // }
            },
            axisTick: {
              show: false,
            },
            splitLine: {
              lineStyle: {
                type: "dashed",
                color: "#256196",
              },
            },
          },
        ],
        series: [
          {
            name: "计划出货",
            type: "bar",
            silent: true,
            itemStyle: {
              // normal: {
              color: new this.$echarts.graphic.LinearGradient(0, 1, 0, 0, [
                {
                  offset: 0,
                  color: "rgba(19, 250, 223, 1)",
                },
                {
                  offset: 1,
                  color: "rgba(2, 137, 255, 1)",
                },
              ]),
              barBorderRadius: [10, 10, 0, 0],
              // },
            },
            barWidth: 8,

            // label: {
            //   show: true,
            //   color: "#2F8FFF",
            //   fontSize: 14,
            //   position: "top", // 显示位置，可选值有 'top', 'bottom', 'inside', 'outside'
            //   formatter: "{c}", // 标签内容格式器，这里表示显示数据值
            // },
            data: aData,
          },
        ],
      };
    },
  },
};
</script>
<style lang="scss" scoped>
.l-m {
  width: 100%;
  height: 100%;
  .t {
    height: 60px;
  }
  .b {
    flex: 1;
  }
}
</style>
