<template>
  <div class="app-container part-container details-of-party">
    <Header :company-id="companyId" :companyInfo="companyInfo" :cooDetail="cooDetail" v-if="companyId" @close-detail="closeDetail" />
    <div class="flex-box part-main">
      <div class="part-left">
        <side-bar :statisticObj="statisticObj" ref="sidebar" @currentPath="showPartPage" :pathName="currentPath.pathName"
          :partBoxHeight="partBoxHeight" :customerId="customerId" :isCompany="isCompany" :isCustomer="isCustomer" />
      </div>
      <div class="part-right">
        <div id="partBox" v-if="companyId" class="part-common-container-style">
          <template v-if="isCompany">
            <!-- 企业概览 -->
            <Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :isSkeleton="isSkeleton" :companyInfo="companyInfo" />
            <Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" />
            <Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
            <Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
            <Overseas v-if="currentPath.pathName=='overseas'" :company-id="companyId" />
            <Branch v-if="currentPath.pathName=='branch'" :company-id="companyId" />
            <Financial v-if="currentPath.pathName=='financial'" :company-id="companyId" />
            <!-- 项目商机 -->
            <major-project v-if="currentPath.pathName=='majorProject'" :company-id="companyId"></major-project>
            <Landtransaction v-if="currentPath.pathName=='landtransaction'" :company-id="companyId" />
            <Proposed v-if="currentPath.pathName=='proposed'" :company-id="companyId" />
            <Bond v-if="currentPath.pathName=='bond'" :company-id="companyId" />
            <Biddingplan v-if="currentPath.pathName=='biddingplan'" :company-id="companyId" />
            <Announcement v-if="currentPath.pathName=='announcement'" :company-id="companyId" />
            <Tencent v-if="currentPath.pathName=='tencent'" :company-id="companyId" />
            <Administrative v-if="currentPath.pathName=='administrative'" :company-id="companyId" />
            <!-- 业务往来 -->
            <Custom v-if="currentPath.pathName=='custom'" :company-id="companyId" />
            <Supplier v-if="currentPath.pathName=='supplier'" :company-id="companyId" />
            <Bidagency v-if="currentPath.pathName=='bidagency'" :company-id="companyId" />
            <Hiscontract v-if="currentPath.pathName=='hiscontract'" :company-id="companyId" />
            <Bidrecords v-if="currentPath.pathName=='bidrecords'" :company-id="companyId" />
            <!-- 投诚分析 -->
            <RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" :companyInfo="companyInfo" />
            <LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" />
            <SameRegion v-if="currentPath.pathName=='sameRegion'" :company-id="companyId" :companyInfo="companyInfo" />
            <!-- 风险信息 -->
            <Punish v-if="currentPath.pathName=='punish'" :company-id="companyId" />
            <BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" :company-id="companyId" />
            <IfThePerson v-if="currentPath.pathName=='ifThePerson'" :company-id="companyId" />
            <Dishonesty v-if="currentPath.pathName=='dishonesty'" :company-id="companyId" />
            <Judgment v-if="currentPath.pathName=='judgment'" :company-id="companyId" />
            <CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
            <OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" />
          </template>
          <template v-if="customerId && isCustomer">
            <!-- 商务信息 -->
            <Business v-if="currentPath.pathName=='business'" :customer-ids="customerId" :companyInfo="companyInfo" :customerInfo="customerInfo" />
            <!-- 招标偏好 -->
            <Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" :customerInfo="customerInfo" />
            <!-- 合作情况 -->
            <Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" :cooDetail="cooDetail"
              :customerInfo="customerInfo" @detail="cooperateDetail" />
            <!-- 决策链条 -->
            <DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo"
              :customerInfo="customerInfo" />
            <!-- 跟进记录 -->
            <Gjjl v-if="currentPath.pathName=='gjjl'" :isDisabled='false' types="gjdt" :customer-ids="customerId" />
          </template>

        </div>
      </div>
    </div>
  </div>
</template>

<script>
import { idRemark } from '@/api/common';
import { infoHeader, statistic } from '@/api/detail/party-a/index';
import { customerInfo } from '@/api/detail/party-a/cooperate';
import elementResizeDetectorMaker from "element-resize-detector";
import Header from "./component/Header";
import SideBar from "./component/Sidebar";
import Overview from "./overview/overview";  //企业概览-企业速览
import Businfo from "./overview/businfo";   //企业概览-工商信息
import Holderinfo from "./overview/holderinfo";   //企业概览-股东信息
import Execuinfo from "./overview/execuinfo";   //企业概览-高管信息
import Overseas from "./overview/overseas";   //企业概览-对外投资
import Branch from "./overview/branch";   //企业概览-分支机构
import Financial from "./financial"; //财务简析
//import Business from "./business" //商务信息
import MajorProject from "./opport/MajorProject.vue"; //项目商机-重点项目
import Landtransaction from "./opport/landtransaction";  //项目商机-土地交易
import Proposed from "./opport/proposed";  //项目商机-拟建项目
import Bond from "./opport/bond";  //项目商机-专项债项目
import Biddingplan from "./opport/biddingplan";  //项目商机-招标计划
import Announcement from "./opport/announcement";  //项目商机-招标公告
import Tencent from "./opport/tencent";  //项目商机-标讯Pro
import Administrative from "./opport/administrative";  //项目商机-行政许可
import Custom from "./dealings/custom";  //业务往来-客户
import Supplier from "./dealings/supplier";  //业务往来-供应商
import Bidagency from "./dealings/bidagency";  //业务往来-招标代理
import Hiscontract from "./dealings/hiscontract";  //业务往来-历史发包
import Bidrecords from "./dealings/bidrecords";  //业务往来-开标记录
import LandAcquisition from "./urbanLnvestment/landAcquisition"; //投诚分析-城投拿地
import RegionalEconomies from "./urbanLnvestment/regionalEconomies"; //投诚分析-区域经济
import SameRegion from "./urbanLnvestment/sameRegion"; //投诚分析-同地区城投
import Punish from "./riskInformation/punish"; //风险信息-行政处罚
import BusinessAnomaly from "./riskInformation/businessAnomaly"; //风险信息-经营异常
import IfThePerson from "./riskInformation/ifThePerson"; //风险信息-被执行人
import Dishonesty from "./riskInformation/dishonesty"; //风险信息-失信被执行
import Judgment from "./riskInformation/judgment"; //风险信息-判决文书
import CourtNotice from "./riskInformation/courtNotice"; //风险信息-法院公告
import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice"; //风险信息-开庭公告
import Business from "./business"; //商务信息
import Preference from "./preference"; //招标偏好
import Cooperate from "./cooperate"; //合作情况
import DecisionMaking from "./decisionMaking"; //决策链条
import Gjjl from "../../project/projectList/component/gjjl"; //跟进记录
import {
  urbanInvestmentPage,
} from '@/api/detail/party-a/urbanLnvestment';
export default {
  name: 'PartyA',
  components: {
    Header,
    SideBar,
    Overview,
    Businfo,
    Holderinfo,
    Execuinfo,
    Overseas,
    Branch,
    Financial,
    // Business,
    MajorProject,
    Landtransaction,
    Proposed,
    Bond,
    Biddingplan,
    Announcement,
    Tencent,
    Administrative,
    Custom,
    Supplier,
    Bidagency,
    Hiscontract,
    Bidrecords,
    LandAcquisition,
    RegionalEconomies,
    SameRegion,
    Punish,
    BusinessAnomaly,
    IfThePerson,
    Dishonesty,
    Judgment,
    CourtNotice,
    OpenacourtsessionNotice,
    Business,
    Preference,
    Cooperate,
    DecisionMaking,
    Gjjl
  },
  data() {
    return {
      isSkeleton: true,
      companyInfo: {},
      customerInfo: {},
      companyId: '',  //企业Id（测试默认3068）
      customerId: '',  //企业Id（测试默认'a00d582a6041f32c16aac804e4924736'）
      isCompany: false,  //判断是否有建设库数据
      isCustomer: false,  //判断是否展示修改客户信息
      currentPath: {
        pathName: 'overview'  //默认展示页
      },
      statisticObj: {},
      partBoxHeight: null,
      cooDetail: false
    };
  },
  computed: {
    routes() {
      return this.$store.state.permission.routes;
    }
  },
  watch: {
    '$route'(to, from) {
      if (to.name == 'PartyA' && to.query.customerId) {
        if (to.query.customerId && to.query.path == 'business' || to.query.path == 'gjjl') {
          if (this.companyId == 0) {
            customerInfo(to.query.customerId).then(res => {
              if (res.code == 200) {
                if (res.data.userId == this.$store.state.user.userId) {
                  this.$nextTick(() => {
                    this.customerInfo = res.data;
                    this.customerId = res.data.customerId;
                    this.isCustomer = true;
                    this.isCompany = false;
                    this.currentPath.pathName = this.$route.query.path || 'business';
                    this.companyInfo = {
                      companyName: this.customerInfo.companyName
                    };
                    document.getElementById('tagTitle').innerText = this.customerInfo.companyName;
                    let titlename = document.getElementById('tagTitles');
                    if (titlename) {
                      titlename.innerText = this.customerInfo.companyName;
                    }
                    // }
                    // })
                  });
                }
              }
            });
          }
          if (to.query.customerId == this.customerId && to.query.path) {
            this.currentPath.pathName = to.query.path;
          }
        }
      } else {
        if (from.name == 'PartyA' && !from.query.customerId) {
          this.$nextTick(() => {
            this.isCompany = true;
          });
        }
      }
    }
  },
  beforeRouteLeave(to, from, next) {
    next(vm => {

    });
  },
  beforeRouteEnter(to, from, next) {
    next(vm => {

    });
  },
  created() {
    if (this.$route.params.id) { // 获取companyId
      let companyId = this.$route.params.id;
      this.getCompanyId(companyId);
    }
    if (this.$route.query.path) { // 获取跳转对应板块
      this.currentPath.pathName = this.$route.query.path;
    }
  },
  mounted() {
  },
  methods: {
    showPartPage(e) {
      this.currentPath = e;
    },
    // 解密
    async getCompanyId(companyId) {
      let { data } = await idRemark({ mark: companyId });
      if (data) {
        this.companyId = data;
        this.$nextTick(() => {
          this.listenSider();
        });
        this.getStatistic();
        this.handleQuery();
        this.association(this.$route.query.customerId);
        this.$refs.sidebar.financial(data);
      }
    },
    async getStatistic() {
      let res = await statistic({ companyId: this.companyId });
      if (res.code == 200) {
        this.statisticObj = res.data;
      }
    },
    async handleQuery() {
      this.isSkeleton = true;
      let res = await infoHeader({ companyId: this.companyId });
      if (res.code == 200) {
        this.isSkeleton = false;
        this.companyInfo = res.data || {};
        let data = {
          pageNum: 1,
          pageSize: 5,
          provinceIds: [this.companyInfo.provinceId],
          cityIds: [this.companyInfo.cityId],
        };
        urbanInvestmentPage(data).then(res => {
          if (res.code == 200) {
            if (res.data.totalCount < 1) {
              let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute));
              arr[4].children[2].disabled = true;
              this.$refs.sidebar.sideRoute = arr;
            }
          }
        });
        if (this.companyInfo && this.companyInfo.companyName) {
          this.$nextTick(() => {
            document.getElementById('tagTitle').innerText = this.companyInfo.companyName;
            // let lists = this.$store.state.tagsView.visitedViews
            // lists.forEach(item=>{
            //   if(item.fullPath == this.$route.fullPath){
            let titlename = document.getElementById('tagTitles');
            if (titlename) {
              titlename.innerText = this.companyInfo.companyName;
            }
            //   }
            // })
          });
        }
      }
    },
    listenSider() {
      const _this = this, erd = elementResizeDetectorMaker(), partBox = document.getElementById("partBox");
      erd.listenTo(partBox, element => {
        _this.partBoxHeight = partBox.offsetHeight;
      });
    },
    cooperateDetail() {
      this.cooDetail = true;
    },
    closeDetail() {
      this.cooDetail = false;
    },
    // 判断客户是否关联显示修改
    association(id) {
      if (id) {
        customerInfo(id).then(async res => {
          console.log(res);
          if (res.code == 200) {
            if (res.data.userId == this.$store.state.user.userId) {
              await this.$nextTick()
              this.customerInfo = res.data;
              this.customerId = res.data.customerId;
              if (res.data.companyId == this.companyId) {
                await this.$nextTick()
                this.isCustomer = true;
                this.isCompany = true;
              } else {
                await this.$nextTick();
                this.isCustomer = true;
                this.isCompany = false;
                this.currentPath.pathName = this.$route.query.path || 'business';
                this.companyInfo = {
                  companyName: this.customerInfo.companyName
                };
                document.getElementById('tagTitle').innerText = this.customerInfo.companyName;
                let titlename = document.getElementById('tagTitles');
                if (titlename) {
                  titlename.innerText = this.customerInfo.companyName;
                }
              }
            } else {
              await this.$nextTick();
              this.isCustomer = true;
              this.isCompany = true;
              this.currentPath.pathName = 'overview';
            }
          }
        }).catch(err => {
          this.$nextTick(() => {
            this.currentPath.pathName = 'overview';
            this.isCompany = true;
          });
        });
      } else {
        this.$nextTick(() => {
          this.isCompany = true;
          // this.currentPath.pathName = 'overview';
          this.currentPath.pathName = this.$routes.query.path;
        });
      }
    },

  }
}
</script>

<style lang="scss" scoped>
.part-container {
  padding: 0;
  margin: 0 24px;
}
.part-main {
  margin-top: 12px;
  width: 100%;
  height: calc(100vh - 155px);
  overflow-y: auto;
  align-items: initial;
}
.part-left {
  margin-right: 16px;
  padding-bottom: 16px;
  position: fixed;
  background: #ffffff;
  width: 144px;
}
.part-right {
  min-width: 1088px;
  width: 100%;
  background: #ffffff;
  border-radius: 4px;
  margin-left: 160px;
  ::v-deep .el-table__header-wrapper {
    position: sticky;
    top: 0;
    z-index: 9;
  }
  #groupBox {
    height: 100%;
  }
}
.details-of-party {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0px;
  padding: 16px 24px;
  box-sizing: border-box;

  ::v-deep .header-container {
    .part-header {
      margin-top: 0px;
    }
  }

  ::v-deep .part-main {
    height: calc(100% - 56px - 12px);

    .part-right {
      margin-left: 160px;
      width: calc(100% - 160px);
      overflow: auto;
    }
  }

  .part-common-container-style {
    width: 100%;
    height: 100%;
  }
}
</style>
