/** * 价格库Excel相关API */ import request from "@/api/request"; /** * Excel导入请求参数 */ export interface ImportExcelParams { file: File; batchName?: string; } /** * 搜索请求参数 */ export interface SearchExcelParams { keyword: string; current?: number; size?: number; batchId?: string; } /** * 批次信息 */ export interface BatchInfo { batchId: string; batchName: string; fileName: string; totalRows: number; uploadTime: string; } /** * Excel行数据 */ export interface ExcelRowData { id: number; fileName: string; filePath: string; sheetName: string; rowIndex: number; rowData: string; batchId: string; batchName: string; uploadTime: string; } /** * 搜索联想结果项 */ export interface SearchSuggestion { batchId: string; batchName: string; fileName: string; matchType: 'name' | 'data'; matchContent: string; rowData?: ExcelRowData; } /** * Excel多Sheet导入 * @param file 上传的文件 * @param batchName 批次名称(可选) */ export function importExcel(file: File, batchName?: string) { const formData = new FormData(); formData.append('file', file); if (batchName) { formData.append('batchName', batchName); } return request.post({ url: '/price/excel/import', body: formData, headers: { 'Content-Type': 'multipart/form-data' } }); } /** * 搜索Excel数据(用于联想下拉) * @param keyword 搜索关键字 * @param size 返回数量(默认10条) */ export function searchExcelData(keyword: string, size: number = 10) { return request.post({ url: '/price/excel/search', body: { keyword, size, current: 1 } }); } /** * 分页搜索Excel数据 * @param params 搜索参数 */ export function searchExcelDataPage(params: SearchExcelParams) { return request.post({ url: '/price/excel/search', body: { keyword: params.keyword, current: params.current || 1, size: params.size || 10, batchId: params.batchId } }); } /** * 根据批次ID查询所有数据 * @param batchId 批次ID */ export function getBatchData(batchId: string) { return request.get({ url: `/price/excel/batch/${batchId}` }); } /** * 删除批次数据 * @param batchId 批次ID */ export function deleteBatch(batchId: string) { return request.del({ url: `/price/excel/batch/${batchId}` }); } /** * 分页获取批次列表 * @param keyword 搜索关键字(可选) * @param current 当前页 * @param size 每页大小 */ export function getBatchListPage(keyword?: string, current?: number, size?: number) { return request.get({ url: '/price/excel/batch/list', params: { keyword, current, size } }); } /** * 删除批次数据 * @param batchName 批次 */ export function deleteBatchData(batchName: string) { return request.post({ url: '/price/excel/del', body: { batchName } }); }