import request from '@/utils/request' /** * 获取型号列表 * @param {Object} params - 查询参数 * @param {number} params.skip - 跳过记录数 * @param {number} params.limit - 返回记录数 * @param {string} params.brand_name - 品牌名称(模糊查询) * @param {string} params.name - 型号名称(模糊查询) * @param {string} [params.sort_by] - 排序字段:id | create_at,默认 id * @param {string} [params.sort_order] - asc | desc,默认 desc */ export function getModels(params) { return request({ url: '/models/', method: 'get', params }) } /** * 获取单个型号 * @param {number} id - 型号 ID */ export function getModel(id) { return request({ url: `/models/${id}`, method: 'get' }) } /** * 创建型号 * @param {Object} data - 型号数据或 FormData * @param {Object} config - 额外配置 * @param {boolean} config.isFormData - 是否为 FormData 上传 */ export function createModel(data, config = {}) { return request({ url: '/models/', method: 'post', data, headers: config.isFormData ? { 'Content-Type': 'multipart/form-data' } : {} }) } /** * 更新型号 * @param {number} id - 型号 ID * @param {Object} data - 型号数据或 FormData(与创建一致,可为 multipart) * @param {Object} config - 额外配置 * @param {boolean} config.isFormData - 是否为 FormData 上传 */ export function updateModel(id, data, config = {}) { return request({ url: `/models/${id}`, method: 'put', data, headers: config.isFormData ? { 'Content-Type': 'multipart/form-data' } : {} }) } /** * 获取型号 EQ 缓存(Redis) * @param {number} id - 型号 ID */ export function getModelEqCache(id) { return request({ url: `/models/${id}/eq-cache`, method: 'get', timeout: 30000 }) } /** * 获取型号 EQ 缓存单个 hash field 的 value * @param {number} id - 型号 ID * @param {string} fieldKey - hash field 名称 */ export function getModelEqCacheField(id, fieldKey) { return request({ url: `/models/${id}/eq-cache/field`, method: 'get', params: { key: fieldKey }, timeout: 30000 }) } /** * 获取型号在 Meilisearch 中的推送数据 * @param {number} id - 型号 ID */ export function getModelMeilisearch(id) { return request({ url: `/models/${id}/meilisearch`, method: 'get', timeout: 30000 }) } /** * 获取型号在 S3 上的频响 CSV 内容(仅 Eafonyoung) * @param {number} id - 型号 ID */ export function getModelMeasurement(id) { return request({ url: `/models/${id}/measurement`, method: 'get', timeout: 30000 }) } /** * 删除型号 * @param {number} id - 型号 ID */ export function deleteModel(id) { return request({ url: `/models/${id}`, method: 'delete' }) } /** * 推送前校验曲线数据 * @param {Array} modelIds - 型号 ID 列表 */ export function validatePushToMeilisearch(modelIds) { return request({ url: '/models/push-to-search/validate', method: 'post', data: { model_ids: modelIds }, timeout: 120000, skipErrorToast: true }) } /** * 推送到 Meilisearch(需先通过校验) * @param {Array} modelIds - 型号 ID 列表 */ export function pushToMeilisearch(modelIds) { return request({ url: '/models/push-to-search', method: 'post', data: { model_ids: modelIds }, timeout: 60000, skipErrorToast: true }) }