当前位置: 首页 > news >正文

Vue3:uv-upload图片上传

效果图:

参考文档:

Upload 上传 | 我的资料管理-uv-ui 是全面兼容vue3+2、nvue、app、h5、小程序等多端的uni-app生态框架 (uvui.cn)

代码:

<view class="greenBtn_zw2" @click="handleAddGroup">添加班级群</view>

  //添加班级群const handleAddGroup = () => {addDialog.value.open();};

<!-- 添加班级群弹窗 --><uv-popup ref="addDialog" mode="center" :customStyle="dialogStyle2" :closeOnClickOverlay="false"><view class="dialogBG"><view class="dialog-all"><view class="dialog-small-close" @click="cancelRoom"><uv-icon name="close-circle-fill" size="28" color="#B1B1B1"></uv-icon></view><view class="dialog-center"><view class="dialog-title pb-10">班级群</view><view class="diaText">班级群名称</view><uv-input maxlength="10" placeholder="请输入班级群名称" border="surround" clearable v-model="addGroup.info.groupName"></uv-input><view class="diaText statusD">群二维码<view class="gray_s"><text style="margin-right: 38rpx; font-size: 28rpx; color: #555555">状态</text><uv-switch v-model="addGroup.info.status" size="20" activeColor="#287e66" inactive-color="#c0c0c0" asyncChange @change="changeValue"></uv-switch></view></view><view class="m-flex" style="align-items: center"><uv-upload:fileList="fileList"name="fileList":maxCount="1"@afterRead="afterRead"@delete="deletePic"width="360rpx"height="360rpx":customStyle="{ width: '360rpx', height: '360rpx', marginBottom: '40rpx', display: 'flex', alignItems: 'center' }"></uv-upload></view><view class="dialog_footer1 displayFlexSB"><view class="common-sure-btn-1" @click="confirmRoom()">确定</view><view class="common-sure-btn-2" @click="cancelRoom()">取消</view></view></view></view></view></uv-popup>

<script setup lang="ts"> import { onLoad, onShow } from '@dcloudio/uni-app';import { ref, reactive, toRefs, onMounted, defineComponent } from 'vue';import { getFirstPage, getFirstClass, sessionUpdate, sessionCreate, sessionDelete } from '@/apis/vocabulary.ts';  const dialogStyle2 = reactive({ width: '597rpx', height: '855rpx', background: '#FFFFFF', borderRadius: '48rpx' });const addGroup = reactive<object>({ info: { groupName: '', status: true } });const fileList = ref([]);const validateClassForm = () => {if (addGroup.info.groupName == '') {toast.value.show({ message: '请输入班级群名称', success: false });return false;}if (addGroup.info.groupName.trim().length >= 11) {toast.value.show({ message: '班级群名称不能超过10个字符', success: false });return false;}if (fileList.value.length < 1) {toast.value.show({ message: '请上传群二维码', success: false });return false;}return true;};//关闭/取消 弹框按钮方法const cancelRoom = () => {addGroup.info = {groupName: '',status: true};fileList.value = [];addDialog.value.close();};//是否切换switch进行状态推送const changeValue = (e: any) => {uni.showModal({content: e ? `确定要开启${addGroup.info.groupName}吗` : `确定要关闭${addGroup.info.groupName}吗`,success: (res) => {if (res.confirm) {addGroup.info.status = e;console.log('e------', addGroup.info.status);}}});};//图片上传方法//afterRead读取后的处理函数const afterRead = async (event: any) => {// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式let lists = [].concat(event.file);let fileListLen = fileList.value.length;lists.map((item) => {fileList.value.push({...item,status: 'uploading',message: '上传中'});});for (let i = 0; i < lists.length; i++) {const result = await uploadFilePromise(lists[i].url);// console.log(result, '1111111111111111');let item = fileList.value[fileListLen];fileList.value.splice(fileListLen,1,Object.assign(item, {status: 'success',message: '',url: result ? result : ''}));fileListLen++;}};const uploadFilePromise = (url) => {return new Promise((resolve, reject) => {let a = uni.uploadFile({// url: `${config.baseURL}/zx/common/uploadFile`, // 仅为示例,非真实的接口地址url: 'https://baiduway.baijy.com/zx/common/uploadFile', // 仅为示例,非真实的接口地址filePath: url,name: 'file',// formData: {//   user: 'test'// },header: {Token: uni.getStorageSync('token')},success: (res) => {let result = JSON.parse(res.data);setTimeout(() => {resolve(result.data.fileUrl);}, 1000);}});});};// 删除图片const deletePic = (event: any) => {console.log(event);console.log('fileList.value', fileList.value);console.log('fileList${event.name}', `fileList${event.name}`);// fileList[event.name]fileList.value.splice(event.index, 1);// this[`fileList${event.name}`].splice(event.index, 1);};//确定方法const confirmRoom = () => {if (validateClassForm()) {let obj = {groupName: addGroup.info.groupName,status: addGroup.info.status ? 1 : 0,qrcodeUrl: fileList.value[0].url};addGroupList(obj).then((res: any) => {if (res.success) {toast.value.show({ message: '班级群添加成功', success: true });getclassList();cancelRoom();} else {toast.value.show({ message: res.message, success: false });}});}};</script>

相关文章:

Vue3:uv-upload图片上传

效果图&#xff1a; 参考文档&#xff1a; Upload 上传 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 (uvui.cn) 代码&#xff1a; <view class"greenBtn_zw2" click"handleAddGroup">添加班级群</vie…...

大数据机器学习算法和计算机视觉应用07:机器学习

Machine Learning Goal of Machine LearningLinear ClassificationSolutionNumerical output example: linear regressionStochastic Gradient DescentMatrix Acceleration Goal of Machine Learning 机器学习的目标 假设现在有一组数据 x i , y i {x_i,y_i} xi​,yi​&…...

基于asp.net游乐园管理系统设计与实现

博主介绍&#xff1a;专注于Java&#xff08;springboot ssm 等开发框架&#xff09; vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…...

一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测

一区牛顿-拉夫逊算法分解深度学习&#xff01;VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测 目录 一区牛顿-拉夫逊算法分解深度学习&#xff01;VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院一区…...

uniapp使用腾讯地图接口的时候提示此key每秒请求量已达到上限或者提示此key每日调用量已达到上限问题解决

要在创建的key上添加配额 点击配额之后进入分配页面&#xff0c;分配完之后刷新uniapp就可以调用成功了。...

WPF 完美解决改变指示灯的颜色

WPF 完美解决改变指示灯的颜色 原有&#xff1a;自己再做WPF页面设计后发现直接去查找页面多个控件嵌套情况下找不到指示灯&#xff08;Button实现的&#xff0c;详细可以看这篇文章 这里&#xff09;&#xff0c;具体看看来如何实现 加粗样式思路&#xff1a;无论多级嵌套&a…...

Flutter/Dart:使用日志模块Logger Easier

Flutter笔记 Flutter/Dart&#xff1a;使用日志模块Logger Easier Logger Easier 是一个为 Dart 和 Flutter 应用程序量身定制的现代化日志管理解决方案。它提供了一个高度灵活、功能丰富的日志记录系统&#xff0c;旨在简化开发者的日志管理工作&#xff0c;同时提供一定的定制…...

阿里云云服务器初始化

如果我们的云服务器出现无法挽回的错误时&#xff0c;我们可以尝试初始化云服务器进行解决。 首先搜索阿里云&#xff08;你要先确认自己已经购买了阿里云的云服务器&#xff09;&#xff1a; 登录账号后主页向下划 进入后点击管理控制台 点击进入后可以看到正在运行&#xff0…...

Python中SKlearn的K-means使用详解

文章目录 Python中SKlearn的K-means使用详解一、引言二、K-means算法原理三、使用SKlearn进行K-means聚类的步骤1、导入必要的库2、生成数据集3、创建K-means模型并设置参数4、训练模型5、预测簇标签6、可视化结果 四、总结 Python中SKlearn的K-means使用详解 一、引言 K-mea…...

红帽RHCE认证适用哪些人学习

红帽 RHCE工程师认证有着广泛的适用人群。对于初入 IT 行业的新手来说&#xff0c;RHCE 是快速建立专业基础、提升自身竞争力的绝佳途径。它能帮助新人系统地学习 Linux 系统知识&#xff0c;从基础的安装配置到复杂的网络服务管理&#xff0c;一步一个脚印地构建起坚实的技术框…...

FFmpeg 框架简介和文件解复用

文章目录 ffmpeg框架简介libavformat库libavcodec库libavdevice库 复用&#xff08;muxers&#xff09;和解复用&#xff08;demuxers&#xff09;容器格式FLVScript Tag Data结构&#xff08;脚本类型、帧类型&#xff09;Audio Tag Data结构&#xff08;音频Tag&#xff09;V…...

《Java核心技术I》Swing中的边框

边框 BorderFactory静态方法创建边框&#xff0c;凹斜面&#xff0c;凸斜面&#xff0c;蚀刻&#xff0c;直线&#xff0c;蒙版&#xff0c;空白。 边框添加标题&#xff0c;BorderFactory.createTitledBorder 组合边框&#xff0c;BorderFactory.createCompoundBorder JCo…...

MySQL 中的常见错误与排查

在 MySQL 数据库的日常运维中&#xff0c;管理员可能会遇到各种错误。无论是查询性能问题、连接异常、数据一致性问题&#xff0c;还是磁盘空间不足等&#xff0c;及时排查并解决这些问题是保证数据库稳定运行的关键。本文将列出 MySQL 中一些常见的错误及其排查方法。 一、连接…...

SQL 查询方式比较:子查询与自连接

在 SQL 中&#xff0c;子查询和自连接是两种常见的查询方式&#xff0c;它们的功能虽然可以相同&#xff0c;但实现的方式不同。本文通过具体示例&#xff0c;深入探讨这两种查询方式&#xff0c;并配合数据展示&#xff0c;帮助大家理解它们的使用场景和差异。 数据示例 假设…...

Linux下学【MySQL】所有常用类型详解( 配实操图 通俗易懂 )

每日激励&#xff1a;“当你觉得你会幸运时&#xff0c;幸运就会眷顾你&#xff0c;所以努力吧&#xff0c;只要你把事情做好&#xff0c;并觉得你会幸运&#xff0c;你将会变得幸运且充实。” 绪论​&#xff1a; 本章继续学习MySQL的知识&#xff0c;本章主要讲到mysql中的所…...

Gin-vue-admin(1):环境配置和安装

目录 环境配置如果443网络连接问题&#xff0c;需要添加代理服务器 后端运行前端运行 环境配置 git clone https://gitcode.com/gh_mirrors/gi/gin-vue-admin.git到server文件目录下 go mod tidygo mod tidy 是 Go 语言模块系统中的一个命令&#xff0c;用于维护 go.mod 文件…...

如何在centos系统上挂载U盘

在CentOS上挂载NTFS格式的U盘,需要执行一系列步骤,包括识别U盘设备、安装必要的软件、创建挂载点,并最终挂载U盘。以下是在CentOS上挂载NTFS格式U盘的详细步骤: 一、准备工作 确认CentOS版本: 确保你的CentOS系统已经安装并正常运行。不同版本的CentOS在命令和工具方面可能…...

2024年12月大语言模型最新对比:GPT-4、Claude 3、文心一言等详细评测

前言 随着人工智能技术的快速发展&#xff0c;大语言模型(LLM)已经成为了技术领域最热门的话题。本文将详细对比目前主流的大语言模型&#xff0c;帮助大家选择最适合的工具。 一、OpenAI GPT系列 1. GPT-4 核心优势&#xff1a; 多模态理解能力强 逻辑推理能力出色 创造…...

openjdk17 从C++视角看 String的intern的jni方法JVM_InternString方法被gcc编译器连接

symbols-unix 文件部分内容 JVM_IHashCode JVM_InitClassName JVM_InitStackTraceElement JVM_InitStackTraceElementArray JVM_InitializeFromArchive JVM_InternString 要理解在 symbols-unix 文件中包含 JVM_InternString 方法的原因&#xff0c;我们需要从构建过程、符号…...

day16 python(4)——UnitTest

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、UnitTest框架介绍 1.1 UnitTest框架 1.2 unitTest的组成&#xff08;5部分&#xff09; 1.2.1 TestCase&#xff08;测试用例&#xff09; 1.2.2 TestSuit 和 TestRunner 【方法1】 【方法2】 1…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...