| New file |
| | |
| | | <template> |
| | | <div class="login" id="login"> |
| | | <div class="limiter"> |
| | | <div class="container-login100"> |
| | | <div class="wrap-login100"> |
| | | <span class="login100-form-title p-b-26">WVP视频平台</span> |
| | | <span class="login100-form-title p-b-48"> |
| | | <i class="fa fa-video-camera"></i> |
| | | </span> |
| | | |
| | | <div class="wrap-input100 validate-input" data-validate = "Valid email is: a@b.c"> |
| | | <input :class="'input100 ' + (username==''?'':'has-val')" type="text" v-model="username" name="username"> |
| | | <span class="focus-input100" data-placeholder="用户名"></span> |
| | | </div> |
| | | |
| | | <div class="wrap-input100 validate-input" data-validate="Enter password"> |
| | | <span class="btn-show-pass"> |
| | | <i :class="'fa ' + (!showPassword?'fa-eye':'fa-eye-slash')" @click="showPassword = !showPassword"></i> |
| | | </span> |
| | | <input :class="'input100 ' + (password==''?'':'has-val')" :type="(!showPassword?'password':'text')" v-model="password" name="password"> |
| | | <span class="focus-input100" data-placeholder="密码"></span> |
| | | </div> |
| | | |
| | | <div class="container-login100-form-btn"> |
| | | <div class="wrap-login100-form-btn" :class="{'login-loading': isLoging}" v-loading="isLoging" element-loading-background="rgb(0 0 0 / 0%);" element-loading-custom-class="login-loading-class"> |
| | | <div class="login100-form-bgbtn"></div> |
| | | <button class="login100-form-btn" @click="login">登录</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import crypto from 'crypto' |
| | | export default { |
| | | name: 'Login', |
| | | data(){ |
| | | return { |
| | | isLoging: false, |
| | | showPassword: false, |
| | | loginLoading: false, |
| | | username: '', |
| | | password: '' |
| | | } |
| | | }, |
| | | created(){ |
| | | var that = this; |
| | | document.onkeydown = function(e) { |
| | | var key = window.event.keyCode; |
| | | if (key == 13) { |
| | | that.login(); |
| | | } |
| | | } |
| | | }, |
| | | methods:{ |
| | | |
| | | //登录逻辑 |
| | | login(){ |
| | | if(this.username!='' && this.password!=''){ |
| | | this.toLogin(); |
| | | } |
| | | }, |
| | | |
| | | //登录请求 |
| | | toLogin(){ |
| | | //需要想后端发送的登录参数 |
| | | let loginParam = { |
| | | username: this.username, |
| | | password: crypto.createHash('md5').update(this.password, "utf8").digest('hex') |
| | | } |
| | | var that = this; |
| | | //设置在登录状态 |
| | | this.isLoging = true; |
| | | let timeoutTask = setTimeout(()=>{ |
| | | that.$message.error("登录超时"); |
| | | that.isLoging = false; |
| | | }, 1000) |
| | | |
| | | this.$axios({ |
| | | method: 'get', |
| | | url:"/api/user/login", |
| | | params: loginParam |
| | | }).then(function (res) { |
| | | window.clearTimeout(timeoutTask) |
| | | console.log(JSON.stringify(res)); |
| | | if (res.data.code === 0 ) { |
| | | that.$cookies.set("session", {"username": that.username,"roleId":res.data.data.role.id}) ; |
| | | //登录成功后 |
| | | that.cancelEnterkeyDefaultAction(); |
| | | that.$router.push('/'); |
| | | }else{ |
| | | that.isLoging = false; |
| | | that.$message({ |
| | | showClose: true, |
| | | message: '登录失败,用户名或密码错误', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | }).catch(function (error) { |
| | | console.log(error) |
| | | window.clearTimeout(timeoutTask) |
| | | that.$message.error(error.response.data.msg); |
| | | that.isLoging = false; |
| | | }); |
| | | }, |
| | | setCookie: function (cname, cvalue, exdays) { |
| | | var d = new Date(); |
| | | d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); |
| | | var expires = "expires=" + d.toUTCString(); |
| | | console.info(cname + "=" + cvalue + "; " + expires); |
| | | document.cookie = cname + "=" + cvalue + "; " + expires; |
| | | console.info(document.cookie); |
| | | }, |
| | | cancelEnterkeyDefaultAction: function() { |
| | | document.onkeydown = function(e) { |
| | | var key = window.event.keyCode; |
| | | if (key == 13) { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |