优化平台端租户端

This commit is contained in:
2026-09-09 00:30:44 +08:00
parent 672c22d9b6
commit 34b2449462
20 changed files with 847 additions and 42 deletions
@@ -12,6 +12,11 @@
{{ roleDetail.status === 1 ? "启用" : "禁用" }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="分类">
<el-tag :type="roleDetail.cid === 1 ? 'warning' : 'primary'" size="small">
{{ roleDetail.cid === 1 ? "平台角色" : "租户角色" }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="权限列表">
<div v-if="menuNames.length > 0" style="max-height: 300px; overflow-y: auto;">
<el-tag
@@ -44,7 +49,7 @@
<script setup lang="ts">
import { ref, watch, computed } from "vue";
import { ElMessage } from "element-plus";
import { getRoleById } from "@/api/role";
import { getPlatformRoleById } from "@/api/platformRole";
import { getAllMenus } from "@/api/menu";
interface Props {
@@ -67,11 +72,11 @@ const allMenus = ref<any[]>([]);
// 监听 modelValue
watch(
() => props.modelValue,
(val) => {
async (val) => {
visible.value = val;
if (val && props.roleId) {
loadRoleDetail();
loadMenus();
await loadRoleDetail();
await loadMenus(roleDetail.value.cid);
}
}
);
@@ -127,7 +132,7 @@ const loadRoleDetail = async () => {
loading.value = true;
try {
const res = await getRoleById(props.roleId);
const res = await getPlatformRoleById(props.roleId);
if (res.code === 200) {
roleDetail.value = res.data || {};
} else {
@@ -141,10 +146,12 @@ const loadRoleDetail = async () => {
}
};
// 加载菜单树
const loadMenus = async () => {
// 加载菜单树:租户角色(cid=2)只展示租户端菜单;平台角色展示全部权限
const loadMenus = async (cid?: number) => {
try {
const res = await getAllMenus();
const isTenant = cid === undefined || cid === 2;
const params = isTenant ? { cid: 2 } : {};
const res = await getAllMenus(params);
if (res.code === 200) {
allMenus.value = res.data || [];
}