From e92cd56bb56b111c1afe9922191f9897215ff6b0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 28 八月 2026 17:55:27 +0800
Subject: [PATCH] 提交数据库和服务器部署说明文档
---
yuyueMiniProgram/src/components/MiniLoginPrompt.vue | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/yuyueMiniProgram/src/components/MiniLoginPrompt.vue b/yuyueMiniProgram/src/components/MiniLoginPrompt.vue
index b7f6d0d..bacbc2e 100644
--- a/yuyueMiniProgram/src/components/MiniLoginPrompt.vue
+++ b/yuyueMiniProgram/src/components/MiniLoginPrompt.vue
@@ -14,6 +14,7 @@
const visible = computed(() => authStore.loginPromptVisible)
const needPhoneAuthorize = computed(() => authStore.needPhoneAuthorize)
+const shouldRenderPrompt = ref(true)
const message = computed(() => {
if (needPhoneAuthorize.value) {
return '首次登录需授权手机号完成身份识别'
@@ -22,6 +23,7 @@
})
function hideLoginPrompt() {
+ shouldRenderPrompt.value = true
authStore.hideLoginPrompt()
}
@@ -29,7 +31,7 @@
return !normalizeProfileDisplayName(authStore.profile?.displayName)
}
-function openProfileEditorIfNeeded() {
+async function openProfileEditorIfNeeded() {
if (!shouldForceEditProfile()) {
return false
}
@@ -54,7 +56,7 @@
hideLoginPrompt()
uni.$emit('mini-login-success')
emit('login-success')
- if (openProfileEditorIfNeeded()) {
+ if (await openProfileEditorIfNeeded()) {
return
}
uni.showToast({
@@ -78,11 +80,13 @@
}
async function handlePhoneAuthorize(event: any) {
+ shouldRenderPrompt.value = true
if (loginSubmitting.value) {
return
}
const phoneCode = event?.detail?.code
if (!phoneCode) {
+ authStore.showLoginPrompt()
uni.showToast({
title: '未获取到手机号授权',
icon: 'none',
@@ -98,7 +102,7 @@
hideLoginPrompt()
uni.$emit('mini-login-success')
emit('login-success')
- if (openProfileEditorIfNeeded()) {
+ if (await openProfileEditorIfNeeded()) {
return
}
uni.showToast({
@@ -107,6 +111,7 @@
})
}
catch (error) {
+ authStore.showLoginPrompt()
uni.showToast({
title: error instanceof Error ? error.message : '登录失败',
icon: 'none',
@@ -116,14 +121,27 @@
loginSubmitting.value = false
}
}
+
+function handleBeforePhoneAuthorize() {
+ if (loginSubmitting.value) {
+ return
+ }
+ shouldRenderPrompt.value = false
+}
</script>
<template>
- <view v-if="visible" class="fixed inset-0 z-40 bg-[rgba(0,0,0,0.55)]" @click="!needPhoneAuthorize && hideLoginPrompt()" />
+ <view
+ v-if="visible"
+ class="fixed inset-0 z-40 bg-[rgba(0,0,0,0.55)]"
+ :class="shouldRenderPrompt ? '' : 'opacity-0 pointer-events-none'"
+ @click="!needPhoneAuthorize && hideLoginPrompt()"
+ />
<view
v-if="visible"
class="fixed left-[50%] top-[50%] z-50 w-[520rpx] translate-x-[-50%] translate-y-[-50%] rounded-[28rpx] bg-white px-[40rpx] pb-[36rpx] pt-[28rpx]"
+ :class="shouldRenderPrompt ? '' : 'opacity-0 pointer-events-none'"
>
<view class="mb-[16rpx] text-center text-[34rpx] text-[#1A1A1A] font-medium">
提示
@@ -146,6 +164,7 @@
class="m-0 h-[80rpx] flex flex-1 items-center justify-center rounded-full border-none bg-[#0C6FFF] p-0 text-[30rpx] text-white after:border-none"
:disabled="loginSubmitting"
open-type="getPhoneNumber"
+ @tap="handleBeforePhoneAuthorize"
@getphonenumber="handlePhoneAuthorize"
>
{{ loginSubmitting ? '授权中...' : '授权手机号' }}
--
Gitblit v1.7.1