fix: 消除welcome路由死循环,商家订单进页刷新权限
This commit is contained in:
@@ -65,7 +65,7 @@ import { useRouter } from 'vue-router'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { User, Lock, Key } from '@element-plus/icons-vue'
|
||||
import axios from 'axios' // 直接使用 axios,不经过封装的 request
|
||||
import { JITUAN_API, getDefaultLandingPath, setAdminClubContext, setMenuAccess, resetAdminClubContextOnLogin } from '@/utils/club-context'
|
||||
import { JITUAN_API, getDefaultLandingPath, setAdminClubContext, applyMenuAccessPayload, resetAdminClubContextOnLogin } from '@/utils/club-context'
|
||||
|
||||
const router = useRouter()
|
||||
const loading = ref(false)
|
||||
@@ -117,12 +117,13 @@ const handleLogin = async () => {
|
||||
if (res.data.club_context) {
|
||||
const ctx = { ...res.data.club_context }
|
||||
if (res.data.menu_access) {
|
||||
setMenuAccess(res.data.menu_access)
|
||||
applyMenuAccessPayload(res.data.menu_access)
|
||||
sessionStorage.setItem('kefu_menu_session_v', '24')
|
||||
ctx.can_switch_club = res.data.menu_access.can_switch_club
|
||||
}
|
||||
setAdminClubContext(ctx)
|
||||
} else if (res.data.menu_access) {
|
||||
setMenuAccess(res.data.menu_access)
|
||||
applyMenuAccessPayload(res.data.menu_access)
|
||||
}
|
||||
const ma = res.data.menu_access || {}
|
||||
const landing = getDefaultLandingPath(ma)
|
||||
|
||||
@@ -76,9 +76,8 @@ const logout = () => {
|
||||
router.replace('/login')
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const landing = getDefaultLandingPath()
|
||||
if (landing) router.replace(landing)
|
||||
onMounted(async () => {
|
||||
// 不再自动跳转,避免与路由守卫形成 welcome ↔ 业务页 死循环
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ import { ElMessage } from 'element-plus'
|
||||
import { Refresh } from '@element-plus/icons-vue'
|
||||
import request from '@/utils/request'
|
||||
import ClubScopeHint from '@/components/ClubScopeHint.vue'
|
||||
import { getMenuAccess, hasMerchantOrderPerm } from '@/utils/club-context'
|
||||
import { getMenuAccess, hasMerchantOrderPerm, ensureMenuAccess, applyMenuAccessPayload, JITUAN_API } from '@/utils/club-context'
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
@@ -363,7 +363,11 @@ const getStatusType = (code) => {
|
||||
|
||||
watch(() => route.query, () => { restoreFromQuery(); fetchOrders() }, { deep: true })
|
||||
|
||||
onMounted(() => {
|
||||
onMounted(async () => {
|
||||
await ensureMenuAccess(async () => {
|
||||
const res = await request.get(JITUAN_API.menuAccess, { skipErrorToast: true })
|
||||
return res.code === 0 ? res.data : null
|
||||
}, { force: true })
|
||||
hasPermission.value = hasMerchantOrderPerm(getMenuAccess())
|
||||
if (!hasPermission.value) return
|
||||
restoreFromQuery()
|
||||
|
||||
Reference in New Issue
Block a user