UNPKG

react-crons

Version:
1,924 lines (1,586 loc) 194 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var React = require('react'); var React__default = _interopDefault(React); var classnames = _interopDefault(require('classnames')); var antd = require('antd'); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } var zh = { thecycle: '按周期', from: '从', from1: ' 周期从', Every: ' 每', doOne: '执行一次', appoint: '指定', noappoint: '不指定', second: '秒', second1: '秒', EverySecond: '每一秒钟', secondstart: '秒开始,', minute: '分', minute1: '分钟', Everyminute: '每一分钟', minutestart: '分开始,', hour: '时', hour1: '小时', Everyhour: '每一小时', hourstart: '时开始,', day: '日', day1: '日', Everyday: '每一日', daystart: '日开始,', month: '月', month1: '月', Everymonth: '每一月', Everymonth1: '每月', latestDays: '号最近的工作日', monthstart: '月开始,', monthend: '每月的最后一天', week: '周', week1: '星期', week2: ',的星期', week3: '周', monthweek: '本月第', Everyweek: '每一周', weekend: '本月的最后一个星期' }; var en = { thecycle: 'The cycle', from: 'From', from1: ' from', Every: ' every', doOne: ' to do one time', appoint: 'Appoint', noappoint: 'No Appoint', second: 'Second', second1: 'second', EverySecond: 'Every second', secondstart: 'start,', minute: 'Minute', minute1: 'minute', Everyminute: 'Every minute', minutestart: 'start,', hour: 'Hour', hour1: 'hour', Everyhour: 'Every hour', hourstart: 'start,', day: 'Day', day1: 'day', Everyday: 'Every day', daystart: 'start,', month: 'Month', month1: 'month', Everymonth: 'Every month', Everymonth1: 'Every month', latestDays: 'latest workday', monthstart: 'start,', monthend: 'The last day of the month', week: 'Week', week1: ' week', week2: ',week', week3: 'week', monthweek: 'Every month number', Everyweek: 'Every Week', weekend: 'The last week of the month' }; var getI18n = function getI18n(locale) { if (locale === 'zh_CN' || locale === 'zh-CN' || locale === 'zh-Hans-CN' || locale === 'zh_Hans_CN') { return zh; } if (locale === 'en_US' || locale === 'en-US') { return en; } }; /** * Validates a cron expression. * * @param cronExpression The expression to validate * @return True is expression is valid */ function cronValidate(cronExpression) { if (!cronExpression) { return false; } //alert("校验函数的开始!"); var cronParams = cronExpression.split(" "); if (cronParams.length < 6 || cronParams.length > 7) { return false; } //CronTrigger cronTrigger = new CronTrigger(); //cronTrigger.setCronExpression( cronExpression ); if (cronParams[3] == "?" || cronParams[5] == "?") { //Check seconds param if (!checkSecondsField(cronParams[0])) { return false; } //Check minutes param if (!checkMinutesField(cronParams[1])) { return false; } //Check hours param if (!checkHoursField(cronParams[2])) { return false; } //Check day-of-month param if (!checkDayOfMonthField(cronParams[3])) { return false; } //Check months param if (!checkMonthsField(cronParams[4])) { return false; } //Check day-of-week param if (!checkDayOfWeekField(cronParams[5])) { return false; } //Check year param if (cronParams.length == 7) { if (!checkYearField(cronParams[6])) { return false; } } return true; } else { return false; } } function checkSecondsField(secondsField) { return checkField(secondsField, 0, 59); } function checkField(secondsField, minimal, maximal) { if (secondsField.indexOf("-") > -1) { var startValue = secondsField.substring(0, secondsField.indexOf("-")); var endValue = secondsField.substring(secondsField.indexOf("-") + 1); if (!(checkIntValue(startValue, minimal, maximal, true) && checkIntValue(endValue, minimal, maximal, true))) { return false; } try { var startVal = parseInt(startValue, 10); var endVal = parseInt(endValue, 10); return endVal > startVal; } catch (e) { return false; } } else if (secondsField.indexOf(",") > -1) { return checkListField(secondsField, minimal, maximal); } else if (secondsField.indexOf("/") > -1) { return checkIncrementField(secondsField, minimal, maximal); } else if (secondsField.indexOf("*") != -1) { return true; } else { return checkIntValue(secondsField, minimal, maximal); } } function checkIntValue(value, minimal, maximal, checkExtremity) { try { var val = parseInt(value, 10); //判断是否为整数 if (value == val) { if (checkExtremity) { if (val < minimal || val > maximal) { return false; } } return true; } return false; } catch (e) { return false; } } function checkMinutesField(minutesField) { return checkField(minutesField, 0, 59); } function checkHoursField(hoursField) { return checkField(hoursField, 0, 23); } function checkDayOfMonthField(dayOfMonthField) { if (dayOfMonthField == "?") { return true; } if (dayOfMonthField.indexOf("L") >= 0) { return checkFieldWithLetter(dayOfMonthField, "L", 1, 7, -1, -1); } else if (dayOfMonthField.indexOf("W") >= 0) { return checkFieldWithLetter(dayOfMonthField, "W", 1, 31, -1, -1); } else if (dayOfMonthField.indexOf("C") >= 0) { return checkFieldWithLetter(dayOfMonthField, "C", 1, 31, -1, -1); } else { return checkField(dayOfMonthField, 1, 31); } } function checkMonthsField(monthsField) { /* monthsField = StringUtils.replace( monthsField, "JAN", "1" ); monthsField = StringUtils.replace( monthsField, "FEB", "2" ); monthsField = StringUtils.replace( monthsField, "MAR", "3" ); monthsField = StringUtils.replace( monthsField, "APR", "4" ); monthsField = StringUtils.replace( monthsField, "MAY", "5" ); monthsField = StringUtils.replace( monthsField, "JUN", "6" ); monthsField = StringUtils.replace( monthsField, "JUL", "7" ); monthsField = StringUtils.replace( monthsField, "AUG", "8" ); monthsField = StringUtils.replace( monthsField, "SEP", "9" ); monthsField = StringUtils.replace( monthsField, "OCT", "10" ); monthsField = StringUtils.replace( monthsField, "NOV", "11" ); monthsField = StringUtils.replace( monthsField, "DEC", "12" );*/ monthsField.replace("JAN", "1"); monthsField.replace("FEB", "2"); monthsField.replace("MAR", "3"); monthsField.replace("APR", "4"); monthsField.replace("MAY", "5"); monthsField.replace("JUN", "6"); monthsField.replace("JUL", "7"); monthsField.replace("AUG", "8"); monthsField.replace("SEP", "9"); monthsField.replace("OCT", "10"); monthsField.replace("NOV", "11"); monthsField.replace("DEC", "12"); return checkField(monthsField, 1, 31); } function checkDayOfWeekField(dayOfWeekField) { /* dayOfWeekField = StringUtils.replace( dayOfWeekField, "SUN", "1" ); dayOfWeekField = StringUtils.replace( dayOfWeekField, "MON", "2" ); dayOfWeekField = StringUtils.replace( dayOfWeekField, "TUE", "3" ); dayOfWeekField = StringUtils.replace( dayOfWeekField, "WED", "4" ); dayOfWeekField = StringUtils.replace( dayOfWeekField, "THU", "5" ); dayOfWeekField = StringUtils.replace( dayOfWeekField, "FRI", "6" ); dayOfWeekField = StringUtils.replace( dayOfWeekField, "SAT", "7" );*/ dayOfWeekField.replace("SUN", "1"); dayOfWeekField.replace("MON", "2"); dayOfWeekField.replace("TUE", "3"); dayOfWeekField.replace("WED", "4"); dayOfWeekField.replace("THU", "5"); dayOfWeekField.replace("FRI", "6"); dayOfWeekField.replace("SAT", "7"); if (dayOfWeekField == "?") { return true; } if (dayOfWeekField.indexOf("L") >= 0) { return checkFieldWithLetter(dayOfWeekField, "L", 1, 7, -1, -1); } else if (dayOfWeekField.indexOf("C") >= 0) { return checkFieldWithLetter(dayOfWeekField, "C", 1, 7, -1, -1); } else if (dayOfWeekField.indexOf("#") >= 0) { return checkFieldWithLetter(dayOfWeekField, "#", 1, 7, 1, 5); } else { return checkField(dayOfWeekField, 1, 7); } } function checkYearField(yearField) { return checkField(yearField, 1970, 2099); } function checkFieldWithLetter(value, letter, minimalBefore, maximalBefore, minimalAfter, maximalAfter) { var canBeAlone = false; var canHaveIntBefore = false; var canHaveIntAfter = false; var mustHaveIntBefore = false; var mustHaveIntAfter = false; if (letter == "L") { canBeAlone = true; canHaveIntBefore = true; canHaveIntAfter = false; mustHaveIntBefore = false; mustHaveIntAfter = false; } if (letter == "W" || letter == "C") { canBeAlone = false; canHaveIntBefore = true; canHaveIntAfter = false; mustHaveIntBefore = true; mustHaveIntAfter = false; } if (letter == "#") { canBeAlone = false; canHaveIntBefore = true; canHaveIntAfter = true; mustHaveIntBefore = true; mustHaveIntAfter = true; } var beforeLetter = ""; var afterLetter = ""; if (value.indexOf(letter) >= 0) { beforeLetter = value.substring(0, value.indexOf(letter)); } if (!value.endsWith(letter)) { afterLetter = value.substring(value.indexOf(letter) + 1); } if (value.indexOf(letter) >= 0) { if (letter == value) { return canBeAlone; } if (canHaveIntBefore) { if (mustHaveIntBefore && beforeLetter.length == 0) { return false; } if (!checkIntValue(beforeLetter, minimalBefore, maximalBefore, true)) { return false; } } else { if (beforeLetter.length > 0) { return false; } } if (canHaveIntAfter) { if (mustHaveIntAfter && afterLetter.length == 0) { return false; } if (!checkIntValue(afterLetter, minimalAfter, maximalAfter, true)) { return false; } } else { if (afterLetter.length > 0) { return false; } } } return true; } /* function checkIntValue(value, minimal, maximal) { return checkIntValue(value, minimal, maximal, true); } */ function checkIncrementField(value, minimal, maximal) { var start = value.substring(0, value.indexOf("/")); var increment = value.substring(value.indexOf("/") + 1); if (!("*" == start)) { return checkIntValue(start, minimal, maximal, true) && checkIntValue(increment, minimal, maximal, false); } else { return checkIntValue(increment, minimal, maximal, true); } } function checkListField(value, minimal, maximal) { var st = value.split(",").sort(function (x, y) { return Number(x) - Number(y); }); var values = new Array(st.length); for (var j = 0; j < st.length; j++) { values[j] = st[j]; } var previousValue = -1; for (var i = 0; i < values.length; i++) { var currentValue = values[i]; if (!checkIntValue(currentValue, minimal, maximal, true)) { return false; } try { var val = parseInt(currentValue, 10); if (val <= previousValue) { return false; } else { previousValue = val; } } catch (e) {// we have always an int } } return true; } function styleInject(css, ref) { if ( ref === void 0 ) ref = {}; var insertAt = ref.insertAt; if (!css || typeof document === 'undefined') { return; } var head = document.head || document.getElementsByTagName('head')[0]; var style = document.createElement('style'); style.type = 'text/css'; if (insertAt === 'top') { if (head.firstChild) { head.insertBefore(style, head.firstChild); } else { head.appendChild(style); } } else { head.appendChild(style); } if (style.styleSheet) { style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } } var css = ".cron {\n border-radius: 3px;\n background: #fff;\n border: 1px solid #ccc;\n box-shadow: 0 1px 5px #ccc;\n}\n.cron .ant-tabs-bar {\n margin-bottom: 0px;\n}\n.cron .ant-tabs-tabpane-active {\n padding-left: 10px;\n padding-bottom: 3px;\n}\n.cron .ant-tabs-tabpane-active .ant-radio-group {\n width: 100%;\n height: 100%;\n}\n"; styleInject(css); var Option = antd.Select.Option; var TabPane = antd.Tabs.TabPane; var RadioGroup = antd.Radio.Group; var CheckboxGroup = antd.Checkbox.Group; var options = []; var hourOptions = []; var daysForMonOptions = []; var monthOptions = []; var weekOptions = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; for (var i = 0; i < 60; i++) { options.push(i.toString()); } for (var _i = 0; _i < 24; _i++) { hourOptions.push(_i.toString()); } for (var _i2 = 1; _i2 < 32; _i2++) { daysForMonOptions.push(_i2.toString()); } for (var _i3 = 1; _i3 < 13; _i3++) { monthOptions.push(_i3.toString()); } // for (let i = 1; i < 8; i++) { weekOptions.push(i.toString()); } var CRON = /*#__PURE__*/ function (_React$Component) { _inherits(CRON, _React$Component); function CRON(props) { var _this; _classCallCheck(this, CRON); _this = _possibleConstructorReturn(this, _getPrototypeOf(CRON).call(this, props)); _this.createChecks = function (data, radiochecked, radio) { return data.map(function (index) { return React__default.createElement(antd.Col, { key: index, span: data.length === 7 ? 3 : 4 }, React__default.createElement(antd.Checkbox, { disabled: radiochecked !== radio, value: index.toString() }, index)); }); }; _this.isShowDom = function (chartsType, arr) { return arr.includes(chartsType); }; _this.callback = function (key) { _this.setState({ TabsActiveKey: key }); }; _this.changeState = function (obj) { _this.setState(obj, function () { _this.creatCron(); }); }; _this.onSecondRadioChange = function (e) { var SecondRadiochecked = e.target.value; _this.setState({ SecondRadiochecked: SecondRadiochecked }); // eslint-disable-next-line default-case switch (SecondRadiochecked) { case 1: _this.changeState({ secondVal: '*' }); break; case 2: _this.changeState({ secondVal: "".concat(_this.state.secondCycleStart, "-").concat(_this.state.secondCycleEnd) }); break; case 3: _this.changeState({ secondVal: "".concat(_this.state.secondStart, "/").concat(_this.state.secondEvery) }); break; case 4: _this.changeState({ secondVal: _this.state.secondChecked }); break; } }; _this.secondCycleStart = function (value) { _this.setState({ secondCycleStart: value }); if (_this.state.SecondRadiochecked === 2) { _this.changeState({ secondVal: "".concat(value, "-").concat(_this.state.secondCycleEnd) }); } }; _this.secondCycleEnd = function (value) { _this.setState({ secondCycleEnd: value }); if (_this.state.SecondRadiochecked === 2) { _this.changeState({ secondVal: "".concat(_this.state.secondCycleStart, "-").concat(value) }); } }; _this.secondStart = function (value) { _this.setState({ secondStart: value }); if (_this.state.SecondRadiochecked === 3) { _this.changeState({ secondVal: "".concat(value, "/").concat(_this.state.secondEvery) }); } }; _this.secondEvery = function (value) { _this.setState({ secondEvery: value }); if (_this.state.SecondRadiochecked === 3) { _this.changeState({ secondVal: "".concat(_this.state.secondStart, "/").concat(value) }); } }; _this.onSecndcheckChange = function (checkedValues) { var secondChecked = checkedValues.length > 0 ? checkedValues.join(',') : '0'; _this.setState({ secondChecked: secondChecked }); if (_this.state.SecondRadiochecked === 4) { _this.changeState({ secondVal: secondChecked }); } }; _this.onMinuteRadioChange = function (e) { var minuteRadiochecked = e.target.value; _this.setState({ minuteRadiochecked: minuteRadiochecked }); // eslint-disable-next-line default-case switch (minuteRadiochecked) { case 1: _this.changeState({ minVal: '*' }); break; case 2: _this.changeState({ minVal: "".concat(_this.state.minuteCycleStart, "-").concat(_this.state.minuteCycleEnd) }); break; case 3: _this.changeState({ minVal: "".concat(_this.state.minuteStart, "/").concat(_this.state.minuteEvery) }); break; case 4: _this.changeState({ minVal: _this.state.minuteChecked }); break; } }; _this.minuteCycleStart = function (value) { _this.setState({ minuteCycleStart: value }); if (_this.state.minuteRadiochecked === 2) { _this.changeState({ minVal: "".concat(value, "-").concat(_this.state.minuteCycleEnd) }); } }; _this.minuteCycleEnd = function (value) { _this.setState({ minuteCycleEnd: value }); if (_this.state.minuteRadiochecked === 2) { _this.changeState({ minVal: "".concat(_this.state.minuteCycleStart, "-").concat(value) }); } }; _this.minuteStart = function (value) { _this.setState({ minuteStart: value }); if (_this.state.minuteRadiochecked === 3) { _this.changeState({ minVal: "".concat(value, "/").concat(_this.state.minuteEvery) }); } }; _this.minuteEvery = function (value) { _this.setState({ minuteEvery: value }); if (_this.state.minuteRadiochecked === 3) { _this.changeState({ minVal: "".concat(_this.state.minuteStart, "/").concat(value) }); } }; _this.onMinuteCheckChange = function (checkedValues) { var minuteChecked = checkedValues.length > 0 ? checkedValues.join(',') : '0'; _this.setState({ minuteChecked: minuteChecked }); if (_this.state.minuteRadiochecked === 4) { _this.changeState({ minVal: minuteChecked }); } }; _this.onHourRadioChange = function (e) { var hourRadiochecked = e.target.value; _this.setState({ hourRadiochecked: hourRadiochecked }); // eslint-disable-next-line default-case switch (hourRadiochecked) { case 1: _this.changeState({ hourVal: '*' }); break; case 2: _this.changeState({ hourVal: "".concat(_this.state.hourCycleStart, "-").concat(_this.state.hourCycleEnd) }); break; case 3: _this.changeState({ hourVal: "".concat(_this.state.hourStart, "/").concat(_this.state.hourEvery) }); break; case 4: _this.changeState({ hourVal: _this.state.hourChecked }); break; } }; _this.hourCycleStart = function (value) { _this.setState({ hourCycleStart: value }); if (_this.state.hourRadiochecked === 2) { _this.changeState({ hourVal: "".concat(value, "-").concat(_this.state.hourCycleEnd) }); } }; _this.hourCycleEnd = function (value) { _this.setState({ hourCycleEnd: value }); if (_this.state.hourRadiochecked === 2) { _this.changeState({ hourVal: "".concat(_this.state.hourCycleStart, "-").concat(value) }); } }; _this.hourStart = function (value) { _this.setState({ hourStart: value }); if (_this.state.hourRadiochecked === 3) { _this.changeState({ hourVal: "".concat(value, "/").concat(_this.state.hourEvery) }); } }; _this.hourEvery = function (value) { _this.setState({ hourEvery: value }); if (_this.state.hourRadiochecked === 3) { _this.changeState({ hourVal: "".concat(_this.state.hourStart, "/").concat(value) }); } }; _this.onHourCheckChange = function (checkedValues) { var hourChecked = checkedValues.length > 0 ? checkedValues.join(',') : '0'; _this.setState({ hourChecked: hourChecked }); if (_this.state.hourRadiochecked == 4) { _this.changeState({ hourVal: hourChecked }); } }; _this.onDaysRadioChange = function (e) { var daysRadiochecked = e.target.value; _this.setState({ daysRadiochecked: daysRadiochecked }); if (daysRadiochecked !== 2) { _this.changeState({ dayOfWekVal: '?', weekRadiochecked: 2 }); } // eslint-disable-next-line default-case switch (daysRadiochecked) { case 1: _this.changeState({ dayOfMonVal: '*' }); break; case 2: _this.changeState({ dayOfMonVal: '?' }); break; case 3: _this.changeState({ dayOfMonVal: "".concat(_this.state.daysCycleStart, "-").concat(_this.state.daysCycleEnd) }); break; case 4: _this.changeState({ dayOfMonVal: "".concat(_this.state.daysStart, "/").concat(_this.state.daysEvery) }); break; case 5: _this.changeState({ dayOfMonVal: "".concat(_this.state.daysForWorking, "W") }); break; case 6: _this.changeState({ dayOfMonVal: 'L' }); break; case 7: _this.changeState({ dayOfMonVal: _this.state.daysChecked }); break; } }; _this.daysCycleStart = function (value) { _this.setState({ daysCycleStart: value }); if (_this.state.daysRadiochecked == 3) { _this.changeState({ dayOfMonVal: "".concat(value, "-").concat(_this.state.daysCycleEnd) }); } }; _this.daysCycleEnd = function (value) { _this.setState({ daysCycleEnd: value }); if (_this.state.daysRadiochecked == 3) { _this.changeState({ dayOfMonVal: "".concat(_this.state.daysCycleStart, "-").concat(value) }); } }; _this.daysStart = function (value) { _this.setState({ daysStart: value }); if (_this.state.daysRadiochecked == 4) { _this.changeState({ dayOfMonVal: "".concat(value, "/").concat(_this.state.daysEvery) }); } }; _this.daysEvery = function (value) { _this.setState({ daysEvery: value }); if (_this.state.daysRadiochecked == 4) { _this.changeState({ dayOfMonVal: "".concat(_this.state.daysStart, "/").concat(value) }); } }; _this.daysForWorking = function (value) { _this.setState({ daysForWorking: value }); if (_this.state.daysRadiochecked == 5) { _this.setState({ dayOfMonVal: "".concat(value, "W") }); } }; _this.onDaysCheckChange = function (checkedValues) { var daysChecked = checkedValues.length > 0 ? checkedValues.join(',') : '1'; _this.setState({ daysChecked: daysChecked }); if (_this.state.daysRadiochecked == 7) { _this.changeState({ dayOfMonVal: daysChecked }); } }; _this.onMonthRadioChange = function (e) { var monthRadiochecked = e.target.value; _this.setState({ monthRadiochecked: monthRadiochecked }); // eslint-disable-next-line default-case switch (monthRadiochecked) { case 1: _this.changeState({ MonVal: '*' }); break; // case 2: this.changeState({ MonVal: '?' }); break; case 3: _this.changeState({ MonVal: "".concat(_this.state.monthCycleStart, "-").concat(_this.state.monthCycleEnd) }); break; case 4: _this.changeState({ MonVal: "".concat(_this.state.monthStart, "/").concat(_this.state.monthEvery) }); break; case 5: _this.changeState({ MonVal: _this.state.monthChecked }); break; } }; _this.monthCycleStart = function (value) { _this.setState({ monthCycleStart: value }); if (_this.state.monthRadiochecked === 3) { _this.changeState({ MonVal: "".concat(value, "-").concat(_this.state.monthCycleEnd) }); } }; _this.monthCycleEnd = function (value) { _this.setState({ monthCycleEnd: value }); if (_this.state.monthRadiochecked === 3) { _this.changeState({ MonVal: "".concat(_this.state.monthCycleStart, "-").concat(value) }); } }; _this.monthStart = function (value) { _this.setState({ monthStart: value }); if (_this.state.monthRadiochecked === 4) { _this.changeState({ MonVal: "".concat(value, "/").concat(_this.state.monthEvery) }); } }; _this.monthEvery = function (value) { _this.setState({ monthEvery: value }); if (_this.state.monthRadiochecked === 4) { _this.changeState({ MonVal: "".concat(_this.state.monthStart, "/").concat(value) }); } }; _this.onMonthCheckChange = function (checkedValues) { var monthChecked = checkedValues.length > 0 ? checkedValues.join(',') : '1'; _this.setState({ monthChecked: monthChecked }); if (_this.state.monthRadiochecked === 5) { _this.changeState({ MonVal: monthChecked }); } }; _this.onWeekRadioChange = function (e) { var weekRadiochecked = e.target.value; _this.setState({ weekRadiochecked: weekRadiochecked }); if (weekRadiochecked !== 2) { _this.changeState({ dayOfMonVal: '?', daysRadiochecked: 2 }); } // eslint-disable-next-line default-case switch (weekRadiochecked) { case 1: _this.changeState({ dayOfWekVal: '*' }); break; case 2: _this.changeState({ dayOfWekVal: '?' }); break; case 3: _this.changeState({ dayOfWekVal: "".concat(_this.state.weekCycleStart, "-").concat(_this.state.weekCycleEnd) }); break; case 4: _this.changeState({ dayOfWekVal: "".concat(_this.state.weekEvery, "#").concat(_this.state.weekStart) }); break; case 5: _this.changeState({ dayOfWekVal: "".concat(_this.state.weekEnd, "L") }); break; case 6: _this.changeState({ dayOfWekVal: _this.state.weekChecked }); break; } }; _this.weekCycleStart = function (value) { _this.setState({ weekCycleStart: value }); if (_this.state.weekRadiochecked === 3) { _this.changeState({ dayOfWekVal: "".concat(value, "-").concat(_this.state.weekCycleEnd) }); } }; _this.weekCycleEnd = function (value) { _this.setState({ weekCycleEnd: value }); if (_this.state.weekRadiochecked === 3) { _this.changeState({ dayOfWekVal: "".concat(_this.state.weekCycleStart, "-").concat(value) }); } }; _this.weekStart = function (value) { _this.setState({ weekStart: value }); if (_this.state.weekRadiochecked === 4) { _this.changeState({ dayOfWekVal: "".concat(_this.state.weekEvery, "#").concat(value) }); } }; _this.weekEvery = function (value) { _this.setState({ weekEvery: value }); if (_this.state.weekRadiochecked === 4) { _this.changeState({ dayOfWekVal: "".concat(value, "#").concat(_this.state.weekStart) }); } }; _this.changeweekEnd = function (value) { _this.setState({ weekEnd: value }); if (_this.state.weekRadiochecked === 5) { _this.changeState({ dayOfWekVal: "".concat(value, "L") }); } }; _this.onWeekCheckChange = function (checkedValues) { var weekChecked = checkedValues.length > 0 ? checkedValues.join(',') : 'MON'; _this.setState({ weekChecked: weekChecked }); if (_this.state.weekRadiochecked === 6) { _this.changeState({ dayOfWekVal: weekChecked }); } }; _this.onYearRadioChange = function (e) { var yearRadiochecked = e.target.value; _this.setState({ yearRadiochecked: yearRadiochecked }); // eslint-disable-next-line default-case switch (yearRadiochecked) { case 1: _this.setState({ yearVal: '' }); break; case 2: _this.setState({ yearVal: '*' }); break; case 3: _this.setState({ yearVal: "".concat(_this.state.yearCycleStart, "-").concat(_this.state.yearCycleEnd) }); break; } if (yearRadiochecked != 2) { var _this$state = _this.state, secondVal = _this$state.secondVal, minVal = _this$state.minVal, hourVal = _this$state.hourVal, dayOfMonVal = _this$state.dayOfMonVal, MonVal = _this$state.MonVal, dayOfWekVal = _this$state.dayOfWekVal; if (secondVal == '*') { _this.setState({ secondVal: '0' }); } if (minVal == '*') { _this.setState({ minVal: '0' }); } if (hourVal == '*') { _this.setState({ hourVal: '0' }); } if (dayOfMonVal == '*') { _this.setState({ dayOfMonVal: '0' }); } if (MonVal == '*') { _this.setState({ MonVal: '0' }); } if (dayOfWekVal == '*') { _this.setState({ dayOfWekVal: '?' }); } } }; _this.yearCycleStart = function (e) { if (_this.state.yearRadiochecked == 3) { _this.setState({ yearVal: "".concat(e.target.value, "-").concat(_this.state.yearCycleEnd) }); } _this.setState({ yearCycleStart: e.target.value }); }; _this.yearCycleEnd = function (e) { if (_this.state.yearRadiochecked == 3) { _this.setState({ yearVal: "".concat(_this.state.yearCycleStart, "-").concat(e.target.value) }); } _this.setState({ yearCycleEnd: e.target.value }); }; _this.creatCron = function () { var _this$state2 = _this.state, secondVal = _this$state2.secondVal, minVal = _this$state2.minVal, hourVal = _this$state2.hourVal, dayOfMonVal = _this$state2.dayOfMonVal, MonVal = _this$state2.MonVal, dayOfWekVal = _this$state2.dayOfWekVal, yearVal = _this$state2.yearVal; var str = "".concat(secondVal, " ").concat(minVal, " ").concat(hourVal, " ").concat(dayOfMonVal, " ").concat(MonVal, " ").concat(dayOfWekVal); var onChange = _this.props.onChange; if (onChange) { onChange(str); } }; var _value = props.value, _props$type = props.type, type = _props$type === void 0 ? ['minute', 'hour', 'day', 'month'] : _props$type; var values = _value && _value !== '' && cronValidate(_value) ? _value : '0 0 0 * * ?'; var cronArr = values.split(' '); var time = ['second', 'minute', 'hour', 'day', 'month', 'week']; var TabsActiveKey = 1; for (var _i4 = 0; _i4 < time.length; _i4++) { if (type.indexOf(time[_i4]) > -1) { TabsActiveKey = _i4 + 1; break; } } // 秒 var second = cronArr[0]; var secondCycleStart = 1; var secondCycleEnd = 1; var secondStart = 1; var secondEvery = 1; var _secondChecked = '0'; var _SecondRadiochecked = 1; if (second === '*') { _SecondRadiochecked = 1; } else if (second.indexOf('-') > -1) { _SecondRadiochecked = 2; var _second$split = second.split('-'); var _second$split2 = _slicedToArray(_second$split, 2); secondCycleStart = _second$split2[0]; secondCycleEnd = _second$split2[1]; } else if (second.indexOf('/') > -1) { _SecondRadiochecked = 3; var _second$split3 = second.split('/'); var _second$split4 = _slicedToArray(_second$split3, 2); secondStart = _second$split4[0]; secondEvery = _second$split4[1]; } else { _SecondRadiochecked = 4; _secondChecked = second; } // 分 var minute = cronArr[1]; var minuteCycleStart = 1; var minuteCycleEnd = 1; var minuteStart = 1; var minuteEvery = 1; var _minuteChecked = '0'; var _minuteRadiochecked = 1; if (minute === '*') { _minuteRadiochecked = 1; } else if (minute.indexOf('-') > -1) { _minuteRadiochecked = 2; var _minute$split = minute.split('-'); var _minute$split2 = _slicedToArray(_minute$split, 2); minuteCycleStart = _minute$split2[0]; minuteCycleEnd = _minute$split2[1]; } else if (minute.indexOf('/') > -1) { _minuteRadiochecked = 3; var _minute$split3 = minute.split('/'); var _minute$split4 = _slicedToArray(_minute$split3, 2); minuteStart = _minute$split4[0]; minuteEvery = _minute$split4[1]; } else { _minuteRadiochecked = 4; _minuteChecked = minute; } // 时 var hour = cronArr[2]; var hourCycleStart = 1; var hourCycleEnd = 1; var hourStart = 1; var hourEvery = 1; var _hourChecked = '0'; var _hourRadiochecked = 1; if (hour === '*') { _hourRadiochecked = 1; } else if (hour.indexOf('-') > -1) { _hourRadiochecked = 2; var _hour$split = hour.split('-'); var _hour$split2 = _slicedToArray(_hour$split, 2); hourCycleStart = _hour$split2[0]; hourCycleEnd = _hour$split2[1]; } else if (hour.indexOf('/') > -1) { _hourRadiochecked = 3; var _hour$split3 = hour.split('/'); var _hour$split4 = _slicedToArray(_hour$split3, 2); hourStart = _hour$split4[0]; hourEvery = _hour$split4[1]; } else { _hourRadiochecked = 4; _hourChecked = hour; } // 天 var day = cronArr[3]; var daysCycleStart = 1; var daysCycleEnd = 1; var daysStart = 1; var daysEvery = 1; var _daysChecked = '1'; var daysForWorking = 1; var _daysRadiochecked = 1; if (day === '*') { _daysRadiochecked = 1; } else if (day === '?') { _daysRadiochecked = 2; } else if (day.indexOf('-') > -1) { _daysRadiochecked = 3; var _day$split = day.split('-'); var _day$split2 = _slicedToArray(_day$split, 2); daysCycleStart = _day$split2[0]; daysCycleEnd = _day$split2[1]; } else if (day.indexOf('/') > -1) { _daysRadiochecked = 4; var _day$split3 = day.split('/'); var _day$split4 = _slicedToArray(_day$split3, 2); daysStart = _day$split4[0]; daysEvery = _day$split4[1]; } else if (day.indexOf('W') > -1) { _daysRadiochecked = 5; daysForWorking = day.slice(0, day.length - 1); } else if (day.indexOf('L') > -1) { _daysRadiochecked = 6; } else { _daysRadiochecked = 7; _daysChecked = day; } // 月 var month = cronArr[4]; var monthCycleStart = 1; var monthCycleEnd = 1; var monthStart = 1; var monthEvery = 1; var _monthChecked = '1'; var _monthRadiochecked = 1; if (month === '*') { _monthRadiochecked = 1; } else if (month.indexOf('-') > -1) { _monthRadiochecked = 3; var _month$split = month.split('-'); var _month$split2 = _slicedToArray(_month$split, 2); monthCycleStart = _month$split2[0]; monthCycleEnd = _month$split2[1]; } else if (month.indexOf('/') > -1) { _monthRadiochecked = 4; var _month$split3 = month.split('/'); var _month$split4 = _slicedToArray(_month$split3, 2); monthStart = _month$split4[0]; monthEvery = _month$split4[1]; } else { _monthRadiochecked = 5; _monthChecked = month; } // 周 var week = cronArr[5]; var weekCycleStart = 'MON'; var weekCycleEnd = 'MON'; var weekStart = 1; // 指定第几周 var weekEvery = 'MON'; // 指定星期几 var _weekChecked = 'MON'; var weekEnd = 'MON'; var _weekRadiochecked = 2; if (week === '*') { _weekRadiochecked = 1; } else if (week === '?') { _weekRadiochecked = 2; } else if (week.indexOf('-') > -1) { _weekRadiochecked = 3; var _week$split = week.split('-'); var _week$split2 = _slicedToArray(_week$split, 2); weekCycleStart = _week$split2[0]; weekCycleEnd = _week$split2[1]; } else if (week.indexOf('/') > -1) { _weekRadiochecked = 4; var _week$split3 = week.split('/'); var _week$split4 = _slicedToArray(_week$split3, 2); weekStart = _week$split4[0]; weekEvery = _week$split4[1]; } else if (week.indexOf('L') > -1) { _weekRadiochecked = 5; weekEnd = week.slice(0, week.length - 1); } else { _weekRadiochecked = 6; _weekChecked = week; } _this.state = { secondVal: second, // 秒 minVal: minute, // 分 hourVal: hour, // 时 dayOfMonVal: day, // 天 MonVal: month, // 月 dayOfWekVal: week, // 周 yearVal: '', // 年 secondCycleStart: secondCycleStart, // 周期开始 secondCycleEnd: secondCycleEnd, // 周期结束 secondStart: secondStart, // CRON-秒-几秒开始 secondEvery: secondEvery, // CRON-秒-每几秒执行一次 secondChecked: _secondChecked, // CRON-秒-默认指定多选 SecondRadiochecked: _SecondRadiochecked, // CRON-秒-单选按钮 minuteCycleStart: minuteCycleStart, // 分 minuteCycleEnd: minuteCycleEnd, minuteStart: minuteStart, minuteEvery: minuteEvery, minuteChecked: _minuteChecked, minuteRadiochecked: _minuteRadiochecked, hourCycleStart: hourCycleStart, hourCycleEnd: hourCycleEnd, hourStart: hourStart, hourEvery: hourEvery, hourChecked: _hourChecked, hourRadiochecked: _hourRadiochecked, daysCycleStart: daysCycleStart, daysCycleEnd: daysCycleEnd, daysStart: daysStart, daysEvery: daysEvery, daysChecked: _daysChecked, daysForWorking: daysForWorking, daysRadiochecked: _daysRadiochecked, monthCycleStart: monthCycleStart, monthCycleEnd: monthCycleEnd, monthStart: monthStart, monthEvery: monthEvery, monthChecked: _monthChecked, monthRadiochecked: _monthRadiochecked, weekCycleStart: weekCycleStart, weekCycleEnd: weekCycleEnd, weekStart: weekStart, // 第几周 weekEvery: weekEvery, // 星期几 weekChecked: _weekChecked, weekEnd: weekEnd, weekRadiochecked: _weekRadiochecked, yearCycleStart: '', yearCycleEnd: '', yearRadiochecked: 1, TabsActiveKey: TabsActiveKey, type: type }; return _this; } // 生成复选框 // eslint-disable-next-line react/sort-comp _createClass(CRON, [{ key: "render", value: function render() { var radioStyle = { display: 'block', height: '30px', lineHeight: '30px' }; var _this$state3 = this.state, _this$state3$SecondRa = _this$state3.SecondRadiochecked, SecondRadiochecked = _this$state3$SecondRa === void 0 ? '1' : _this$state3$SecondRa, secondCycleStart = _this$state3.secondCycleStart, secondCycleEnd = _this$state3.secondCycleEnd, secondStart = _this$state3.secondStart, secondEvery = _this$state3.secondEvery, secondChecked = _this$state3.secondChecked, minuteCycleStart = _this$state3.minuteCycleStart, minuteCycleEnd = _this$state3.minuteCycleEnd, minuteStart = _this$state3.minuteStart, minuteEvery = _this$state3.minuteEvery, minuteChecked = _this$state3.minuteChecked, minuteRadiochecked = _this$state3.minuteRadiochecked, hourCycleStart = _this$state3.hourCycleStart, hourCycleEnd = _this$state3.hourCycleEnd, hourStart = _this$state3.hourStart, hourEvery = _this$state3.hourEvery, hourChecked = _this$state3.hourChecked, hourRadiochecked = _this$state3.hourRadiochecked, daysCycleStart = _this$state3.daysCycleStart, daysCycleEnd = _this$state3.daysCycleEnd, daysStart = _this$state3.daysStart, daysEvery = _this$state3.daysEvery, daysChecked = _this$state3.daysChecked, daysForWorking = _this$state3.daysForWorking, daysRadiochecked = _this$state3.daysRadiochecked, monthCycleStart = _this$state3.monthCycleStart, monthCycleEnd = _this$state3.monthCycleEnd, monthStart = _this$state3.monthStart, monthEvery = _this$state3.monthEvery, monthChecked = _this$state3.monthChecked, monthRadiochecked = _this$state3.monthRadiochecked, weekCycleStart = _this$state3.weekCycleStart, weekCycleEnd = _this$state3.weekCycleEnd, weekStart = _this$state3.weekStart, weekEvery = _this$state3.weekEvery, weekChecked = _this$state3.weekChecked, weekEnd = _this$state3.weekEnd, weekRadiochecked = _this$state3.weekRadiochecked, TabsActiveKey = _this$state3.TabsActiveKey, type = _this$state3.type; var _this$props = this.props, _this$props$style = _this$props.style, style = _this$props$style === void 0 ? { width: 576 } : _this$props$style, className = _this$props.className, _this$props$lang = _this$props.lang, lang = _this$props$lang === void 0 ? "zh_CN" : _this$props$lang; var i18n = getI18n(lang); // 国际化 var Cls = classnames('cron', className); var children = weekOptions.map(function (w) { return React__default.createElement(Option, { key: w, value: w }, w); }); return React__default.createElement("div", { className: Cls, style: style }, React__default.createElement(antd.Tabs, { defaultActiveKey: String(TabsActiveKey), onChange: this.callback }, this.isShowDom('second', type) && React__default.createElement(TabPane, { tab: i18n.second, key: "1" }, React__default.createElement(RadioGroup, { name: "radiogroup", value: SecondRadiochecked, onChange: this.onSecondRadioChange }, React__default.createElement(antd.Radio, { style: radioStyle, value: 1 }, i18n.EverySecond), React__default.createElement(antd.Radio, { style: radioStyle, value: 2 }, i18n.from, " ", React__default.createElement(antd.InputNumber, { disabled: SecondRadiochecked !== 2, min: 0, max: 59, value: secondCycleStart, size: "small", onChange: this.secondCycleStart, style: { width: 100 } }), "\xA0- ", React__default.createElement(antd.InputNumber, { disabled: SecondRadiochecked !== 2, min: 0, max: 59, value: secondCycleEnd, size: "small", onChange: this.secondCycleEnd, style: { width: 100 } }), " ", i18n.second1), React__default.createElement(antd.Radio, { style: radioStyle, value: 3 }, i18n.from, " ", React__default.createElement(antd.InputNumber, { disabled: SecondRadiochecked !== 3, min: 0, max: 59, value: secondStart, size: "small", onChange: this.secondStart, style: { width: 100 } }), " ", i18n.secondstart, i18n.Every, " ", React__default.createElement(antd.InputNumber, { disabled: SecondRadiochecked !== 3, min: 0, max: 59, value: secondEvery, size: "small", onChange: this.secondEvery, style: { width: 100 } }), " ", i18n.second1, i18n.doOne), React__default.createElement(antd.Radio, { style: radioStyle, value: 4 }, i18n.appoint, React__default.createElement("br", null), React__default.createElement(CheckboxGroup, { value: secondChecked.split(','), style: { width: '100%' }, onChange: this.onSecndcheckChange }, React__default.createElement(antd.Row, null, " ", this.createChecks(options, SecondRadiochecked, 4), " "))))), this.isShowDom('minute', type) && React__default.createElement(TabPane, { tab: i18n.minute, key: "2" }, React__default.createElement(RadioGroup, { name: "radiogroup", value: minuteRadiochecked, onChange: this.onMinuteRadioChange }, React__default.createElement(antd.Radio, { style: radioStyle, value: 1 }, i18n.Everyminute), React__default.createElement(antd.Radio, { style: radioStyle, value: 2 }, i18n.from, " ", React__default.createElement(antd.InputNumber, { disabled: minuteRadiochecked !== 2, min: 0, max: 59, value: minuteCycleStart, size: "small", onChange: this.minuteCycleStart, style: { width: 100 } }), "\xA0- ", React__default.createElement(antd.InputNumber, { disabled: minuteRadiochecked !== 2, min: 0, max: 59, value: minuteCycleEnd, size: "small", onChange: this.minuteCycleEnd, style: { width: 100 } }), " ", i18n.minute1), React__default.createElement(antd.Radio, { style: radioStyle, value: 3 }, i18n.from, " ", React__default.createElement(antd.InputNumber, { disabled: minuteRadiochecked !== 3, min: 0, max: 59, value: minuteStart, size: "small", onChange: this.minuteStart, s