import React, { useEffect, useState } from "react";
import { Select ,Checkbox,Menu } from "antd";
import _ from 'lodash';
import { nanoid } from "nanoid";
const MemuSelectSimple = props => {
const {data, dataOptions,dataOptionsMap,onChange} = props
const [options,setOptions] = useState([])
// 用于初始化数据勾选状态
const optionsChange = (data,options) => {
const tempOptions = _.cloneDeep(options)
const resOptions = tempOptions.map(item=>{
if(data.includes(item.value)){
item.checked = true
}
let count = 0
item.children?.map(subItem=>{
if(data.includes(subItem.value)){
subItem.checked= true
count ++
}
return subItem
})
if(item.children && item.children.length){
if(!count){
item.checked=false
item.indeterminate=false
}else if (item.children.length===count){
item.checked=true
item.indeterminate=false
}else{
item.checked=false
item.indeterminate=true
}
}
return item
})
return resOptions
}
useEffect(()=>{
const tempOptions = optionsChange(data,dataOptions)
setOptions(tempOptions)
},[])
useEffect(()=>{
console.log('data',data);
},[data])
const handleChange = option => {
// 全部清空 []
if(!option.length){
onChange([])
setOptions(dataOptions)
return
}
// 部分清空
const optionsMapKeys = Object.keys(dataOptionsMap).map(item=>+item)
const optionsMapValues = Object.values(dataOptionsMap)
let optionsValue = []
optionsMapValues.forEach((item,index)=>{
if(option.
Ant Design 基于dropdownRender属性对下拉菜单的封装
最新推荐文章于 2024-07-30 11:11:00 发布