移动端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

智能推荐

关于import tensorflow报错ImportError: DLL load failed的解决办法_导入tensorflow时dll load failed while importing _pywr-程序员宅基地

文章浏览阅读430次。我安装了tensorflow的cpu版,import tensorflow 报ImportError: DLL load failed错误,原因是安装的tensorflow 2.1版本不兼容旧版本cpu,解决办法是通过pip uninstall protobufpip uninstall tensorflow卸载已安装tensorflow,通过pip install --ignore-i..._导入tensorflow时dll load failed while importing _pywrap_tf2: 动态链接库(dll)

java中excel文件上传_java上传excel-程序员宅基地

文章浏览阅读3.5k次,点赞3次,收藏2次。excel文件上传_java上传excel

关于purge master logs的一个小实验-程序员宅基地

文章浏览阅读751次。原理部分来自《MariaDB原理与实现》 Page109-111purge删除binlog的过程如下:1、检查to_log在mysql-bin.index中是否存在,避免非法的purge操作2、创建一个purge_index_file,用于保存待删除的binlog文件名称3、遍历index文件,将可删除的binlog添加到purge_index_file中(purge删除时候..._purge master与purge purge

李宏毅2022机器学习/深度学习 个人笔记(3)-程序员宅基地

文章浏览阅读263次。接下来李宏毅教授介绍了梯度下降的优化方案,如采用动量、RMSProp、Learning Rate Decay、Warm Up等。接下来介绍遇到鞍点时的优化办法。接下来探讨,当optimization不佳的时候,如何判断是遇到了鞍点还是遇到了局部最小值点?而红框是一个二次型,若二次型矩阵是正定或者负定的,则可直接判断出该点是局部最小还是局部最大。本系列用于推导、记录该系列视频中本人不熟悉、或认为有价值的知识点。当然,这个方法不多用,只是介绍,顺便复习有关知识即可。关于多元函数泰勒公式,可参考。

vue多层嵌套下的数据绑定_vue多层嵌套数据绑定-程序员宅基地

文章浏览阅读4.2k次。vue作为数据驱动,通过数据和视窗view层绑定,操作数据即可触发view层的更新,所以数据绑定尤为重要单层的数据绑定很简单,父组件传值进去,子组件通过props获取,然后通过$emit事件携带参数回调父组件<v-child :vlaue="data" @update="update"></v-child>子组件<template> <inp..._vue多层嵌套数据绑定

人工智能与计算弹性:拓展人类思维的边界-程序员宅基地

文章浏览阅读882次,点赞10次,收藏17次。1.背景介绍人工智能(AI)是一种通过计算机程序模拟人类智能的技术。计算弹性(Cloud Computing)是一种通过互联网提供计算资源的服务。在过去的几年里,计算弹性和人工智能逐渐相互依赖,共同推动了人类思维的发展。本文将从以下几个方面进行探讨:背景介绍核心概念与联系核心算法原理和具体操作步骤以及数学模型公式详细讲解具体代码实例和详细解释说明未来发展趋势与挑战附录常见问题与...

随便推点

Windows下安装 git_windows 安装git-程序员宅基地

文章浏览阅读307次。目录下载安装包安装教程下载安装包http://git-scm.com/点击下载按钮可以直接下载 git 安装文件。如果想要学习关于 git 相关内容的话,官网也有中文版的电子书,如下:安装教程这里有别人写好的,很详细,我就偷个懒吧Git安装教程(Windows安装超详细教程)..._windows 安装git

Uncaught DONException: Failed to execute ‘atob‘ on “window ‘: The string to be decoded is not carrec_failed to execute 'atob' on 'window': the string t-程序员宅基地

文章浏览阅读1.9w次,点赞2次,收藏6次。在console出现了标题这段报错,原因是编码的字符串中含有“-”或者“_”。解决办法如下:// 将上面这段改为下面这段代码//var bstr = atob(arr[1]);var bstr = decodeURIComponent(escape(atob(arr[1])));_failed to execute 'atob' on 'window': the string to be decoded is not correc

计算机中丢失msvcp140.dll无法启动此程序怎么办?msvcp140.dll在哪里_无法启动此程序因为计算机丢失msvcp140d.dll-程序员宅基地

文章浏览阅读577次。计算机中丢失msvcp140.dll无法启动此程序怎么办?msvcp140.dll在哪里_无法启动此程序因为计算机丢失msvcp140d.dll

16bit高精度、250MSPS采样率,支持4通道同步采集、2通道同步输出的高速数据采集卡_16bit精度-程序员宅基地

文章浏览阅读723次。N-LINX 是南科复华信息科技研发的一款同时具备交流耦合程控放大器和支持单、双极性宽带信号输入的高速数据采集卡;板载FPGA具备实时信号处理能力,这些特性使N-LINX成为激光雷达、光电倍增管应用以及光纤传感等领域进行信号采集和分析的理想工具。N-LINX提供快速的PCI Express3.0x8数据传输接口,以及灵活配置的硬件组合,获得性能、功耗和成本之间的佳平衡,尤其适合于OEM应用。南科复华高速数据采集卡N-LINX的应用领域,激光雷达系统;光电倍增管采集系统;雷电定位系统等其他相关领域。_16bit精度

自然语言处理学习——基于对比自监督学习的语言模型设计和改进*_自然语言改进算法数据讨论-程序员宅基地

文章浏览阅读1.8k次。基于对比自监督学习的语言模型设计和改进*摘要:最近几年见证了自然语言处理特别是表示学习的预训练模型的蓬勃发展,基于对比学习的自监督模型是其中最火的一种。BERT是近几年来在多种语言处理任务上取得了突出成就,但是它在需要处理句子的任务(例如聚类或语义搜索)效率低下,因为它需要组合地评估许多句子对,这非常耗时。 而Sentence -BERT(SBERT)试图通过学习单个句子的语义表示来解决这一难题,以便可以轻松地访问相似性比较。但是,SBERT接受了带有高质量标记语句对的Corpus培训,这限制了其在标._自然语言改进算法数据讨论

Harbor安装-程序员宅基地

文章浏览阅读459次,点赞10次,收藏7次。Harbor安装