根据tree的checked是否为true组合所有已选中的值集
前端笔记 2022-05-18 09:22:52

 

JavaScript Code复制内容到剪贴板
  1. /** 
  2.  * 
  3.  * 处理树数据中,获取所有【已经选中】的唯一值集合 
  4.  * @param {*} data  树数据 
  5.  * @param {*} field   树的主健字段名,默认是id,也有可能是key 
  6.  * @param {*} children  树的子级字段名,默认是children,也有可能是child 
  7.  * @param {*} checked  已选中的字段名,默认是checked 
  8.  * @param {*} checkedArr  已选中的值集合 
  9.  * @returns 
  10.  */  
  11. export function getTreeListChooseCheckedKeys (data, field = 'id', children = 'children', checked = 'checked', checkedArr = []) {  
  12.   // console.log(data)  
  13.   for (var i = 0; i < data.length; i++) {  
  14.     var item = data[i]  
  15.     // console.log(item, checkIds.indexOf(item[field]))  
  16.     if (item[children] && item[children].length) {  
  17.       // 如果有子级  
  18.       item[children] = getTreeListChooseCheckedKeys(item[children], field, children, checked, checkedArr)  
  19.       // console.log(item[children])  
  20.       if (!item[children].length) {  
  21.         // delete data[i]  
  22.       }  
  23.     } else {  
  24.       // 如果没有子级  
  25.       if (item[checked] === true) {  
  26.         checkedArr.push(item[field])  
  27.       }  
  28.     }  
  29.   }  
  30.   return checkedArr  
  31. }  

 

 

本文来自于:http://www.yoyo88.cn/note/frontend/622.html

Powered by yoyo苏ICP备15045725号