Browse Source

Merge branch 'milestone-20250728-金币前端三期' of http://39.101.133.168:8807/huangqizhen/gold-vue into zhangyong/feature-20250716164232-金币前端

zhangrenyuan/feature-20250728113353-金币前端三期
ZhangYong 2 weeks ago
parent
commit
a685302a17
  1. 7
      src/views/permissions/rolePermission.vue
  2. 152
      src/views/recharge/beanRecharge.vue

7
src/views/permissions/rolePermission.vue

@ -318,18 +318,20 @@ const getLists = async function () {
})
data.value = res.data
let originalData = res.data.filter(item => item.id !== 9); //
//
data.value = filterGoldenBeanMenus(originalData);
// data.value = data.value.filter(item => item.id !== 9);
console.log('看看data', data.value)
console.log('parentID:', addRole.value.parentId, 'roleId:', roleId)
//
/* // 根据地区过滤金豆菜
if (addRole.value.market !== '总部') {
//
originalData = filterGoldenBeanMenus(originalData);
}
data.value = originalData; //
data.value = originalData; // */
if (addRole.value.parentId && addRole.value.parentId !== 2) {
const result = await API({
@ -522,6 +524,7 @@ const permissionEditRoleInit = async function (row) {
});
data.value = res.data;
data.value = data.value.filter(item => item.id !== 9);
data.value = filterGoldenBeanMenus(data.value);
// id
if (row.tree && row.tree.length > 0) {

152
src/views/recharge/beanRecharge.vue

@ -1,115 +1,99 @@
<script setup lang="ts">
import {onMounted, ref, watch} from 'vue';
<template>
<div>
<el-button-group>
<el-button
:type="activeTab === 'addBeanRecharge' ? 'primary' : 'default'"
@click="navigateTo('addBeanRecharge')"
:disabled="!hasAdd"
style="width: 120px;"
>
新增充值
</el-button>
<el-button
:type="activeTab === 'beanSystemRecharge' ? 'primary' : 'default'"
@click="navigateTo('beanSystemRecharge')"
:disabled="!hasSystem"
style="width: 120px;"
>
系统充值
</el-button>
<el-button
:type="activeTab === 'beanOnlineRecharge' ? 'primary' : 'default'"
@click="navigateTo('beanOnlineRecharge')"
:disabled="!hasOnline"
style="width: 120px;"
>
线上充值
</el-button>
</el-button-group>
<router-view></router-view>
</div>
</template>
<script setup>
import {ref, watch, onMounted} from 'vue';
import {useRouter, useRoute} from 'vue-router';
import {storeToRefs} from "pinia";
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from 'pinia';
import {useAdminStore} from '@/store/index.js';
import {hasMenuPermission, permissionMapping} from "@/utils/menuTreePermission.js";
const router = useRouter();//
const route = useRoute();//
// activeTab
const activeTab = ref(route.name === 'beanSystemRecharge' ? 'system' : route.name === 'beanOnlineRecharge' ? 'online' : 'add');
const router = useRouter();
const route = useRoute();
const adminStore = useAdminStore();
const {menuTree} = storeToRefs(adminStore);
const goToAdd = () => {
// activeTab add
activeTab.value = 'add';
router.push({name: 'addBeanRecharge'});
};
const goToSystem = () => {
// activeTab detail
activeTab.value = 'system';
router.push({name: 'beanSystemRecharge'});
};
const goToOnline = () => {
// activeTab detail
activeTab.value = 'online';
router.push({name: 'beanOnlineRecharge'});
};
const activeTab = ref('');
const hasAdd = ref(false);
const hasSystem = ref(false);
const hasOnline = ref(false);
//
const navigateTo = (name) => {
activeTab.value = name;
if (name === 'add') {
router.push({name: 'addBeanRecharge'});
} else if (name === 'system') {
router.push({name: 'beanSystemRecharge'});
}else if(name === 'online'){
router.push({name: 'beanOnlineRecharge'});
}
};
// menuName
const hasMenuPermission = (tree, targetName) => {
for (const node of tree) {
if (node.menuName === targetName) return true;
if (node.children && hasMenuPermission(node.children, targetName)) return true;
}
return false;
router.push({name});
};
//
const getDefaultRoute = () => {
if (!menuTree.value) return 'add';
const hasRecharge = hasMenuPermission(menuTree.value, '提交金豆充值');
return hasRecharge ? 'add' : 'system';
//
const initPermissions = () => {
if (!menuTree.value || !menuTree.value.length) return;
hasAdd.value = hasMenuPermission(menuTree.value, permissionMapping.Submit_Golden_Bean_Recharge);
hasSystem.value = hasMenuPermission(menuTree.value, permissionMapping.View_Golden_Bean_System_Recharge_Details);
hasOnline.value = hasMenuPermission(menuTree.value, permissionMapping.View_Golden_Bean_Online_Recharge_Details);
};
//
const getDefaultAuditRoute = () => {
initPermissions();
if (hasAdd.value) return 'addBeanRecharge';
if (hasSystem.value) return 'beanSystemRecharge';
if (hasOnline.value) return 'beanOnlineRecharge';
return 'addBeanRecharge';
};
//
watch(() => route.name, (newName) => {
if (newName === 'add' || newName === 'system' || newName =='online') {
initPermissions()
if (newName=== 'addBeanRecharge' || newName === 'beanSystemRecharge' || newName === 'beanOnlineRecharge') {
activeTab.value = newName;
} else if (newName === 'beanRecharge') {
const defaultRoute = getDefaultRoute();
// 访 /beanConsume
const defaultRoute = getDefaultAuditRoute();
navigateTo(defaultRoute);
}
});
//
onMounted(() => {
initPermissions()
if (route.name === 'beanRecharge') {
const defaultRoute = getDefaultRoute();
console.log('defaultRoute',defaultRoute);
const defaultRoute = getDefaultAuditRoute();
navigateTo(defaultRoute);
} else {
//
if (route.name === 'add' || route.name === 'system' || route.name =='online') {
if (route.name=== 'addBeanRecharge' || route.name === 'beanSystemRecharge' || route.name === 'beanOnlineRecharge') {
activeTab.value = route.name;
}
}
});
</script>
<template>
<div>
<!-- 这里放置标签切换的按钮 -->
<el-button-group>
<!-- 切换后状态显示 primary 样式否则是默认样式 -->
<el-button
:type="activeTab === 'add' ? 'primary' : 'default'"
@click="goToAdd"
>
新增充值
</el-button>
<el-button
:type="activeTab === 'system' ? 'primary' : 'default'"
@click="goToSystem"
>
系统充值
</el-button>
<el-button
:type="activeTab === 'online' ? 'primary' : 'default'"
@click="goToOnline"
>
线上充值
</el-button>
</el-button-group>
<!-- 渲染子路由组件 -->
<router-view></router-view>
</div>
</template>
<style scoped>
</style>
</script>
Loading…
Cancel
Save