element ui 导入模块的封装

导入组件的封装 

<template><Modal :visible="visible" title="导入" @onSave="onSave" @onCancal="closeDialog"><template #default><el-upload ref="upload" class="upload-demo"action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" :limit="1" :on-exceed="handleExceed":auto-upload="false" :on-change="handleChange" :before-upload="beforeUpload" drag:accept="props.accept.join(',')"><el-icon class="el-icon--upload"><upload-filled /></el-icon><div class="el-upload__text">点击或将文件拖拽到这里上传</div><template #tip><div class="el-upload__tip">仅支持{{ props.accept.join(',') }}文件</div></template></el-upload></template></Modal><el-button @click="toggle">导入</el-button>
</template>
<script setup>
import { ref } from "vue";
import { UploadFilled } from '@element-plus/icons-vue'
import { ElMessage } from "element-plus";
import Modal from '@/components/Modal/index.vue'const props = defineProps({requestFn: Function,accept: Array
})const emit = defineEmits(['onSave'])const visible = ref(false)const fileList = ref([])
const upload = ref()// 点击导入
const toggle = () => {// if(upload.value) {// upload.value.submit()// }visible.value = !visible.value
}// 限制
const handleExceed = () => {ElMessage.warning("只能上传一个文件,请先删除");
};// 上传文件
const handleChange = (file) => {if (file.status === "ready") {fileList.value = [file.raw];}
};// 上传文件之前的钩子
const beforeUpload = (file) => {console.log(file)const acceptStr = props.accept.join(',')const fi = props.accept.findIndex(o => file.name.endsWith(o));if (fi === -1) {console.log(`仅支持${acceptStr}格式的文件`)// ElMessage.warn(`仅支持${acceptStr}格式的文件`);} else {// setFileList([file]);}return false;
}// 保存
const onSave = async () => {try {if (fileList.value && fileList.value.length > 0) {const formData = new FormData();fileList.value.forEach(file => {console.log(file)formData.append('file', file)console.log(formData.get('file'))});console.log(formData.get('file'))const res = await props.requestFn(formData)console.log(res)// onClose(true);// setVisible(false);emit('onSave', '')} else {ElMessage.warn('请选择文件');}} catch (e) {console.log(e)}
}// 关闭弹窗
const closeDialog = () => {visible.value = false
}</script>

使用

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20471.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter 连接数据库常见报错

1. 不允许主机连接到MySQL 报错信息&#xff1a; Response message:java.sql.SQLException: Cannot create PoolableConnectionFactory (null, message from server: "Host 192.168.1.6 is not allowed to connect to this MySQL server") 说明&#xff1a;本机的地…

Jmeter 压测工具的安装及使用

目录 一、简介二、下载三、安装四、启动五、使用1.调整界面显示大小2.添加线程组3.添加 HTTP 请求4.添加 HTTP 请求头5.保存压测配置6.启动压测7.查看结果树8.查看聚合报告 六、补充1.设置中文2.设置字体大小&#xff08;永久生效&#xff09;3.中文乱码 一、简介 官网地址&am…

【ThinkPHP】实现一个逆向工程生成model

ThinkPHP为了节省一些重复的步骤&#xff0c;写了个简单版的生成model的工具&#xff0c;逆向生成model代码&#xff0c;节省时间&#xff0c;专注写业务代码。 ThinkPHP中的命令行也提供了一些生成代码的命令&#xff1a; make:controller 创建控制器 make:model 创建模型 m…

Photoshop简单案例(10)——利用PS修改证件照尺寸为1寸(或其他)

目录 一、项目介绍二、基本流程三、效果演示 一、项目介绍 本文介绍一下利用Photoshop修改证件照尺寸为1寸的方法。 二、基本流程 首先打开新建一个空白画布&#xff0c;设置画布宽度和高度分别为25mm和35mm&#xff0c;分辨率为300&#xff0c;背景颜色与证件照背景相同&am…

解决Ubuntu下arm-none-linux-gnueabihf-gcc -v :未找到命令

问题&#xff1a;arm-none-linux-gnueabihf-gcc -v arm-none-linux-gnueabihf-gcc&#xff1a;未找到命令 学习MP135开发板搭建环境之后没gcc不可用&#xff0c;网上找了很多教程都没法解决 解决方法&#xff1a; 1、重启&#xff1a;&#xff08;我试了没用&#xff09; 2、…

使用OpenCV显示图像的RGB颜色直方图

#include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv;int main( ) {Mat srcImage;srcImage=<

LiveGBS流媒体平台GB/T28181功能-作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备

LiveGBS作为上级平台对接海康大华华为宇视等下级平台监控摄像机NVR硬件执法仪等GB28181设备 1、背景说明2、部署国标平台2.1、安装使用说明2.2、服务器网络环境2.3、信令服务配置 3、监控摄像头设备接入3.1、海康GB28181接入示例3.2、大华GB28181接入示例3.3、华为IPC GB28181接…

基于Java+SpringBoot制作一个社区宠物登记小程序

制作一个社区宠物登记小程序,帮助社区居民登记和管理他们的宠物信息,以便更好地跟踪和维护社区中的宠物状况,通过社区宠物信息登记系统,社区居民可以更好地管理自己的宠物信息,并与其他宠物所有者共享资源和信息。这将有助于提高社区宠物的福利和安全,促进社区成员之间的…

Chat2DB-开源AI智能数据库客户端工具 能够将自然语言转换为SQL

一、Chat2DB是什么 Chat2DB 是一款有开源免费的多数据库客户端工具&#xff0c;支持windows、mac本地安装&#xff0c;也支持服务器端部署&#xff0c;web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力&#xff0c;能够将自然语言转换为SQ…

国产SAAS平台中类似Jira的有哪些值得关注的选择?

在项目管理市场中&#xff0c;Jira是一款非常知名的软件工具。它可以帮助团队成员更好地管理和协作&#xff0c;提高项目效率和质量。然而&#xff0c;Jira并不是完美的&#xff0c;存在诸如复杂操作、高昂费用等不足之处。因此&#xff0c;许多国内企业开始尝试寻找替代品&…

PowerShell 报错:因为在此系统上禁止运行脚本。有关详细信息

PowerShell 报错&#xff1a;因为在此系统上禁止运行脚本。有关详细信息 Import-Module : 无法加载文件 D:\\Documents\WindowsPowerShell\Modules\posh-git\1.1.0\posh-git.psm1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.…

家政服务小程序软件解决方案

家政服务小程序软件是近年来随着人们对家政服务需求的增长而逐渐兴起的一种数字化服务解决方案。通过小程序软件&#xff0c;用户可以轻松预约家政服务&#xff0c;包括保姆、月嫂、钟点工等&#xff0c;而且价格透明、服务规范&#xff0c;大大提高了用户对家政服务的满意度。…