zhangyanpeng
2020-01-22 6c756f9220442d849ed5eb905bc82ebefa23a355
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<template>
  <div class="login">
    <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>
            
      <el-form-item>
                <el-select v-model="loginForm.role" placeholder="请选择角色" size="small">
                    <el-option label="角色1" value="role1"></el-option>
                    <el-option label="角色2" value="role2"></el-option>
                </el-select>
            </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>
</template>
 
<script>
/**
 * 登录组件
 * @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'),
      loginForm: { // 表单数据
        username: process.env.VUE_APP_BUILD_MODE === 'production' ? '' : 'bayer_admin',
        password: process.env.VUE_APP_BUILD_MODE === 'production' ? '' : '123456'
      },
      passwordType: 'password', // 输入框类型
      loading: false, // 加载中
      eyeIconClass: 'eye-off', // 密码图标显示
      isOpen: false // 根据状态显示不同样式类名
    }
  },
  computed: {
    isClearIconShow () {
      return this.loginForm.username.length
    }
  },
  methods: {
    // 忘记密码回调
    handleForgetPassword () {
      this.$alert('', '请联系公司管理员修改密码', {
        confirmButtonText: '知道了',
        center: true,
        showClose: true
      })
    },
    // 清除用户名
    clearUsername () {
      if (this.loginForm.username) {
        this.loginForm.username = ''
      }
    },
    // 密码显示切换
    showPwd () {
      if (this.passwordType === 'password') {
        this.passwordType = ''
        this.eyeIconClass = 'eye'
        this.isOpen = true
      } else {
        this.passwordType = 'password'
        this.eyeIconClass = 'eye-off'
        this.isOpen = false
      }
    },
        
    // 登录
    handleLogin () {
            localStorage.setItem('userId','user001');
            localStorage.setItem('userType', this.loginForm.role);
            this.$router.push('/');
        },
  }
}
</script>
 
<style rel="stylesheet/scss" lang="scss">
 
</style>