<style lang="less">
    @import url('../../../../styles/common.less');
    #shopVersionFormEmpAna{
        min-height:100%;
        display:flex;
        flex-direction: column;
        background: #DCE9FE;
        .HEADER{

        }
        .CONTENT{
            height:100%;
            // height:1px;
            // flex-grow: 1;
            // overflow-y: scroll;
            // -webkit-overflow-scrolling: touch;
            .iCard{
                height:260px;
                >p{
                    margin:0;
                    height:30px;
                    line-height: 30px;
                    background: linear-gradient(90deg,#708bf6, #2d8cf0, #00B2EE);
                    color: #fff;
                    text-align: center;
                }
            }
            .iCard:last-child{
                margin-bottom:8px;
            }
        }
        .noData{
            height: calc(100% - 30px);
            width:100%;
            img{
                width: 100%;
                height: 100%;
            }
        }
    }
</style>

<template>
    <div id="shopVersionFormEmpAna">
        <div class="HEADER">
            <searchComponent placeholder="请输入单号/客户进行搜索" :search="search" :typeList="typeList"/>
        </div>
        <div class="CONTENT">
            <div class="iCard" ref="chart1">
                <p>前十名员工(联动)</p>
                <canvas id="chart1" v-if="chartData1.length > 0" width="400" height="260" style="width:100%;height:240px;"></canvas>
                <div class="noData" v-if="chartData1.length <= 0">
                    <img src="../../../../assets/noData.jpg" class="_img" alt="">
                </div>
            </div>
            <div class="iCard" ref="chart2">
                <p>{{title}}每月回款率</p>
                <canvas id="chart2" v-if="chartData2.length > 0" width="400" height="260" style="width:100%;height:240px;"></canvas>
                <div class="noData" v-if="chartData2.length <= 0">
                    <img src="../../../../assets/noData.jpg" class="_img" alt="">
                </div>
            </div>
            <div class="iCard" ref="chart3">
                <p>{{title}}按月统计订单金额</p>
                <canvas id="chart3" v-if="chartData3.length > 0" width="400" height="260" style="width:100%;height:240px;"></canvas>
                <div class="noData" v-if="chartData3.length <= 0">
                    <img src="../../../../assets/noData.jpg" class="_img" alt="">
                </div>
            </div>
        </div>
    </div>
</template>

<script>
import Util from '@/libs/util.js'
import { mapState } from 'vuex'
import searchComponent from '@/components/search'
import { employees } from './mixins/employees'
import { receivable } from './mixins/receivable'
import { orderAmount } from './mixins/orderAmount'

export default {
    name: 'shopVersionFormEmpAna',
    mixins: [employees,receivable,orderAmount],
    data () {
        return {
            search:{
                dBeginDate:Util.dateFormat(new Date(),'yyyy-MM-01'),
                dEndDate:Util.dateFormat(new Date(),'yyyy-MM-dd')
            },
            typeList:{time:true},
            direction:'vertical',
            tempChartData2:[],
            tempChartData3:[],
            title:''
        }
    },
    computed:{
        ...mapState({
            iProjectId:state => state.app.iProjectId,
        })
    },
    async mounted(){
        this.$store.dispatch('saveUserId',this.$route.params.userId);
        window.addEventListener("resize",()=>{
            setTimeout(async ()=>{
                this.renderResize();
                if(this.chartData1.length > 0){
                    this.chart1.changeSize(this.$refs['chart1'].offsetWidth); // 清除
                    this.chart1.destroy();
                }
                if(this.chartData2.length > 0){
                    this.chart2.changeSize(this.$refs['chart2'].offsetWidth); // 清除
                    this.chart2.destroy();
                }
                if(this.chartData3.length > 0){
                    this.chart3.changeSize(this.$refs['chart3'].offsetWidth); // 清除
                    this.chart3.destroy();
                }

                if(this.chartData1.length > 0){
                    await this.renderChart1();
                }
                if(this.chartData2.length > 0){
                    await this.renderChart2();
                }
                if(this.chartData3.length > 0){
                    await this.renderChart3();
                }
            })
        });
        
        this.$nextTick(async ()=>{
            this.renderResize();
            await this.getData();
            if(this.chartData1.length > 0){
                await this.renderChart1();
            }
            if(this.chartData2.length > 0){
                await this.renderChart2();
            }
            if(this.chartData3.length > 0){
                await this.renderChart3();
            }
        })

        window.d = this;
        this.global.$off('searchData');
        //查询条件触发加载
        this.global.$on('searchData',async ()=>{
            this.chartData1 = [];
            this.chartData2 = [];
            this.chartData3 = [];
            if(this.chartData1.length > 0){
                await this.chart1.destroy();
            }
            if(this.chartData2.length > 0){
                await this.chart2.destroy();
            }
            if(this.chartData3.length > 0){
                await this.chart3.destroy();
            }

            await this.getData();
            // this.chart1.changeData(this.chartData1)

            if(this.chartData1.length > 0){
                await this.renderChart1();
            }
            if(this.chartData2.length > 0){
                await this.renderChart2();
            }
            if(this.chartData3.length > 0){
                await this.renderChart3();
            }
        });
    },
    async activated(){
        
    },
    methods:{
        renderResize() {
            // 判断横竖屏
            let width = document.documentElement.clientWidth;
            let height = document.documentElement.clientHeight;
            if(width > height) {
                this.direction = 'cross';
            }else{
                this.direction = 'vertical';
            }
        },
        async getData(){
            let data = Util.deepClone(this.search);
            let res = await this.request('getCipSalesinfo',{
                data:{
                    dStartDate:data.dBeginDate,
                    dEndDate:data.dEndDate
                },
                params:{},
            },'加载中',{iProjectId:this.iProjectId})
            this.chartData1 = res.set1;
            if(this.chartData1.length > 0){
                this.title = res.set1[0].sSalesName;

                this.tempChartData2 = Util.deepClone(res.set2);
                this.tempChartData3 = Util.deepClone(res.set3);

                this.chartData2 = res.set2.filter(x=>x.iSalesId == this.chartData1[0].iSalesId);
                this.chartData3 = res.set3.filter(x=>x.iSalesId == this.chartData1[0].iSalesId);
            }
        },
    },
    components:{
        searchComponent
    },
}
</script>