qcp QCP pad
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

90 lines
2.4 KiB

import { defineStore } from 'pinia'
import { store } from '@/store'
export interface IPatient {
demoFlag: number
firstAidId: string
firstAidStatus: string
firstAidTime: string
firstAidZlType: number
patientAge: null | number
patientGender: number
patientIdCardNo: string
patientName: string
patientNation: string
sourceId: string
sourceType: number
recordValDict: any
}
// 平车信息
export interface ICar {
carNo: string
online: number // 0 离线 1在线
powerLowAlarm: number // 0 正常 1 报警
sensorAngleV: null | number // 角度
sensorPower: null | string // 电量百分比
sensorVibrate: null | string // 振幅
sensorWeight: null | string // 重量
}
export interface ServiceState {
currentPatient: null | IPatient
currentCar: null | ICar
device: null | { deviceNo: string; host: string }
}
export const useServiceStore = defineStore({
id: 'service',
state: (): ServiceState => ({
currentPatient: null, // 当前病友的信息
device: null, // 当前设备的信息
currentCar: null, // 车的信息
}),
getters: {
deviceNo: ({ device }) => device?.deviceNo || '',
host: ({ device }) => device?.host || '',
carNo: ({ currentCar }) => currentCar?.carNo || '', // 平车编号
currentFirstAidId: ({ currentPatient }) => currentPatient?.firstAidId,
},
actions: {
setCurrentPatient(patient: IPatient | null) {
this.currentPatient = patient
},
setCurrentCar(car: ICar | null) {
this.currentCar = car || null
},
// 设置设备信息
setDevice(device: null | { deviceNo: string; host: string }) {
this.device = device
if (device?.deviceNo) {
uni.setStorageSync(uni.$u.LOCAL_KEY.DEVICE_NO, device.deviceNo)
}
if (device?.host) {
uni.setStorageSync(uni.$u.LOCAL_KEY.HOST, device.host)
}
},
// sync local device info 2 store
// 应用启动的时候调用一次 loading页调用了
syncDevice() {
const localDeviceNo = uni.getStorageSync(uni.$u.LOCAL_KEY.DEVICE_NO)
const localDeviceHost = uni.getStorageSync(uni.$u.LOCAL_KEY.HOST)
if (localDeviceNo && localDeviceHost) {
this.device = { deviceNo: localDeviceNo, host: localDeviceHost }
} else {
this.device = null
}
},
},
})
// Need to be used outside the setup
export function useServiceStoreWidthOut() {
return useServiceStore(store)
}