| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | <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(){  		//一般要跟后端了解密码的加密规则  		//这里例子用的哈希算法来自./js/sha1.min.js  		//需要想后端发送的登录参数  		let loginParam = {  			username: this.username,  			password: crypto.createHash('md5').update(this.password, "utf8").digest('hex')  		}      var that = this;      //设置在登录状态      this.isLoging = true;      this.$axios({      	method: 'get',        url:"/api/user/login",        params: loginParam      }).then(function (res) {        console.log(JSON.stringify(res));          if (res.data.code == 0 && res.data.msg == "success") {            that.$cookies.set("session", {"username": that.username}) ;            //登录成功后            that.cancelEnterkeyDefaultAction();            that.$router.push('/');          }else{            that.isLoging = false;            that.$message({                  showClose: true,                  message: '登录失败,用户名或密码错误',                  type: 'error'              });          }      }).catch(function (error) {        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>
 |