将原始的登录代码注入进新的接口

This commit is contained in:
周添峰 2024-07-19 11:48:57 +08:00
parent 1fcc9dfdf1
commit 4da1385686
7 changed files with 92 additions and 25 deletions

View File

@ -7,6 +7,9 @@
</div>
<template #dropdown>
<el-dropdown-menu class="user-dropdown">
<router-link to="/book/home">
<el-dropdown-item> 商城首页</el-dropdown-item>
</router-link>
<router-link to="/profile">
<el-dropdown-item> {{ $t('app.profile') }} </el-dropdown-item>
</router-link>
@ -20,16 +23,22 @@
import { useUserStore } from '@/store/modules/user'
import { useRouter } from 'vue-router'
import { ArrowDown } from '@element-plus/icons-vue'
import constant from '@/utils/constant'
import { ElNotification } from 'element-plus'
const userStore = useUserStore()
const router = useRouter()
const logout = () => {
userStore.logoutAction().then(() => {
// router.push({ path: '/login' })
ElNotification({
title: '登出成功!!!',
type: 'success'
})
router.push({ path: constant.loginPage })
//
location.reload()
//location.reload()
})
}
</script>

View File

@ -8,7 +8,7 @@ export default {
version: appPackage.version,
// 登录成功后,跳转页面
loginPage: '/dashboard/workbench',
loginPage: '/book/index',
// API地址
apiUrl: import.meta.env.VITE_API_URL,

View File

@ -22,11 +22,6 @@ service.interceptors.request.use(
config.headers.Authorization = userStore.token
}
var token = getCookie('book_user')
if (token) {
config.headers['cookie'] = token
}
config.headers['Accept-Language'] = cache.getLanguage()
// 追加时间戳防止GET请求缓存

View File

@ -0,0 +1,68 @@
<template>
<el-dropdown class="avatar-container" trigger="hover">
<div class="avatar-wrapper">
<el-avatar shape="circle" :size="30" :src="userStore.user.avatar"></el-avatar>
<span>{{ userStore.user.realName }}</span>
<el-icon class="el-icon--right"><ArrowDown /></el-icon>
</div>
<template #dropdown>
<el-dropdown-menu class="user-dropdown">
<router-link to="/dashboard/workbench">
<el-dropdown-item> 控制台 </el-dropdown-item>
</router-link>
<router-link to="/profile">
<el-dropdown-item> {{ $t('app.profile') }} </el-dropdown-item>
</router-link>
<el-dropdown-item divided @click="logout"> {{ $t('app.signOut') }} </el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</template>
<script setup lang="ts">
import { useUserStore } from '@/store/modules/user'
import { useRouter } from 'vue-router'
import { ArrowDown } from '@element-plus/icons-vue'
import constant from '@/utils/constant'
import { ElNotification } from 'element-plus'
const userStore = useUserStore()
const router = useRouter()
const logout = () => {
userStore.logoutAction().then(() => {
ElNotification({
title: '登出成功!!!',
type: 'success'
})
router.push({ path: constant.loginPage })
//
//location.reload()
})
}
</script>
<style lang="scss" scoped>
.avatar-container {
display: flex;
align-items: center;
justify-content: flex-end;
height: var(--theme-header-height);
.avatar-wrapper {
display: flex;
align-items: center;
white-space: nowrap;
cursor: pointer;
padding: 0 8px;
color: var(--theme-header-text-color);
span {
margin-left: 6px;
}
}
//&:hover {
// background: var(--theme-header-hover-color);
//}
}
</style>

View File

@ -1,8 +1,9 @@
<script setup lang="ts">
import { useRouter } from 'vue-router'
import User from './component/User.vue'
import { onMounted, ref } from 'vue'
import { getCookie } from '@/utils/tokenUtil'
import { getUserInfo } from '@/api/book'
import { useUserStore } from '@/store/modules/user'
const userStore = useUserStore()
const router = useRouter()
//
const changeValue = ref('/book/index')
@ -15,13 +16,6 @@ const changeRouters = () => {
}
router.push(changeValue.value)
}
onMounted(() => {
console.log(getCookie('book_user'))
// getUserInfo().then(res => {
// console.log(res)
// })
})
</script>
<template>
@ -29,10 +23,6 @@ onMounted(() => {
<div class="nav-link">
<div class="site-nav-bd">
<ul>
<li @click="router.push('/book/login?returnUrl=/book/index&status=0')">请登录</li>
<li @click="router.push('/book/login?returnUrl=/book/index&status=1')">免费注册</li>
</ul>
<ul>
<li @click="changeRouters">{{ changeValue == '/book/my' ? '商城首页' : '我的淘宝' }}</li>
<li @click="router.push('/book/trolley')">
<el-icon>
@ -46,9 +36,10 @@ onMounted(() => {
</el-icon>
收藏夹
</li>
<li @click="router.push('/login')">
<el-icon><Setting /></el-icon>
</li>
</ul>
<ul>
<li v-if="userStore?.token"><User></User></li>
<li v-else @click="router.push('/login')">登录/注册</li>
</ul>
</div>
</div>

View File

@ -25,6 +25,7 @@ import { useRouter } from 'vue-router'
import { useI18n } from 'vue-i18n'
import constant from '@/utils/constant'
import { sm2Encrypt } from '@/utils/smCrypto'
import { ElNotification } from 'element-plus'
const userStore = useUserStore()
const router = useRouter()
@ -88,6 +89,10 @@ const onLogin = () => {
userStore
.accountLoginAction(loginData)
.then(() => {
ElNotification({
title: '登录成功!!!',
type: 'success'
})
router.push({ path: constant.loginPage })
})
.catch(() => {

View File

@ -14,7 +14,6 @@
</div>
<account v-if="loginType === 'account'" />
<mobile v-if="loginType === 'mobile'" />
<third />
</div>
</div>
</template>