UNPKG

occ-tinper-bee

Version:

Base tinper-bee 2.0.10-beta.2: React Components living for enterprise-class pc backend application

69 lines (63 loc) 1.99 kB
import React, { Component } from "react"; import { Select } from "tinper-bee"; const Option = Select.Option; import PropTypes from "prop-types"; export default class SelectRender extends React.Component { handChange(value) { if (typeof value == "string") { this.props.onChange(value); } else if (Array.isArray(value) && value.length > 0) { this.props.onChange(value.join(",")); } else { this.props.onChange(""); } } render() { let { value, placeholder, disabled, multiple, dataSource } = this.props; if (value && typeof value == "string") { value = value.split(","); } else if (Array.isArray(value) && value.length > 0) { value = value; } else { value = ""; } return ( <Select //placeholder={placeholder} className="item-content" disabled={disabled} multiple={multiple} onChange={this.handChange.bind(this)} value={value}> <Option value="" className="default"> {placeholder} </Option> {Array.isArray(dataSource) && dataSource.length > 0 ? dataSource.map((item, index) => { return ( <Option key={index} value={item.value}> {item.name} </Option> ); }) : []} </Select> ); } } const propTypes = { value: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.array]), placeholder: PropTypes.string, disabled: PropTypes.bool, multiple: PropTypes.bool, dataSource: PropTypes.array, onChange: PropTypes.func }; const defaultProps = { value: "", placeholder: "请选择", disabled: "false", multiple: "false", dataSource: [], onChange: () => {} };