feat(登录): 添加token验证登录功能并优化优秀录音获取
在登录页面添加token验证登录功能,支持通过路由参数自动登录 将secondTop页面的getGoodRecord函数重命名为CentergetGoodRecord并暂时注释调用
This commit is contained in:
@@ -260,12 +260,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref, onMounted } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
import http from '@/utils/https'
|
import http from '@/utils/https'
|
||||||
import { useUserStore } from '@/stores/user'
|
import { useUserStore } from '@/stores/user'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
const route = useRoute()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
@@ -394,6 +397,7 @@ const handleLogin = async () => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// 调用登录API
|
// 调用登录API
|
||||||
|
// token检测
|
||||||
const response = await http.post('/api/v1/login', {
|
const response = await http.post('/api/v1/login', {
|
||||||
username: loginForm.value.username,
|
username: loginForm.value.username,
|
||||||
password: loginForm.value.password
|
password: loginForm.value.password
|
||||||
@@ -546,6 +550,47 @@ const handleSetSecurity = async () => {
|
|||||||
const cancelSecuritySetup = () => {
|
const cancelSecuritySetup = () => {
|
||||||
alert('首次登录必须设置密保问题')
|
alert('首次登录必须设置密保问题')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Token验证登录函数
|
||||||
|
const handleTokenLogin = async (token) => {
|
||||||
|
loading.value = true
|
||||||
|
errorMessage.value = ''
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 使用token进行验证登录
|
||||||
|
const response = await http.post('/api/v1/token_login', {
|
||||||
|
token: token
|
||||||
|
})
|
||||||
|
|
||||||
|
if (response.code === 200 || response.success) {
|
||||||
|
// 保存登录响应数据
|
||||||
|
loginResponseData = response
|
||||||
|
|
||||||
|
// 使用Pinia存储用户信息和token
|
||||||
|
if (response && response.token) {
|
||||||
|
userStore.login(response.token, response.name, response.user_level, response.department, response.department_id)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查用户是否重名
|
||||||
|
await checkUserDuplicate()
|
||||||
|
} else {
|
||||||
|
errorMessage.value = response.message || 'Token验证失败'
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
errorMessage.value = error.message || 'Token验证失败,请重试'
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组件挂载时检查路由参数中的token
|
||||||
|
onMounted(() => {
|
||||||
|
const token = route.query.token
|
||||||
|
if (token) {
|
||||||
|
// 如果路由参数中有token,直接进行token验证登录
|
||||||
|
handleTokenLogin(token)
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -826,7 +826,7 @@ const conversionRateVsAverage = ref({})
|
|||||||
// 获取优秀录音
|
// 获取优秀录音
|
||||||
const excellentRecord = ref({});
|
const excellentRecord = ref({});
|
||||||
// 获取优秀录音文件
|
// 获取优秀录音文件
|
||||||
async function getGoodRecord() {
|
async function CentergetGoodRecord() {
|
||||||
const params = getRequestParams()
|
const params = getRequestParams()
|
||||||
const params1 = {
|
const params1 = {
|
||||||
user_level:userStore.userInfo.user_level.toString(),
|
user_level:userStore.userInfo.user_level.toString(),
|
||||||
@@ -916,7 +916,7 @@ const excellentRecord = ref({});
|
|||||||
await CenterUrgentNeedToAddress()
|
await CenterUrgentNeedToAddress()
|
||||||
await CenterConversionRateVsAverage()
|
await CenterConversionRateVsAverage()
|
||||||
await CenterSeniorManagerList()
|
await CenterSeniorManagerList()
|
||||||
await getGoodRecord()
|
// await CentergetGoodRecord()
|
||||||
await CenterGroupList('all')
|
await CenterGroupList('all')
|
||||||
|
|
||||||
console.log('[强制刷新] 所有数据已重新加载')
|
console.log('[强制刷新] 所有数据已重新加载')
|
||||||
|
|||||||
Reference in New Issue
Block a user