| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- import { useAuthStore } from "@/stores/auth.store";
- import type { SearchRouteParam } from "@/types/route.type";
- import { createRouter, createWebHistory } from "vue-router";
- import RouteView from "../views/RouteView.vue";
- export const router = createRouter({
- history: createWebHistory(import.meta.env.BASE_URL),
- routes: [
- {
- path: "/",
- name: "Home",
- redirect: "/report/index"
- },
- {
- path: "/report",
- name: "Report",
- component: RouteView,
- children: [
- {
- path: "index",
- name: "ReportList",
- component: () => import("../views/report/ReportListView.vue"),
- },
- // {
- // path: "create",
- // name: "ReportCreate",
- // component: () => import("../views/report/ReportCreateView.vue"),
- // },
- {
- path: "edit/:id",
- name: "ReportEditor",
- component: () => import("../views/report/ReportEditorView.vue"),
- },
- {
- path: "preview/:id",
- name: "ReportPreview",
- component: () => import("../views/reportPreview/ReportPreviewView.vue"),
- },
- {
- path: "template",
- name: "ReportTemplate",
- component: () => import("../views/reportTemplate/ReportTemplateListView.vue"),
- },
- {
- path: "template/edit/:id",
- name: "ReportTemplateEditor",
- component: () => import("../views/reportTemplate/ReportTemplateEditorView.vue"),
- },
- ]
- },
- {
- path: "/search",
- name: "Search",
- component: RouteView,
- children: [
- {
- path: "index",
- name: "SearchIndex",
- component: () => import("../views/search/SearchView.vue")
- },
- {
- path: "advanced/index",
- name: "AdvancedSearchIndex",
- component: () => import("../views/search/AdvancedSearchView.vue"),
- },
- {
- path: "result",
- name: "SearchResult",
- component: () => import("../views/search/SearchResultView.vue")
- }
- ]
- },
- {
- path: "/detail",
- name: "DetailRoot",
- component: RouteView,
- children: [
- {
- path: ":id",
- name: "Detail",
- component: () => import("../views/detail/DetailView.vue"),
- }
- ]
- },
- {
- path: "/knowledgeGraph",
- name: "KnowledgeGraph",
- component: RouteView,
- children: [
- {
- path: "search",
- name: "KnowledgeGraph",
- component: () => import("../views/knowledgeGraph/KnowledgeGraphView.vue")
- }
- ]
- },
- {
- path: "/login",
- name: "Login",
- // route level code-splitting
- // this generates a separate chunk (About.[hash].js) for this route
- // which is lazy-loaded when the route is visited.
- component: () => import("../views/LoginView.vue"),
- },
- {
- path: "/history",
- name: "History",
- component: RouteView,
- children: [
- {
- path: "",
- name: "HistoryIndex",
- component: () => import("../views/history/HistoryView.vue"),
- }
- ]
- },
- {
- path: "/favorite",
- name: "Favorite",
- component: RouteView,
- children: [
- {
- path: "",
- name: "FavoriteIndex",
- component: () => import("../views/favorite/FavoriteView.vue"),
- }
- ]
- },
- {
- path: '/:pathMatch(.*)*',
- name: 'NotFound',
- component: () => import("../views/NotFound.vue"),
- },
- ],
- });
- router.beforeResolve(async to => {
- const authStore = useAuthStore();
- if (to.name != 'Login' && !authStore.isLoginIn()) {
- return { name: "Login" };
- }
- });
- export function routeToHome() {
- router.push({ name: "Home" })
- }
- export function routeToLogin() {
- router.push({ name: "Login" });
- }
- /**
- * 路由到报告编辑界面
- * @param id 报告ID
- */
- export function routeToReportEditor(id: number) {
- router.push({ name: "ReportEditor", params: { id }});
- }
- /**
- * 路由到搜索结果页面,把查询表达式传入到搜索结果页面
- * @param param queryString参数
- */
- export function routeToSearch(param: SearchRouteParam, extras: {[index: string]: any} = {}) {
- const queryStrParam: {[index: string]: any} = { ...param, ...extras };
- router.push({ name: 'SearchResult', query: queryStrParam });
- }
- /**
- * 路由到报告预览界面
- * @param id 报告ID
- */
- export function routeToReportPreview(id: number) {
- router.push({ name: 'ReportPreview', params: { id } })
- }
|