update order page

This commit is contained in:
2026-04-03 10:16:43 +08:00
parent c0f3a0d794
commit 51292b618a
2 changed files with 55 additions and 2 deletions
@@ -19,6 +19,12 @@ Object.defineProperty(window, 'matchMedia', {
}), }),
}) })
let mockRouteQuery: Record<string, string> = {}
vi.mock('vue-router', () => ({
useRoute: () => ({ query: mockRouteQuery }),
useRouter: () => ({ push: vi.fn() }),
}))
vi.mock('@/utils/request', () => ({ vi.mock('@/utils/request', () => ({
api: { api: {
get: vi.fn(), get: vi.fn(),
@@ -313,6 +319,7 @@ describe('OrdersPage', () => {
setActivePinia(createPinia()) setActivePinia(createPinia())
vi.restoreAllMocks() vi.restoreAllMocks()
document.body.innerHTML = '' document.body.innerHTML = ''
mockRouteQuery = {}
}) })
afterEach(() => { afterEach(() => {
@@ -665,4 +672,37 @@ describe('OrdersPage', () => {
expect(writeTextMock).toHaveBeenCalledWith('ORD-20260101-001') expect(writeTextMock).toHaveBeenCalledWith('ORD-20260101-001')
}) })
// ─── P18.2 URL 参数自动填充测试 ───────────────────────────
it('fills filter and fetches when auto_submit=1 with platform_order_id', async () => {
mockRouteQuery = { platform_order_id: 'ORD-FROM-URL', auto_submit: '1' }
const { api } = await mountPage()
const store = useOrderStore()
expect(store.filters.platform_order_id).toBe('ORD-FROM-URL')
expect(api.get).toHaveBeenCalledWith(
'/api/v1/orders',
expect.objectContaining({
platform_order_id: 'ORD-FROM-URL',
page: 1,
}),
)
})
it('does not fill filter when platform_order_id present but no auto_submit', async () => {
mockRouteQuery = { platform_order_id: 'ORD-FROM-URL' }
await mountPage()
const store = useOrderStore()
expect(store.filters.platform_order_id).toBe('')
})
it('does not fill filter when only auto_submit is present without platform_order_id', async () => {
mockRouteQuery = { auto_submit: '1' }
await mountPage()
const store = useOrderStore()
expect(store.filters.platform_order_id).toBe('')
})
}) })
+14 -1
View File
@@ -91,8 +91,21 @@ const paidDateRange = computed({
}, },
}) })
onMounted(() => { const route = useRoute()
onMounted(async () => {
const hasAutoSubmit = route.query.auto_submit === '1'
if (hasAutoSubmit) {
await store.loadLookups()
if (route.query.platform_order_id) {
store.filters.platform_order_id = route.query.platform_order_id as string
}
store.pagination.page = 1
} else {
store.loadLookups() store.loadLookups()
}
store.fetchOrders() store.fetchOrders()
}) })