From 1930dabbb9b27063f4d2a77489699420bdc6fed1 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Fri, 19 Sep 2025 14:02:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=8C=E6=B6=88=E8=80=97=EF=BC=8C=E6=B1=87=E7=8E=87=E7=9A=84?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/audit/bean/beanAudit.vue | 244 ++++++++++++++++--------------- src/views/audit/gold/audit.vue | 4 +- src/views/audit/gold/rechargeAudit.vue | 19 ++- src/views/audit/gold/refundAudit.vue | 42 +++--- src/views/consume/bean/beanConsume.vue | 8 +- src/views/consume/gold/coinConsume.vue | 4 +- src/views/managerecharge/rate.vue | 30 ++-- src/views/recharge/bean/beanRecharge.vue | 6 +- src/views/recharge/gold/coinRecharge.vue | 4 +- 9 files changed, 193 insertions(+), 168 deletions(-) diff --git a/src/views/audit/bean/beanAudit.vue b/src/views/audit/bean/beanAudit.vue index 2f94bb6..177f107 100644 --- a/src/views/audit/bean/beanAudit.vue +++ b/src/views/audit/bean/beanAudit.vue @@ -22,11 +22,11 @@ - + - - - + + +
@@ -61,12 +61,12 @@ {{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }} - + - + 驳回
@@ -111,13 +111,13 @@ import moment from 'moment' import { useAdminStore } from "@/store/index.js"; import { storeToRefs } from "pinia"; import _ from 'lodash' +import { permissionMapping, hasMenuPermission } from "@/utils/menuTreePermission.js" const defaultTime = [ new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59), ] const adminStore = useAdminStore(); const { adminData, menuTree } = storeToRefs(adminStore); -import { permissionMapping, findMenuById } from "@/utils/menuTreePermission.js" import dayjs from "dayjs"; const tableData = ref([]) @@ -144,13 +144,12 @@ const hasbeanWaitReject = ref(false) // 金豆审核驳回(对应beanWaitReje // 初始化权限状态(补充金豆审核权限,与充值权限初始化逻辑并列) const initPermissions = () => { if (!menuTree.value || !menuTree.value.length) return; - // 2. 金豆审核相关权限初始化(新增,与充值权限结构一致) - hasbeanWait.value = hasMenuPermission(menuTree.value, permissionMapping.hasbeanWait); - hasbeanThrough.value = hasMenuPermission(menuTree.value, permissionMapping.hasbeanThrough); - hasbeanReject.value = hasMenuPermission(menuTree.value, permissionMapping.hasbeanReject); - hasbeanWaitShow.value = hasMenuPermission(menuTree.value, permissionMapping.hasbeanWaitShow); - hasbeanWaitThough.value = hasMenuPermission(menuTree.value, permissionMapping.hasbeanWaitThough); - hasbeanWaitReject.value = hasMenuPermission(menuTree.value, permissionMapping.hasbeanWaitReject); + hasbeanWait.value = hasMenuPermission(menuTree.value, permissionMapping.beanWait); + hasbeanThrough.value = hasMenuPermission(menuTree.value, permissionMapping.beanThrough); + hasbeanReject.value = hasMenuPermission(menuTree.value, permissionMapping.beanReject); + hasbeanWaitShow.value = hasMenuPermission(menuTree.value, permissionMapping.beanWaitShow); + hasbeanWaitThough.value = hasMenuPermission(menuTree.value, permissionMapping.beanWaitThough); + hasbeanWaitReject.value = hasMenuPermission(menuTree.value, permissionMapping.beanWaitReject); }; const clicked = ref(false) // 状态常量 @@ -212,131 +211,129 @@ const handleSearch = async function () { await getStats() } const get = async function () { - if (findMenuById(menuTree.value, permissionMapping.View_Golden_Bean_Recharge_Audit)) { - try { - if (dateRange.value && dateRange.value.length === 2) { - if (checkTab.value === 'pending') { - searchForm.value.createStartTime = moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') - searchForm.value.createEndTime = moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') - } else { - searchForm.value.auditStartTime = moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') - searchForm.value.auditEndTime = moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') - } + if (!hasbeanWaitShow) { + ElMessage.error('暂无权限') + return + } + try { + if (dateRange.value && dateRange.value.length === 2) { + if (checkTab.value === 'pending') { + searchForm.value.createStartTime = moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') + searchForm.value.createEndTime = moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') } else { - searchForm.value.createStartTime = '' - searchForm.value.createEndTime = '' - } - if(checkTab.value === 'pending'){ - sortField.value = 'createTime' - sortOrder.value = 'desc' - }else{ - sortField.value = 'auditTime' - sortOrder.value = 'desc' - } - const params = { - pageNum: pagination.value.pageNum,//页码 - pageSize: pagination.value.pageSize,//页面大小 - beanAuditInfo: { - jwcode: searchForm.value.jwcode, - status: searchForm.value.status, - market: searchForm.value.market, - createStartTime: searchForm.value.createStartTime, - createEndTime: searchForm.value.createEndTime, - auditStartTime: searchForm.value.auditStartTime, - auditEndTime: searchForm.value.auditEndTime, - sortField: sortField.value, - sortOrder: sortOrder.value - } + searchForm.value.auditStartTime = moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') + searchForm.value.auditEndTime = moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') } - console.log('看看传给后端的参数:', params) - const res = await API({ url: '/beanAudit/selectBy', data: params }) - tableData.value = res.data.list || [] - } catch (error) { - console.error('获取数据失败', error) + } else { + searchForm.value.createStartTime = '' + searchForm.value.createEndTime = '' } - } else { - ElMessage.error('无此权限') - } -} -const getStats = async () => { - if (findMenuById(menuTree.value, permissionMapping.View_Golden_Bean_Recharge_Audit)) { - try { - const params = { + if (checkTab.value === 'pending') { + sortField.value = 'createTime' + sortOrder.value = 'desc' + } else { + sortField.value = 'auditTime' + sortOrder.value = 'desc' + } + const params = { + pageNum: pagination.value.pageNum,//页码 + pageSize: pagination.value.pageSize,//页面大小 + beanAuditInfo: { jwcode: searchForm.value.jwcode, status: searchForm.value.status, market: searchForm.value.market, createStartTime: searchForm.value.createStartTime, createEndTime: searchForm.value.createEndTime, auditStartTime: searchForm.value.auditStartTime, - auditEndTime: searchForm.value.auditEndTime + auditEndTime: searchForm.value.auditEndTime, + sortField: sortField.value, + sortOrder: sortOrder.value } - const res = await API({ - url: '/beanAudit/statsBean', - data: params - }) - - stats.value.num = res.data.num - stats.value.permanentBean = res.data.permanentBean - stats.value.freeBean = res.data.freeBean - stats.value.beanNum = res.data.beanNum - console.log('see see stats和搜索对象', stats.value, params) - } catch (error) { - console.log('请求失败', error) } - } else { - ElMessage.error('无此权限') + console.log('看看传给后端的参数:', params) + const res = await API({ url: '/beanAudit/selectBy', data: params }) + tableData.value = res.data.list || [] + } catch (error) { + console.error('获取数据失败', error) + } +} +const getStats = async () => { + if (!hasbeanWaitShow) { + ElMessage.error('暂无权限') + return + } + try { + const params = { + jwcode: searchForm.value.jwcode, + status: searchForm.value.status, + market: searchForm.value.market, + createStartTime: searchForm.value.createStartTime, + createEndTime: searchForm.value.createEndTime, + auditStartTime: searchForm.value.auditStartTime, + auditEndTime: searchForm.value.auditEndTime + } + const res = await API({ + url: '/beanAudit/statsBean', + data: params + }) + + stats.value.num = res.data.num + stats.value.permanentBean = res.data.permanentBean + stats.value.freeBean = res.data.freeBean + stats.value.beanNum = res.data.beanNum + console.log('see see stats和搜索对象', stats.value, params) + } catch (error) { + console.log('请求失败', error) } } // 处理通过操作 const handleApprove = async (row) => { + if (!hasbeanWaitThough) { + ElMessage.error('暂无权限') + return + } clicked.value = true - if (findMenuById(menuTree.value, permissionMapping.Golden_Bean_Recharge_Approval)) { - try { - const params = { - id: row.id, - auditName: adminData.value.adminName - } - await API({ url: '/beanAudit/status1', data: params }) - ElMessage.success('审核通过成功') - await get() - clicked.value = false - await getStats() - } catch (error) { - console.error('审核通过失败', error) - ElMessage.error('操作失败') + try { + const params = { + id: row.id, + auditName: adminData.value.adminName } - } else { - ElMessage.error('无此权限') + await API({ url: '/beanAudit/status1', data: params }) + ElMessage.success('审核通过成功') + await get() clicked.value = false + await getStats() + } catch (error) { + console.error('审核通过失败', error) + ElMessage.error('操作失败') } } // 处理驳回操作 const handleReject = async () => { + if (!hasbeanWaitReject) { + ElMessage.error('暂无权限') + return + } cancelClicked.value = true - if (findMenuById(menuTree.value, permissionMapping.Golden_Bean_Recharge_Approval)) { - if (!reason.value.trim()) { - ElMessage.warning('请输入驳回理由') - return - } - try { - const params = { - id: rejectRow.value.id, - auditName: adminData.value.adminName, - reason: reason.value - } - await API({ url: '/beanAudit/status2', data: params }) - ElMessage.success('驳回成功') - rejectVisible.value = false - await get() - cancelClicked.value = false - await getStats() - } catch (error) { - console.error('驳回失败', error) - ElMessage.error('操作失败') + if (!reason.value.trim()) { + ElMessage.warning('请输入驳回理由') + return + } + try { + const params = { + id: rejectRow.value.id, + auditName: adminData.value.adminName, + reason: reason.value } - } else { - ElMessage.error('无此权限') + await API({ url: '/beanAudit/status2', data: params }) + ElMessage.success('驳回成功') + rejectVisible.value = false + await get() cancelClicked.value = false + await getStats() + } catch (error) { + console.error('驳回失败', error) + ElMessage.error('操作失败') } } const getToday = async function () { @@ -390,10 +387,22 @@ const resetSearch = async function () { const handleClick = async function (tab) { checkTab.value = tab.props.name if (tab.props.name === 'pending') { + if (!hasbeanWait) { + ElMessage.error('暂无权限') + return + } adminWait() } else if (tab.props.name === 'pass') { + if (!hasbeanThrough) { + ElMessage.error('暂无权限') + return + } adminPass() } else if (tab.props.name === 'reject') { + if (!hasbeanReject) { + ElMessage.error('暂无权限') + return + } adminReject() } } @@ -449,6 +458,10 @@ const throttledHandleApprove = _.throttle(handleApprove, 5000, { trailing: false }) const showRejectDialog = (row) => { + if (!hasbeanWaitReject) { + ElMessage.error('暂无权限') + return + } rejectRow.value.id = row.id reason.value = '' rejectVisible.value = true @@ -487,6 +500,7 @@ const trimJwCode = () => { } } onMounted(async () => { + initPermissions() getmarkets() await get() await getStats() diff --git a/src/views/audit/gold/audit.vue b/src/views/audit/gold/audit.vue index 532f69b..ed6caac 100644 --- a/src/views/audit/gold/audit.vue +++ b/src/views/audit/gold/audit.vue @@ -3,11 +3,11 @@
+ v-if="hasRecharge"> 充值审核 + v-if="hasRefund"> 退款审核 diff --git a/src/views/audit/gold/rechargeAudit.vue b/src/views/audit/gold/rechargeAudit.vue index 2b1feaa..909ce48 100644 --- a/src/views/audit/gold/rechargeAudit.vue +++ b/src/views/audit/gold/rechargeAudit.vue @@ -47,11 +47,11 @@
- + - - - + + +
@@ -119,12 +119,12 @@ {{ moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss') }} - + - + 驳回
@@ -238,7 +238,7 @@ const initPermissions = () => { hasrechargeWait.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeWait); hasrechargeWaitShow.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeWaitShow); hasrechargeWaitThough.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeWaitThough); - hasrechargeWaitReject.value = hasMenuPermission(menuTree.value, permissionMapping.hasrechargeWaitReject); + hasrechargeWaitReject.value = hasMenuPermission(menuTree.value, permissionMapping.rechargeWaitReject); console.log(hasrechargeWaitThough.value) console.log(hasrechargeWaitReject.value) @@ -695,13 +695,12 @@ const cancelClick = () => { const formatTime = (val) => val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : '' // 挂载 onMounted(async function () { + initPermissions() await getActivity() await getMarket() await getRecharge() console.log("看看通信来的用户身份", adminData.value) await getStats() - - initPermissions() }) diff --git a/src/views/audit/gold/refundAudit.vue b/src/views/audit/gold/refundAudit.vue index 22fcc34..c81d2b2 100644 --- a/src/views/audit/gold/refundAudit.vue +++ b/src/views/audit/gold/refundAudit.vue @@ -49,11 +49,11 @@
- + - - - + + +
@@ -118,12 +118,13 @@ {{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }} - + - + 驳回
@@ -505,22 +507,22 @@ const handleClick = function (tab, event) { activeName.value = tab.props.name if (tab.props.name === 'wait') { console.log(hasrefundWait.value); - if (!hasrefundWait) { - ElMessage.error('暂无权限') - return - } + if (!hasrefundWait) { + ElMessage.error('暂无权限') + return + } adminWait() } else if (tab.props.name === 'pass') { - if (hasrefundThrough.value) { - ElMessage.error('暂无权限') - return - } + if (!hasrefundThrough.value) { + ElMessage.error('暂无权限') + return + } adminPass() } else if (tab.props.name === 'reject') { - if (!hasrefundReject) { - ElMessage.error('暂无权限') - return - } + if (!hasrefundReject) { + ElMessage.error('暂无权限') + return + } adminReject() } } @@ -612,11 +614,11 @@ const handleCurrentChange = function (val) { get() } onMounted(async () => { + initPermissions() getRefundGoods() await getMarket() await get() await getStats() - initPermissions() }) diff --git a/src/views/consume/bean/beanConsume.vue b/src/views/consume/bean/beanConsume.vue index 496297b..8788c41 100644 --- a/src/views/consume/bean/beanConsume.vue +++ b/src/views/consume/bean/beanConsume.vue @@ -4,7 +4,7 @@ 新增消耗 @@ -12,7 +12,7 @@ 直播 @@ -20,7 +20,7 @@ 铁粉 @@ -28,7 +28,7 @@ 文章/视频 diff --git a/src/views/consume/gold/coinConsume.vue b/src/views/consume/gold/coinConsume.vue index 2838da3..0439276 100644 --- a/src/views/consume/gold/coinConsume.vue +++ b/src/views/consume/gold/coinConsume.vue @@ -3,11 +3,11 @@
+ @click="navigateTo('coinConsumeDetail')" v-if="hasDetail"> 金币消耗明细 + v-if="hasAdd"> 新增消耗 diff --git a/src/views/managerecharge/rate.vue b/src/views/managerecharge/rate.vue index 436e18a..a4424a4 100644 --- a/src/views/managerecharge/rate.vue +++ b/src/views/managerecharge/rate.vue @@ -4,7 +4,7 @@ import { ElMessage, ElMessageBox } from 'element-plus' import request from '@/util/http' import { useAdminStore } from "@/store/index.js"; import { storeToRefs } from "pinia"; -import { findMenuById, permissionMapping } from "@/utils/menuTreePermission.js" +import { permissionMapping, hasMenuPermission } from "@/utils/menuTreePermission.js" const adminStore = useAdminStore() const { adminData, menuTree } = storeToRefs(adminStore) const regeEdit = ref(false) @@ -121,11 +121,22 @@ const getEditData = async function (row) { console.log('请求失败', error) } } -const editRole = ref(true) -editRole.value = findMenuById(menuTree.value, permissionMapping.rateEdit) +const hasrateShow = ref(false) +const hasrateEdit = ref(false) + +// 初始化权限状态 +const initPermissions = () => { + if (!menuTree.value || !menuTree.value.length) return; + hasrateShow.value = hasMenuPermission(menuTree.value, permissionMapping.rateShow); + hasrateShow.value = hasMenuPermission(menuTree.value, permissionMapping.rateShow); + +}; // 编辑汇率 const editRate = async function () { - if (findMenuById(menuTree.value, permissionMapping.rateEdit)) { + if(!hasrateEdit){ + ElMessage.error('暂无权限') + return + } // 提交前验证 汇率是否为数字 rateEdit.value.num = parseFloat(rateEdit.value.num); try { @@ -139,9 +150,7 @@ const editRate = async function () { } catch (error) { console.log('请求失败', error) } - } else { - ElMessage.error('没有权限') - } + } // 添加前验证 const edit = () => { @@ -237,12 +246,13 @@ function handleInput(value) { return value } onMounted(async function () { + initPermissions() await getAllRate() })