antd Tree中的checkbox实现单选
只需要获取checkedKeys数组,只保留最后一位
/**
* Tree单选功能实现
* @param checkedKeys
*/
handleCheck = checkedKeys => {
checkedKeys.checked.splice(0, checkedKeys.checked.length - 1);
this.setState({
selectedKey: checkedKeys.checked[0],
});
};
// 组件中
<Tree
checkable
size="default"
disabled={
false}
checkStrictly
onCheck={
this.handleCheck}
defaultCheckedKeys={
[selectedKey]}
onExpand={
this.onExpand}
expandedKeys={
expandedKeys}
autoExpandParent={
autoExpandParent}
>
{
loop(treeData)}
</Tree>
js递归实现
把数组r中元素填入dataList,如下图所示,dataList有10个元素
dataList = [];
r = [
{
id: 'department-nanjing-electricity-headquarters',
name: '南京公司总部-用电',
children: [
{
id: 'department-nanjing-electricity-industry',
name: '产业部',
},
{
id: 'department-nanjing-electricity-business',
name: '商务部',
},
{
id: 'department-nanjing-electricity-sales',
name: '营销部',
},
],
},
{
id: 'department-nanjing-electricity-nanjing',
name: '南京分公司',
children: [
{
id: 'department-nanjing-electricity-distribution',
name: '#1事业部',
},
{
id: 'department-nanjing-electricity-money',
name: '财务部',
},
{
id: 'department-nanjing-electricity-engineer',
name: '工程中心',
},
],
},
{
id: 'department-nanjing-electricity-administration',
name: '行政中心',
},
{
id: 'department-nanjing-electricity-employee',
name: '人事中心',
},
];
generateDataList(r);
generateDataList = data => {
for (let i = 0; i < data.length; i += 1) {
const node = data[i];
const {
key, title } = node;
this.dataList.push({
key, title });
if (node.children) {
this.generateDataList(node.children);
}
}
};
js获取当前年份和前一年字符串
columns[1].title = new Date().getFullYear().toString();
columns[2].title = (new Date().getFullYear() - 1).toString();