1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = undefined;
|
7 |
|
8 | var _datePicker = require('jdcloudui/lib/date-picker');
|
9 |
|
10 | var _datePicker2 = _interopRequireDefault(_datePicker);
|
11 |
|
12 | var _stringify = require('babel-runtime/core-js/json/stringify');
|
13 |
|
14 | var _stringify2 = _interopRequireDefault(_stringify);
|
15 |
|
16 | var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
|
17 |
|
18 | var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
|
19 |
|
20 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
21 |
|
22 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
23 |
|
24 | var _createClass2 = require('babel-runtime/helpers/createClass');
|
25 |
|
26 | var _createClass3 = _interopRequireDefault(_createClass2);
|
27 |
|
28 | var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
29 |
|
30 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
31 |
|
32 | var _inherits2 = require('babel-runtime/helpers/inherits');
|
33 |
|
34 | var _inherits3 = _interopRequireDefault(_inherits2);
|
35 |
|
36 | require('jdcloudui/lib/date-picker/style');
|
37 |
|
38 | var _react = require('react');
|
39 |
|
40 | var _react2 = _interopRequireDefault(_react);
|
41 |
|
42 | var _moment = require('moment');
|
43 |
|
44 | var _moment2 = _interopRequireDefault(_moment);
|
45 |
|
46 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 |
|
57 |
|
58 |
|
59 | var JcRangePicker = function (_Component) {
|
60 | (0, _inherits3.default)(JcRangePicker, _Component);
|
61 |
|
62 | function JcRangePicker(props, context) {
|
63 | (0, _classCallCheck3.default)(this, JcRangePicker);
|
64 |
|
65 | var _this = (0, _possibleConstructorReturn3.default)(this, (JcRangePicker.__proto__ || (0, _getPrototypeOf2.default)(JcRangePicker)).call(this, props, context));
|
66 |
|
67 | _this.disabledStartDate = function (startValue) {
|
68 | var endValue = _this.state.endTime ? (0, _moment2.default)(_this.state.endTime) : null;
|
69 | if (!startValue || !endValue) {
|
70 | return false;
|
71 | }
|
72 | return startValue.valueOf() > endValue.valueOf();
|
73 | };
|
74 |
|
75 | _this.disabledEndDate = function (endValue) {
|
76 | var startValue = _this.state.startTime ? (0, _moment2.default)(_this.state.startTime) : null;
|
77 | if (!endValue || !startValue) {
|
78 | return false;
|
79 | }
|
80 | return endValue.valueOf() <= startValue.valueOf();
|
81 | };
|
82 |
|
83 | _this.onStartChange = function (value) {
|
84 | _this.setState({ "startTime": value });
|
85 | _this.StateTime['startTime'] = value ? (0, _moment2.default)(value).format(_this.props.format || "YYYY-MM-DD") : null;
|
86 | _this.props.onChange(_this.StateTime);
|
87 | };
|
88 |
|
89 | _this.onEndChange = function (value) {
|
90 | _this.setState({ "endTime": value });
|
91 | _this.StateTime['endTime'] = value ? (0, _moment2.default)(value).format(_this.props.format || "YYYY-MM-DD") : null;
|
92 | _this.props.onChange(_this.StateTime);
|
93 | };
|
94 |
|
95 | _this.handleStartOpenChange = function (open) {
|
96 | if (!open) {
|
97 | _this.setState({ endOpen: true });
|
98 | }
|
99 | };
|
100 |
|
101 | _this.handleEndOpenChange = function (open) {
|
102 | _this.setState({ endOpen: open });
|
103 | };
|
104 |
|
105 | _this.state = {
|
106 | startTime: _this.props.value && _this.props.value.startTime || null,
|
107 | endTime: _this.props.value && _this.props.value.endTime || null,
|
108 | endOpen: false
|
109 |
|
110 | };_this.initValue = JSON.parse((0, _stringify2.default)(_this.props.value));
|
111 | _this.StateTime = JSON.parse((0, _stringify2.default)(_this.props.value)) || {};
|
112 | return _this;
|
113 | }
|
114 |
|
115 | (0, _createClass3.default)(JcRangePicker, [{
|
116 | key: 'componentWillReceiveProps',
|
117 | value: function componentWillReceiveProps(nexProps) {
|
118 | if (!nexProps.value && (this.state.startTime || this.state.endTime) || nexProps.value && (0, _stringify2.default)(nexProps.value) === (0, _stringify2.default)(this.initValue)) {
|
119 |
|
120 | if (!nexProps.value) {
|
121 | this.setState({ "startTime": null, "endTime": null });
|
122 | } else {
|
123 | this.setState({ "startTime": this.initValue.startTime, "endTime": this.initValue.endTime });
|
124 | }
|
125 | }
|
126 | }
|
127 | |
128 |
|
129 |
|
130 |
|
131 | |
132 |
|
133 |
|
134 |
|
135 | |
136 |
|
137 |
|
138 |
|
139 | |
140 |
|
141 |
|
142 |
|
143 | |
144 |
|
145 |
|
146 |
|
147 | |
148 |
|
149 |
|
150 |
|
151 | }, {
|
152 | key: 'render',
|
153 | value: function render() {
|
154 | return _react2.default.createElement(
|
155 | 'div',
|
156 | { className: this.props.className || "" },
|
157 | _react2.default.createElement(_datePicker2.default, {
|
158 | size: 'large',
|
159 | disabledDate: this.disabledStartDate,
|
160 | format: this.props.format || "YYYY-MM-DD",
|
161 | placeholder: '\u5F00\u59CB\u65F6\u95F4',
|
162 | onChange: this.onStartChange,
|
163 | onOpenChange: this.handleStartOpenChange,
|
164 | value: this.state.startTime ? (0, _moment2.default)(this.state.startTime, this.props.format || "YYYY-MM-DD") : null
|
165 | }),
|
166 | '\xA0\xA0',
|
167 | _react2.default.createElement(
|
168 | 'span',
|
169 | { className: 'date-picker-space' },
|
170 | this.props.space || "至"
|
171 | ),
|
172 | '\xA0\xA0',
|
173 | _react2.default.createElement(_datePicker2.default, {
|
174 | size: 'large',
|
175 | disabledDate: this.disabledEndDate,
|
176 | format: this.props.format || "YYYY-MM-DD",
|
177 | placeholder: '\u7ED3\u675F\u65F6\u95F4',
|
178 | onChange: this.onEndChange,
|
179 | open: this.state.endOpen,
|
180 | onOpenChange: this.handleEndOpenChange,
|
181 | value: this.state.endTime ? (0, _moment2.default)(this.state.endTime, this.props.format || "YYYY-MM-DD") : null
|
182 | })
|
183 | );
|
184 | }
|
185 | }]);
|
186 | return JcRangePicker;
|
187 | }(_react.Component);
|
188 |
|
189 | exports.default = JcRangePicker;
|
190 | module.exports = exports['default'];
|
191 |
|
\ | No newline at end of file |