在这里插入图片描述
当勾选完点确认按钮调接口的时候,要拿每一勾选项当前行的值。所以要循环勾选的值,在循环里追加值到新数组里。
在table中加入这一行,就可以出现第一列是复选框

        :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"

      selectedRowKeys: [],
      selectedRows: [],
      messageTypes: [], //新增用户参数数组

当这么写的时候,出现一个bug。

  onSelectChange(selectedRowKeys, selectedRows) {
      this.selectedRowKeys = selectedRowKeys
      this.selectedRows = selectedRows
      this.selectedRows.forEach(item => {
      this.messageTypes.push({
     fVcUserName: item.realNameOrCompanyName,
    fVcLoginName: item.loginName,
     fInConfigureId: this.fPkConfigureId,
       fInUserId: item.userId
     })

当全部勾选,或者不管勾选两个还是两个以上,我的数组里会一直追加。比如第一次点击追加一项,第二次点击追加两项,就这样追加,当全选七项,一共追加了二十一次。
在这里插入图片描述
在这里插入图片描述
解决方法是使用findIndex,有重复的id就不追加,这样可以保证追加到新数组里的都是不重复的项

onSelectChange(selectedRowKeys, selectedRows) {
      this.selectedRowKeys = selectedRowKeys
      this.selectedRows = selectedRows
      this.selectedRows.forEach(item => {
        let obj = {
          fVcUserName: item.realNameOrCompanyName,
          fVcLoginName: item.loginName,
          fInConfigureId: this.fPkConfigureId,
          fInUserId: item.userId
        }
        let i = this.messageTypes.findIndex(item1 => item1.fInUserId == obj.fInUserId)
        if (i == -1) 
          this.messageTypes.push(obj)
      })
    },
Logo

前往低代码交流专区

更多推荐