init project
This commit is contained in:
+77
@@ -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();
|
||||
Reference in New Issue
Block a user