init project

This commit is contained in:
Timi
2026-08-01 18:01:23 +08:00
parent 286fa1ba56
commit 11c48bf00c
107 changed files with 19350 additions and 1 deletions
+77
View File
@@ -0,0 +1,77 @@
import {createApp} from "vue";
import {createPinia} from "pinia";
import router from "@/router";
import Root from "@/Root.vue";
import "tdesign-mobile-vue/es/style/index.css";
import "timi-web/style.css";
import "timi-tdesign-mobile/style.css";
import "vue-virtual-scroller/dist/vue-virtual-scroller.css";
import "@/styles/tdesign-custom.css";
import "@/styles/global.less";
import {configureUserStore, type ApiResponse, Network, useUserStore, VCan, VRole} from "timi-web";
import {Toast} from "tdesign-mobile-vue";
export const pinia = createPinia();
const apiBaseURL = import.meta.env.VITE_API_BASE_URL as string | undefined;
if (apiBaseURL) {
Network.axios.defaults.baseURL = apiBaseURL;
}
configureUserStore({
storageKey: "gao-customer-h5:user"
});
Network.setGlobalRequestInterceptor((config: any) => {
const userStore = useUserStore(pinia);
if (apiBaseURL && !config.baseURL) {
config.baseURL = apiBaseURL;
}
config.headers.set({
"Accept-Language": "zh-CN"
});
if (userStore.token) {
config.headers.set({
"Token": userStore.token
});
}
return config;
});
async function bootstrap(): Promise<void> {
const app = createApp(Root);
app.use(pinia);
app.directive("can", VCan);
app.directive("role", VRole);
const userStore = useUserStore(pinia);
await userStore.loginByStorage();
Network.setGlobalErrorCallback((resp: ApiResponse<any>) => {
Toast({
theme: "error",
direction: "row",
message: resp.message
});
});
app.use(router);
app.mount("#root");
}
async function start(): Promise<void> {
try {
await bootstrap();
} catch (error) {
console.error(error);
Toast({
theme: "error",
direction: "row",
message: "应用启动失败"
});
}
}
void start();