import React, {Fragment, useEffect, useState} from 'react'; import {Button, Image, Input, message, Modal, QRCode, Space} from 'antd'; import {v4 as uuidv4} from 'uuid'; import {copyToClipboard} from "@/lib/copyToClipboard"; import {addTaskPassAPI} from "@/components/service/Share"; const ShareOption = (props: { taskId: string }) => { // const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); const [buttonIndex, setButtonIndex] = useState(1); const [qrCodeValue, setQrCodeValue] = useState("-"); const [qrCodeStatus, setQrCodeStatus] = useState<'active' | 'expired' | 'loading' | 'scanned'>("loading"); const [joinId,setJoinId] = useState(""); function doDownload(url: string, fileName: string) { const a = document.createElement('a'); a.download = fileName; a.href = url; document.body.appendChild(a); a.click(); document.body.removeChild(a); } const downloadCanvasQRCode = () => { const canvas = document.getElementById('myqrcode')?.querySelector('canvas'); if (canvas) { const url = canvas.toDataURL(); doDownload(url, 'QRCode.png'); } }; const downloadSvgQRCode = () => { const svg = document.getElementById('myqrcode')?.querySelector('svg'); const svgData = new XMLSerializer().serializeToString(svg!); const blob = new Blob([svgData], {type: 'image/svg+xml;charset=utf-8'}); const url = URL.createObjectURL(blob); console.log({url}) doDownload(url, '微信小程序马上行计划管理扫码加入计划.svg'); }; const generateQrcode = () => { const clientId: string = uuidv4().substring(0,32); // 分享人必须有权限 // 生成分享信息同时适用链接和二维码 addTaskPassAPI({taskId:props.taskId,pass:clientId,joinCheck:'1'}).then(res=>{ if (res.data.status.success){ let qrCodeData = { taskId: props.taskId, pass: clientId, passId: res.data.data.id, local: "马上行计划管理", opType: "SHARE_OPTION" } setJoinId(res.data.data.id!) setQrCodeValue(JSON.stringify(qrCodeData)) setQrCodeStatus("active") } }); } const showModal = () => { setOpen(true); }; const handleCancel = () => { setOpen(false); }; useEffect(() => { generateQrcode() }, []); return ( 返回 , // , // , ]} > {buttonIndex == 1 &&
微信小程序二维码
小程序扫描二维码,有效期7天
} {buttonIndex == 2 &&
分享链接7日内有效
}
); }; export default ShareOption;