<!--拆单审核中的申请信息部分-->
<template>
    <div v-if="order">
        <el-descriptions :column="4" v-if="order" :colon="false">
            <el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
            <el-descriptions-item :label="$t('运输方式')">
                <dict-tag class="mr-10" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
            </el-descriptions-item>
            <el-descriptions-item :label="$t('出货方式')">
                {{channel ? channel.nameZh : '/'}}
            </el-descriptions-item>
            <el-descriptions-item :label="$t('订单状态')">
                {{order.statusMsg}}
            </el-descriptions-item>
            <el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
            <el-descriptions-item :label="$t('始发仓')">
                {{order.logisticsInfoDto.startTitleZh}}
            </el-descriptions-item>
            <el-descriptions-item :label="$t('目的仓')" :span="2">
                {{order.logisticsInfoDto.destAddressZh}}
            </el-descriptions-item>
        </el-descriptions>
        <el-descriptions v-if="order" :colon="false">
            <el-descriptions-item :label="$t('申请理由')" :span="2">
                 {{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
            </el-descriptions-item>
        </el-descriptions>
        <el-table border :data="order.orderItemVOList">
          <el-table-column :label="$t('序号')" align="center" prop="id" type="index">
              <template slot-scope="scope">
                  <span>{{scope.$index + 1}}</span>
              </template>
            </el-table-column>
          <el-table-column :label="$t('中文名')" align="center"  prop="prodTitleZh" min-width="60" />
          <el-table-column :label="$t('英文名')" align="center"  prop="prodTitleEn" min-width="60" />
          <el-table-column :label="$t('品牌')" align="center" min-width="50" prop="brandType">
            <template slot-scope="scope">
                <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType"></dict-tag>
              </template>
            </el-table-column>
          <el-table-column :label="$t('填单箱数')" prop="num" min-width="60" />
          <!-- v2.0  入仓特性异常 -->
          <el-table-column :label="$t('填单特性')" prop="prodAttrIds" min-width="100">
            <template slot-scope="scope">
                  {{getProdAtrr(scope.row.prodAttrIds)}}
              </template>
            </el-table-column>
          <el-table-column :label="$t('入仓箱数')" min-width="60">
            <template slot-scope="scope">
                {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.cartonsNum:0}}
            </template>
          </el-table-column>
          <!-- v2.0  入仓特性异常 -->
          <el-table-column :label="$t('入仓特性')" prop="num" min-width="100">
          <template slot-scope="scope">
                {{scope.row.warehouseInInfoVO&&scope.row.warehouseInInfoVO.prodAttrIds?getProdAtrr(scope.row.warehouseInInfoVO.prodAttrIds):''}}
            </template>
          </el-table-column>
          <el-table-column :label="$t('方数')" prop="volume" min-width="50">
            <template slot-scope="scope">
                {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.volume:0}}
              </template>
            </el-table-column>
          <el-table-column :label="$t('重量')" prop="weight" min-width="50">
            <template slot-scope="scope">
                {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.weight:0}}
              </template>
            </el-table-column>
          <el-table-column :label="$t('数量')" prop="quantity" min-width="50">
            <template slot-scope="scope">
                {{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.quantityAll:0}}
              </template>
            </el-table-column>
          <el-table-column :label="$t('货值')" prop="worth" min-width="50" />
          <el-table-column :label="$t('运费/全包价')" prop="quantity" min-width="160">
            <template slot-scope="scope" >
               <div v-if="scope.row.charging ==1" class="channel">
                     <span v-if="!scope.row.oneSeaFreight">{{$t('全包价')}}:{{$t('未报价')}}</span>
                     <span v-else>{{$t('全包价')}}:{{scope.row.oneSeaFreight}} {{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
               </div>
               <div v-else class="channel">
                   <span v-if="!scope.row.oneSeaFreight">{{$t('运费')}}:{{$t('未报价')}}</span>
                   <span v-else>{{$t('运费')}}:{{scope.row.oneSeaFreight}} {{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
               </div>
            </template>
          </el-table-column>
          <el-table-column :label="$t('清关费')" prop="quantity" min-width="160">
            <template slot-scope="scope">
                 <div class="channel">
                     <span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span>
                     <span v-else>{{scope.row.oneClearanceFreight}} {{currencyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}</span>
                 </div>
            </template>
          </el-table-column>
        </el-table>
        <el-descriptions :colon="false" style="margin-top:10px">
            <el-descriptions-item :label="$t('备注')" :span="2">
                 {{orderExceptionData.applyNotes}}
            </el-descriptions-item>
        </el-descriptions>
    </div>
</template>
<script>
import {getOrder} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getUnitList} from "@/api/ecw/unit"
import { getCurrencyList } from '@/api/ecw/currency'
import {getProductAttrList} from '@/api/ecw/productAttr'
import Decimal from 'decimal.js'
import {getExceptionDetailByBusinessId,getOrderExceptionChannelPriceList} from '@/api/ecw/orderException'

export default {
    name: 'NotShipingChannel',
    props:{
        id: [String, Number],
        path: String
    },
    data(){
        return {
            orderExceptionData: null,
            order: null,
            channel: null,
            unitList:[],
            currencyList:[],
            detail:null
        }
    },
    watch:{
        id(){
            this.getData()
        },
        order(){
            if(this.order.channelId){
                this.getChannel()
            }
        },
    },
    computed:{
        currencyMap(){
            let map = {}
            this.currencyList.forEach(item => {
                map[item.id] = this.$l(item, 'title')
            })
            return map
        },
        unitMap(){
            let map = {}
            this.unitList.forEach(item => {
                map[item.id] = this.$l(item, 'title')
            })
            return map
        }
    },
    async created(){
        await getUnitList().then(res => this.unitList = res.data)
        await getCurrencyList().then(res => this.currencyList = res.data)
        this.productAttrList = (await getProductAttrList()).data
        if(this.id){
            this.getData()
        }
    },
    methods:{
        Decimal,
        getData(){
            getExceptionDetailByBusinessId({businessId:this.id}).then(res => {
                this.orderExceptionData = res.data
                if(res.data.orderId){
                    getOrder(res.data.orderId).then(res => {
                        this.order = res.data
                        this.getExceptionPriceList(res.data.orderId)
                    })
                }
            })
        },
        getProdAtrr(ids){
          if(!ids) return ''
          let attr = []

          let attrIds = ids.split(',')
          this.productAttrList.forEach(item=>{
             if(attrIds.indexOf(item.id) > -1||attrIds.indexOf(item.id+'')>-1){
               attr.push(this.$l(item, 'attrName'))
             }
          })
          return attr.join(',')
        },
        getChannel(){
            getChannel(this.order.channelId).then(res => {
                this.channel = res.data
            })
        },
        getExceptionPriceList(orderId){
          let that = this
          getOrderExceptionChannelPriceList({orderId:orderId,exceptionId:this.orderExceptionData.id,exceptionResultId:parseInt(that.id)}).then(res=>{
            if(res.code==0&&res.data.length>0){
              that.order.orderItemVOList.map(v=>{
               var item = res.data.find(vs=>vs.orderItemId==v.orderItemId)
               if(item){
                 v.oneSeaFreight = item.freightFee
                 v.seaFreightCurrency = item.freightCurrencyId
                 v.seaFreightVolume = item.freightUnitId
                 v.oneClearanceFreight = item.clearanceFee
                 v.clearanceFreightCurrency = item.clearanceCurrencyId
                 v.clearanceFreightVolume = item.clearanceUnitId
               }
              })
            }

          })
        }
    }
}
</script>
<style scoped lang="scss">
.title{
    padding: 10px 0;
    span{
        font-size: 14px;
        font-weight: bold;
    }
}
.bold{
    font-weight: bold;
}
::v-deep .prepay_exception_detail .el-form-item{
    margin-bottom: 0;
}
</style>
