Files
dashboard/frontend/src/api/model.js
T
2026-07-01 16:53:38 +08:00

165 lines
3.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<number>} 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<number>} modelIds - 型号 ID 列表
*/
export function pushToMeilisearch(modelIds) {
return request({
url: '/models/push-to-search',
method: 'post',
data: { model_ids: modelIds },
timeout: 60000,
skipErrorToast: true
})
}
/**
* 从 squig.link share URL 抓取频响数据
* @param {string} shareUrl - squig.link 分享链接
* @param {string} [selectedFile] - 用户从候选列表选择的文件名
*/
export function fetchFromSquigLink(shareUrl, selectedFile) {
return request({
url: '/models/squiglink-fetch',
method: 'post',
data: { share_url: shareUrl, selected_file: selectedFile },
timeout: 30000
})
}