CargoControlDetail.vue 5.23 KB
Newer Older
dragondean@qq.com's avatar
dragondean@qq.com committed
1 2 3 4
<!--拆单审核中的申请信息部分-->
<template>
    <div v-if="order">
        <el-descriptions :column="3">
Marcus's avatar
Marcus committed
5 6
            <el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
            <el-descriptions-item :label="$t('运输方式')">
dragondean@qq.com's avatar
dragondean@qq.com committed
7 8
                <dict-tag :type="DICT_TYPE.TRANSPORT_TYPE" :value="order.transportId" />
            </el-descriptions-item>
Marcus's avatar
Marcus committed
9
            <el-descriptions-item :label="$t('出货方式')">
dragondean@qq.com's avatar
dragondean@qq.com committed
10 11
                {{channelName}}
            </el-descriptions-item>
Marcus's avatar
Marcus committed
12
            <el-descriptions-item :label="$t('订单状态')">
dragondean@qq.com's avatar
dragondean@qq.com committed
13 14
                <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" />
            </el-descriptions-item>
Marcus's avatar
Marcus committed
15 16 17
            <el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
            <el-descriptions-item :label="$t('始发仓')">{{$l(order.logisticsInfoDto, 'startTitle')}}</el-descriptions-item>
            <el-descriptions-item :label="$t('目的仓')">{{$l(order.logisticsInfoDto, 'destTitle')}}</el-descriptions-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
18 19

            <!-- 放货修改 -->
Marcus's avatar
Marcus committed
20
            <el-descriptions-item :label="$t('放货件数')" v-if="applyType == 7">
dragondean@qq.com's avatar
dragondean@qq.com committed
21 22 23 24
{{detail.pickNum}}{{$t('')}} {{detail.currentPickNum}}
            </el-descriptions-item>

            <!-- 反复核 -->
Marcus's avatar
Marcus committed
25
            <el-descriptions-item :label="$t('申请原因')" v-if="applyType == 8">
dragondean@qq.com's avatar
dragondean@qq.com committed
26 27
                <dict-tag :type="DICT_TYPE.ECW_PICK_RECURRENT_NUCLEAR_TYPE" :value="detail.recurrentNuclearType" />
            </el-descriptions-item>
28

dragondean@qq.com's avatar
dragondean@qq.com committed
29
            <!-- 调货 -->
Marcus's avatar
Marcus committed
30
            <el-descriptions-item :label="$t('申请原因')" v-if="applyType == 9">
dragondean@qq.com's avatar
dragondean@qq.com committed
31
                {{$l(detail, 'reason')}}
dragondean@qq.com's avatar
dragondean@qq.com committed
32 33 34
            </el-descriptions-item>

            <!-- 取消放货 -->
35
            <el-descriptions-item :label="$t('申请原因')" v-if="applyType == 10" :span="2">
36
                <dict-tag :type="DICT_TYPE.ECW_CANCEL_PICK_TYPE" :value="detail.cancelPickType" />
dragondean@qq.com's avatar
dragondean@qq.com committed
37
            </el-descriptions-item>
38 39 40 41 42 43
            <el-descriptions-item v-if="voucherList.length" :label="$t('凭证')" :span="3">
              <div v-for="(item, index) in voucherList" :key="index" style="padding:5px">
                <video v-if="isVideo(item)" :src="item" @click="playVideo(item)" style="width: 100px; height: 100px;"></video>
                <el-image v-else :src="item"  style="width: 100px; height: 100px;" :preview-src-list="voucherImages"></el-image>
              </div>
            </el-descriptions-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
44
        </el-descriptions>
45 46 47 48

      <el-dialog :visible="!!videoUrl" :before-close="closeVideoPlayer">
        <video v-if="!!videoUrl" :src="videoUrl" style="width: 500px; height: 500px" controls></video>
      </el-dialog>
dragondean@qq.com's avatar
dragondean@qq.com committed
49 50 51 52 53 54 55
    </div>
</template>
<script>
import {getPickUpdateApproveInfo} from '@/api/ecw/orderCargoControl'
import {getOrder} from '@/api/ecw/order'
import {getChannelListByIds} from '@/api/ecw/channel'
import {parseTime} from '@/utils/ruoyi'
56
import Template from "@/views/cms/template/index.vue";
dragondean@qq.com's avatar
dragondean@qq.com committed
57
export default {
58
  components: {Template},
dragondean@qq.com's avatar
dragondean@qq.com committed
59 60 61 62 63 64 65 66 67 68
    filters: {parseTime},
    props:{
        id: [String, Number],
        applyType: Number, // 申请类型   7 放货修改申请 8 放货反复核申 9 调货审核
    },
    data(){
        return {
            detail: null,
            order: null,
            channels: [],
69 70
            channelName: '/',
          videoUrl: null
dragondean@qq.com's avatar
dragondean@qq.com committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
        }
    },
    watch:{
        id(){
            this.getData()
        }
    },
    computed:{
        jsonParse(){
            return d => {
                return JSON.parse(d)
            }
        },
        getChannelName(){
            return id => {
                let channel = this.channels.find(item => item.channelId == id)
                return channel ? channel.nameZh : '/'
            }
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
        },
        // 凭证
        voucherList(){
          if(!this.detail || !this.detail.voucher) return []
          return this.detail.voucher.split(',')
        },
      // 图片类型的凭证
      voucherImages(){
          return this.voucherList.filter(item => {
            return !this.isVideo(item)
          })
      },
      // 判断是否是视频链接
      isVideo(){
          return (url) => {
            return ['mp4'].indexOf(url.split('.').pop().toLowerCase()) > -1
          }
      }
dragondean@qq.com's avatar
dragondean@qq.com committed
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
    },
    created(){
        if(this.id){
            this.getData()
        }
    },
    methods:{
        getData(){
            getPickUpdateApproveInfo({approveId: this.id}).then(res => {
                this.detail = res.data
                return getOrder(this.detail.orderId)
            }).then(res => {
                this.order = res.data
                this.getChannel()
            })
        },
         getChannel(){
124
            if(!this.order || !this.order.channelId) return
dragondean@qq.com's avatar
dragondean@qq.com committed
125 126 127 128
            getChannel(this.order.channelId).then(res => {
                this.channelName = this.$l(res.data, 'name')
            })
        },
129 130 131 132 133 134 135 136 137
      // 播放视频
      playVideo(url){
          console.log('play video', url)
          this.videoUrl = url
      },
      // 关闭视频播放器
      closeVideoPlayer(){
          this.videoUrl = null
      }
dragondean@qq.com's avatar
dragondean@qq.com committed
138 139 140 141 142 143 144 145 146 147 148
    }
}
</script>
<style scoped lang="scss">
.title{
    padding: 10px 0;
    span{
        font-size: 14px;
        font-weight: bold;
    }
}
149
</style>