Transfer.vue 4.27 KB
Newer Older
dragondean@qq.com's avatar
dragondean@qq.com committed
1
<template>
dragondean@qq.com's avatar
dragondean@qq.com committed
2
    <el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="800px">
dragondean@qq.com's avatar
dragondean@qq.com committed
3
        <div class="" v-if="agreement">
4
            <el-form ref="form" :model="form" :rules="rules" label-position="left" label-width="120px">
5
              <el-form-item :label="$t('原控货人')">
6
                <el-input v-model="cargoControlName" disabled></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
7
              </el-form-item>
8
              <el-form-item :label="$t('原控货手机号')">
dragondean@qq.com's avatar
dragondean@qq.com committed
9
                <el-input :value="'+' + cargoControlCountryCode + ' ' + cargoControlPhone" disabled></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
10
              </el-form-item>
11
              
12
              <el-form-item :label="$t('新控货人')" prop="name">
13
                <el-input v-model="form.name"></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
14
              </el-form-item>
15
              <el-form-item :label="$t('新控货手机号')" prop="phone">
dragondean@qq.com's avatar
dragondean@qq.com committed
16
                <area-code-selector v-model="form.dialCodeSrc" />
dragondean@qq.com's avatar
dragondean@qq.com committed
17
                <el-input v-model="form.phone" type="tel" maxlength="11" class="ml-10 w-200" />
dragondean@qq.com's avatar
dragondean@qq.com committed
18
              </el-form-item>
19
              <el-form-item :label="$t('新控货人邮箱')" prop="email">
20
                <el-input v-model="form.email" type="email"></el-input>
dragondean@qq.com's avatar
dragondean@qq.com committed
21
              </el-form-item>
22
              <el-form-item :label="$t('手机验证码')" prop="code">
dragondean@qq.com's avatar
dragondean@qq.com committed
23 24
                <el-input v-model.number="form.code" type="number" class="w-200 mr-10"></el-input>
                <send-sms-code :order-id="orderId" scene="4" />
dragondean@qq.com's avatar
dragondean@qq.com committed
25 26
              </el-form-item>
              <el-form-item label="">
27
                <el-button type="primary" @click="submit">{{$t('确定转移')}}</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
28 29 30 31
              </el-form-item>
            </el-form>
        </div>
        <div v-else>
dragondean@qq.com's avatar
dragondean@qq.com committed
32
            <need-know ref="needKnow" keyname="controltransfer" />
dragondean@qq.com's avatar
dragondean@qq.com committed
33
            <div style="margin-top:30px">
34 35
                <el-button type="primary" @click="agreement=true">{{$t('我同意')}}</el-button>
                <el-button @click="closeDialog">{{$t('关闭')}}</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
36 37 38 39 40
            </div>
        </div>
    </el-dialog>
</template>
<script>
41 42 43
import {getCountryListAll} from '@/api/ecw/country'
import SendSmsCode from './SendSmsCode'
import {create} from '@/api/ecw/orderCargoControl'
dragondean@qq.com's avatar
dragondean@qq.com committed
44 45
import NeedKnow from '@/components/NeedKnow'
import AreaCodeSelector from '@/components/AreaCodeSelector'
dragondean@qq.com's avatar
dragondean@qq.com committed
46 47
export default {
    props:{
48 49 50
        orderId: [String, Number],
        cargoControlName: String,
        cargoControlPhone: String,
dragondean@qq.com's avatar
dragondean@qq.com committed
51
        cargoControlCountryCode: String,
52
        orderNo: String,
dragondean@qq.com's avatar
dragondean@qq.com committed
53
    },
dragondean@qq.com's avatar
dragondean@qq.com committed
54
    components: {SendSmsCode, NeedKnow, AreaCodeSelector},
dragondean@qq.com's avatar
dragondean@qq.com committed
55 56 57
    data(){
        return {
            show: false,
58
            // detail: null,
dragondean@qq.com's avatar
dragondean@qq.com committed
59 60 61 62
            form:{
              dialCodeSrc: null,
              dialCode: null
            },
dragondean@qq.com's avatar
dragondean@qq.com committed
63
            agreement: false, // 是否同意协议
64 65
            countryList: [],
            rules:{
66 67
              name: [{required: true, message: this.$t('请输入控货人')}],
              phone: [{required: true, message: this.$t('请输入控货人手机')}],
Marcus's avatar
Marcus committed
68
              // email: [{required: true, message: this.$t('请输入控货人')}],
69
              code: [{required: true, message: this.$t('验证码不能为空')}]
70
            }
dragondean@qq.com's avatar
dragondean@qq.com committed
71 72 73 74
        }
    },
    computed:{
        title(){
75 76 77 78
            return this.orderNo
        }
    },
    watch:{
dragondean@qq.com's avatar
dragondean@qq.com committed
79 80 81 82
      'form.dialCodeSrc'(){
        this.form.dialCode = this.form.dialCodeSrc.replace('+', '')
      }
      /* countryList(){
83 84
        if(this.countryList.length){
          this.$set(this.form, 'dialCode', this.countryList[0].tel.replace('+', ''))
dragondean@qq.com's avatar
dragondean@qq.com committed
85
        }
dragondean@qq.com's avatar
dragondean@qq.com committed
86
      } */
dragondean@qq.com's avatar
dragondean@qq.com committed
87 88 89
    },
    created(){
        this.show = true
dragondean@qq.com's avatar
dragondean@qq.com committed
90
        /* getCountryListAll().then(res => {
91
          this.countryList = res.data
dragondean@qq.com's avatar
dragondean@qq.com committed
92
        }) */
dragondean@qq.com's avatar
dragondean@qq.com committed
93 94 95 96 97 98
    },
    methods:{
        closeDialog(){
            this.show = false
            this.$emit('close');
        },
99 100 101 102 103 104 105 106 107 108 109
        submit(){
          this.$refs.form.validate(valid => {
            if(!valid){
              return false
            }
            let data = Object.assign({
              orderId: this.orderId,
              orderNo: this.orderNo
            }, this.form)
            create(data)
              .then(res => {
110
                this.$message.success(res.message || this.$t('操作成功'))
111 112 113 114 115
                this.closeDialog()
              })
          })
          
        }
dragondean@qq.com's avatar
dragondean@qq.com committed
116 117 118
    }
}
</script>