修复前端登录权限边界问题

This commit is contained in:
andy
2026-07-10 09:35:47 +08:00
parent e49b2ccc1d
commit 25efcccf72
11 changed files with 282 additions and 15 deletions

View File

@@ -133,11 +133,13 @@ import ReservationStatusBadge from '@/components/reservation/ReservationStatusBa
import ReservationTaskDetailPanel from '@/components/reservation/ReservationTaskDetailPanel.vue'
import ReservationTaskQueue from '@/components/reservation/ReservationTaskQueue.vue'
import { fetchReservationOrderDetail } from '@/services/reservationService'
import { useAuthStore } from '@/stores/authStore'
import type { ReservationOrderDetailResult } from '@/types/reservation'
import { formatReservationDateTime } from '@/utils/reservationFormat'
const route = useRoute()
const { t } = useI18n()
const authStore = useAuthStore()
const loading = ref(false)
const errorMessage = ref('')
const detail = ref<ReservationOrderDetailResult | null>(null)
@@ -154,6 +156,16 @@ watch(
{ immediate: true },
)
watch(
() => authStore.selectedHotelId,
(nextHotelId, previousHotelId) => {
if (!nextHotelId || nextHotelId === previousHotelId) {
return
}
void loadOrder(orderId.value)
},
)
async function loadOrder(nextOrderId: string): Promise<void> {
loading.value = true
errorMessage.value = ''

View File

@@ -199,10 +199,12 @@ import { useI18n } from 'vue-i18n'
import ReservationStatusBadge from '@/components/reservation/ReservationStatusBadge.vue'
import { fetchReservationOrders } from '@/services/reservationService'
import { useAuthStore } from '@/stores/authStore'
import type { ReservationOrderListFilters, ReservationOrderListItem, ReservationPageResult } from '@/types/reservation'
import { formatReservationDateTime } from '@/utils/reservationFormat'
const { t } = useI18n()
const authStore = useAuthStore()
const loading = ref(false)
const errorMessage = ref('')
const orders = ref<ReservationOrderListItem[]>([])
@@ -228,6 +230,16 @@ watch(filters, () => {
void loadOrders()
})
watch(
() => authStore.selectedHotelId,
(nextHotelId, previousHotelId) => {
if (!nextHotelId || nextHotelId === previousHotelId) {
return
}
reloadOrdersForHotelChange()
},
)
async function loadOrders(): Promise<void> {
const requestSequence = ++orderListRequestSequence
loading.value = true
@@ -266,6 +278,14 @@ function resetToFirstPage(): void {
filters.page_num = 1
}
function reloadOrdersForHotelChange(): void {
if (filters.page_num !== 1) {
filters.page_num = 1
return
}
void loadOrders()
}
function goToPage(page: number): void {
filters.page_num = Math.min(Math.max(page, 1), totalPages.value)
}

View File

@@ -258,6 +258,7 @@ import { useI18n } from 'vue-i18n'
import ReservationStatusBadge from '@/components/reservation/ReservationStatusBadge.vue'
import { fetchReservationTaskList } from '@/services/reservationService'
import { useAuthStore } from '@/stores/authStore'
import type { ReservationPageResult, ReservationTaskListFilters, ReservationTaskListItem } from '@/types/reservation'
import {
formatReservationReadonlyReason,
@@ -266,6 +267,7 @@ import {
} from '@/utils/reservationDisplay'
const { t } = useI18n()
const authStore = useAuthStore()
const loading = ref(false)
const errorMessage = ref('')
const tasks = ref<ReservationTaskListItem[]>([])
@@ -293,6 +295,16 @@ watch(filters, () => {
void loadTasks()
})
watch(
() => authStore.selectedHotelId,
(nextHotelId, previousHotelId) => {
if (!nextHotelId || nextHotelId === previousHotelId) {
return
}
reloadTasksForHotelChange()
},
)
async function loadTasks(): Promise<void> {
const requestSequence = ++taskListRequestSequence
loading.value = true
@@ -333,6 +345,14 @@ function resetToFirstPage(): void {
filters.page_num = 1
}
function reloadTasksForHotelChange(): void {
if (filters.page_num !== 1) {
filters.page_num = 1
return
}
void loadTasks()
}
function goToPage(page: number): void {
filters.page_num = Math.min(Math.max(page, 1), totalPages.value)
}