优化PreviewImg和PreviewPdf

master
LiuJiaNan 2026-04-02 15:00:47 +08:00
parent 8c1ecf7488
commit a23af05b3f
3 changed files with 9 additions and 4 deletions

View File

@ -2,7 +2,7 @@ import type { FC } from "react";
export interface PreviewImgProps { export interface PreviewImgProps {
/** 图片列表 */ /** 图片列表 */
files: any[]; files: string[] | { filePath?: string; [key: string]: string }[];
/** 图片地址的key默认 filePath */ /** 图片地址的key默认 filePath */
fileUrlKey?: string; fileUrlKey?: string;
} }

View File

@ -2,7 +2,7 @@ import type { FC } from "react";
export interface PreviewPdfProps { export interface PreviewPdfProps {
/** 文件列表,和 name、url 冲突 */ /** 文件列表,和 name、url 冲突 */
files?: Record<string, any>[]; files?: { filePath?: string; fileName?: string; name?: string; [key: string]: string }[];
/** 文件名字段名,传入 files 时会优先查找是否存在 name、fileName */ /** 文件名字段名,传入 files 时会优先查找是否存在 name、fileName */
nameKey?: string; nameKey?: string;
/** 文件路径字段名,传入 files 时会优先查找是否存在 filePath */ /** 文件路径字段名,传入 files 时会优先查找是否存在 filePath */

View File

@ -1,5 +1,6 @@
import { Button, Space } from "antd"; import { Button, Space } from "antd";
import { useState } from "react"; import { useState } from "react";
import { getFileName } from "../../utils";
import Pdf from "../Pdf"; import Pdf from "../Pdf";
/** /**
@ -30,6 +31,10 @@ const PreviewPdf = (props) => {
setCurrentName(""); setCurrentName("");
}; };
const extractFileName = (item) => {
return item.name || item.fileName || item[nameKey] || getFileName(item.filePath || item[urlKey]);
};
// 单个文件预览模式 // 单个文件预览模式
if (files.length === 0 && name && url) { if (files.length === 0 && name && url) {
return ( return (
@ -57,11 +62,11 @@ const PreviewPdf = (props) => {
{files.map(item => ( {files.map(item => (
<div key={item.filePath || item[urlKey]} style={{ marginTop: 5 }}> <div key={item.filePath || item[urlKey]} style={{ marginTop: 5 }}>
<Space> <Space>
<span>{item.name || item.fileName || item[nameKey]}</span> <span>{ extractFileName(item)}</span>
<Button <Button
type="primary" type="primary"
size="small" size="small"
onClick={() => previewPdf(item.filePath || item[urlKey], item.name || item.fileName || item[nameKey])} onClick={() => previewPdf(item.filePath || item[urlKey], extractFileName(item))}
> >
预览 预览
</Button> </Button>