Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RuoYi-Vue-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
AI算法平台
RuoYi-Vue-ui
Commits
d39ef2ae
Commit
d39ef2ae
authored
Nov 24, 2023
by
yf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加免登陆
parent
fd84c5e3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
91 additions
and
39 deletions
+91
-39
package.json
package.json
+1
-0
src/views/login.vue
src/views/login.vue
+90
-39
No files found.
package.json
View file @
d39ef2ae
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
"scripts"
:
{
"scripts"
:
{
"dev"
:
"vue-cli-service serve"
,
"dev"
:
"vue-cli-service serve"
,
"build:prod"
:
"vue-cli-service build"
,
"build:prod"
:
"vue-cli-service build"
,
"build:dev"
:
"vue-cli-service build --mode development"
,
"build:stage"
:
"vue-cli-service build --mode staging"
,
"build:stage"
:
"vue-cli-service build --mode staging"
,
"preview"
:
"node build/index.js --preview"
,
"preview"
:
"node build/index.js --preview"
,
"lint"
:
"eslint --ext .js,.vue src"
"lint"
:
"eslint --ext .js,.vue src"
...
...
src/views/login.vue
View file @
d39ef2ae
<
template
>
<
template
>
<div
class=
"login"
>
<div
class=
"login"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
>
<h3
class=
"title"
>
AI算法管理系统
</h3>
<h3
class=
"title"
>
AI算法管理系统
</h3>
<el-form-item
prop=
"username"
>
<el-form-item
prop=
"username"
>
<el-input
<el-input
...
@@ -9,7 +14,11 @@
...
@@ -9,7 +14,11 @@
auto-complete=
"off"
auto-complete=
"off"
placeholder=
"账号"
placeholder=
"账号"
>
>
<svg-icon
slot=
"prefix"
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
<svg-icon
slot=
"prefix"
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-form-item
prop=
"password"
>
...
@@ -20,7 +29,11 @@
...
@@ -20,7 +29,11 @@
placeholder=
"密码"
placeholder=
"密码"
@
keyup.enter.native=
"handleLogin"
@
keyup.enter.native=
"handleLogin"
>
>
<svg-icon
slot=
"prefix"
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
<svg-icon
slot=
"prefix"
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"code"
v-if=
"captchaEnabled"
>
<el-form-item
prop=
"code"
v-if=
"captchaEnabled"
>
...
@@ -31,26 +44,36 @@
...
@@ -31,26 +44,36 @@
style=
"width: 63%"
style=
"width: 63%"
@
keyup.enter.native=
"handleLogin"
@
keyup.enter.native=
"handleLogin"
>
>
<svg-icon
slot=
"prefix"
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/>
<svg-icon
slot=
"prefix"
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-input>
<div
class=
"login-code"
>
<div
class=
"login-code"
>
<img
:src=
"codeUrl"
@
click=
"getCode"
class=
"login-code-img"
/>
<img
:src=
"codeUrl"
@
click=
"getCode"
class=
"login-code-img"
/>
</div>
</div>
</el-form-item>
</el-form-item>
<el-checkbox
v-model=
"loginForm.rememberMe"
style=
"margin:0px 0px 25px 0px;"
>
记住密码
</el-checkbox>
<el-checkbox
<el-form-item
style=
"width:100%;"
>
v-model=
"loginForm.rememberMe"
style=
"margin: 0px 0px 25px 0px"
>
记住密码
</el-checkbox
>
<el-form-item
style=
"width: 100%"
>
<el-button
<el-button
:loading=
"loading"
:loading=
"loading"
size=
"medium"
size=
"medium"
type=
"primary"
type=
"primary"
style=
"width:
100%;
"
style=
"width:
100%
"
@
click.native.prevent=
"handleLogin"
@
click.native.prevent=
"handleLogin"
>
>
<span
v-if=
"!loading"
>
登 录
</span>
<span
v-if=
"!loading"
>
登 录
</span>
<span
v-else
>
登 录 中...
</span>
<span
v-else
>
登 录 中...
</span>
</el-button>
</el-button>
<div
style=
"float: right;"
v-if=
"register"
>
<div
style=
"float: right"
v-if=
"register"
>
<router-link
class=
"link-type"
:to=
"'/register'"
>
立即注册
</router-link>
<router-link
class=
"link-type"
:to=
"'/register'"
>
立即注册
</router-link
>
</div>
</div>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -64,7 +87,7 @@
...
@@ -64,7 +87,7 @@
<
script
>
<
script
>
import
{
getCodeImg
}
from
"
@/api/login
"
;
import
{
getCodeImg
}
from
"
@/api/login
"
;
import
Cookies
from
"
js-cookie
"
;
import
Cookies
from
"
js-cookie
"
;
import
{
encrypt
,
decrypt
}
from
'
@/utils/jsencrypt
'
import
{
encrypt
,
decrypt
}
from
"
@/utils/jsencrypt
"
;
export
default
{
export
default
{
name
:
"
Login
"
,
name
:
"
Login
"
,
...
@@ -76,41 +99,60 @@ export default {
...
@@ -76,41 +99,60 @@ export default {
password
:
"
admin123
"
,
password
:
"
admin123
"
,
rememberMe
:
false
,
rememberMe
:
false
,
code
:
""
,
code
:
""
,
uuid
:
""
uuid
:
""
,
},
},
loginRules
:
{
loginRules
:
{
username
:
[
username
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的账号
"
}
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的账号
"
}
,
],
],
password
:
[
password
:
[
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的密码
"
}
{
required
:
true
,
trigger
:
"
blur
"
,
message
:
"
请输入您的密码
"
}
,
],
],
code
:
[{
required
:
true
,
trigger
:
"
change
"
,
message
:
"
请输入验证码
"
}]
code
:
[{
required
:
true
,
trigger
:
"
change
"
,
message
:
"
请输入验证码
"
}]
,
},
},
loading
:
false
,
loading
:
false
,
// 验证码开关
// 验证码开关
captchaEnabled
:
tru
e
,
captchaEnabled
:
fals
e
,
// 注册开关
// 注册开关
register
:
false
,
register
:
false
,
redirect
:
undefined
redirect
:
undefined
,
};
};
},
},
watch
:
{
watch
:
{
$route
:
{
$route
:
{
handler
:
function
(
route
)
{
handler
:
function
(
route
)
{
this
.
redirect
=
route
.
query
&&
route
.
query
.
redirect
;
this
.
redirect
=
route
.
query
&&
route
.
query
.
redirect
;
},
},
immediate
:
true
immediate
:
true
,
}
}
,
},
},
created
()
{
created
()
{
this
.
getCode
();
this
.
getCode
();
this
.
getCookie
();
this
.
getCookie
();
},
},
mounted
()
{
this
.
urlLogin
();
},
methods
:
{
methods
:
{
urlLogin
()
{
if
(
getQueryString
(
"
username
"
)
&&
getQueryString
(
"
password
"
))
{
this
.
loginForm
=
{
username
:
getQueryString
(
"
username
"
),
password
:
getQueryString
(
"
password
"
),
};
this
.
handleLogin
();
}
function
getQueryString
(
name
)
{
var
reg
=
new
RegExp
(
"
(^|&)
"
+
name
+
"
=([^&]*)(&|$)
"
,
"
i
"
);
var
r
=
window
.
location
.
search
.
substr
(
1
).
match
(
reg
);
if
(
r
!=
null
)
return
unescape
(
r
[
2
]);
return
null
;
}
},
getCode
()
{
getCode
()
{
getCodeImg
().
then
(
res
=>
{
getCodeImg
().
then
((
res
)
=>
{
this
.
captchaEnabled
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
;
this
.
captchaEnabled
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
;
if
(
this
.
captchaEnabled
)
{
if
(
this
.
captchaEnabled
)
{
this
.
codeUrl
=
"
data:image/gif;base64,
"
+
res
.
img
;
this
.
codeUrl
=
"
data:image/gif;base64,
"
+
res
.
img
;
this
.
loginForm
.
uuid
=
res
.
uuid
;
this
.
loginForm
.
uuid
=
res
.
uuid
;
...
@@ -120,38 +162,47 @@ export default {
...
@@ -120,38 +162,47 @@ export default {
getCookie
()
{
getCookie
()
{
const
username
=
Cookies
.
get
(
"
username
"
);
const
username
=
Cookies
.
get
(
"
username
"
);
const
password
=
Cookies
.
get
(
"
password
"
);
const
password
=
Cookies
.
get
(
"
password
"
);
const
rememberMe
=
Cookies
.
get
(
'
rememberMe
'
)
const
rememberMe
=
Cookies
.
get
(
"
rememberMe
"
);
this
.
loginForm
=
{
this
.
loginForm
=
{
username
:
username
===
undefined
?
this
.
loginForm
.
username
:
username
,
username
:
username
===
undefined
?
this
.
loginForm
.
username
:
username
,
password
:
password
===
undefined
?
this
.
loginForm
.
password
:
decrypt
(
password
),
password
:
rememberMe
:
rememberMe
===
undefined
?
false
:
Boolean
(
rememberMe
)
password
===
undefined
?
this
.
loginForm
.
password
:
decrypt
(
password
),
rememberMe
:
rememberMe
===
undefined
?
false
:
Boolean
(
rememberMe
),
};
};
},
},
handleLogin
()
{
handleLogin
()
{
this
.
$refs
.
loginForm
.
validate
(
valid
=>
{
this
.
$refs
.
loginForm
.
validate
(
(
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
this
.
loading
=
true
;
this
.
loading
=
true
;
if
(
this
.
loginForm
.
rememberMe
)
{
if
(
this
.
loginForm
.
rememberMe
)
{
Cookies
.
set
(
"
username
"
,
this
.
loginForm
.
username
,
{
expires
:
30
});
Cookies
.
set
(
"
username
"
,
this
.
loginForm
.
username
,
{
expires
:
30
});
Cookies
.
set
(
"
password
"
,
encrypt
(
this
.
loginForm
.
password
),
{
expires
:
30
});
Cookies
.
set
(
"
password
"
,
encrypt
(
this
.
loginForm
.
password
),
{
Cookies
.
set
(
'
rememberMe
'
,
this
.
loginForm
.
rememberMe
,
{
expires
:
30
});
expires
:
30
,
});
Cookies
.
set
(
"
rememberMe
"
,
this
.
loginForm
.
rememberMe
,
{
expires
:
30
,
});
}
else
{
}
else
{
Cookies
.
remove
(
"
username
"
);
Cookies
.
remove
(
"
username
"
);
Cookies
.
remove
(
"
password
"
);
Cookies
.
remove
(
"
password
"
);
Cookies
.
remove
(
'
rememberMe
'
);
Cookies
.
remove
(
"
rememberMe
"
);
}
}
this
.
$store
.
dispatch
(
"
Login
"
,
this
.
loginForm
).
then
(()
=>
{
this
.
$store
this
.
$router
.
push
({
path
:
this
.
redirect
||
"
/
"
}).
catch
(()
=>
{});
.
dispatch
(
"
Login
"
,
this
.
loginForm
)
}).
catch
(()
=>
{
.
then
(()
=>
{
this
.
loading
=
false
;
console
.
log
(
444
);
if
(
this
.
captchaEnabled
)
{
this
.
$router
.
push
({
path
:
this
.
redirect
||
"
/
"
}).
catch
(()
=>
{});
this
.
getCode
();
})
}
.
catch
(()
=>
{
});
this
.
loading
=
false
;
if
(
this
.
captchaEnabled
)
{
this
.
getCode
();
}
});
}
}
});
});
}
}
,
}
}
,
};
};
</
script
>
</
script
>
...
...
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