Browse Source

refactor:删掉各个详情页面前端的映射,权限加上了金豆的过滤,只有总部可以点击

zhangrenyuan/feature-20250728113353-金币前端三期
lihui 2 weeks ago
parent
commit
13e6d4106a
  1. 2
      src/views/audit/gold/rechargeAudit.vue
  2. 19
      src/views/audit/gold/refundAudit.vue
  3. 11
      src/views/consume/gold/coinConsumeDetail.vue
  4. 1671
      src/views/permissions/permission.vue
  5. 41
      src/views/permissions/rolePermission.vue
  6. 8
      src/views/recharge/gold/coinRechargeDetail.vue
  7. 9
      src/views/refund/gold/coinRefundDetail.vue
  8. 18
      src/views/usergold/gold/clientCountBalance.vue
  9. 13
      src/views/usergold/gold/clientCountDetail.vue

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

@ -189,7 +189,7 @@
<script setup> <script setup>
import {onMounted, reactive, ref} from 'vue' import {onMounted, reactive, ref} from 'vue'
import {marketMapping, reverseMarketMapping} from '@/utils/marketMap.js'
import {reverseMarketMapping} from '@/utils/marketMap.js'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import request from '@/util/http.js' import request from '@/util/http.js'
import API from '@/util/http.js' import API from '@/util/http.js'

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

@ -83,11 +83,8 @@
<el-table-column type="index" label="序号" width="60"/> <el-table-column type="index" label="序号" width="60"/>
<el-table-column prop="name" label="姓名" width="120"/> <el-table-column prop="name" label="姓名" width="120"/>
<el-table-column prop="jwcode" label="精网号" width="120"/> <el-table-column prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="refundType" label="退款类型" width="120"/> <el-table-column prop="refundType" label="退款类型" width="120"/>
<el-table-column prop="refundModel" label="退款方式" width="120"> <el-table-column prop="refundModel" label="退款方式" width="120">
<template #default="{ row }"> <template #default="{ row }">
@ -175,7 +172,12 @@ import {onMounted, reactive, ref} from 'vue'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import API from '@/util/http.js' import API from '@/util/http.js'
import moment from 'moment' import moment from 'moment'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from "pinia";
import {findMenuById, permissionMapping} from "@/utils/menuTreePermission.js"
import dayjs from "dayjs";
const defaultTime = [ const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59), new Date(2000, 2, 1,23 , 59, 59),
@ -336,11 +338,6 @@ const get = async function (val) {
} }
} }
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from "pinia";
import {findMenuById, permissionMapping} from "@/utils/menuTreePermission.js"
import dayjs from "dayjs";
const adminStore = useAdminStore(); const adminStore = useAdminStore();
const {menuTree} = storeToRefs(adminStore); const {menuTree} = storeToRefs(adminStore);

11
src/views/consume/gold/coinConsumeDetail.vue

@ -4,7 +4,7 @@ import {dayjs, ElMessage} from 'element-plus'
import request from '@/util/http.js' import request from '@/util/http.js'
import API from '@/util/http.js' import API from '@/util/http.js'
import moment from 'moment' import moment from 'moment'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
// //
/* /*
@ -579,7 +579,8 @@ const getMarket = async function () {
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消耗时间</el-text> <el-text class="mx-1" size="large">消耗时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间" <el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"
:default-time="defaultTime"/>
<el-button @click="getToday()" style="margin-left: 10px" <el-button @click="getToday()" style="margin-left: 10px"
:type="activeTimeRange === 'today' ? 'primary' : ''"> :type="activeTimeRange === 'today' ? 'primary' : ''">
</el-button> </el-button>
@ -625,11 +626,7 @@ const getMarket = async function () {
<el-table-column prop="name" label="姓名" width="150px" fixed="left"/> <el-table-column prop="name" label="姓名" width="150px" fixed="left"/>
<!-- 固定精网号列 --> <!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left"/> <el-table-column prop="jwcode" label="精网号" width="110px" fixed="left"/>
<el-table-column prop="market" label="所属地区" width="110px">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="110px"/>
<el-table-column prop="goodsName" label="商品" width="160px" show-overflow-tooltip/> <el-table-column prop="goodsName" label="商品" width="160px" show-overflow-tooltip/>
<el-table-column prop="payPlatform" label="消耗平台" width="120px"> <el-table-column prop="payPlatform" label="消耗平台" width="120px">
<template #default="scope"> <template #default="scope">

1671
src/views/permissions/permission.vue
File diff suppressed because it is too large
View File

41
src/views/permissions/rolePermission.vue

@ -317,10 +317,20 @@ const getLists = async function () {
data: {id: roleId} data: {id: roleId}
}) })
data.value = res.data data.value = res.data
data.value = data.value.filter(item => item.id !== 9);
let originalData = res.data.filter(item => item.id !== 9); //
// data.value = data.value.filter(item => item.id !== 9);
console.log('看看data', data.value) console.log('看看data', data.value)
console.log('parentID:', addRole.value.parentId, 'roleId:', roleId) console.log('parentID:', addRole.value.parentId, 'roleId:', roleId)
//
if (addRole.value.market !== '总部') {
//
originalData = filterGoldenBeanMenus(originalData);
}
data.value = originalData; //
if (addRole.value.parentId && addRole.value.parentId !== 2) { if (addRole.value.parentId && addRole.value.parentId !== 2) {
const result = await API({ const result = await API({
url: '/general/roleMarket', url: '/general/roleMarket',
@ -353,6 +363,33 @@ const getLists = async function () {
console.log('请求失败', error) console.log('请求失败', error)
} }
} }
//
const goldenBeanMenuIds = new Set([
43, 55, 54, // ->
41, 47, 46, 48, // ->
42, 50, 49, 52, 51, // ->
45, 53 // ->
]);
const filterGoldenBeanMenus = (tree) => {
return tree
.filter(item => {
//
if (goldenBeanMenuIds.has(item.id)) {
return false;
}
//
if (item.children && item.children.length > 0) {
item.children = filterGoldenBeanMenus(item.children);
}
return true;
});
};
const handleMarketChange = () => {
getLists(); //
};
const treeRef = ref(null) const treeRef = ref(null)
// //
const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => {
@ -734,7 +771,7 @@ onMounted(async function () {
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="market" label="所属地区:" required> <el-form-item prop="market" label="所属地区:" required>
<el-select v-model="addRole.market" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-select v-model="addRole.market" placeholder="请选择所属地区" style="width: 240px" clearable @change="handleMarketChange" >
<el-option v-for="item in addRoleMarket" :key="item" :label="item" :value="item"/> <el-option v-for="item in addRoleMarket" :key="item" :label="item" :value="item"/>
</el-select> </el-select>
</el-form-item> </el-form-item>

8
src/views/recharge/gold/coinRechargeDetail.vue

@ -3,7 +3,7 @@ import {onMounted, ref} from 'vue'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import moment from 'moment' import moment from 'moment'
import API from '@/util/http.js' import API from '@/util/http.js'
import {marketMapping, reverseMarketMapping} from '@/utils/marketMap.js';
import {reverseMarketMapping} from '@/utils/marketMap.js';
import dayjs from "dayjs"; import dayjs from "dayjs";
// //
const adminData = ref({}) const adminData = ref({})
@ -648,11 +648,7 @@ const getTagText = (state) => {
</el-table-column> </el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150px"/> <el-table-column fixed="left" prop="name" label="姓名" width="150px"/>
<el-table-column fixed="left" prop="jwcode" label="精网号" width="110px"/> <el-table-column fixed="left" prop="jwcode" label="精网号" width="110px"/>
<el-table-column prop="market" label="所属地区" width="100px">
<template #default="scope">
<span>{{ marketMapping[scope.row.market] || scope.row.market }}</span>
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="100px"/>
<el-table-column prop="activity" label="活动名称" width="110px" show-overflow-tooltip/> <el-table-column prop="activity" label="活动名称" width="110px" show-overflow-tooltip/>
<el-table-column prop="rateName" label="货币名称" width="110px"/> <el-table-column prop="rateName" label="货币名称" width="110px"/>
<el-table-column prop="money" sortable="custom" label="充值金额" width="110px"/> <el-table-column prop="money" sortable="custom" label="充值金额" width="110px"/>

9
src/views/refund/gold/coinRefundDetail.vue

@ -5,7 +5,8 @@ import {ElMessage} from 'element-plus'
import moment from 'moment' import moment from 'moment'
import API from '@/util/http.js' import API from '@/util/http.js'
import request from '@/util/http.js' import request from '@/util/http.js'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
const defaultTime = [ const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59), new Date(2000, 2, 1,23 , 59, 59),
@ -647,11 +648,7 @@ const getMarket = async function () {
fixed="left" fixed="left"
width="110px" width="110px"
/> />
<el-table-column prop="market" label="所属地区" width="110px">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="110px"/>
<el-table-column prop="goodsName" label="商品名称" width="110px" show-overflow-tooltip/> <el-table-column prop="goodsName" label="商品名称" width="110px" show-overflow-tooltip/>
<el-table-column prop="refundType" label="退款类型" width="100px"/> <el-table-column prop="refundType" label="退款类型" width="100px"/>

18
src/views/usergold/gold/clientCountBalance.vue

@ -1,13 +1,10 @@
<script setup> <script setup>
// //
import { ref, onMounted, reactive, computed, watch } from 'vue'
import ElementPlus from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import axios from 'axios'
import {onMounted, ref} from 'vue'
import {ElMessage} from 'element-plus'
import moment from 'moment' import moment from 'moment'
import { ta } from 'element-plus/es/locales.mjs'
import API from '@/util/http.js' import API from '@/util/http.js'
import { marketMapping, reverseMarketMapping } from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
// //
// //
@ -399,11 +396,7 @@ const getMarket = async function () {
</el-table-column> </el-table-column>
<el-table-column prop="name" label="姓名" width="120"/> <el-table-column prop="name" label="姓名" width="120"/>
<el-table-column prop="jwcode" label="精网号" width="120"/> <el-table-column prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="allJb" label="金币总数" width="120" aligh="center"> <el-table-column prop="allJb" label="金币总数" width="120" aligh="center">
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
@ -489,7 +482,8 @@ const getMarket = async function () {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" <el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination> @current-change="handleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>

13
src/views/usergold/gold/clientCountDetail.vue

@ -1,13 +1,10 @@
<script setup> <script setup>
import {ref, onMounted, computed, nextTick, watch} from 'vue'
import {onMounted, ref} from 'vue'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import axios from 'axios'
import moment from 'moment' import moment from 'moment'
import API from '@/util/http.js' import API from '@/util/http.js'
import {writeFile, utils} from 'xlsx'
import request from "@/util/request.js";
import {marketMapping, reverseMarketMapping} from "../../../utils/marketMap.js";
import {reverseMarketMapping} from "../../../utils/marketMap.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
// //
@ -552,11 +549,7 @@ const getMarket = async function () {
</el-table-column> </el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150"/> <el-table-column fixed="left" prop="name" label="姓名" width="150"/>
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120"/> <el-table-column fixed="left" prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="payPlatform" label="平台信息" width="140"> <el-table-column prop="payPlatform" label="平台信息" width="140">
</el-table-column> </el-table-column>

Loading…
Cancel
Save