近期前端总结

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();

猜你喜欢

转载自blog.csdn.net/qq_34307801/article/details/105710906