main.ts
2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
* @Author: 赵丽婷
* @Date: 2025-11-10 10:30:43
* @LastEditors: 赵丽婷
* @LastEditTime: 2025-12-16 18:26:49
* @FilePath: \LinkMed\linkmed-vue3\src\main.ts
* @Description:
* Copyright (c) 2025 by 北京连心医疗科技有限公司, All Rights Reserved.
*/
import { createApp } from "vue";
import { createPinia } from "pinia";
import App from "./App.vue";
import router from "./router/index";
import i18n from "./locales/index";
import { setupMockInterceptors } from "./api/mock";
// import TDesignChat from "@tdesign-vue-next/chat"; // 引入 TDesign Chat 组件
// 引入样式
import "element-plus/dist/index.css"; // Element Plus 样式(如果使用按需导入,会自动注入)
import "@fortawesome/fontawesome-free/css/all.css"; // Font Awesome 图标
// import "@umoteam/editor/style"; // Umo Editor 样式
import "./assets/styles/main.scss"; // 自定义样式
import "./assets/styles/global.css"; // 全局样式(包含主题、重置、表格样式等)
// import "@tdesign-vue-next/chat/es/style/index.css"; // TDesign Chat 组件样式
// import "tdesign-vue-next/es/style/index.css"; // TDesign 全局样式变量
// import "katex/dist/katex.min.css"; // KaTeX 数学公式样式(仅样式,不引入 JS)
// 启用 Mock API(开发环境)
setupMockInterceptors();
// 手机端同比例缩放逻辑
const handleMobileScaling = () => {
const deviceWidth = window.screen.width;
// 定义手机端的判定阈值(通常小于 600px 视为手机)
if (deviceWidth < 600) {
const designWidth = 1024; // 以平板的最小宽度作为缩放基准
const scale = deviceWidth / designWidth;
const viewport = document.getElementById("viewport");
if (viewport) {
// 强制设置视口宽度为基准宽度,并设置初始缩放比例
viewport.setAttribute(
"content",
`width=${designWidth}, initial-scale=${scale}, minimum-scale=${scale}, maximum-scale=${scale}, user-scalable=no`
);
}
}
};
handleMobileScaling();
const app = createApp(App);
const pinia = createPinia();
// 使用插件
app.use(pinia);
app.use(router);
app.use(i18n);
// app.use(TDesignChat); // 注册 TDesign Chat 组件
// 全局属性挂载(如果需要)
// app.config.globalProperties.$http = axios
app.mount("#app");