UNPKG

ming-demo3

Version:
422 lines (372 loc) 16.6 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _baseui = require("@mdf/baseui"); var _moment = _interopRequireDefault(require("moment")); var _row = _interopRequireDefault(require("./row")); var _col = _interopRequireDefault(require("./col")); var _label = _interopRequireDefault(require("./label")); var RadioButton = _baseui.Radio.Button; var RadioGroup = _baseui.Radio.Group; var PredicateDatePicker = function (_Component) { (0, _inherits2["default"])(PredicateDatePicker, _Component); function PredicateDatePicker(props) { var _this; (0, _classCallCheck2["default"])(this, PredicateDatePicker); _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PredicateDatePicker).call(this, props)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "disabledStartDate", function (startValue) { var _this$state = _this.state, endValue = _this$state.endValue, format = _this$state.format, endSuffix = _this$state.endSuffix; if (!startValue || !endValue) return false; var endDate = (0, _moment["default"])(endValue.format(format) + endSuffix, format + ' HH:mm:ss'); return startValue.valueOf() > endDate.valueOf(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "disabledEndDate", function (endValue) { var _this$state2 = _this.state, startValue = _this$state2.startValue, format = _this$state2.format, startSuffix = _this$state2.startSuffix; if (!endValue || !startValue) return false; var startDate = (0, _moment["default"])(startValue.format(format) + startSuffix, format + ' HH:mm:ss'); return endValue.valueOf() < startDate.valueOf(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onStartChange", function (value) { var _this$state3 = _this.state, format = _this$state3.format, startSuffix = _this$state3.startSuffix, endSuffix = _this$state3.endSuffix, endValue = _this$state3.endValue; var value1 = value && value.format(format) + startSuffix || null; var value2 = endValue && endValue.format(format) + endSuffix || null; _this.setModelValue(value1, null); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onEndChange", function (value) { var _this$state4 = _this.state, startValue = _this$state4.startValue, format = _this$state4.format, startSuffix = _this$state4.startSuffix, endSuffix = _this$state4.endSuffix; var value1 = startValue && startValue.format(format) + startSuffix || null; var value2 = value && value.format(format) + endSuffix || null; var predicateValue = _this.fitPredicateValue(startValue, value); _this.setModelValue(value1, value2, predicateValue); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleStartOpenChange", function (open) { var endValue = _this.state.endValue; if (!open) _this.setState({ endOpen: true }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleEndOpenChange", function (open) { _this.setState({ endOpen: open }); }); var cStyle = props.cStyle; var config = null; if (cStyle) { try { config = JSON.parse(cStyle); } catch (e) { config = {}; } } _this.state = Object.assign({ predicateValue: null, startValue: null, endValue: null, endOpen: false, format: 'YYYY-MM-DD', startSuffix: ' 00:00:00', endSuffix: ' 23:59:59' }, config); return _this; } (0, _createClass2["default"])(PredicateDatePicker, [{ key: "componentDidMount", value: function componentDidMount() { if (this.props.model) this.props.model.addListener(this); } }, { key: "componentDidUpdate", value: function componentDidUpdate() { if (this.props.model) this.props.model.addListener(this); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { if (this.props.model) this.props.model.removeListener(this); } }, { key: "setListenerState", value: function setListenerState(params) { var valueField = params.valueField, textField = params.textField, value = params.value, dataSource = params.dataSource, defaultValue = params.defaultValue; this.valueField = valueField; this.textField = textField; delete params.valueField; delete params.textField; delete params.value; this.setState(params); if (defaultValue === false) { this.setValue(value && value[valueField] || value); } else { this.setValue(cb.utils.isEmpty(value) ? dataSource && dataSource.length && dataSource[0][valueField] : value[valueField] || value); } } }, { key: "setValue", value: function setValue(value) { if (cb.utils.isEmpty(value)) { this.setState({ predicateValue: null, startValue: null, endValue: null }); } else if ((0, _typeof2["default"])(value) === 'object') { var value1 = value.value1, value2 = value.value2, predicateValue = value.predicateValue; var startValue = value1 && (0, _moment["default"])(value1) || null, endValue = value2 && (0, _moment["default"])(value2) || null; if (startValue && endValue && cb.utils.isEmpty(predicateValue)) predicateValue = this.fitPredicateValue(startValue, endValue); this.setState({ predicateValue: predicateValue, startValue: startValue, endValue: endValue }); } else { this.onPredicateChange(value); } } }, { key: "onPredicateChange", value: function onPredicateChange(predicateValue) { var _this$state5 = this.state, format = _this$state5.format, startSuffix = _this$state5.startSuffix, endSuffix = _this$state5.endSuffix; if (!isNaN(Number(predicateValue)) && Number(predicateValue) < -1) { this.setModelValue((0, _moment["default"])().subtract(-Number(predicateValue) - 1, 'day').format(format) + startSuffix, (0, _moment["default"])().format(format) + endSuffix, predicateValue); } else { switch (predicateValue) { case '0': var today = (0, _moment["default"])().format(format); this.setModelValue(today + startSuffix, today + endSuffix, predicateValue); break; case '-1': var yesterday = (0, _moment["default"])().subtract(1, 'days').format(format); this.setModelValue(yesterday + startSuffix, yesterday + endSuffix, predicateValue); break; case '7': { var daystoNextMonday = 7 - ((0, _moment["default"])().isoWeekday() - 1); var nextWeekStart = (0, _moment["default"])().add('days', daystoNextMonday); var nextWeekEnd = (0, _moment["default"])().add('days', daystoNextMonday + 6); this.setModelValue(nextWeekStart.format(format) + startSuffix, nextWeekEnd.format(format) + endSuffix, predicateValue); break; } case '30': { var nextMonthStart = (0, _moment["default"])().add('month', 1).format('YYYY-MM') + '-01'; var nextMonthEnd = (0, _moment["default"])(nextMonthStart).add('month', 1).add('days', -1).format(format); this.setModelValue(nextMonthStart + startSuffix, nextMonthEnd + endSuffix, predicateValue); break; } case '90': { var nowquarter = (0, _moment["default"])().quarter(); var nowyear = (0, _moment["default"])().year(); var nextQuarterStart; var nextQuarterEnd; switch (nowquarter) { case 1: nextQuarterStart = nowyear + '-04-01'; nextQuarterEnd = nowyear + '-06-30'; break; case 2: nextQuarterStart = nowyear + '-07-01'; nextQuarterEnd = nowyear + '-09-30'; break; case 3: nextQuarterStart = nowyear + '-10-01'; nextQuarterEnd = nowyear + '-12-31'; break; default: nextQuarterStart = nowyear + 1 + '-01-01'; nextQuarterEnd = nowyear + 1 + '-03-31'; } this.setModelValue(nextQuarterStart + startSuffix, nextQuarterEnd + endSuffix, predicateValue); break; } case '365': { var nextYearStart = (0, _moment["default"])().add('year', 1).format('YYYY') + '-01-01'; var nextYearEnd = (0, _moment["default"])(nextYearStart).add('year', 1).add('days', -1).format(format); this.setModelValue(nextYearStart + startSuffix, nextYearEnd + endSuffix, predicateValue); break; } } } } }, { key: "setModelValue", value: function setModelValue(value1, value2, predicateValue) { this.props.model.setValue({ value1: value1, value2: value2, predicateValue: predicateValue }, true); } }, { key: "fitPredicateValue", value: function fitPredicateValue(startValue, endValue) { var format = this.state.format; var startString = startValue && startValue.format(format); var endString = endValue && endValue.format(format); if (!startString || !endString) return; var today = (0, _moment["default"])().format(format); if (startString === today && endString === today) return '0'; var yesterday = (0, _moment["default"])().subtract(1, 'days').format(format); if (startString === yesterday && endString === yesterday) return '-1'; if (endString === today) { var _difftime = (0, _moment["default"])(endString + 'T23:59:59') - startValue; var _day = (_difftime / 1000 + 1) / 24 / 60 / 60; return '-' + _day; } var daystoNextMonday = 7 - ((0, _moment["default"])().isoWeekday() - 1); var nextWeekStart = (0, _moment["default"])().add('days', daystoNextMonday).format(format); var nextWeekEnd = (0, _moment["default"])().add('days', daystoNextMonday + 6).format(format); if (startString === nextWeekStart && endString === nextWeekEnd) return '7'; var nextMonthStart = (0, _moment["default"])().add('month', 1).format('YYYY-MM') + '-01'; var nextMonthEnd = (0, _moment["default"])(nextMonthStart).add('month', 1).add('days', -1).format(format); if (startString === nextMonthStart && endString === nextMonthEnd) return '30'; var nowquarter = (0, _moment["default"])().quarter(); var nowyear = (0, _moment["default"])().year(); var nextQuarterStart; var nextQuarterEnd; switch (nowquarter) { case 1: nextQuarterStart = nowyear + '-04-01'; nextQuarterEnd = nowyear + '-06-30'; break; case 2: nextQuarterStart = nowyear + '-07-01'; nextQuarterEnd = nowyear + '-09-30'; break; case 3: nextQuarterStart = nowyear + '-10-01'; nextQuarterEnd = nowyear + '-12-31'; break; default: nextQuarterStart = nowyear + 1 + '-01-01'; nextQuarterEnd = nowyear + 1 + '-03-31'; } if (startString === nextQuarterStart && endString === nextQuarterEnd) return '90'; var nextYearStart = (0, _moment["default"])().add('year', 1).format('YYYY') + '-01-01'; var nextYearEnd = (0, _moment["default"])(nextYearStart).add('year', 1).add('days', -1).format(format); if (startString === nextYearStart && endString === nextYearEnd) return '365'; return null; } }, { key: "baseControl", value: function baseControl() { var _this2 = this; var dataSource = this.state.dataSource; if (!dataSource || !dataSource.length) return null; var valueField = this.valueField, textField = this.textField; var options = []; dataSource.forEach(function (item) { options.push(_react["default"].createElement(RadioButton, { value: item[valueField] }, item[textField])); }); var _this$state6 = this.state, predicateValue = _this$state6.predicateValue, startValue = _this$state6.startValue, endValue = _this$state6.endValue, endOpen = _this$state6.endOpen; var isInPanel = this.props.isInPanel ? this.props.isInPanel : false; var isInDesign = this.props.isInDesign ? this.props.isInDesign : false; var panelType = this.props.panelType || 0; return _react["default"].createElement(_row["default"], { className: "m-b-10" }, _react["default"].createElement("div", { style: { "float": 'left' }, className: "m-r-10" }, _react["default"].createElement(RadioGroup, { value: predicateValue, onChange: function onChange(e) { return _this2.onPredicateChange(e.target.value); } }, options)), isInPanel == false || isInDesign == true ? _react["default"].createElement("div", { style: { "float": 'left' }, className: "query-scheme-date" }, _react["default"].createElement(_row["default"], { colCount: 3 }, _react["default"].createElement(_col["default"], { span: 1, className: "m-r-10" }, _react["default"].createElement(_baseui.DatePicker, { disabledDate: this.disabledStartDate, value: startValue, onChange: this.onStartChange, onOpenChange: this.handleStartOpenChange })), _react["default"].createElement("div", { style: { "float": 'left' }, className: "m-r-10" + (panelType == 3 ? " basic-predicate-to " : "") }, "\u81F3"), _react["default"].createElement(_col["default"], { span: 1 }, _react["default"].createElement(_baseui.DatePicker, { disabledDate: this.disabledEndDate, value: endValue, onChange: this.onEndChange, open: endOpen, onOpenChange: this.handleEndOpenChange })))) : ""); } }, { key: "render", value: function render() { var cShowCaption = this.props.cShowCaption; var control = this.baseControl(); var isInPanel = this.props.isInPanel ? this.props.isInPanel : false; var isInDesign = this.props.isInDesign ? this.props.isInDesign : false; return _react["default"].createElement("div", { className: 'basic-predicate-data-picker ' + (this.state.classname || '') }, cShowCaption && (isInPanel == false || isInDesign == true) ? _react["default"].createElement(_label["default"], { isInFilterJSX: true, control: control, title: cShowCaption }) : control); } }]); return PredicateDatePicker; }(_react.Component); exports["default"] = PredicateDatePicker; //# sourceMappingURL=predicatedatepicker.js.map