<template>
  <div class="app-container">
        <el-card>
            <div slot="header" class="card-title">报价单详情</div>
          <!-- 列表 -->
          <div class="offer-header">
              <span style="font-size: 15px;">报价单号：{{list.number}}</span>
              <div class="btns">
            <el-button size="mini" type="primary"  @click="$router.push('edit?id=' + offerId)">编辑</el-button>
                <el-button type="primary" size="mini" @click="handleAdd"
                >跟进</el-button>
                <el-button type="primary" size="mini" @click="toResult"
                >结果</el-button>
                <el-button size="mini" type="primary" @click="$router.push('/offer/special/' + offerId)">特价</el-button>
                <el-button type="danger" size="mini" @click="handleDelete"
                >删除</el-button>
              </div>
          </div>
          <div>
            <div class="title-font">
              <label>报价单所属：发件人</label>
            </div>
                <el-descriptions :column="3" border class="card">
                    <el-descriptions-item label="发货人:">
                        {{consigneeData.length>0?consigneeData[0].name||'无':'无'}}
                    </el-descriptions-item>
                    <el-descriptions-item label="手机号：">
                      {{consigneeData.length>0?consigneeData[0].defaultContactPhone||'无':'无'}}
                    </el-descriptions-item>
                    <el-descriptions-item label="联系地址：">
                      {{consigneeData.length>0?consigneeData[0].address||'无':'无'}}
                    </el-descriptions-item>
                    <el-descriptions-item label="客户来源：">
                      {{consigneeData.length>0?consigneeData[0].source||'无':'无'}}
                    </el-descriptions-item>
                    <el-descriptions-item label="发货人公司名称:">
                      {{consigneeData.length>0?consigneeData[0].company||'无':'无'}}
                    </el-descriptions-item>
                    <el-descriptions-item label="社交软件：">
                       {{consigneeData.length>0?consigneeData[0].defaultSocial||'无':'无'+' '+consigneeData.length>0?consigneeData[0].defaultSocialNumber||'':''}}
                    </el-descriptions-item>
                </el-descriptions>

               <el-descriptions :column="3" border class="card">
                   <el-descriptions-item label="收货人:">
                     {{consigneeData.length>1?consigneeData[1].name||'无':'无'}}
                   </el-descriptions-item>
                   <el-descriptions-item label="手机号：">
                     {{consigneeData.length>1?consigneeData[1].defaultContactPhone||'无':'无'}}
                   </el-descriptions-item>
                   <el-descriptions-item label="联系地址：">
                     {{consigneeData.length>1?consigneeData[1].address||'无':'无'}}
                   </el-descriptions-item>
                   <el-descriptions-item label="客户来源：">
                     {{consigneeData.length>1?consigneeData[1].source||'无':'无'}}
                   </el-descriptions-item>
                   <el-descriptions-item label="收货人公司名称:">
                     {{consigneeData.length>1?consigneeData[1].company||'无':'无'}}
                   </el-descriptions-item>
                   <el-descriptions-item label="社交软件：">
                       {{consigneeData.length>1?consigneeData[1].defaultSocial||'无':'无'+' '+consigneeData.length>1?consigneeData[1].defaultSocialNumber||'':''}}
                   </el-descriptions-item>
               </el-descriptions>
              <div class="title-font">
                <label>始发地：{{list.departureName||'无'}}</label>
                <label>目的地：{{list.objectiveName||'无'}}</label>
              </div>

          </div>
        </el-card>

        <el-card class="card">
          <div slot="header" class="card-title">商品信息</div>
          <div style="overflow: auto;">
          <el-table v-loading="loading" border :data="list.offerProdRespVOList">
                <el-table-column label="序号" width="60px" fixed>
                  <template slot-scope="scope">
                      {{scope.$index + 1}}
                  </template>
                </el-table-column>
                <el-table-column label="商品类型" align="center" prop="goodsType" />
                <el-table-column label="中文名" align="center" prop="prodTitleZh" />
                <el-table-column label="英文名" align="center" prop="prodTitleEn" />
                <el-table-column label="品牌" width="100px">
                  <template slot-scope="scope">
                      {{scope.row.brand?'有':'无'}}
                  </template>
                </el-table-column>
                <el-table-column label="件数" width="90px" prop="num" />
                <el-table-column label="包装单位">
                  <template slot-scope="scope">
                      <dict-tag :value="scope.row.unit" :type="DICT_TYPE.ECW_PACKAGE_TYPE" defaultable />
                  </template>
                </el-table-column>
                <el-table-column label="箱规(m)" width="120px" prop="boxGauge" />
                <el-table-column label="体积(m³)" width="100px" prop="volume" />
                <el-table-column label="重量(kg)" width="100px" prop="weight" />
                <el-table-column label="货值(RMB)" width="100px" prop="worth">
                  <template slot-scope="scope">
                        {{scope.row.worth+scope.row.worthCurrency}}
                    </template>
                  </el-table-column>
                <el-table-column label="商品特性" width="200px" prop="prodAttrName" />
                <el-table-column label="运输方式" width="100px">
                  <template slot-scope="scope">
                      <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
                  </template>
                </el-table-column>
                <el-table-column label="出货渠道" width="100px" prop="channelName" />
                <el-table-column label="线路" width="200px" >
                  <template slot-scope="scope">
                    {{getRouterNameById(scope.row.lineId)}}
                  </template>
                  </el-table-column>
                <el-table-column label="运费">
                  <template slot-scope="scope">
                     {{'运费'+scope.row.seaFreight+scope.row.seaFreightCurrency+'/'+ scope.row.seaFreightVolume+'  清关费'+scope.row.clearanceFreight+scope.row.clearanceFreightCurrency+'/'+ scope.row.clearanceFreightVolume}}
                  </template>
                </el-table-column>
              </el-table>
              </div>
        </el-card>
        <el-card class="card">
          <div slot="header" class="card-title">费用小计</div>
            <el-descriptions border class="card">
              <el-descriptions-item label="总件数:">
                  {{list.estCostVO?list.estCostVO.totalNum||'0':0}}
              </el-descriptions-item>
              <el-descriptions-item label="总货值：">
                  {{list.estCostVO?list.estCostVO.totalWorth||'0':0}}
              </el-descriptions-item>
              <el-descriptions-item label="报价费：">
                {{list.estCostVO?list.estCostVO.insuranceFee||'0':0}}
              </el-descriptions-item>
          </el-descriptions>
<!--          <el-descriptions border class="card">
            <el-descriptions-item label="佣金类型" :span="2" class="card">
                <dict-selector :type="DICT_TYPE.COMMISSION_TYPE" form-type="radio" fomtter="number"  :value="list.commissionType" defaultable />
            </el-descriptions-item>
          </el-descriptions> -->
        </el-card>
        <el-card class="card" v-for="(item, i) in list.transportRespVOList">
          <div slot="header" class="card-title">
            <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item.transportId"></dict-tag>
          </div>
          <div class="line">
            <el-descriptions v-for="(lineItem,k) in item.lineData">
                <el-descriptions-item :label="[3,4].indexOf(item.transportId)>-1?('空运路线'+(k+1)):('海运路线'+(k+1))">
                    {{getRouterNameById(lineItem)}}
                </el-descriptions-item>
            </el-descriptions>
            <el-descriptions v-for="(channelItem,k) in item.channelData">
               <el-descriptions-item :label="出货渠道+key">
                   {{channelItem.nameZh}}
                </el-descriptions-item>
            </el-descriptions>
          </div>
          <el-descriptions class="card" v-if="[2,3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="是否双清">
                  <dict-tag :type="DICT_TYPE.ECW_DOUBLE_CLEAR" :value="item.doubleClear"></dict-tag>
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions v-if="[3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="航空公司">
                 {{item.airlineCompany}}
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions v-if="item.transportId==2">
              <el-descriptions-item label="船公司">
                 {{item.airlineCompany}}
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions v-if="[2,3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="清关证书">
                 <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="item.customsClearCert"></dict-tag>
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions v-if="[2,3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="清关证书备注">
                 {{item.remarks}}
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions class="card" v-if="[3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="是否拆包">
                 <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="item.isUnpack"></dict-tag>
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions v-if="[3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="单票立刻转运">
                <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="item.isSingleTicketTransport"></dict-tag>

                   <span style="margin-left:10px;color: #0000FF;">注：若只有一件，货到仓库立即发，选“是”，多件需仓库集运待发，选“否”</span>
              </el-descriptions-item>

          </el-descriptions>
          <el-descriptions v-if="[3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="包装类型">
                 <dict-selector  form-type="checkbox"  :type="DICT_TYPE.ECW_PACKAGE_TYPE" multiple  v-model="item.packageType" />
              </el-descriptions-item>
          </el-descriptions>
          <el-descriptions v-if="[3,4].indexOf(item.transportId) > -1">
              <el-descriptions-item label="特需备注">
                {{item.packageRemarks}}
              </el-descriptions-item>
          </el-descriptions>
        </el-card>
        <el-card class="card" :column="4"> 
          <div slot="header" class="card-title">通用信息</div>
            <el-descriptions >
              <el-descriptions-item label="唛头1">
                  {{list.marks}}
              </el-descriptions-item>
              <el-descriptions-item label="报关方式">
                  <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="list.customsType"></dict-tag>
              </el-descriptions-item>
              </el-descriptions>
            <el-descriptions :column="4">
             <el-descriptions-item label="预计结束时间">
                  {{list.stopTime}}
              </el-descriptions-item>
              <el-descriptions-item label="控货">
                   {{list.control?'是':'否'}}
               </el-descriptions-item>
               <el-descriptions-item label="竞争对手">
                  {{list.competitor}}
                </el-descriptions-item>
                <el-descriptions-item label="重要程度">
                    <el-rate v-model="list.importance"></el-rate>
                 </el-descriptions-item>
          </el-descriptions>
          <el-descriptions :column="4">
             <el-descriptions-item label="价格有效期">
                 {{list.startTime}} 至 {{list.endTime}}
              </el-descriptions-item>
              <el-descriptions-item label="交货方式">
                <dict-tag :type="DICT_TYPE.ECW_TRADE_TYPE" :value="list.tradeType"></dict-tag>
                   {{list.tradeAdress}}
               </el-descriptions-item>
          </el-descriptions>
          <el-descriptions >
              <el-descriptions-item label="备注">
                   {{list.remarks}}
               </el-descriptions-item>
          </el-descriptions>
        </el-card>
  </div>
</template>

<script>
  import {DICT_TYPE} from  '@/utils/dict'
  import {getOffer,deleteOffer} from '@/api/ecw/offer'
  import {getProductAttrList} from '@/api/ecw/productAttr'
  import {getCustomerList,getCustomer} from '@/api/ecw/customer'
   import {getChannelList,getChannel} from '@/api/ecw/channel'
   import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse'
  export default {
    name: "detail",
    components: {

    },
    data() {
      return {
        // 遮罩层
        loading: false,
        list: [],
        types:'package,bag',
        importance:1,
        productAttrList:[],
        offerId:0,
        //发货/收货人信息
        consigneeData:[],
        routerList:[]
      };
    },
    created() {
      getProductAttrList().then(res => this.productAttrList = res.data)
      if(this.$route.query.offerId){
        this.offerId = this.$route.query.offerId
        this.getList();
      }
    },
    methods: {
      /** 查询列表 */
      getList() {
        let that = this
        that.loading = true;
        // 执行查询
        getOffer(that.offerId).then(response => {
          that.list = response.data;
          that.list.transportRespVOList.forEach((item)=>{
            if(item.channelIds){
              getChannelList({ids:item.channelIds}).then(res=>{
                item.channelData = res.data
              })
            }
            if(item.lineIds){
              let lineIdList = []
              if(item.lineIds.indexOf(',')>-1){
                lineIdList = item.lineIds.split(',')
              }else{
                lineIdList.push(item.lineIds)
              }
              item.lineData = lineIdList
            }
          })

          that.list.offerProdRespVOList.forEach((item)=>{
            if(item.channelId){
              getChannel(item.channelId).then(res=>{
                item.channelName = res.data.nameZh
              })
            }
            var arr = item.prodAttrIds.split(',')
            var prodAttrName = []
            arr.forEach((itemValue)=>{
                 var prodAttrCenter = this.productAttrList.filter(items=>items.id==itemValue)
                 if(prodAttrCenter.length>0){
                   prodAttrName.push(prodAttrCenter[0].attrName)
                 }
            })
            item.prodAttrName = prodAttrName.join(',')
            // num += item.num
          })

          that.loading = false;
          that.getCnsigneeData()
          that.getOpenedRouterList()
        });
      },
      // 获取路线
      getOpenedRouterList(){
          let params = {}
          if(this.list.departureId){
              params.startCityId = this.list.departureId
          }
          if(this.list.objectiveId){
              params.destCityId = this.list.objectiveId
          }
          getOpenedRouterList(params).then(res => this.routerList = res.data)
      },
      // 根据线路id显示线路名称
      getRouterNameById(routerId){
          // return routerId => {
              let router = this.routerList.find(item => item.id == routerId)
              console.log({router})
              if(router){
                  return router.startTitleZh + ' >>>' + router.destTitleZh
              }
              return '-'
          // }
      },
      // 获取发货/收货人
      getCnsigneeData(){
        let that = this
        let ids = that.list.consignorId+','+ that.list.consigneeId
        getCustomerList({ids:ids}).then(res => {
          that.consigneeData = res.data
          getCustomer(that.list.consignorId).then(res=>{
              that.consigneeData[0] = Object.assign(that.consigneeData[0],res.data)
          })
          getCustomer(that.list.consigneeId).then(res=>{
              that.consigneeData[1] = Object.assign(that.consigneeData[1],res.data)
          })
        })
      },
      /** 跟进按钮操作 */
      handleAdd() {
        this.$router.push({
          path: "/offer/logList",
          query:{
            offerId:this.offerId,
            relationId:this.list.consignorId
          }
        });
      },
      toResult(){
        this.$router.push({
          path: "/offer/result",
          query:{
            offerId:this.offerId,
            number:this.list.number
          }
        });
      },
      /** 删除按钮操作 */
      handleDelete() {
        const offerId = this.offerId;
        this.$modal.confirm('是否确认删除报价单管理编号为"' + offerId + '"的数据项?').then(function() {
            return deleteOffer(offerId);
          }).then(() => {
            this.$router.push({
              path: "/offer/result"
            });
            this.$modal.msgSuccess("删除成功");
          }).catch(() => {});
      },
    }
  };
</script>

<style>
  .card-title{
      font-size: 18px;
      font-weight: bold;
       margin-top: 10px;
  }
  .offer-header{
    padding-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .line{
    display: flex;
    align-items: center;
  }
  .line el-descriptions{
    flex: 1;
  }
  .btn{
    width: 60%;
    display: flex;
    align-items: center;
    justify-content: space-around;
  }
  .title-font{
    font-size: 16px;
    font-weight: 600;
    margin-top: 20px;
  }
  .title-font label{
    margin-right: 20px;
  }
  .card{
    margin-top: 20px;
  }
</style>
