import { Button, Image, message, Modal } from "antd"; import dayjs from "dayjs"; import { useRef, useState } from "react"; import SignatureCanvas from "react-signature-canvas"; import { base642File } from "../../utils"; /** * 签字组件 */ function Signature(props) { const { onConfirm, width = 752, height = 300, ...restProps } = props; const [signatureModalOpen, setSignatureModalOpen] = useState(false); const signatureCanvas = useRef(null); const [base64, setBase64] = useState(""); const onOk = () => { if (signatureCanvas.current.isEmpty()) { message.warning("请签名"); return; } const base64 = signatureCanvas.current.toDataURL(); setBase64(base64); onConfirm({ time: dayjs().format("YYYY-MM-DD HH:mm:ss"), base64, file: base642File(base64), }); signatureCanvas.current.clear(); setSignatureModalOpen(false); }; return ( <>