ZBLOG

导入 上传文件:

看起来你在使用 Vue.js 和 Ant Design Vue 组件库来实现文件上传功能。如果你点击“导入文件”之后显示红色的文件名称,可能是由于文件上传处理逻辑或反馈未能正确实现。

首先,请确保以下几点:

  1. 检查 importCasePool 方法:确保这个方法能正确处理上传的文件,并返回相应的 Promise。需要保证它内部有处理文件上传的逻辑。

  2. 修改 handleOk 函数:你的代码中,在调用 importCasePool() 时没有传递当前选中的文件。这意味着即使你的方法能够正常工作,也无法得到要导入的具体文件信息。应该将该信息传递给 importCasePool()

  3. 错误提示:如果上传失败,你可能希望提供一些用户反馈,以便他们知道发生了什么。例如,可以在界面上显示一个消息通知。

下面是改进后的示例代码:

<template>
  <div class="form-tool">
    <a-button class="margin-right-10 button-light-blue" @click="openModal">导入</a-button>
    <a-modal v-model:open="open" title="上传文件" @ok="handleOk">
      <div style="padding: 10px 0px">
        <span>上传文件:</span>
        <a-upload
          :before-upload="beforeUpload"
          :on-change="handleChange"
          accept=".xlsx,.xls"
          :show-upload-list="{ showRemoveIcon: true }"
          ref="upload"
        >
          <a-button>导入文件</a-button>
        </a-upload>
      </div>
    </a-modal>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import { importCasePool } from '../../utils';
import { message } from 'ant-design-vue'; // 导入消息组件

const open = ref(false);
const fileList = ref([]); // 用于保存选中的文件

const openModal = () => {
  open.value = true;
};

const beforeUpload = (file) => {
  fileList.value.push(file); // 保存当前选中的文件
  return true; 
};

const handleChange = (info) => {
  console.log(info.file);
};

const handleOk = async () => {
  if (fileList.value.length === 0) {
    message.error('请先选择要导入的文件!');
    return;
  }

  try {
    const response = await importCasePool(fileList.value);
    console.log(response);
    
    if (response.success) {
      message.success('导入成功!');
    } else {
      message.error('导入失败!' + response.message);
    }
    
  } catch (error) {
    console.error(error);
    message.error('发生错误,请重试。');
    
  } finally {
    open.value = false;  
    fileList.value = []; // 清空已选中文件
  }
};
</script>

注意事项:

  1. 将选中数据传递给 importCasePool:确保这个函数能够接受并正确处理所传递的参数(例如,要上传的文件)。

  2. 添加反馈信息:使用 message 提供用户友好的通知。

  3. 清空已选中文件:在每次操作后清空选中文件,这样下一次打开模态框时不会保留之前选择的内容。

通过以上这些更改,你可以为用户提供更明确的信息和更好的体验。同时,也要检查你的后端是否可以正确接收和处理这些请求,以及返回的数据格式是否符合预期。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21021

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?