移动端uniapp使用uview组件在表单中上传图片并回显,预览,删除操作_uview上传图片-程序员宅基地

技术标签: uniapp  前端  javascript  uni-app  

移动端uniapp使用uview组件在表单中上传图片并回显,预览,删除操作

话不多说直接上代码,具体流程在代码中解释

<template>
	<view class="">
		<!-- 新增任务表单内容 -->
		<view style="width:100vw; height:100vh;padding: 5px 0px;">
			<!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 --
			<uni-forms label-width="80" ref="baseForm">
				<!-- 上传图片 -->
				<view style="background-color: #FFFFFF;padding: 0rpx 20rpx;">
					<uni-forms-item label="上传图片:">
						<u-upload :fileList="fileList1" @afterRead="afterRead"    		      
						@delete="deletePic"
						 name="1" multiple 
						 :maxCount="10"
						  :previewFullImage="true"></u-upload>
					</uni-forms-item>
				</view>
				<!-- 上传图片 -->
				<view class="" style="display: flex;">
					<u-button style="width: 90%;margin-top: 15rpx;" type="primary" 
					text="提交" 
					@click="addRenWu"></u-button>
				</view>
			</uni-forms>
		</view>
</template>
<script>
import config from '@/config.js';
export default {
      
	data() {
      
		return {
      
			fileList1: []
			},
		};
	},
	methods: {
      
		
		// 删除图片
		deletePic(event) {
      
		//这个是uview自带的删除图片缓存路径的
			this[`fileList${
        event.name}`].splice(event.index, 1);
			//这个是自己删除服务器图片的接口--
			delPic(event.file.ossId).then(res => {
      
				// console.log(res, 'sanchu');
			});
		},
		// 新增图片
		async afterRead(event) {
      
			// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
			let lists = [].concat(event.file);
			let fileListLen = this[`fileList${
        event.name}`].length;
			lists.map(item => {
      
				this[`fileList${
        event.name}`].push({
      
					...item,
					status: 'uploading',
					message: '上传中'
				});
			});
			for (let i = 0; i < lists.length; i++) {
      
			//在这里调用上传图片函数 result是下边上传图片的返回值
				const result = await this.uploadFilePromise(lists[i].url);
				let item = this[`fileList${
        event.name}`][fileListLen];
				// console.log(result, 'hhhh');
				this[`fileList${
        event.name}`].splice(
					fileListLen,
					1,
					Object.assign(item, {
      
						status: 'success',
						message: '',
						url: result.url,
						ossId: result.ossId 
						//这里的值是可以直接添加的,他会在你点击删除键的时候返
						//回
					})
				);
				fileListLen++;
			}
		},
		uploadFilePromise(url) {
      
			return new Promise((resolve, reject) => {
      
				let a = uni.uploadFile({
      
					url: `${
        config.baseUrl}/system/oss/upload`, // 仅为示例,非真实的接口地址
					filePath: url,
					name: 'file',
					formData: {
      
						user: 'test'
					},
					success: res => {
      
						
						// 这里返回的值就是新增图片函数中-----result
						setTimeout(() => {
      
						//这里的Promise返回值,是可以自定义的,
						//url用来显示图片的上传服务器的地址,ossId表示唯一标识,你可以用它去删除服
						//务端图片,这个具体可以后端交流
							resolve({
       url: JSON.parse(res.data).data.url, ossId: 
							JSON.parse(res.data).data.ossId });
						}, 1000);
					}
				});
			});
		},
		//提交新增信息
		addRenWu() {
      
			if (this.ZhiID === undefined) {
      
				//发送请求新增任务
				addFbTask(this.renwuInfo).then(res => {
      
					(this.gzUser = []),
						//提示提交成功,清空列表信息
						(this.renwuInfo = {
      });
					this.fileList1 = [];
					//弹窗提示提交成功
					this.$modal.msgSuccess('新增成功');
				});
			} 
		},
};
</script>

最近也开发了自己的公众号,会在上面分享前端方面的知识,有兴趣的话,走个关注吧!!!
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44632398/article/details/131665435

智能推荐

[PTA]习题11-6 查找子串_查找子串pta-程序员宅基地

文章浏览阅读1.8k次。本题要求实现一个字符串查找的简单函数。_查找子串pta

Windows 实验总结_windows实验报告总结-程序员宅基地

文章浏览阅读4.7k次。关于DLL的生成地址在CreateDLL.cpp文件中,我定义了两个函数,同时这里__stdcall:Windows API默认的函数调用协议。在头文件做好相对应的定义:__declspec(dllexport)将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。通常它和extern “C” 合用这是由于在制作DLL导出函数时由于 ..._windows实验报告总结

Win8日历天气让锁屏页面也能看天气_为什么锁屏只能win+l键才能显示天气-程序员宅基地

文章浏览阅读615次。Win8日历显示天气设置方法:1、首先在浏览器中输入"http://live.com",登录自己的Windows Live帐号。2、然后进入"日历",点击"导入"——"订阅"。3、接下来打开另一个一个网页"http://weather.raychou.com/?/list/",通过搜索找到你所在的城市。地址栏里最后几位数字,就是你所在城市的城市代码,记住它!_为什么锁屏只能win+l键才能显示天气

你见过哪些离谱的注释?-程序员宅基地

文章浏览阅读57次。点击上方关注 “终端研发部”设为“星标”,和你一起掌握更多数据库知识0、这是一个被代码耽误的诗人1、来一份 1987 年的代码看看2、产品经理要对此负责3、不敢看,也不敢问4、Nike 官网 robots.txt 上的注释5、程序员正确发牢骚的地方6、阅读源码的人,心里一定的崩溃的7、第一天上班看到这段注释就想辞职。8、我能说什么9、这个功能可以收客户多少钱?10、传递高...

python 模拟表单提交_Python 模拟登录及表单提交-程序员宅基地

文章浏览阅读41次。1.[代码][Python]代码# -*- coding: utf-8 -*-import reimport urllibimport urllib2import cookielib#获取程序员宅基地标题和正文url = "http://blog.csdn.net/[username]/archive/2010/07/05/5712850.aspx"sock = urllib.urlopen(ur..._编写模拟登录poj网站并通过表单提交的方式上传测评用代码提交之后发送请求。获取

使用IM中的batch群发邮件-程序员宅基地

文章浏览阅读299次。 调查任务:尝试利用group管理页面的batch机能,调查一下是否可以用来实现发送邮件。 调查思路: 在IM的group管理的batch机能中,参照既存batch的例子(参考Java模式而非JS模式,将既存的class文件反编译,看既存batch代码的大概思路),自己先建个..._email batch

随便推点

vue资源_卖座电影vue下载-程序员宅基地

文章浏览阅读497次。转载https://blog.csdn.net/wang1006008051/article/details/77970492 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 iview ★5801 - 基于 Vuejs 的开源 UI 组件库 mint-ui..._卖座电影vue下载

利用c语言在屏幕上画出窗口,第一课:创建一个windows窗口-程序员宅基地

文章浏览阅读3.4k次。跟我一起学图形编程 作者:姚明联系方式:欢迎使用我的图形学教程。我是计算机专业的学生,对图形图像技术有浓厚的兴趣,就读期间广泛的涉及相关知识,但始终没有深入研究。原因很简单,我认为广度可以决定深度,大学期间应博学,不宜专于细节。现在毕业了,我选择了图形学作为自己深入研究的方向。关于图形学,我也算是初学者,也许,与大家不同的是,在深入研究之前..._c语言windows绘制窗口

优遨机器人UR5与RealSense深度摄像头D435的手眼标定_ur5添加深度相机-程序员宅基地

文章浏览阅读2.7k次,点赞8次,收藏40次。优遨机器人UR5与RealSense深度摄像头D435的手眼标定系统环境:虚拟机VMware Workstation 12 Pro,操作系统Ubuntu 16.04.7LTS,ROS版本Kinetic 机器人型号UR5,软件版本PolyScope3.5,相机为RealSense D4351.软件环境搭建终端执行下面命令:$ cd$ mkdir -p ur_ws/src$ cd ur_ws$ catkin_make然后从github仓库中clone下列软件包$ cd sr._ur5添加深度相机

oracle日期减5s,oracle中怎么得到日期相减除去周末后的天数-程序员宅基地

文章浏览阅读245次。由于存在不是整周,和起始日期,终止日期星期不定的复杂情况,所以简单的sql语句貌似无法实现.写个函数,从起始日期开始,判断不是周末的话就加1天,只到终止日期.create orreplace function day_count(t1 date,t2 date)return numberisnnumber:=0;tt date;begintt:=t1;while tt<=t2 loopn:=..._oracle时间减去5s

LeetCode刷题日记2021-5-13/1269. 停在原地的方案数/动态规划_leetcode 方案数 10 9+7取模输出-程序员宅基地

文章浏览阅读98次。仅供自己学习记录LeetCode刷题日记2021-5-13题目描述有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 次操作以后,指针仍然指向索引 0 处的方案数。由于答案可能会很大,请返回方案数 模 10^9 + 7 后的结果。示例 1:输入:steps = 3, arrLen = 2输出:4解_leetcode 方案数 10 9+7取模输出

junit4 测试android,Android 开发 单元测试 (JUnit 4)-程序员宅基地

文章浏览阅读460次。什么是单元测试简单的说: 单元测试是为了测试某一个代码单元而写的测试代码;什么叫“一个代码单元”呢?是一个模块、还是一个类、还是一个方法(函数)呢?在面向对象编程中,是为了测试某一个类的某一个方法能否正常工作,而写的测试代码。单元测试不是集成测试这里需要强调一个观念,那就是单元测试只是测试一个方法单元,它不是测试一整个流程。两种函数(方法),两种不同的测试方式一个类的方法可以分为两种,一种是有返回..._androidjunit4.class