v-checkbox多选框,二次删除会默认选中的bug和接口传递参数二次是空数组,记录一下。

报错图片:
在这里插入图片描述
接口报错返回信息:
在这里插入图片描述
代码如下:

//v-model="selected" selected定义一个空数组,接口选中后的数据
// :value="staff.CustID"   value值是数组中的其中一个属性的所有项name
//:disabled="!disabled"   disabled默认是false 当接收的值不是false就可以勾选选项
<v-checkbox
         class="v-label"
         v-model="selected"
         :value="staff.CustID"
         :disabled="!disabled"
        >
        </v-checkbox>
data () {
      return {
      selected:[],//选中的值
      staff:[],//每一项内容的储存 页面初始加载时储存
      disabled:false,//默认false禁用
      
      }
      }
methods:{
//批量删除事件
addBth(){
if(this.selected.length!=0){
          console.log('勾选');
          this.$swal({
          title: '警告',
          text: '您是否要删除该人员?',
          icon: 'warning',
          showCancelButton: true,
          confirmButtonText: '删除',
          cancelButtonText: '取消'
         }).then(result=>{
           console.log(result.isConfirmed,'返回true');
           if (result.isConfirmed) {
              // var arr = []; //定义数组;
              //this.selected是全局使用,如果只有某一处使用,可以在判断条件里面定义属性,节省全局变量使用。
              //Customer是接口的api引入  import Customer from 'api/customers.js'
              //deleteStaff(参数一array,参数二string,参数三string)接口定义的方法
              Customer.deleteStaff(this.selected,this.id,this.bustypeid)
               .then(res=>{
               //  console.log(res,'返回数据');
               this.$swal({
                  icon: 'success',
                  title: '成功',
                  text: '删除人员成功!'
               });
               //删除成功后,刷新页面数据 传递给那个方法
               //$emit子传父:  refreshStaffList是个方法, 传递{}
                Bus.$emit("refreshStaffList", {});
                console.log(this.selected);
                this.selected=[];//1.数组清空
                console.log(this.selected)
              })
             .catch(err => {
                console.log(err);
                this.$swal({
                  icon: 'error',
                  title: '失败',
                  text: err.msg
                });
              })
             .finally(() => {
                this.$store.set('app/loadingVisible', false);
           });

           }
         })
        }else{
           console.log('没有勾选');
           this.$swal({
            icon: 'error',
            title: '提示',
            text: '请先选择人员'
           });
           return;
        }

}

}
//主要是把页面里面的数组数据进行清空和赋值
mounted () {
//方法  this调用页面加载.getStaffList()方法
Bus.$on('refreshStaffList', e => {
        this.getStaffList();
});
},
methods: {
//初始数据加载
getStaffList(){
 this.$store.set('app/loadingVisible', true);
        Customer.getCustomerStaffList(this.id,this.bustypeid)
          .then(res => {
            //console.log(res,'获取数据是数据时');
            this.staffList=res.data;
            this.saveStaffList=JSON.parse(JSON.stringify(this.staffList));
            this.selected=[];//2.数组清空 数据二次加载
          })
          .catch(err => {
            console.log(err);
            this.$swal({
              icon: 'error',
              title: '失败',
              text: '获取人员列表失败!'
            });
          })
          .finally(() => {
            this.$store.set('app/loadingVisible', false);
          });
}
},


watch: {
      selected(newValue, oldValue) {//3.监听数据加载 (查看)
        console.log(newValue,oldValue)
      }
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-checkbox多框是一个常用的前端组件,用于实现多功能。根据引用的描述,el-checkbox多框的选中状态存储在字段run_able中。如果择了多框,则字段中有相应的数据,如果没有择,则字段的值为。el-checkbox多框的值可以与其他择器共用一张表,如引用所提到的需求。 针对el-checkbox多框的用法,我可以给出以下几点说明: 1. 首先,在页面中需要引入Element UI库,并在组件中注册el-checkbox组件。 2. 在data中定义一个数组(例如,runable),用来存储多框的选中值。可以根据需求进行初始化,也可以通过后台接口获取数据并赋值给该数组。 3. 在模板中使用el-checkbox-group组件,将数组runable与el-checkbox-group的v-model绑定,实现数据的双向绑定。这样,当用户择或取消择多框时,runable数组的值相应地改变。 4. 可以通过v-for指令遍历一个数据源,将数据源的每一项渲染成一个el-checkbox项。使用v-bind指令将数据源中的某个字段(例如,id)绑定到el-checkbox的label属性上,实现项和数据的关联。 5. 当需要获取el-checkbox多框的选中值时,可以通过访问数组runable来获取。在提交表单或进行其他操作时,可以将runable数组的值传递给后台进行处理。 综上所述,el-checkbox多框的用法包括引入Element UI库、定义数组存储选中值、使用el-checkbox-group和v-for指令渲染项、实现数据的双向绑定,并可通过数组获取选中值。希望这些信息对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [el-checkbox复框和el-select择器的使用](https://blog.csdn.net/xincang_/article/details/126845519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值