UNPKG

lm-form

Version:

* 作者:liuduan * 邮箱:liuduan.05.05@163.com * 版本:**`1.0.2`**

104 lines (86 loc) 3.67 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _jsxFileName = 'src/select.js'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); require('./index.scss'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } // wrapper for select var Select = function Select(props) { var data = props.data, className = props.className, children = props.children, value = props.value, disabled = props.disabled, selected = props.selected, onChange = props.onChange, placeholder = props.placeholder, multiple = props.multiple, other = _objectWithoutProperties(props, ['data', 'className', 'children', 'value', 'disabled', 'selected', 'onChange', 'placeholder', 'multiple']); var cls = (0, _classnames2.default)('lm-select', { 'lm-select-placeholder': !('' + value) }, className); var renderOption = function renderOption(data) { var result = data.map(function (item, i) { return _react2.default.createElement( 'option', _defineProperty({ key: i, value: item.value, disabled: 'disabled' in item ? item.disabled : false, __source: { fileName: _jsxFileName, lineNumber: 17 }, __self: undefined }, '__self', undefined), item.label ); }); result.unshift(_react2.default.createElement( 'option', _defineProperty({ key: 'lmSelectPlaceholder', value: '', disabled: disabled, __source: { fileName: _jsxFileName, lineNumber: 22 }, __self: undefined }, '__self', undefined), placeholder )); return result; }; return _react2.default.createElement( 'select', Object.assign({ className: cls, value: value || placeholder, onChange: onChange, disabled: disabled }, other, _defineProperty({ __source: { fileName: _jsxFileName, lineNumber: 30 }, __self: undefined }, '__self', undefined)), data.length ? renderOption(data) : children ); }; Select.propTypes = { data: _propTypes2.default.array, // option用数据 className: _propTypes2.default.string, // 自定义类名 value: _propTypes2.default.oneOfType([// 选中值 _propTypes2.default.string, _propTypes2.default.number]), placeholder: _propTypes2.default.oneOfType([// 提示信息 _propTypes2.default.string, _propTypes2.default.number]), disabled: _propTypes2.default.bool, onChange: _propTypes2.default.func }; Select.defaultProps = { data: [], value: '', placeholder: '请选择', disabled: false, onChange: function onChange() {} }; exports.default = Select; module.exports = exports['default'];