TransferCargo.vue 5.57 KB
Newer Older
1
<template>
2
    <el-dialog :title="$t('调货')" visible :before-close="closeDialog" :close-on-click-modal="false" width="800px">
3
      <!--调货-->
dragondean@qq.com's avatar
dragondean@qq.com committed
4
      <el-form ref="form" :model="formData" :rules="rules" size="small" label-width="150px" v-if="detail" >
5 6
        <el-row>
          <el-col :span="12">
7
            <el-form-item :label="$t('收货人')">
dragondean@qq.com's avatar
dragondean@qq.com committed
8
              {{detail.consigneeName}}
9 10 11
            </el-form-item>
          </el-col>
          <el-col :span="12">
12
            <el-form-item :label="$t('收货人电话')">
dragondean@qq.com's avatar
dragondean@qq.com committed
13
              {{detail.consigneeCountryCode}} {{detail.consigneePhone}}
14 15 16
            </el-form-item>
          </el-col>
          <el-col :span="24">
17 18
            <el-form-item :label="$t('选择控货订单')">
              <el-select v-model="formData.orderIds" :placeholder="$t('请选择控货中的订单')" multiple>
dragondean@qq.com's avatar
dragondean@qq.com committed
19
                <el-option v-for="item in orders" :label="item.orderNo" :value="item.orderId" :key="item.orderId"></el-option>
20 21 22 23 24
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>

25
        <el-table :data="selectedOrders" border>
26
          <el-table-column :label="$t('订单号')">
27
              {{detail.orderNo}}
28
          </el-table-column>
29
          <el-table-column :label="$t('目的地')">
30
            <template slot-scope="{row}">
31
              {{row.objectiveName}}
32 33
            </template>
          </el-table-column>
34
          <el-table-column :label="$t('总控货数')">
35
            <template slot-scope="{row}">
36
              {{row.sumNum}}
37 38
            </template>
          </el-table-column>
39
          <el-table-column :label="$t('放货箱数')">
40
            <template slot-scope="{row}">
41
              <el-input type="number" v-model.number="row.releaseNum" placeholder="" clearable></el-input>
42 43
            </template>
          </el-table-column>
44
          <el-table-column :label="$t('体积') + '(m³)'">
45
            <template slot-scope="{row}">
46
              {{row.sumVolume}}
47 48
            </template>
          </el-table-column>
49
          <el-table-column :label="$t('重量') + '(kg)'">
50
            <template slot-scope="{row}">
51
              {{row.sumWeight}}
52 53 54 55
            </template>
          </el-table-column>
        </el-table>

56
        <el-form-item :label="$t('备注')" prop="remarks" class="mt-10">
57 58
          <el-input v-model="formData.remarks" clearable></el-input>
        </el-form-item>
59
        <el-form-item :label="$t('控货手机号')" prop="field117" style="margin-top:20px">
60 61
          {{detail.consigneeCountryCode}} {{detail.phone}}
        </el-form-item>
62 63
        <el-form-item :label="$t('手机验证码')" prop="code">
          <el-input v-model="formData.code" :placeholder="$t('请输入手机验证码')" clearable class="w-150 mr-10"></el-input>
64 65
          <send-sms-code :order-id="detail.orderId" scene="5" />
        </el-form-item>
66
        <div class="page-title">{{$t('审批流程')}}</div>
67
        <work-flow v-model="ccIdArr" xmlkey="transfer_goods" />
68
        <el-form-item label="" style="margin-top:20px">
69 70
          <el-button type="success" @click="submit">{{$t('提交申请')}}</el-button>
          <el-button type="default" @click="closeDialog">{{$t('关闭')}}</el-button>
71 72 73 74 75 76
        </el-form-item>
      </el-form>

    </el-dialog>
</template>
<script>
77
import {createPick, getRleaseInfo, seasoningCondimentsSelect, updateApply} from '@/api/ecw/orderCargoControl'
78 79
import AreaCodeSelector from '@/components/AreaCodeSelector'
import SendSmsCode from '@/views/ecw/order/components/SendSmsCode'
80
import WorkFlow from '@/components/WorkFlow'
81 82
export default {
    props:{
83 84
        orderId: [String, Number],
        cargoControlPickId: Number
85
    },
86
    components: {AreaCodeSelector, SendSmsCode, WorkFlow},
87 88 89 90
    data(){
        return {
            show: false,
            detail: null,
91
            ccIdArr: [],
92
            formData:{
93 94
              applyType: 9, // 调货审核
              ccIds: ''
95 96
            },
            rules:{
97 98
              consigneeName: {required: true, message: this.$t('请填写收货人')},
              code: {required: true, message: this.$t('请填写验证码')}
99
            },
dragondean@qq.com's avatar
dragondean@qq.com committed
100 101
            orders: [],
            selectedOrders:[]
102 103
        }
    },
dragondean@qq.com's avatar
dragondean@qq.com committed
104 105 106
    watch:{
      'formData.orderIds'(val){
        this.selectedOrders = this.orders.filter(item => val.indexOf(item.orderId) > -1)
107 108 109
      },
      ccIdArr(val){
        this.formData.ccIds = val.join(',')
dragondean@qq.com's avatar
dragondean@qq.com committed
110 111
      }
    },
112 113 114 115 116 117
    created(){
        this.show = true
        this.loadData()
    },
    methods:{
        loadData(){
dragondean@qq.com's avatar
dragondean@qq.com committed
118 119 120 121
          getRleaseInfo(this.orderId).then(res => this.detail = res.data)
          seasoningCondimentsSelect({orderId: this.orderId}).then(res => {
            this.orders = res.data
          })
122 123 124 125 126 127 128 129 130 131 132
        },
        closeDialog(){
            this.show = false
            this.$emit('close');
        },
        submit(){
          this.$refs.form.validate(valid => {
            if(!valid){
              return false
            }
            console.log('submit')
133 134 135 136 137
            updateApply(Object.assign({
              cargoControlPickId: this.cargoControlPickId,
              orderBackPageVOList: this.selectedOrders,
              orderId: this.orderId
            }, this.formData)).then(res => {
138
              this.$message.success(this.$t('操作成功'))
139 140 141
              this.show = false
              this.$emit('success')
            })
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
          })
          

        }
    }
}
</script>
<style lang="scss" scoped>
.title{
  font-size:16px;
  margin:20px 0;
  display:flex;
  align-items:center;
  &:before{
    content: '';
    width:5px;
    height: 15px;
    background:#666;
    margin-right:10px;
  }
}
</style>