Files
admin-sjzx/src/stores/monitoringPoint.ts
2026-01-12 14:01:43 +08:00

44 lines
1.1 KiB
TypeScript

import { reactive } from 'vue'
import { defineStore } from 'pinia'
interface MonitoringPoint {
lineId: string
lineName: string
pid: string
lineIds: string[]
showCheckBox: boolean
comFlag: number
}
export const useMonitoringPoint = defineStore(
'monitoringPoint',
() => {
const state: MonitoringPoint = reactive({
lineId: '',
lineName: '',
pid: '',
lineIds: [],
showCheckBox: false,
comFlag: 0
})
const setValue = (
key: keyof Pick<MonitoringPoint, 'lineId' | 'lineName' | 'lineIds' | 'pid' | 'comFlag'>,
val: any
) => {
state[key] = val
}
const setShowCheckBox = (val: boolean) => {
if (val && state.lineIds.length === 0) {
state.lineIds = [state.lineId]
}
state.showCheckBox = val
}
return { state, setValue, setShowCheckBox }
},
{
persist: {
paths: ['state.lineId', 'state.lineName']
}
}
)