🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

select-transfer

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

select-transfer

--- PC双栏同步选择组件 ---

latest
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

PC双栏同步选择组件 @alife/select-transfer

PC双栏同步选择组件

API

属性说明类型默认值
loading是否在加载中booleanfalse
dataSource左边栏列表数据Array<{checked: boolean, itemId: string}>[]
selectedResList右边栏已选数据Array<{itemId: string}>[]
maxSelectNum最大选择数量numberundefined
canAllSelect可否全选booleantrue
allListTitle左侧列表标题文案string''
other其他数据anyundefined
renderItemContext渲染子列表元素方案Function() => {}
handleWarnning报错提示方法Function() => {}
handleSelectRes选择元素方法Function() => {}

PC模板

import SelectTransferPC from "@alife/select-transfer";

const dataMock = [
  {checked: false, itemId: '1', title: 1},
  {checked: false, itemId: '2', title: 2},
  {checked: false, itemId: '3', title: 3},
  {checked: false, itemId: '4', title: 4},
  {checked: false, itemId: '5', title: 5},
  {checked: false, itemId: '6', title: 6},
];
const selectedExample = [{itemId: '2', title: 2},  {itemId: '3', title: 3}];
const maxSelectNum = 5;

class Demo extends React.Component {
  state = {
    selectedList: selectedExample,
    dataSource: [],
  }

  async componentDidMount() {
    this.setState({
      loading: true,
    })
    const dataSource = await this.mockFetchData();
    this.setState({
      dataSource,
      loading: false,
    })
  }

  mockFetchData = () => {
    return new Promise((resolve, reject) => {
      try {
        setTimeout(() => {
          resolve(dataMock)
        }, 2000);
      } catch(err) {
        reject(err)
      }
    });
  }

  renderItemContext = (props) => {
    return <div>{props.title}</div>
  }

  handleWarnning = (errObj) => {
    console.log('错误', errObj.errorMsg)
  }

  handleSelectRes = (res) => {
    const { selectedResList = [] } = res;
    this.setState({
      selectedList: [...selectedResList],
    })
  }

  render() {
    const { selectedList, dataSource, loading } = this.state;
    return (
      <SelectTransferPC dataSource={dataSource}
        selectedResList={selectedList}
        maxSelectNum={maxSelectNum}
        loading={loading}
        canAllSelect={true}
        allListTitle='全部'
        renderItemContext={this.renderItemContext}
        handleWarnning={this.handleWarnning}
        handleSelectRes={this.handleSelectRes}
      />
    );
  }
}

ReactDOM.render(<Demo />, mountNode);

FAQs

Package last updated on 06 Apr 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts