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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { request, type ApiResponse } from './request'
import { formatBusinessTime } from '@/utils/businessTime'
 
export type BatteryGroupFieldStatus = '启用' | '禁用'
export type BatteryGroupFieldType = '文本' | '数字' | '时间' | '备注'
 
interface BatteryGroupFieldDto {
  fieldId: number
  fieldName: string | null
  fieldType: string | null
  createBy: string | null
  createTime: number | null
  status: string | null
}
 
interface BatteryGroupFieldListResponse extends ApiResponse {
  total: number
  rows: BatteryGroupFieldDto[]
}
 
export interface BatteryGroupField {
  id: number
  name: string
  type: BatteryGroupFieldType
  creator: string
  createdAt: string
  status: BatteryGroupFieldStatus
}
 
export interface BatteryGroupFieldPayload {
  fieldName: string
  fieldType: string
  status: '0' | '1'
}
 
const typeMap: Record<string, BatteryGroupFieldType> = {
  text: '文本', number: '数字', time: '时间', date: '时间', remark: '备注',
}
 
export const fieldTypeCode: Record<BatteryGroupFieldType, string> = {
  文本: 'text', 数字: 'number', 时间: 'time', 备注: 'remark',
}
 
export function mapBatteryGroupFieldType(value: string | null | undefined): BatteryGroupFieldType {
  return typeMap[value || ''] || '文本'
}
 
export async function getBatteryGroupFields(): Promise<BatteryGroupField[]> {
  const result = await request<BatteryGroupFieldListResponse>('/system/batteryGroupField/list?pageNum=1&pageSize=1000')
  return (result.rows || []).map(item => ({
    id: item.fieldId,
    name: item.fieldName || '',
    type: mapBatteryGroupFieldType(item.fieldType),
    creator: item.createBy || '-',
    createdAt: formatBusinessTime(item.createTime),
    status: item.status === '1' ? '禁用' : '启用',
  }))
}
 
export function createBatteryGroupField(payload: BatteryGroupFieldPayload): Promise<ApiResponse> {
  return request<ApiResponse>('/system/batteryGroupField', { method: 'POST', body: JSON.stringify(payload) })
}
 
export function updateBatteryGroupField(fieldId: number, payload: BatteryGroupFieldPayload): Promise<ApiResponse> {
  return request<ApiResponse>('/system/batteryGroupField', {
    method: 'PUT', body: JSON.stringify({ fieldId, ...payload }),
  })
}
 
export function changeBatteryGroupFieldStatus(fieldId: number, status: '0' | '1'): Promise<ApiResponse> {
  return request<ApiResponse>('/system/batteryGroupField/changeStatus', {
    method: 'PUT', body: JSON.stringify({ fieldId, status }),
  })
}
 
export function deleteBatteryGroupField(fieldId: number): Promise<ApiResponse> {
  return request<ApiResponse>(`/system/batteryGroupField/${fieldId}`, { method: 'DELETE' })
}