Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
L
laravelzh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
冯超鹏
laravelzh
Commits
d7ab67f9
Commit
d7ab67f9
authored
May 05, 2020
by
Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户登录
parent
913e35a9
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
243 additions
and
1 deletion
+243
-1
zh.js
resources/js/lang/zh.js
+1
-0
permission.js
resources/js/permission.js
+1
-1
index.js
resources/js/router/index.js
+5
-0
AuthRedirect.vue
resources/js/views/userslogin/AuthRedirect.vue
+15
-0
index.vue
resources/js/views/userslogin/index.vue
+221
-0
No files found.
resources/js/lang/zh.js
View file @
d7ab67f9
...
...
@@ -79,6 +79,7 @@ export default {
title
:
'系统登录'
,
logIn
:
'登录'
,
username
:
'账号'
,
email
:
'邮箱'
,
password
:
'密码'
,
any
:
'随便填'
,
thirdparty
:
'第三方登录'
,
...
...
resources/js/permission.js
View file @
d7ab67f9
...
...
@@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title';
NProgress
.
configure
({
showSpinner
:
false
});
// NProgress Configuration
const
whiteList
=
[
'/login'
,
'/auth-redirect'
];
// no redirect whitelist
const
whiteList
=
[
'/login'
,
'/auth-redirect'
,
'/userslogin'
];
// no redirect whitelist
router
.
beforeEach
(
async
(
to
,
from
,
next
)
=>
{
// start progress bar
...
...
resources/js/router/index.js
View file @
d7ab67f9
...
...
@@ -65,6 +65,11 @@ export const constantRoutes = [
component
:
()
=>
import
(
'@/views/login/index'
),
hidden
:
true
,
},
{
path
:
'/userslogin'
,
component
:
()
=>
import
(
'@/views/userslogin/index'
),
hidden
:
true
,
},
{
path
:
'/auth-redirect'
,
component
:
()
=>
import
(
'@/views/login/AuthRedirect'
),
...
...
resources/js/views/userslogin/AuthRedirect.vue
0 → 100644
View file @
d7ab67f9
<
script
>
export
default
{
name
:
'AuthRedirect'
,
created
()
{
const
hash
=
window
.
location
.
search
.
slice
(
1
);
if
(
window
.
localStorage
)
{
window
.
localStorage
.
setItem
(
'x-admin-oauth-code'
,
hash
);
window
.
close
();
}
},
render
:
function
(
h
)
{
return
h
();
// avoid warning message
},
};
</
script
>
resources/js/views/userslogin/index.vue
0 → 100644
View file @
d7ab67f9
<
template
>
<div
class=
"login-container"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
auto-complete=
"on"
label-position=
"left"
>
<h3
class=
"title"
>
泽宏云安全大数据平台-客户端
</h3>
<lang-select
class=
"set-language"
/>
<el-form-item
prop=
"email"
>
<span
class=
"svg-container"
>
<svg-icon
icon-class=
"user"
/>
</span>
<el-input
v-model=
"loginForm.email"
name=
"email"
type=
"text"
auto-complete=
"on"
:placeholder=
"$t('login.email')"
/>
</el-form-item>
<el-form-item
prop=
"password"
>
<span
class=
"svg-container"
>
<svg-icon
icon-class=
"password"
/>
</span>
<el-input
v-model=
"loginForm.password"
:type=
"pwdType"
name=
"password"
auto-complete=
"on"
:placeholder=
"$t('login.password')"
@
keyup
.
enter
.
native=
"handleLogin"
/>
<span
class=
"show-pwd"
@
click=
"showPwd"
>
<svg-icon
icon-class=
"eye"
/>
</span>
</el-form-item>
<el-form-item>
<el-button
:loading=
"loading"
type=
"primary"
style=
"width:100%;"
@
click
.
native
.
prevent=
"handleLogin"
>
Sign in
</el-button>
</el-form-item>
<!--
<div
class=
"tips"
>
<span
style=
"margin-right:20px;"
>
Email: admin@laravue.dev
</span>
<span>
Password: laravue
</span>
</div>
-->
</el-form>
</div>
</
template
>
<
script
>
import
LangSelect
from
'@/components/LangSelect'
;
import
{
validEmail
}
from
'@/utils/validate'
;
export
default
{
name
:
'Login'
,
components
:
{
LangSelect
},
data
()
{
const
validateEmail
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
validEmail
(
value
))
{
callback
(
new
Error
(
'邮箱格式不正确'
));
}
else
{
callback
();
}
};
const
validatePass
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
.
length
<
6
)
{
callback
(
new
Error
(
'密码长度须大于6位'
));
}
else
{
callback
();
}
};
return
{
loginForm
:
{
email
:
''
,
password
:
''
,
},
loginRules
:
{
email
:
[{
required
:
true
,
trigger
:
'blur'
,
validator
:
validateEmail
}],
password
:
[{
required
:
true
,
trigger
:
'blur'
,
validator
:
validatePass
}],
},
loading
:
false
,
pwdType
:
'password'
,
redirect
:
undefined
,
activeName
:
'second'
,
};
},
watch
:
{
$route
:
{
handler
:
function
(
route
)
{
this
.
redirect
=
route
.
query
&&
route
.
query
.
redirect
;
},
immediate
:
true
,
},
},
methods
:
{
handleClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
);
},
showPwd
()
{
if
(
this
.
pwdType
===
'password'
)
{
this
.
pwdType
=
''
;
}
else
{
this
.
pwdType
=
'password'
;
}
},
handleLogin
()
{
this
.
$refs
.
loginForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
this
.
$store
.
dispatch
(
'user/login'
,
this
.
loginForm
)
.
then
(()
=>
{
this
.
$router
.
push
({
path
:
this
.
redirect
||
'/'
});
this
.
loading
=
false
;
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
},
};
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
>
$bg
:
#2d3a4b
;
$light_gray
:
#eee
;
/* reset element-ui css */
.login-container
{
.el-input
{
display
:
inline-block
;
height
:
47px
;
width
:
85%
;
input
{
background
:
transparent
;
border
:
0px
;
-webkit-appearance
:
none
;
border-radius
:
0px
;
padding
:
12px
5px
12px
15px
;
color
:
$light_gray
;
height
:
47px
;
&
:
-
webkit-autofill
{
-webkit-box-shadow
:
0
0
0px
1000px
$bg
inset
!
important
;
-webkit-text-fill-color
:
#fff
!
important
;
}
}
}
.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
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
$bg
:
#2d3a4b
;
$dark_gray
:
#889aa4
;
$light_gray
:
#eee
;
.login-container
{
position
:
fixed
;
height
:
100%
;
width
:
100%
;
background-color
:
$bg
;
.login-form
{
position
:
absolute
;
left
:
0
;
right
:
0
;
width
:
520px
;
max-width
:
100%
;
padding
:
35px
35px
15px
35px
;
margin
:
120px
auto
;
.el-tabs__item
{
padding
:
0
20px
;
height
:
40px
;
box-sizing
:
border-box
;
line-height
:
40px
;
display
:
inline-block
;
list-style
:
none
;
font-size
:
14px
;
font-weight
:
500
;
color
:
#fff
;
position
:
relative
;
}
}
.tips
{
font-size
:
14px
;
color
:
#fff
;
margin-bottom
:
10px
;
span
{
&
:first-of-type
{
margin-right
:
16px
;
}
}
}
.svg-container
{
padding
:
6px
5px
6px
15px
;
color
:
$dark_gray
;
vertical-align
:
middle
;
width
:
30px
;
display
:
inline-block
;
}
.title
{
font-size
:
26px
;
font-weight
:
400
;
color
:
$light_gray
;
margin
:
0px
auto
40px
auto
;
text-align
:
center
;
font-weight
:
bold
;
}
.show-pwd
{
position
:
absolute
;
right
:
10px
;
top
:
7px
;
font-size
:
16px
;
color
:
$dark_gray
;
cursor
:
pointer
;
user-select
:
none
;
}
.set-language
{
color
:
#fff
;
position
:
absolute
;
top
:
40px
;
right
:
35px
;
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment