import { defineStore } from 'pinia';
import {Local} from "@/utils/storage";
export const useSettingStore = defineStore('setting', {
    state: () => ({
        SettingInfo: {
            settingShow: false, //设置弹窗显隐
            isScale: true, //是否进行全局适配
            indexConfig: {
                leftBottomSwiper: true,
                rightBottomSwiper: true,
            },
            defaultOption:{
                step: 4, // 数值越大速度滚动越快
                hover: true, // 是否开启鼠标悬停stop
                wheel: false,//在开启鼠标悬停的情况下是否开启滚轮滚动，默认不开启
                openWatch: true, // 开启数据实时监控刷新dom
                direction: 1, // 0向下 1向上 2向左 3向右
                limitScrollNum: 4, // 开始无缝滚动的数据量 this.dataList.length
                singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
                singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
                singleWaitTime: 3000 // 单步运动停止的时间(默认值1000ms)
            }
        },
    }),
    actions: {
        // 设置是否展示设置
        setSettingShow(flag: boolean) {
            this.SettingInfo.settingShow = flag;
        },
        // 设置是否进行全局适配
        setIsScale(flag: boolean) {
            this.SettingInfo.isScale = flag;
        },
        // 设置首页配置
        setIndexConfig(Config: any) {
            this.SettingInfo.indexConfig = Config;
            Local.set('indexConfig', JSON.stringify(this.SettingInfo.indexConfig));
        },
        // 初始化设置
        initSetting() {
            const indexConfig = Local.get('indexConfig');
            if (indexConfig) {
                this.SettingInfo.indexConfig = JSON.parse(indexConfig);
            }
        },
        // 设置系统信息
        setSettingInfo(data: object): void {
            this.SettingInfo = {
                ...this.SettingInfo,
                ...data,
            };
        },
    },
    // 开启数据缓存
    persist: {
        enabled: true,
        strategies: [
            {
                //key的名称
                key: `${import.meta.env.VITE_STORAGE_NAME}_settingInfo`,
                //更改默认存储，我更改为localStorage
                storage: localStorage,
                // 可以选择哪些进入local存储，这样就不用全部都进去存储了
                // 默认是全部进去存储
            }
        ]
    }
})
