Browse Source

审核,新增,消耗,汇率的操作权限

lihuilin/feature-20250913114949-现金
ZhangYong 3 weeks ago
parent
commit
1930dabbb9
  1. 84
      src/views/audit/bean/beanAudit.vue
  2. 4
      src/views/audit/gold/audit.vue
  3. 19
      src/views/audit/gold/rechargeAudit.vue
  4. 20
      src/views/audit/gold/refundAudit.vue
  5. 8
      src/views/consume/bean/beanConsume.vue
  6. 4
      src/views/consume/gold/coinConsume.vue
  7. 30
      src/views/managerecharge/rate.vue
  8. 6
      src/views/recharge/bean/beanRecharge.vue
  9. 4
      src/views/recharge/gold/coinRecharge.vue

84
src/views/audit/bean/beanAudit.vue

@ -22,11 +22,11 @@
</el-col>
</el-card>
<el-card>
<el-card v-if="hasbeanWaitShow">
<el-tabs v-model="checkTab" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="pending"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject"></el-tab-pane>
<el-tab-pane label="待审核" name="pending" v-if="hasbeanWait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" v-if="hasbeanThrough"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" v-if="hasbeanReject"></el-tab-pane>
</el-tabs>
<div>
@ -61,12 +61,12 @@
{{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }}
</template>
</el-table-column>
<el-table-column v-if="checkTab === 'pending'" fixed="right" prop="operation" label="操作" width="400px">
<el-table-column v-if="checkTab === 'pending' &&(hasbeanWaitThough||hasbeanWaitReject)" fixed="right" prop="operation" label="操作" width="400px">
<template #default="scope">
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
<template #reference>
<el-button :disabled="clicked || cancelClicked" type="primary" text>
<el-button v-if="hasbeanWaitThough" :disabled="clicked || cancelClicked" type="primary" text>
通过
</el-button>
</template>
@ -77,7 +77,7 @@
</el-button>
</template>
</el-popconfirm>
<el-button :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
<el-button v-if="hasbeanWaitReject" :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -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,7 +211,10 @@ const handleSearch = async function () {
await getStats()
}
const get = async function () {
if (findMenuById(menuTree.value, permissionMapping.View_Golden_Bean_Recharge_Audit)) {
if (!hasbeanWaitShow) {
ElMessage.error('暂无权限')
return
}
try {
if (dateRange.value && dateRange.value.length === 2) {
if (checkTab.value === 'pending') {
@ -226,10 +228,10 @@ const get = async function () {
searchForm.value.createStartTime = ''
searchForm.value.createEndTime = ''
}
if(checkTab.value === 'pending'){
if (checkTab.value === 'pending') {
sortField.value = 'createTime'
sortOrder.value = 'desc'
}else{
} else {
sortField.value = 'auditTime'
sortOrder.value = 'desc'
}
@ -254,12 +256,12 @@ const get = async function () {
} catch (error) {
console.error('获取数据失败', error)
}
} else {
ElMessage.error('无此权限')
}
}
const getStats = async () => {
if (findMenuById(menuTree.value, permissionMapping.View_Golden_Bean_Recharge_Audit)) {
if (!hasbeanWaitShow) {
ElMessage.error('暂无权限')
return
}
try {
const params = {
jwcode: searchForm.value.jwcode,
@ -283,14 +285,14 @@ const getStats = async () => {
} catch (error) {
console.log('请求失败', error)
}
} else {
ElMessage.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,
@ -305,15 +307,14 @@ const handleApprove = async (row) => {
console.error('审核通过失败', error)
ElMessage.error('操作失败')
}
} else {
ElMessage.error('无此权限')
clicked.value = false
}
}
//
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
@ -334,10 +335,6 @@ const handleReject = async () => {
console.error('驳回失败', error)
ElMessage.error('操作失败')
}
} else {
ElMessage.error('无此权限')
cancelClicked.value = false
}
}
const getToday = async function () {
const today = dayjs()
@ -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()

4
src/views/audit/gold/audit.vue

@ -3,11 +3,11 @@
<div style="height:4vh;width:82vw;">
<el-button-group>
<el-button :type="activeTab === 'rechargeAudit' ? 'primary' : 'default'" @click="navigateTo('rechargeAudit')"
:disabled="!hasRecharge">
v-if="hasRecharge">
充值审核
</el-button>
<el-button :type="activeTab === 'refundAudit' ? 'primary' : 'default'" @click="navigateTo('refundAudit')"
:disabled="!hasRefund">
v-if="hasRefund">
退款审核
</el-button>
</el-button-group>

19
src/views/audit/gold/rechargeAudit.vue

@ -47,11 +47,11 @@
</div>
</el-col>
</el-card>
<el-card>
<el-card v-if="hasrechargeWaitShow">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="wait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject"></el-tab-pane>
<el-tab-pane label="待审核" name="wait" v-if="hasrechargeWait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" v-if="hasrechargeThrough"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" v-if="hasrechargeReject"></el-tab-pane>
<div>
<!-- 总条数{{ format3(stats.totalNum) }}&nbsp;&nbsp;&nbsp;&nbsp;-->
@ -119,12 +119,12 @@
{{ moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column v-if="activeName === 'wait'" fixed="right" prop="operation" label="操作" width="150px">
<el-table-column v-if="activeName === 'wait'&&(hasrechargeWaitThough||hasrechargeWaitReject)" fixed="right" prop="operation" label="操作" width="150px">
<template #default="scope">
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
<template #reference>
<el-button :disabled="clicked || cancelClicked" type="primary" text>
<el-button v-if="hasrechargeWaitThough" :disabled="clicked || cancelClicked" type="primary" text>
通过
</el-button>
</template>
@ -135,7 +135,7 @@
</el-button>
</template>
</el-popconfirm>
<el-button :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
<el-button v-if="hasrechargeWaitReject" :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -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()
})
</script>

20
src/views/audit/gold/refundAudit.vue

@ -49,11 +49,11 @@
</el-col>
</el-card>
<el-card>
<el-card v-if="hasrefundWaitShow">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="待审核" name="wait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject"></el-tab-pane>
<el-tab-pane label="待审核" name="wait" v-if="hasrefundWait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass" v-if="hasrefundThrough"></el-tab-pane>
<el-tab-pane label="已驳回" name="reject" v-if="hasrefundReject"></el-tab-pane>
</el-tabs>
<div>
@ -118,12 +118,13 @@
{{ row.auditTime ? moment(row.auditTime).format('YYYY-MM-DD HH:mm:ss') : '--' }}
</template>
</el-table-column>
<el-table-column v-if="checkTab === 'pending'" fixed="right" prop="operation" label="操作" width="150px">
<el-table-column v-if="checkTab === 'pending' && (hasrefundWaitThough || hasrefundWaitReject)" fixed="right"
prop="operation" label="操作" width="150px">
<template #default="scope">
<div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="handleApprove(scope.row)">
<template #reference>
<el-button :disabled="clicked || cancelClicked" type="primary" text>
<el-button v-if="hasrefundWaitThough" :disabled="clicked || cancelClicked" type="primary" text>
通过
</el-button>
</template>
@ -134,7 +135,8 @@
</el-button>
</template>
</el-popconfirm>
<el-button :disabled="clicked || cancelClicked" type="primary" text @click="showRejectDialog(scope.row)">
<el-button v-if="hasrefundWaitReject" :disabled="clicked || cancelClicked" type="primary" text
@click="showRejectDialog(scope.row)">
驳回
</el-button>
</div>
@ -511,7 +513,7 @@ const handleClick = function (tab, event) {
}
adminWait()
} else if (tab.props.name === 'pass') {
if (hasrefundThrough.value) {
if (!hasrefundThrough.value) {
ElMessage.error('暂无权限')
return
}
@ -612,11 +614,11 @@ const handleCurrentChange = function (val) {
get()
}
onMounted(async () => {
initPermissions()
getRefundGoods()
await getMarket()
await get()
await getStats()
initPermissions()
})
</script>

8
src/views/consume/bean/beanConsume.vue

@ -4,7 +4,7 @@
<el-button
:type="activeTab === 'addBeanConsume' ? 'primary' : 'default'"
@click="navigateTo('addBeanConsume')"
:disabled="!hasAdd"
v-if="hasAdd"
style="width: 120px;"
>
新增消耗
@ -12,7 +12,7 @@
<el-button
:type="activeTab === 'liveStream' ? 'primary' : 'default'"
@click="navigateTo('liveStream')"
:disabled="!hasLive"
v-if="hasLive"
style="width: 120px;"
>
直播
@ -20,7 +20,7 @@
<el-button
:type="activeTab === 'dieHardFan' ? 'primary' : 'default'"
@click="navigateTo('dieHardFan')"
:disabled="!hasFan"
v-if="hasFan"
style="width: 120px;"
>
铁粉
@ -28,7 +28,7 @@
<el-button
:type="activeTab === 'articleVideo' ? 'primary' : 'default'"
@click="navigateTo('articleVideo')"
:disabled="!hasArticleVideo"
v-if="hasArticleVideo"
style="width: 120px;"
>
文章/视频

4
src/views/consume/gold/coinConsume.vue

@ -3,11 +3,11 @@
<div class="fatherTop">
<el-button-group>
<el-button :type="activeTab === 'coinConsumeDetail' ? 'primary' : 'default'"
@click="navigateTo('coinConsumeDetail')" :disabled="!hasDetail">
@click="navigateTo('coinConsumeDetail')" v-if="hasDetail">
金币消耗明细
</el-button>
<el-button :type="activeTab === 'addCoinConsume' ? 'primary' : 'default'" @click="navigateTo('addCoinConsume')"
:disabled="!hasAdd">
v-if="hasAdd">
新增消耗
</el-button>
</el-button-group>

30
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()
})
</script>
<template>
<el-card style="width:82vw;height:85vh">
<el-card style="width:82vw;height:85vh" v-if="hasrateShow">
<el-table :data="tableData" v-if="(tableData.flag = 1)">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
@ -265,9 +275,9 @@ onMounted(async function () {
<span>{{ formatDate(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" :span="3">
<el-table-column v-if="hasrateEdit" label="操作" :span="3">
<template #default="scope">
<el-button :disabled="!editRole" type="text" @click="() => {
<el-button type="text" @click="() => {
regeEdit = true
getEditData(scope.row)
}">编辑

6
src/views/recharge/bean/beanRecharge.vue

@ -2,15 +2,15 @@
<div class="father">
<el-button-group>
<el-button :type="activeTab === 'addBeanRecharge' ? 'primary' : 'default'" @click="navigateTo('addBeanRecharge')"
:disabled="!hasAdd" style="width: 6.5vw">
v-if="hasAdd" style="width: 6.5vw">
新增充值
</el-button>
<el-button :type="activeTab === 'beanSystemRecharge' ? 'primary' : 'default'"
@click="navigateTo('beanSystemRecharge')" :disabled="!hasSystem" style="width: 6.5vw;">
@click="navigateTo('beanSystemRecharge')" v-if="hasSystem" style="width: 6.5vw;">
系统充值
</el-button>
<el-button :type="activeTab === 'beanOnlineRecharge' ? 'primary' : 'default'"
@click="navigateTo('beanOnlineRecharge')" :disabled="!hasOnline" style="width: 6.5vw;">
@click="navigateTo('beanOnlineRecharge')" v-if="hasOnline" style="width: 6.5vw;">
线上充值
</el-button>
</el-button-group>

4
src/views/recharge/gold/coinRecharge.vue

@ -2,11 +2,11 @@
<div style="height:4vh;">
<el-button-group>
<el-button :type="activeTab === 'coinRechargeDetail' ? 'primary' : 'default'"
@click="navigateTo('coinRechargeDetail')" :disabled="!hasDetail">
@click="navigateTo('coinRechargeDetail')" v-if="hasDetail">
金币充值明细
</el-button>
<el-button :type="activeTab === 'addCoinRecharge' ? 'primary' : 'default'" @click="navigateTo('addCoinRecharge')"
:disabled="!hasAdd">
v-if="hasAdd">
新增充值
</el-button>
</el-button-group>

Loading…
Cancel
Save