vue3 上传控件

 

<el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>

         <el-upload

            ref="uploadRef"

            :limit="1"

            accept=".xlsx, .xls"

            :headers="upload.headers"

            :action="upload.url + '?updateSupport=' + upload.updateSupport"

            :disabled="upload.isUploading"

            :on-progress="handleFileUploadProgress"

            :on-success="handleFileSuccess"

            :auto-upload="false"

            drag

         >

            <el-icon class="el-icon--upload"><upload-filled /></el-icon>

            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>

            <template #tip>

               <div class="el-upload__tip text-center">

                  <span>仅允许导入xls、xlsx格式文件。</span>

                  <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>

               </div>

            </template>

         </el-upload>

         <template #footer>

            <div class="dialog-footer">

               <el-button type="primary" @click="submitFileForm">确 定</el-button>

               <el-button @click="upload.open = false">取 消</el-button>

            </div>

         </template>

      </el-dialog>

import { getToken } from '@/utils/auth'

const upload = reactive({

  // 是否显示弹出层

  open: false,

  // 弹出层标题

  title: "",

  // 是否禁用上传

  isUploading: false,

  // 设置上传的请求头部

  headers: { Authorization: "Bearer " + getToken() },

  // 上传的地址

  url: import.meta.env.VITE_APP_BASE_API + "/card"

});

/** 导入按钮操作 */

function handleImport() {

  upload.title = "导入";

  upload.open = true;

};

/** 下载模板操作 */

function importTemplate() {

  exportTemplate("/card");

};

/**文件上传中处理 */

const handleFileUploadProgress = (event, file, fileList) => {

  upload.isUploading = true;

};

/** 文件上传成功处理 */

const handleFileSuccess = (response, file, fileList) => {

  upload.open = false;

  upload.isUploading = false;

  proxy.$refs["uploadRef"].handleRemove(file);

  proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });

  getList();

};

/** 提交上传文件 */

function submitFileForm() {

  proxy.$refs["uploadRef"].submit();

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值