From f7ec5e63e085a5c20e7ea70cbf73f393521bf731 Mon Sep 17 00:00:00 2001 From: XingQue Date: Mon, 6 Jul 2026 18:36:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=95=86=E5=AE=B6=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=A1=B5=E6=9D=83=E9=99=90=E6=A0=A1=E9=AA=8C=E4=B8=8E=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/utils/club-context.js | 2 +- src/views/order/MerchantOrder.vue | 35 ++++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/utils/club-context.js b/src/utils/club-context.js index 9408ad5..c07342f 100644 --- a/src/utils/club-context.js +++ b/src/utils/club-context.js @@ -3,7 +3,7 @@ const CLUB_SCOPE_KEY = 'admin_club_scope'; const CLUB_CONTEXT_KEY = 'admin_club_context'; const MENU_ACCESS_KEY = 'kefu_menu_access'; const MENU_SESSION_KEY = 'kefu_menu_session_v'; -const MENU_SESSION_VERSION = '14'; +const MENU_SESSION_VERSION = '15'; const DEFAULT_CLUB_ID = 'xq'; let menuAccessInflight = null; diff --git a/src/views/order/MerchantOrder.vue b/src/views/order/MerchantOrder.vue index 6400185..3b98267 100644 --- a/src/views/order/MerchantOrder.vue +++ b/src/views/order/MerchantOrder.vue @@ -143,11 +143,18 @@ import { ElMessage } from 'element-plus' import { Refresh } from '@element-plus/icons-vue' import request from '@/utils/request' import ClubScopeHint from '@/components/ClubScopeHint.vue' +import { + canShowMenuPage, + clearMenuAccess, + ensureMenuAccess, + JITUAN_API, +} from '@/utils/club-context' const route = useRoute() const router = useRouter() const loading = ref(false) const hasPermission = ref(true) +const menuRetried = ref(false) const PAGE_SIZE = 20 const pageNum = ref(1) @@ -216,13 +223,18 @@ const fetchOrderTypes = async () => { } } -// 商家订单列表接口(改动的接口) +// 商家订单列表接口 const fetchOrders = async () => { + if (!canShowMenuPage('order.merchant')) { + hasPermission.value = false + return + } loading.value = true try { - const username = localStorage.getItem('username') + const phone = localStorage.getItem('username') const params = { - username, + phone, + username: phone, page: pageNum.value, pageSize: pageSize.value, zhuangtai: currentStatus.value === 'all' ? undefined : currentStatus.value, @@ -240,7 +252,7 @@ const fetchOrders = async () => { } Object.keys(params).forEach(key => params[key] === undefined && delete params[key]) - const res = await request.post('/yonghu/kfhqsjddlb', params) + const res = await request.post('/yonghu/kfhqsjddlb', params, { skipErrorToast: true }) if (res.code === 0) { const data = res.data orderList.value = data.list || [] @@ -258,8 +270,19 @@ const fetchOrders = async () => { ] } } else if (res.code === 403) { + if (!menuRetried.value) { + menuRetried.value = true + clearMenuAccess() + await ensureMenuAccess(async () => { + const r = await request.get(JITUAN_API.menuAccess) + return r.code === 0 ? r.data : null + }) + if (canShowMenuPage('order.merchant')) { + await fetchOrders() + return + } + } hasPermission.value = false - ElMessage.error(res.msg || '您无权访问此页面') } else { ElMessage.error(res.msg || '获取订单列表失败') } @@ -362,6 +385,8 @@ const getStatusType = (code) => { watch(() => route.query, () => { restoreFromQuery(); fetchOrders() }, { deep: true }) onMounted(() => { + hasPermission.value = canShowMenuPage('order.merchant') + if (!hasPermission.value) return restoreFromQuery() fetchOrderTypes() fetchOrders()