import { request, type ApiResponse } from './request'
|
|
interface BatteryGroupTemplateFieldDto {
|
fieldId: number
|
fieldName: string | null
|
fieldType: string | null
|
}
|
|
interface BatteryGroupTemplateDto {
|
templateId: number
|
templateName: string | null
|
fields?: BatteryGroupTemplateFieldDto[] | null
|
}
|
|
interface BatteryGroupTemplateResponse extends ApiResponse {
|
data: BatteryGroupTemplateDto
|
}
|
|
interface BatteryGroupTemplateOptionsResponse extends ApiResponse {
|
data: BatteryGroupTemplateDto[]
|
}
|
|
interface BatteryGroupTemplateCreatedResponse extends ApiResponse {
|
data: { templateId: number }
|
}
|
|
export interface BatteryGroupTemplateOption {
|
id: number
|
name: string
|
}
|
|
export interface BatteryGroupTemplateDetail extends BatteryGroupTemplateOption {
|
fieldIds: number[]
|
}
|
|
export async function getBatteryGroupTemplateOptions(): Promise<BatteryGroupTemplateOption[]> {
|
const result = await request<BatteryGroupTemplateOptionsResponse>('/system/batteryGroupTemplate/options')
|
return (result.data || []).map(item => ({ id: Number(item.templateId), name: item.templateName || `模板${item.templateId}` }))
|
}
|
|
export async function getBatteryGroupTemplate(templateId: number): Promise<BatteryGroupTemplateDetail> {
|
const result = await request<BatteryGroupTemplateResponse>(`/system/batteryGroupTemplate/${templateId}`)
|
return {
|
id: Number(result.data.templateId),
|
name: result.data.templateName || `模板${result.data.templateId}`,
|
fieldIds: (result.data.fields || []).map(field => field.fieldId),
|
}
|
}
|
|
export function createBatteryGroupTemplate(templateName: string, fieldIds: number[]): Promise<BatteryGroupTemplateCreatedResponse> {
|
return request<BatteryGroupTemplateCreatedResponse>('/system/batteryGroupTemplate', {
|
method: 'POST', body: JSON.stringify({ templateName, fieldIds }),
|
})
|
}
|
|
export function updateBatteryGroupTemplate(templateId: number, templateName: string, fieldIds: number[]): Promise<ApiResponse> {
|
return request<ApiResponse>('/system/batteryGroupTemplate', {
|
method: 'PUT', body: JSON.stringify({ templateId, templateName, fieldIds }),
|
})
|
}
|