Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-24-lixuming-5.md
T
2025-07-25 11:27:52 +08:00

2.9 KiB
Raw Blame History

心理健康测评明细导出功能修复记录(第二次)

导出功能认证失败问题修复(2025-07-24 17:00)

问题描述

之前的修复方案未能解决问题,导出的Excel文件中仍然显示错误信息:

{"code":401,"msg":"认证失败,无法访问系统资源","data":null}

问题分析

经过进一步分析,发现项目中有统一的下载工具函数,应该使用项目提供的统一下载方法,而不是自定义XMLHttpRequest。

  1. 项目中提供了两种下载方法:

    • proxy.$download - 来自插件的下载方法
    • proxy.download - 来自request.ts的下载方法
  2. 查看其他模块的导出功能,发现都是使用proxy.download方法,而不是自定义XMLHttpRequest或proxy.$download。

解决方案

修改导出功能代码,使用项目统一的proxy.download方法:

/** 导出结果 */
const handleExport = () => {
  console.log('导出测评明细,测评ID:', evaluationId.value);
  proxy?.download(
    'xljk/evaluation/detail/export',
    {
      evaluationId: evaluationId.value
    },
    `心理健康测评明细_${evaluationId.value}_${new Date().getTime()}.xlsx`
  );
};

修改前后对比

修改前:

/** 导出结果 */
const handleExport = () => {
  // 显示加载中提示
  const loading = ElLoading.service({
    text: '正在导出数据,请稍候...',
    background: 'rgba(0, 0, 0, 0.7)'
  });
  
  // 创建表单数据
  const formData = new FormData();
  formData.append('evaluationId', evaluationId.value);
  
  // 使用XMLHttpRequest发送请求
  const xhr = new XMLHttpRequest();
  xhr.open('POST', import.meta.env.VITE_APP_BASE_API + '/xljk/evaluation/detail/export', true);
  xhr.responseType = 'blob';
  
  // 添加请求头
  xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem('token'));
  xhr.setRequestHeader('clientid', 'web');
  xhr.setRequestHeader('referer', window.location.href);
  
  // ... 其他代码
};

修改后:

/** 导出结果 */
const handleExport = () => {
  console.log('导出测评明细,测评ID:', evaluationId.value);
  proxy?.download(
    'xljk/evaluation/detail/export',
    {
      evaluationId: evaluationId.value
    },
    `心理健康测评明细_${evaluationId.value}_${new Date().getTime()}.xlsx`
  );
};

测试结果

修复后,导出功能可以正常工作,成功导出Excel文件,包含完整的心理健康测评明细数据。

相关文件

  • web/src/views/xljk/evaluation/detail.vue
  • web/src/utils/request.ts(提供了download函数)

注意事项

  • 项目中有统一的下载工具函数,应该使用项目提供的统一下载方法
  • 查看其他模块的类似功能实现,可以找到正确的使用方式
  • 保持代码风格的一致性,有助于项目的维护

修复人员:李旭明
修复时间:2025-07-24 17:00