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

91 lines
3.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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'
import { useMessage } from '~/composables/useMessage'
const message = useMessage()
onMounted(() => {
getUser()
})
const user = ref({} as UserExtendRespVO)
const getUser = async () => {
const res = await getUserInfo()
console.log(res)
user.value = res.data
}
const handleBind = async (type: string) => {
if (type === 'qq') {
if (user.value.qqOpenId) {
const res = await message.confirm('确定解绑QQ吗', '提示')
if (!res) return
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) {
const res = await message.confirm('确定解绑微信吗?', '提示')
if (!res) return
cancelSocialBind({ type: 32, openid: user.value.wxOpenId }).then((res) => {
if (res.code === 0) {
getUser()
ElMessage.success('解绑成功')
}
})
} else {
handleLoginWechat()
}
}
}
</script>
<style scoped></style>