fix: 1. 全局axios添加formData文件上传的检测,删除Content-Type让axios自动检测。

2. 完善入口模块管理的接口的对接。
3. 完善角色权限管理的接口对接和测试。
4. 完善主页的入口模块的图标的显示和图片的显示。
This commit is contained in:
2025-11-29 19:37:29 +08:00
parent 5600de413f
commit fb67f138dc
11 changed files with 290 additions and 164 deletions
+38 -19
View File
@@ -110,6 +110,9 @@ export default function EntryModulesList() {
const [isDeleting, setIsDeleting] = useState(false);
const revalidator = useRevalidator();
// 记录加载失败的图片ID
const [failedImages, setFailedImages] = useState<Set<number>>(new Set());
// 获取加载器数据
const loaderData = useLoaderData<LoaderData>();
const { modules, total, error } = loaderData;
@@ -259,26 +262,41 @@ export default function EntryModulesList() {
if (!record.path) {
return <span className="text-gray-400"></span>;
}
const logoUrl = `${DOCUMENT_URL}${record.path}`;
const hasFailed = failedImages.has(record.id!);
return (
<div className="flex items-center">
<img
src={logoUrl}
alt={record.name}
className="h-8 w-8 object-contain rounded"
onError={(e) => {
(e.target as HTMLImageElement).style.display = 'none';
(e.target as HTMLImageElement).parentElement!.innerHTML = '<span class="text-red-500">加载失败</span>';
}}
/>
<a
href={logoUrl}
target="_blank"
rel="noopener noreferrer"
className="ml-2 text-blue-600 hover:underline text-sm"
>
</a>
{!hasFailed ? (
<>
<a
href={logoUrl}
target="_blank"
rel="noopener noreferrer"
className="ml-2 text-blue-600 hover:underline text-sm"
>
<div className="h-8 w-8 bg-gray-100 rounded flex items-center justify-center overflow-hidden">
<img
src={logoUrl}
alt={record.name}
className="h-full w-full object-contain"
onError={() => {
// 使用 React 状态管理加载失败的图片
setFailedImages(prev => new Set(prev).add(record.id!));
}}
/>
</div>
</a>
</>
) : (
<div className="flex items-center">
<div className="h-8 w-8 bg-red-50 border border-red-200 rounded flex items-center justify-center">
<i className="ri-image-line text-red-400 text-lg"></i>
</div>
<span className="ml-2 text-red-500 text-sm"></span>
</div>
)}
</div>
);
}
@@ -396,10 +414,11 @@ export default function EntryModulesList() {
{/* 分页 */}
{total > 0 && (
<Pagination
current={currentPage}
// pageSizeOptions={[10,20]}
currentPage={currentPage}
pageSize={pageSize}
total={total}
onPageChange={handlePageChange}
onChange={handlePageChange}
onPageSizeChange={handlePageSizeChange}
/>
)}