<template>
  <div>
    <el-row type="flex" style="margin-top: 15px;margin-bottom: 15px" justify="center">
      <el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="16">
        <div style="display: flex;justify-content: space-between;align-items: flex-end;">
          <h2>{{$t('查看')}}</h2>
          <div>
            <el-button type="primary" size="small" v-has-permi="['ecw:customer:query-edit']" @click="$router.push('/customer/edit/' + id)">{{$t('编辑')}}</el-button>
            <el-button v-has-permi="['ecw:customer:query-quoted-price']" @click="$router.push('/offer/create')" type="primary" size="small">{{$t('报价')}}</el-button>
            <el-button v-has-permi="['ecw:customer:query-follow-up']" type="primary" size="small" @click="$refs['customerFollow'].customerFollow.dialogVisible = true">{{$t('跟进')}}</el-button>
            <el-button v-has-permi="['ecw:customer:query-customer-complaint']" type="primary" size="small" @click="$refs['customerComplaint'].handleAdd()">{{$t('客诉')}}</el-button>
            <el-button  v-hasPermi="['ecw:customer:query-delete']" type="danger" size="small" @click="deleteCustomerFn()">{{$t('删除')}}</el-button>
          </div>
        </div>
        <el-card style="margin-top: 15px;">
          <el-descriptions :column="4" border>
            <el-descriptions-item :label="$t('客户编号')">{{ customer.number }}</el-descriptions-item>
            <el-descriptions-item :label="$t('客户名称')">{{ customer.name}}</el-descriptions-item>
            <el-descriptions-item :label="$t('客户英文名称')">{{customer.nameEn }}</el-descriptions-item>
            <el-descriptions-item :label="$t('结算方式')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_BALANCE, customer.balance) }}</el-descriptions-item>
            <el-descriptions-item :label="$t('客户生日')">{{ parseTime(customer.birthday, '{y}-{m}-{d}') }}</el-descriptions-item>
            <el-descriptions-item :label="$t('出货渠道')">
              {{ getDictDatas2(DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE, (customer.transportType||'').split(',')).map(e => isChinese ? e.label : e.labelEn).join(', ') }}
<!--              <dict-tag v-if="customer.transportType" v-for="item in (customer.transportType || '').split(',')" :type="DICT_TYPE.ECW_CUSTOMER_TRANSPORT_TYPE" :value="item"></dict-tag>-->
            </el-descriptions-item>
            <el-descriptions-item :label="$t('资源类型')">
              <dict-tag :type="DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE" :value="customer.resourceType"></dict-tag>
            </el-descriptions-item>
            <el-descriptions-item :label="$t('客户等级')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_LEVEL, customer.level) }}</el-descriptions-item>
            <el-descriptions-item :label="$t('信用等级')">{{isChinese ? customer.creditLevelNameZh :customer.creditLevelNameEn }}</el-descriptions-item>

            <el-descriptions-item :label="$t('国家')">{{ isChinese ? country.nameZh : country.nameEn }}</el-descriptions-item>
<!--            <el-descriptions-item :label="$t('业务员')">{{ customer }}</el-descriptions-item>-->
            <el-descriptions-item :label="$t('客户来源')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_SOURCE, customer.source) }}</el-descriptions-item>
            <el-descriptions-item :label="$t('客户类别')">
              {{ getDictDatas2(DICT_TYPE.CUSTOMER_TYPE, (customer.type||'').split(',')).map(e => isChinese ? e.label : e.labelEn).join(', ')}}
            </el-descriptions-item>
<!--            <el-descriptions-item :label="$t('联系方式')">{{ customer }}</el-descriptions-item>-->
            <el-descriptions-item :label="$t('推介人')">{{ customer.promoterName }}</el-descriptions-item>
            <el-descriptions-item :label="$t('客户经理')">{{customerService }}</el-descriptions-item>
            <el-descriptions-item :label="$t('公司名称')">{{ customer.company }}</el-descriptions-item>
            <el-descriptions-item :label="$t('公司英文名称')">{{ customer.companyEn }}</el-descriptions-item>
            <el-descriptions-item :label="$t('联系地址')">{{ customer.address }}</el-descriptions-item>
            <el-descriptions-item :label="$t('创建时间')">{{ parseTime(customer.createTime) }}</el-descriptions-item>
            <el-descriptions-item :label="$t('创建人')">{{ customer.founderName }}</el-descriptions-item>
            <el-descriptions-item :label="$t('状态')">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_STATUS, customer.status) }}</el-descriptions-item>
            <el-descriptions-item :label="$t('主营类别')">{{ productType }}</el-descriptions-item>
            <el-descriptions-item :label="$t('常提货网点')">{{ pickupPoint }}</el-descriptions-item>
            <el-descriptions-item :label="$t('图片')">
              <el-image v-show="!!customer.picture" :src="customer.picture" style="width: 100px;height: 100px"></el-image>
            </el-descriptions-item>
            <el-descriptions-item :label="$t('备注')">{{ customer.remarks  }}</el-descriptions-item>
            <el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ?$t('新客户') : $t('老客户')  }}</el-descriptions-item>
            <el-descriptions-item :label="$t('付款人姓名')">{{ customer.payerName  }}</el-descriptions-item>
            <el-descriptions-item v-if="permissions.includes('ecw:customer:query-card')"  :label="$t('身份证姓名')">{{ customer.carName }}</el-descriptions-item>
            <el-descriptions-item v-if="permissions.includes('ecw:customer:query-card')"  :label="$t('身份证号码')">{{ customer.carNo }}</el-descriptions-item>
<!--            <el-descriptions-item :label="$t('信用等级')">{{ customer }}</el-descriptions-item>-->
          </el-descriptions>
        </el-card>

        <el-card style="margin-top: 15px">
          <h3>{{$t('联系人')}}</h3>

          <el-table
            :data="customerContacts"
            style="width: 100%"
            border
          >
            <el-table-column
              prop="department"
              :label="$t('部门')"
            >
            </el-table-column>
            <el-table-column
              prop="position"
              :label="$t('职位')"
            >
            </el-table-column>
            <el-table-column
              prop="name"
              :label="$t('联系人')"
            >

            </el-table-column>
            <el-table-column
              prop="nameEn"
              :label="$t('联系人英文名称')"
            >
            </el-table-column>
            <el-table-column
              prop="phoneNew"
              :label="$t('联系方式')"
            >
              <template v-slot="{row}">
                {{ row.areaCode + row.phoneNew }}
              </template>
            </el-table-column>
            <el-table-column
              prop="userid"
              :label="$t('关联账号')"
              :formatter="userIdFormatter"
            >
            </el-table-column>
            <el-table-column
              prop="social"
              :label="$t('社交软件')"
              :formatter="(row, column, cellValue) => getDictDataLabel(DICT_TYPE.SOCIAL, cellValue)"
            >
            </el-table-column>
            <el-table-column
              prop="socialNumber"
              :label="$t('社交软件号码')"
            >
            </el-table-column>
            <el-table-column
              prop="email"
              :label="$t('邮箱')"
            >
            </el-table-column>
          </el-table>
        </el-card>
        <el-card style="margin-top: 15px;">
          <h3>{{$t('银行账户')}}</h3>
          <el-table :data="customer.customerBankBackVOList" border>
            <el-table-column :label="$t('编号')" type="index"></el-table-column>
            <el-table-column :label="$t('账户名称')" prop="accountName"></el-table-column>
            <el-table-column :label="$t('币别')">
              <template v-slot="{row}">
               {{$l(currecyList.find(i => row.currency == i.id),'title')}}
              </template>
            </el-table-column>
            <el-table-column :label="$t('银行名称')" prop="bankName"></el-table-column>
            <el-table-column :label="$t('银行账户')" prop="bankAccount"></el-table-column>
            <el-table-column :label="$t('银行代码')" prop="bankCode"></el-table-column>
            <el-table-column :label="$t('账户类型')">
              <template v-slot="{row}">
                {{Number(row.accountType) === 1 ? $t('公账') : $t('私账')}}
              </template>
            </el-table-column>
            <el-table-column :label="$t('状态')">
            <template v-slot="{row}">
              {{row.status ? $t('正常') : $t('停用')}}
            </template>
            </el-table-column>
            <el-table-column :label="$t('银行地址')" prop="bankAddress"></el-table-column>
          </el-table>
        </el-card>

        <el-tabs v-model="activeName" style="margin-top: 15px" type="border-card">
          <el-tab-pane name="order" :label="$t('订单')">
            <el-card class="box-card">
              <div slot="header" class="clearfix">
                <el-form :inline="true">
                  <el-form-item :label="$t('运输方式:')">
                    <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
                  </el-form-item>
                  <el-form-item :label="$t('订单状态:')">
                    <dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status"/>
                  </el-form-item>
                  <el-form-item :label="$t('报关方式:')">
                    <dict-selector
                      :type="DICT_TYPE.ECW_CUSTOMS_TYPE"
                      v-model="queryParams.customsType"
                    />
                  </el-form-item>
                  <el-form-item :label="$t('控货')">
                    <dict-selector
                      :type="DICT_TYPE.INFRA_BOOLEAN_STRING"
                      v-model="queryParams.isCargoControl"
                    />
                  </el-form-item>
                  <el-form-item :label="$t('入仓时间:')">
                    <el-date-picker v-model="rucangtime"
                                    @change="changeDate"
                                    style="width: 240px"
                                    value-format="yyyy-MM-dd HH:mm:ss"
                                      type="datetimerange"
                                    range-separator="-"
                                    :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
                  </el-form-item>
                  <el-form-item>
                    <el-button type="primary" @click="getorderList">{{$t('搜索')}}</el-button>
                    <el-button type="primary" @click="()=>{
                         queryParams = { rows:10,page:1}; getorderList();rucangtime  = [];
                    }">{{$t('重置')}}</el-button>
                  </el-form-item>
                </el-form>
              </div>
              <el-table :data="orderList">
                <el-table-column :label="$t('订单编号')" width="120px" align="center" prop="orderNo" >
                  <template slot-scope="scope">
                    <router-link :to="{path: '/order/detail',query: {orderId: scope.row.orderId}}" class="link-type">
                      <span>{{ scope.row.orderNo }}</span>
                    </router-link>
                  </template>
                </el-table-column>
                <el-table-column :label="$t('唛头')" align="center" prop="marks" />
                <el-table-column :label="$t('总箱数/入仓箱数')" align="center" prop="sumNum">
                  <template slot-scope="{row}">
                    {{row.totalNum}}{{$t('箱')}}/{{row.sumNum}}{{$t('箱')}}
                  </template>
                </el-table-column>
                <el-table-column :label="$t('体积/重量')" align="center" prop="sumWeight">
                  <template slot-scope="{row}">
                    <!--入仓前是填单数据,入仓后是入仓数据-->
<!--                    <template v-if="row.inWarehouseState <= 1">{{row.costVO.totalVolume}}m³ /{{row.costVO.totalWeight}}Kg</template>-->
<!--                    <template v-else>{{row.sumVolume}}m³ /{{row.sumWeight}}Kg</template>-->
                    <component
                      :is="row.orderType ==  2 ? 'el-tooltip' : 'div'"
                      class="item"
                      :style="{
            color: row.orderType ==  2 ? 'red' : null
          }"
                      effect="dark"
                      :content="(row.wvolume||0)+'m³'"
                      placement="bottom">
                      <div v-if="row.sumNum > 0">{{row.sumVolume}}m³ /{{row.sumWeight}}Kg</div>
                      <div v-else>{{row.costVO.totalVolume}}m³ /{{row.costVO.totalWeight}}Kg</div>
                    </component>
                  </template>
                </el-table-column>
                <el-table-column :label="$t('始发仓')" align="center" prop="startWarehouseName">
                  <template slot-scope="{row}">
                    {{row.startWarehouseName}}
                    <span style="color:red" v-if="row.isExternalWarehouse">({{$t('外部仓')}})</span>
                  </template>
                </el-table-column>
                <el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId">
                  <template slot-scope="{row}">
                    <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" /> / {{row.objectiveName}}
                  </template>
                </el-table-column>
                <el-table-column :label="$t('控货')" align="center" prop="transportId">
                  <template slot-scope="{row}">
                    <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="row.isCargoControl" />
                  </template>
                </el-table-column>
                <el-table-column :label="$t('订单状态')" align="center" prop="statusMsg">
<!--                  <template slot-scope="scope">-->
<!--                    <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" />-->
<!--                  </template>-->
                </el-table-column>
                <el-table-column :label="$t('入仓时间')">
                  <template v-slot="{row}">
                    {{parseTime(row.rucangTime)}}
                  </template>
                </el-table-column>
                </el-table>
              <pagination @pagination="getorderList" :page.sync="queryParams.page" :limit.sync="queryParams.rows"  :total="orderTotal" ></pagination>
            </el-card>
          </el-tab-pane>
          <el-tab-pane name="quote" :label="$t('报价')">
            <el-table
              :data="infoListOfferList"
              style="width: 100%"
            >
              <el-table-column
                type="index"
                :label="$t('序号')"
              >
              </el-table-column>
              <el-table-column
                prop="number"
                :label="$t('报价单号')"
              >
              </el-table-column>
              <el-table-column
                prop="orderNo"
                :label="$t('订单号')"
              >
              </el-table-column>
              <el-table-column
                prop="consignorName"
                :label="$t('客户名称')"
              >
                <template v-slot>
                  {{customer.name}}
                </template>
              </el-table-column>
              <el-table-column
                prop="objectiveName"
                :label="$t('目的地')"
              >
              </el-table-column>
              <el-table-column
                :label="$t('销售阶段')"
              >
                <template v-slot="{row}">
                  {{STATUS[row.status]}}
                </template>
              </el-table-column>
              <el-table-column
                prop="stopTime"
                :label="$t('预计结束时间')"
              >
              </el-table-column>
              <el-table-column
                prop="businessManagerName"
                :label="$t('负责人')"
              >
              </el-table-column>
            </el-table>
            <pagination @pagination="getInfoListOfferPage" :page.sync="infoListOfferFrom.pageNo" :limit.sync="infoListOfferFrom.pageSize"  :total="infoListOfferTotal" ></pagination>
          </el-tab-pane>
          <el-tab-pane name="follow" :label="$t('跟进')">
            <customer-follow customerQuery ref="customerFollow" :id="id" :customer-id="id"></customer-follow>
          </el-tab-pane>
          <el-tab-pane name="complain" :label="$t('客户投诉')">
            <customer-complaint ref="customerComplaint" :customer-id="id" hidden-search></customer-complaint>
          </el-tab-pane>
          <el-tab-pane name="bill" :label="$t('账单')">
            <el-table style="width: 100%" :data="infoListReceiptList">
              <el-table-column :label="$t('序号')" type="index"></el-table-column>
              <el-table-column :label="$t('账单')" prop="receiptNo"></el-table-column>
              <el-table-column :label="$t('订单号')" prop="orderNo"></el-table-column>
              <el-table-column :label="$t('箱数')" prop="num"></el-table-column>
              <el-table-column :label="$t('方数')" prop="volume" ></el-table-column>
              <el-table-column :label="$t('重量')" prop="weight" ></el-table-column>
              <el-table-column :label="$t('类型')">
                <template v-slot="{row}">
                  <dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="row.collectionType" />
                </template>
              </el-table-column>
              <el-table-column :label="$t('费用类型')">
                <template v-slot="{row}">
                  <dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
                </template>
              </el-table-column>
              <el-table-column :label="$t('金额')" prop="totalAmount">
              </el-table-column>
              <el-table-column :label="$t('已核销比例')" prop="writeOffScale"></el-table-column>
              <el-table-column :label="$t('实收日期')">
                <template v-slot="{row}">
                  {{parseTime(row.writeOffAt)}}
                </template>
              </el-table-column>
              <el-table-column :label="$t('业务员')" prop="salesmanName"></el-table-column>
            </el-table>
            <pagination v-show="infoListReceiptList.length" :total="infoListReceiptTotal" :page.sync="infoListReceiptFrom.pageNo" :limit.sync="infoListReceiptFrom.pageSize"
                        @pagination="infoListReceiptFn"/>
          </el-tab-pane>
          <el-tab-pane name="data" :label="$t('数据')">
            <el-descriptions :column="2">
              <el-descriptions-item :label="$t('海空联运/海运拼柜/海运整柜/专线空运')">{{orderStatisticsObj.hklyTotal || 0}}/{{orderStatisticsObj.hypgTotal  || 0 }}/{{orderStatisticsObj.hyzgTotal  || 0}}/{{orderStatisticsObj.zxkyTotal  || 0}}</el-descriptions-item>
              <el-descriptions-item :label="$t('最后交易日期')">{{orderStatisticsObj.lastBusinessDate}}</el-descriptions-item>
              <el-descriptions-item :label="$t('全部订单/控货订单')">{{orderStatisticsObj.allOrderTotal  || 0}}/{{orderStatisticsObj.controlOrderTotal  || 0}}</el-descriptions-item>
              <el-descriptions-item :label="$t('最后交易单号')">{{orderStatisticsObj.lastBusinessOrderNo}}</el-descriptions-item>
              <el-descriptions-item :label="$t('报价/下单/入仓')">{{orderStatisticsObj.offerOrderTotal  || 0}}/{{orderStatisticsObj.pickOrderTotal  || 0}}/{{orderStatisticsObj.wareHousingTotal  || 0}}</el-descriptions-item>
              <el-descriptions-item :label="$t('储存量')">{{orderStatisticsObj.stock  || 0}}</el-descriptions-item>
              <el-descriptions-item :label="$t('已出货订单')">{{orderStatisticsObj.shipmentTotal  || 0}}</el-descriptions-item>
            </el-descriptions>
          </el-tab-pane>
          <el-tab-pane name="empower" :label="$t('品牌授权')">
              <el-table  border style="width:100%" :data="brandAuthorizationList">
                <el-table-column   type="index" :prop="$t('序号')"></el-table-column>
                <el-table-column  :label="$t('中文标题')" prop="titleZh" ></el-table-column>
                <el-table-column prop="titleEn" :label="$t('英文标题')"></el-table-column>
                <el-table-column :label="$t('有无备案')">
                 <template v-slot="{row}">
                   <dict-tag :type="DICT_TYPE.BRAND_REG_TYPE" :value="row.filing" />
                 </template>
                </el-table-column>
                <el-table-column :label="$t('授权开始')">
                  <template v-slot="{row}">
                    {{parseTime(row.startTime)}}
                  </template>
                </el-table-column>
                <el-table-column :label="$t('授权结束')">
                  <template v-slot="{row}">
                    {{parseTime(row.endTime)}}
                  </template>
                </el-table-column>
                <el-table-column :label="$t('授权证明')">
                  <template v-slot="{row}">
                    <div v-if="!!row.fileUrl && row.fileUrl.length > 0">
                  <span v-for="(item, index) in (row.fileUrl||'').split(',')">
                    <a :href="item" target="_blank">{{$t('附件')}}{{ index + 1 }}</a>,
                  </span>
                    </div>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="feeScale"
                  :formatter="(row) => getDictDataLabel(DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL, row.feeScale)"
                  :label="$t('收费标准')">
                </el-table-column>
                <el-table-column
                  prop="createUsername"
                  :label="$t('添加人')">
                </el-table-column>
                <el-table-column :label="$t('创建时间')">
                  <template v-slot="{row}">
                    {{parseTime(row.createTime)}}
                  </template>
                </el-table-column>
              </el-table>
            <pagination v-show="brandAuthorizationTotal.length" :total="brandAuthorizationTotal" :page.sync="brandAuthorizationFrom.pageNo" :limit.sync="brandAuthorizationFrom.pageSize"
                        @pagination="getBrankByCustomerList"/>
          </el-tab-pane>
          <el-tab-pane name="credit" :label="$t('信用日志')">
            <el-card class="box-card">
              <div slot="header" class="clearfix">
                <el-button style="float: right;" type="primary" @click="dialogVisible = true" >{{$t('添加信用日志')}}</el-button>
                <el-descriptions :column="5" border>
                  <el-descriptions-item v-for="(item,index) in creditScoreStatisticObj" :key="index" :label="creditScoreCalculation(item.type)">{{item.score}}</el-descriptions-item>
                </el-descriptions>
              </div>
              <el-table :data="customerCreditLogList">
                <el-table-column :label="$t('序号')" type="index"></el-table-column>
                <el-table-column   :label="$t('规则名称')">
                  <template v-slot="{row}">
                    {{ isChinese ? row.name : row.nameEn}}
                  </template>
                </el-table-column>
                <el-table-column prop="type" :label="$t('规则分类')">
                  <template v-slot="{row}">
                    <dict-tag :type="DICT_TYPE.CUSTOMER_CREDIT_RULE_TYPE" :value="row.type" />
                  </template>
                </el-table-column>
                <el-table-column prop="score" :label="$t('规则得分')"></el-table-column>
                <el-table-column prop="remark" :label="$t('备注')"></el-table-column>
                <el-table-column :label="$t('添加人')" prop="createName"></el-table-column>
                <el-table-column :label="$t('时间')">
                  <template v-slot="{row}">
                    {{parseTime(row.createTime)}}
                  </template>
                </el-table-column>
              </el-table>
              <pagination @pagination="creditLogPage" :page.sync="customerCreditLogFrom.pageNo" :limit.sync="customerCreditLogFrom.pageSize"  :total="customerCreditLogFrom.total" ></pagination>
            </el-card>
          </el-tab-pane>
          <el-tab-pane name="grade" :label="$t('等级日志')">
           <el-table style="width: 100%"  :data="getCustomerGradeList">
             <el-table-column  :label="$t('序号')" type="index"></el-table-column>
             <el-table-column :label="$t('规则名称')" prop="name"></el-table-column>
             <el-table-column :label="$t('规则分类')" prop="type">
               <template v-slot="{row}">
                 <dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL_RULE_TYPE" :value="row.type" />
               </template>
             </el-table-column>
             <el-table-column :label="$t('规则得分')" prop="score"></el-table-column>
             <el-table-column :label="$t('备注')" prop="remark"></el-table-column>
             <el-table-column :label="$t('时间')">
               <template v-slot="{row}">
                 {{parseTime(row.createTime)}}
               </template>
             </el-table-column>
           </el-table>
            <pagination @pagination="getCustomerGrade" :page.sync="getCustomerGradeFrom.pageNo" :limit.sync="getCustomerGradeFrom.pageSize"  :total="getCustomerGradeFrom.total" ></pagination>
          </el-tab-pane>
          <el-tab-pane name="operationLog" v-if="checkPermi(['customer:operate-log:query'])"  :label="$t('操作日志')" >
            <customer-log  :customerId="id" v-if="'operationLog' === activeName"></customer-log>
          </el-tab-pane>
        </el-tabs>
      </el-col>
    </el-row>
    <el-dialog
      :visible.sync="dialogVisible"
      width="30%"
      >
      <h1 slot="title">
        {{$t('给客户')}}【{{customer.name}}】{{$t('添加信用日志')}}
      </h1>
      <el-form label-width="100">
        <el-form-item :label="$t('客户编号:')">{{customer.number}}</el-form-item>
        <el-form-item :label="$t('信用类别')">
          <el-select v-model="creditFrom.ruleId">
            <el-option v-for="(item,index) in creditTypeList" :key="index" :value="item.id"  :label="isChinese ? item.name : item.nameEn"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item v-if="creditTypeList.length > 0" :label="$t('信用分')">{{(creditTypeList.find(r=>creditFrom.ruleId === r.id) || {}).score }}{{$t('分')}}</el-form-item>
        <el-form-item :label="$t('备注')">
          <el-input type="textarea" v-model="creditFrom.remark"> </el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
       <el-button @click="submit">{{$t('提交')}}</el-button>
       <el-button @click="dialogVisible = false" >{{$t('取消')}}</el-button>
  </span>
    </el-dialog>
  </div>
</template>

<script>
import {
  getCustomer,
  getCustomerSelect,
  getBrankByCustomer,
  levelLogPage,
  customerCreditLogPage,
  infoListOrderPage,
  infoListOfferPage,
  orderStatistics,
  creditLogCreate,
  creditScoreStatistic,
  infoListReceiptPage, memberUserList, deleteCustomer,

} from '@/api/ecw/customer'
import { DICT_TYPE, getDictDataLabel, getDictDatas2 } from '@/utils/dict'
import { getProductTypeList } from '@/api/ecw/productType'
import { getNodeList } from '@/api/ecw/node'
import CustomerFollow from "@/components/CustomerFollow"
import { parseTime } from '@/utils/ruoyi'
import CustomerComplaint from '@/views/ecw/customerComplaint'
import { listServiceUser } from '@/api/system/user'
import { getCustomerContactsListByCustomer } from '@/api/ecw/customerContacts'
import {getOrderPage} from "@/api/ecw/order";
import Template from "@/views/cms/template";
import {getCreditRulePage} from "@/api/customer/creditRule";
import {getCountry} from "@/api/ecw/country"
import {getCurrencyList} from "@/api/ecw/currency";
import customerLog from "@/views/ecw/customer/customerLog.vue";
import {checkPermi} from "@/utils/permission";

export default {
  name: 'query',
  components: {
    Template,
    CustomerFollow,
    CustomerComplaint,
    customerLog,
  },
  created() {
    // 获取币种
    getCurrencyList().then(response => {
      this.currecyList = response.data;
    })
    //获取信用类型
    getCreditRulePage({page:1,rows:999,type:2}).then(r => {
     this.creditTypeList = r.data.list
    })
    getNodeList().then(r => {
      this.nodeList = r.data
    })
    getCustomer(this.id).then(response => {
      this.customer = { ...this.customer, ...response.data }
      console.log( this.customer,'this.customer')

      getCustomerContactsListByCustomer({customerId: this.id}).then(r => {
        this.customerContacts = r.data
        let list =  this.customerContacts.map(r => r.userid)
        memberUserList({ids:list.join(',')}).then(r => {
          this.memberList = r.data
        })
      })

      getCountry(this.customer.country ? this.customer.country : 0 ).then(r => {
        this.country = r.data
      })
    })
    getProductTypeList().then(r => {
      this.productTypeList = r.data
    })

    getCustomerSelect({pageSize:1000,pageNo:1}).then(r => {
      this.customerSelect = r.data.list
    })

    listServiceUser().then(r => {
      this.serviceUserList = r.data
    })
    // this.getBrankByCustomerList()//品牌授权
    this.getCustomerGrade()
    // this.creditLogPage()//等级日志
    this.getorderList()//订单
    // this.getInfoListOfferPage()//报价
    // this.getOrderStatistics()//数据
    // this.creditScoreStatisticFn() //信用日志
    // this.infoListReceiptFn()//账单


  },
  watch:{
    activeName(val){
      switch (val) {
        case 'order':
          this.getorderList()//订单
          break
        case 'quote':
          this.getInfoListOfferPage()//报价
          break
        case 'bill':
          this.infoListReceiptFn()//账单
          break
        case 'data':
          this.getOrderStatistics()//数据
          break
        case 'empower':
          this.getBrankByCustomerList()//品牌授权
          break
        case 'credit':
          this.creditScoreStatisticFn() //信用日志
          this.creditLogPage()
          break
        case 'grade':
          this.getCustomerGrade()
          //等级日志
          break

      }
    }
  },
  data() {
    return {
      activeName:'order',
      currecyList:[],
      STATUS:{
        0:this.$t('取消报价'),
        1:this.$t('特价审批中'),
        2:this.$t('需求确认'),
        3:this.$t('跟进中'),
        4:this.$t('赢单'),
        5:this.$t('输单'),
        6:this.$t('报价完成'),
        7:this.$t('跟进中')
      },
      dialogVisible:false,
      DICT_TYPE,
      getDictDataLabel,
      getDictDatas2,
      parseTime,
      nodeList: [],
      productTypeList: [],
      customerSelect: [],
      serviceUserList: [],
      customerContacts: [],
      memberList: [],
      customer: {
        id: undefined,
        number: undefined,
        name: undefined,
        level: undefined,
        country: undefined,
        type: undefined,
        agentId: undefined,
        company: undefined,
        address: undefined,
        productType: undefined,
        productId: undefined,
        pickupPoint: undefined,
        memberId: undefined,
        birthday: undefined,
        balance: undefined,
        source: undefined,
        picture: undefined,
        customerService: undefined,
        customerLines: [],
        promoter: undefined,
        status: undefined,
        founder: undefined,
        department: undefined,
        invoiceTitle: undefined,
        licenseNumber: undefined,
        bank: undefined,
        bankNumber: undefined,
        project: undefined,
        billingAddress: undefined,
        billingTell: undefined,
        taxRate: undefined,
        remarks: undefined,
        arrivalConfirm: undefined,
        weightUnit: undefined,
        createTime: undefined
      },
      brandAuthorizationFrom:{
        pageNo:1,
        pageSize:10,
      },
      brandAuthorizationList:[],
      brandAuthorizationTotal:0,
      getCustomerGradeFrom:{
        pageNo:1,
        pageSize:10,
        total:0
    },
      getCustomerGradeList:[],
      customerCreditLogFrom:{
        pageNo:1,
        pageSize:10,
        total:0
      },
      customerCreditLogList:[],
      rucangtime:[],
      queryParams:{
        rows:10,
        page:1
      },
      orderList:[],
      orderTotal:0,
      infoListOfferFrom:{
        pageNo:1,
        pageSize:10,
      },
      infoListOfferTotal:0,
      infoListOfferList:[],
      orderStatisticsObj:{},
      creditTypeList:[],
      creditFrom:{},//添加信用 日志
      creditScoreStatisticObj:[],
      infoListReceiptList:[],
      infoListReceiptFrom:{
        pageNo:1,
        pageSize:10,
      },
      infoListReceiptTotal:0,
      country: ''
    }
  },
  computed: {
    permissions(){
      return this.$store.state.user.permissions
    },
    customerId(){
      return this.$route.params.customerId;
    },
      isChinese(){
      return this.$i18n.locale === 'zh_CN'
    },
    productType(){
      const productType = this.productTypeList.find(p => p.id === parseInt(this.customer.productType))
      return productType ? productType.titleZh : ''
    },
    pickupPoint(){
      const pickupPoint = this.nodeList.find(p => p.id === parseInt(this.customer.pickupPoint))
      return pickupPoint ? pickupPoint.titleZh : ''
    },
    promoter() {
      return this.customerSelect.find(e => e.id === this.customer.promoter)?.name || ''
    },
    customerService() {
      return this.serviceUserList.find(e => e.id === this.customer.customerService)?.nickname || ''
    },
    id() {
      return this.customerId ? parseInt(this.customerId) : undefined
    },
    creditScoreCalculation(){
      return (val)=>{
        if(val === 'all'){
          return this.$t('信用分')
        }else{
          if(this.isChinese) return (this.getDictDatas(DICT_TYPE.CUSTOMER_CREDIT_RULE_TYPE).find(i => i.value === val)||{}).label
            else return (this.getDictDatas(DICT_TYPE.CUSTOMER_CREDIT_RULE_TYPE).find(i => i.value === val)||{}).labelEn
        }
      }
    }
  },
  methods:{
    checkPermi,
    userIdFormatter(row, column, cellValue){
      const member = this.memberList.find(e => e.id === cellValue)
      if (member) {
        return member.nickname + '(' + member.mobile + ')'
      } else {
        return ''
      }
    },
    changeDate(val){
     if(val){
        this.queryParams.beginRucangTime =  val[0];
       this.queryParams. endRucangTime =  val[1];
     }else {
       this.queryParams.beginRucangTime = undefined;
       this.queryParams.endRucangTime =  undefined;
     }
    },
    //品牌授权
    getBrankByCustomerList(){
      getBrankByCustomer({...this.brandAuthorizationFrom,customerId:this.id}).then(r => {this.brandAuthorizationList = r.data.list; this.brandAuthorizationTotal = r.data.total})
    },
    // 信用等级日志
    getCustomerGrade(){
      levelLogPage({...this.getCustomerGradeFrom,customerId:this.id,total:undefined}).then(r => {
        if(r.code === 0){
          this.getCustomerGradeList = r.data.list;
          this.getCustomerGradeFrom.total = r.data.total;
        }
      })
    },
  // 信用日志
   creditLogPage(){
     customerCreditLogPage({...this.customerCreditLogFrom,customerId:this.id}).then(r => {
         if(r.code === 0){
           this.customerCreditLogList = r.data.list;
           this.customerCreditLogFrom.total = r.data.total;
         }
     })
   },
    //订单
    getorderList(){
      infoListOrderPage({customerDetailId:this.id,...this.queryParams}).then(r => {
        if(r.code === 0){
          this.orderList = r.data.list
          this.orderTotal = r.data.total
        }
      })
    },
  // 客户报价
    getInfoListOfferPage(){
      infoListOfferPage({...this.infoListOfferFrom,customerId:this.id}).then(r => {
        this.infoListOfferList = r.data.list;
        this.infoListOfferTotal = r.data.total;
      }).catch(r => {
      })
    },
  //  数据
    getOrderStatistics(){
      orderStatistics({customerId:this.id}).then(r => {
        if(r.code === 0){
          this.orderStatisticsObj = r.data
        }
      })
    },
    submit(){
      creditLogCreate({customerId:this.id,...this.creditFrom}).then(r => {
      if(r.code === 0){
        this.creditLogPage();
        this.creditFrom = {};
        this.creditScoreStatisticFn()
        this.dialogVisible = false;
      }
      })
    },
    //获得信用客户统计
    creditScoreStatisticFn(){
      creditScoreStatistic({customerId:this.id}).then(r => {
        if(r.code === 0) this.creditScoreStatisticObj = r.data
      })
    },
  //  获取账单数据
    infoListReceiptFn(){
      infoListReceiptPage({...this.infoListReceiptFrom,customerId:this.id}).then(r => {

        if(r.code === 0){
          this.infoListReceiptList = r.data.list;
          this.infoListReceiptTotal = r.data.total;
        }
      })
    },
    deleteCustomerFn(){
      this.$confirm(`${this.$t('是否要删除当前客户')}《${this.customer.name}》?`, `${this.$t('提示')}`, {
        confirmButtonText: this.$t('确定'),
        cancelButtonText: this.$t('取消'),
        type: 'warning'
      }).then(() => {
        deleteCustomer(this.customerId).then(r => {
          this.$modal.msgSuccess(this.$t('删除成功'));
          this.$router.back()
        })
      })
    }
  },

}
</script>

<style scoped>

</style>