新增分段管理

This commit is contained in:
18086616529
2026-06-23 17:22:40 +08:00
parent a6086f1f8b
commit 88c688c0df
19 changed files with 1882 additions and 1 deletions
@@ -568,6 +568,11 @@ export const reflectionApi = {
? Promise.resolve<CarStyleTypesPayload>({ globalDefault: defaultCarStyleDto(), types: [] })
: get<CarStyleTypesPayload>('/car-style/types'),
/** 车型编码字段元数据(site/track/plan/car 四类字段及默认值)。 */
getCarTypeCoderFields: () => MOCK
? Promise.resolve<CarTypeCoderFieldsRow[]>([])
: get<CarTypeCoderFieldsRow[]>('/car-types/coder-fields'),
getCarStyle: (typeFullName: string) => MOCK
? Promise.resolve(defaultCarStyleDto())
: get<CarStyleDto>(`/car-style/${encodeURIComponent(typeFullName)}`),
@@ -741,6 +746,31 @@ export interface CarStyleTypesPayload {
types: CarStyleTypeRow[]
}
export interface CoderFieldDef {
name: string
typeName: string
defaultValue: unknown
}
export interface CoderFieldGroup {
typeName: string
shortName: string
assemblyName: string
baseTypeName?: string
fields: CoderFieldDef[]
}
export interface CarTypeCoderFieldsRow {
typeName: string
shortName: string
label: string
assemblyName: string
siteFields: CoderFieldGroup
trackFields: CoderFieldGroup
planFields: CoderFieldGroup
carFields: CoderFieldGroup
}
export interface AlarmColorEntry {
key: string
colorArgb: number
@@ -0,0 +1,31 @@
import http from './http'
import type { SimpleFieldBatchPayload, SimpleFieldPayload, SimpleFieldRecord } from '@/types/simpleField'
function q(params?: Record<string, unknown>) {
return { params }
}
export async function listSimpleFields(fieldType?: string, carType?: string, keyword?: string) {
const { data } = await http.get<SimpleFieldRecord[]>('/simple-fields', q({
fieldType,
carType,
q: keyword
}))
return data
}
export async function saveSimpleField(payload: SimpleFieldPayload) {
const { data } = payload.id
? await http.put<SimpleFieldRecord>(`/simple-fields/${payload.id}`, payload)
: await http.post<SimpleFieldRecord>('/simple-fields', payload)
return data
}
export async function deleteSimpleField(id: string) {
await http.delete(`/simple-fields/${id}`)
}
export async function saveSimpleFieldsBatch(payload: SimpleFieldBatchPayload) {
const { data } = await http.post<{ count: number }>('/simple-fields/batch', payload)
return data
}