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

<script>
dcy's avatar
dcy committed
151 152 153 154 155
import {
  warehouseApprovalGetByFormId,
  warehouseApprovalGetById,
  warehouseAreaPositionList
} from "@/api/ecw/batchSingleApplication";
黄卓's avatar
黄卓 committed
156 157 158 159 160 161 162
import {
  applicationGetOrderByProcessId,
  feeApplicationGet,
  getOrder,
  getOrderPage,
  getWarehouseUpdateApprovalInfo
} from '@/api/ecw/order'
163

dcy's avatar
dcy committed
164
import { getChannelList } from '@/api/ecw/channel';
dcy's avatar
dcy committed
165
import Template from "@/views/cms/template";
166
import {getSupplierPage} from "@/api/ecw/supplier";
dcy's avatar
dcy committed
167
import { DICT_TYPE } from "@/utils/dict";
168 169 170

import { getCurrencyList } from "@/api/ecw/currency";
import {arrryToKeyedObjectBy} from '@/utils/index'
171
export default {
dcy's avatar
dcy committed
172
  components: {Template},
173 174 175
  props:{
    type:{
      type: Number,
dcy's avatar
dcy committed
176
       default:1,
177 178 179 180 181 182 183 184
    },
    processId:{
      type:[Number,String],
    }
  },
  name: "warehouseDetails",
  data(){
    return{
dcy's avatar
dcy committed
185
      DICT_TYPE,
dcy's avatar
dcy committed
186 187 188 189
      FeeDetails:{
        orderBackVO:{},
        logisticsInfoDto:{}
      },
190
      transfer:{},
dcy's avatar
dcy committed
191
      warehouseList:[],
dcy's avatar
dcy committed
192
      channelList:[],
dcy's avatar
dcy committed
193
      processInstanceID:undefined,
194
      list:[],
195
      currencyList:[],
196
      prodName: ''
197 198
    }
  },
199 200 201 202 203 204 205 206 207 208 209 210
  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('未知')
      }
    }
  },
211
  created() {
212 213 214
    getCurrencyList().then(res => {
      this.currencyList = res.data
    })
dcy's avatar
dcy committed
215
    getChannelList().then(r => this.channelList = r.data);
216
    warehouseAreaPositionList().then(r => this.warehouseList = r.data)
dcy's avatar
dcy committed
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
       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()
           }
         })
       }
232 233 234
  },
  methods:{
    selectWarehouse(val){
dcy's avatar
dcy committed
235
      if(this.warehouseList.length > 0 && !!val){
236 237 238
       return  this.warehouseList.find(e => e.id === val).titleZh
      }
        return ''
dcy's avatar
dcy committed
239 240
    },
    selectChannel(val){
dcy's avatar
dcy committed
241
      if(this.channelList.length > 0 && !!val) return this.channelList.find(e => e.channelId === val).nameEn
dcy's avatar
dcy committed
242
      return ''
dcy's avatar
dcy committed
243 244 245 246 247 248 249 250
    },
    getDetails(){
      switch (this.type){
        case 1:
          //调仓
          warehouseApprovalGetByFormId({formId:this.processInstanceID}).then( r => {
            this.FeeDetails = r.data
            this.FeeDetails.details = JSON.parse(r.data.details)
251
              getOrderPage({orderIdList:r.data.adjustActualOrderIds}).then(res=>{
dcy's avatar
dcy committed
252 253
              this.list = res.data.list
            })
dcy's avatar
dcy committed
254 255 256 257 258 259 260

          });
          break;
        case 2:
          // 费用申请
          applicationGetOrderByProcessId({processId:this.processInstanceID}).then(r => {
            this.FeeDetails = r.data
dcy's avatar
dcy committed
261
            console.log(this.FeeDetails,'FeeDetails')
dcy's avatar
dcy committed
262 263 264 265 266 267 268 269 270 271 272
          })
          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
273 274
        case 4:
          // 入仓修改
Marcus's avatar
Marcus committed
275 276 277 278
          getWarehouseUpdateApprovalInfo(this.processInstanceID).then(res => {
            getOrder(res.data.orderIds).then(r =>{
              this.FeeDetails = r.data
              this.FeeDetails.details = JSON.parse(res.data.details)
279
              const orderItem = this.FeeDetails.orderItemVOList.find(e => e.orderItemId === this.FeeDetails.details.orderItemId)
280 281 282
              if (orderItem){
                this.prodName = orderItem.prodTitleZh + '(' + orderItem.prodTitleEn + ')'
              }
Marcus's avatar
Marcus committed
283
            })
黄卓's avatar
黄卓 committed
284 285
          })
          break
dcy's avatar
dcy committed
286
      }
287
    }
dcy's avatar
dcy committed
288

289 290 291 292 293 294 295
  }
}
</script>

<style scoped>

</style>