import { ref } from 'vue'
|
|
export type TestTypeStatus = '启用' | '禁用'
|
|
export interface TestTypeRecord {
|
id: number
|
name: string
|
createdAt: string
|
creator: string
|
remark: string
|
status: TestTypeStatus
|
}
|
|
const STORAGE_KEY = 'battery_detection_test_types_v1'
|
const seedRecords: TestTypeRecord[] = [
|
{ id: 3012, name: '寿命循环', createdAt: '2026-08-04 14:36', creator: '张工', remark: '标准充放电循环寿命测试', status: '启用' },
|
{ id: 3011, name: '容量一致性', createdAt: '2026-08-04 10:18', creator: '李工', remark: '批次容量离散度与一致性分析', status: '启用' },
|
{ id: 3010, name: '低温性能', createdAt: '2026-08-03 16:42', creator: '周工', remark: '低温环境充电、放电及启动能力验证', status: '启用' },
|
{ id: 3009, name: '倍率性能', createdAt: '2026-08-03 09:25', creator: '赵工', remark: '多倍率充放电能力及温升验证', status: '启用' },
|
{ id: 3008, name: '安全性能', createdAt: '2026-08-02 15:10', creator: '陈工', remark: '过充、短路及保护边界验证', status: '启用' },
|
{ id: 3007, name: '历史兼容测试', createdAt: '2026-07-30 11:08', creator: '王工', remark: '旧版测试工步兼容性检查', status: '禁用' },
|
]
|
|
function loadRecords() {
|
try {
|
const stored = localStorage.getItem(STORAGE_KEY)
|
if (stored) return JSON.parse(stored) as TestTypeRecord[]
|
} catch {
|
localStorage.removeItem(STORAGE_KEY)
|
}
|
return seedRecords
|
}
|
|
const records = ref<TestTypeRecord[]>(loadRecords())
|
|
function persist() {
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(records.value))
|
}
|
|
export function useTestTypes() {
|
function createType(data: Pick<TestTypeRecord, 'name' | 'remark'>) {
|
const id = Math.max(3000, ...records.value.map(item => item.id)) + 1
|
const createdAt = new Date().toLocaleString('zh-CN', { hour12: false }).replaceAll('/', '-').replace(',', '')
|
records.value.unshift({ ...data, id, createdAt, creator: 'Admin', status: '启用' })
|
persist()
|
}
|
|
function updateType(id: number, data: Pick<TestTypeRecord, 'name' | 'remark'>) {
|
const target = records.value.find(item => item.id === id)
|
if (!target) return false
|
Object.assign(target, data)
|
persist()
|
return true
|
}
|
|
function removeType(id: number) {
|
records.value = records.value.filter(item => item.id !== id)
|
persist()
|
}
|
|
return { records, createType, updateType, removeType, saveChanges: persist }
|
}
|