Files
craftlabs-authorization-sdk/web/delivery-platform-ui/src/main.js
T
huangping d53ddf32c8 feat(i8-i9): webhook DEAD replay, read-only delivery status, and callback UI
I8: platform proxies replay to webhook; webhook ops token filter and internal
replay endpoint; delivery service supports read/replay flows.

I9: platform GET callback webhook delivery status by inbox id; UI shows
read-only status block and handles load errors without blocking the page.

Also refresh OpenAPI, Runbook notes, test fixtures and YAML; fix Vite dev
axios baseURL so /api uses proxy; improve login error messaging.

Made-with: Cursor
2026-04-07 21:26:44 +08:00

41 lines
1.2 KiB
JavaScript

import { createApp } from "vue";
import { createPinia } from "pinia";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import axios from "axios";
import App from "./App.vue";
import router from "./router";
import { useAuthStore } from "./stores/auth";
// 开发环境始终使用相对路径,以便 Vite 将 /api 代理到后端;误设 VITE_API_BASE 时否则会直连并常出现跨域或连错环境。
const apiBaseRaw =
typeof import.meta.env.VITE_API_BASE === "string" ? import.meta.env.VITE_API_BASE.trim() : "";
if (!import.meta.env.DEV && apiBaseRaw) {
axios.defaults.baseURL = apiBaseRaw.replace(/\/+$/, "");
}
const pinia = createPinia();
const app = createApp(App);
app.use(pinia);
useAuthStore(pinia).restoreAxiosAuth();
axios.interceptors.response.use(
(r) => r,
(err) => {
if (err.response?.status === 401) {
const auth = useAuthStore();
auth.logout();
if (router.currentRoute.value.name !== "login") {
router.push({
name: "login",
query: { redirect: router.currentRoute.value.fullPath },
});
}
}
return Promise.reject(err);
},
);
app.use(router).use(ElementPlus).mount("#app");