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] 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) => { - + + +
+ 所属地区: + +