warehouseDetails.vue 10.4 KB
Newer Older
1 2
<template>
<div>
Marcus's avatar
Marcus committed
3
  <h1>{{ $t('申请信息【订单信息】') }}</h1>
dcy's avatar
dcy committed
4
  <el-table :data="list"  v-if="type === 1">
5
    <el-table-column
dcy's avatar
dcy committed
6
      prop="orderNo"
Marcus's avatar
Marcus committed
7
      :label="$t('订单编号')">
8 9
    </el-table-column>
    <el-table-column
dcy's avatar
dcy committed
10
      prop="marks"
Marcus's avatar
Marcus committed
11
      :label="$t('唛头')">
12 13 14
    </el-table-column>
    <el-table-column
      label="已到箱数/总箱数">
dcy's avatar
dcy committed
15 16 17
       <template v-slot="{row}">
        {{row.sumNum}}/{{row.totalNum}}
       </template>
18 19
    </el-table-column>
    <el-table-column
Marcus's avatar
Marcus committed
20
      :label="$t('下单统计')">
dcy's avatar
dcy committed
21 22
      <template v-slot="{row}">
        <div v-if="row.costVO">
23 24 25
          <div>箱数:{{row.costVO.totalNum}}</div>
           <div>体积:{{row.costVO.totalVolume}}CMB</div>
           <div>重量:{{row.costVO.totalWeight}}kg</div>
dcy's avatar
dcy committed
26 27
        </div>
      </template>
28 29
    </el-table-column>
    <el-table-column
Marcus's avatar
Marcus committed
30
      :label="$t('入仓统计')">
dcy's avatar
dcy committed
31
       <template v-slot="{row}">
邓春圆's avatar
邓春圆 committed
32 33

         <div>总箱数:{{row.sumNum}}</div>
dcy's avatar
dcy committed
34 35 36
         <div>体积:{{row.sumVolume}}CBM </div>
         <div>重量:{{row.sumWeight}}kg</div>
       </template>
37 38
    </el-table-column>
    <el-table-column
Marcus's avatar
Marcus committed
39
      :label="$t('入仓时间')">
dcy's avatar
dcy committed
40 41 42
      <template  v-slot="{row}">
        {{parseTime(row.rucangTime)}}
      </template>
43 44
    </el-table-column>
    <el-table-column
Marcus's avatar
Marcus committed
45
      :label="$t('运输方式')">
dcy's avatar
dcy committed
46 47 48
      <template v-slot = {row}>
        <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId"></dict-tag>
      </template>
49 50
    </el-table-column>
    <el-table-column
Marcus's avatar
Marcus committed
51
      :label="$t('出货渠道')">
52
        <template v-slot="{row}">{{row.channelName || '/'}}</template>
53
    </el-table-column>
Marcus's avatar
Marcus committed
54 55 56
    <el-table-column :label="$t('始发仓')" prop="startWarehouseName"></el-table-column>
    <el-table-column :label="$t('目的地')" prop="objectiveName"></el-table-column>
    <el-table-column :label="$t('发货人')">
57
      <template v-slot="{row}">
dcy's avatar
dcy committed
58 59 60
        <p>
          {{row.consignorName}}
        </p>
dcy's avatar
dcy committed
61 62
        <p style="white-space: nowrap">
         +{{row.consignorCountryCode}}  {{row.consignorPhone}}
dcy's avatar
dcy committed
63
        </p>
64
      </template>
65
  </el-table-column>
Marcus's avatar
Marcus committed
66
      <el-table-column :label="$t('收货人')">
67
    <template v-slot="{row}">
dcy's avatar
dcy committed
68 69 70
        <p>
          {{row.consigneeName}}
        </p>
dcy's avatar
dcy committed
71 72
        <p style="white-space: nowrap">
          +{{row.consigneeCountryCode}} {{row.consigneePhone}}
dcy's avatar
dcy committed
73 74
        </p>
      </template>
75 76
    </el-table-column>
  </el-table>
dcy's avatar
dcy committed
77
  <el-descriptions  v-else-if="type === 2" :column="4" border>
Marcus's avatar
Marcus committed
78 79
    <el-descriptions-item :label="$t('订单号')">{{FeeDetails.orderBackVO.orderNo}}</el-descriptions-item>
    <el-descriptions-item :label="$t('运输方式')">
dcy's avatar
dcy committed
80 81
      <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="FeeDetails.orderBackVO.transportId"></dict-tag>
    </el-descriptions-item>
Marcus's avatar
Marcus committed
82
    <el-descriptions-item :label="$t('出货方式')">
dcy's avatar
dcy committed
83 84
      {{selectChannel(FeeDetails.channelId)}}
    </el-descriptions-item>
Marcus's avatar
Marcus committed
85
    <el-descriptions-item :label="$t('订单状态')">
dcy's avatar
dcy committed
86 87
      <dict-tag :type="DICT_TYPE.ORDER_ABNORMAL_STATE" :value="FeeDetails.orderBackVO.abnormalState"></dict-tag>
    </el-descriptions-item>
Marcus's avatar
Marcus committed
88
    <el-descriptions-item :label="$t('唛头')">
dcy's avatar
dcy committed
89 90
      {{FeeDetails.orderBackVO.marks}}
    </el-descriptions-item>
Marcus's avatar
Marcus committed
91 92
    <el-descriptions-item :label="$t('始发仓')">{{FeeDetails.startWarehouse}}</el-descriptions-item>
    <el-descriptions-item :label="$t('目的仓')">{{FeeDetails.destWarehouse}}</el-descriptions-item>
dcy's avatar
dcy committed
93
  </el-descriptions>
94
  <el-descriptions  v-else-if="type === 3 || type === 4" :column="4" border>
Marcus's avatar
Marcus committed
95 96
    <el-descriptions-item :label="$t('订单号')">{{FeeDetails.orderNo}}</el-descriptions-item>
    <el-descriptions-item :label="$t('运输方式')">
97 98
      <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="FeeDetails.transportId"></dict-tag>
    </el-descriptions-item>
Marcus's avatar
Marcus committed
99
    <el-descriptions-item :label="$t('出货方式')">
dcy's avatar
dcy committed
100 101
      {{selectChannel(FeeDetails.channelId)}}
    </el-descriptions-item>
Marcus's avatar
Marcus committed
102
    <el-descriptions-item :label="$t('订单状态')">
103 104
      <dict-tag :type="DICT_TYPE.ORDER_ABNORMAL_STATE" :value="FeeDetails.abnormalState"></dict-tag>
    </el-descriptions-item>
Marcus's avatar
Marcus committed
105
    <el-descriptions-item :label="$t('唛头')">
106 107
      {{FeeDetails.marks}}
    </el-descriptions-item>
Marcus's avatar
Marcus committed
108 109
    <el-descriptions-item :label="$t('始发仓')">{{FeeDetails.logisticsInfoDto.startTitleZh}}</el-descriptions-item>
    <el-descriptions-item :label="$t('目的仓')">{{FeeDetails.logisticsInfoDto.destTitleZh}}</el-descriptions-item>
110 111
  </el-descriptions>
  <div v-if="type === 1">
Marcus's avatar
Marcus committed
112
    <p>{{ $t('申请说明') }}</p>
113
    <div >
114 115
      从 【{{selectWarehouse(FeeDetails.details && FeeDetails.details.warehouseOutId ? FeeDetails.details.warehouseOutId : '' )}}】 调到
      【{{selectWarehouse(FeeDetails.details && FeeDetails.details.warehouseInId ? FeeDetails.details.warehouseInId : '' )}}】
116 117 118
    </div>
  </div>
  <div v-if="type === 2">
Marcus's avatar
Marcus committed
119
    <p>{{ $t('申请理由') }}</p>
120
    <div>
dcy's avatar
dcy committed
121
      <dict-tag   :type="DICT_TYPE.FEE_TYPE" :value="FeeDetails.feeType" />
dcy's avatar
dcy committed
122
      {{FeeDetails.applicationFee}}
123 124
      <!-- <dict-tag   :type="DICT_TYPE.COMMISSION_    CURRENCY_TYPE" :value="FeeDetails.applicationFeeCurrency" />, -->
      {{currencyName(FeeDetails.applicationFeeCurrency)}}
dcy's avatar
dcy committed
125 126
      <dict-tag  :value="FeeDetails.payType"  :type="DICT_TYPE.PAYMENT_TYPE" ></dict-tag>
      【{{FeeDetails.remarks}}】
127 128
    </div>
  </div>
dcy's avatar
dcy committed
129
  <div v-if="type === 3">
Marcus's avatar
Marcus committed
130
    <p>{{ $t('申请理由') }}</p>
dcy's avatar
dcy committed
131 132 133
    <div>
      {{ FeeDetails.details && FeeDetails.details.reason ? FeeDetails.details.reason :''}}
    </div>
邓春圆's avatar
邓春圆 committed
134 135 136 137 138 139 140 141 142 143
    <p>{{$t('退仓图片')}}</p>
    <div>
      <el-image
        v-for="(item, index) in (FeeDetails.details.imgUrl || '').split(',')"
        :key = 'index'
        style="width: 100px; height: 100px;margin:10px;"
        :src="item"
        :preview-src-list="(FeeDetails.details.imgUrl || '').split(',')">
      </el-image>
    </div>
dcy's avatar
dcy committed
144
  </div>
黄卓's avatar
黄卓 committed
145
  <div v-if="type === 4">
Marcus's avatar
Marcus committed
146
    <p>{{ $t('申请理由') }}</p>
黄卓's avatar
黄卓 committed
147
    <div>
148
      用户修改了订单中商品编号为【{{ FeeDetails.orderItemVOList[0].prodId }}】的【{{ prodName }}】信息:
149 150 151
      <ol>
        <template v-for="item in FeeDetails.details.applyInfoVOList">
          <li v-if="item.orgValue === undefined">{{ item.name }}{{ item.newValue }}</li>
152
          <li v-else-if="item.newValue === undefined">{{ $t('删除入仓') }}{{ item.orgValue }}</li>
153 154 155
          <li v-else-if="item.newValue !== item.orgValue">{{ item.name }}从【{{ item.orgValue }}】改为【{{ item.newValue }}</li>
        </template>
      </ol>
黄卓's avatar
黄卓 committed
156 157
    </div>
  </div>
158 159 160 161
</div>
</template>

<script>
dcy's avatar
dcy committed
162 163 164 165 166
import {
  warehouseApprovalGetByFormId,
  warehouseApprovalGetById,
  warehouseAreaPositionList
} from "@/api/ecw/batchSingleApplication";
黄卓's avatar
黄卓 committed
167 168 169 170 171 172 173
import {
  applicationGetOrderByProcessId,
  feeApplicationGet,
  getOrder,
  getOrderPage,
  getWarehouseUpdateApprovalInfo
} from '@/api/ecw/order'
174

dcy's avatar
dcy committed
175
import { getChannelList } from '@/api/ecw/channel';
dcy's avatar
dcy committed
176
import Template from "@/views/cms/template";
177
import {getSupplierPage} from "@/api/ecw/supplier";
dcy's avatar
dcy committed
178
import { DICT_TYPE } from "@/utils/dict";
179 180 181

import { getCurrencyList } from "@/api/ecw/currency";
import {arrryToKeyedObjectBy} from '@/utils/index'
182
export default {
dcy's avatar
dcy committed
183
  components: {Template},
184 185 186
  props:{
    type:{
      type: Number,
dcy's avatar
dcy committed
187
       default:1,
188 189 190 191 192 193 194 195
    },
    processId:{
      type:[Number,String],
    }
  },
  name: "warehouseDetails",
  data(){
    return{
dcy's avatar
dcy committed
196
      DICT_TYPE,
dcy's avatar
dcy committed
197 198 199 200
      FeeDetails:{
        orderBackVO:{},
        logisticsInfoDto:{}
      },
201
      transfer:{},
dcy's avatar
dcy committed
202
      warehouseList:[],
dcy's avatar
dcy committed
203
      channelList:[],
dcy's avatar
dcy committed
204
      processInstanceID:undefined,
205
      list:[],
206
      currencyList:[],
207
      prodName: ''
208 209
    }
  },
210 211 212 213 214 215 216 217 218 219 220 221
  computed:{
    currencyMap(){
      return arrryToKeyedObjectBy(this.currencyList, 'id')
    },
    currencyName(){
      return id => {
        let obj = this.currencyMap[id]
        if(obj) return this.$l(obj, 'title')
        return this.$t('未知')
      }
    }
  },
222
  created() {
223 224 225
    getCurrencyList().then(res => {
      this.currencyList = res.data
    })
dcy's avatar
dcy committed
226
    getChannelList().then(r => this.channelList = r.data);
227
    warehouseAreaPositionList().then(r => this.warehouseList = r.data)
dcy's avatar
dcy committed
228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
       if(this.type === 2){
         feeApplicationGet({id:this.processId}).then(r => {
           if(r.code === 0){
             this.processInstanceID = r.data.bpmProcessId;
             this.getDetails()
           }
         })
       }else {
         warehouseApprovalGetById({id:this.processId}).then(r => {
           if(r.code === 0){
             this.processInstanceID = r.data.formId;
             this.getDetails()
           }
         })
       }
243 244 245
  },
  methods:{
    selectWarehouse(val){
dcy's avatar
dcy committed
246
      if(this.warehouseList.length > 0 && !!val){
247 248 249
       return  this.warehouseList.find(e => e.id === val).titleZh
      }
        return ''
dcy's avatar
dcy committed
250 251
    },
    selectChannel(val){
dcy's avatar
dcy committed
252
      if(this.channelList.length > 0 && !!val) return this.channelList.find(e => e.channelId === val).nameEn
dcy's avatar
dcy committed
253
      return ''
dcy's avatar
dcy committed
254 255 256 257 258 259 260 261
    },
    getDetails(){
      switch (this.type){
        case 1:
          //调仓
          warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( r => {
            this.FeeDetails = r.data
            this.FeeDetails.details = JSON.parse(r.data.details)
262
              getOrderPage({orderIdList:r.data.adjustActualOrderIds}).then(res=>{
dcy's avatar
dcy committed
263 264
              this.list = res.data.list
            })
dcy's avatar
dcy committed
265 266 267 268 269 270 271

          });
          break;
        case 2:
          // 费用申请
          applicationGetOrderByProcessId({processId:this.processInstanceID}).then(r => {
            this.FeeDetails = r.data
dcy's avatar
dcy committed
272
            console.log(this.FeeDetails,'FeeDetails')
dcy's avatar
dcy committed
273 274 275 276 277 278 279 280 281 282 283
          })
          break;
        case 3:
          //退仓
          warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( res => {
            getOrder(res.data.orderIds).then(r =>{
              this.FeeDetails = r.data
              this.FeeDetails.details = JSON.parse(res.data.details)
            })
          });
          break;
黄卓's avatar
黄卓 committed
284 285
        case 4:
          // 入仓修改
Marcus's avatar
Marcus committed
286 287 288 289
          getWarehouseUpdateApprovalInfo(this.processInstanceID).then(res => {
            getOrder(res.data.orderIds).then(r =>{
              this.FeeDetails = r.data
              this.FeeDetails.details = JSON.parse(res.data.details)
290
              const orderItem = this.FeeDetails.orderItemVOList.find(e => e.orderItemId === this.FeeDetails.details.orderItemId)
291 292 293
              if (orderItem){
                this.prodName = orderItem.prodTitleZh + '(' + orderItem.prodTitleEn + ')'
              }
Marcus's avatar
Marcus committed
294
            })
黄卓's avatar
黄卓 committed
295 296
          })
          break
dcy's avatar
dcy committed
297
      }
298
    }
dcy's avatar
dcy committed
299

300 301 302 303 304 305 306
  }
}
</script>

<style scoped>

</style>