diff --git a/src/router/index.js b/src/router/index.js index 73cd248..123827b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,7 +1,7 @@ -import {createRouter, createWebHashHistory} from 'vue-router'; +import { createRouter, createWebHashHistory } from 'vue-router'; import axios from "axios"; -import {storeToRefs} from "pinia"; -import {useAdminStore} from "@/store/index.js"; +import { storeToRefs } from "pinia"; +import { useAdminStore } from "@/store/index.js"; // 路由定义(包含权限映射 meta.permissionId) @@ -16,267 +16,317 @@ const routes = [ component: () => import("../views/login.vue"), }, { - meta: {requireAuth: true}, + meta: { requireAuth: true }, path: '/', component: () => import("../views/home.vue"), children: [ // 工作台 { - path: '/workspace', - name: "workspace", + path: 'workbench', + name: "workbench", component: () => import("../views/workspace/index.vue"), - meta: {permissionId: 10} // 对应"工作台展示"id=10 + meta: { permissionId: 13 } // }, - - - // 审核 + //金币管理 { - path: '/audit', - name: "audit", - component: () => import("../views/audit/gold/audit.vue"), - meta: {permissionId: 40}, - // redirect: '/index', + path: '/goldManage', + name: 'goldManage', + meta:{permissionId:3}, children: [ - // 充值审核 - { - path: 'rechargeAudit', - name: "rechargeAudit", - component: () => import("../views/audit/gold/rechargeAudit.vue"), - meta: {permissionId: [11, 12]} // 对应"查看充值审核"id=11、"充值审批"id=12 - }, - // 退款审核 + // 审核 { - path: 'refundAudit', - name: "refundAudit", - component: () => import("../views/audit/gold/refundAudit.vue"), - meta: {permissionId: [13, 14]} // 对应"查看退款审核"id=13、"退款审批"id=14 + path: '/audit', + name: "audit", + component: () => import("../views/audit/gold/audit.vue"), + meta: { permissionId: 14 }, + // redirect: '/index', + children: [ + // 充值审核 + { + path: 'rechargeAudit', + name: "rechargeAudit", + component: () => import("../views/audit/gold/rechargeAudit.vue"), + meta: { permissionId: [28,30,31,32,33,34,35] } // 对应"查看充值审核"id=11、"充值审批"id=12 + }, + // 退款审核 + { + path: 'refundAudit', + name: "refundAudit", + component: () => import("../views/audit/gold/refundAudit.vue"), + meta: { permissionId: [29,36,37,38,39,40,41] } // 对应"查看退款审核"id=13、"退款审批"id=14 + }, + ] + }, { + path: '/beanAudit', + name: "beanAudit", + component: () => import("../views/audit/bean/beanAudit.vue"), + meta: { permissionId: 15 }, + children: [ + // 充值审核 + { + path: 'addbeanAudit', + name: "addbeanAudit", + component: () => import("../views/audit/bean/beanAudit.vue"), + meta: { permissionId: [42,43,44,45,46,47] } // 对应"查看充值审核"id=11、"充值审批"id=12 + }, + ] }, - ] - },{ - path: 'beanAudit', - name: "beanAudit", - component: () => import("../views/audit/bean/beanAudit.vue"), - meta: {permissionId: [54,55]} - }, - // 金币消耗 - { - path: '/coinConsume', - name: "coinConsume", - component: () => import("../views/consume/gold/coinConsume.vue"), - // redirect: '/coinConsume/add', - meta: {permissionId: 6}, - children: [ - // 金币新增消耗 + // 金币消耗 { - path: 'add', - name: "addCoinConsume", - component: () => import("../views/consume/gold/addCoinConsume.vue"), - meta: {permissionId: 19} // 对应"提交金币消耗"id=19 + path: '/coinConsume', + name: "coinConsume", + component: () => import("../views/consume/gold/coinConsume.vue"), + // redirect: '/coinConsume/add', + meta: { permissionId: 19 }, + children: [ + // 金币新增消耗 + { + path: 'add', + name: "addCoinConsume", + component: () => import("../views/consume/gold/addCoinConsume.vue"), + meta: { permissionId: 55 } // 对应"提交金币消耗"id=19 + }, + // 金币消耗明细详情 + { + path: 'detail', + name: "coinConsumeDetail", + component: () => import("../views/consume/gold/coinConsumeDetail.vue"), + meta: { permissionId: 56 } // 对应"查看金币消耗明细"id=20 + } + ] }, - // 金币消耗明细详情 - { - path: 'detail', - name: "coinConsumeDetail", - component: () => import("../views/consume/gold/coinConsumeDetail.vue"), - meta: {permissionId: 20} // 对应"查看金币消耗明细"id=20 - } - ] - }, - // 金豆消耗 - { - path: '/beanConsume', - name: "beanConsume", - component: () => import("../views/consume/bean/beanConsume.vue"), - meta: {permissionId: 42}, - children: [ - // 金豆新增消耗 + // 金豆消耗 { - path: 'add', - name: "addBeanConsume", - component: () => import("../views/consume/bean/addBeanConsume.vue"), - meta: {permissionId: 49} // 对应"提交金豆消耗"id=49 + path: '/beanConsume', + name: "beanConsume", + component: () => import("../views/consume/bean/beanConsume.vue"), + meta: { permissionId: 20 }, + children: [ + // 金豆新增消耗 + { + path: 'add', + name: "addBeanConsume", + component: () => import("../views/consume/bean/addBeanConsume.vue"), + meta: { permissionId: 57 } // 对应"提交金豆消耗"id=49 + }, + // 直播 + { + path: 'live', + name: "liveStream", + component: () => import("../views/consume/bean/liveStream.vue"), + meta: { permissionId: 58 } // 对应"直播"id=50 + }, + // 铁粉 + { + path: 'fan', + name: "dieHardFan", + component: () => import("../views/consume/bean/dieHardFan.vue"), + meta: { permissionId: 59 } // 对应"铁粉"id=51 + }, + // 文章视频 + { + path: 'article', + name: "articleVideo", + component: () => import("../views/consume/bean/articleVideo.vue"), + meta: { permissionId: 60 } // 对应"文章视频"id=52 + } + + ] }, - // 直播 + + // 汇率管理 { - path: 'live', - name: "liveStream", - component: () => import("../views/consume/bean/liveStream.vue"), - meta: {permissionId: 50} // 对应"直播"id=50 + path: '/rate', + name: "rate", + component: () => import("../views/managerecharge/rate.vue"), + meta: { permissionId: [16,48,49] } // 对应"汇率查看"id=15、"汇率修改"id=16 }, - // 铁粉 + // 金币充值 { - path: 'fan', - name: "dieHardFan", - component: () => import("../views/consume/bean/dieHardFan.vue"), - meta: {permissionId: 51} // 对应"铁粉"id=51 + path: '/coinRecharge', + name: "coinRecharge", + component: () => import("../views/recharge/gold/coinRecharge.vue"), + meta: { permissionId: 17 }, + // redirect: '/coinRecharge/add', + children: [ + // 金币新增充值 + { + path: 'add', + name: "addCoinRecharge", + component: () => import("../views/recharge/gold/addCoinRecharge.vue"), + meta: { permissionId: 50 } // 对应"提交金币充值"id=17 + }, + // 金币充值明细详情 + { + path: 'detail', + name: "coinRechargeDetail", + component: () => import("../views/recharge/gold/coinRechargeDetail.vue"), + meta: { permissionId: 51 } // 对应"查看金币充值明细"id=18 + } + ] }, - // 文章视频 - { - path: 'article', - name: "articleVideo", - component: () => import("../views/consume/bean/articleVideo.vue"), - meta: {permissionId: 52} // 对应"文章视频"id=52 - } - - ] - }, - // 汇率管理 - { - path: '/rate', - name: "rate", - component: () => import("../views/managerecharge/rate.vue"), - meta: {permissionId: [15, 16]} // 对应"汇率查看"id=15、"汇率修改"id=16 - }, - // 金币充值 - { - path: '/coinRecharge', - name: "coinRecharge", - component: () => import("../views/recharge/gold/coinRecharge.vue"), - // redirect: '/coinRecharge/add', - children: [ - // 金币新增充值 + // 金豆充值 { - path: 'add', - name: "addCoinRecharge", - component: () => import("../views/recharge/gold/addCoinRecharge.vue"), - meta: {permissionId: 17} // 对应"提交金币充值"id=17 + path: '/beanRecharge', + name: "beanRecharge", + component: () => import("../views/recharge/bean/beanRecharge.vue"), + // redirect: '/coinRecharge/add', + meta: { permissionId: 18 }, + children: [ + // 金豆新增充值 + { + path: 'add', + name: "addBeanRecharge", + component: () => import("../views/recharge/bean/addBeanRecharge.vue"), + meta: { permissionId: 52 } // 对应"提交金豆充值"id=46 + }, + // 金豆系统充值 + { + path: 'system', + name: "beanSystemRecharge", + component: () => import("../views/recharge/bean/beanSystemRecharge.vue"), + meta: { permissionId: 53 } // 对应"查看金豆系统充值明细"id=47 + }, + // 金豆线上充值 + { + path: 'online', + name: "beanOnlineRecharge", + component: () => import("../views/recharge/bean/beanOnlineRecharge.vue"), + meta: { permissionId: 54 } // 对应"查看金豆线上充值明细"id=48 + } + ] }, - // 金币充值明细详情 - { - path: 'detail', - name: "coinRechargeDetail", - component: () => import("../views/recharge/gold/coinRechargeDetail.vue"), - meta: {permissionId: 18} // 对应"查看金币充值明细"id=18 - } - ] - }, - // 金豆充值 - { - path: '/beanRecharge', - name: "beanRecharge", - component: () => import("../views/recharge/bean/beanRecharge.vue"), - // redirect: '/coinRecharge/add', - children: [ - // 金豆新增充值 + // 金币退款 { - path: 'add', - name: "addBeanRecharge", - component: () => import("../views/recharge/bean/addBeanRecharge.vue"), - meta: {permissionId: 46} // 对应"提交金豆充值"id=46 + path: '/coinRefund', + name: "coinRefund", + component: () => import("../views/refund/gold/coinRefund.vue"), + meta: { permissionId: 9 }, + children: [ + // 金币新增退款 + { + path: 'add', + name: "addCoinRefund", + component: () => import("../views/refund/gold/addCoinRefund.vue"), + meta: { permissionId: 61 } + }, + // 金币退款明细详情 + { + path: 'detail', + name: "coinRefundDetail", + component: () => import("../views/refund/gold/coinRefundDetail.vue"), + meta: { permissionId: 62 } + } + ] }, - // 金豆系统充值 + + // 客户账户明细 { - path: 'system', - name: "beanSystemRecharge", - component: () => import("../views/recharge/bean/beanSystemRecharge.vue"), - meta: {permissionId: 47} // 对应"查看金豆系统充值明细"id=47 + path: '/usergold', + name: "usergold", + component: () => import("../views/usergold/gold/clientCount.vue"), + meta: { permissionId: 10 }, + children: [ + // 金币明细 + { + path: 'detail', + name: "clientCountDetail", + component: () => import("../views/usergold/gold/clientCountDetail.vue"), + meta: { permissionId: 63 } + }, + // 金币余额 + { + path: 'balance', + name: "clientCountBalance", + component: () => import("../views/usergold/gold/clientCountBalance.vue"), + meta: { permissionId: 64 } + }, + ] }, - // 金豆线上充值 - { - path: 'online', - name: "beanOnlineRecharge", - component: () => import("../views/recharge/bean/beanOnlineRecharge.vue"), - meta: {permissionId: 48} // 对应"查看金豆线上充值明细"id=48 - } - ] - }, - - // 金币退款 - { - path: '/coinRefund', - name: "coinRefund", - component: () => import("../views/refund/gold/coinRefund.vue"), - // redirect: '/coinRefund/add', - meta: {permissionId: 7}, - children: [ - // 金币新增退款 { - path: 'add', - name: "addCoinRefund", - component: () => import("../views/refund/gold/addCoinRefund.vue"), - meta: {permissionId: 21} // 对应"提交金币退款"id=21 + path: '/userbean', + name: "userbean", + component: () => import("../views/usergold/bean/userbean.vue"), + meta: { permissionId: 45 } }, - // 金币退款明细详情 { - path: 'detail', - name: "coinRefundDetail", - component: () => import("../views/refund/gold/coinRefundDetail.vue"), - meta: {permissionId: 22} // 对应"查看金币退款明细"id=22 + path: '/history', + name: "history", + component: () => import("../views/history/history.vue"), + meta: { permissionId: 12 }, + children: [ + { + path: 'newHistory', + name: "newHistory", + component: () => import("../views/history/newHistory.vue"), + meta: { permissionId: 26 } + }, + { + path: 'oldHistory', + name: "oldHistory", + component: () => import("../views/history/oldHistory.vue"), + meta: { permissionId: 27 } + } + ] }, + + // 权限管理 { - path: 'addRefund', - name: "addNewCoinRefund", - component: () => import("../views/refund/gold/addNewCoinRefund.vue"), - meta: {permissionId: 58} + path: '/permissions', + name: "permissions", + component: () => import("../views/permissions/permissions.vue"), + meta: { permissionId: 11 }, + children: [ + // 用户权限 + { + path: 'userPermission', + name: "userPermission", + component: () => import("../views/permissions/userPermission.vue"), + meta: { permissionId: 24 } + }, + // 角色权限 + { + path: 'rolePermission', + name: "rolePermission", + component: () => import("../views/permissions/rolePermission.vue"), + meta: { permissionId: 25 } + } + ] } ] }, - - // 客户账户明细 { - path: '/usergold', - name: "usergold", - component: () => import("../views/usergold/gold/clientCount.vue"), - // redirect: '/usergold/detail', - meta: {permissionId: 8}, - children: [ - // 金币明细 + path:'/moneyManage', + name:'moneyManage', + meta:{permissionId:4}, + children:[ + // 收款明细 { - path: 'detail', - name: "clientCountDetail", - component: () => import("../views/usergold/gold/clientCountDetail.vue"), - meta: {permissionId: 23} // 对应"查看金币明细"id=23 + path: 'receiveDetail', + name: "receiveDetail", + component: () => import("../views/moneyManage/receiveDetail/receiveDetail.vue"), + meta: { permissionId: 74 } }, - // 金币余额 + // 退款明细 { - path: 'balance', - name: "clientCountBalance", - component: () => import("../views/usergold/gold/clientCountBalance.vue"), - meta: {permissionId: 24} // 对应"查看金币余额"id=24 + path: 'refundDetail', + name: "refundDetail", + component: () => import("../views/moneyManage/refundDetail/refundDetail.vue"), + meta: { permissionId: 75 } }, - ] - }, - { - path: 'userbean', - name: "userbean", - component: () => import("../views/usergold/bean/userbean.vue"), - meta:{ permissionId: 45 } - }, - { - path: '/history', - name: "history", - component: () => import("../views/history/history.vue"), - meta:{ permissionId: [56,57] } - }, - - // 权限管理 - { - path: '/permissions', - name: "permissions", - component: () => import("../views/permissions/permissions.vue"), - meta: {permissionId: 9}, - children: [ - // 用户权限 + // 执行明细 { - path: 'userPermission', - name: "userPermission", - component: () => import("../views/permissions/userPermission.vue"), - meta: {permissionId: 25} - }, - // 角色权限 - { - path: 'rolePermission', - name: "rolePermission", - component: () => import("../views/permissions/rolePermission.vue"), - meta: {permissionId: 30} + path: 'executor', + name: "executor", + component: () => import("../views/moneyManage/executor/executor.vue"), + meta: { permissionId: 76 } }, ] }, - // 没有权限 { path: '/noPermission', @@ -320,7 +370,7 @@ const getAllPermissionIds = (menuTree) => { router.beforeEach(async (to, from, next) => { const adminStore = useAdminStore() - const {adminData, menuTree} = storeToRefs(adminStore) + const { adminData, menuTree } = storeToRefs(adminStore) const token = localStorage.getItem("token"); const machineId = localStorage.getItem("machineId"); @@ -356,6 +406,7 @@ router.beforeEach(async (to, from, next) => { // 拿权限id userPermissionIds = getAllPermissionIds(menuTree.value) + console.log("userPermissionIds",userPermissionIds) // 2.4 权限验证(逻辑不变) console.log('to.meta:', to.meta) diff --git a/src/utils/menuUtils.js b/src/utils/menuUtils.js index 3c9877a..82065e1 100644 --- a/src/utils/menuUtils.js +++ b/src/utils/menuUtils.js @@ -43,12 +43,14 @@ export const getRoutePath = (menu) => { // 路由映射表:key为接口menuName,value为对应路由路径 const routeMap = { - '工作台展示': '/workspace', + '工作台查看': '/workbench', + '金币管理': '/goldManage', + '现金管理': '/moneyManage', '金币审核': '/audit', '金豆审核': '/beanAudit', - '汇率管理': '/rate', + '现金汇率': '/rate', '金币充值': '/coinRecharge', @@ -62,13 +64,23 @@ export const getRoutePath = (menu) => { // '金豆退款': '/beanRefund', '历史数据查询': '/history', + '金币查询(新)': '/history/newHistory', + '金币查询(旧)': '/history/oldHistory', '权限管理': '/permissions', + '用户管理': '/permissions/userPermission', + '角色管理': '/permissions/rolePermission', '金币客户账户明细': '/usergold', '金豆客户账户明细': '/userbean', + + + + '收款明细': '/moneyManage/receiveDetail', + '退款明细': '/moneyManage/refundDetail', + '执行人': '/moneyManage/executor/executor', }; // 未匹配的菜单默认使用id作为路由(可根据实际需求调整)