Element-ui使用上传时弹框选择文件类型

server/2024/9/23 4:16:51/

实现效果

1,点击上传,上传文件;
在这里插入图片描述
2,选择文件;
在这里插入图片描述
3,弹框选择文件类型;
在这里插入图片描述
在这里插入图片描述
4,选择类型后确定上传;
在这里插入图片描述

一,上传

跳过;

二,定义弹框+下拉框

1,定义属性

dialogVisible: false, //初始页面关闭弹框

在这里插入图片描述
2,定义弹框

el-autocomplete 组件在 input输入框中,’带输入建议‘;

dialogVisible:属性; @close=“decisionTyoe(false)”:点击×时调用关闭函数传入false,停止上传;
@click=“decisionTyoe(false)”:点击取消时调用关闭函数传入false,停止上传;
@click=“decisionTyoe(true)”:点击取消时调用关闭函数传入false,上传文件;

    <el-dialog title="选择类型" :visible.sync="dialogVisible" @close="decisionTyoe(false)"><el-autocomplete class="feed-word-type" v-model="m_arrWordTypeValue":fetch-suggestions="doWordTypeValue"@select="handleQueryWordType"><template slot="prepend">文件类型</template></el-autocomplete><span slot="footer" class="dialog-footer"><el-button @click="decisionTyoe(false)">取 消</el-button><el-button type="primary" @click="decisionTyoe(true)">确 定</el-button></span></el-dialog>

3,函数定义
注意!!!一定要开启监听,原因是后续的方法需要根据监听来判断是否选择了文件类型(取消,确定)

    decisionTyoe(flag){this.dialogVisible= false;// 开启监听this.$emit('dialog-closed', flag);}

4,下拉框框函数定义

	//下拉框数据doWordTypeValue(queryString, cb) {var results = [{value: 'IOT',file_type: 1,}, {value: 'MCU',file_type: 2,}, {value: '时序',file_type: 3,}]// 调用 callback 返回建议列表的数据cb(results);},//选择下拉框handleQueryWordType(inItem){this.m_arrWordTypeValue = inItem.value;this.extraData.file_type = inItem.file_type;},

三,上传合并弹框

1,弹框选择要在上传后台前,所以要使用到 上传组件的before-upload属性(上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。)

              <el-upload:action="m_uploadUrl":auto-upload="true":data="extraData":show-file-list="false":before-upload="doImportBefore":on-success="doImportSuccess"><i class="el-icon-upload2">上传</i></el-upload>

2,定义doImportBefore函数来选择上传文件与打开弹框

    doImportBefore(inFile) {// 打开对话框this.dialogVisible = true;// 需要来进行等待用户弹框选择文件类型;// 使用Promise函数等待监听dialog-closedreturn new Promise((resolve, reject) => {// 当用户点击了确定或取消时触发监听,this.$once('dialog-closed', (confirmed) => {if (confirmed) {console.log('用户点击了确认按钮');///// 文件的逻辑处理let nPos = inFile.name.lastIndexOf('.');if (nPos < 0) {this.$message.error('支持的文件格式 => dat 或 bin');resolve(false);return;}let strExt = inFile.name.substring(nPos + 1);strExt = strExt.toLowerCase();if (strExt !== 'dat' && strExt !== 'bin') {this.$message.error('支持的文件格式 => dat 或 bin');resolve(false);return;}///// 直接设置异步加载状态...this.m_bIsLoading = trueresolve(true);return;} else {this.$message.error('用户取消了上传');reject(false);return;}});});}

http://www.ppmy.cn/server/47452.html

相关文章

Android电量优化,让你的手机续航更持久

节能减排&#xff0c;从我做起。一款Android应用如果非常耗电&#xff0c;是一定会被主人嫌弃的。自从Android手机的主人用了你开发的app&#xff0c;一天下来&#xff0c;也没干啥事&#xff0c;电就没了。那么他就会想尽办法找出耗电量杀手&#xff0c;当他找出后&#xff0c…

浅谈MySQL事务

目录 一&#xff0c;事务的引入 上述的特性叫做“原子性”&#xff08;事务最核心操作&#xff0c;事务还具备别的性质在下文&#xff09;&#xff1b; 二&#xff0c;日志体系 三&#xff0c;事务的使用 四&#xff0c;事务的基本特性 1.脏读&#xff1a; 2.不可重复读 …

Unity3D 基于YooAssets的资源管理详解

前言 Unity3D 是一款非常流行的游戏开发引擎&#xff0c;它提供了丰富的功能和工具来帮助开发者快速创建高质量的游戏和应用程序。其中&#xff0c;资源管理是游戏开发中非常重要的一部分&#xff0c;它涉及到如何有效地加载、管理和释放游戏中的各种资源&#xff0c;如模型、…

1.3 寻找灵感:认知系谱图

一个比较具体的例子&#xff0c;你有一个母亲和一个父亲&#xff0c;你同时拥有他们的特点&#xff0c;但你还会有一些自己独有的特点。你继承了你爸妈的基因&#xff0c;还包括他们祖先的基因。 和你拥有一个家族系谱一样&#xff0c;你也拥有一个知识系谱。它不是来自你的家…

Dinky FlinkSQL Doris读取写入

Dinky运行前开启全局变量&#xff0c;以支持使用&#xff1a; sink.sink.label-prefix ${idUtil.simpleUUID()} Mysql同步Doris - testMysqlCdcDoris&#xff1a; EXECUTE CDCSOURCE demo_doris WITH (connector mysql-cdc,hostname 172.xxx,port 3306,username xxx,pas…

Java Keyword

文章目录 Java Keyword一、基本数据类型相关关键字(8个)&#xff08;1&#xff09;byte&#xff1a;单字节类型&#xff08;2&#xff09;short&#xff1a;短整型&#xff08;3&#xff09;int&#xff1a;整型&#xff08;4&#xff09;long&#xff1a;长整型&#xff08;5&…

MAX7219(模拟SPI)驱动灯环的简单应用

文章目录 一、MAX7219是什么&#xff1f;二、使用步骤1.硬件1.1 引脚说明1.2 应用电路1.2.1 驱动数码管1.2.2 驱动点阵 2.软件2.1 时序2.2 寄存器2.2.1 掉电寄存器2.2.2 译码模式寄存器2.2.3 亮度寄存器2.2.4 扫描寄存器2.2.5 显示测试寄存器 2.3 初始化2.4 控制左侧灯环特定位…

Go 语言中基础数据类型、运算符、类型转换与类型别名

在编程语言中&#xff0c;数据类型是程序设计的基石&#xff0c;它们决定了变量的存储方式、允许的操作以及运算结果。在 Go 语言中&#xff0c;数据类型丰富而灵活&#xff0c;提供了强大的工具来处理各种数据和运算需求。无论是简单的布尔值、整型和浮点型&#xff0c;还是复…