60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import { createApp } from "vue";
|
|
import { createRouter, createWebHistory } from "vue-router";
|
|
import PrimeVue from "primevue/config";
|
|
import Aura from "@primeuix/themes/aura";
|
|
import ToastService from "primevue/toastservice";
|
|
import ConfirmationService from "primevue/confirmationservice";
|
|
import "primeicons/primeicons.css";
|
|
import App from "./App.vue";
|
|
import "./styles.css";
|
|
|
|
const RoutePlaceholder = { template: "<span />" };
|
|
|
|
const routes = [
|
|
"/admin/login",
|
|
"/admin/dashboard",
|
|
"/admin/feedbacks",
|
|
"/admin/releases",
|
|
"/admin/legacy/update-info",
|
|
"/admin/legacy/media-types",
|
|
"/admin/sources",
|
|
"/admin/endpoints",
|
|
"/admin/system",
|
|
].map((path) => ({ path, component: RoutePlaceholder }));
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes: [
|
|
...routes,
|
|
{ path: "/admin/database", redirect: { path: "/admin/system", query: { tab: "database" } } },
|
|
{ path: "/admin/health", redirect: { path: "/admin/system", query: { tab: "health" } } },
|
|
{ path: "/admin/settings", redirect: { path: "/admin/system", query: { tab: "security" } } },
|
|
{ path: "/admin/audit", redirect: { path: "/admin/system", query: { tab: "audit" } } },
|
|
{ path: "/admin", redirect: "/admin/dashboard" },
|
|
{ path: "/admin/:pathMatch(.*)*", redirect: "/admin/dashboard" },
|
|
],
|
|
});
|
|
|
|
createApp(App)
|
|
.use(router)
|
|
.use(PrimeVue, {
|
|
ripple: true,
|
|
theme: {
|
|
preset: Aura,
|
|
options: {
|
|
darkModeSelector: ".admin-dark",
|
|
},
|
|
},
|
|
locale: {
|
|
accept: "确定",
|
|
reject: "取消",
|
|
clear: "清除",
|
|
apply: "应用",
|
|
emptyMessage: "暂无数据",
|
|
emptyFilterMessage: "没有匹配结果",
|
|
},
|
|
})
|
|
.use(ToastService)
|
|
.use(ConfirmationService)
|
|
.mount("#app");
|