1.html
1 <div class="listPeopleDetail"> 2 <div class="item" v-for="(item, index) in freeEmpList" :key="index"> 3 <div class="name" v-cloak>{{item.empName}}</div> 4 <div class="number" v-cloak>剩余单数:{{item.orderCount}}单</div> 5 <div class="radio" @click="openAddOrder"> 6 <el-radio v-model="checkedPeople" :label="item.empId"></el-radio> 7 </div> 8 </div> 9 </div>
2.js
openAddOrder:function(){ this.dialogVisible=true; this.getAreaInfoAddOrderListMon() }, getAreaInfoAddOrderListMon:function(){ this.$http.get("/esmart/getAreaInfoAddOrderListMon",{ empId:vm.checkedPeople, radius:vm.radius, operDate:vm.operDate }).then(function(res){ if (res.body.code == 0 && res.body.data !== null) { console.log(res) vm.addOrderList=res.body.data; }).catch(function(err){ console.log(err) }) },
本来先做的是,点击radio后出现弹窗,并且调用一个接口来初始化弹窗的数据,最初在radio外面的div加了一个click事件,发现接口会调用两次,控制台会打印两边,解决方法
1)把外层div的点击事件去掉,改为radio的change事件
2)还是用外层div的click事件,但是调用接口的时候写在弹框的open事件中即可