UNPKG

knk

Version:

react components based on react

74 lines 2.38 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; // pdf预览组件 import React, { useState } from 'react'; import FilePreview from './file_preview'; import DragbleModal from './dragble_modal'; import ZoomImage from './zoom_image'; import PropTypes from 'prop-types'; function handlePdfPath(rmsPath) { var curOrigin = window.location.origin; var filePath = "".concat(curOrigin, "/file/?path=").concat(encodeURIComponent(rmsPath)); return "".concat(curOrigin, "/viewer.html?file=").concat(encodeURIComponent(filePath)); } var PdfView = function PdfView(props) { var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), showModal = _useState2[0], setShowModal = _useState2[1]; var renderImage = function renderImage() { var isZoom = props.isZoom, children = props.children, path = props.path; if (isZoom) { return /*#__PURE__*/React.createElement("div", { className: "app-file-preview" }, /*#__PURE__*/React.createElement("div", { onClick: function onClick(e) { e.preventDefault(); setShowModal(true); } }, children), showModal ? /*#__PURE__*/React.createElement(ZoomImage, { path: path, onCancel: handleCloseModal }) : null); } return /*#__PURE__*/React.createElement(FilePreview, { path: path }, children); }; var handleCloseModal = function handleCloseModal() { setShowModal(false); }; var children = props.children, path = props.path, pdfHeight = props.pdfHeight; var isPdf = /.pdf/.test(path.toLowerCase()); if (!isPdf) { return renderImage(); } return /*#__PURE__*/React.createElement("div", { className: "app-file-preview" }, /*#__PURE__*/React.createElement("div", { onClick: function onClick(e) { e.preventDefault(); setShowModal(true); } }, children), showModal ? /*#__PURE__*/React.createElement(DragbleModal, { onCancel: handleCloseModal, title: "pdf\u9884\u89C8" }, /*#__PURE__*/React.createElement("iframe", { frameBorder: "0", src: handlePdfPath(path), style: { width: '100%', height: pdfHeight || '500px' } })) : null); }; PdfView.propTypes = { path: PropTypes.string, children: PropTypes.any, isZoom: PropTypes.bool, pdfHeight: PropTypes.string }; export default PdfView;