Browse Source

Merge branch 'milestone-20250913-现金管理' into zhangrenyuan/feature-20250917134308-现金管理

milestone-20250917-重构工作台
zhangrenyuan 3 weeks ago
parent
commit
a698ca67af
  1. 454
      src/router/index.js
  2. 169
      src/utils/menuTreePermission.js
  3. 4
      src/utils/menuUtils.js

454
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,264 +16,276 @@ 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: 10 } // 对应"工作台展示"id=10
},
// 审核
{
path: '/audit',
name: "audit",
component: () => import("../views/audit/gold/audit.vue"),
meta: {permissionId: 40},
// redirect: '/index',
path: '/goldManage',
name: 'goldManage',
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: 40 },
// redirect: '/index',
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: 'beanAudit',
name: "beanAudit",
component: () => import("../views/audit/bean/beanAudit.vue"),
meta: { permissionId: [54, 55] }
},
]
},{
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: 6 },
children: [
// 金币新增消耗
{
path: 'add',
name: "addCoinConsume",
component: () => import("../views/consume/gold/addCoinConsume.vue"),
meta: { permissionId: 19 } // 对应"提交金币消耗"id=19
},
// 金币消耗明细详情
{
path: 'detail',
name: "coinConsumeDetail",
component: () => import("../views/consume/gold/coinConsumeDetail.vue"),
meta: { permissionId: 20 } // 对应"查看金币消耗明细"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: 42 },
children: [
// 金豆新增消耗
{
path: 'add',
name: "addBeanConsume",
component: () => import("../views/consume/bean/addBeanConsume.vue"),
meta: { permissionId: 49 } // 对应"提交金豆消耗"id=49
},
// 直播
{
path: 'live',
name: "liveStream",
component: () => import("../views/consume/bean/liveStream.vue"),
meta: { permissionId: 50 } // 对应"直播"id=50
},
// 铁粉
{
path: 'fan',
name: "dieHardFan",
component: () => import("../views/consume/bean/dieHardFan.vue"),
meta: { permissionId: 51 } // 对应"铁粉"id=51
},
// 文章视频
{
path: 'article',
name: "articleVideo",
component: () => import("../views/consume/bean/articleVideo.vue"),
meta: { permissionId: 52 } // 对应"文章视频"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: [15, 16] } // 对应"汇率查看"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"),
// redirect: '/coinRecharge/add',
children: [
// 金币新增充值
{
path: 'add',
name: "addCoinRecharge",
component: () => import("../views/recharge/gold/addCoinRecharge.vue"),
meta: { permissionId: 17 } // 对应"提交金币充值"id=17
},
// 金币充值明细详情
{
path: 'detail',
name: "coinRechargeDetail",
component: () => import("../views/recharge/gold/coinRechargeDetail.vue"),
meta: { permissionId: 18 } // 对应"查看金币充值明细"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',
children: [
// 金豆新增充值
{
path: 'add',
name: "addBeanRecharge",
component: () => import("../views/recharge/bean/addBeanRecharge.vue"),
meta: { permissionId: 46 } // 对应"提交金豆充值"id=46
},
// 金豆系统充值
{
path: 'system',
name: "beanSystemRecharge",
component: () => import("../views/recharge/bean/beanSystemRecharge.vue"),
meta: { permissionId: 47 } // 对应"查看金豆系统充值明细"id=47
},
// 金豆线上充值
{
path: 'online',
name: "beanOnlineRecharge",
component: () => import("../views/recharge/bean/beanOnlineRecharge.vue"),
meta: { permissionId: 48 } // 对应"查看金豆线上充值明细"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: 'system',
name: "beanSystemRecharge",
component: () => import("../views/recharge/bean/beanSystemRecharge.vue"),
meta: {permissionId: 47} // 对应"查看金豆系统充值明细"id=47
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: '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 }
}
]
},
// 金豆线上充值
{
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: '/usergold',
name: "usergold",
component: () => import("../views/usergold/gold/clientCount.vue"),
// redirect: '/usergold/detail',
meta: { permissionId: 8 },
children: [
// 金币明细
{
path: 'detail',
name: "clientCountDetail",
component: () => import("../views/usergold/gold/clientCountDetail.vue"),
meta: { permissionId: 23 } // 对应"查看金币明细"id=23
},
// 金币余额
{
path: 'balance',
name: "clientCountBalance",
component: () => import("../views/usergold/gold/clientCountBalance.vue"),
meta: { permissionId: 24 } // 对应"查看金币余额"id=24
},
]
},
// 金币退款明细详情
{
path: 'detail',
name: "coinRefundDetail",
component: () => import("../views/refund/gold/coinRefundDetail.vue"),
meta: {permissionId: 22} // 对应"查看金币退款明细"id=22
path: 'userbean',
name: "userbean",
component: () => import("../views/usergold/bean/userbean.vue"),
meta: { permissionId: 45 }
},
{
path: 'addRefund',
name: "addNewCoinRefund",
component: () => import("../views/refund/gold/addNewCoinRefund.vue"),
meta: {permissionId: 58}
}
]
},
// 客户账户明细
{
path: '/usergold',
name: "usergold",
component: () => import("../views/usergold/gold/clientCount.vue"),
// redirect: '/usergold/detail',
meta: {permissionId: 8},
children: [
// 金币明细
{
path: 'detail',
name: "clientCountDetail",
component: () => import("../views/usergold/gold/clientCountDetail.vue"),
meta: {permissionId: 23} // 对应"查看金币明细"id=23
path: '/history',
name: "history",
component: () => import("../views/history/history.vue"),
meta: { permissionId: [56, 57] }
},
// 金币余额
// 权限管理
{
path: 'balance',
name: "clientCountBalance",
component: () => import("../views/usergold/gold/clientCountBalance.vue"),
meta: {permissionId: 24} // 对应"查看金币余额"id=24
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: '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:'moneyManage',
name:'moneyManage',
children:[
// 权限管理
{
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}
},
]
},
@ -320,7 +332,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");

169
src/utils/menuTreePermission.js

@ -1,86 +1,93 @@
// 菜单权限映射(按 menu_type 排序)
export const permissionMapping = {
System_Management: 1, // 系统管理
// menu_type 2: 主功能菜单
Workbench: 2, // 工作台
Financial_Audit: 3, // 财务审核
Exchange_Rate_Management: 4, // 汇率管理
Recharge_Management: 5, // 充值管理
Consumption_Management: 6, // 消耗管理
Refund_Management: 7, // 退款管理
Customer_Account_Details: 8, // 客户账户明细
History: 56, // 历史数据查询
Permission_Management: 9, // 权限管理
// menu_type 3: 子功能菜单
Gold_Coin_Recharge: 34, // 金币充值
Gold_Coin_Consumption: 35, // 金币消耗
Gold_Coin_Refund: 37, // 金币退款
Gold_Coin_Audit: 40, // 金币审核
Golden_Bean_Recharge: 41, // 金豆充值
Golden_Bean_Consumption: 42, // 金豆消耗
Golden_Bean_Audit: 43, // 金豆审核
Gold_Coin_Customer_Account_Details: 44, // 金币客户账户明细
Golden_Bean_Customer_Account_Details: 45, // 金豆客户账户明细
// menu_type 4: 功能操作权限
Workbench_Display: 10, // 工作台展示
View_Recharge_Audit: 11, // 查看充值审核 // 有这个页面权限的就有
Recharge_Approval: 12, // 充值审批 //细致划分
View_Refund_Audit: 13, // 查看退款审核 // 有这个页面权限的就有
Refund_Approval: 14, // 退款审批 //细致划分
Exchange_Rate_View: 15, // 汇率查看
Exchange_Rate_Modification: 16, // 汇率修改
Submit_Gold_Coin_Recharge: 17, // 提交金币充值 // coinRecharge页面
View_Gold_Coin_Recharge_Details: 18, // 查看金币充值明细 // coinRecharge页面
Submit_Gold_Coin_Consumption: 19, // 提交金币消耗 // coinConsume页面
View_Gold_Coin_Consumption_Details: 20, // 查看金币消耗明细 // coinConsume页面
Submit_Gold_Coin_Refund: 21, // 提交金币退款 // coinRefund页面
View_Gold_Coin_Refund_Details: 22, // 查看金币退款明细 // coinRefund页面
Submit_Gold_Coin_RefundS: 58, // 提交金币退款 // coinRefund页面
View_Gold_Coin_Details: 23, // 查看金币明细 //usergold页面
View_Gold_Coin_Balance: 24, // 查看金币余额 //usergold页面
View_Permission: 25, // 查看权限
Add_User: 26, // 新增用户
Change_Status: 27, // 改变状态
Modify_Permission: 28, // 修改权限
Delete_User: 29, // 删除用户
View_Role: 30, // 查看角色
Edit_Role: 36, // 编辑角色
Recharge_Audit: 31, // 充值审核(金币) // audit页面
Refund_Audit: 32, // 退款审核(金币) // audit页面,
History_Query: 57, // 历史数据查询
// 新增的金豆相关权限
Submit_Golden_Bean_Recharge: 46, // 提交金豆充值
View_Golden_Bean_System_Recharge_Details: 47, // 查看金豆系统充值明细
View_Golden_Bean_Online_Recharge_Details: 48, // 查看金豆线上充值明细
Submit_Golden_Bean_Consumption: 49, // 提交金豆消耗
View_Golden_Bean_Live_Consumption_Details: 50, // 查看金豆直播消耗明细
View_Golden_Bean_Fan_Consumption_Details: 51, // 查看金豆铁粉消耗明细
View_Golden_Bean_Article_Video_Consumption_Details: 52, // 查看金豆文章/视频消耗明细
View_Golden_Bean_Balance: 53, // 查看金豆余额
View_Golden_Bean_Recharge_Audit: 54, // 查看金豆充值审核
Golden_Bean_Recharge_Approval: 55 // 金豆充值审批
};
// 大系统和分系统,0级1级
system:1, // 总系统
workbench: 2, // 工作台
goldManage:3, // 金币管理
monerManage:4, // 现金管理
// 模块,2级
financialAudit:5, // 财务审核
rateManage:6, // 汇率管理
rechargeManage:7, // 充值管理
consumeManage:8, // 消耗管理
refundManage:9, // 退款管理
accountDetail:10, // 客户账户明细
permissionManage:11, // 权限管理
historyData:12, // 历史数据查询
// 页面,3级
workbenchShow:13, // 工作台查看
coinAudit:14, // 金币审核
beanAudit:15, // 金豆审核
moneyRate:16, // 现金汇率
coinRecharge:17, // 金币充值
beanRecharge:18, // 金豆充值
coinConsume:19, // 金币消耗
beanConsume:20, // 金豆消耗
coinRefund:21, // 金币退款
coinDetail:22, // 金币客户账户明细
beanDetail:23, // 金豆客户账户明细
userManage:24, // 用户管理
roleManage:25, // 角色管理
newCoinSelect:26, // 金币查询(新)
oldCoinSelect:27, // 金币查询(旧)
// 功能,4级
rechargeAudit:28, // 充值审核
refundAudit:29, // 退款审核
rechargeThrough:30, // 充值审核已通过
rechargeReject:31, // 充值审核已驳回
rechargeWait:32, // 充值审核待审核
rechargeWaitShow:33, // 充值审核待审核查看
rechargeWaitThough:34, // 充值审核通过
rechargeWaitReject:35, // 充值审核驳回
refundThrough:36, // 退款审核已通过
refundReject:37, // 退款审核已驳回
refundWait:38, // 退款审核待审核
refundWaitShow:39, // 退款审核待审核查看
refundWaitThough:40, // 退款审核通过
refundWaitReject:41, // 退款审核驳回
beanWait:42, // 金豆审核待审核
beanWaitThough:43, // 金豆审核已通过
beanReject:44, // 金豆审核已驳回
beanWaitShow:45, // 金豆审核待审核查看
beanWaitThough:46, // 金豆审核通过
beanWaitReject:47, // 金豆审核驳回
rateShow:48, // 现金汇率查看
rateEdit:49, // 现金汇率编辑
addCoinRecharge:50, // 新增金币充值
coinRechargeDetail:51, // 金币充值明细
addBeanRecharge:52, // 新增金豆充值
beanSystemRecharge:53, // 金豆系统充值
beanOnlineRecharge:54, // 金豆线上充值
addCoinConsume:55, // 新增金币消耗
coinConsumeDetail:56, // 金币消耗明细
addBeanConsume:57, // 新增金豆消耗
beanZBDetail:58, // 金豆直播消耗
beanTFDetail:59, // 金豆铁粉消耗
beanSPWZDetail:60, // 金豆视频文章消耗
addCoinRefund:61, // 新增金币退款
coinRefundDetail:62, // 金币退款明细
coinCustomerDetail:63, // 金币客户账户明细
coinCustomerMoney:64, // 金币客户账户金额
userManageShow:65, // 用户管理展示
addUserInfo:66, // 新增用户信息
editUserInfo:67, // 编辑用户信息
updateUserInfo:68, // 重置密码
deleteUserInfo:69, // 删除用户信息
roleManageShow:70, // 查看角色信息
addRoleInfo:71, // 新增角色信息
editRoleInfo:72, // 编辑角色信息
}
// 递归查找菜单中是否存在目标id
export const findMenuById = (menuList, targetId) => {

4
src/utils/menuUtils.js

@ -43,7 +43,9 @@ export const getRoutePath = (menu) => {
// 路由映射表:key为接口menuName,value为对应路由路径
const routeMap = {
'工作台展示': '/workspace',
'工作台展示': '/workbench',
'金币管理': '/goldManage',
'现金管理': '/moneyManage',
'金币审核': '/audit',
'金豆审核': '/beanAudit',

Loading…
Cancel
Save