npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@pluve/yf-react-orgtree

v1.0.14

Published

组织机构树

Downloads

18

Readme

org-Tree

组织机构树组件

Tree

弹框

import * as React from 'react';
import Tree from 'yf-react-orgtree'
import { Button, message } from 'antd';
import 'antd/dist/antd.css';

export default () => {
  // 控制弹窗
  const [visiable, setVisiable] = React.useState<boolean>(false) 
  // 返回数据
  const [selectedData, setSelectedData] = React.useState<React.Key[]>([]);
  React.useEffect(() => {
    console.log(selectedData);
  }, [selectedData])
  return (
    <>
      <button onClick={() => {setVisiable(!visiable)}}>
        {visiable ? "隐藏" : "展示"}
      </button>
      <Tree
        type='test'
        value={selectedData}
        onChange={setSelectedData}
        modal={true}
        visiable={visiable}
        title={"门店选择"}
        multiple={true}
        width={442}
        orgId={'5ffeaee575348f0001cd11cc'}
        defaultExpandedKeys={['1']}
        onOk={(keys: React.Key[]) => { 
          setSelectedData(keys);
          message.info(`选中了${keys.length}个组织`);
        }}
        onCancel={() => {
          setVisiable(false);
        }}
      />
    </>
  )
}

多选门店

import * as React from 'react';
import Tree from 'yf-react-orgtree'
import { Button, message } from 'antd';
import 'antd/dist/antd.css';

export default () => {
  // 返回数据
  const [selectedData, setSelectedData] = React.useState<React.Key[]>([]);
  return (
    <>
      <Tree
        type='test'
        width={442}
        value={selectedData}
        onChange={setSelectedData}
        multiple={true} // 设置为true为多选
        orgId={'62b91e09fa09500001b7a6f4'}
        defaultExpandedKeys={['10027581']}
        isSearch={false}
      />
    </>
  )
}

单选门店

import * as React from 'react';
import Tree from 'yf-react-orgtree'
import { Button, message } from 'antd';
import 'antd/dist/antd.css';

export default () => {
  // 返回数据
  const [selectedData, setSelectedData] = React.useState<React.Key[]>([]);
  return (
    <>
      <Tree
        type='test'
        value={selectedData}
        onChange={setSelectedData}
        isSearch={false}
        multiple={false} // 设置为false为单选
        width={442}
        orgId={'62b91e09fa09500001b7a6f4'}
        defaultExpandedKeys={['10027581']}
      />
    </>
  )
}

搜索

import * as React from 'react';
import Tree from 'yf-react-orgtree'
import { Button, message } from 'antd';
import 'antd/dist/antd.css';

export default () => {
  // 返回数据
  const [selectedData, setSelectedData] = React.useState<React.Key[]>([]);
  return (
    <>
      <Tree
        type='test'
        value={selectedData}
        onChange={setSelectedData}
        isSearch={true}
        multiple={false} // 设置为false为单选
        width={442}
        orgId={'62b91e09fa09500001b7a6f4'}
        defaultExpandedKeys={['10027581']}
      />
    </>
  )
}

禁用

import * as React from 'react';
import Tree from 'yf-react-orgtree'
import { Button, message } from 'antd';
import 'antd/dist/antd.css';

export default () => {
  return (
    <>
      <Tree
        type='test'
        isSearch={false}
        multiple={false}
        disabled={true} // 设置为true 禁止选择
        width={442}
        orgId={'62b91e09fa09500001b7a6f4'}
        defaultExpandedKeys={['10027581']}
      />
    </>
  )
}

API

|参数|说明|类型|默认值|是否必传| |---|---|---|---|---| |orgId|机构ID(暂时只支持单个机构ID),|string| |true| |type|环境值配置('test' 、'prod')|string| |true| |value|设置选中的值,设置后变成受控组件|React.Key[]|| |defaultSelected|默认选中的节点|React.Key[]|| |defaultExpandedKeys|默认展开的节点|React.Key[]|| |isSearch|是否开启搜索框|boolean|true| |checkStrictly|checkable 状态下节点选择完全受控(父子节点选中状态不再关联)|boolean|false| |height|组件高度|number、string|| |width|组件宽度|number、string|| |modal|是否弹窗模式|boolean|false| |visiable|控制弹窗展示|boolean|true| |title|弹窗标题|string|选择门店| |mask|控制遮罩展示|boolean|fasle| |multiple|控制多选或者单选|boolean|true| |disabled|禁用树|boolean|fasle| |okText|ok字幕|string|确定| |cancelText|取消字幕|string|取消| |onOk|Ok的回调|(keys: React.Key[], selectNodata: ITreeNode[]) => void|| |onChange|值修改的回调|(orgIds: React.Key[], selectNodata: ITreeNode[]) => void|| |onCancel|取消的回调|() => void||