personal.vue 4.29 KB
<template>
  <div>
    <div class="mt30 mb60">
      <div class="box">
        <!--    国内-机构注册-->
        <el-card>
          <el-steps :active="activeStep" finish-status="success" align-center>
            <el-step title="创建账号"/>
            <el-step title="注册完成"/>
          </el-steps>
        </el-card>

        <div class="mt20"></div>
        <div v-if="activeStep==0">
          <el-card style="min-height: 50vh">
            <div class="pt30">
              <el-form class="d-form" size="large" label-width="120"
                       style="max-width: 500px;margin: auto">
                <el-form-item label="WDSF卡号" required>
                  <el-input type="text" v-model="form.WDSF" @change="resetCode(0)" @blur="verifyCode">
                    <template #append>
                      <el-button type="primary" plain style="width: 110px" @click="checkwdsf">
                        <span>校验卡号</span>
                      </el-button>
                    </template>
                  </el-input>
                </el-form-item>
                <el-form-item label="手机/邮箱" required>
                  <el-input type="text" v-model="form.account" @change="resetCode(1)" @blur="verifyCode"/>
                </el-form-item>
                <el-form-item label="验证码" required>
                  <el-input v-model="form.code">
                    <template #append>
                      <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg">
                        <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false">
                          {{ totalSeconds }}
                        </count-down>
                        <span v-else>发送验证码</span>
                      </el-button>
                    </template>
                  </el-input>
                </el-form-item>
              </el-form>
            </div>
            <div class="text-center">
              <!--      <el-button class="primary-kx" round @click="goBack">取消</el-button>-->
              <el-button type="primary" class="btn-lineG w200px" round @click="next">下一步</el-button>
            </div>
          </el-card>
        </div>
        <div v-if="activeStep==1">
          <Step3 :accont="form.account"/>
        </div>

        <Vcode :show="isShow" @success="codeSuccess()"></Vcode>
      </div>
    </div>
  </div>
</template>

<script setup>
import {ref,toRefs,reactive} from "vue"
import {onMounted} from "@vue/runtime-core";
import Step3 from "./team/step3"
import Vcode from "vue3-puzzle-vcode"
import { ElMessage } from 'element-plus'
import CountDown from '@chenfengyuan/vue-countdown'
import cache from '@/plugins/cache'
const language = ref(cache.local.get('language') || 0)

const data = reactive({
  isShow:false,
  isCodeTrue:0,
  counting:false,
  form:{},
  activeStep: 0,
  failVcode:'验证失败,请重试',
  successVcode:'验证通过!',
  sliderText: '拖动滑块完成拼图',
})
const {isShow,isCodeTrue,counting,form,activeStep,failVcode,successVcode,sliderText} = toRefs(data)
onMounted(()=>{
  if(language.value==1){
    failVcode.value = 'Error!'
    successVcode.value = 'Success!'
    sliderText.value = 'Drag the slider to complete the puzzle'
  }
})
function sendsmsMsg() {
  if(!form.value.account){
    if(language.value==0){
      ElMessage.error('请填写手机/邮箱')
    } else {
      ElMessage.error('Please fill in your phone/email address')
    }
    return
  }
  if(counting.value){
    return
  } else {
    isShow.value = true
  }
}
function checkwdsf() {
  if(!form.value.WDSF){
    if(language.value==0){
      ElMessage.error('请填写WDSF卡号')
    } else {
      ElMessage.error('Please fill in your WDSF code')
    }
    return
  }
  isShow.value = true
}
function verifyCode() {
  if(!form.value.account){
    return
  }
  if(form.value.account.indexOf('@')>-1){
    //邮箱
  }
}
function codeSuccess(msg) {
  console.log('验证通过' + msg);
  isShow.value = false
  isCodeTrue.value += 1
  if(isCodeTrue.value==1){

  }
  if(isCodeTrue.value==2){
    counting.value = true
    // getCaptchaSms({account:form.value.account}).then(res=>{
    //
    // })
  }

}
function resetCode(n) {
  isCodeTrue.value = n
}
function next() {
  activeStep.value = 1
}
</script>

<style scoped>

</style>