fix: 三方登录的绑定,使用 /system/social-user/get-bind-list 接口

This commit is contained in:
YunaiV 2025-07-08 22:19:56 +08:00
parent 0efa1e986b
commit e75ddc40ab
5 changed files with 20 additions and 19 deletions

View File

@ -14,7 +14,7 @@ export interface SocialUserVO {
}
// 查询社交用户列表
export const getSocialUserPage = async (params) => {
export const getSocialUserPage = async (params: any) => {
return await request.get({ url: `/system/social-user/page`, params })
}
@ -22,3 +22,8 @@ export const getSocialUserPage = async (params) => {
export const getSocialUser = async (id: number) => {
return await request.get({ url: `/system/social-user/get?id=` + id })
}
// 获得绑定社交用户列表
export const getBindSocialUserList = async () => {
return await request.get({ url: '/system/social-user/get-bind-list' })
}

View File

@ -16,10 +16,6 @@ export interface ProfileVO {
id: number
name: string
}[]
socialUsers: {
type: number
openid: string
}[]
email: string
mobile: string
sex: number

View File

@ -181,7 +181,6 @@ function openModal() {
}
function closeModal() {
debugger
dialogVisible.value = false
}

View File

@ -18,7 +18,6 @@ import { useUserStore } from '@/store/modules/user'
import { useUpload } from '@/components/UploadFile/src/useUpload'
import { UploadRequestOptions } from 'element-plus/es/components/upload/src/upload'
// TODO @ ProfileUser
defineOptions({ name: 'UserAvatar' })
defineProps({
@ -30,10 +29,12 @@ const userStore = useUserStore()
const cropperRef = ref()
const handelUpload = async ({ data }) => {
const { httpRequest } = useUpload()
const avatar = ((await httpRequest({
const avatar = (
(await httpRequest({
file: data,
filename: 'avatar.png',
} as UploadRequestOptions)) as unknown as { data: string }).data
filename: 'avatar.png'
} as UploadRequestOptions)) as unknown as { data: string }
).data
await updateUserProfile({ avatar })
// userStore

View File

@ -23,7 +23,7 @@
</template>
<script lang="ts" setup>
import { SystemUserSocialTypeEnum } from '@/utils/constants'
import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
import { getBindSocialUserList } from '@/api/system/social/user'
import { socialAuthRedirect, socialBind, socialUnbind } from '@/api/system/user/socialUser'
defineOptions({ name: 'UserSocial' })
@ -32,19 +32,19 @@ defineProps<{
}>()
const message = useMessage()
const socialUsers = ref<any[]>([])
const userInfo = ref<ProfileVO>()
const initSocial = async () => {
socialUsers.value = [] //
const res = await getUserProfile()
userInfo.value = res
//
const bindSocialUserList = await getBindSocialUserList()
//
for (const i in SystemUserSocialTypeEnum) {
const socialUser = { ...SystemUserSocialTypeEnum[i] }
socialUsers.value.push(socialUser)
if (userInfo.value?.socialUsers) {
for (const j in userInfo.value.socialUsers) {
if (socialUser.type === userInfo.value.socialUsers[j].type) {
socialUser.openid = userInfo.value.socialUsers[j].openid
if (bindSocialUserList && bindSocialUserList.length > 0) {
for (const bindUser of bindSocialUserList) {
if (socialUser.type === bindUser.type) {
socialUser.openid = bindUser.openid
break
}
}