165 lines
3.8 KiB
JavaScript
165 lines
3.8 KiB
JavaScript
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
|
||
})
|
||
}
|