<!--
 描述: 旋转多彩图
 作者: Jack Chen
 日期: 2020-04-19
-->

<template>
  <div class="wrap-container sn-container">
    <div class="sn-content">
      <div class="sn-title">旋转多彩图</div>
      <div class="sn-body">
        <div class="wrap-container">
          <div class="pie">
            <div class="pies pie1"></div>
            <div class="pies pie2"></div>
            <div class="pies pie3"></div>
            <div class="pie4"></div>
          </div>
          <div class="chartsdom" id="chart_rotate"></div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: `rotateColorful`,
  data() {
    return {
      option: null,
    }
  },
  mounted() {
    this.getEchart()
  },
  methods: {
    getEchart() {
      let myChart = echarts.init(document.getElementById(`chart_rotate`))
      this.option = {
        tooltip: {
          trigger: `item`,
          formatter: `{a} <br/>{b} : {c} ({d}%)`,
        },
        legend: {
          show: true,
          orient: `vertical`,
          left: `center`,
          top: `middle`,
          data: [`内存`, `存储`],
          textStyle: {
            color: `#4ce5ff`,
            fontSize: 14,
          },
          itemWidth: 20,
          itemHeight: 10,
        },
        label: {
          normal: {
            show: false,
          },
        },
        labelLine: {
          normal: {
            show: false,
          },
        },
        series: [
          {
            name: `磁盘空间`,
            type: `pie`,
            radius: [60, 110],
            center: [`50%`, `50%`],
            roseType: `area`,
            label: {
              show: false,
            },
            emphasis: {
              label: {
                show: false,
              },
            },
            data: [
              {
                value: 6.5,
                name: `内存`,
                itemStyle: {
                  normal: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                      {
                        offset: 0,
                        color: `#387ed3`,
                      },
                      {
                        offset: 1,
                        color: `#bc8b68`,
                      },
                    ]),
                  },
                },
              },
              {
                value: 3.5,
                name: `存储`,
                itemStyle: {
                  normal: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                      {
                        offset: 0,
                        color: `#188bfd`,
                      },
                      {
                        offset: 1,
                        color: `#51eeff`,
                      },
                    ]),
                  },
                },
              },
              {
                value: 0,
                name: `其他`,
                itemStyle: {
                  normal: {
                    color: `rgba(0, 0, 0, 0)`,
                  },
                },
              },
              {
                value: 0,
                name: `其他1`,
                itemStyle: {
                  normal: {
                    color: `rgba(0, 0, 0, 0)`,
                  },
                },
              },
              {
                value: 0,
                name: `其他2`,
                itemStyle: {
                  normal: {
                    color: `rgba(0, 0, 0, 0)`,
                  },
                },
              },
              {
                value: 0,
                name: `其他3`,
                itemStyle: {
                  normal: {
                    color: `rgba(0, 0, 0, 0)`,
                  },
                },
              },
            ],
          },
        ],
      }

      myChart.setOption(this.option, true)

      window.addEventListener(`resize`, () => {
        myChart.resize()
      })
    },
  },
  beforeDestroy() {},
}
</script>

<style lang="scss" scoped>
.sn-container {
  left: 512px;
  top: 1120px;
  width: 432px;
  height: 400px;
  .chartsdom {
    width: 100%;
    height: 100%;
  }

  .pie {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    .pies {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background-repeat: no-repeat;
      background-position: center center;
    }
    .pie1 {
      background-image: url(../../assets/img/whcircle.png);
      animation: mymove 20s linear infinite;
      -webkit-animation: mymove 20s linear infinite;
    }
    .pie2 {
      background-image: url(../../assets/img/circle2.png);
      animation: moveto 20s linear infinite;
      -webkit-animation: moveto 20s linear infinite;
    }
    .pie3 {
      background-image: url(../../assets/img/inner.png);
    }
    .pie4 {
      position: absolute;
      top: 50%;
      left: 36%;
      width: 76px;
      height: 1px;
      background: linear-gradient(
        to right,
        rgb(31, 38, 103),
        rgb(90, 250, 253),
        rgb(31, 38, 103)
      );
    }
  }
}

@-webkit-keyframes mymove {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes mymove {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-webkit-keyframes moveto {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(-360deg);
    transform: rotate(-360deg);
  }
}
@keyframes moveto {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate(-360deg);
    transform: rotate(-360deg);
  }
}
</style>
