task-266/267(admin.html观感对齐): 店铺数据任务改每店铺卡片(单文件下载/删除/批量/合计)+筛选权限对齐
This commit is contained in:
@@ -2,12 +2,13 @@
|
||||
import { http } from '@/api/http'
|
||||
import { parseShopDataTaskPage, type ShopDataTaskPageResult } from './shop-data-model.ts'
|
||||
import { toShopDataQuery, type ShopDataFilter } from './shop-data-filter.ts'
|
||||
import { toShopDataZipRequest } from './shop-data-download.ts'
|
||||
import { shopDataFilenameFromDisposition, toShopDataZipRequest } from './shop-data-download.ts'
|
||||
import { downloadZipHeaderCounts } from './image-video-download.ts'
|
||||
import { parseTaskPermissionPayload, toPermissionUserIdsPayload, type TaskPermissionItem } from './task-permission.ts'
|
||||
|
||||
export const SHOP_DATA_CRAWL_TASKS_ENDPOINT = '/api/admin/shop-data-crawl-tasks'
|
||||
export const SHOP_DATA_TASK_PERMISSIONS_ENDPOINT = '/api/admin/shop-data-crawl-task-permissions'
|
||||
export const SHOP_DATA_SINGLE_ENDPOINT = '/api/admin/shop-data-crawl'
|
||||
|
||||
export async function fetchShopDataTaskList(
|
||||
filter: ShopDataFilter,
|
||||
@@ -35,6 +36,25 @@ export async function requestShopDataZipDownload(resultIds: readonly (number | s
|
||||
return { blob: data, fileCount: counts.fileCount, errorCount: counts.errorCount }
|
||||
}
|
||||
|
||||
export interface ShopDataResultDownload {
|
||||
blob: Blob
|
||||
filename: string
|
||||
}
|
||||
|
||||
/** 下载单个结果文件(服务端原文件名):GET /api/admin/shop-data-crawl/results/{resultId}/download。 */
|
||||
export async function fetchShopDataResultDownload(resultId: number | string): Promise<ShopDataResultDownload> {
|
||||
const { data, headers } = await http.get<Blob>(`${SHOP_DATA_SINGLE_ENDPOINT}/results/${resultId}/download`, {
|
||||
responseType: 'blob',
|
||||
})
|
||||
const disposition = (headers as Record<string, string> | undefined)?.['content-disposition']
|
||||
return { blob: data, filename: shopDataFilenameFromDisposition(disposition, `shop-data-task-${resultId}.xlsx`) }
|
||||
}
|
||||
|
||||
/** 删除单条结果历史(仅终态):DELETE /api/admin/shop-data-crawl/history/{resultId}。 */
|
||||
export async function deleteShopDataResultHistory(resultId: number | string): Promise<void> {
|
||||
await http.delete<unknown>(`${SHOP_DATA_SINGLE_ENDPOINT}/history/${resultId}`)
|
||||
}
|
||||
|
||||
/** 加载店铺数据任务数据范围授权用户:GET /api/admin/shop-data-crawl-task-permissions。 */
|
||||
export async function fetchShopDataTaskPermissionUsers(): Promise<TaskPermissionItem[]> {
|
||||
const { data } = await http.get<unknown>(SHOP_DATA_TASK_PERMISSIONS_ENDPOINT)
|
||||
|
||||
Reference in New Issue
Block a user