Blame view

src/views/login/index.vue 5.18 KB
b89c8760   wangming   项目初始化
1
2
3
4
5
6
  <template>
  	<div class="login-container">
  		<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on"
  			label-position="left">
  
  			<div class="title-container">
93212c7d   yangzhi   配置修改
7
  				<h3 class="title">面试考试系统后台</h3>
b89c8760   wangming   项目初始化
8
9
10
11
12
13
  			</div>
  
  			<el-form-item prop="username">
  				<span class="svg-container">
  					<svg-icon icon-class="user" />
  				</span>
e011bf15   周超   我先走一步
14
  				<el-input ref="username" v-model="loginForm.username" placeholder="用户名" name="username" type="text"
b89c8760   wangming   项目初始化
15
16
17
18
19
20
21
22
  					tabindex="1" auto-complete="on" />
  			</el-form-item>
  
  			<el-form-item prop="password">
  				<span class="svg-container">
  					<svg-icon icon-class="password" />
  				</span>
  				<el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType"
e011bf15   周超   我先走一步
23
  					placeholder="密码" name="password" tabindex="2" auto-complete="on"
b89c8760   wangming   项目初始化
24
25
26
27
28
29
30
  					@keyup.enter.native="handleLogin" />
  				<span class="show-pwd" @click="showPwd">
  					<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" />
  				</span>
  			</el-form-item>
  
  			<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;"
e011bf15   周超   我先走一步
31
  				@click.native.prevent="handleLogin">登录</el-button>
a7974ab3   周超   111
32
  			<!-- <div style="text-align: center;color: #FFF;">技术支持:成都安第斯信息技术有限公司</div> -->
b89c8760   wangming   项目初始化
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  
  			<!-- 	<div class="tips">
  				<span style="margin-right:20px;">username: admin</span>
  				<span> password: any</span>
  			</div> -->
  
  		</el-form>
  	</div>
  </template>
  
  <script>
  	import {
  		validUsername
  	} from '@/utils/validate'
6963d762   周超   拉取志哥最新的
47
  	// import axios from 'axios'
b89c8760   wangming   项目初始化
48
49
50
51
52
  	export default {
  		name: 'Login',
  		data() {
  			const validateUsername = (rule, value, callback) => {
  				if (!validUsername(value)) {
a7974ab3   周超   111
53
  					callback(new Error('请输入登录的用户名'))
b89c8760   wangming   项目初始化
54
55
56
57
58
59
  				} else {
  					callback()
  				}
  			}
  			const validatePassword = (rule, value, callback) => {
  				if (value.length < 6) {
a7974ab3   周超   111
60
  					callback(new Error('密码长度最低6位'))
b89c8760   wangming   项目初始化
61
62
63
64
65
66
  				} else {
  					callback()
  				}
  			}
  			return {
  				loginForm: {
1de913cf   ren   sdf
67
68
  					username: '',
  					password: ''
b89c8760   wangming   项目初始化
69
70
71
72
73
  				},
  				loginRules: {
  					username: [{
  						required: true,
  						trigger: 'blur',
1de913cf   ren   sdf
74
  						// validator: validateUsername
b89c8760   wangming   项目初始化
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  					}],
  					password: [{
  						required: true,
  						trigger: 'blur',
  						validator: validatePassword
  					}]
  				},
  				loading: false,
  				passwordType: 'password',
  				redirect: undefined
  			}
  		},
  		watch: {
  			$route: {
6963d762   周超   拉取志哥最新的
89
  				handler: function (route) {
b89c8760   wangming   项目初始化
90
  					this.redirect = route.query && route.query.redirect
b32564ca   周超   11
91
92
  					// if (this.redirect.indexOf('404') != -1)
  					// 	this.redirect = this.redirect.replace('404', 'dashboard')
b89c8760   wangming   项目初始化
93
94
95
96
  				},
  				immediate: true
  			}
  		},
6963d762   周超   拉取志哥最新的
97
98
  		created() {
  		},
b89c8760   wangming   项目初始化
99
100
101
102
103
104
105
106
107
108
109
110
111
  		methods: {
  			showPwd() {
  				if (this.passwordType === 'password') {
  					this.passwordType = ''
  				} else {
  					this.passwordType = 'password'
  				}
  				this.$nextTick(() => {
  					this.$refs.password.focus()
  				})
  			},
  			handleLogin() {
  				this.$refs.loginForm.validate(valid => {
b89c8760   wangming   项目初始化
112
113
114
115
  					if (valid) {
  						this.loading = true
  						this.$store.dispatch('user/login', this.loginForm).then(() => {
  							this.$router.push({
b32564ca   周超   11
116
  								path: this.redirect || '/'
a7974ab3   周超   111
117
  							}) 
b89c8760   wangming   项目初始化
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
  							this.loading = false
  						}).catch((ret) => {
  							console.log();
  							this.loading = false
  						})
  					} else {
  						console.log('error submit!!')
  						return false
  					}
  				})
  			}
  		}
  	}
  </script>
  
  <style lang="scss">
  	/* 修复input 背景不协调 和光标变色 */
  	/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */
6963d762   周超   拉取志哥最新的
136
137
  	$bg: #283443;
  	$light_gray: #fff;
b89c8760   wangming   项目初始化
138
  	$cursor: #fff;
6963d762   周超   拉取志哥最新的
139
  
b89c8760   wangming   项目初始化
140
141
142
143
144
  	@supports (-webkit-mask: none) and (not (cater-color: $cursor)) {
  		.login-container .el-input input {
  			color: $cursor;
  		}
  	}
6963d762   周超   拉取志哥最新的
145
  
b89c8760   wangming   项目初始化
146
147
148
149
150
151
  	/* reset element-ui css */
  	.login-container {
  		.el-input {
  			display: inline-block;
  			height: 47px;
  			width: 85%;
6963d762   周超   拉取志哥最新的
152
  
b89c8760   wangming   项目初始化
153
154
155
156
157
158
159
160
161
  			input {
  				background: transparent;
  				border: 0px;
  				-webkit-appearance: none;
  				border-radius: 0px;
  				padding: 12px 5px 12px 15px;
  				color: $light_gray;
  				height: 47px;
  				caret-color: $cursor;
6963d762   周超   拉取志哥最新的
162
  
b89c8760   wangming   项目初始化
163
164
  				&:-webkit-autofill {
  					box-shadow: 0 0 0px 1000px $bg inset !important;
6963d762   周超   拉取志哥最新的
165
  					-webkit-text-fill-color: $cursor  !important;
b89c8760   wangming   项目初始化
166
167
168
  				}
  			}
  		}
6963d762   周超   拉取志哥最新的
169
  
b89c8760   wangming   项目初始化
170
171
172
173
174
175
176
177
178
179
  		.el-form-item {
  			border: 1px solid rgba(255, 255, 255, 0.1);
  			background: rgba(0, 0, 0, 0.1);
  			border-radius: 5px;
  			color: #454545;
  		}
  	}
  </style>
  
  <style lang="scss" scoped>
6963d762   周超   拉取志哥最新的
180
181
182
183
  	$bg: #2d3a4b;
  	$dark_gray: #889aa4;
  	$light_gray: #eee;
  
b89c8760   wangming   项目初始化
184
185
186
187
188
  	.login-container {
  		min-height: 100%;
  		width: 100%;
  		background-color: $bg;
  		overflow: hidden;
6963d762   周超   拉取志哥最新的
189
  
b89c8760   wangming   项目初始化
190
191
192
193
194
195
196
197
  		.login-form {
  			position: relative;
  			width: 520px;
  			max-width: 100%;
  			padding: 160px 35px 0;
  			margin: 0 auto;
  			overflow: hidden;
  		}
6963d762   周超   拉取志哥最新的
198
  
b89c8760   wangming   项目初始化
199
200
201
202
  		.tips {
  			font-size: 14px;
  			color: #fff;
  			margin-bottom: 10px;
6963d762   周超   拉取志哥最新的
203
  
b89c8760   wangming   项目初始化
204
205
206
207
208
209
  			span {
  				&:first-of-type {
  					margin-right: 16px;
  				}
  			}
  		}
6963d762   周超   拉取志哥最新的
210
  
b89c8760   wangming   项目初始化
211
212
213
214
215
216
217
  		.svg-container {
  			padding: 6px 5px 6px 15px;
  			color: $dark_gray;
  			vertical-align: middle;
  			width: 30px;
  			display: inline-block;
  		}
6963d762   周超   拉取志哥最新的
218
  
b89c8760   wangming   项目初始化
219
220
  		.title-container {
  			position: relative;
6963d762   周超   拉取志哥最新的
221
  
b89c8760   wangming   项目初始化
222
223
224
225
226
227
228
229
  			.title {
  				font-size: 26px;
  				color: $light_gray;
  				margin: 0px auto 40px auto;
  				text-align: center;
  				font-weight: bold;
  			}
  		}
6963d762   周超   拉取志哥最新的
230
  
b89c8760   wangming   项目初始化
231
232
233
234
235
236
237
238
239
240
  		.show-pwd {
  			position: absolute;
  			right: 10px;
  			top: 7px;
  			font-size: 16px;
  			color: $dark_gray;
  			cursor: pointer;
  			user-select: none;
  		}
  	}
6963d762   周超   拉取志哥最新的
241
  </style>