UNPKG

lm-carpicker

Version:

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

207 lines (168 loc) 11.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _jsxFileName = 'src/index.js'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _wrapper = require('./wrapper'); var _wrapper2 = _interopRequireDefault(_wrapper); var _picker = require('./picker'); var _picker2 = _interopRequireDefault(_picker); var _pickerHoc = require('./pickerHoc'); var _pickerHoc2 = _interopRequireDefault(_pickerHoc); var _popupHoc = require('./popupHoc'); var _popupHoc2 = _interopRequireDefault(_popupHoc); 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; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Created by liuduan<liuduan.05.05@163.com>. * ComponentName Carpicker * Desc 汽车品牌、车系、车型选择器 * GroupName lm-component */ /** * @class Carpicker * @extends React.Component * @desc Carpicker Component for mobile */ var carpickers = ['brand', 'series', 'model']; var Carpicker = function (_Component) { _inherits(Carpicker, _Component); function Carpicker() { _classCallCheck(this, Carpicker); return _possibleConstructorReturn(this, (Carpicker.__proto__ || Object.getPrototypeOf(Carpicker)).apply(this, arguments)); } _createClass(Carpicker, [{ key: 'renderPicker', // 渲染选择层 value: function renderPicker() { var _this2 = this; var _props = this.props, visible = _props.visible, selected = _props.selected, onSelect = _props.onSelect, onDismiss = _props.onDismiss, onOk = _props.onOk, data = _props.data, title = _props.title, rightText = _props.rightText, className = _props.className, style = _props.style, id = _props.id, refName = _props.refName, picker = _props.picker, others = _objectWithoutProperties(_props, ['visible', 'selected', 'onSelect', 'onDismiss', 'onOk', 'data', 'title', 'rightText', 'className', 'style', 'id', 'refName', 'picker']); return title.length && title.map(function (title, index) { var pickerProps = _extends({ className: carpickers[index] + ' ' + (className[index] || ''), style: style[index] || {}, id: id[index], ref: function ref(el) { return _this2[refName[index]] = el; }, key: index, title: title, rightText: rightText[index], data: data[index] || [] }, others); var Com = (0, _popupHoc2.default)((0, _pickerHoc2.default)(picker)); if (picker) return _react2.default.createElement(Com, Object.assign({}, pickerProps, _defineProperty({ __source: { fileName: _jsxFileName, lineNumber: 106 }, __self: _this2 }, '__self', _this2))); return _react2.default.createElement(_picker2.default, Object.assign({}, pickerProps, _defineProperty({ __source: { fileName: _jsxFileName, lineNumber: 108 }, __self: _this2 }, '__self', _this2))); }); } }, { key: 'render', value: function render() { var _props2 = this.props, disabled = _props2.disabled, visible = _props2.visible, selected = _props2.selected, label = _props2.label, onSelect = _props2.onSelect, onDismiss = _props2.onDismiss, onOk = _props2.onOk; return _react2.default.createElement( _wrapper2.default, _defineProperty({ disabled: disabled, visible: visible, selectedMap: selected, selectedLabel: label, onSelect: onSelect, onDismiss: onDismiss, onOk: onOk, __source: { fileName: _jsxFileName, lineNumber: 114 }, __self: this }, '__self', this), this.renderPicker() ); } }]); return Carpicker; }(_react.Component); Carpicker.propTypes = { className: _propTypes2.default.array, // 自定义类名 style: _propTypes2.default.array, // 自定义样式 id: _propTypes2.default.array, // id, refName: _propTypes2.default.array, // ref值 spellList: _propTypes2.default.array, // 拼音索引数据 title: _propTypes2.default.array, // popup标题 rightText: _propTypes2.default.array, // popup右侧按钮文字 selected: _propTypes2.default.array, // 选中 品牌、车系、车型 id label: _propTypes2.default.array, // 选中 品牌、车系、车型 text disabled: _propTypes2.default.bool, // 禁用 visible: _propTypes2.default.bool, // 显示弹层 data: _propTypes2.default.array, // 数据集合 onSelect: _propTypes2.default.func, // 点选 选项后的回调,可用于请求数据操作等 onDismiss: _propTypes2.default.func, // 点击取消按钮后的回调 onOk: _propTypes2.default.func, // 点选车型选项后的确认提交的回调 renderList: _propTypes2.default.func, // 列表item渲染方法 spellComponent: _propTypes2.default.element, // 自定义abc索引 spellShow: _propTypes2.default.bool, // 是否显示abc索引 backTopShow: _propTypes2.default.bool, // 是否显示滚动到顶部按钮 picker: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func]) // 自定义picker组件 }; Carpicker.defaultProps = { className: [], style: [], id: [], refName: [], title: ['选择品牌', '车系', '车型'], rightText: ['取消', '取消', '取消'], selected: [], label: [], disabled: false, visible: false, spellShow: true, backTopShow: true, data: [[], [], []], onSelect: function onSelect() {}, onDismiss: function onDismiss() {}, onOk: function onOk() {} }; exports.default = Carpicker; module.exports = exports['default'];