4.6【微信小程序全栈开发课程】意见反馈(二)--上传照片

简介: 1、添加变量在opinion.vue文件data对象中添加4个变量addimage、img_count、src、wechat、userinfoaddimage是未上传照片时默认显示照片的链接、img_count是用户上传照片的数量、src是用户上传的照片链接组成的数组、wechat是用户的微信号码、userinfo是用户信息

1、添加变量


在opinion.vue文件data对象中添加4个变量addimage、img_count、src、wechat、userinfo


addimage是未上传照片时默认显示照片的链接、img_count是用户上传照片的数量、src是用户上传的照片链接组成的数组、wechat是用户的微信号码、userinfo是用户信息


//参考代码,无需粘贴
//opinion:"",
//word_count:0
//需要添加的部分
addimage:"../../static/images/addimage.png",
img_count:0,
src:[],
wechat:"",
//用三元运算符直接读取缓存里面的用户信息
userinfo: wx.getStorageSync('userinfo')? wx.getStorageSync('userinfo') : {}


2、添加上传照片方法


(1)编辑opinion.vue文件,添加uploadPicture方法


//参考代码,无需粘贴
watch: {
  //...
//},
//需要添加的部分,不要忘记在上一行添加逗号隔开
methods: {
  uploadPicture () {
    //将this保存到that上面
    let that = this
    wx.chooseImage({
      count: 2,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success (res) {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePaths = res.tempFilePaths
        //用that.src来调用data函数定义的src变量
        that.src.push(tempFilePaths)
        console.log('that.src',that.src)
      }
    })
  }
}


2)vue中this的指向


我们在之前会用this来调用在data函数定义的变量或者methods函数中定义的方法,在上面的代码为什么要将this保存到that上面,再用that.src来调用data函数定义的src变量呢


let that = this
wx.chooseImage({
  ...
  that.src.push(tempFilePaths)
  ...
}


因为在.vue文件中,this一般指的是当前的vue实例对象,data函数定义的变量或者methods函数中定义的方法都属于vue实例对象,可以通过this直接调用


但是在微信接口方法中,比如 wx.chooseImage、wx.showToast、wx.request,在这些方法中this就不是指的vue实例对象,而是指的这些微信接口方法,所以我们需要先在这些方法外面将this保存到that上面,也就是将vue实例对象保存到that上面,然后再在方法里面通过that来调用变量或者方法


3、添加页面代码


(1)编辑opinion.vue页面template部分的代码,注意要包含在<div class="container"></div>代码中


<!-- 参考代码,无需粘贴 
<div class="row">
  <label class="name">意见与反馈</label>
</div>
<div class="row text">
  ...
</div> -->
<!-- 需要添加的部分 -->
<div class="row">
    <div>
      <label class="name">相关截图(选填)</label>
      <label class="img-count">{{img_count}}/2</label>
    </div>
    <!-- v-for是vue的语法,循环语句,循环显示当前上传的照片 -->
    <label v-for="(item, index) in src" :key="index">
      <img class="img" :src="item" >
    </label>
    <!-- v-if是判断语句,判断当前照片数量如果小于2张,就显示添加照片的按钮;反之就不显示了在这里添加点击事件,点击按钮调用uploadPicture方法上传照片 -->
    <label v-if="img_count < 2" @click="uploadPicture">
      <img class="add-img" :src="addimage">
    </label>
    </div>
    <div class="row">
    <div class="name">微信号(选填)</div>
    <input
      v-model='wechat'
      class = "wechat-input"
      maxlength='20'
      placeholder="如果想要详细交流,可以点击这里留下微信号哦~"
    ></input>
</div>


2)代码解析:vue循环语句v-for


v-for是vue的语法,循环语句,我们拿上面刚刚添加的代码举例


<label v-for="(item, index) in src" :key="index">
  <img class="img" :src="item" >
</label>


src是我们在data函数中定义的数组,里面包含我们上传照片的所有链接


item是当前遍历到的链接,index是当前遍历到的链接的索引


:key是键值,用来提升渲染的效率,不加key,vue现在会直接报错,通常使用index索引来当作key


4、实时监控照片数量


我们在上一节已经实现了实时监控输入字符的长度,这一节需要实时监控上传照片的数据,思路都是一样的


在watch监控函数中定义一个与需要监控的变量同名的方法,也就是src


//参考代码,无需粘贴
//opinion () {
  //this.word_count = this.opinion.length
//},
//需要添加的代码,记得在上一行添加逗号隔开
src () {
  this.img_count = this.src.length
}

5、查看效果


image.png

目录
相关文章
|
6天前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
1918 13
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
24天前
|
小程序 前端开发 关系型数据库
uniapp跨平台框架,陪玩系统并发性能测试,小程序源码搭建开发解析
多功能一体游戏陪练、语音陪玩系统的开发涉及前期准备、技术选型、系统设计与开发及测试优化。首先,通过目标用户分析和竞品分析明确功能需求,如注册登录、预约匹配、实时语音等。技术选型上,前端采用Uni-app支持多端开发,后端选用PHP框架确保稳定性能,数据库使用MySQL保证数据一致性。系统设计阶段注重UI/UX设计和前后端开发,集成WebSocket实现语音聊天。最后,通过功能、性能和用户体验测试,确保系统的稳定性和用户满意度。
|
30天前
|
小程序 IDE PHP
圈子源码如何打包生成App小程序/开发一个圈子系统软件所需要的费用体现在哪里?
将PHP源码打包成App的过程涉及多个步骤和技术选择。以圈子源码为例,首先明确需求,确定App功能和目标用户群体,并根据需求开发小程序页面,如用户注册、圈子列表等。源码准备阶段确保源码适用于小程序开发,环境配置需安装IDE(如微信开发者工具)及依赖库。最后在IDE中打包小程序并上传至管理平台,通过审核后发布。费用方面,模板开发成本较低,定制开发则更高,具体取决于需求复杂度和第三方服务费用。
73 0
|
2月前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
28天前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
26 0
|
2月前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
2月前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
4月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
966 7
|
4月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
919 1
|
4月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
274 7