/*
 * @FilePath: \wwwd:\code\screenFront\src\store\components\header.ts
 * @Author: 王路平
 * @文件版本: V1.0.0
 * @Date: 2023-03-26 11:30:39
 * @Description: 
 * 
 * 版权信息         : 2023 by ${再登软件}, All Rights Reserved.
 */

import { defineStore } from "pinia";
import {Names} from '@/store/storeName'
export const useHeaderStore = defineStore(Names.header,{
    // 使用方式
    // const Index= useIndexStore()
    // 1、Index.{数据}++
    // 2、Index.$patch({数据:??})
    // 3、Index.$patch((state)=>{ state.数据=??})
    // 4、通过action修改
    state:()=>{
        return{
            AlarmscrollBoardList:[],
            AlarmpopoverList:[],
            num:null
        }
    },
    //computed 修改一些值
    //需要使用return将数据抛出
    //getters内可相互使用计算结果
    //使用时可直接放入标签内<div>Index.方法()</div>
    getters:{

    },
    //methods 可同步/异步，提交state
    //actions内获取state数据使用this
    // 使用方式
    // 1、Index.方法()
    //异步方法需要添加async和await
    actions:{
        //根据接口设置数据
        setDataList(val:any){
            this.num=val.total
            this.AlarmpopoverList=val.rows
            if(this.AlarmscrollBoardList.length==0){
                this.AlarmscrollBoardList=val.rows
            }
        },
        changeDataList(val:any){
            //如果数组为空则直接push进去
            
            if(!this.AlarmscrollBoardList){
                this.AlarmscrollBoardList.push(val)
                return
            }
            //如果有一个id相同则修改数据否则push新数据
            if(this.AlarmscrollBoardList.some(a=>{return a.deviceId==val.deviceId})){
                this.AlarmscrollBoardList.forEach(e=>{
                    if(e.deviceId==val.deviceId){
                        e.context=val.context
                        e.ts=val.ts
                    }
                })
            }else{
                this.AlarmscrollBoardList.push(val)
            }
            console.log(this.AlarmscrollBoardList,"共有这么多数据");
            
        },
        resetData(){
            this.AlarmscrollBoardList=[],
            this.AlarmpopoverList=[],
            this.num=null
        }
    }
})