@ttk/component
Version:
ttk组件库
188 lines (162 loc) • 5.87 kB
JavaScript
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 };