2020-01-12注册页面及功能,

详见D:\workspace\src\renderer\pages\menu\Aside.vue 文件

功能一:当注册的邮箱有空时,获取验证码按钮不能被点击,当邮箱输入正确时,获取验证码按钮才可以点击。

html 页面

       

                              class="opencorelanding-right-set inputEmail" clearable>

                      {{$t('Login.GetVerificationCode')}}

                   

                              style="margin-left:-4px;width:154px;text-align:center;">

{{sixtySecond}}  {{$t('Login.lists.SecondsToResend')}}

       

                      class="opencorelanding-right-set" clearable>

       

                      :placeholder="$t('Login.lists.Password')" class="opencorelanding-right-set"

                      clearable>

       

                      :placeholder="$t('Login.lists.confirmPassword')" class="opencorelanding-right-set"

                      clearable>

       

                      class="opencorelanding-right-set"  clearable>

       

                      class="opencorelanding-right-set" clearable>

       

                  class="opencorelanding-right-set" :placeholder="$store.state.info_language?'Affiliated company':'所属公司'"

                  style="width:310px">

                    v-for="(item,index) incompanies"

                    :key="item.value"

                    :label="item.lable"

                    :value="item.type"

            >


       

                      :rules="[

{required: true,message:$t('Login.lists.DepartmentCannotBeEmpty'),trigger: 'change'}

]"

                      key="departmentTypeData" >

                      class="opencorelanding-right-set" :placeholder="$t('Login.lists.Department')"

                      clearable style="width:310px">

                          :key="item.value"

                          :label="item.value"

                          :value="item.id">

       

                      :rules="[

{required: true,message:$t('Login.lists.DepartmentCannotBeEmpty'),trigger: 'blur'}

]"

                      key="otherDepartment"

        >

                      class="opencorelanding-right-set" clearable>

       

                      :rules="[

{required: true,message:$t('Login.lists.PositionCannotBeEmpty'),trigger: 'change'}

]"

                      key="psitionTypeData"

        >

                      :placeholder="$store.state.info_language?'Subordinate position':'所属职位'"

                      clearable style="width:310px">

                        v-for="iteminpsition"

                        :key="item.value"

                        :label="item.value"

                        :value="item.id">

       

                      :rules="[

{required: true,message:$t('Login.lists.PositionCannotBeEmpty'),trigger: 'blur'}

]"

                      key="otherPosition"

        >

                      class="opencorelanding-right-set" clearable>


       

{{$t('Login.UserInstructions')}}

check:false,// 邮箱校验成功时,才可以获取验证码

hiddenCode:false,

sixtySecond:60, //60秒倒计时

isCodeGo:true,// 是否可重新发送验证码

timer:null,// 定时器

hiddenCode:false,

// 注册验证

rules: {

// 验证邮箱

    email: [

{required:true,validator:validateNameZh,trigger:'blur'},

],

// 验证邮箱验证码

    authCode: [

{required:true,validator:authcode,trigger:'blur'},

],

// 输入密码

    pass: [

{required:true,validator:validatePass,trigger:'blur'}

],

// 再次输入密码

    checkPass: [

{required:true,validator:validatePass2,trigger:'blur'}

],

// 验证姓名

    name: [

{required:true,validator:verifyName,trigger:'blur'}

],

// 验证电话

    tel: [

{required:true,validator:verifyTel,trigger:'blur'}

],

// 其他公司的部门

    otherDepartment: [

{required:false,message:'请输入所属部门',trigger:'blur'},

{min:2,max:10,message:'长度在2到10个字符',trigger:'blur'}

],

// 其他公司的职位

    otherPosition: [

{required:false,message:'请输入所属职位',trigger:'blur'},

{min:2,max:10,message:'长度在2到10个字符',trigger:'blur'}

]

},

注册校验的回调函数在data下面return上面

// 邮箱

const validateNameZh = (rule, value, callback) => {

if (value.trim() ==='') {

// return callback(new Error('请输入邮箱'))

        this.check =false;

return callback(new Error(this.$t('Login.lists.PleaseEnterEmail')))

}else if (!/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(value)) {

this.check =false;

// return callback(new Error('请输入合法邮箱'))

        return callback(new Error(this.$t('Login.lists.PleaseEnterALegalEmail')))

}else {

this.check =true;

callback()

}

}

// 邮箱验证码

const authcode = (rule, value, callback) => {

if (value.trim() ==='') {

// return callback(new Error('请输入邮箱验证码'))

        return callback(new Error(this.$t('Login.lists.VerificationCode')))

}else if (!/^\d{6}$/.test(value)) {

// return callback(new Error('请输入6位邮箱验证码'))

        return callback(new Error(this.$t('Login.lists.DigitEmailVerificationCode')))

}else {

callback()

}

}

// 密码验证--规则:6-32位字母和数字组合

const validatePass = (rule, value, callback) => {

if (value.trim() ==='') {

// return callback(new Error('请输入密码'))

        return callback(new Error(this.$t('Login.lists.PleaseInputAPassword')))

}else if (!/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,32}$/.test(value)) {

// return callback(new Error('密码为字母数字结合,6-32位密码'))

        return callback(new Error(this.$t('Login.lists.BitPassword')))

}else {

callback()

}

}

// 再次输入密码验证--规则:6-16位字母和数字组合

const validatePass2 = (rule, value, callback) => {

if (value.trim() ==='') {

// return callback(new Error('请再次输入密码'))

        return callback(new Error(this.$t('Login.lists.ThePasswordAgain')))

}else if (value !==this.ruleForm.pass) {

// return callback(new Error('两次输入密码不一致!'))

        return callback(new Error(this.$t('Login.lists.TheTwoPasswordsAreInconsistent')))

}else {

callback()

}

}

// 姓名验证--规则:只支持中文和英文

const verifyName = (rule, value, callback) => {

if (value.trim() ==='') {

// return callback(new Error('请输入姓名'))

        return callback(new Error(this.$t('Login.lists.PleaseEnterAName')))

}else if (!/^[\u0391-\uFFE5A-Za-z]+$/.test(value)) {

// return callback(new Error('只支持中文和英文'))

        return callback(new Error(this.$t('Login.lists.OnlyChineseAndEnglishAreSupported')))

}else {

callback()

}

}

// 手机号验证

const verifyTel = (rule, value, callback) => {

if (value.trim() ==='') {

// return callback(new Error('请输入手机号'))

        return callback(new Error(this.$t('Login.lists.YourMobileNumber')))

}else if (!/^1[3456789]\d{9}$/.test(value)) {

// return callback(new Error('请输入正确的手机号'))

        return callback(new Error(this.$t('Login.lists.TheCorrectMobileNumber')))

}else {

callback()

}

}

// 登录--用户名(邮箱)

const loginEmail = (rule, value, callback) => {

if (value.trim() ==='') {

this.forbidden =true;

// return callback(new Error('请输入邮箱'))

        return callback(new Error(this.$t('Login.lists.PleaseEnterEmail')))

}else if (!/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(value)) {

this.forbidden =true;

// return callback(new Error('请输入合法邮箱'))

        return callback(new Error(this.$t('Login.lists.PleaseEnterALegalEmail')))

}else {

callback()

this.forbidden =false;

console.log("用户名对了")

}

}

// 密码验证--规则:6-16位字母和数字组合

const loginPass = (rule, value, callback) => {

if (value.trim() ==='') {

this.forbidden =true;

// return callback(new Error('请输入密码'))

        return callback(new Error(this.$t('Login.lists.PleaseInputAPassword')))

}else if (!/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,32}$/.test(value)) {

this.forbidden =true;

// return callback(new Error('请输入6-32位的密码'))

        return callback(new Error(this.$t('Login.lists.BitPassword')))

}else {

callback()

this.forbidden =false;

console.log("密码对了")

}

}


// 发送邮箱地址,接受验证码 代码在script中的methods方法中

对应上面的点击时间send

send() {

if (!this.timer) {

this.isCodeGo =false;

this.timer =setInterval(() => {

if (this.sixtySecond >0 &&this.sixtySecond <=60) {

this.sixtySecond--;

this.hiddenCode =true;

}else {

this.isCodeGo =true;

clearInterval(this.timer);

this.timer =null;

this.sixtySecond =60

            }

},1000)

}

// console.log(_back_public)

    let params = {'email':this.ruleForm.email}

/*          console.log(params);

console.log(this.ruleForm.email);*/

//

// if(this.forbidden){

//    return false

// }

    this.$axios.post(this.requestURL+'/client/verificationCode',params,

{'Content-Type':'application/json'})

.then((res) => {

if(res.data.status ==1){

this.code = res.data.data;

console.log(this.code)

this.$message({

message: res.data.msg,

type:'success'

                });

}else{

this.$message({

message: res.data.msg,

type:'warning'

                });

}

}).catch((error) => {

console.log(error);

})

你可能感兴趣的:(2020-01-12注册页面及功能,)