Transfer.vue 4.02 KB
<template>
    <el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false">
        <div class="" v-if="agreement">
            <el-form ref="form" :model="form" :rules="rules" label-position="left" label-width="120px">
              <el-form-item label="原控货人">
                <el-input v-model="cargoControlName" readonly></el-input>
              </el-form-item>
              <el-form-item label="原控货手机号">
                <el-input v-model="cargoControlPhone" readonly></el-input>
              </el-form-item>
              
              <el-form-item label="新控货人" prop="name">
                <el-input v-model="form.name"></el-input>
              </el-form-item>
              <el-form-item label="新控货手机号" prop="phone">
                <el-input v-model="form.phone" type="tel">
                    <el-select slot="prepend" v-model="form.dialCode" placeholder="" style="width:200px">
                      <el-option v-for="item in countryList" :key="item.id" :label="item.nameZh + item.tel" :value="item.tel.replace('+', '')"></el-option>
                    </el-select>
                </el-input>
              </el-form-item>
              <el-form-item label="新控货人邮箱" prop="email">
                <el-input v-model="form.email" type="email"></el-input>
              </el-form-item>
              <el-form-item label="手机验证码" prop="code">
                <el-input v-model.number="form.code" type="number">
                    <send-sms-code slot="append" :order-id="orderId" scene="4" />
                </el-input>
              </el-form-item>
              <el-form-item label="">
                <el-button type="primary" @click="submit">确定转移</el-button>
              </el-form-item>
            </el-form>
        </div>
        <div v-else>
            <transfer-agreement />
            <div style="margin-top:30px">
                <el-button type="primary" @click="agreement=true">我同意</el-button>
                <el-button @click="closeDialog">关闭</el-button>
            </div>
        </div>
    </el-dialog>
</template>
<script>
import TransferAgreement from "./TransferAgreement"
import {getCountryListAll} from '@/api/ecw/country'
import SendSmsCode from './SendSmsCode'
import {create} from '@/api/ecw/orderCargoControl'
export default {
    props:{
        orderId: [String, Number],
        cargoControlName: String,
        cargoControlPhone: String,
        orderNo: String
    },
    components: {TransferAgreement, SendSmsCode},
    data(){
        return {
            show: false,
            // detail: null,
            form:{},
            agreement: false, // 是否同意协议
            countryList: [],
            rules:{
              name: [{required: true, message: '请输入控货人'}],
              phone: [{required: true, message: '请输入控货人手机'}],
              // email: [{required: true, message: '请输入控货人'}],
              code: [{required: true, message: '验证码不能为空'}]
            }
        }
    },
    computed:{
        title(){
            return this.orderNo
        }
    },
    watch:{
      countryList(){
        if(this.countryList.length){
          this.$set(this.form, 'dialCode', this.countryList[0].tel.replace('+', ''))
        }
      }
    },
    created(){
        this.show = true
        getCountryListAll().then(res => {
          this.countryList = res.data
        })
    },
    methods:{
        closeDialog(){
            this.show = false
            this.$emit('close');
        },
        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 => {
                this.$message.success(res.message || '操作成功')
                this.closeDialog()
              })
          })
          
        }
    }
}
</script>