You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
{"ast":null,"code":"import { ref, onMounted, reactive } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport { Search } from '@element-plus/icons-vue';\nimport { getAllUsers, updateUserRole } from '@/api/auth';\nexport default {\n __name: 'UserManagement',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const router = useRouter();\n const loading = ref(false);\n const userList = ref([]);\n const currentPage = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n\n // 添加搜索表单\n const searchForm = reactive({\n username: '',\n sortBy: 'id',\n order: 'desc'\n });\n const loadUsers = async () => {\n loading.value = true;\n try {\n const res = await getAllUsers({\n pageNum: currentPage.value,\n pageSize: pageSize.value,\n username: searchForm.username,\n sortBy: searchForm.sortBy,\n order: searchForm.order\n });\n if (res.code === 200 && res.data) {\n // 设置用户列表数据\n userList.value = res.data.records;\n\n // 设置分页信息\n total.value = Number(res.data.total); // 总记录数:14\n pageSize.value = Number(res.data.size); // 每页大小:10\n currentPage.value = Number(res.data.current); // 当前页码:1\n\n // 添加调试日志\n console.log('分页请求参数:', {\n pageNum: currentPage.value,\n pageSize: pageSize.value\n });\n console.log('分页返回信息:', {\n records: res.data.records.length,\n // 当前页记录数\n total: total.value,\n // 总记录数\n pageSize: pageSize.value,\n // 每页大小\n currentPage: currentPage.value,\n // 当前页码\n pages: res.data.pages // 总页数\n });\n }\n } catch (error) {\n console.error('加载用户失败:', error);\n if (error.response?.status === 401) {\n ElMessage.error('登录已过期,请重新登录');\n router.push('/login');\n } else if (error.response?.status === 403) {\n ElMessage.error('没有权限访问');\n } else {\n ElMessage.error(error.message || '加载用户失败');\n }\n } finally {\n loading.value = false;\n }\n };\n\n // 处理每页显示数量变化\n const handleSizeChange = val => {\n pageSize.value = val;\n currentPage.value = 1; // 重置为第一页\n loadUsers();\n };\n\n // 处理页码变化\n const handleCurrentChange = val => {\n console.log('页码变化:', val); // 添加日志\n currentPage.value = val;\n loadUsers();\n };\n\n // 处理搜索\n const handleSearch = () => {\n currentPage.value = 1; // 搜索时重置为第一页\n loadUsers();\n };\n\n // 根据角色名称获取标签类型\n const getRoleTypeByName = roleName => {\n switch (roleName) {\n case '系统管理员':\n return 'danger';\n // 红色\n case '仓库管理员':\n return 'warning';\n // 黄色\n case '物流管理员':\n return 'success';\n // 绿色\n case '普通用户':\n return 'info';\n // 蓝色\n default:\n return '';\n }\n };\n\n // 恢复原来的 getRoleCodeByName 函数\n const getRoleCodeByName = roleName => {\n switch (roleName) {\n case '系统管理员':\n return 'ROLE_ADMIN';\n case '仓库管理员':\n return 'ROLE_WAREHOUSE_ADMIN';\n case '物流管理员':\n return 'ROLE_LOGISTICS_ADMIN';\n case '普通用户':\n return 'ROLE_USER';\n default:\n return 'ROLE_USER';\n // 默认为普通用户\n }\n };\n\n // 根据角色代码获取角色名称\n const getRoleNameByCode = r
|