import { message } from 'ant-design-vue'; // 生成对话ID export const generateConversationId = () => { return `conv_${Date.now()}_${Math.random().toString(36).substr(2, 9)}` } // 格式化时间 export const formatTime = (timestamp: number) => { const date = new Date(timestamp) const now = new Date() const diff = now.getTime() - timestamp if (diff < 60000) { // 1分钟内 return '刚刚' } else if (diff < 3600000) { // 1小时内 return `${Math.floor(diff / 60000)}分钟前` } else if (diff < 86400000) { // 1天内 return date.toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' }) } else { return date.toLocaleDateString('zh-CN') } } export const copyToClipboard = (text: string) => { try { // 如果参数是JSON字符串,先格式化再复制 const formattedParams = JSON.stringify(JSON.parse(text), null, 2); navigator.clipboard.writeText(formattedParams).then(() => { message.success('任务参数已复制到剪贴板'); }).catch(() => { // 降级方案:使用传统方法复制 const textArea = document.createElement('textarea'); textArea.value = formattedParams; document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); message.success('任务参数已复制到剪贴板'); }); } catch (error) { // 如果JSON解析失败,直接复制原始字符串 navigator.clipboard.writeText(text).then(() => { message.success('任务参数已复制到剪贴板'); }).catch(() => { message.error('复制失败,请手动复制'); }); } }