提交 52ab6995 authored 作者: kxjia's avatar kxjia

更新代码

上级 e48d8c32
......@@ -2,9 +2,11 @@ package com.fintech.penalty.service;
import com.fintech.penalty.dto.*;
import com.fintech.penalty.entity.Menu;
import com.fintech.penalty.entity.Role;
import com.fintech.penalty.entity.RoleMenu;
import com.fintech.penalty.repository.MenuRepository;
import com.fintech.penalty.repository.RoleMenuRepository;
import com.fintech.penalty.repository.RoleRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -23,6 +25,7 @@ public class MenuService {
private final MenuRepository menuRepository;
private final RoleMenuRepository roleMenuRepository;
private final RoleRepository roleRepository;
public List<MenuDTO> findAll() {
List<Menu> allMenus = menuRepository.findAll();
......@@ -98,21 +101,38 @@ public class MenuService {
roleCode = "ADMIN";
}
if ("ADMIN".equals(roleCode)) {
List<Menu> allMenus = menuRepository.findAllVisible();
if (allMenus.isEmpty()) {
log.warn("No menus found in database");
return new ArrayList<>();
}
if ("ADMIN".equals(roleCode)) {
return buildTree(allMenus);
}
return buildTree(allMenus.stream()
try {
Role role = roleRepository.findByCode(roleCode).orElse(null);
if (role != null) {
List<Long> menuIds = roleMenuRepository.findByRoleId(role.getId()).stream()
.map(RoleMenu::getMenuId)
.collect(Collectors.toList());
if (!menuIds.isEmpty()) {
List<Menu> roleMenus = menuRepository.findAllById(menuIds);
return buildTree(roleMenus.stream()
.filter(m -> m.getVisible() != null && m.getVisible())
.collect(Collectors.toList()));
}
}
} catch (Exception e) {
log.warn("获取角色菜单失败: {}", e.getMessage());
}
List<Menu> allMenus = menuRepository.findAllVisible();
if (allMenus.isEmpty()) {
return new ArrayList<>();
}
return buildTree(allMenus);
}
public MenuDTO findById(Long id) {
Menu menu = menuRepository.findById(id)
......
......@@ -5,7 +5,7 @@
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>金融监管处罚监控系统</title>
<script type="module" crossorigin src="/assets/index-DLhtj81y.js"></script>
<script type="module" crossorigin src="/assets/index-C_I9toNW.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-D_lRsYFa.css">
</head>
<body>
......
......@@ -104,9 +104,7 @@
</el-form-item>
<el-form-item label="角色" prop="role">
<el-select v-model="form.role" placeholder="请选择角色" style="width: 100%">
<el-option label="管理员" value="ADMIN" />
<el-option label="普通用户" value="USER" />
<el-option label="访客" value="VIEWER" />
<el-option v-for="item in roleOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="状态" prop="enabled" v-if="isEdit">
......@@ -135,6 +133,12 @@ const pageSize = ref(10)
const total = ref(0)
const roleOptions = ref([])
const pagination = reactive({
page: currentPage,
size: pageSize,
total: total
})
const dialogVisible = ref(false)
const isEdit = ref(false)
const submitLoading = ref(false)
......@@ -172,13 +176,14 @@ const fetchData = async () => {
loading.value = true
try {
const res = await api.getUsers({
page: currentPage.value - 1,
size: pageSize.value
page: pagination.page - 1,
size: pagination.size
})
tableData.value = res.data.content
total.value = res.data.totalElements
const data = res.data.data || res.data
tableData.value = data.content || []
pagination.total = data.totalElements || data.total || 0
} catch (error) {
console.error('获取用户列表失败:', error)
console.error('获取用户失败:', error)
} finally {
loading.value = false
}
......@@ -187,17 +192,15 @@ const fetchData = async () => {
const fetchRoles = async () => {
try {
const res = await api.getRolesSimple()
roleOptions.value = res.data.map(r => ({
label: r.name,
value: r.code
// 移除 nextTick,直接赋值
const roles = res.data || []
roleOptions.value = roles.map(r => ({
label: r.name || r.roleName,
value: r.code || r.roleCode
}))
} catch (error) {
console.error('获取角色失败:', error)
roleOptions.value = [
{ label: '管理员', value: 'ADMIN' },
{ label: '普通用户', value: 'USER' },
{ label: '访客', value: 'VIEWER' }
]
roleOptions.value = []
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论