zy-react-library/components/PreviewPdf/index.js

77 lines
1.6 KiB
JavaScript

import { Button, Space } from "antd";
import { useState } from "react";
import Pdf from "../Pdf";
const PreviewPdf = (props) => {
const {
files = [],
nameKey = "",
urlKey = "",
name = "",
url = "",
} = props;
const [visible, setVisible] = useState(false);
const [src, setSrc] = useState("");
const previewPdf = (src) => {
setVisible(true);
setSrc(src);
};
const onCancel = () => {
setVisible(false);
setSrc("");
};
// 单个文件预览模式
if (files.length === 0 && name && url) {
return (
<>
<Space>
<span>{name}</span>
<Button type="primary" size="small" onClick={() => previewPdf(url)}>
预览
</Button>
</Space>
<Pdf
visible={visible}
file={src}
onCancel={onCancel}
/>
</>
);
}
// 多文件预览模式
if (files.length > 0 && !name && !url) {
return (
<>
{files.map(item => (
<div key={item.filePath || item[urlKey]} style={{ marginTop: 5 }}>
<Space>
<span>{item.name || item.fileName || item[nameKey]}</span>
<Button
type="primary"
size="small"
onClick={() => previewPdf(item.filePath || item[urlKey])}
>
预览
</Button>
</Space>
</div>
))}
<Pdf
visible={visible}
file={src}
onCancel={onCancel}
/>
</>
);
}
return null;
};
export default PreviewPdf;