From 9a80865354af77c6e96ea3cac398fce0b30a20e9 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Wed, 17 Sep 2025 15:43:23 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 110 ++++++++++++++++++++++++++++--------------------- src/utils/menuUtils.js | 7 +++- 2 files changed, 69 insertions(+), 48 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 9f80aa1..f65a154 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -25,9 +25,9 @@ const routes = [ path: 'workbench', name: "workbench", component: () => import("../views/workspace/index.vue"), - meta: { permissionId: 10 } // 对应"工作台展示"id=10 + meta: { permissionId: 13 } // }, - + //金币管理 { path: '/goldManage', name: 'goldManage', @@ -37,7 +37,7 @@ const routes = [ path: '/audit', name: "audit", component: () => import("../views/audit/gold/audit.vue"), - meta: { permissionId: 40 }, + meta: { permissionId: 14 }, // redirect: '/index', children: [ // 充值审核 @@ -45,21 +45,30 @@ const routes = [ path: 'rechargeAudit', name: "rechargeAudit", component: () => import("../views/audit/gold/rechargeAudit.vue"), - meta: { permissionId: [11, 12] } // 对应"查看充值审核"id=11、"充值审批"id=12 + 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: [13, 14] } // 对应"查看退款审核"id=13、"退款审批"id=14 + meta: { permissionId: [29,36,37,38,39,40,41] } // 对应"查看退款审核"id=13、"退款审批"id=14 }, ] }, { - path: 'beanAudit', + path: '/beanAudit', name: "beanAudit", component: () => import("../views/audit/bean/beanAudit.vue"), - meta: { permissionId: [54, 55] } + 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 + }, + ] }, @@ -69,21 +78,21 @@ const routes = [ name: "coinConsume", component: () => import("../views/consume/gold/coinConsume.vue"), // redirect: '/coinConsume/add', - meta: { permissionId: 6 }, + meta: { permissionId: 19 }, children: [ // 金币新增消耗 { path: 'add', name: "addCoinConsume", component: () => import("../views/consume/gold/addCoinConsume.vue"), - meta: { permissionId: 19 } // 对应"提交金币消耗"id=19 + meta: { permissionId: 55 } // 对应"提交金币消耗"id=19 }, // 金币消耗明细详情 { path: 'detail', name: "coinConsumeDetail", component: () => import("../views/consume/gold/coinConsumeDetail.vue"), - meta: { permissionId: 20 } // 对应"查看金币消耗明细"id=20 + meta: { permissionId: 56 } // 对应"查看金币消耗明细"id=20 } ] }, @@ -92,35 +101,35 @@ const routes = [ path: '/beanConsume', name: "beanConsume", component: () => import("../views/consume/bean/beanConsume.vue"), - meta: { permissionId: 42 }, + meta: { permissionId: 20 }, children: [ // 金豆新增消耗 { path: 'add', name: "addBeanConsume", component: () => import("../views/consume/bean/addBeanConsume.vue"), - meta: { permissionId: 49 } // 对应"提交金豆消耗"id=49 + meta: { permissionId: 57 } // 对应"提交金豆消耗"id=49 }, // 直播 { path: 'live', name: "liveStream", component: () => import("../views/consume/bean/liveStream.vue"), - meta: { permissionId: 50 } // 对应"直播"id=50 + meta: { permissionId: 58 } // 对应"直播"id=50 }, // 铁粉 { path: 'fan', name: "dieHardFan", component: () => import("../views/consume/bean/dieHardFan.vue"), - meta: { permissionId: 51 } // 对应"铁粉"id=51 + meta: { permissionId: 59 } // 对应"铁粉"id=51 }, // 文章视频 { path: 'article', name: "articleVideo", component: () => import("../views/consume/bean/articleVideo.vue"), - meta: { permissionId: 52 } // 对应"文章视频"id=52 + meta: { permissionId: 60 } // 对应"文章视频"id=52 } ] @@ -131,13 +140,14 @@ const routes = [ path: '/rate', name: "rate", component: () => import("../views/managerecharge/rate.vue"), - meta: { permissionId: [15, 16] } // 对应"汇率查看"id=15、"汇率修改"id=16 + meta: { permissionId: [16,48,49] } // 对应"汇率查看"id=15、"汇率修改"id=16 }, // 金币充值 { path: '/coinRecharge', name: "coinRecharge", component: () => import("../views/recharge/gold/coinRecharge.vue"), + meta: { permissionId: 17 }, // redirect: '/coinRecharge/add', children: [ // 金币新增充值 @@ -145,14 +155,14 @@ const routes = [ path: 'add', name: "addCoinRecharge", component: () => import("../views/recharge/gold/addCoinRecharge.vue"), - meta: { permissionId: 17 } // 对应"提交金币充值"id=17 + meta: { permissionId: 50 } // 对应"提交金币充值"id=17 }, // 金币充值明细详情 { path: 'detail', name: "coinRechargeDetail", component: () => import("../views/recharge/gold/coinRechargeDetail.vue"), - meta: { permissionId: 18 } // 对应"查看金币充值明细"id=18 + meta: { permissionId: 51 } // 对应"查看金币充值明细"id=18 } ] }, @@ -163,58 +173,52 @@ const routes = [ 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: 46 } // 对应"提交金豆充值"id=46 + meta: { permissionId: 52 } // 对应"提交金豆充值"id=46 }, // 金豆系统充值 { path: 'system', name: "beanSystemRecharge", component: () => import("../views/recharge/bean/beanSystemRecharge.vue"), - meta: { permissionId: 47 } // 对应"查看金豆系统充值明细"id=47 + meta: { permissionId: 53 } // 对应"查看金豆系统充值明细"id=47 }, // 金豆线上充值 { path: 'online', name: "beanOnlineRecharge", component: () => import("../views/recharge/bean/beanOnlineRecharge.vue"), - meta: { permissionId: 48 } // 对应"查看金豆线上充值明细"id=48 + meta: { permissionId: 54 } // 对应"查看金豆线上充值明细"id=48 } ] }, - // 金币退款 + // 金币退款 { path: '/coinRefund', name: "coinRefund", component: () => import("../views/refund/gold/coinRefund.vue"), - // redirect: '/coinRefund/add', - meta: { permissionId: 7 }, + meta: { permissionId: 9 }, children: [ // 金币新增退款 { path: 'add', name: "addCoinRefund", component: () => import("../views/refund/gold/addCoinRefund.vue"), - meta: { permissionId: 21 } // 对应"提交金币退款"id=21 + meta: { permissionId: 61 } }, // 金币退款明细详情 { path: 'detail', name: "coinRefundDetail", component: () => import("../views/refund/gold/coinRefundDetail.vue"), - meta: { permissionId: 22 } // 对应"查看金币退款明细"id=22 - }, - { - path: 'addRefund', - name: "addNewCoinRefund", - component: () => import("../views/refund/gold/addNewCoinRefund.vue"), - meta: { permissionId: 58 } + meta: { permissionId: 62 } } ] }, @@ -224,36 +228,49 @@ const routes = [ path: '/usergold', name: "usergold", component: () => import("../views/usergold/gold/clientCount.vue"), - // redirect: '/usergold/detail', - meta: { permissionId: 8 }, + meta: { permissionId: 10 }, children: [ // 金币明细 { path: 'detail', name: "clientCountDetail", component: () => import("../views/usergold/gold/clientCountDetail.vue"), - meta: { permissionId: 23 } // 对应"查看金币明细"id=23 + meta: { permissionId: 63 } }, // 金币余额 { path: 'balance', name: "clientCountBalance", component: () => import("../views/usergold/gold/clientCountBalance.vue"), - meta: { permissionId: 24 } // 对应"查看金币余额"id=24 + meta: { permissionId: 64 } }, ] }, - { - path: 'userbean', - name: "userbean", - component: () => import("../views/usergold/bean/userbean.vue"), - meta: { permissionId: 45 } - }, + // { + // 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] } + meta: { permissionId: 12 }, + children: [ + // { + // path: 'newHistory', + // name: "newHistory", + // component: () => import("../views/history/newHistory.vue"), + // meta: { permissionId: 12 } + // }, + // { + // path: 'oldHistory', + // name: "oldHistory", + // component: () => import("../views/history/oldHistory.vue"), + // meta: { permissionId: 12 } + // } + ] }, // 权限管理 @@ -261,21 +278,21 @@ const routes = [ path: '/permissions', name: "permissions", component: () => import("../views/permissions/permissions.vue"), - meta: { permissionId: 9 }, + meta: { permissionId: 11 }, children: [ // 用户权限 { path: 'userPermission', name: "userPermission", component: () => import("../views/permissions/userPermission.vue"), - meta: { permissionId: 25 } + meta: { permissionId: [24,65,66,67,68,69] } }, // 角色权限 { path: 'rolePermission', name: "rolePermission", component: () => import("../views/permissions/rolePermission.vue"), - meta: { permissionId: 30 } + meta: { permissionId: [25,70,71,72] } }, ] }, @@ -368,6 +385,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 ac7a2b3..78918df 100644 --- a/src/utils/menuUtils.js +++ b/src/utils/menuUtils.js @@ -43,14 +43,14 @@ export const getRoutePath = (menu) => { // 路由映射表:key为接口menuName,value为对应路由路径 const routeMap = { - '工作台展示': '/workbench', + '工作台查看': '/workbench', '金币管理': '/goldManage', '现金管理': '/moneyManage', '金币审核': '/audit', '金豆审核': '/beanAudit', - '汇率管理': '/rate', + '现金汇率': '/rate', '金币充值': '/coinRecharge', @@ -71,6 +71,9 @@ export const getRoutePath = (menu) => { '金币客户账户明细': '/usergold', '金豆客户账户明细': '/userbean', + + '用户管理': '/permissions/userPermission', + '角色管理': '/permissions/rolePermission', }; // 未匹配的菜单默认使用id作为路由(可根据实际需求调整) From 14b78d0fdcbb4be905ff509e46b8a7ada9566e16 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Wed, 17 Sep 2025 16:24:15 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/audit/gold/audit.vue | 5 +++-- src/views/consume/bean/beanConsume.vue | 8 ++++---- src/views/consume/gold/coinConsume.vue | 6 +++--- src/views/managerecharge/rate.vue | 8 ++++---- src/views/recharge/bean/beanRecharge.vue | 6 +++--- src/views/recharge/gold/coinRecharge.vue | 4 ++-- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/views/audit/gold/audit.vue b/src/views/audit/gold/audit.vue index f39ae61..85caee9 100644 --- a/src/views/audit/gold/audit.vue +++ b/src/views/audit/gold/audit.vue @@ -42,8 +42,9 @@ const navigateTo = (name) => { const initPermissions = () => { if (!menuTree.value || !menuTree.value.length) return; - hasRecharge.value = hasMenuPermission(menuTree.value, permissionMapping.Recharge_Audit); - hasRefund.value = hasMenuPermission(menuTree.value, permissionMapping.Refund_Audit); + hasRecharge.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeAudit); + hasRefund.value = hasMenuPermission(menuTree.value, permissionMapping.refundAudit); + console.log('看看权限树',menuTree.value,'permissionMapping.Recharge_Audit:',permissionMapping.Recharge_Audit) }; // 默认跳转逻辑 diff --git a/src/views/consume/bean/beanConsume.vue b/src/views/consume/bean/beanConsume.vue index 715ba57..496297b 100644 --- a/src/views/consume/bean/beanConsume.vue +++ b/src/views/consume/bean/beanConsume.vue @@ -68,10 +68,10 @@ const navigateTo = (name) => { const initPermissions = () => { if (!menuTree.value || !menuTree.value.length) return; - hasAdd.value = hasMenuPermission(menuTree.value, permissionMapping.Submit_Golden_Bean_Consumption); - hasLive.value = hasMenuPermission(menuTree.value, permissionMapping.View_Golden_Bean_Live_Consumption_Details); - hasFan.value = hasMenuPermission(menuTree.value, permissionMapping.View_Golden_Bean_Fan_Consumption_Details); - hasArticleVideo.value = hasMenuPermission(menuTree.value, permissionMapping.View_Golden_Bean_Article_Video_Consumption_Details); + hasAdd.value = hasMenuPermission(menuTree.value, permissionMapping.addBeanConsume); + hasLive.value = hasMenuPermission(menuTree.value, permissionMapping.beanZBDetail); + hasFan.value = hasMenuPermission(menuTree.value, permissionMapping.beanTFDetail); + hasArticleVideo.value = hasMenuPermission(menuTree.value, permissionMapping.beanSPWZDetail); }; // 默认跳转逻辑 diff --git a/src/views/consume/gold/coinConsume.vue b/src/views/consume/gold/coinConsume.vue index f432bd3..2838da3 100644 --- a/src/views/consume/gold/coinConsume.vue +++ b/src/views/consume/gold/coinConsume.vue @@ -42,8 +42,8 @@ const navigateTo = (name) => { // 初始化权限状态 const initPermissions = () => { if (!menuTree.value || !menuTree.value.length) return; - hasAdd.value = hasMenuPermission(menuTree.value, permissionMapping.Submit_Gold_Coin_Consumption); - hasDetail.value = hasMenuPermission(menuTree.value, permissionMapping.View_Gold_Coin_Consumption_Details); + hasAdd.value = hasMenuPermission(menuTree.value, permissionMapping.addCoinConsume); + hasDetail.value = hasMenuPermission(menuTree.value, permissionMapping.coinConsumeDetail); }; // 默认跳转逻辑 @@ -51,7 +51,7 @@ const getDefaultAuditRoute = () => { initPermissions(); if (hasDetail.value) return 'coinConsumeDetail'; if (hasAdd.value) return 'addCoinConsume'; - return 'addCoinConsume'; + return 'coinConsumeDetail'; }; // 监听路由变化更新标签状态 diff --git a/src/views/managerecharge/rate.vue b/src/views/managerecharge/rate.vue index 0d3eed1..436e18a 100644 --- a/src/views/managerecharge/rate.vue +++ b/src/views/managerecharge/rate.vue @@ -122,10 +122,10 @@ const getEditData = async function (row) { } } const editRole = ref(true) -editRole.value = findMenuById(menuTree.value, permissionMapping.Exchange_Rate_Modification) +editRole.value = findMenuById(menuTree.value, permissionMapping.rateEdit) // 编辑汇率 const editRate = async function () { - if (findMenuById(menuTree.value, permissionMapping.Exchange_Rate_Modification)) { + if (findMenuById(menuTree.value, permissionMapping.rateEdit)) { // 提交前验证 汇率是否为数字 rateEdit.value.num = parseFloat(rateEdit.value.num); try { @@ -265,9 +265,9 @@ onMounted(async function () { {{ formatDate(scope.row.updateTime) }} - +