/*
 * @FilePath: \wwwd:\code\screenFront\src\store\moduleSocketjixie.ts
 * @Author: 王路平
 * @文件版本: V1.0.0
 * @Date: 2023-02-06 15:58:13
 * @Description: 
 * 
 * 版权信息         : 2023 by ${再登软件}, All Rights Reserved.
 */
import { defineStore } from "pinia";
import { Names } from '@/store/storeName'
import { gettime, clacendTime } from "@/utils/time"
export const useSocketStore = defineStore(Names.socketMechanics, {
    // 使用方式
    // const Index= useIndexStore()
    // 1、Index.{数据}++
    // 2、Index.$patch({数据:??})
    // 3、Index.$patch((state)=>{ state.数据=??})
    // 4、通过action修改
    state: () => {
        return {
            humiture: [
                { "devId": "c6f036c0-33fc-11ed-a7e1-fd42bca6c8c6", "name": "精饰车间", "temp": "33.4", "humidity": "30.9" },
                { "devId": "c651b930-3b15-11ed-b6af-15994988a6b3", "name": "精加车间", "temp": "26.1", "humidity": "47" },
                { "devId": "9c4be1e0-33fb-11ed-a7e1-fd42bca6c8c6", "name": "焊接车间", "temp": "29.3", "humidity": "37.6" },
                { "devId": "0e77f0b0-33fc-11ed-a7e1-fd42bca6c8c6", "name": "大件车间", "temp": "28.6", "humidity": "38.4" },
                { "devId": "91f6d000-33fc-11ed-a7e1-fd42bca6c8c6", "name": "机加车间", "temp": "29.9", "humidity": "36.2" }
            ],

            // humiture:{Humiture:[],bottom:{humidity:null,temp:null,name:null},top:{humidity:null,temp:null,name:null}}, //温湿度
            pm: [
                {
                    "devId": "01336fd0-1fa0-11ed-9223-7db1174970a8",
                    "name": "大件车间中部粉尘",
                    "pm25": "45",
                    "pm10": "53"
                },
                {
                    "devId": "083e3900-3435-11ed-a7e1-fd42bca6c8c6",
                    "name": "焊接车间粉尘",
                    "pm25": "30",
                    "pm10": "36"
                },
                {
                    "devId": "270e1500-eee1-11ed-b2ee-2d727e0cafab",
                    "name": "精加车间粉尘",
                    "pm25": "71",
                    "pm10": "84"
                },
                {
                    "devId": "54058c30-eee3-11ed-b2ee-2d727e0cafab",
                    "name": "机加车间粉尘",
                    "pm25": "22",
                    "pm10": "26"
                },
                {
                    "devId": "76efb040-eee3-11ed-b2ee-2d727e0cafab",
                    "name": "大件车间东部粉尘",
                    "pm25": "53",
                    "pm10": "60"
                },
                {
                    "devId": "a6020310-eee3-11ed-b2ee-2d727e0cafab",
                    "name": "大件车间西部粉尘",
                    "pm25": "66",
                    "pm10": "75"
                },
                {
                    "devId": "bcbfb530-88b2-11ed-a926-570995ad0254",
                    "name": "精饰车间粉尘",
                    "pm25": "6",
                    "pm10": "7"
                }
            ],
            newVerticalNum: [
                {
                    "type": "TVOC",
                    "icon": "icon-TVOC-Outlined",
                    "title": "TVOC检测",
                    "limit": "0.5",
                    "unit": "mg/m³",
                    "value": [
                        {
                            "name": "精饰车间TVOC/甲醛监测传感器",
                            "val": null,
                            "type": "TVOC_CH2O",
                            "field": "TVOC"
                        }
                    ]
                },
                {
                    "type": "Smoke",
                    "icon": "icon-yanwubaojingqi",
                    "title": "烟雾检测",
                    "limit": "100",
                    "unit": null,
                    "value": [
                        {
                            "name": "精饰车间烟雾传感器",
                            "val": null,
                            "type": "Smoke",
                            "field": "Smoke_Reg"
                        }
                    ]
                },
                {
                    "type": "Methane",
                    "icon": "icon-ranqi",
                    "title": "燃气检测",
                    "limit": "0",
                    "unit": null,
                    "value": [
                        {
                            "name": "精饰车间燃气监测",
                            "val": null,
                            "type": "Methane",
                            "field": "Methane_Reg"
                        },
                        {
                            "name": "食堂燃气监测",
                            "val": null,
                            "type": "Methane",
                            "field": "Methane_Reg"
                        },
                        {
                            "name": "锅炉房燃气监测",
                            "val": null,
                            "type": "Methane",
                            "field": "Methane_Reg"
                        }
                    ]
                },
                {
                    "type": "CH2O",
                    "icon": "icon-app_icons--",
                    "title": "甲醛检测",
                    "limit": "0.08",
                    "unit": "mg/m³",
                    "value": [
                        {
                            "name": "精饰车间TVOC/甲醛监测传感器",
                            "val": null,
                            "type": "TVOC_CH2O",
                            "field": "CH2O"
                        }
                    ]
                },
                {
                    "type": "FIRE",
                    "icon": "icon-weibiaoti1",
                    "title": "明火检测",
                    "limit": "0",
                    "unit": null,
                    "value": [
                        {
                            "name": "精饰车间火花传感器",
                            "val": null,
                            "type": "FIRE",
                            "field": "Fire_Reg"
                        }
                    ]
                }
            ]
        }
    },
    //computed 修改一些值
    //需要使用return将数据抛出
    //getters内可相互使用计算结果
    //使用时可直接放入标签内<div>Index.方法()</div>
    getters: {

    },
    actions: {
        //设置新的安全检测数据
        setNewVerticalNum(val) {
            this.newVerticalNum = val
        },
        //更新 新的安全检测数据
        changeNewVerticalNum(val) {
            //{"type":"Smoke","data":{"name":"精饰车间烟雾传感器","val":"100"}}
            let pIndex = this.newVerticalNum.findIndex(item => item.type == val.type)
            let cIndex = null
            if (pIndex != -1) {
                cIndex = this.newVerticalNum[pIndex].value.findIndex(item => item.devId == val.data.devId)
            }
            if (cIndex != -1) {
                if (val.data.val > this.newVerticalNum[pIndex].limit) {

                    let now = new Date().getTime()
                    if (this.newVerticalNum[pIndex].value[cIndex].date == null) {
                        this.newVerticalNum[pIndex].value[cIndex].date = gettime()
                        this.newVerticalNum[pIndex].value[cIndex].time = now
                    }

                    let time = this.newVerticalNum[pIndex].value[cIndex].time

                    this.newVerticalNum[pIndex].value[cIndex].continuous = clacendTime(now, time)
                } else {
                    this.newVerticalNum[pIndex].value[cIndex].date = null
                    this.newVerticalNum[pIndex].value[cIndex].time = null
                }
                this.newVerticalNum[pIndex].value[cIndex].val = val.data.val
                this.newVerticalNum[pIndex].value[cIndex].status = true
            }
        },
        /**
         * @函数功能: 
         * @param {*} val 温湿度数据
         * @出口参数: 
         * @函数备注: 
         */
        changeHumiture(val) {
            // console.log(this.humiture.Humiture);


            val.Humiture.forEach(res => {
                this.humiture.forEach(ele => {
                    if (res.devId == ele.devId) {
                        ele.humidity = res.humidity
                        ele.temp = res.temp
                    }
                })
            })

        },
        /**
         * 更新粉尘数据
         */
        changeDust(val) {
            this.pm.forEach(res => {
                if (res.devId == val.devId) {
                    res.pm25 = val.pm25
                    res.pm10 = val.pm10
                }
            })
        }
    }

})