fix: 1. 全局axios添加formData文件上传的检测,删除Content-Type让axios自动检测。
2. 完善入口模块管理的接口的对接。 3. 完善角色权限管理的接口对接和测试。 4. 完善主页的入口模块的图标的显示和图片的显示。
This commit is contained in:
@@ -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}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user