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

第13讲创建图文投票

创建图文投票实现

图文投票和文字投票基本一样,就是在投票选项里面,多了一个选项图片;、

在这里插入图片描述

<view class="option_item" v-for="(item,index) in options" :key="item.id"><view class="option_input"><text class="removeOption" @click="removeOption(item.id)">&#xe618;</text><input type="text" v-model="item.name" placeholder="输入选项名称" placeholder-style="color:#bababa;font-size:14px"></view>				<view class="option_upload"><uni-file-picker@select="selectVoteItemFileFunc($event,index)":auto-upload="false" limit="1":del-icon="false" disable-preview file-mediatype="image" :imageStyles="voteItemImageStyles"><view class="upload"><text class="smallUploadImg">&#xe727;</text></view></uni-file-picker></view></view>
.option_item{margin-top: 10px;border-radius: 5px;background-color: white;padding: 10px;.option_input{display: flex;}.option_upload{margin-top: 20rpx;.upload{margin: 10rpx;background-color: #f4f5f7;width:90rpx;height: 90rpx;display: flex;align-items: center;justify-content: center;}}}
			voteItemImageStyles:{width:"150rpx",height:"120rpx",border:false},
selectVoteItemFileFunc:function(e,index){console.log("index="+index)console.log(e.tempFilePaths[0])uni.uploadFile({header:{token:uni.getStorageSync("token")},url:getBaseUrl()+"/vote/uploadVoteItemImage",filePath:e.tempFilePaths[0],name:"voteItemImage",success: (res) => {let result=JSON.parse(res.data);if(result.code==0){this.options[index].image=result.voteItemImageFileName;}}})},

加个image属性

在这里插入图片描述
提交加上验证:

// 验证投票选项,如果有名称的,必须要上传图片for(var i=0;i<this.options.length;i++){var option=this.options[i];if(!isEmpty(option.name)){if(isEmpty(option.image)){console.log("请上传第"+(i+1)+"个投票选项图片")uni.showToast({icon:"error",title:"请上传第"+(i+1)+"个投票选项图片"})return;}}}

在这里插入图片描述
后端:

voteItemImagesFilePath: D://uniapp/voteItemImgs/
@Value("${voteItemImagesFilePath}")
private String voteItemImagesFilePath;
/*** 上传投票选项图片* @param voteItemImage* @return* @throws Exception*/
@RequestMapping("/uploadVoteItemImage")
public Map<String,Object> uploadVoteItemImage(MultipartFile voteItemImage)throws Exception{System.out.println("filename:"+voteItemImage.getName());Map<String,Object> resultMap=new HashMap<>();if(!voteItemImage.isEmpty()){// 获取文件名String originalFilename = voteItemImage.getOriginalFilename();String suffixName=originalFilename.substring(originalFilename.lastIndexOf("."));String newFileName= DateUtil.getCurrentDateStr()+suffixName;FileUtils.copyInputStreamToFile(voteItemImage.getInputStream(),new File(voteItemImagesFilePath+newFileName));resultMap.put("code",0);resultMap.put("msg","上传成功");resultMap.put("voteItemImageFileName",newFileName);}return resultMap;
}
http://www.lryc.cn/news/299685.html

相关文章:

  • Vulnhub靶机:DC3
  • 代码随想录算法训练营第三十一天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
  • 【光学】学习记录1-几何光学的近轴理论
  • 【51单片机】AT24C02(江科大、爱上半导体)
  • nohup基本使用
  • postgresql 手动清理wal日志的101个坑
  • 【开源训练数据集3】Top3人脸数据集及其使用方法-计算机视觉应用
  • 精灵图,字体图标,CSS3三角
  • .NET Core性能优化技巧
  • 人类智能远远超越了物理与数理范畴
  • 数据库管理-第149期 Oracle Vector DB AI-01(20240210)
  • FlinkSql通用调优策略
  • Linux在云计算领域的重要作用
  • sqlserver2012 解决日志大的问题 bat脚本
  • SpringCloud之Eureka注册中心和负载均衡
  • Python 数据可视化之山脊线图 Ridgeline Plots
  • VTK 三维场景的基本要素(相机) vtkCamera 相机的运动
  • C++ //练习 6.53 说明下列每组声明中的第二条语句会产生什么影响,并指出哪些不合法(如果有的话)。
  • 缓慢变化维 常用的处理方法
  • free pascal:fpwebview 组件通过JSBridge调用本机TTS
  • C语言静态库深入剖析
  • A股上市以来涨幅排行榜
  • 鸿蒙开发系列教程(十八)--页面内动画(1)
  • Web基础01-HTML+CSS
  • Linux命令行全景指南:从入门到实践,掌握命令行的力量
  • 蓝桥杯嵌入式第11届真题(完成) STM32G431
  • ChatGPT高效提问—prompt实践(教师助手)
  • AI绘画作品的展示和变现-2
  • Linux---网络套接字
  • 前端vue 数字 字符串 丢失精度问题