/*
 * @Author: Z 1518051043@qq.com
 * @Date: 2025-09-12 13:51:43
 * @LastEditors: zwy 1518051043@qq.com
 * @LastEditTime: 2026-01-28 17:27:20
 * @FilePath: \yuanxinPro\src\store\module\app.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import Cookies from "js-cookie";
import { ElMessage } from "element-plus";
import { tr } from "element-plus/es/locales.mjs";

const useAppStore = defineStore("app", {
  state: () => ({
    // ==================== 时间轴相关 ====================
    globalTimeLineEndSelectTime: "2025-11-02 00:00:00", // 时间轴滑块当前选中的结束时间
    globalTimeLineStartTime: "2025-11-02 00:00:00", // 时间轴范围开始时间
    globalTimeLineEndTime: "2025-11-02 00:00:00", // 时间轴范围结束时间
    globalisFromTosub: false, // 是否从主系统进入子系统
    footerTimeHasedSelectTimeToSub: false, // 判断是否需要发送时间到子系统（返回时恢复状态用）

    // ==================== 子系统时间范围 ====================
    globalSubsystemSelectedTimeRange: [
      "Sun Nov 02 2025 00:00:00 GMT+0800 (中国标准时间) ",
      "Tue Nov 04 2025 00:00:00 GMT+0800 (中国标准时间) ",
    ], // 子系统选中时间段范围

    globalLeftWssCONTINE: false, // WebSocket 连续数据推送状态

    // 进入子系统前是否处于实时模式（专门用于返回时恢复，不依赖 globalLeftWssCONTINE）
    globalIsRealtimeBeforeSub: false,

    globalRecordMainSysTaskCode: 0, // 主系统当前任务码

    // ==================== 子系统时间轴 ====================
    subSystemTimeLineEndSelectTime: "-", // 子系统时间轴滑块结束时间
    subsystemSocket: null, // 子系统 WebSocket 实例
    subsystemSocketContent: "", // 子系统 WebSocket 接收内容
    HeartbeatInterval: null, // 心跳定时器实例

    // ==================== 面板显示控制 ====================
    isTimeLineShow: true, // 是否显示时间轴
    islegendShow: true, // 主系统时间下方图例是否隐藏
    isSourceLegendShow: true, // 源图例是否显示
    isdataPanelShow: true, // 数据面板是否显示
    issatelliteOrbitShow: false, // 卫星轨道是否显示
    issatelliteBeamShow: true, // 卫星波束是否显示
    iscontrolPanelShow: true, // 控制面板是否显示（主系统/子系统右上角悬浮框）

    // ==================== 播放控制 ====================
    globaleAutoPlay: true, // 是否自动播放
    globalIntervalTime: 3000, // 播放间隔时间（毫秒）
    globalStartWss: false, // 是否已启动 WebSocket

    // ==================== 卫星相关 ====================
    globalSatelliteSearchID: "4097", // 当前选中的卫星 ID
    globalSubsystemActiveIndex: "0", // 子系统当前激活的索引
    globalSubsystemIsFastForward: false, // 子系统是否处于快进状态
    globalSubsystemSpeed: 1, // 子系统播放倍速
    globalSubsystemTaskCode: 0, // 子系统当前任务码
    globalSubsystemSelectedStartTime: [
      "Sun Nov 02 2025 00:00:00 GMT+0800 (中国标准时间) ",
      "Tue Nov 04 2025 00:00:00 GMT+0800 (中国标准时间) ",
    ], // 子系统选中时间段（开始时间）
    globalSubsystemSelectedEndTime: "2025-11-04 00:00:00", // 子系统选中时间段（结束时间）
    globalDisableTimeLine: true, // 是否禁用时间轴

    // ==================== 面板数据 ====================
    gridPanelData: [], // 格网面板数据
    regionPanelData: [], // 区域面板数据
    signalSitePanelData: [], // 信关站面板数据

    // ==================== 图表配置 ====================
    chartConfig: {}, // 图表配置项（模板、粒度、类型等）

    // ==================== 其他 ====================
    currentHotMapCountry: null, // 当前热力图选中的国家
    gridInfoList: null, // 全部格网信息列表
  }),
  actions: {
    setGlobalRecordMainSysTaskCode(status) {
      this.globalRecordMainSysTaskCode = status;
    },
    setGlobalLeftWssCONTINE(status) {
      this.globalLeftWssCONTINE = status;
    },
    setGlobalIsRealtimeBeforeSub(status) {
      this.globalIsRealtimeBeforeSub = status;
    },
    setSubSystemTimeLineEndSelectTime(status) {
      this.subSystemTimeLineEndSelectTime = status;
    },
    setFooterTimeHasedSelectTimeToSub(status) {
      this.footerTimeHasedSelectTimeToSub = status;
    },
    setGlobalSubsystemSelectedTimeRange(range) {
      this.globalSubsystemSelectedTimeRange = range;
    },
    setGlobalisFromTosub(status) {
      this.globalisFromTosub = status;
    },
    setGlobalTimeLineEndSelectTime(time) {
      this.globalTimeLineEndSelectTime = time;
    },
    setGlobalTimeLineStartTime(time) {
      this.globalTimeLineStartTime = time;
    },
    setGlobalTimeLineEndTime(time) {
      this.globalTimeLineEndTime = time;
    },
    setSubsystemSocket(socket) {
      this.subsystemSocket = socket;
    },
    setSubsystemSocketContent(content) {
      this.subsystemSocketContent = content;
    },
    setHeartbeatInterval(interval) {
      this.HeartbeatInterval = interval;
    },
    setisTimeLineShow(status) {
      this.isTimeLineShow = status;
    },
    setislegendShow(status) {
      this.islegendShow = status;
    },
    setisSourceLegendShow(status) {
      this.isSourceLegendShow = status;
    },
    setisdataPanelShow(status) {
      this.isdataPanelShow = status;
    },
    setissatelliteOrbitShow(status) {
      this.issatelliteOrbitShow = status;
    },

    setissatelliteBeamShow(status) {
      this.issatelliteBeamShow = status;
    },
    setiscontrolPanelShow(status) {
      this.iscontrolPanelShow = status;
    },
    setglobaleAutoPlay(status) {
      this.globaleAutoPlay = status;
    },
    setglobalIntervalTime(status) {
      //   //console.log("开始执行间隔时间");

      this.globalIntervalTime = status;
    },
    setglobalStartWss(status) {
      // //console.log("同步socket数据");

      this.globalStartWss = status;
    },
    setglobalSatelliteSearchID(status) {
      //   //console.log("设置卫星搜索ID");

      this.globalSatelliteSearchID = status;
    },
    setglobalSubsystemActiveIndex(status) {
      this.globalSubsystemActiveIndex = status;
    },
    setglobalSubsystemIsFastForward(status) {
      this.globalSubsystemIsFastForward = status;
    },
    setglobalSubsystemSpeed(status) {
      this.globalSubsystemSpeed = status;
    },
    setglobalSubsystemTaskCode(status) {
      this.globalSubsystemTaskCode = status;
    },

    setglobalSubsystemSelectedStartTime(status) {
      this.globalSubsystemSelectedStartTime = status;
    },
    setglobalSubsystemSelectedEndTime(status) {
      this.globalSubsystemSelectedEndTime = status;
    },
  },
});

export default useAppStore;
