/*
 * @Author: donghao donghao@supervision.ltd
 * @Date: 2025-03-06 11:27:03
 * @LastEditors: donghao donghao@supervision.ltd
 * @LastEditTime: 2025-03-11 11:11:49
 * @FilePath: \vite-ai\data-dashboard\src\main.ts
 * @Description: 入口文件
 */
// src/main.ts

import { createApp } from "vue";
import { createPinia } from "pinia";
import App from "./App.vue";
import router from "./router";
// import { mockServer } from './mock' // Mock服务初始化
// import { registerGlobalDirectives } from '@/directives' // 全局指令注册
import { registerErrorHandler } from "@/utils/error"; // 全局错误处理

// ================== 初始化核心配置 ==================
const app = createApp(App);
const pinia = createPinia();

// ================== DataV ==================
// // 引入 DataV
// import DataV from '@jiaminghi/data-view';
// // 引入 DataV 的 CSS 样式
// import '@jiaminghi/data-view/lib/data-view.min.css';

// ================== Element Plus 完整引入方案 ==================
import ElementPlus from "element-plus";
import "@/styles/tailwind.scss";
import "element-plus/dist/index.css";
import "element-plus/theme-chalk/dark/css-vars.css"; // 暗黑主题
import zhCn from "@/plugins/zhCnElement"; // 引入中文语言包
// ================== 自动导入配置检查 ==================
// 确保vite.config.ts中已配置以下内容：
// AutoImport({ resolvers: [ElementPlusResolver()] })
// Components({ resolvers: [ElementPlusResolver()] })

// ================== 全局样式导入 ==================
import "@/styles/index.scss"; // 主样式文件

// import 'virtual:svg-icons-register' // SVG图标注册（如果使用vite-plugin-svg-icons）

// ================== 环境相关配置 ==================
// if (import.meta.env.VITE_MOCK_ENABLED === 'true') {
//   mockServer() // 初始化Mock服务
// }

// ================== 全局配置 ==================
app.config.globalProperties.$version = import.meta.env.VITE_APP_VERSION; // 注入版本信息

// ================== 插件安装顺序 ==================
app
  .use(pinia) // 优先安装Pinia
  .use(router) // 其次安装路由
  .use(ElementPlus, {
    locale: zhCn,
    size: "large", // 全局组件尺寸
    zIndex: 3000, // 全局z-index
  });

// ================== 全局注册 ==================
// registerGlobalDirectives(app) // 注册自定义指令（如权限指令v-permission）
// registerGlobalComponents(app) // 注册全局组件（如有）

// ================== 错误处理 ==================
registerErrorHandler(app); // 注册全局错误处理

// ================== 大屏适配初始化 ==================
if (import.meta.env.MODE === "development") {
  // 开发环境显示适配基准线
  import("@/utils/screen-helper").then(({ showDesignHelper }) => {
    showDesignHelper(1920, 1080); // 根据设计稿尺寸显示辅助线
  });
}

// ================== 挂载主应用 ==================
app.mount("#app");

// ================== 生产环境性能监控 ==================
// if (import.meta.env.PROD) {
//   import('@/utils/performance').then(({ initPerformance }) => {
//     initPerformance()
//   })
// }
