34 lines
989 B
JavaScript
34 lines
989 B
JavaScript
// stores/useAlarmDataStore.js
|
|
import { defineStore } from "pinia";
|
|
import { ref } from "vue";
|
|
|
|
const useAlarmDataStore = defineStore("alarmData", () => {
|
|
const alarmData = ref([]);
|
|
|
|
// 建立 alarmData 的函數
|
|
const createAlarmData = (alarmList) => {
|
|
alarmData.value = alarmList.children.map((item, index) => ({
|
|
key: item.key,
|
|
name: item.name || `Alarm ${index + 1}`,
|
|
alarmCount: 0,
|
|
unackedCount: 0,
|
|
alarmOrd: item.children && item.children[0] ? item.children[0].ord : null, // 儲存 alarmOrd
|
|
Ord: item.ord ? item.ord : null,
|
|
}));
|
|
};
|
|
|
|
// 更新特定 alarm 數據的函數
|
|
const updateAlarmItem = (index, alarmCount, unackedCount) => {
|
|
if (index >= 0 && index < alarmData.value.length) {
|
|
alarmData.value.splice(index, 1, {
|
|
...alarmData.value[index],
|
|
alarmCount,
|
|
unackedCount,
|
|
});
|
|
}
|
|
};
|
|
|
|
return { alarmData, createAlarmData, updateAlarmItem };
|
|
});
|
|
|
|
export default useAlarmDataStore; |