lm-form
Version:
* 作者:liuduan * 邮箱:liuduan.05.05@163.com * 版本:**`1.0.2`**
104 lines (86 loc) • 3.67 kB
JavaScript
'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'];