From 4f041ffa37afd56269515cfc4a20d435332917a2 Mon Sep 17 00:00:00 2001 From: liangzai <2440983361@qq.com> Date: Wed, 3 Jun 2026 17:00:37 +0800 Subject: [PATCH] f --- src/components.d.ts | 5 ----- src/composables/useApiFetch.ts | 5 +++-- src/composables/usePrivacyConsent.ts | 6 +++++- src/utils/request.ts | 5 +++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/components.d.ts b/src/components.d.ts index acdc6fe..dc5a1a1 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -20,10 +20,5 @@ declare module 'vue' { RealNameAuthDialog: typeof import('./components/RealNameAuthDialog.vue')['default'] SectionTitle: typeof import('./components/SectionTitle.vue')['default'] VipBanner: typeof import('./components/VipBanner.vue')['default'] - WdButton: typeof import('wot-design-uni/components/wd-button/wd-button.vue')['default'] - WdNavbar: typeof import('wot-design-uni/components/wd-navbar/wd-navbar.vue')['default'] - WdPopup: typeof import('wot-design-uni/components/wd-popup/wd-popup.vue')['default'] - WdTabbar: typeof import('wot-design-uni/components/wd-tabbar/wd-tabbar.vue')['default'] - WdTabbarItem: typeof import('wot-design-uni/components/wd-tabbar-item/wd-tabbar-item.vue')['default'] } } diff --git a/src/composables/useApiFetch.ts b/src/composables/useApiFetch.ts index 28544e3..d4bb250 100644 --- a/src/composables/useApiFetch.ts +++ b/src/composables/useApiFetch.ts @@ -4,7 +4,7 @@ */ import type { Ref } from 'vue' import { ref } from 'vue' -import { hasAcceptedPrivacyPolicy } from '@/composables/usePrivacyConsent' +import { hasAcceptedPrivacyPolicy, shouldSilencePrivacyBlockedRequest } from '@/composables/usePrivacyConsent' import { envConfig } from '@/constants/env' import { useAgentStore } from '@/stores/agentStore' import { useUserStore } from '@/stores/userStore' @@ -190,7 +190,8 @@ async function executeJson( hideLoading() const err = e instanceof Error ? e : new Error(String(e)) errorRef.value = err - uni.showToast({ title: '网络异常,请稍后再试', icon: 'none' }) + if (!shouldSilencePrivacyBlockedRequest()) + uni.showToast({ title: '网络异常,请稍后再试', icon: 'none' }) return { data: dataRef, error: errorRef } } } diff --git a/src/composables/usePrivacyConsent.ts b/src/composables/usePrivacyConsent.ts index 72c590a..4ebb601 100644 --- a/src/composables/usePrivacyConsent.ts +++ b/src/composables/usePrivacyConsent.ts @@ -22,6 +22,11 @@ export function hasAcceptedPrivacyPolicy() { return getPrivacyDecision() === 'accepted' } +/** 未同意隐私时的请求失败:业务上预期行为,不向用户弹 toast */ +export function shouldSilencePrivacyBlockedRequest() { + return !hasAcceptedPrivacyPolicy() +} + export function setPrivacyDecision(decision: PrivacyDecision) { uni.setStorageSync(PRIVACY_DECISION_KEY, decision) } @@ -113,7 +118,6 @@ export function installPrivacyRequestGuard() { invoke(args) { if (hasAcceptedPrivacyPolicy()) return args - uni.showToast({ title: '请先阅读并处理隐私政策', icon: 'none' }) return false }, }) diff --git a/src/utils/request.ts b/src/utils/request.ts index de7efdf..d9f0505 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,7 +1,7 @@ /** * 轻量请求(非链式)。与 `useApiFetch` 共用 env,行为尽量一致。 */ -import { hasAcceptedPrivacyPolicy } from '@/composables/usePrivacyConsent' +import { hasAcceptedPrivacyPolicy, shouldSilencePrivacyBlockedRequest } from '@/composables/usePrivacyConsent' import { envConfig } from '@/constants/env' import { clearAuthStorage, getToken } from '@/utils/storage' import { navigateLogin } from './navigate' @@ -63,7 +63,8 @@ export function request(options: RequestOptions) { resolve(data) }, fail: (err) => { - uni.showToast({ title: '网络异常,请稍后再试', icon: 'none' }) + if (!shouldSilencePrivacyBlockedRequest()) + uni.showToast({ title: '网络异常,请稍后再试', icon: 'none' }) reject(err) }, })