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()