优化用户列表界面,添加权限检查和调试信息,调整桌面端内容显示,提升用户体验和可维护性。

This commit is contained in:
zyh
2025-08-27 21:31:41 +08:00
parent 7f4c2ca831
commit dac1bebabf

View File

@@ -128,7 +128,7 @@
</div> </div>
<!-- 桌面端表格 --> <!-- 桌面端表格 -->
<div v-else> <div v-else class="desktop-content">
<el-card class="mb16" shadow="never"> <el-card class="mb16" shadow="never">
<el-form :inline="true" :model="query" @submit.prevent> <el-form :inline="true" :model="query" @submit.prevent>
<el-form-item label="关键词"> <el-form-item label="关键词">
@@ -228,6 +228,7 @@
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</div>
</div> </div>
</template> </template>
@@ -237,7 +238,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import { Search } from '@element-plus/icons-vue' import { Search } from '@element-plus/icons-vue'
import { fetchUsers, createUser, updateUser, deleteUser, setUserStatus, resetUserPassword } from '@/api/users' import { fetchUsers, createUser, updateUser, deleteUser, setUserStatus, resetUserPassword } from '@/api/users'
import { showErrorMessage, showSuccessMessage } from '@/utils/error' import { showErrorMessage, showSuccessMessage } from '@/utils/error'
import { hasPermission, PERMISSIONS } from '@/utils/permission' import { hasPermission, PERMISSIONS, getCurrentUser, getCurrentUserType } from '@/utils/permission'
const loading = ref(false) const loading = ref(false)
const list = ref([]) const list = ref([])
@@ -270,7 +271,11 @@ const userTypeDisplayMap = {
} }
// 权限检查 // 权限检查
const canViewUsers = computed(() => hasPermission(PERMISSIONS.USER_VIEW)) const canViewUsers = computed(() => {
const permission = hasPermission(PERMISSIONS.USER_VIEW)
console.log('canViewUsers:', permission, 'USER_VIEW:', PERMISSIONS.USER_VIEW)
return permission
})
const canCreateUser = computed(() => hasPermission(PERMISSIONS.USER_CREATE)) const canCreateUser = computed(() => hasPermission(PERMISSIONS.USER_CREATE))
const canEditUser = computed(() => hasPermission(PERMISSIONS.USER_UPDATE)) const canEditUser = computed(() => hasPermission(PERMISSIONS.USER_UPDATE))
const canDeleteUser = computed(() => hasPermission(PERMISSIONS.USER_DELETE)) const canDeleteUser = computed(() => hasPermission(PERMISSIONS.USER_DELETE))
@@ -287,6 +292,13 @@ function unwrap(res) {
} }
async function load() { async function load() {
console.log('开始加载用户数据,权限检查:', canViewUsers.value)
if (!canViewUsers.value) {
ElMessage.warning('没有权限查看用户列表')
return
}
loading.value = true loading.value = true
try { try {
// 根据OpenAPI文档参数映射pageSize -> size // 根据OpenAPI文档参数映射pageSize -> size
@@ -296,12 +308,21 @@ async function load() {
} }
delete params.pageSize delete params.pageSize
console.log('请求参数:', params)
const res = await fetchUsers(params) const res = await fetchUsers(params)
console.log('API原始响应:', res)
const data = unwrap(res) || {} const data = unwrap(res) || {}
console.log('解析后数据:', data)
// 兼容后端返回两种分页结构 // 兼容后端返回两种分页结构
list.value = data.list || data.items || [] list.value = data.list || data.items || []
total.value = data.total || data.totalCount || list.value.length total.value = data.total || data.totalCount || list.value.length
console.log('用户列表数据:', list.value)
console.log('总数:', total.value)
} catch (e) { } catch (e) {
console.error('加载用户数据失败:', e)
showErrorMessage(e, '加载失败') showErrorMessage(e, '加载失败')
} finally { } finally {
loading.value = false loading.value = false
@@ -467,7 +488,18 @@ watch(() => form.userType, (newType) => {
}) })
onMounted(() => { onMounted(() => {
// 添加调试信息
console.log('用户管理页面加载')
const auth = getCurrentUser()
const userType = getCurrentUserType()
console.log('当前用户信息:', auth)
console.log('用户类型:', userType)
console.log('权限列表:', hasPermission ? 'hasPermission函数存在' : 'hasPermission函数不存在')
checkMobile() checkMobile()
console.log('isMobile状态:', isMobile.value)
console.log('窗口宽度:', window.innerWidth)
window.addEventListener('resize', checkMobile) window.addEventListener('resize', checkMobile)
load() load()
}) })
@@ -622,12 +654,12 @@ onUnmounted(() => {
/* 移动端隐藏桌面端组件 */ /* 移动端隐藏桌面端组件 */
@media (max-width: 768px) { @media (max-width: 768px) {
.users-page > div:not(.mobile-user-list) { .desktop-content {
display: none; display: none !important;
} }
.users-page .permission-denied { .users-page .permission-denied {
display: block; display: block !important;
} }
.mobile-search-card .el-input { .mobile-search-card .el-input {