From 083b74675c8cad16cca4dee768a7ac2340e49ee9 Mon Sep 17 00:00:00 2001 From: lihui Date: Wed, 30 Jul 2025 14:46:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=86=E5=9C=B0=E5=8C=BA=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=94=B9=E4=B8=BA=E7=BA=A7=E8=81=94=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=20feat:=E6=B7=BB=E5=8A=A0=E5=9C=B0=E5=8C=BA=E6=98=A0?= =?UTF-8?q?=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/marketMap.js | 32 +++ src/utils/menuUtils.js | 34 --- src/views/audit/audit.vue | 35 ++- src/views/audit/rechargeAudit.vue | 108 ++++++--- src/views/audit/refundAudit.vue | 173 +++++++++----- src/views/consume/coinConsumeDetail.vue | 194 ++++++++++------ src/views/login.vue | 4 +- src/views/recharge/coinRechargeDetail.vue | 29 ++- src/views/refund/coinRefundDetail.vue | 365 +++++++++++++++++------------- src/views/usergold/clientCountBalance.vue | 166 ++++++++------ src/views/usergold/clientCountDetail.vue | 7 +- src/views/workspace/index.vue | 115 ++++++---- 12 files changed, 779 insertions(+), 483 deletions(-) create mode 100644 src/utils/marketMap.js diff --git a/src/utils/marketMap.js b/src/utils/marketMap.js new file mode 100644 index 0000000..6c1d227 --- /dev/null +++ b/src/utils/marketMap.js @@ -0,0 +1,32 @@ +// 地区映射表 +export const marketMapping = { + 1: "Capt", + 2: "公司", + 3: "市场部", + 4: "新加坡", + 5: "马来西亚", + 6: "Marymount", + 7: "City Hall", + 8: "Jurong", + 9: "研发部", + 10: "Tampines", + 11: "吉隆坡", + 13: "香港", + 14: "湾仔", + 24016: "加拿大", + 24018: "泰国", + 24019: "Asoke", + 24020: "槟城", + 24021: "新山", + 24022: "越南HCM", + 24027: "韩国", + 24028: "深圳运营", + 24029: "深圳", + 24030: "未知", + null:"---" +}; +// 反向映射 +export const reverseMarketMapping = Object.entries(marketMapping).reduce((acc, [key, value]) => { + acc[value] = key; + return acc; +}, {}); \ No newline at end of file diff --git a/src/utils/menuUtils.js b/src/utils/menuUtils.js index b3cffcc..e516cfd 100644 --- a/src/utils/menuUtils.js +++ b/src/utils/menuUtils.js @@ -71,38 +71,4 @@ export const getRoutePath = (menu) => { // 未匹配的菜单默认使用id作为路由(可根据实际需求调整) return routeMap[menu.menuName] || '/noPermission' -} - - -// 路由映射(获取第一个菜单) -export const getFirstRoutePath = (menu) => { - // 路由映射表:key为接口menuName,value为对应路由路径 - const routeMap = { - '工作台展示': '/workspace', - - '金币审核': '/audit', - '金豆审核': '/beanAudit', - - '汇率管理': '/rate', - - - '金币充值': '/coinRecharge', - '金豆充值': '/beanRecharge', - - '金币消耗': '/coinConsume', - '金豆消耗': '/beanConsume', - - - '金币退款': '/coinRefund', - // '金豆退款': '/beanRefund', - - '权限管理': '/permissions', - - '金币客户账户明细': '/usergold', - '金豆客户账户明细': '/userbean', - }; - - // 未匹配的菜单默认使用id作为路由(可根据实际需求调整) - return routeMap[menu.menuName] || '/noPermission' - } \ No newline at end of file diff --git a/src/views/audit/audit.vue b/src/views/audit/audit.vue index 5beaad0..db972c8 100644 --- a/src/views/audit/audit.vue +++ b/src/views/audit/audit.vue @@ -4,12 +4,14 @@ 充值审核 退款审核 @@ -23,6 +25,7 @@ import {ref, watch, onMounted} from 'vue'; import {useRouter, useRoute} from 'vue-router'; import {storeToRefs} from 'pinia'; import {useAdminStore} from '@/store/index.js'; +import {permissionMapping} from "@/utils/menuTreePermission.js"; const router = useRouter(); const route = useRoute(); @@ -30,29 +33,40 @@ const adminStore = useAdminStore(); const {menuTree} = storeToRefs(adminStore); const activeTab = ref(''); - +const hasRecharge = ref(false); +const hasRefund = ref(false); // 导航方法 const navigateTo = (name) => { activeTab.value = name; router.push({name}); }; -// 递归判断某个 menuName 是否存在 -const hasMenuPermission = (tree, targetName) => { +// 递归判断某个 menuId 是否存在 +const hasMenuPermission = (tree, targetId) => { for (const node of tree) { - if (node.menuName === targetName) return true; - if (node.children && hasMenuPermission(node.children, targetName)) return true; + console.log(node.id) + if (node.id === targetId) return true; + if (node.children && hasMenuPermission(node.children, targetId)) return true; } return false; }; -// 默认路由判断 +// 默认路由判断 - 使用 ID 匹配 const getDefaultAuditRoute = () => { - if (!menuTree.value) return 'rechargeAudit'; + if (!menuTree.value || !menuTree.value.length) return 'rechargeAudit'; + + // 使用 ID + hasRecharge.value = hasMenuPermission(menuTree.value, permissionMapping.Recharge_Audit); + hasRefund.value = hasMenuPermission(menuTree.value, permissionMapping.Refund_Audit); + - const hasRecharge = hasMenuPermission(menuTree.value, '充值审核'); - return hasRecharge ? 'rechargeAudit' : 'refundAudit'; + // 优先判断充值权限,没有则判断退款权限 + if (hasRecharge) return 'rechargeAudit'; + if (hasRefund) return 'refundAudit'; + + return 'rechargeAudit'; // 默认回退选项 }; + // 监听路由变化更新标签状态 watch(() => route.name, (newName) => { if (newName === 'rechargeAudit' || newName === 'refundAudit') { @@ -64,7 +78,6 @@ watch(() => route.name, (newName) => { } }); - // 初始化逻辑 onMounted(() => { if (route.name === 'audit') { @@ -77,4 +90,4 @@ onMounted(() => { } } }); - + \ No newline at end of file diff --git a/src/views/audit/rechargeAudit.vue b/src/views/audit/rechargeAudit.vue index 538a8f7..0bf446b 100644 --- a/src/views/audit/rechargeAudit.vue +++ b/src/views/audit/rechargeAudit.vue @@ -21,12 +21,15 @@ -
- 所属地区: - - - -
+ 所属地区: +
@@ -85,7 +88,11 @@ - + + + @@ -176,13 +183,15 @@