Files
riwa-ionic/src/router/index.ts

194 lines
5.0 KiB
TypeScript

import type { RouteRecordRaw } from "vue-router";
import { createRouter, createWebHistory } from "@ionic/vue-router";
import authRoutes from "./auth";
import { createRouterGuard } from "./guard";
const routes: Array<RouteRecordRaw> = [
{
path: "/",
redirect: "/layout/riwa",
},
{
path: "/:pathMatch(.*)*",
redirect: "/layout/riwa",
},
...authRoutes,
{
path: "/layout",
component: () => import("@/components/layout/default.vue"),
children: [
{
path: "riwa",
component: () => import("@/views/riwa/index.vue"),
},
{
path: "market",
component: () => import("@/views/market/index.vue"),
},
{
path: "trade",
component: () => import("@/views/trade/index.vue"),
},
{
path: "chat",
component: () => import("@/views/chat/index.vue"),
},
{
path: "user",
component: () => import("@/views/user/index.vue"),
meta: { requiresAuth: true },
},
],
},
{
path: "/onchain-address",
component: () => import("@/views/onchain-address/index.vue"),
meta: { requiresAuth: true },
},
{
path: "/deposit/fiat",
component: () => import("@/views/deposit/fiat.vue"),
meta: { requiresAuth: true },
},
{
path: "/withdraw/index",
component: () => import("@/views/withdraw/index.vue"),
meta: { requiresAuth: true },
},
{
path: "/wallet/bill",
component: () => import("@/views/wallet/bill.vue"),
meta: { requiresAuth: true },
},
{
path: "/wallet/transfer",
component: () => import("@/views/wallet/transfer.vue"),
meta: { requiresAuth: true },
},
{
path: "/user/settings",
component: () => import("@/views/user-settings/outlet.vue"),
meta: { requiresAuth: true },
children: [
{
path: "",
component: () => import("@/views/user-settings/index.vue"),
meta: { requiresAuth: true },
},
{
path: "username",
component: () => import("@/views/user-settings/username.vue"),
meta: { requiresAuth: true },
},
{
path: "nickname",
component: () => import("@/views/user-settings/nickname.vue"),
meta: { requiresAuth: true },
},
{
path: "email",
component: () => import("@/views/user-settings/email.vue"),
meta: { requiresAuth: true },
},
],
},
{
path: "/system-settings",
component: () => import("@/views/system-settings/outlet.vue"),
children: [
{
path: "",
component: () => import("@/views/system-settings/index.vue"),
},
{
path: "language",
component: () => import("@/views/system-settings/language.vue"),
},
{
path: "theme",
component: () => import("@/views/system-settings/theme.vue"),
},
],
},
{
path: "/issue/issuing-apply",
props: ({ query, params }) => ({ query, params }),
component: () => import("@/views/issue/issuing-apply/index.vue"),
meta: { requiresAuth: true },
},
{
path: "/trade-settings/bank-management",
component: () => import("@/views/trade-settings/bank-management/index.vue"),
meta: { requiresAuth: true },
},
{
path: "/trade-settings/my-subscribe",
component: () => import("@/views/trade-settings/my-subscribe/outlet.vue"),
meta: { requiresAuth: true },
children: [
{
path: "",
component: () => import("@/views/trade-settings/my-subscribe/index.vue"),
meta: { requiresAuth: true },
},
// {
// path: ":id",
// props: true,
// component: () => import("@/views/trade-settings/my-subscribe/detail.vue"),
// meta: { requiresAuth: true },
// },
],
},
{
path: "/trade-settings/my-issues",
component: () => import("@/views/trade-settings/my-issues/outlet.vue"),
meta: { requiresAuth: true },
children: [
{
path: "",
component: () => import("@/views/trade-settings/my-issues/index.vue"),
meta: { requiresAuth: true },
},
{
path: ":id",
props: true,
component: () => import("@/views/trade-settings/my-issues/detail.vue"),
meta: { requiresAuth: true },
},
],
},
{
path: "/trade-settings/bank-management/add",
component: () => import("@/views/trade-settings/bank-management/add.vue"),
meta: { requiresAuth: true },
},
{
path: "/trade-rwa/:id",
props: true,
component: () => import("@/views/trade-rwa/outlet.vue"),
meta: { requiresAuth: true },
children: [
{
path: "",
component: () => import("@/views/trade-rwa/index.vue"),
meta: { requiresAuth: true },
},
{
path: "edit",
name: "trade-rwa-edit",
component: () => import("@/views/trade-rwa/edit.vue"),
meta: { requiresAuth: true },
},
],
},
];
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes,
});
createRouterGuard(router);
export { router };