<template>
    <!-- 订单获取入仓记录 -->
    <el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="1000px">
        <el-button v-if="info.transportId==3" style="position:absolute;top:15px;left:340px" type="primary" @click="seePackLog">{{$t('查看打包历史')}}</el-button>
        <el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList">
          <el-table-column type="index" :label="$t('序号')" />
          <el-table-column :label="$t('箱数')" prop="cartonsNum" />
          <el-table-column :label="$t('入仓类型')" prop="cartonsNum">
            <template slot-scope="{row}">
              <dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" />
            </template>
          </el-table-column>
          <el-table-column :label="$t('包装类型')" prop="unit">
            <template slot-scope="{row}">
              <dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="row.unit" />
            </template>
          </el-table-column>
          <el-table-column :label="$t('长')" prop="boxGauge">
            <template slot-scope="{row}">
              {{row.boxGauge.split('*')[0]}}
            </template>
          </el-table-column>
          <el-table-column :label="$t('宽')" prop="boxGauge" >
            <template slot-scope="{row}">
              {{row.boxGauge.split('*')[1]}}
            </template>
          </el-table-column>
          <el-table-column :label="$t('高')" prop="boxGauge" >
            <template slot-scope="{row}">
              {{row.boxGauge.split('*')[2]}}
            </template>
          </el-table-column>
          <el-table-column :label="$t('体积') + '(m³)'" prop="volume" />
          <el-table-column :label="$t('重量') + '(kg)'" prop="weight" />
          <el-table-column :label="$t('数量（个）')" prop="quantityAll" />
          <el-table-column :label="$t('入仓快递单号')" prop="expressNo" />
          <el-table-column :label="$t('首次入仓时间')" prop="inTime" >
            <template slot-scope="{row}">{{row.inTime|parseTime}}</template>
          </el-table-column>
          <el-table-column :label="$t('储位')" prop="orderLocationBackVOList" >
            <template slot-scope="{row}">
              {{getLocationName(row.orderLocationBackVOList)}}
            </template>
          </el-table-column>
        </el-table>
    </el-dialog>
</template>
<script>
import { getOrder, getOrderWarehouseIn } from '@/api/ecw/order'
import { DICT_TYPE } from '@/utils/dict'
import { parseTime } from '@/utils/ruoyi'
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
export default {
  components: {
    WarehouseAreaSelect
  },
    filters: {parseTime},
    props:{
        order: Object, // order 和 orderId 二选一
        orderId: Number,
        orderItemId: Number,
    },
    data(){
        return {
          orderDetail: null,
            warehouseList: null
        }
    },
    computed:{
      info(){
        return this.orderDetail || this.order
      },
      orderItem(){
        if(!this.info) return null
        return this.info.orderItemVOList.find(item => item.orderItemId == this.orderItemId)
      },
      warehouseItem(){
        if(!this.warehouseList) return []
        return this.warehouseList.find(item => item.orderItemId == this.orderItemId) || []
      },
      title(){
        if(!this.orderItem) return '-'
        return this.$l(this.orderItem, 'prodTitle') + ' - ' + this.$t('入仓记录')
      }
    },

    created(){
        this.show = true
        if(!this.order && this.orderId){
          getOrder(this.orderId).then(res => {
            this.orderDetail = res.data
          })
        }
        this.getOrderWarehouseIn()
    },
    methods:{
      // 获取储位名称
      getLocationName(locationArr){
        if(!locationArr || !locationArr.length) return ''
        let arr = []
        locationArr.forEach(item => {
          arr.push(`${item.areaName}${item.locationName || ''}`)
        })
        return Array.from(new Set(arr)).join(",")
      },
        closeDialog(){
            this.show = false
            this.$emit('close');
        },
        getOrderWarehouseIn(){
          getOrderWarehouseIn(this.info.orderId).then(res => {
            this.warehouseList = res.data
          })
        },
        seePackLog(){
          this.$emit('openPackHistory',2)
        }
    }
}
</script>
