金币系统前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
4.3 KiB

  1. import { createRouter, createWebHashHistory } from 'vue-router';
  2. const router = createRouter({
  3. history: createWebHashHistory(),
  4. routes: [
  5. { path: '/login', name: "login", component: () => import("../views/login.vue") },
  6. { path: '/', redirect: "/login" },
  7. { path: '/test', component: () => import("../views/z.vue") },
  8. {
  9. meta: { requireAuth: true },
  10. path: '/index', component: () => import("../views/index.vue"),
  11. children: [
  12. // 工作台
  13. { path: '/workspace', name: "workspace", component: () => import("../views/workspace/index.vue") },
  14. // 充值审核
  15. { path: '/rechargeAudit', name: "rechargeAudit", component: () => import("../views/audit/rechargeAudit.vue") },
  16. // 退款审核
  17. { path: '/refundAudit', name: "refundAudit", component: () => import("../views/audit/refundAudit.vue") },
  18. // 新增消费
  19. { path: '/addConsume', name: "addConsume", component: () => import("../views/consume/addConsume.vue") },
  20. // 所有消费明细
  21. { path: '/allConsume', name: "allConsume", component: () => import("../views/consume/allConsume.vue") },
  22. // 活动管理
  23. { path: '/activity', name: "activity", component: () => import("../views/managerecharge/activity.vue") },
  24. // 汇率管理
  25. { path: '/rate', name: "rate", component: () => import("../views/managerecharge/rate.vue") },
  26. // 新增充值
  27. { path: '/addRecharge', name: "addRecharge", component: () => import("../views/recharge/addRecharge.vue") },
  28. // 客户充值明细
  29. { path: '/adminRecharge', name: "adminRecharge", component: () => import("../views/recharge/adminRecharge.vue") },
  30. // 所有充值明细
  31. { path: '/allRecharge', name: "allRecharge", component: () => import("../views/recharge/allRecharge.vue") },
  32. // 新增退款
  33. { path: '/addRefund', name: "addRefund", component: () => import("../views/refund/addRefund.vue") },
  34. // 退款明细
  35. { path: '/allRefund', name: "allRefund", component: () => import("../views/refund/allRefund.vue") },
  36. // 客户金币明细
  37. { path: '/usergold', name: "usergold", component: () => import("../views/usergold/index.vue") },
  38. // 客户金币余额
  39. { path: '/usergoldInfo', name: "usergoldInfo", component: () => import("../views/usergoldInfo/index.vue") },
  40. // 权限管理
  41. { path: '/permissions', name: "permissions", component: () => import("../views/permissions/index.vue") },
  42. // 没有权限
  43. { path: '/noPermission', name: "noPermission", component: () => import("../views/noPermissionPage.vue") },
  44. ]
  45. },
  46. ]
  47. });
  48. router.beforeEach((to, from, next) => {
  49. const token = localStorage.getItem("token");
  50. const permission = localStorage.getItem("permission");
  51. if (to.name != "login" && !token) {
  52. next({ name: "login" });
  53. } else {
  54. if (permission == "4" && to.name != "noPermission") {
  55. next({ name: "noPermission" });
  56. } else if (permission == "3") {
  57. if (to.name == "addConsume" || to.name == "allConsume"
  58. || to.name == "addRecharge" || to.name == "adminRecharge" || to.name == "allRecharge"
  59. || to.name == "addRefund" || to.name == "allRefund"
  60. || to.name == "permissions") {
  61. next({ name: "workspace" });
  62. } else {
  63. next();
  64. }
  65. } else if (permission == '2') {
  66. if (to.name == "rechargeAudit" || to.name == "refundAudit"
  67. || to.name == "activity" || to.name == "rate"
  68. || to.name == "permissions") {
  69. next({ name: "workspace" })
  70. } else {
  71. next();
  72. }
  73. } else if (permission == '5') {
  74. if (to.name == "permissions") {
  75. next({ name: "workspace" })
  76. } else {
  77. next();
  78. }
  79. }
  80. else {
  81. next();
  82. }
  83. }
  84. })
  85. export default router;