5af4e1c23e
- query-asin-filter: toQueryAsinQuery 输出 page_size/group_id/shop_name(35bed42b 后端已改显式 snake, camel 参数被静默忽略导致分组/店铺名筛选无作用、pageSize 固定回落 15) - 新增 query-asin-export: 按当前筛选构建导出 URL,页面「导出 XLSX」不再恒为全量 - query-asin-import-api: 导入兜底分组 groupId→group_id(后端 importExcel 已改名,此前同样被丢弃) - query-asin-delete-import-api: 保持 groupId 并加注释(后端仍隐式 camel,统一需两端同步部署) - task-71 测试断言更新为 snake 契约(含 camel 不下发反断言)+ 新增导出 URL 用例 已上线 admin-vue-20260910-145200,线上 chunk 验证含 snake 参数;task-71 10/10 通过,vue-tsc 通过
28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
/** 查询 ASIN 导入添加适配(任务 72):multipart POST /import(file[+groupId]) → importId,及进度轮询。 */
|
||
import { http } from '@/api/http'
|
||
import {
|
||
parseQueryAsinImportProgress,
|
||
parseQueryAsinImportStart,
|
||
type QueryAsinImportProgress,
|
||
} from './query-asin-import-model'
|
||
|
||
export const QUERY_ASIN_IMPORT_ENDPOINT = '/api/admin/query-asins/import'
|
||
|
||
/** 启动导入添加;groupId 为 Excel 未提供分组时的兜底,可选(>=1 才下发)。
|
||
* 参数名必须用 group_id:Java importExcel @RequestParam(name="group_id"),发 groupId 会被丢弃致兜底分组失效。 */
|
||
export async function startQueryAsinImport(file: File, groupId?: number): Promise<string> {
|
||
const form = new FormData()
|
||
form.append('file', file, file.name)
|
||
if (typeof groupId === 'number' && Number.isFinite(groupId) && groupId >= 1) {
|
||
form.append('group_id', String(Math.floor(groupId)))
|
||
}
|
||
const { data } = await http.post<unknown>(QUERY_ASIN_IMPORT_ENDPOINT, form)
|
||
return parseQueryAsinImportStart(data)
|
||
}
|
||
|
||
/** 查询导入添加进度:GET /import/{importId}。 */
|
||
export async function fetchQueryAsinImportProgress(importId: string): Promise<QueryAsinImportProgress> {
|
||
const { data } = await http.get<unknown>(`${QUERY_ASIN_IMPORT_ENDPOINT}/${importId}`)
|
||
return parseQueryAsinImportProgress(data)
|
||
}
|