feat(frontend): add P2 quality gates

This commit is contained in:
yml2213
2026-05-15 17:35:50 +08:00
parent a65c0713fb
commit 787b01749c
62 changed files with 4907 additions and 1355 deletions
@@ -2,5 +2,8 @@ import { apiGet } from '@/lib/http'
import type { AdminAuditLogItem, AdminPagination } from '@/types/admin'
export function fetchAdminAuditLogs(params?: Record<string, unknown>) {
return apiGet<{ items: AdminAuditLogItem[]; pagination: AdminPagination }>('/api/v1/admin/audit-logs', params)
return apiGet<{ items: AdminAuditLogItem[]; pagination: AdminPagination }>(
'/api/v1/admin/audit-logs',
params,
)
}
+29 -7
View File
@@ -1,27 +1,49 @@
import { apiGet, apiPost } from '@/lib/http'
import type { AdminInventoryItemListItem, AdminInventorySkuSuggestion, AdminPagination } from '@/types/admin'
import type {
AdminInventoryItemListItem,
AdminInventorySkuSuggestion,
AdminPagination,
} from '@/types/admin'
export function fetchAdminInventoryItems(params?: Record<string, unknown>) {
return apiGet<{ items: AdminInventoryItemListItem[]; pagination: AdminPagination }>('/api/v1/admin/inventory', params)
return apiGet<{ items: AdminInventoryItemListItem[]; pagination: AdminPagination }>(
'/api/v1/admin/inventory',
params,
)
}
export function fetchAdminInventorySkuSuggestions(params?: Record<string, unknown>) {
return apiGet<{ items: AdminInventorySkuSuggestion[] }>('/api/v1/admin/inventory/sku-suggestions', params)
return apiGet<{ items: AdminInventorySkuSuggestion[] }>(
'/api/v1/admin/inventory/sku-suggestions',
params,
)
}
export function importAdminInventoryItems(payload: Record<string, unknown>) {
return apiPost<{ total: number; created: number; duplicated: number }>('/api/v1/admin/inventory/import', payload)
return apiPost<{ total: number; created: number; duplicated: number }>(
'/api/v1/admin/inventory/import',
payload,
)
}
export function createAdminInventoryItem(payload: Record<string, unknown>) {
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>('/api/v1/admin/inventory', payload)
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(
'/api/v1/admin/inventory',
payload,
)
}
export function releaseAdminInventoryItem(inventoryItemId: number | string) {
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(`/api/v1/admin/inventory/${inventoryItemId}/release`, {})
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(
`/api/v1/admin/inventory/${inventoryItemId}/release`,
{},
)
}
export function invalidateAdminInventoryItem(inventoryItemId: number | string, payload?: Record<string, unknown>) {
export function invalidateAdminInventoryItem(
inventoryItemId: number | string,
payload?: Record<string, unknown>,
) {
return apiPost<{ inventoryItem: AdminInventoryItemListItem | null }>(
`/api/v1/admin/inventory/${inventoryItemId}/invalidate`,
payload || {},
@@ -2,7 +2,10 @@ import { apiDelete, apiGet, apiPost } from '@/lib/http'
import type { AdminInventorySkuSuggestion, AdminManualRedeemDetail } from '@/types/admin'
export function fetchAdminManualRedeemSkuSuggestions(params?: Record<string, unknown>) {
return apiGet<{ items: AdminInventorySkuSuggestion[] }>('/api/v1/admin/manual-redeem/sku-suggestions', params)
return apiGet<{ items: AdminInventorySkuSuggestion[] }>(
'/api/v1/admin/manual-redeem/sku-suggestions',
params,
)
}
export function createAdminManualRedeemTask(payload: {
@@ -30,7 +33,10 @@ export function fetchAdminManualRedeemSessionSummary(taskId: number | string) {
}
export function refreshAdminManualRedeemSession(taskId: number | string) {
return apiPost<AdminManualRedeemDetail>(`/api/v1/admin/manual-redeem/${taskId}/session/refresh`, {})
return apiPost<AdminManualRedeemDetail>(
`/api/v1/admin/manual-redeem/${taskId}/session/refresh`,
{},
)
}
export function removeAdminManualRedeemSession(taskId: number | string) {
+4 -1
View File
@@ -2,7 +2,10 @@ import { apiGet } from '@/lib/http'
import type { AdminOrderDetail, AdminOrderListItem, AdminPagination } from '@/types/admin'
export function fetchAdminOrders(params?: Record<string, unknown>) {
return apiGet<{ items: AdminOrderListItem[]; pagination: AdminPagination }>('/api/v1/admin/orders', params)
return apiGet<{ items: AdminOrderListItem[]; pagination: AdminPagination }>(
'/api/v1/admin/orders',
params,
)
}
export function fetchAdminOrderDetail(orderId: number | string) {
@@ -59,12 +59,11 @@ export function saveAdminNotificationConfig(payload: AdminNotificationConfig) {
}>('/api/v1/admin/platform-config/notifications', payload as unknown as Record<string, unknown>)
}
export function testAdminNotification(payload: {
title?: string
body?: string
url?: string
}) {
return apiPost<AdminNotificationTestResult>('/api/v1/admin/platform-config/notifications/test', payload)
export function testAdminNotification(payload: { title?: string; body?: string; url?: string }) {
return apiPost<AdminNotificationTestResult>(
'/api/v1/admin/platform-config/notifications/test',
payload,
)
}
export function fetchAdminScheduledJobsConfig() {
@@ -85,11 +84,13 @@ export function runAdminScheduledJob(jobId: string) {
}>(`/api/v1/admin/platform-config/scheduled-jobs/${jobId}/run`, {})
}
export function fetchAdminNinetyoneOrders(params: {
page?: number
pageSize?: number
status?: string
} = {}) {
export function fetchAdminNinetyoneOrders(
params: {
page?: number
pageSize?: number
status?: string
} = {},
) {
const searchParams = new URLSearchParams()
if (params.page) {
searchParams.set('page', String(params.page))
@@ -131,7 +132,10 @@ export function saveAdminKuaishouEticketSourceConfig(payload: AdminKuaishouEtick
return apiPost<{
filePath: string
source: AdminKuaishouEticketSourceConfig
}>('/api/v1/admin/platform-config/kuaishou-eticket-source', payload as unknown as Record<string, unknown>)
}>(
'/api/v1/admin/platform-config/kuaishou-eticket-source',
payload as unknown as Record<string, unknown>,
)
}
export function queryAdminKuaishouEticketDetail(payload: {
@@ -140,7 +144,10 @@ export function queryAdminKuaishouEticketDetail(payload: {
cookie?: string
eTicketId: string
}) {
return apiPost<AdminKuaishouEticketDetailResult>('/api/v1/admin/platform-config/kuaishou-eticket/query-detail', payload)
return apiPost<AdminKuaishouEticketDetailResult>(
'/api/v1/admin/platform-config/kuaishou-eticket/query-detail',
payload,
)
}
export function queryAdminKuaishouEticketShopInfo(payload: {
@@ -148,7 +155,10 @@ export function queryAdminKuaishouEticketShopInfo(payload: {
shopId?: string
cookie?: string
}) {
return apiPost<AdminKuaishouEticketShopInfoResult>('/api/v1/admin/platform-config/kuaishou-eticket/query-shop-info', payload)
return apiPost<AdminKuaishouEticketShopInfoResult>(
'/api/v1/admin/platform-config/kuaishou-eticket/query-shop-info',
payload,
)
}
export function consumeAdminKuaishouEticket(payload: {
@@ -161,7 +171,10 @@ export function consumeAdminKuaishouEticket(payload: {
num?: number
storeId?: string
}) {
return apiPost<AdminKuaishouEticketConsumeResult>('/api/v1/admin/platform-config/kuaishou-eticket/consume', payload)
return apiPost<AdminKuaishouEticketConsumeResult>(
'/api/v1/admin/platform-config/kuaishou-eticket/consume',
payload,
)
}
export function fetchAdminCloudtentaclesSourceConfig() {
@@ -179,7 +192,10 @@ export function saveAdminCloudtentaclesSourceConfig(payload: AdminCloudtentacles
sessionFilePath: string
source: AdminCloudtentaclesSourceConfig
session: AdminCloudtentaclesPersistedSession
}>('/api/v1/admin/platform-config/cloudtentacles-source', payload as unknown as Record<string, unknown>)
}>(
'/api/v1/admin/platform-config/cloudtentacles-source',
payload as unknown as Record<string, unknown>,
)
}
export function sendAdminCloudtentaclesSmsCode(payload: {
@@ -189,7 +205,10 @@ export function sendAdminCloudtentaclesSmsCode(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<AdminCloudtentaclesSendSmsResult>('/api/v1/admin/platform-config/cloudtentacles/send-sms-code', payload)
return apiPost<AdminCloudtentaclesSendSmsResult>(
'/api/v1/admin/platform-config/cloudtentacles/send-sms-code',
payload,
)
}
export function testAdminCloudtentaclesLogin(payload: {
@@ -201,7 +220,10 @@ export function testAdminCloudtentaclesLogin(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<AdminCloudtentaclesLoginTestResult>('/api/v1/admin/platform-config/cloudtentacles/test-login', payload)
return apiPost<AdminCloudtentaclesLoginTestResult>(
'/api/v1/admin/platform-config/cloudtentacles/test-login',
payload,
)
}
export function validateAdminCloudtentaclesSession(payload: {
@@ -210,7 +232,10 @@ export function validateAdminCloudtentaclesSession(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<AdminCloudtentaclesValidateSessionResult>('/api/v1/admin/platform-config/cloudtentacles/validate-session', payload)
return apiPost<AdminCloudtentaclesValidateSessionResult>(
'/api/v1/admin/platform-config/cloudtentacles/validate-session',
payload,
)
}
export function fetchAdminCloudtentaclesAsset(payload: {
@@ -219,7 +244,10 @@ export function fetchAdminCloudtentaclesAsset(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/asset', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/asset',
payload,
)
}
export function fetchAdminCloudtentaclesCategories(payload: {
@@ -228,7 +256,10 @@ export function fetchAdminCloudtentaclesCategories(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/categories', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/categories',
payload,
)
}
export function fetchAdminCloudtentaclesSkuList(payload: {
@@ -237,7 +268,10 @@ export function fetchAdminCloudtentaclesSkuList(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<AdminCloudtentaclesSkuListResult>('/api/v1/admin/platform-config/cloudtentacles/sku/list', payload)
return apiPost<AdminCloudtentaclesSkuListResult>(
'/api/v1/admin/platform-config/cloudtentacles/sku/list',
payload,
)
}
export function buyAdminCloudtentaclesSku(payload: {
@@ -248,7 +282,10 @@ export function buyAdminCloudtentaclesSku(payload: {
id?: number
count?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/sku/buy', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/sku/buy',
payload,
)
}
export function useAdminCloudtentaclesSku(payload: {
@@ -260,7 +297,10 @@ export function useAdminCloudtentaclesSku(payload: {
virtualNumberId?: number
phone?: string
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/sku/use', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/sku/use',
payload,
)
}
export function fetchAdminCloudtentaclesKnapsack(payload: {
@@ -269,7 +309,10 @@ export function fetchAdminCloudtentaclesKnapsack(payload: {
deviceId?: string
deviceType?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/knapsack', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/knapsack',
payload,
)
}
export function fetchAdminCloudtentaclesVnList(payload: {
@@ -279,7 +322,10 @@ export function fetchAdminCloudtentaclesVnList(payload: {
deviceType?: number
key?: string
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/list', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/list',
payload,
)
}
export function appointAdminCloudtentaclesVn(payload: {
@@ -289,7 +335,10 @@ export function appointAdminCloudtentaclesVn(payload: {
deviceType?: number
key?: string
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/appoint', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/appoint',
payload,
)
}
export function generateAdminCloudtentaclesVnLoginCode(payload: {
@@ -300,7 +349,10 @@ export function generateAdminCloudtentaclesVnLoginCode(payload: {
key?: string
id?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/generate-login-code', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/generate-login-code',
payload,
)
}
export function fetchAdminCloudtentaclesVnCode(payload: {
@@ -311,7 +363,10 @@ export function fetchAdminCloudtentaclesVnCode(payload: {
key?: string
phone?: string
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/fetch-code', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/fetch-code',
payload,
)
}
export function verifyAdminCloudtentaclesVnCode(payload: {
@@ -323,7 +378,10 @@ export function verifyAdminCloudtentaclesVnCode(payload: {
id?: number
code?: string
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/verify-code', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/verify-code',
payload,
)
}
export function fetchAdminCloudtentaclesBindUrl(payload: {
@@ -334,7 +392,10 @@ export function fetchAdminCloudtentaclesBindUrl(payload: {
key?: string
id?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/bind-url', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/bind-url',
payload,
)
}
export function backAdminCloudtentaclesVn(payload: {
@@ -345,7 +406,10 @@ export function backAdminCloudtentaclesVn(payload: {
key?: string
id?: number
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/vn/back', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/vn/back',
payload,
)
}
export function runAdminCloudtentaclesFullFlow(payload: {
@@ -357,7 +421,10 @@ export function runAdminCloudtentaclesFullFlow(payload: {
skuCount?: number
vnKey?: string
}) {
return apiPost<Record<string, unknown>>('/api/v1/admin/platform-config/cloudtentacles/debug/full-flow', payload)
return apiPost<Record<string, unknown>>(
'/api/v1/admin/platform-config/cloudtentacles/debug/full-flow',
payload,
)
}
export function fetchAdminFulfillmentBindingConfigs() {
@@ -374,10 +441,15 @@ export function lookupAdminFulfillmentBindingOrder(payload: {
shopId: string
platformOrderId: string
}) {
return apiPost<AdminFulfillmentLookupResult>('/api/v1/admin/platform-config/fulfillment-bindings/lookup-order', payload)
return apiPost<AdminFulfillmentLookupResult>(
'/api/v1/admin/platform-config/fulfillment-bindings/lookup-order',
payload,
)
}
export function saveAdminFulfillmentBindingConfigs(payload: { bindings: Array<Record<string, unknown>> }) {
export function saveAdminFulfillmentBindingConfigs(payload: {
bindings: Array<Record<string, unknown>>
}) {
return apiPost<{
filePath: string
bindings: AdminFulfillmentBindingConfigItem[]
@@ -391,9 +463,14 @@ export function fetchAdminKuaishouCloudFulfillmentConfig() {
}>('/api/v1/admin/platform-config/kuaishou-cloud-fulfillment')
}
export function saveAdminKuaishouCloudFulfillmentConfig(payload: AdminKuaishouCloudFulfillmentConfig) {
export function saveAdminKuaishouCloudFulfillmentConfig(
payload: AdminKuaishouCloudFulfillmentConfig,
) {
return apiPost<{
filePath: string
source: AdminKuaishouCloudFulfillmentConfig
}>('/api/v1/admin/platform-config/kuaishou-cloud-fulfillment', payload as unknown as Record<string, unknown>)
}>(
'/api/v1/admin/platform-config/kuaishou-cloud-fulfillment',
payload as unknown as Record<string, unknown>,
)
}
+38 -9
View File
@@ -1,8 +1,16 @@
import { apiGet, apiGetBlob, apiPost } from '@/lib/http'
import type { AdminPagination, AdminTaskActionResponse, AdminTaskDetail, AdminTaskListItem } from '@/types/admin'
import type {
AdminPagination,
AdminTaskActionResponse,
AdminTaskDetail,
AdminTaskListItem,
} from '@/types/admin'
export function fetchAdminTasks(params?: Record<string, unknown>) {
return apiGet<{ items: AdminTaskListItem[]; pagination: AdminPagination }>('/api/v1/admin/tasks', params)
return apiGet<{ items: AdminTaskListItem[]; pagination: AdminPagination }>(
'/api/v1/admin/tasks',
params,
)
}
export function fetchAdminTaskDetail(taskId: number | string) {
@@ -21,8 +29,14 @@ export function releaseAdminTaskInventory(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/release-inventory`, {})
}
export function releaseAdminTaskInventoryBinding(taskId: number | string, bindingId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/inventory-bindings/${bindingId}/release`, {})
export function releaseAdminTaskInventoryBinding(
taskId: number | string,
bindingId: number | string,
) {
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/inventory-bindings/${bindingId}/release`,
{},
)
}
export function regenerateAdminTaskClaimLink(taskId: number | string) {
@@ -54,15 +68,24 @@ export function completeAdminTaskManualDispatch(
deliveredCredential?: string
},
) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/complete-manual-dispatch`, payload)
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/complete-manual-dispatch`,
payload,
)
}
export function prepareAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/prepare`, {})
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/prepare`,
{},
)
}
export function refreshAdminTaskKuaishouCloudRoleInfo(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/refresh-role-info`, {})
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/refresh-role-info`,
{},
)
}
export function dispatchAdminTaskKuaishouCloudFulfillment(
@@ -71,9 +94,15 @@ export function dispatchAdminTaskKuaishouCloudFulfillment(
ticketCode?: string
} = {},
) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/dispatch`, payload)
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/dispatch`,
payload,
)
}
export function returnNumberAdminTaskKuaishouCloudFulfillment(taskId: number | string) {
return apiPost<AdminTaskActionResponse>(`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/return-number`, {})
return apiPost<AdminTaskActionResponse>(
`/api/v1/admin/tasks/${taskId}/kuaishou-cloud/return-number`,
{},
)
}
+22 -5
View File
@@ -2,10 +2,18 @@ import { apiGet, apiPost } from '@/lib/http'
import type { AdminPagination, AdminUserListItem } from '@/types/admin'
export function fetchAdminUsers(params?: Record<string, unknown>) {
return apiGet<{ items: AdminUserListItem[]; pagination: AdminPagination }>('/api/v1/admin/users', params)
return apiGet<{ items: AdminUserListItem[]; pagination: AdminPagination }>(
'/api/v1/admin/users',
params,
)
}
export function createAdminUser(payload: { username: string; password: string; role: string; status?: string }) {
export function createAdminUser(payload: {
username: string
password: string
role: string
status?: string
}) {
return apiPost<{ user: AdminUserListItem }>('/api/v1/admin/users', payload)
}
@@ -17,10 +25,19 @@ export function updateAdminUserStatus(userId: number | string, payload: { status
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/status`, payload)
}
export function updateAdminUserInventoryGroups(userId: number | string, payload: { inventoryGroupCodes: string[] }) {
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/inventory-groups`, payload)
export function updateAdminUserInventoryGroups(
userId: number | string,
payload: { inventoryGroupCodes: string[] },
) {
return apiPost<{ user: AdminUserListItem }>(
`/api/v1/admin/users/${userId}/inventory-groups`,
payload,
)
}
export function resetAdminUserPassword(userId: number | string, payload: { password: string }) {
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/reset-password`, payload)
return apiPost<{ user: AdminUserListItem }>(
`/api/v1/admin/users/${userId}/reset-password`,
payload,
)
}
@@ -1,5 +1,10 @@
import { apiGet, apiPost } from '@/lib/http'
import type { AdminPagination, AdminWebhookEventDetail, AdminWebhookEventListItem, AdminWebhookReplayResponse } from '@/types/admin'
import type {
AdminPagination,
AdminWebhookEventDetail,
AdminWebhookEventListItem,
AdminWebhookReplayResponse,
} from '@/types/admin'
export function fetchAdminWebhookEvents(params?: Record<string, unknown>) {
return apiGet<{ items: AdminWebhookEventListItem[]; pagination: AdminPagination }>(