<template>
  <d2-container class="business client">
    <headerLayout active="3"></headerLayout>
    <div class="section">
      <div class="leftBlock">
        <div class="boxHeight-3">
          <div class="title">客户统计</div>
          <div class="businessStatistics d-flex">
            <div class="circle">客户统计</div>
            <div class="circle circleOut"></div>
            <div class="flex-1">
              <div class="box">
                <div class="boxTitle">客户总数<span>(个)</span></div>
                <div class="boxValue">{{totalObj.allCustomer }}</div>
              </div>
              <div class="box">
                <div class="boxTitle">商机客户<span>(个)</span></div>
                <div class="boxValue">{{totalObj.opportunitiesCustomer }}</div>
              </div>
            </div>
            <div class="horizontal"></div>
            <div class="flex-1">
              <div class="box">
                <div class="boxTitle">集成商<span>(个)</span></div>
                <div class="boxValue">{{totalObj.projectCustomer }}</div>
              </div>
              <div class="box">
                <div class="boxTitle">本年新增<span>(个)</span></div>
                <div class="boxValue">{{totalObj.newCustomer }}</div>
              </div>
            </div>
            <div class="horizontal"></div>
            <div class="flex-1">
              <div class="box">
                <div class="boxTitle">优秀案例<span>(个)</span></div>
                <div class="boxValue">{{totalObj.excellentCustomer }}</div>
              </div>
              <div class="box">
                <div class="boxTitle">本年活跃<span>(个)</span></div>
                <div class="boxValue">{{totalObj.activeCustomer }}</div>
              </div>
            </div>
            <div class="horizontal horizontal1 "></div>
            <div class="horizontal horizontal1 horizontal2"></div>
            <div class="vertical"></div>
          </div>
        </div>
        <div class="boxHeight-3 mt-2">
          <div class="title">行业分布</div>
          <pieChart :message="typeDistribute" :noDrill="true" idstr="customTypeDistribute" class="heightCut44"></pieChart>
        </div>
        <div class="boxHeight-3 mt-2">
          <div class="title">地区分布</div>
          <barChart :message="customDistribute" idstr="customDistribute" class="heightCut44 mt-2"></barChart>
        </div>
      </div>
        <div class="centerBlock">
            <div class="centerBoxHeight-32 content">
              <div class="d-flex search-box jc-center">
                <div class="search">
                  <el-autocomplete
                      class="inline-input"
                      v-model="state"
                      size="mini"
                      clearable
                      :fetch-suggestions="querySearch"
                      placeholder="请输入公司名称"
                      :trigger-on-focus="false"
                      @select="handleSelect"
                  ></el-autocomplete>
                  <el-button class="searchBtn" type="text">搜索</el-button>
                </div>
              </div>
              <div class="searchMsg d-flex flex-column">
                <div class="row-item d-flex jc-between">
                  <div class="flex-1">
                      <span class="babel">客户名称</span>
                      <span class="babelMsg pr-24">{{ companyInfo.customerName|| '无' }}</span>
                  </div>
                  <div class="flex-1">
                    <span class="babel">客户规模</span>
                    <span class="babelMsg">{{companyInfo.customerSize}}</span>
                  </div>
                </div>
                <div class="row-item d-flex jc-between">
                  <div class="flex-1"><span class="babel">客户属性</span><span class="babelMsg pr-24">{{companyInfo.customerAttribute}}</span></div>
                  <div class="flex-1"><span class="babel">所在省份</span><span class="babelMsg">{{companyInfo.province}}</span></div>
                </div>
                <div class="row-item d-flex jc-between">
                  <div class="flex-1"><span class="babel">联系人</span><span class="babelMsg pr-24">{{ companyInfo.applicantName ||'无' }}</span></div>
                  <div class="flex-1"><span class="babel">协同销售</span><span class="babelMsg">{{companyInfo.salesName}}</span></div>
                </div>
                <div class="row-item d-flex jc-between">
                  <div class="flex-1"><span class="babel">主责任人</span><span class="babelMsg pr-24">{{ companyInfo.chargePersonName ||'无' }}</span></div>
                  <div class="flex-1"><span class="babel">项目数</span><span class="babelMsg">{{companyInfo.projectNum}}</span></div>
                </div>
                <div class="row-item d-flex jc-between">
                  <div class="flex-1"><span class="babel">商机数</span><span class="babelMsg">{{companyInfo.nicheNum}}</span></div>
                </div>
                <div class="row-item d-flex jc-between">
                  <div class="flex-1">
                    <span class="babel">联系方式</span>
                    <span class="babelMsg">{{companyInfo.postalAddress || '无'}}</span>
                  </div>
                </div>
                <div class="row-item d-flex jc-between">
                  <div class="flex-1">
                    <span class="babel">备注说明</span>
                    <span class="babelMsg">{{companyInfo.remark || '无'}}</span>
                  </div>
                </div>
                <div class="row-product mt-2">
                  <div class="c-list">
                    <div class="c-title d-flex">
                      <span class="flex-1">序号</span>
                      <span class="flex-4">项目名称</span>
                    </div>
                    <div class="list-body d-flex" v-for="(item,index) in companyInfo.projects" :key="index">
                      <span class="flex-1">{{index+1}}</span>
                      <span class="flex-4">{{item}}</span>
                    </div>
                  </div>
                </div>
                <div class="row-business mt-2">
                  <div class="c-list">
                    <div class="c-title d-flex">
                      <span class="flex-1">序号</span>
                      <span class="flex-4">商机名称</span>
                    </div>
                    <div class="list-body d-flex" v-for="(item,index) in companyInfo.niches" :key="index">
                      <span class="flex-1">{{index+1}}</span>
                      <span class="flex-4">{{item}}</span>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="centerBoxHeight-3 mt-2">
                <div class="title">客户合同分析</div>
                <mulBarChart :message="clientAnalysis" idstr="clientAnalysis" class="heightCut44 mt-1"></mulBarChart>
            </div>
        </div>
        <div class="rightBlock">
            <div class="boxHeight-3">
              <div class="title">服务分析</div>
              <serviceAnalysis class="heightCut44" />
            </div>
            <div class="boxHeight-3 mt-2">
              <div class="title">重要客户</div>
              <div class="d-flex search-box jc-end">
                <el-select v-model="selectYear" size="mini" @change="getImportantCus">
                    <el-option
                        v-for="item in yearList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id">
                    </el-option>
                </el-select>
              </div>
              <div class="customer-list">
                  <div class="customer-name" v-for="(item,index) in customerList" :key="index">{{item}}</div>
              </div>
            </div>
            <div class="boxHeight-3 mt-2">
              <div class="title">合作伙伴</div>
              <div class="iconBlock">
                  <i class="icon20 icon-datangjituan"></i>
                  <i class="icon20 icon-zhongguoshiyou"></i>
                  <i class="icon20 icon-changjiangdianli"></i>
                  <i class="icon5 icon-guojiadianwang"></i>
              </div>
            </div>
        </div>
    </div>
  </d2-container>
</template>

<script>
import headerLayout from '@/components/headerLayout/index' // 公共头部
import pieChart from '@/components/echarts/pieChart' // 行业分布-饼图
import barChart from '@/components/echarts/barChart' // 柱图
import mulBarChart from '@/components/echarts/mulBarChart'
import serviceAnalysis from './components/serviceAnalysis'
import * as API_CLIENT from '@/api/con.client.js'

export default {
  components: { headerLayout, pieChart, barChart, mulBarChart, serviceAnalysis },
  data () {
    return {
      totalObj: {}, // 客户数据
      typeDistribute: {}, // 业务分布
      customDistribute: {}, // 地区分布
      clientAnalysis: {}, // 客户分析
      state: '',
      companyInfo: {},
      selectYear: '1', // 选中重要客户项
      yearList: [
        { id: '1', name: '综合' },
        { id: '2', name: '按资金' },
        { id: '3', name: '按项目' }
      ], // 重要客户下拉框
      customerList: [] // 重要客户
    }
  },
  mounted () {
    this.getCustomerByProvince()
    this.getDistribution()
    this.getCustomerByAmount()
    this.getImportantCus()
    this.getStatisticsCustomer()
  },
  methods: {
    // 客户统计
    async getStatisticsCustomer () {
      const _data = await API_CLIENT.getStatisticsCustomer()
      this.totalObj = _data.data
    },
    // 行业分布
    async getDistribution () {
      const _data = await API_CLIENT.getCustomerByCustomerAttribute()
      const _distribute = {
        legend: _data.data.legend,
        data: _data.data.data.map(item => {
          return {
            name: item.name,
            value: Number(item.number)
          }
        })
      }
      this.typeDistribute = _distribute
    },
    // 客户地区分布
    async getCustomerByProvince () {
      const _data = await API_CLIENT.getCustomerByProvince()
      this.customDistribute = _data.data
      this.customDistribute.yAxis = '单位 :个'
    },
    // 合同分布
    async getCustomerByAmount () {
      const _data = await API_CLIENT.getCustomerByAmount()
      this.clientAnalysis = _data.data
    },
    // 中要客户
    async getImportantCus () {
      const _data = await API_CLIENT.getImportantCus({ type: this.selectYear })
      this.customerList = _data.data.map(item => item.customerName)
      this.handleSelect(_data.data[0])
    },
    // 输入公司名称触发
    querySearch (queryString, cb) {
      API_CLIENT.GetCustomerName({ customerName: queryString }).then(res => {
        const customerData = res.data
        for (var i = 0; i < customerData.length; i++) {
          customerData[i].value = customerData[i].customerName
        }
        cb(customerData)
      })
    },
    // 点击下拉列表出发
    handleSelect (item) {
      API_CLIENT.GetCustomerId(item.id).then(res => {
        this.companyInfo = res.data
      })
    }
  }
}
</script>

<style lang="scss" scoped>
  @import '~@/assets/style/business.scss';
  @import '~@/assets/style/client.scss';
</style>
<style lang="scss">
</style>