yeg
4 天以前 f4d7007b89cf565746af4623623a294b82666ff1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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 }),
  })
}