This commit is contained in:
2026-01-17 13:15:30 +08:00
parent d517af6469
commit b79e7f2113
4 changed files with 76 additions and 120 deletions

View File

@@ -18,42 +18,28 @@ const feature = ref(route.params.feature);
// 获取产品信息
const featureData = ref({});
// 检查是否可以查询:已登录且已绑定手机号
// 检查是否可以查询:不需要登录,直接允许查询
const canQuery = computed(() => {
return isLoggedIn.value && mobile.value && mobile.value.trim() !== '';
return true; // 允许未登录用户查询
});
// 检查登录状态和手机号绑定
// 初始化:检查支付回调并加载产品信息
onMounted(async () => {
// 检查支付回调
isFinishPayment();
// 检查是否已登录
// 如果有 token尝试加载用户信息但不强制
const token = localStorage.getItem("token");
if (!token) {
showToast({ message: "请先登录才能使用查询功能" });
router.replace("/login");
return;
if (token) {
try {
await userStore.fetchUserInfo();
} catch (error) {
console.warn("获取用户信息失败(可选):", error);
// 不影响查询功能,继续执行
}
}
// 获取用户信息(包括手机号)
try {
await userStore.fetchUserInfo();
} catch (error) {
console.error("获取用户信息失败:", error);
showToast({ message: "获取用户信息失败,请重新登录" });
router.replace("/login");
return;
}
// 检查是否已绑定手机号
if (!mobile.value || mobile.value.trim() === '') {
showToast({ message: "请先绑定手机号才能使用查询功能" });
router.replace("/me");
return;
}
// 已登录且已绑定手机号,可以查询
// 直接加载产品信息,不需要登录
await getProduct();
});
@@ -88,20 +74,6 @@ async function getProduct() {
</script>
<template>
<!-- 未登录或未绑定手机号提示 -->
<div v-if="!canQuery" class="min-h-screen flex items-center justify-center p-6">
<div class="text-center">
<div class="text-lg font-bold mb-4">无法使用查询功能</div>
<div class="text-gray-600 mb-6">
<span v-if="!isLoggedIn">请先登录</span>
<span v-else>请先绑定手机号</span>
</div>
<button @click="router.push(isLoggedIn ? '/me' : '/login')"
class="px-6 py-3 bg-primary text-white rounded-lg">
{{ isLoggedIn ? '去绑定手机号' : '去登录' }}
</button>
</div>
</div>
<!-- 已登录且已绑定手机号可以使用查询功能 -->
<InquireForm v-else :type="'normal'" :feature="feature" :feature-data="featureData" />
<!-- 直接显示查询表单不需要登录 -->
<InquireForm :type="'normal'" :feature="feature" :feature-data="featureData" />
</template>