antd-mobile
Version:
基于 React 的移动设计规范实现
125 lines (95 loc) • 4.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = undefined;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var React = _interopRequireWildcard(_react);
var _Popup = require('rmc-cascader/lib/Popup');
var _Popup2 = _interopRequireDefault(_Popup);
var _Cascader = require('rmc-cascader/lib/Cascader');
var _Cascader2 = _interopRequireDefault(_Cascader);
var _arrayTreeFilter = require('array-tree-filter');
var _arrayTreeFilter2 = _interopRequireDefault(_arrayTreeFilter);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function getDefaultProps() {
var defaultFormat = function defaultFormat(values) {
return values.join(',');
};
return {
prefixCls: 'am-picker',
pickerPrefixCls: 'am-picker-col',
popupPrefixCls: 'am-picker-popup',
format: defaultFormat,
style: { left: 0, bottom: 0 },
cols: 3,
value: [],
extra: '请选择',
okText: '确定',
dismissText: '取消',
title: ''
};
}
var Picker = function (_React$Component) {
(0, _inherits3["default"])(Picker, _React$Component);
function Picker() {
(0, _classCallCheck3["default"])(this, Picker);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.call.apply(_React$Component, [this].concat(args)));
_this.getSel = function () {
var value = _this.props.value || [];
var treeChildren = (0, _arrayTreeFilter2["default"])(_this.props.data, function (c, level) {
return c.value === value[level];
});
return _this.props.format(treeChildren.map(function (v) {
return v.label;
}));
};
return _this;
}
Picker.prototype.render = function render() {
var props = this.props;
var children = props.children;
var value = props.value;
var extra = props.extra;
var okText = props.okText;
var dismissText = props.dismissText;
var popupPrefixCls = props.popupPrefixCls;
var extraProps = {
extra: this.getSel() || extra
};
var childEl = React.cloneElement(children, children.type && children.type.myName === 'ListItem' ? extraProps : {});
var cascader = React.createElement(_Cascader2["default"], { prefixCls: props.prefixCls, pickerPrefixCls: props.pickerPrefixCls, data: props.data, cols: props.cols });
return React.createElement(
_Popup2["default"],
(0, _extends3["default"])({ cascader: cascader, WrapComponent: 'div', transitionName: 'am-slide-up', maskTransitionName: 'am-fade' }, props, { prefixCls: popupPrefixCls, value: value, dismissText: React.createElement(
'span',
{ className: popupPrefixCls + '-header-cancel-button' },
dismissText
), okText: React.createElement(
'span',
{ className: popupPrefixCls + '-header-ok-button' },
okText
) }),
childEl
);
};
return Picker;
}(React.Component);
exports["default"] = Picker;
Picker.propTypes = {
format: _react.PropTypes.func
};
Picker.defaultProps = getDefaultProps();
module.exports = exports['default'];
;