vue+js实现微信上传图片选择功能

Gretchen ·
更新时间:2024-09-20
· 390 次阅读

本文实例为大家分享了vue+js实现微信上传图片选择的具体代码,供大家参考,具体内容如下

需求:实现微信发送图片或发朋友圈选择图片功能 可实现选后点击后 选择图片标记值自减或自增

最终效果:

思路:

1、给原始数组中增加一个用于判断是否选中的状态默认为false和选中序号值 默认为空
2、定义一个选中初始值 作为计算选中值

data() {     return {       initial:0, //设置选中初始值 作为最终选择几个依据       imgList:[ //初始数据         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},       ]     };   },

3、点击选中/取消时 让对应的数据自增或自减

逻辑

1.判断所点击的项的选中状态

开始未选中 — 切换选中状态 – 默认初始值自增1 — 赋值给当前项

if(!item.state){ //开始未选中         //点击选中,改变当前项的选中状态 设置为true          item.state = true         // 选中初始值 +1         this.initial++         // 当前项赋值=设置初始值         item.serial = this.initial       }```

2.选中下点击取消(状态值为true时点击)

更改选中状态 — 设置一个空值 用于接受最终几个值选中 用于更改选中初始值 — 跑循环去自减 — 判断 当前点击的选中值 和 数组中所有选中值做对比 — 数组中的选中值 大于 当前选中值 数组中大于的值自减1 – 判断数组选中状态用于统计-- 有选中则 设置控制自+1 – 给选中初始值 赋值 – 当前选中值清空

else { //选中下点击取消(状态值为true时点击)         // 改变当前项选中状态为false         item.state = false         // 设置一个空值 用于接受最终几个值选中 用于更改选中初始值         let xuanzhong = 0         // 跑循环去自减         this.imgList.forEach((items,index) => {           // items = 循环所需要的每一项           if(items.serial>item.serial){ //判断 当前点击的选中值 和 数组中所有选中值做对比             // 数组中的选中值 大于 当前选中值 数组中大于的值自减1             items.serial--           }           if(items.state){//判断数组选中状态用于统计             // 有选中则 设置控制自+1             xuanzhong ++           }         })         // 给选中初始值 赋值         this.initial=xuanzhong         // 当前选中值清空         item.serial = ''       }

完整代码

<template>   <div class="app">     <div class="bgView">       <div class="bottomView">         <div class="ceshitt">           <div class="imgDiv" v-for="(item,index) in imgList" :key="index">             <img class="bgImg" src="../../assets/img/BGImg1.png" alt="">             <div :class="['selectBox',item.state ? 'selectClass' :'']" @click="selectClick(item,index)">               <p v-if="item.state">{{item.serial}}</p>             </div>           </div>         </div>       </div>     </div>   </div> </template> <script> export default {   data() {     return {       initial:0, //设置选中初始值 作为最终选择几个依据       imgList:[ //初始数据         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},         {url:'',state:false,serial:'',},       ]     };   },   components: {},   created() {   },   mounted() {   },   methods: {     selectClick(item,val){       // item = 点击事件带过来整条参数       // val = 所点击的下标       // 逻辑 1、在原始数组中对象中增加2个值 --- 选中状态 默认false  选中值 默认'',       // 判断所点击的项的选中状态       if(!item.state){ //开始未选中         //点击选中,改变当前项的选中状态 设置为true          item.state = true         // 选中初始值 +1         this.initial++         // 当前项赋值=设置初始值         item.serial = this.initial       }else { //选中下点击取消(状态值为true时点击)         // 改变当前项选中状态为false         item.state = false         // 设置一个空值 用于接受最终几个值选中 用于更改选中初始值         let xuanzhong = 0         // 跑循环去自减         this.imgList.forEach((items,index) => {           // items = 循环所需要的每一项           if(items.serial>item.serial){ //判断 当前点击的选中值 和 数组中所有选中值做对比             // 数组中的选中值 大于 当前选中值 数组中大于的值自减1             items.serial--           }           if(items.state){//判断数组选中状态用于统计             // 有选中则 设置控制自+1             xuanzhong ++           }         })         // 给选中初始值 赋值         this.initial=xuanzhong         // 当前选中值清空         item.serial = ''       }     },   }, }; </script> <style scoped> .ceshitt{   display: flex;   width: 100%;   height: 220px;   flex-wrap: wrap; /* justify-content: space-between; */ } .imgDiv{   width: 30%;   position: relative;   margin-right: 10px; } .bgImg{   position: absolute;   height: 100px;   width: 100%; } .selectBox{   width: 15px;   height: 15px;   line-height: 15px;   border-radius: 50%;   text-align: center;   position: absolute;   top: 8px;   right: 8px;   z-index: 100;   color:#FFF ;   border: 1px solid cyan; } .selectClass{   background-color:#4cc25b ; } </style>



微信 VUE js实现 上传图片 选择 图片 js

需要 登录 后方可回复, 如果你还没有账号请 注册新账号