tony.cheng
2026-03-12 bc2b5cf668bbe6ebbb4f090bc476781d8630c2bb
web-app/src/components/dashboard/TabContainer.jsx
@@ -1321,8 +1321,8 @@
  });
  const loadedRef = useRef(false);
  // 获取 caseId
  const caseId = caseData?.caseId || getMergedParams().caseId;
  // 获取 caseId(兼容驼峰和蛇形命名)
  const caseId = caseData?.caseId || caseData?.case_id || getMergedParams().caseId;
  // 处理协议内容展示(纯文本,处理换行)
  const renderAgreementContent = (content) => {
@@ -1394,35 +1394,29 @@
    if (!caseId) return;
    setActionLoading(prev => ({ ...prev, download: true }));
    try {
      // 调用API获取协议内容
      // 调用API获取PDF文件流
      const response = await MediationAgreementAPIService.downloadAgreement(caseId);
      
      if (response?.data?.agreeContent) {
        const agreementContent = response.data.agreeContent;
        // 创建Blob对象
        const blob = new Blob([agreementContent], {
          type: 'application/pdf'
        });
        // 创建下载链接
        const url = window.URL.createObjectURL(blob);
        const link = document.createElement('a');
        link.href = url;
        link.download = `调解协议_${caseId}.pdf`;
        // 触发下载
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        // 清理URL对象
        window.URL.revokeObjectURL(url);
        message.success('协议下载成功!');
      } else {
        message.error('未获取到协议内容');
      }
      // 创建Blob对象(PDF格式)
      const blob = new Blob([response.data], {
        type: 'application/pdf'
      });
      // 创建下载链接
      const url = window.URL.createObjectURL(blob);
      const link = document.createElement('a');
      link.href = url;
      link.download = `调解协议_${caseId}.pdf`;
      // 触发下载
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
      // 清理URL对象
      window.URL.revokeObjectURL(url);
      message.success('协议下载成功!');
    } catch (err) {
      console.error('下载协议失败:', err);
      message.error('下载协议失败,请稍后重试');
@@ -1436,7 +1430,7 @@
    if (!caseId) return;
    setActionLoading(prev => ({ ...prev, regenerate: true }));
    try {
      const response = await MediationAgreementAPIService.generateAgreement(caseId);
      const response = await MediationAgreementAPIService.regenerateAgreement(caseId);
      if (response?.data?.agreeContent) {
        setAgreementContent(response.data.agreeContent);
        message.success('协议重新生成成功!');