<!--
 * @Author: your name
 * @Date: 2021-10-12 15:06:47
 * @LastEditTime: 2021-10-26 18:55:53
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: /data-show/src/views/BrandInsight/weiboPortraits/index.vue
-->
<template>
    <div class="wp-outter" v-loading="load">
        <v-label-div title="微博人物画像" :showLine="false" :eStyle="{ 'border-style': 'none' }">
            <v-tab-group :btns="['性别', '认证', '地区']" @change="handlerTab"></v-tab-group>
        </v-label-div>
        <div class="wp-inner">
            <div class="wp-in-d1">
                <v-echarts :opt="opt"></v-echarts>
            </div>
            <div class="wp-in-d2">
                <vue-scroll>
                    <v-label-ctx v-for="(item,index) in labelData" :key="index" :label="item.key" :cont="item.value" :percentage="(item.value/totalData*100).toFixed(2) +'%'" :color="colors[index]" :eStyle="{ height: '7.6rem' }"></v-label-ctx>
                </vue-scroll>
            </div>
        </div>
    </div>
</template>

<script>
import { getSexMergeWeiBo } from "@/api/BrandInsight";
import createOpt from "./opt";
export default {
    name: "weiboPortraits",
    props: ["brand"],
    data() {
        return {
            form: {
                sBrand: "",
                token: "",
            },
            load: false,
            attestation: [], // 认证
            sex: [], // 性别
            region: [], // 地区
            opt: {},
            labelData: [],
            totalData: 0,
            colors: [
                "#54BF93",
                "#3373CC",
                "#CC9D12",
                "#f15c80",
                "#e4d354",
                "#8085e8",
                "#8d4653",
                "#91e8e1",
                "#f7a35c",
                "#90ed7d",
                "#54BF93",
                "#3373CC",
                "#CC9D12",
                "#f15c80",
                "#e4d354",
                "#8085e8",
                "#8d4653",
                "#91e8e1",
                "#f7a35c",
                "#90ed7d",
            ],
        };
    },
    created() {
        this.form.token = this.getToken;
        this.form.sBrand = this.brand;
        this.getData();
    },
    methods: {
        // 切换数据
        handlerTab(n) {
            if (n === 0) {
                this.labelData = this.sex;
                let total = 0;
                this.sex.forEach((ele) => {
                    total += ele.value * 1;
                });
                this.totalData = total;
                this.opt = createOpt(this.sex, [
                    "#54BF93",
                    "#3373CC",
                    "#CC9D12",
                ]);
            } else if (n === 1) {
                this.labelData = this.attestation;
                let total = 0;
                this.attestation.forEach((ele) => {
                    total += ele.value  * 1;
                });
                this.totalData = total;
                this.opt = createOpt(this.attestation, this.colors);
            } else {
                this.labelData = this.region;
                console.log(this.labelData)
                let total = 0;
                this.region.forEach((ele) => {
                    total += ele.value * 1;
                });
                this.totalData = total;
                this.opt = createOpt(this.region, this.colors);
            }
        },
        // 获取数据
        getData() {
            this.load = true;
            let obj = Object.assign({}, this.getCommTime, this.form);
            getSexMergeWeiBo(obj).then((res) => {
                let data = res.data;
                let attestation = data.attestation || {};
                let sex = data.sex || {};
                let region = data.RegionWeiBo || {};
                let total = 0;
                let wSex = [];
                for (let key in sex) {
                    let obj = {
                        key: key,
                        value: sex[key],
                    };
                    total += sex[key] * 1;
                    wSex.push(obj);
                }
                let wAttestation = [];
                for (let key in attestation) {
                    let obj = {
                        key: key,
                        value: attestation[key],
                    };
                    wAttestation.push(obj);
                }
                let wRegion = [];
                for (let key in region) {
                    let obj = {
                        key: key,
                        value: region[key],
                    };
                    wRegion.push(obj);
                }
                this.sex = wSex;
                this.attestation = wAttestation;
                this.region = wRegion;
                this.totalData = total;
                this.labelData = this.sex;
                this.opt = createOpt(this.sex, [
                    "#54BF93",
                    "#3373CC",
                    "#CC9D12",
                ]);
                this.load = false;
            });
        },
    },
};
</script>

<style lang="less" scoped>
.wp-outter {
    width: 628px;
    height: 412px;
    margin-left: 16px;
    .wp-inner {
        width: 100%;
        height: calc(100% - 48px);
        display: flex;
        justify-content: flex-start;
        .wp-in-d1 {
            width: 310px;
            height: 100%;
        }
        .wp-in-d2 {
            width: 310px;
            height: auto;
            margin-left: 16px;
        }
    }
}
</style>
