UNPKG

@ttk/component

Version:

ttk组件库

188 lines (162 loc) 5.87 kB
import { _ as _inherits, a as _getPrototypeOf, b as _possibleConstructorReturn, c as _classCallCheck, d as _createClass, f as _typeof } from '../getPrototypeOf-b95655c5.js'; import React__default, { Component } from 'react'; import { Map } from 'immutable'; import { Select, Input } from 'antd'; import '../_commonjsHelpers-471920d6.js'; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } Select.Option; var selectRange = /*#__PURE__*/function (_Component) { _inherits(selectRange, _Component); var _super = _createSuper(selectRange); function selectRange(props) { var _this; _classCallCheck(this, selectRange); _this = _super.call(this, props); _this.state = { data: Map({ path: '', rangeStart: '', rangeEnd: '', className: '', isEndOpen: false, startDate: '', endDate: '', style: {}, isEndLessThanStart: false //控制input输入值,为true时,后一项不能小于前一项,false不做判断 }) }; _this.onStartChange = function (value) { var data = _this.state.data; data = _this.set(null, { rangeStart: value }); _this.setState({ data: data }); _this.props.onChange && _this.props.onChange({ rangeStart: value, rangeEnd: _this.get('rangeEnd') }); }; _this.onEndChange = function (value) { var data = _this.state.data; data = _this.set(null, { rangeEnd: value }); _this.setState({ data: data }); _this.props.onChange && _this.props.onChange({ rangeStart: _this.get('rangeStart'), rangeEnd: value }); }; _this.renderStart = function () { var startOption = _this.get('startOption'), rangeStart = _this.get('rangeStart'); if (!startOption) { return /*#__PURE__*/React__default.createElement(Input, { onChange: _this.onStartChange, value: rangeStart, allowClear: _this.get('allowClear') }); } else { startOption.props.onChange = _this.onStartChange; startOption.props.value = rangeStart; startOption.props.allowClear = _this.get('allowClear'); return startOption; } }; _this.renderEnd = function () { var endOption = _this.get('endOption'), rangeEnd = _this.get('rangeEnd'); if (!endOption) { return /*#__PURE__*/React__default.createElement(Input, { onChange: _this.onEndChange, value: rangeEnd, allowClear: _this.get('allowClear') }); } else { endOption.props.onChange = _this.onEndChange; endOption.props.value = rangeEnd; endOption.props.allowClear = _this.get('allowClear'); return endOption; } }; _this.state = _this.calculateState(_this.props); return _this; } _createClass(selectRange, [{ key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { this.setState(this.calculateState(nextProps)); } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !this.state.data.equals(nextState.data); } }, { key: "calculateState", value: function calculateState(props) { var data = this.state.data; var className = props.className, value = props.value, style = props.style, startOption = props.startOption, endOption = props.endOption, allowClear = props.allowClear; var rangeEnd = value.rangeEnd, rangeStart = value.rangeStart; data = this.set(null, { className: className, rangeEnd: rangeEnd, rangeStart: rangeStart, style: style, startOption: startOption, endOption: endOption, allowClear: allowClear }); return { data: data }; } }, { key: "get", value: function get(propertyName) { if (!propertyName || propertyName === '') { return this.state.data; } window._this = this.state.data; return this.state.data.get(propertyName); } }, { key: "set", value: function set(propertyName, value) { var data = this.state.data; if (!propertyName || propertyName === '') { return data.merge(value); } if (_typeof(value) === 'object') { return data.mergeIn(propertyName.split('.'), value); } else { return data.setIn(propertyName.split('.'), value); } } }, { key: "render", value: function render() { var className = this.get('className'), style = this.get('style'); return /*#__PURE__*/React__default.createElement("div", { className: "".concat(className, " mk-selectRange"), style: style }, this.renderStart(), /*#__PURE__*/React__default.createElement("div", { className: "mk-selectRange-center" }, this.props.centerContent), this.renderEnd()); } }]); return selectRange; }(Component); export { selectRange as default };