From 79778be4cb86ddb9b95cd8f5bcb2d9334891dd95 Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Tue, 29 Jul 2025 10:38:27 +0800 Subject: [PATCH 1/3] feat:market tree-select --- .env.development | 6 +-- src/views/recharge/coinRechargeDetail.vue | 68 +++++++++++++++++++++++++++---- 2 files changed, 63 insertions(+), 11 deletions(-) diff --git a/.env.development b/.env.development index 12b11b7..26d7ef6 100644 --- a/.env.development +++ b/.env.development @@ -1,9 +1,7 @@ -VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' +# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' # 测试环境 # VITE_API_BASE='http://18.143.76.3:10704/' # VITE_API_BASE='http://192.168.9.52:10705/' VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload -# VITE_API_BASE='http://192.168.9.28:8081/' -# 孙加倍 -# VITE_API_BASE='http://192.168.9.28:8081/' + VITE_API_BASE='http://192.168.9.28:8081/' # VITE_API_BASE='http://192.168.5.92:8081/' diff --git a/src/views/recharge/coinRechargeDetail.vue b/src/views/recharge/coinRechargeDetail.vue index 2dce85f..b4da800 100644 --- a/src/views/recharge/coinRechargeDetail.vue +++ b/src/views/recharge/coinRechargeDetail.vue @@ -34,6 +34,25 @@ const handleDatePickerChange = () => { const rechargeUser = ref({ adminId: adminData.value.id }) + +// 存储地区选择变化 +const selectedMarketPath = ref([]) +//处理地区选择变化 +const handleMarketChange = (value) => { + if(value && value.length > 0){ + const lastValue = value[value.length - 1]; + if (lastValue.endsWith('_all')) { + // 选中“全部”,取父节点名称 + rechargeUser.value.market = lastValue.replace('_all', ''); + } else { + // 取路径的最后一项作为选中的地区 + rechargeUser.value.market = lastValue; + } + } else { + rechargeUser.value.market = '' + } +} + // 搜索对象 const getObj = ref({ pageNum: 1, @@ -116,25 +135,46 @@ const getActivity = async function () { // 在这里可以处理错误逻辑,比如显示错误提示等 } } -// 获取地区 -// 获取地区 + +// 获取地区,修改为级联下拉框 const getArea = async function () { console.log('获取地区adminid', adminData.value) try { // 发送POST请求 const result = await API({ - url: '/general/adminMarkets', + url: '/market/selectMarket', data: {account: adminData.value.account} }); // 将响应结果存储到响应式数据中 console.log('请求成功', result) + + // 递归转换树形结构为级联选择器需要的格式 + const transformTree = (nodes) => { + return nodes.map(node => { + const children = node.children && node.children.length + ? transformTree(node.children) + : null; + // 如果有子节点,添加“全部”选项 + if (children) { + children.unshift({ + value: `${node.name}_all`, // 唯一标识 + label: '全部', + children: null + }); + } + return { + value: node.name, //使用地区名称作为值 + label: node.name, //显示名称 + children + }; + }); + } // 存储地区信息 - market.value = result.data - console.log('地区', market.value) + market.value = transformTree(result.data) + console.log('转换后的地区树', market.value) } catch (error) { console.log('请求失败', error) - // 在这里可以处理错误逻辑,比如显示错误提示等 } } @@ -257,6 +297,7 @@ const reset = function () { delete rechargeUser.value.activity delete rechargeUser.value.payPlatform delete rechargeUser.value.market + selectedMarketPath .value = [] // 重置地区选择路径 delete rechargeUser.value.startTime delete rechargeUser.value.endTime delete sortField.value @@ -487,13 +528,26 @@ const getTagText = (state) => { - + + +
+ 所属地区: + +
From 8d492ef8cb388f59b4dc8d13d2cd4c3fbcb7ae60 Mon Sep 17 00:00:00 2001 From: lihui Date: Tue, 29 Jul 2025 13:25:16 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat(=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86):?= =?UTF-8?q?=20=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/menuTreePermission.js | 69 +++++++++++++++++++++++++++++++++++++++ src/utils/menuUtils.js | 9 ++++- src/views/audit/rechargeAudit.vue | 58 +++++++++++++++++++++----------- 3 files changed, 116 insertions(+), 20 deletions(-) create mode 100644 src/utils/menuTreePermission.js diff --git a/src/utils/menuTreePermission.js b/src/utils/menuTreePermission.js new file mode 100644 index 0000000..f1a8a01 --- /dev/null +++ b/src/utils/menuTreePermission.js @@ -0,0 +1,69 @@ +// 菜单权限映射(按 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, // 客户账户明细 + 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, // 提交金币充值 + View_Gold_Coin_Recharge_Details: 18, // 查看金币充值明细 + Submit_Gold_Coin_Consumption: 19, // 提交金币消耗 + View_Gold_Coin_Consumption_Details: 20, // 查看金币消耗明细 + Submit_Gold_Coin_Refund: 21, // 提交金币退款 + View_Gold_Coin_Refund_Details: 22, // 查看金币退款明细 + View_Gold_Coin_Details: 23, // 查看金币明细 + View_Gold_Coin_Balance: 24, // 查看金币余额 + View_Permission: 25, // 查看权限 + Add_User: 26, // 新增用户 + Change_Status: 27, // 改变状态 + Modify_Permission: 28, // 修改权限 + Delete_User: 29, // 删除用户 + View_Role: 30, // 查看角色 + Edit_Role: 36, // 编辑角色 + + Recharge_Audit: 31, // 充值审核 + Refund_Audit: 32, // 退款审核 +}; + +// 递归查找菜单中是否存在目标id +export const findMenuById = (menuList, targetId) => { + for (const menu of menuList) { + if (menu.id === targetId) { + return true; // 找到目标菜单 + } + // 如果有子菜单,递归查找 + if (menu.children && menu.children.length > 0) { + const found = findMenuById(menu.children, targetId); + if (found) return true; + } + } + return false; +}; \ No newline at end of file diff --git a/src/utils/menuUtils.js b/src/utils/menuUtils.js index be86bfd..f56b73a 100644 --- a/src/utils/menuUtils.js +++ b/src/utils/menuUtils.js @@ -7,7 +7,7 @@ export function filterMenu(menuList) { ...menu, children: menu.children ? filterMenu(menu.children) : [] })) - .sort((a, b) => a.priority - b.priority); // 按 id 升序 + .sort((a, b) => a.id - b.id); // 按 id 升序 } // 辅助函数:查找第一个可访问的菜单项 @@ -21,6 +21,7 @@ export function findFirstAccessibleMenu(menuList) { } else if (menu.menuType === 2) { // 目录 return menu } else if (menu.menuType === 3) { // 菜单 + console.log('菜单:', menu) return menu } } @@ -33,24 +34,30 @@ export const getRoutePath = (menu) => { const routeMap = { '工作台': '/workspace', + '财务审核': '/audit', '金币审核': '/audit', '金豆审核': '/beanAudit', '汇率管理': '/rate', + + '充值管理': '/coinRecharge', '金币充值': '/coinRecharge', '金豆充值': '/beanRecharge', + '消耗管理': '/coinConsume', '金币消耗': '/coinConsume', '金豆消耗': '/beanConsume', + '退款管理': '/coinRefund', '金币退款': '/coinRefund', // '金豆退款': '/beanRefund', '权限管理': '/permissions', + '客户账户明细': '/usergold', '金币客户账户明细': '/usergold', '金豆客户账户明细': '/userbean', }; diff --git a/src/views/audit/rechargeAudit.vue b/src/views/audit/rechargeAudit.vue index 0ed38bb..538a8f7 100644 --- a/src/views/audit/rechargeAudit.vue +++ b/src/views/audit/rechargeAudit.vue @@ -35,10 +35,16 @@
充值时间: - - - 近7天 + end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"/> + 今 + + 昨 + + 近7天 + 重置 查询
@@ -95,7 +101,9 @@