UNPKG

6.47 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = undefined;
7
8var _datePicker = require('jdcloudui/lib/date-picker');
9
10var _datePicker2 = _interopRequireDefault(_datePicker);
11
12var _stringify = require('babel-runtime/core-js/json/stringify');
13
14var _stringify2 = _interopRequireDefault(_stringify);
15
16var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
17
18var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
19
20var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
21
22var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23
24var _createClass2 = require('babel-runtime/helpers/createClass');
25
26var _createClass3 = _interopRequireDefault(_createClass2);
27
28var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
29
30var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
31
32var _inherits2 = require('babel-runtime/helpers/inherits');
33
34var _inherits3 = _interopRequireDefault(_inherits2);
35
36require('jdcloudui/lib/date-picker/style');
37
38var _react = require('react');
39
40var _react2 = _interopRequireDefault(_react);
41
42var _moment = require('moment');
43
44var _moment2 = _interopRequireDefault(_moment);
45
46function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
48/**
49* @author RongXiaowei
50* @param value 传入的value值 type:[object Object] ({startTime,endTime}) 默认为null
51* @param space 间隔符 type:[object String] 默认 "至"
52* @param className className type:[object String] 默认为不加
53* @param format 格式化时间 type:[object String] 默认 "YYYY-MM-DD"
54* @date 2017-12-13
55* @description RangePicker 开始结束时间组件
56*/
57
58/**********引入系统组件***********/
59var 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 * @description 判断起始时间是否大于结束时间
129 */
130
131 /**
132 * @description 判断结束时间是否大于起始时间
133 */
134
135 /**
136 * @description 起始时间赋值
137 */
138
139 /**
140 * @description 结束时间赋值
141 */
142
143 /**
144 * @description 开启禁止标志
145 */
146
147 /**
148 * @description 关闭禁止标志
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
189exports.default = JcRangePicker;
190module.exports = exports['default'];
191//# sourceMappingURL=JcRangePicker.js.map
\No newline at end of file