uniapp开发微信小程序使用uview 1.0 封装图片上传组件

本文介绍了在uniapp中使用uview1.0封装图片上传组件的经验,包括遇到的问题和解决方案。作者强调了使用正确版本官方文档的重要性,并提供了详细的代码示例,展示了如何处理图片上传、绑定action属性以及处理上传后的操作。
摘要由CSDN通过智能技术生成

最近接手最近开始接手了公司的第二个小程序项目,第一个是用的wepy+vant weapp做的。而目前的小程序用到的是uniapp+uview 1.0 ,我的需求是封装一个评价晒单组件。照着第一个小程序用vant 做的图片封装组件我打开了uview,折腾了大半天效果依然不尽人意。后来发现公司用的1.0的 uview 才慢慢醒悟过来。

熟悉uview 2.0的朋友对他的图片上传组件应该不陌生,但是1.0就有些头疼了。那么下面废话不多说,直接上代码:

<u-upload :file-list="fileList" @on-choose-complete="afterRead" del-bg-color="#5e5e5e"
	@on-remove="deletePic" :auto-upload="false"  uploadIcon="plus" :show-progress="false"
	:action="baseUrl" name="file" multiple imageMode :maxCount="9" 
	width="212rpx" height="212rpx"
></u-upload>

上面的这些大家有不懂的可以参考官方文档:Upload 上传 | uView - 多平台快速开发的UI框架 - uni-app UI框架

		onSubmit() {
				// console.log(uni.$u.config.v);
						Tips.confirm('确定评价吗?').then(() => {
					      //TODO shopid
					      let that=this;
					      Tips.loading(
					      // const toast = Tips.loading(
					      		"上传中..."
					      );														
					      let promiseList = [];
								this.Lists = this.fileList // 这里的写法是为了避免图片回显
								this.fileList = [] // 这里的写法是为了避免图片回显
					      for (let i = 0; i<this.Lists.length;i++) {
					      		// 只上传本地文件
					      		if (this.Lists[i].url.indexOf('tmp') !== -1) {
					      				promiseList.push(new Promise(function (resolve, reject) {
					      					qiniu.upload(that.Lists[i].url, (res) => {
					      							that.Lists[i].url = res.imageURL;
					      							resolve(res.data);
					      					}, (error) => {
					      							console.log('error: ' + error);
					      					}, {
					      							uploadURL: '公司的图片上传网址',
					      							domain: that.baseUrl, //自己的cdn域名
					      							uptoken:that.token, // 后端拿到的token
					      							key: that.Lists[i].name,
					      					}, (res) => {
					      							console.log(res, that.Lists[i])
					      					}, () => {
					      							// 取消上传
					      					}, () => {
					      							// `before` 上传前执行的操作
					      					}, (err) => {
					      							// `complete` 上传接受后执行的操作(无论成功还是失败都执行)
					      					});
					      			})
					      		)
					      		}
					      }
					      
					      Promise.all(promiseList).then( async (results) =>  {
					      		console.log("图片上传完成"); //返回上传成功的数据
					      		for(let i=0;i<this.Lists.length;i++) {
					      				let url = this.Lists[i].url;
												if( i == 0 ){
													this.commpath1 = url
												}
												if( i == 1 ){
													this.commpath2 = url
												}
												if( i == 2 ){
													this.commpath3 = url
												}
												if( i == 3 ){
													this.commpath4 = url
												}
												if( i == 4 ){
													this.commpath5 = url
												}
												if( i == 5 ){
													this.commpath6 = url
												}
												if( i == 6 ){
													this.commpath7 = url
												}
												if( i == 7){
													this.commpath8 = url
												}
												if( i == 8 ){
													this.commpath9 = url
												}
					      		}
										let res1 = []
					          res1 = await user.checkMsg(this.value)
					      		if(res1 == false) {
					      				uni.showModal({
					      						content: '内容可能存在潜在风险,请检查。',
					      						showCancel: false
					      				})
					      				return;
					      		}
					      		let params = {
					      				score : this.score,
												comment : this.value,
												anonymous : this.anonymous,
												refbilliid : this.refbilliid,
												reftype : this.reftype,
												commpath1 : this.commpath1,
												commpath2 : this.commpath2,
												commpath3 : this.commpath3,
												commpath4 : this.commpath4,
												commpath5 : this.commpath5,
												commpath6 : this.commpath6,
												commpath7 : this.commpath7,
												commpath8 : this.commpath8,
												commpath9 : this.commpath9
					      		};
										let res = []
										console.log(params);
										res = await user.shoppingOrdercomm(JSON.stringify(params))
										console.log(res);
					      				Tips.loaded();
					      				if (res.resp_code == 200) {
													Tips.modal('评论成功').then(() => {
															 uni.navigateBack({
																	 delta: 1
															 })
													});
					      				}
					      				else {
					      						Tips.alert(res.resp_msg);
					      						return;
					      				}
					      		// });
					      
					      }).
					      catch(function (err) {
					      		console.log(err);
					      });	

        }).catch(() => {
          // on cancel
        });
			},
			

		}

大家有任何问题可以直接与我沟通!

切记:uview 1.0 图片上传一定要绑定 :action=" action " 否则会报错。除此之外一定要找到对应版本的官方文档,不然浪费大把的时间就得不偿失了。

### 回答1: ,如何实现? 要实现uview1.0生成包含所有类型的form表单,需要在代码中使用u-form组件,并且在组件内部添加各种类型的表单控件,例如文本框、下拉框、选择框等。同时,还需要设置表单验证规则和表单提交事件,以实现完整的表单功能。具体实现方法可以参考uview1.0的官方文档和示例代码。 ### 回答2: uview1.0是一款强大的UI组件库,可以生成各种类型的表单。无论是输入框、单选框、多选框、下拉选择框还是日期选择框,uview1.0都能满足你的需求。 首先,在html中引入uview1.0的框架文件。然后,创建一个form标签,将所有的表单元素放在这个标签中。 对于输入框,可以使用u-input组件,设置type属性为text,即可生成一个文本输入框。如果需要密码输入框,只需将type属性设置为password即可。同时,uview1.0还提供了带有边框、图标等样式的输入框,可以根据需求选择合适的样式。 对于单选框和多选框,可以使用u-radio和u-checkbox组件。分别设置不同的选项和值,即可生成相应的单选框和多选框。 对于下拉选择框,可以使用u-select组件。设置options属性为一个数组,数组中每个元素代表一个选项,即可生成一个下拉选择框。 至于日期选择框,uview1.0提供了u-calendar和u-datepicker组件。通过设置相应的属性,例如设置选择的日期范围、日期格式等,即可生成一个日期选择框。 总之,uview1.0通过丰富的组件库,可以生成包含各种类型的表单。只需根据需要选择相应的组件,并设置对应的属性,即可轻松生成一个完整的form表单。无论是简单的文本输入框还是复杂的日期选择框,uview1.0都能满足您的要求。 ### 回答3: uview1.0是一个用于开发微信小程序的UI组件库,它提供了丰富的组件来快速构建小程序页面。要生成包含所有类型的form表单,我们可以参考uview1.0文档中提供的示例代码和组件。 首先,在小程序页面中引入uview1.0库,并在需要使用form表单的页面中添加一个u-form组件的父容器。u-form是uview中用于生成表单的容器组件。 然后,我们可以在u-form组件中,根据需要添加各种表单元素。以下是uview1.0库中常见的表单元素及其对应的组件: 1. 输入框:u-input 2. 单选框:u-radio、u-radio-group 3. 复选框:u-checkbox、u-checkbox-group 4. 开关:u-switch 5. 下拉选择框:u-select 6. 多行输入框:u-textarea 7. 省市区选择器:u-area-picker 8. 日期选择器:u-datepicker 9. 图片上传:u-image-uploader 10. 数字输入框:u-number-box 11. 图片验证码:u-image-code 12. 滑块:u-slider 13. 按钮:u-button 根据需求,在u-form组件中逐个添加以上组件,即可生成包含各种类型的form表单。并且,uview1.0组件都提供了丰富的API和可选参数,可以进一步定制表单的样式和功能。 最后,我们可以通过表单组件的事件监听,获取用户输入的数据,并进行相应的处理。例如,可以通过监听u-input组件的输入事件,获取用户输入的文本,并将其保存到相应的变量中,搭配提交按钮组件u-button,实现表单的提交操作。 总之,使用uview1.0生成包含所有类型的form表单很简单,只需按需引入对应的组件,并在u-form容器中逐个添加即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值