react-crons
Version:
react-cron 定时表达式
1,924 lines (1,586 loc) • 194 kB
JavaScript
'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