【vue+antd-vue】a-table+a-checkbox,多选框勾选传参,传入重复的值,取最后一次勾选后的值传参
当勾选完点确认按钮调接口的时候,要拿每一勾选项当前行的值。所以要循环勾选的值,在循环里追加值到新数组里。在table中加入这一行,就可以出现第一列是复选框:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"selectedRowKeys: [],selectedRows: [],message
·
当勾选完点确认按钮调接口的时候,要拿每一勾选项当前行的值。所以要循环勾选的值,在循环里追加值到新数组里。
在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)
})
},
更多推荐
已为社区贡献35条内容
所有评论(0)