Files
front-pc/pages/personal-Center/index/account-bind.vue
2025-09-14 10:41:15 +08:00

85 lines
3.4 KiB
Vue

<template>
<div class="box-border w-auto border border-[#EEEEEE] rounded-6px border-solid bg-[#FFFFFF] px-30px py-21px mt-10px">
<div class="flex flex-col justify-center text-[14px] text-[#333333] font-normal">
<div class="mt-[6px] flex items-center justify-between">
<div class="flex items-center">
<el-icon size="32" color="#007AFF"><Iphone /></el-icon>
<!-- <img src="~/assets/images/qq-v2.png" alt="" srcset="" class="h-[35px] w-[34px]" /> -->
<div class="ml-[19px] w-fit flex flex-col">
<div class="color-#333 text-15px mb-4px">手机号{{ user.mobile ? '(已绑定)' : '' }}</div
><div class="color-#999">手机号可以用于登录帐号{{ user.mobile }}</div></div
>
</div>
<el-button :type="user.mobile ? 'danger' : 'primary'" class="ml-10px">{{ user.mobile ? '解绑' : '绑定' }}</el-button>
</div>
<div class="mt-[30px] flex items-center justify-between">
<div class="flex items-center">
<img src="~/assets/images/qq-v2.png" alt="" srcset="" class="h-[35px] w-[34px]" />
<div class="ml-[19px] w-fit flex flex-col">
<div class="color-#333 text-15px mb-4px">QQ{{ user.qqOpenId ? '(已绑定)' : '' }}</div
><div class="color-#999">QQ可以用于登录帐号</div></div
>
</div>
<el-button :type="user.qqOpenId ? 'danger' : 'primary'" class="ml-10px" @click="handleBind('qq')">{{ user.qqOpenId ? '解绑' : '绑定' }}</el-button>
</div>
<div class="mt-[30px] flex items-center justify-between">
<div class="flex items-center">
<img src="~/assets/images/weixin-v2.png" alt="" srcset="" class="h-[35px] w-[34px]" />
<div class="ml-[19px] w-fit flex flex-col">
<div class="color-#333 text-15px mb-4px">微信{{ user.wxOpenId ? '(已绑定)' : '' }}</div
><div class="color-#999">微信可以用于登录帐号</div></div
>
</div>
<el-button :type="user.wxOpenId ? 'danger' : 'primary'" class="ml-10px" @click="handleBind('wx')">{{ user.wxOpenId ? '解绑' : '绑定' }}</el-button>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { Iphone } from '@element-plus/icons-vue'
import { onMounted } from 'vue'
import { handleLoginQQ, handleLoginWechat } from '~/utils/login'
import { getUserInfo, cancelSocialBind } from '~/api/personal-center/index'
import type { UserExtendRespVO } from '~/api/personal-center/types'
onMounted(() => {
getUser()
})
const user = ref({} as UserExtendRespVO)
const getUser = async () => {
const res = await getUserInfo()
console.log(res)
user.value = res.data
}
const handleBind = (type: string) => {
if (type === 'qq') {
if (user.value.qqOpenId) {
cancelSocialBind({ type: 35, openid: user.value.qqOpenId }).then((res) => {
if (res.code === 0) {
ElMessage.success('解绑成功')
getUser()
}
})
} else {
handleLoginQQ()
}
}
if (type === 'wx') {
if (user.value.wxOpenId) {
cancelSocialBind({ type: 32, openid: user.value.wxOpenId }).then((res) => {
if (res.code === 0) {
getUser()
ElMessage.success('解绑成功')
}
})
} else {
handleLoginWechat()
}
}
}
</script>
<style scoped></style>