Commit f8389862 by lijinqi

登录修改

parent 0ecae0aa
......@@ -5,4 +5,4 @@ VITE_APP_TITLE = 先进计算普惠算力公共服务平台
VITE_APP_ENV = 'development'
# 先进计算普惠算力公共服务平台/开发环境
VITE_APP_BASE_API = 'http://localhost:8086'
VITE_APP_BASE_API = 'http://localhost:48080/app-api/'
import request from '@/utils/request'
// 登录方法
export function login(username, password, code, uuid) {
export function login(mobile, password, code, uuid) {
const data = {
username,
mobile,
password,
code,
uuid
}
return request({
url: '/login',
url: '/member/auth/login',
headers: {
isToken: false,
repeatSubmit: false
......@@ -42,19 +42,7 @@ export function getInfo() {
// 退出方法
export function logout() {
return request({
url: '/logout',
url: '/member/auth/logout',
method: 'post'
})
}
// 获取验证码
export function getCodeImg() {
return request({
url: '/captchaImage',
headers: {
isToken: false
},
method: 'get',
timeout: 20000
})
}
\ No newline at end of file
......@@ -67,7 +67,7 @@ export const constantRoutes = [
children: [
{
path: '/index',
component: () => import('@/views/index-copy.vue'),
component: () => import('@/views/index.vue'),
name: 'Index',
meta: {title: '首页', icon: 'dashboard', affix: true}
}
......
......@@ -16,14 +16,16 @@ const useUserStore = defineStore(
actions: {
// 登录
login(userInfo) {
const username = userInfo.username.trim()
const mobile = userInfo.mobile.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => {
setToken(res.token)
this.token = res.token
login(mobile, password, code, uuid).then(res => {
setToken(res.data.accessToken)
this.token = res.data.token
resolve()
}).catch(error => {
reject(error)
......@@ -44,7 +46,7 @@ const useUserStore = defineStore(
this.roles = ['ROLE_DEFAULT']
}
this.id = user.userId
this.name = user.userName
this.name = user.mobile
this.avatar = avatar
resolve(res)
}).catch(error => {
......
......@@ -10,8 +10,9 @@ import useUserStore from '@/store/modules/user'
let downloadLoadingInstance;
// 是否显示重新登录
export let isRelogin = { show: false };
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
axios.defaults.headers['tenant-id'] = '1';
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
......@@ -127,7 +128,7 @@ export function download(url, params, filename, config) {
downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
return service.post(url, params, {
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
headers: { 'Content-Type': 'application/x-www-form-urlencoded'},
responseType: 'blob',
...config
}).then(async (data) => {
......
......@@ -2,9 +2,9 @@
<div class="login">
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">先进计算普惠算力公共服务平台</h3>
<el-form-item prop="username">
<el-form-item prop="mobile">
<el-input
v-model="loginForm.username"
v-model="loginForm.mobile"
type="text"
size="large"
auto-complete="off"
......@@ -27,22 +27,6 @@
</template>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
v-model="loginForm.code"
size="large"
auto-complete="off"
placeholder="验证码"
style="width: 64%"
@keyup.enter="handleLogin">
<template #prefix>
<svg-icon icon-class="validCode" class="el-input__icon input-icon"/>
</template>
</el-input>
<div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<div class="flex-align-center flex-space-between mb20">
<el-checkbox v-model="loginForm.rememberMe">记住密码</el-checkbox>
......@@ -72,7 +56,6 @@
</template>
<script setup>
import { getCodeImg } from '@/api/login'
import Cookies from 'js-cookie'
import { encrypt, decrypt } from '@/utils/jsencrypt'
import useUserStore from '@/store/modules/user'
......@@ -84,7 +67,7 @@ const router = useRouter()
const {proxy} = getCurrentInstance()
const loginForm = ref({
username: '',
mobile: '',
password: '',
rememberMe: false,
code: '',
......@@ -92,7 +75,7 @@ const loginForm = ref({
})
const loginRules = {
username: [{required: true, trigger: 'blur', message: '请输入您的账号'}],
mobile: [{required: true, trigger: 'blur', message: '请输入您的手机号'}],
password: [{required: true, trigger: 'blur', message: '请输入您的密码'}],
code: [{required: true, trigger: 'change', message: '请输入验证码'}]
}
......@@ -115,12 +98,12 @@ function handleLogin () {
loading.value = true
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
if (loginForm.value.rememberMe) {
Cookies.set('username', loginForm.value.username, {expires: 30})
Cookies.set('mobile', loginForm.value.mobile, {expires: 30})
Cookies.set('password', encrypt(loginForm.value.password), {expires: 30})
Cookies.set('rememberMe', loginForm.value.rememberMe, {expires: 30})
} else {
// 否则移除
Cookies.remove('username')
Cookies.remove('mobile')
Cookies.remove('password')
Cookies.remove('rememberMe')
}
......@@ -136,37 +119,23 @@ function handleLogin () {
router.push({path: redirect.value || '/', query: otherQueryParams})
}).catch(() => {
loading.value = false
// 重新获取验证码
if (captchaEnabled.value) {
getCode()
}
})
}
})
}
function getCode () {
getCodeImg().then(res => {
captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
if (captchaEnabled.value) {
codeUrl.value = 'data:image/gif;base64,' + res.img
loginForm.value.uuid = res.uuid
}
})
}
function getCookie () {
const username = Cookies.get('username')
const mobile = Cookies.get('mobile')
const password = Cookies.get('password')
const rememberMe = Cookies.get('rememberMe')
loginForm.value = {
username: username === undefined ? loginForm.value.username : username,
mobile: mobile === undefined ? loginForm.value.mobile : mobile,
password: password === undefined ? loginForm.value.password : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
}
}
getCode()
getCookie()
</script>
......
......@@ -40,22 +40,6 @@
</template>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
size="large"
v-model="registerForm.code"
auto-complete="off"
placeholder="验证码"
style="width: 64%"
@keyup.enter="handleRegister">
<template #prefix>
<svg-icon icon-class="validCode" class="el-input__icon input-icon"/>
</template>
</el-input>
<div class="register-code">
<img :src="codeUrl" @click="getCode" class="register-code-img"/>
</div>
</el-form-item>
<div class="flex-justify-end mb20">
<router-link class="link-type" :to="'/login'">使用已有账户登录</router-link>
</div>
......@@ -82,7 +66,6 @@
<script setup>
import { ElMessageBox } from 'element-plus'
import { getCodeImg, register } from '@/api/login'
const router = useRouter()
const {proxy} = getCurrentInstance()
......@@ -122,7 +105,6 @@ const registerRules = {
const codeUrl = ref('')
const loading = ref(false)
const captchaEnabled = ref(true)
function handleRegister () {
proxy.$refs.registerRef.validate(valid => {
......@@ -139,25 +121,11 @@ function handleRegister () {
})
}).catch(() => {
loading.value = false
if (captchaEnabled) {
getCode()
}
})
}
})
}
function getCode () {
getCodeImg().then(res => {
captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
if (captchaEnabled.value) {
codeUrl.value = 'data:image/gif;base64,' + res.img
registerForm.value.uuid = res.uuid
}
})
}
getCode()
</script>
<style lang='scss' scoped>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment