zhangyanpeng
2020-02-11 050f815891df7c732e1ef64f1f32a83da495af11
src/views/login.vue
@@ -1,43 +1,39 @@
<template>
  <div class="login">
    <div class="img-container">
  <div class="login" ref="hello_div">
    <!-- <div class="img-container">
      <img :src="loginImg" alt="">
    </div>
    <el-form ref="loginForm" :model="loginForm" class="login-form" auto-complete="on" label-position="left">
      <el-form-item prop="username">
        <el-input
          v-model="loginForm.username"
          placeholder="输入用户名"
          name="username"
          type="text"
          auto-complete="on"
        >
          <span v-show="isClearIconShow" slot="suffix" class="suffix-icon" @click="clearUsername">
            <svg-icon icon-class="close-circle" />
          </span>
        </el-input>
      </el-form-item>
      <el-form-item prop="password">
        <el-input
          :type="passwordType"
          v-model="loginForm.password"
          placeholder="输入密码"
          name="password"
          auto-complete="on"
          @keyup.enter.native="handleLogin"
        >
          <span slot="suffix" class="suffix-icon" :class="{eyeOpen: isOpen}" @click="showPwd">
            <svg-icon :icon-class="eyeIconClass" />
          </span>
        </el-input>
      </el-form-item>
      <div class="user-action">
        <a @click="handleForgetPassword">
          <span>忘记密码</span>
        </a>
      </div>
      <el-button :loading="loading" class="loginButton" type="primary" @click.native.prevent="handleLogin">登录</el-button>
    </el-form>
    </div> -->
      <div class="login_" ref="logon_div">
         <el-form ref="loginForm" :model="loginForm" class="login-form" label-position="left">
            <el-form-item prop="loginName">
               <el-input
                  v-model="loginForm.loginName"
                  placeholder="输入用户名"
                  name="loginName"
                  type="text"
               >
               </el-input>
            </el-form-item>
            <el-form-item prop="password">
               <el-input
                  :type="passwordType"
                  v-model="loginForm.password"
                  placeholder="输入密码"
                  name="password"
                  @keyup.enter.native="handleLogin"
               >
                  <span slot="suffix" class="suffix-icon" :class="{eyeOpen: isOpen}" @click="showPwd">
                     <svg-icon :icon-class="eyeIconClass" />
                  </span>
               </el-input>
            </el-form-item>
            <el-button :loading="loading" class="loginButton" type="primary" @click.native.prevent="handleLogin">登录</el-button>
         </el-form>
      </div>
  </div>
</template>
@@ -47,14 +43,14 @@
 * @author Sky
 */
export default {
  name: 'Login',
  data () {
    return {
   //   path: '/' + process.env.VUE_APP_FACTORY_KEY + '/user/confirm-password',
   //   loginImg: require('@/assets/img/login-logo.png'),
      loginImg: require('@/assets/login-left.jpg'),
      loginForm: { // 表单数据
        username: process.env.VUE_APP_BUILD_MODE === 'production' ? '' : 'bayer_admin',
        password: process.env.VUE_APP_BUILD_MODE === 'production' ? '' : '123456'
        loginName: '',
        password: ''
      },
      passwordType: 'password', // 输入框类型
      loading: false, // 加载中
@@ -62,26 +58,35 @@
      isOpen: false // 根据状态显示不同样式类名
    }
  },
  computed: {
    isClearIconShow () {
      return this.loginForm.username.length
    }
  },
   mounted() {
      this.setWH();
   },
  methods: {
      setWH() {
         //获取屏幕宽度
         let hello_Width = this.$refs.hello_div.offsetWidth;
      //   let hello_Height = this.$refs.hello_div.offsetHeight;
         let hello_Height = document.documentElement.clientHeight;
         //获取登录元素宽度
         let logon_Width = this.$refs.logon_div.offsetWidth;
         let logon_Height = this.$refs.logon_div.offsetHeight;
         //设置登录元素的magin-left
         if (hello_Width>logon_Width) {
            let margin_left = (hello_Width - logon_Width)/2;
            this.$refs.logon_div.style['margin-left'] = margin_left + "px";
         }
         if (hello_Height>logon_Height) {
            let margin_top = (hello_Height - logon_Height)/2;
            this.$refs.logon_div.style['margin-top'] = margin_top + "px";
         }
      },
    // 忘记密码回调
    handleForgetPassword () {
      this.$alert('', '请联系公司管理员修改密码', {
        confirmButtonText: '知道了',
        center: true,
        showClose: true
      })
    },
    // 清除用户名
    clearUsername () {
      if (this.loginForm.username) {
        this.loginForm.username = ''
      }
    },
    // 密码显示切换
    showPwd () {
      if (this.passwordType === 'password') {
@@ -97,13 +102,37 @@
      
    // 登录
    handleLogin () {
         localStorage.setItem('userId','user001');
         this.$router.push('/');
         let url = "/api/user/login";
         let params = this.loginForm;
         this.$axios.get(url,{
              params
            }).then(data_ => {
            if(data_.data.success) {
               localStorage.setItem('userId',data_.data.data.id);
               localStorage.setItem('userName',data_.data.data.name);
               localStorage.setItem('roleId',data_.data.data.roleCode);
               localStorage.setItem('roleName',data_.data.data.roleName);
               localStorage.setItem('departId',data_.data.data.departCode);
               localStorage.setItem('departName',data_.data.data.departName);
                  this.$router.push('/');
            }else {
               this.$message({message:'登陆失败', type: 'warning'});
            }
            }).catch(error =>{
            })
      },
  }
}
</script>
<style rel="stylesheet/scss" lang="scss">
<style >
   .login_ {
      max-width: 350px;
      background-color: #f9f9fb;
      padding: 20px;
   }
</style>