Files
health-record-mp/src/store/record.ts

80 lines
1.5 KiB
TypeScript

import { defineStore } from 'pinia'
export const useRecordStore = defineStore('record', {
state: () => ({
list: [] as any[],
loading: false,
showFab: true,
showRecordPopup: false,
showWeightPopup: false,
weightForm: {
value: 1,
note: '',
time: '' as number | string,
},
showSleepPopup: false,
sleepForm: {
startTime: '' as number | string,
endTime: '' as number | string,
note: '',
time: '' as number | string,
},
showSportPopup: false,
sportForm: {
type: '',
duration: 0,
note: '',
time: '' as number | string,
},
showBpPopup: false,
bpForm: {
systolic: 0,
diastolic: 0,
heartRate: 0,
time: Date.now(),
note: '',
},
showGlucosePopup: false,
glucoseForm: {
value: 0,
period: '' as string,
time: Date.now(),
note: '',
},
showTempPopup: false,
tempForm: {
value: 36.5,
location: '' as string,
time: Date.now(),
note: '',
},
}),
actions: {
setLoading(val: boolean) {
this.loading = val
},
async fetchList() {
this.loading = true
try {
const res = await fetch('/api/record/list')
this.list = await res.json()
}
finally {
this.loading = false
}
},
addRecord(item: any) {
this.list.push(item)
},
removeRecord(id: string) {
this.list = this.list.filter(item => item.id !== id)
},
reset() {
},
},
})