Keine Beschreibung

loginPlat.vue 4.0KB

    <template> <div class="login"> <div class="logo-wrapper"></div> <div class="form-wrapper"> <div class="form-contain"> <p class="form-title">登录</p> <ul class='table-panel'> <li class="table-panel-single tablePanelActive">密码登录</li> <li class="table-panel-single"><a href="#/inviteCodeLogin">邀请码登录</a></li> </ul> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm"> <el-form-item prop="phone"> <el-input v-model="ruleForm.phone" placeholder="请输入手机号码"></el-input> </el-form-item> <el-form-item prop="pw"> <el-input type="password" v-model="ruleForm.pw" placeholder="请输入登录密码" auto-complete="off"></el-input> </el-form-item> <el-form-item></el-form-item> <el-form-item> <el-button type="primary" :disabled="isDisabl" :loading="logining" @click="submitForm('ruleForm')">登录</el-button> <el-button type="text" @click="goBackPwd">忘记密码?</el-button> <span class='existing-account registerButton'>还没有账号<a href="#/register">立即注册</a></span> </el-form-item> </el-form> </div> </div> </div> </template> <script> export default { data() { let validatePhone = (rule, value, callback) => { const pattern = /^1[34578]\d{9}$/; if (value === '') { callback(new Error('请输入您的手机号码')); } else { if (!pattern.test(value)) { callback(new Error('请输入正确的手机号码')); } else { let phone = this.ruleForm.phone; this.$axios.get('/ajax/sys/user/exists', { phone }, response => { if (response.success && response.data) { callback(); } else { callback(new Error('该账号不存在,请先注册')) } }); } } }; let validatePw = (rule, value, callback) => { const reg = /^[a-zA-Z0-9]{6,24}$/ if (value === '') { callback(new Error('请设置您的登录密码')); } else { if (!reg.test(value)) { callback(new Error('密码由6-24个数字和字母组成,区分大小写')); } else { callback(); } } } return { logining: false, isDisabl: false, ruleForm: { phone: '', pw: '' }, rules: { phone: [ { required: true, validator: validatePhone, trigger: 'blur' } ], pw: [ { required: true, validator: validatePw, trigger: 'blur' } ] } }; }, methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { this.logining = true; // this.$axios.post('/ajax/sys/login', this.ruleForm, res => { this.$store.dispatch('LoginByAccount', this.ruleForm).then(res => { this.logining = false; if (res.success) { if (res.data == null) { this.$message.error('登录账号与密码不匹配'); } else { this.$router.push({name: 'home'}); this.logining = true; } } else { let errorCode = { '-60001': '该账号不存在,请先注册', '-60002': '登录账号与密码不匹配', '-60003': '该账号状态异常,请联系客服' } this.$message.error(errorCode[res.code]); } }) } else { return false; } }); }, goBackPwd() { this.$router.push({path: '/findPwd'}); } } }; </script> <style lang="scss" rel="stylesheet/scss" scoped> @import './style.scss'; </style>