vue-cron-picker
Version:
CRON表达式选择器
3,265 lines • 91.3 kB
JavaScript
'use strict';function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
_defineProperty(target, key, source[key]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
return target;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null) return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_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 _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$8 = {
data: function data() {
return {
radioValue: 1,
cycle01: 1,
cycle02: 2,
average01: 0,
average02: 1,
checkboxList: [],
checkNum: this.$options.propsData.check
};
},
name: 'crontab-second',
props: ['check', 'radioParent'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
switch (this.radioValue) {
case 1:
this.$emit('update', 'second', '*', 'second');
break;
case 2:
this.$emit('update', 'second', this.cycleTotal);
break;
case 3:
this.$emit('update', 'second', this.averageTotal);
break;
case 4:
this.$emit('update', 'second', this.checkboxString);
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '2') {
this.$emit('update', 'second', this.cycleTotal);
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '3') {
this.$emit('update', 'second', this.averageTotal);
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '4') {
this.$emit('update', 'second', this.checkboxString);
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'checkboxString': 'checkboxChange',
radioParent: function radioParent() {
this.radioValue = this.radioParent;
}
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
var cycle01 = this.checkNum(this.cycle01, 0, 58);
var cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59);
return cycle01 + '-' + cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
var average01 = this.checkNum(this.average01, 0, 58);
var average02 = this.checkNum(this.average02, 1, 59 - average01 || 0);
return average01 + '/' + average02;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str == '' ? '*' : str;
}
}
};function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
if (typeof shadowMode !== 'boolean') {
createInjectorSSR = createInjector;
createInjector = shadowMode;
shadowMode = false;
}
// Vue.extend constructor export interop.
const options = typeof script === 'function' ? script.options : script;
// render functions
if (template && template.render) {
options.render = template.render;
options.staticRenderFns = template.staticRenderFns;
options._compiled = true;
// functional template
if (isFunctionalTemplate) {
options.functional = true;
}
}
// scopedId
if (scopeId) {
options._scopeId = scopeId;
}
let hook;
if (moduleIdentifier) {
// server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
// inject component styles
if (style) {
style.call(this, createInjectorSSR(context));
}
// register component module identifier for async chunk inference
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
};
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook;
}
else if (style) {
hook = shadowMode
? function (context) {
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
}
: function (context) {
style.call(this, createInjector(context));
};
}
if (hook) {
if (options.functional) {
// register for functional component in vue file
const originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
}
else {
// inject component registration as beforeCreate hook
const existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return script;
}/* script */
var __vue_script__$8 = script$8;
/* template */
var __vue_render__$8 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t秒,允许的通配符[, - * /]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 0,
"max": 58
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}), _vm._v(" -\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.cycle01 ? _vm.cycle01 + 1 : 1,
"max": 59
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
}), _vm._v(" 秒\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 0,
"max": 58
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 秒开始,每\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 59 - _vm.average01 || 0
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}), _vm._v(" 秒执行一次\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
staticStyle: {
"width": "100%"
},
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(60, function (item) {
return _c('el-option', {
key: item,
attrs: {
"value": item - 1
}
}, [_vm._v(_vm._s(item - 1))]);
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$8 = [];
/* style */
var __vue_inject_styles__$8 = undefined;
/* scoped */
var __vue_scope_id__$8 = undefined;
/* module identifier */
var __vue_module_identifier__$8 = "data-v-bdacb9f4";
/* functional template */
var __vue_is_functional_template__$8 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$8 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$8,
staticRenderFns: __vue_staticRenderFns__$8
}, __vue_inject_styles__$8, __vue_script__$8, __vue_scope_id__$8, __vue_is_functional_template__$8, __vue_module_identifier__$8, false, undefined, undefined, undefined);
var CrontabSecond = __vue_component__$8;//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$7 = {
data: function data() {
return {
radioValue: 1,
cycle01: 1,
cycle02: 2,
average01: 0,
average02: 1,
checkboxList: [],
checkNum: this.$options.propsData.check
};
},
name: 'crontab-min',
props: ['check', 'cron'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
switch (this.radioValue) {
case 1:
this.$emit('update', 'min', '*', 'min');
break;
case 2:
this.$emit('update', 'min', this.cycleTotal, 'min');
break;
case 3:
this.$emit('update', 'min', this.averageTotal, 'min');
break;
case 4:
this.$emit('update', 'min', this.checkboxString, 'min');
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '2') {
this.$emit('update', 'min', this.cycleTotal, 'min');
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '3') {
this.$emit('update', 'min', this.averageTotal, 'min');
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '4') {
this.$emit('update', 'min', this.checkboxString, 'min');
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'checkboxString': 'checkboxChange'
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
var cycle01 = this.checkNum(this.cycle01, 0, 58);
var cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 59);
return cycle01 + '-' + cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
var average01 = this.checkNum(this.average01, 0, 58);
var average02 = this.checkNum(this.average02, 1, 59 - average01 || 0);
return average01 + '/' + average02;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str == '' ? '*' : str;
}
}
};/* script */
var __vue_script__$7 = script$7;
/* template */
var __vue_render__$7 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t分钟,允许的通配符[, - * /]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 0,
"max": 58
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}), _vm._v(" -\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.cycle01 ? _vm.cycle01 + 1 : 1,
"max": 59
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
}), _vm._v(" 分钟\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 0,
"max": 58
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 分钟开始,每\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 59 - _vm.average01 || 0
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}), _vm._v(" 分钟执行一次\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
staticStyle: {
"width": "100%"
},
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(60, function (item) {
return _c('el-option', {
key: item,
attrs: {
"value": item - 1
}
}, [_vm._v(_vm._s(item - 1))]);
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$7 = [];
/* style */
var __vue_inject_styles__$7 = undefined;
/* scoped */
var __vue_scope_id__$7 = undefined;
/* module identifier */
var __vue_module_identifier__$7 = "data-v-7e81cf2b";
/* functional template */
var __vue_is_functional_template__$7 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$7 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$7,
staticRenderFns: __vue_staticRenderFns__$7
}, __vue_inject_styles__$7, __vue_script__$7, __vue_scope_id__$7, __vue_is_functional_template__$7, __vue_module_identifier__$7, false, undefined, undefined, undefined);
var CrontabMin = __vue_component__$7;//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$6 = {
data: function data() {
return {
radioValue: 1,
cycle01: 0,
cycle02: 1,
average01: 0,
average02: 1,
checkboxList: [],
checkNum: this.$options.propsData.check
};
},
name: 'crontab-hour',
props: ['check', 'cron'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
switch (this.radioValue) {
case 1:
this.$emit('update', 'hour', '*');
break;
case 2:
this.$emit('update', 'hour', this.cycleTotal);
break;
case 3:
this.$emit('update', 'hour', this.averageTotal);
break;
case 4:
this.$emit('update', 'hour', this.checkboxString);
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '2') {
this.$emit('update', 'hour', this.cycleTotal);
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '3') {
this.$emit('update', 'hour', this.averageTotal);
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '4') {
this.$emit('update', 'hour', this.checkboxString);
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'checkboxString': 'checkboxChange'
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
var cycle01 = this.checkNum(this.cycle01, 0, 22);
var cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 1, 23);
return cycle01 + '-' + cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
var average01 = this.checkNum(this.average01, 0, 22);
var average02 = this.checkNum(this.average02, 1, 23 - average01 || 0);
return average01 + '/' + average02;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str == '' ? '*' : str;
}
}
};/* script */
var __vue_script__$6 = script$6;
/* template */
var __vue_render__$6 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t小时,允许的通配符[, - * /]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 0,
"max": 22
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}), _vm._v(" -\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.cycle01 ? _vm.cycle01 + 1 : 1,
"max": 23
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
}), _vm._v(" 小时\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 0,
"max": 22
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 小时开始,每\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 23 - _vm.average01 || 0
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}), _vm._v(" 小时执行一次\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
staticStyle: {
"width": "100%"
},
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(24, function (item) {
return _c('el-option', {
key: item,
attrs: {
"value": item - 1
}
}, [_vm._v(_vm._s(item - 1))]);
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$6 = [];
/* style */
var __vue_inject_styles__$6 = undefined;
/* scoped */
var __vue_scope_id__$6 = undefined;
/* module identifier */
var __vue_module_identifier__$6 = "data-v-59e875af";
/* functional template */
var __vue_is_functional_template__$6 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$6 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$6,
staticRenderFns: __vue_staticRenderFns__$6
}, __vue_inject_styles__$6, __vue_script__$6, __vue_scope_id__$6, __vue_is_functional_template__$6, __vue_module_identifier__$6, false, undefined, undefined, undefined);
var CrontabHour = __vue_component__$6;//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$5 = {
data: function data() {
return {
radioValue: 1,
workday: 1,
cycle01: 1,
cycle02: 2,
average01: 1,
average02: 1,
checkboxList: [],
checkNum: this.$options.propsData.check
};
},
name: 'crontab-day',
props: ['check', 'cron'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
'day rachange';
if (this.radioValue !== 2 && this.cron.week !== '?') {
this.$emit('update', 'week', '?', 'day');
}
switch (this.radioValue) {
case 1:
this.$emit('update', 'day', '*');
break;
case 2:
this.$emit('update', 'day', '?');
break;
case 3:
this.$emit('update', 'day', this.cycleTotal);
break;
case 4:
this.$emit('update', 'day', this.averageTotal);
break;
case 5:
this.$emit('update', 'day', this.workday + 'W');
break;
case 6:
this.$emit('update', 'day', 'L');
break;
case 7:
this.$emit('update', 'day', this.checkboxString);
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '3') {
this.$emit('update', 'day', this.cycleTotal);
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '4') {
this.$emit('update', 'day', this.averageTotal);
}
},
// 最近工作日值变化时
workdayChange: function workdayChange() {
if (this.radioValue == '5') {
this.$emit('update', 'day', this.workdayCheck + 'W');
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '7') {
this.$emit('update', 'day', this.checkboxString);
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'workdayCheck': 'workdayChange',
'checkboxString': 'checkboxChange'
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
var cycle01 = this.checkNum(this.cycle01, 1, 30);
var cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 31, 31);
return cycle01 + '-' + cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
var average01 = this.checkNum(this.average01, 1, 30);
var average02 = this.checkNum(this.average02, 1, 31 - average01 || 0);
return average01 + '/' + average02;
},
// 计算工作日格式
workdayCheck: function workdayCheck() {
var workday = this.checkNum(this.workday, 1, 31);
return workday;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str == '' ? '*' : str;
}
}
};/* script */
var __vue_script__$5 = script$5;
/* template */
var __vue_render__$5 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t日,允许的通配符[, - * ? / L W]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t不指定\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 30
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}), _vm._v(" -\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.cycle01 ? _vm.cycle01 + 1 : 2,
"max": 31
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
}), _vm._v(" 日\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 30
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 号开始,每\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 31 - _vm.average01 || 1
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}), _vm._v(" 日执行一次\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 5
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t每月\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 31
},
model: {
value: _vm.workday,
callback: function callback($$v) {
_vm.workday = $$v;
},
expression: "workday"
}
}), _vm._v(" 号最近的那个工作日\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 6
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t本月最后一天\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 7
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
staticStyle: {
"width": "100%"
},
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(31, function (item) {
return _c('el-option', {
key: item,
attrs: {
"value": item
}
}, [_vm._v(_vm._s(item))]);
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$5 = [];
/* style */
var __vue_inject_styles__$5 = undefined;
/* scoped */
var __vue_scope_id__$5 = undefined;
/* module identifier */
var __vue_module_identifier__$5 = "data-v-41f3a8cb";
/* functional template */
var __vue_is_functional_template__$5 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$5 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$5,
staticRenderFns: __vue_staticRenderFns__$5
}, __vue_inject_styles__$5, __vue_script__$5, __vue_scope_id__$5, __vue_is_functional_template__$5, __vue_module_identifier__$5, false, undefined, undefined, undefined);
var CrontabDay = __vue_component__$5;//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$4 = {
data: function data() {
return {
radioValue: 1,
cycle01: 1,
cycle02: 2,
average01: 1,
average02: 1,
checkboxList: [],
checkNum: this.check
};
},
name: 'crontab-month',
props: ['check', 'cron'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
switch (this.radioValue) {
case 1:
this.$emit('update', 'month', '*');
break;
case 2:
this.$emit('update', 'month', this.cycleTotal);
break;
case 3:
this.$emit('update', 'month', this.averageTotal);
break;
case 4:
this.$emit('update', 'month', this.checkboxString);
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '2') {
this.$emit('update', 'month', this.cycleTotal);
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '3') {
this.$emit('update', 'month', this.averageTotal);
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '4') {
this.$emit('update', 'month', this.checkboxString);
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'checkboxString': 'checkboxChange'
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
var cycle01 = this.checkNum(this.cycle01, 1, 11);
var cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : 2, 12);
return cycle01 + '-' + cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
var average01 = this.checkNum(this.average01, 1, 11);
var average02 = this.checkNum(this.average02, 1, 12 - average01 || 0);
return average01 + '/' + average02;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str == '' ? '*' : str;
}
}
};/* script */
var __vue_script__$4 = script$4;
/* template */
var __vue_render__$4 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t月,允许的通配符[, - * /]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 11
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}), _vm._v(" -\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.cycle01 ? _vm.cycle01 + 1 : 2,
"max": 12
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
}), _vm._v(" 月\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 11
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 月开始,每\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 12 - _vm.average01 || 0
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}), _vm._v(" 月月执行一次\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
staticStyle: {
"width": "100%"
},
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(12, function (item) {
return _c('el-option', {
key: item,
attrs: {
"value": item
}
}, [_vm._v(_vm._s(item))]);
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$4 = [];
/* style */
var __vue_inject_styles__$4 = undefined;
/* scoped */
var __vue_scope_id__$4 = undefined;
/* module identifier */
var __vue_module_identifier__$4 = "data-v-191493c0";
/* functional template */
var __vue_is_functional_template__$4 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$4 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$4,
staticRenderFns: __vue_staticRenderFns__$4
}, __vue_inject_styles__$4, __vue_script__$4, __vue_scope_id__$4, __vue_is_functional_template__$4, __vue_module_identifier__$4, false, undefined, undefined, undefined);
var CrontabMonth = __vue_component__$4;//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$3 = {
data: function data() {
return {
radioValue: 2,
weekday: 2,
cycle01: 2,
cycle02: 3,
average01: 1,
average02: 2,
checkboxList: [],
weekList: [{
key: 2,
value: '星期一'
}, {
key: 3,
value: '星期二'
}, {
key: 4,
value: '星期三'
}, {
key: 5,
value: '星期四'
}, {
key: 6,
value: '星期五'
}, {
key: 7,
value: '星期六'
}, {
key: 1,
value: '星期日'
}],
checkNum: this.$options.propsData.check
};
},
name: 'crontab-week',
props: ['check', 'cron'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
if (this.radioValue !== 2 && this.cron.day !== '?') {
this.$emit('update', 'day', '?', 'week');
}
switch (this.radioValue) {
case 1:
this.$emit('update', 'week', '*');
break;
case 2:
this.$emit('update', 'week', '?');
break;
case 3:
this.$emit('update', 'week', this.cycleTotal);
break;
case 4:
this.$emit('update', 'week', this.averageTotal);
break;
case 5:
this.$emit('update', 'week', this.weekdayCheck + 'L');
break;
case 6:
this.$emit('update', 'week', this.checkboxString);
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '3') {
this.$emit('update', 'week', this.cycleTotal);
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '4') {
this.$emit('update', 'week', this.averageTotal);
}
},
// 最近工作日值变化时
weekdayChange: function weekdayChange() {
if (this.radioValue == '5') {
this.$emit('update', 'week', this.weekday + 'L');
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '6') {
this.$emit('update', 'week', this.checkboxString);
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'weekdayCheck': 'weekdayChange',
'checkboxString': 'checkboxChange'
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
this.cycle01 = this.checkNum(this.cycle01, 1, 7);
this.cycle02 = this.checkNum(this.cycle02, 1, 7);
return this.cycle01 + '-' + this.cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
this.average01 = this.checkNum(this.average01, 1, 4);
this.average02 = this.checkNum(this.average02, 1, 7);
return this.average02 + '#' + this.average01;
},
// 最近的工作日(格式)
weekdayCheck: function weekdayCheck() {
this.weekday = this.checkNum(this.weekday, 1, 7);
return this.weekday;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str == '' ? '*' : str;
}
}
};/* script */
var __vue_script__$3 = script$3;
/* template */
var __vue_render__$3 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周,允许的通配符[, - * ? / L #]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t不指定\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从星期\n\t\t\t"), _c('el-select', {
attrs: {
"clearable": ""
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}, _vm._l(_vm.weekList, function (item, index) {
return _c('el-option', {
key: index,
attrs: {
"label": item.value,
"value": item.key,
"disabled": item.key === 1
}
}, [_vm._v(_vm._s(item.value))]);
}), 1), _vm._v("\n\t\t\t-\n\t\t\t"), _c('el-select', {
attrs: {
"clearable": ""
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
}, _vm._l(_vm.weekList, function (item, index) {
return _c('el-option', {
key: index,
attrs: {
"label": item.value,
"value": item.key,
"disabled": item.key < _vm.cycle01 && item.key !== 1
}
}, [_vm._v(_vm._s(item.value))]);
}), 1)], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t第\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 4
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 周的星期\n\t\t\t"), _c('el-select', {
attrs: {
"clearable": ""
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}, _vm._l(_vm.weekList, function (item, index) {
return _c('el-option', {
key: index,
attrs: {
"label": item.value,
"value": item.key
}
}, [_vm._v(_vm._s(item.value))]);
}), 1)], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 5
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t本月最后一个星期\n\t\t\t"), _c('el-select', {
attrs: {
"clearable": ""
},
model: {
value: _vm.weekday,
callback: function callback($$v) {
_vm.weekday = $$v;
},
expression: "weekday"
}
}, _vm._l(_vm.weekList, function (item, index) {
return _c('el-option', {
key: index,
attrs: {
"label": item.value,
"value": item.key
}
}, [_vm._v(_vm._s(item.value))]);
}), 1)], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 6
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
staticStyle: {
"width": "100%"
},
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(_vm.weekList, function (item, index) {
return _c('el-option', {
key: index,
attrs: {
"label": item.value,
"value": String(item.key)
}
}, [_vm._v(_vm._s(item.value))]);
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$3 = [];
/* style */
var __vue_inject_styles__$3 = undefined;
/* scoped */
var __vue_scope_id__$3 = undefined;
/* module identifier */
var __vue_module_identifier__$3 = "data-v-7b5b0207";
/* functional template */
var __vue_is_functional_template__$3 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$3 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$3,
staticRenderFns: __vue_staticRenderFns__$3
}, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);
var CrontabWeek = __vue_component__$3;//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$2 = {
data: function data() {
return {
fullYear: 0,
radioValue: 1,
cycle01: 0,
cycle02: 0,
average01: 0,
average02: 1,
checkboxList: [],
checkNum: this.$options.propsData.check
};
},
name: 'crontab-year',
props: ['check', 'month', 'cron'],
methods: {
// 单选按钮值变化时
radioChange: function radioChange() {
switch (this.radioValue) {
case 1:
this.$emit('update', 'year', '');
break;
case 2:
this.$emit('update', 'year', '*');
break;
case 3:
this.$emit('update', 'year', this.cycleTotal);
break;
case 4:
this.$emit('update', 'year', this.averageTotal);
break;
case 5:
this.$emit('update', 'year', this.checkboxString);
break;
}
},
// 周期两个值变化时
cycleChange: function cycleChange() {
if (this.radioValue == '3') {
this.$emit('update', 'year', this.cycleTotal);
}
},
// 平均两个值变化时
averageChange: function averageChange() {
if (this.radioValue == '4') {
this.$emit('update', 'year', this.averageTotal);
}
},
// checkbox值变化时
checkboxChange: function checkboxChange() {
if (this.radioValue == '5') {
this.$emit('update', 'year', this.checkboxString);
}
}
},
watch: {
'radioValue': 'radioChange',
'cycleTotal': 'cycleChange',
'averageTotal': 'averageChange',
'checkboxString': 'checkboxChange'
},
computed: {
// 计算两个周期值
cycleTotal: function cycleTotal() {
var cycle01 = this.checkNum(this.cycle01, this.fullYear, 2098);
var cycle02 = this.checkNum(this.cycle02, cycle01 ? cycle01 + 1 : this.fullYear + 1, 2099);
return cycle01 + '-' + cycle02;
},
// 计算平均用到的值
averageTotal: function averageTotal() {
var average01 = this.checkNum(this.average01, this.fullYear, 2098);
var average02 = this.checkNum(this.average02, 1, 2099 - average01 || this.fullYear);
return average01 + '/' + average02;
},
// 计算勾选的checkbox值合集
checkboxString: function checkboxString() {
var str = this.checkboxList.join();
return str;
}
},
mounted: function mounted() {
// 仅获取当前年份
this.fullYear = Number(new Date().getFullYear());
this.cycle01 = this.fullYear;
this.average01 = this.fullYear;
}
};/* script */
var __vue_script__$2 = script$2;
/* template */
var __vue_render__$2 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('el-form', {
attrs: {
"size": "small"
}
}, [_c('el-form-item', [_c('el-radio', {
attrs: {
"label": 1
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t不填,允许的通配符[, - * /]\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 2
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t每年\n\t\t")])], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 3
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t周期从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.fullYear,
"max": 2098
},
model: {
value: _vm.cycle01,
callback: function callback($$v) {
_vm.cycle01 = $$v;
},
expression: "cycle01"
}
}), _vm._v(" -\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.cycle01 ? _vm.cycle01 + 1 : _vm.fullYear + 1,
"max": 2099
},
model: {
value: _vm.cycle02,
callback: function callback($$v) {
_vm.cycle02 = $$v;
},
expression: "cycle02"
}
})], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 4
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t从\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": _vm.fullYear,
"max": 2098
},
model: {
value: _vm.average01,
callback: function callback($$v) {
_vm.average01 = $$v;
},
expression: "average01"
}
}), _vm._v(" 年开始,每\n\t\t\t"), _c('el-input-number', {
attrs: {
"min": 1,
"max": 2099 - _vm.average01 || _vm.fullYear
},
model: {
value: _vm.average02,
callback: function callback($$v) {
_vm.average02 = $$v;
},
expression: "average02"
}
}), _vm._v(" 年执行一次\n\t\t")], 1)], 1), _vm._v(" "), _c('el-form-item', [_c('el-radio', {
attrs: {
"label": 5
},
model: {
value: _vm.radioValue,
callback: function callback($$v) {
_vm.radioValue = $$v;
},
expression: "radioValue"
}
}, [_vm._v("\n\t\t\t指定\n\t\t\t"), _c('el-select', {
attrs: {
"clearable": "",
"placeholder": "可多选",
"multiple": ""
},
model: {
value: _vm.checkboxList,
callback: function callback($$v) {
_vm.checkboxList = $$v;
},
expression: "checkboxList"
}
}, _vm._l(9, function (item) {
return _c('el-option', {
key: item,
attrs: {
"value": item - 1 + _vm.fullYear,
"label": item - 1 + _vm.fullYear
}
});
}), 1)], 1)], 1)], 1);
};
var __vue_staticRenderFns__$2 = [];
/* style */
var __vue_inject_styles__$2 = undefined;
/* scoped */
var __vue_scope_id__$2 = undefined;
/* module identifier */
var __vue_module_identifier__$2 = "data-v-dee0085c";
/* functional template */
var __vue_is_functional_template__$2 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$2 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$2,
staticRenderFns: __vue_staticRenderFns__$2
}, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);
var CrontabYear = __vue_component__$2;//
//
//
//
//
//
//
//
//
//
//
//
var script$1 = {
data: function data() {
return {
dayRule: '',
dayRuleSup: '',
dateArr: [],
resultList: [],
isShow: false
};
},
name: 'crontab-result',
methods: {
// 表达式值变化时,开始去计算结果
expressionChange: function expressionChange() {
// 计算开始-隐藏结果
this.isShow = false;
// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
var ruleArr = this.$options.propsData.ex.split(' ');
// 用于记录进入循环的次数
var nums = 0;
// 用于暂时存符号时间规则结果的数组
var resultArr = [];
// 获取当前时间精确至[年、月、日、时、分、秒]
var nTime = new Date();
var nYear = nTime.getFullYear();
var nMonth = nTime.getMonth() + 1;
var nDay = nTime.getDate();
var nHour = nTime.getHours();
var nMin = nTime.getMinutes();
var nSecond = nTime.getSeconds();
// 根据规则获取到近100年可能年数组、月数组等等
this.getSecondArr(ruleArr[0]);
this.getMinArr(ruleArr[1]);
this.getHourArr(ruleArr[2]);
this.getDayArr(ruleArr[3]);
this.getMonthArr(ruleArr[4]);
this.getWeekArr(ruleArr[5]);
this.getYearArr(ruleArr[6], nYear);
// 将获取到的数组赋值-方便使用
var sDate = this.dateArr[0];
var mDate = this.dateArr[1];
var hDate = this.dateArr[2];
var DDate = this.dateArr[3];
var MDate = this.dateArr[4];
var YDate = this.dateArr[5];
// 获取当前时间在数组中的索引
var sIdx = this.getIndex(sDate, nSecond);
var mIdx = this.getIndex(mDate, nMin);
var hIdx = this.getIndex(hDate, nHour);
var DIdx = this.getIndex(DDate, nDay);
var MIdx = this.getIndex(MDate, nMonth);
var YIdx = this.getIndex(YDate, nYear);
// 重置月日时分秒的函数(后面用的比较多)
var resetSecond = function resetSecond() {
sIdx = 0;
nSecond = sDate[sIdx];
};
var resetMin = function resetMin() {
mIdx = 0;
nMin = mDate[mIdx];
resetSecond();
};
var resetHour = function resetHour() {
hIdx = 0;
nHour = hDate[hIdx];
resetMin();
};
var resetDay = function resetDay() {
DIdx = 0;
nDay = DDate[DIdx];
resetHour();
};
var resetMonth = function resetMonth() {
MIdx = 0;
nMonth = MDate[MIdx];
resetDay();
};
// 如果当前年份不为数组中当前值
if (nYear !== YDate[YIdx]) {
resetMonth();
}
// 如果当前月份不为数组中当前值
if (nMonth !== MDate[MIdx]) {
resetDay();
}
// 如果当前“日”不为数组中当前值
if (nDay !== DDate[DIdx]) {
resetHour();
}
// 如果当前“时”不为数组中当前值
if (nHour !== hDate[hIdx]) {
resetMin();
}
// 如果当前“分”不为数组中当前值
if (nMin !== mDate[mIdx]) {
resetSecond();
}
// 循环年份数组
goYear: for (var Yi = YIdx; Yi < YDate.length; Yi++) {
var YY = YDate[Yi];
// 如果到达最大值时
if (nMonth > MDate[MDate.length - 1]) {
resetMonth();
continue;
}
// 循环月份数组
goMonth: for (var Mi = MIdx; Mi < MDate.length; Mi++) {
// 赋值、方便后面运算
var MM = MDate[Mi];
MM = MM < 10 ? '0' + MM : MM;
// 如果到达最大值时
if (nDay > DDate[DDate.length - 1]) {
resetDay();
if (Mi == MDate.length - 1) {
resetMonth();
continue goYear;
}
continue;
}
// 循环日期数组
goDay: for (var Di = DIdx; Di < DDate.length; Di++) {
// 赋值、方便后面运算
var DD = DDate[Di];
var thisDD = DD < 10 ? '0' + DD : DD;
// 如果到达最大值时
if (nHour > hDate[hDate.length - 1]) {
resetHour();
if (Di == DDate.length - 1) {
resetDay();
if (Mi == MDate.length - 1) {
resetMonth();
continue goYear;
}
continue goMonth;
}
continue;
}
// 判断日期的合法性,不合法的话也是跳出当前循环
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && this.dayRule !== 'workDay' && this.dayRule !== 'lastWeek' && this.dayRule !== 'lastDay') {
resetDay();
continue goMonth;
}
// 如果日期规则中有值时
if (this.dayRule == 'lastDay') {
// 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
DD--;
thisDD = DD < 10 ? '0' + DD : DD;
}
}
} else if (this.dayRule == 'workDay') {
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
DD--;
thisDD = DD < 10 ? '0' + DD : DD;
}
}
// 获取达到条件的日期是星期X
var thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
// 当星期日时
if (thisWeek == 1) {
// 先找下一个日,并判断是否为月底
DD++;
thisDD = DD < 10 ? '0' + DD : DD;
// 判断下一日已经不是合法日期
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
DD -= 3;
}
} else if (thisWeek == 7) {
// 当星期6时只需判断不是1号就可进行操作
if (this.dayRuleSup !== 1) {
DD--;
} else {
DD += 2;
}
}
} else if (this.dayRule == 'weekDay') {
// 如果指定了是星期几
// 获取当前日期是属于星期几
var _thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
// 校验当前星期是否在星期池(dayRuleSup)中
if (this.dayRuleSup.indexOf(_thisWeek) < 0) {
// 如果到达最大值时
if (Di == DDate.length - 1) {
resetDay();
if (Mi == MDate.length - 1) {
resetMonth();
continue goYear;
}
continue goMonth;
}
continue;
}
} else if (this.dayRule == 'assWeek') {
// 如果指定了是第几周的星期几
// 获取每月1号是属于星期几
var _thisWeek2 = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
if (this.dayRuleSup[1] >= _thisWeek2) {
DD = (this.dayRuleSup[0] - 1) * 7 + this.dayRuleSup[1] - _thisWeek2 + 1;
} else {
DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - _thisWeek2 + 1;
}
} else if (this.dayRule == 'lastWeek') {
// 如果指定了每月最后一个星期几
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
DD--;
thisDD = DD < 10 ? '0' + DD : DD;
}
}
// 获取月末最后一天是星期几
var _thisWeek3 = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
// 找到要求中最近的那个星期几
if (this.dayRuleSup < _thisWeek3) {
DD -= _thisWeek3 - this.dayRuleSup;
} else if (this.dayRuleSup > _thisWeek3) {
DD -= 7 - (this.dayRuleSup - _thisWeek3);
}
}
// 判断时间值是否小于10置换成“05”这种格式
DD = DD < 10 ? '0' + DD : DD;
// 循环“时”数组
goHour: for (var hi = hIdx; hi < hDate.length; hi++) {
var hh = hDate[hi] < 10 ? '0' + hDate[hi] : hDate[hi];
// 如果到达最大值时
if (nMin > mDate[mDate.length - 1]) {
resetMin();
if (hi == hDate.length - 1) {
resetHour();
if (Di == DDate.length - 1) {
resetDay();
if (Mi == MDate.length - 1) {
resetMonth();
continue goYear;
}
continue goMonth;
}
continue goDay;
}
continue;
}
// 循环"分"数组
goMin: for (var mi = mIdx; mi < mDate.length; mi++) {
var mm = mDate[mi] < 10 ? '0' + mDate[mi] : mDate[mi];
// 如果到达最大值时
if (nSecond > sDate[sDate.length - 1]) {
resetSecond();
if (mi == mDate.length - 1) {
resetMin();
if (hi == hDate.length - 1) {
resetHour();
if (Di == DDate.length - 1) {
resetDay();
if (Mi == MDate.length - 1) {
resetMonth();
continue goYear;
}
continue goMonth;
}
continue goDay;
}
continue goHour;
}
continue;
}
// 循环"秒"数组
for (var si = sIdx; si <= sDate.length - 1; si++) {
var ss = sDate[si] < 10 ? '0' + sDate[si] : sDate[si];
// 添加当前时间(时间合法性在日期循环时已经判断)
if (MM !== '00' && DD !== '00') {
resultArr.push(YY + '-' + MM + '-' + DD + ' ' + hh + ':' + mm + ':' + ss);
nums++;
}
// 如果条数满了就退出循环
if (nums == 5) break goYear;
// 如果到达最大值时
if (si == sDate.length - 1) {
resetSecond();
if (mi == mDate.length - 1) {
resetMin();
if (hi == hDate.length - 1) {
resetHour();
if (Di == DDate.length - 1) {
resetDay();
if (Mi == MDate.length - 1) {
resetMonth();
continue goYear;
}
continue goMonth;
}
continue goDay;
}
continue goHour;
}
continue goMin;
}
} //goSecond
} //goMin
} //goHour
} //goDay
} //goMonth
}
// 判断100年内的结果条数
if (resultArr.length == 0) {
this.resultList = ['没有达到条件的结果!'];
} else {
this.resultList = resultArr;
if (resultArr.length !== 5) {
this.resultList.push('最近100年内只有上面' + resultArr.length + '条结果!');
}
}
// 计算完成-显示结果
this.isShow = true;
},
// 用于计算某位数字在数组中的索引
getIndex: function getIndex(arr, value) {
if (value <= arr[0] || value > arr[arr.length - 1]) {
return 0;
} else {
for (var i = 0; i < arr.length - 1; i++) {
if (value > arr[i] && value <= arr[i + 1]) {
return i + 1;
}
}
}
},
// 获取"年"数组
getYearArr: function getYearArr(rule, year) {
this.dateArr[5] = this.getOrderArr(year, year + 100);
if (rule !== undefined) {
if (rule.indexOf('-') >= 0) {
this.dateArr[5] = this.getCycleArr(rule, year + 100, false);
} else if (rule.indexOf('/') >= 0) {
this.dateArr[5] = this.getAverageArr(rule, year + 100);
} else if (rule !== '*') {
this.dateArr[5] = this.getAssignArr(rule);
}
}
},
// 获取"月"数组
getMonthArr: function getMonthArr(rule) {
this.dateArr[4] = this.getOrderArr(1, 12);
if (rule.indexOf('-') >= 0) {
this.dateArr[4] = this.getCycleArr(rule, 12, false);
} else if (rule.indexOf('/') >= 0) {
this.dateArr[4] = this.getAverageArr(rule, 12);
} else if (rule !== '*') {
this.dateArr[4] = this.getAssignArr(rule);
}
},
// 获取"日"数组-主要为日期规则
getWeekArr: function getWeekArr(rule) {
// 只有当日期规则的两个值均为“”时则表达日期是有选项的
if (this.dayRule == '' && this.dayRuleSup == '') {
if (rule.indexOf('-') >= 0) {
this.dayRule = 'weekDay';
this.dayRuleSup = this.getCycleArr(rule, 7, false);
} else if (rule.indexOf('#') >= 0) {
this.dayRule = 'assWeek';
var matchRule = rule.match(/[0-9]{1}/g);
this.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])];
this.dateArr[3] = [1];
if (this.dayRuleSup[1] == 7) {
this.dayRuleSup[1] = 0;
}
} else if (rule.indexOf('L') >= 0) {
this.dayRule = 'lastWeek';
this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
this.dateArr[3] = [31];
if (this.dayRuleSup == 7) {
this.dayRuleSup = 0;
}
} else if (rule !== '*' && rule !== '?') {
this.dayRule = 'weekDay';
this.dayRuleSup = this.getAssignArr(rule);
}
}
},
// 获取"日"数组-少量为日期规则
getDayArr: function getDayArr(rule) {
this.dateArr[3] = this.getOrderArr(1, 31);
this.dayRule = '';
this.dayRuleSup = '';
if (rule.indexOf('-') >= 0) {
this.dateArr[3] = this.getCycleArr(rule, 31, false);
this.dayRuleSup = 'null';
} else if (rule.indexOf('/') >= 0) {
this.dateArr[3] = this.getAverageArr(rule, 31);
this.dayRuleSup = 'null';
} else if (rule.indexOf('W') >= 0) {
this.dayRule = 'workDay';
this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
this.dateArr[3] = [this.dayRuleSup];
} else if (rule.indexOf('L') >= 0) {
this.dayRule = 'lastDay';
this.dayRuleSup = 'null';
this.dateArr[3] = [31];
} else if (rule !== '*' && rule !== '?') {
this.dateArr[3] = this.getAssignArr(rule);
this.dayRuleSup = 'null';
} else if (rule == '*') {
this.dayRuleSup = 'null';
}
},
// 获取"时"数组
getHourArr: function getHourArr(rule) {
this.dateArr[2] = this.getOrderArr(0, 23);
if (rule.indexOf('-') >= 0) {
this.dateArr[2] = this.getCycleArr(rule, 24, true);
} else if (rule.indexOf('/') >= 0) {
this.dateArr[2] = this.getAverageArr(rule, 23);
} else if (rule !== '*') {
this.dateArr[2] = this.getAssignArr(rule);
}
},
// 获取"分"数组
getMinArr: function getMinArr(rule) {
this.dateArr[1] = this.getOrderArr(0, 59);
if (rule.indexOf('-') >= 0) {
this.dateArr[1] = this.getCycleArr(rule, 60, true);
} else if (rule.indexOf('/') >= 0) {
this.dateArr[1] = this.getAverageArr(rule, 59);
} else if (rule !== '*') {
this.dateArr[1] = this.getAssignArr(rule);
}
},
// 获取"秒"数组
getSecondArr: function getSecondArr(rule) {
this.dateArr[0] = this.getOrderArr(0, 59);
if (rule.indexOf('-') >= 0) {
this.dateArr[0] = this.getCycleArr(rule, 60, true);
} else if (rule.indexOf('/') >= 0) {
this.dateArr[0] = this.getAverageArr(rule, 59);
} else if (rule !== '*') {
this.dateArr[0] = this.getAssignArr(rule);
}
},
// 根据传进来的min-max返回一个顺序的数组
getOrderArr: function getOrderArr(min, max) {
var arr = [];
for (var i = min; i <= max; i++) {
arr.push(i);
}
return arr;
},
// 根据规则中指定的零散值返回一个数组
getAssignArr: function getAssignArr(rule) {
var arr = [];
var assiginArr = rule.split(',');
for (var i = 0; i < assiginArr.length; i++) {
arr[i] = Number(assiginArr[i]);
}
arr.sort(this.compare);
return arr;
},
// 根据一定算术规则计算返回一个数组
getAverageArr: function getAverageArr(rule, limit) {
var arr = [];
var agArr = rule.split('/');
var min = Number(agArr[0]);
var step = Number(agArr[1]);
while (min <= limit) {
arr.push(min);
min += step;
}
return arr;
},
// 根据规则返回一个具有周期性的数组
getCycleArr: function getCycleArr(rule, limit, status) {
// status--表示是否从0开始(则从1开始)
var arr = [];
var cycleArr = rule.split('-');
var min = Number(cycleArr[0]);
var max = Number(cycleArr[1]);
if (min > max) {
max += limit;
}
for (var i = min; i <= max; i++) {
var add = 0;
if (status == false && i % limit == 0) {
add = limit;
}
arr.push(Math.round(i % limit + add));
}
arr.sort(this.compare);
return arr;
},
// 比较数字大小(用于Array.sort)
compare: function compare(value1, value2) {
if (value2 - value1 > 0) {
return -1;
} else {
return 1;
}
},
// 格式化日期格式如:2017-9-19 18:04:33
formatDate: function formatDate(value, type) {
// 计算日期相关值
var time = typeof value == 'number' ? new Date(value) : value;
var Y = time.getFullYear();
var M = time.getMonth() + 1;
var D = time.getDate();
var h = time.getHours();
var m = time.getMinutes();
var s = time.getSeconds();
var week = time.getDay();
// 如果传递了type的话
if (type == undefined) {
return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);
} else if (type == 'week') {
// 在quartz中 1为星期日
return week + 1;
}
},
// 检查日期是否存在
checkDate: function checkDate(value) {
var time = new Date(value);
var format = this.formatDate(time);
return value === format;
}
},
watch: {
'ex': 'expressionChange'
},
props: ['ex'],
mounted: function mounted() {
// 初始化 获取一次结果
this.expressionChange();
}
};/* script */
var __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('div', {
staticClass: "popup-result"
}, [_vm._ssrNode("<p class=\"title\">最近5次运行时间</p> <ul class=\"popup-result-scroll\">" + (_vm.isShow ? _vm._ssrList(_vm.resultList, function (item) {
return "<li>" + _vm._ssrEscape(_vm._s(item)) + "</li>";
}) : "<li>计算结果中...</li>") + "</ul>")]);
};
var __vue_staticRenderFns__$1 = [];
/* style */
var __vue_inject_styles__$1 = undefined;
/* scoped */
var __vue_scope_id__$1 = undefined;
/* module identifier */
var __vue_module_identifier__$1 = "data-v-516f8940";
/* functional template */
var __vue_is_functional_template__$1 = false;
/* style inject */
/* style inject SSR */
/* style inject shadow dom */
var __vue_component__$1 = /*#__PURE__*/normalizeComponent({
render: __vue_render__$1,
staticRenderFns: __vue_staticRenderFns__$1
}, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);
var CrontabResult = __vue_component__$1;var script = {
data: function data() {
return {
tabTitles: ["秒", "分钟", "小时", "日", "月", "周", "年"],
tabActive: 0,
myindex: 0,
crontabValueObj: {
second: "*",
min: "*",
hour: "*",
day: "*",
month: "*",
week: "?",
year: ""
}
};
},
name: "vcrontab",
props: ["expression", "hideComponent"],
methods: {
shouldHide: function shouldHide(key) {
if (this.hideComponent && this.hideComponent.includes(key)) return false;
return true;
},
resolveExp: function resolveExp() {
// 反解析 表达式
if (this.expression) {
var arr = this.expression.split(" ");
if (arr.length >= 6) {
//6 位以上是合法表达式
var obj = {
second: arr[0],
min: arr[1],
hour: arr[2],
day: arr[3],
month: arr[4],
week: arr[5],
year: arr[6] ? arr[6] : ""
};
this.crontabValueObj = _objectSpread2({}, obj);
for (var i in obj) {
if (obj[i]) this.changeRadio(i, obj[i]);
}
}
} else {
// 没有传入的表达式 则还原
this.clearCron();
}
},
// tab切换值
tabCheck: function tabCheck(index) {
this.tabActive = index;
},
// 由子组件触发,更改表达式组成的字段值
updateCrontabValue: function updateCrontabValue(name, value, from) {
this.crontabValueObj[name] = value;
if (from && from !== name) {
console.log("\u6765\u81EA\u7EC4\u4EF6 ".concat(from, " \u6539\u53D8\u4E86 ").concat(name, " ").concat(value));
this.changeRadio(name, value);
}
},
// 赋值到组件
changeRadio: function changeRadio(name, value) {
var arr = ["second", "min", "hour", "month"],
refName = "cron" + name,
insValue;
if (!this.$refs[refName]) return;
if (arr.includes(name)) {
if (value === "*") {
insValue = 1;
} else if (value.indexOf("-") > -1) {
var indexArr = value.split("-");
isNaN(indexArr[0]) ? this.$refs[refName].cycle01 = 0 : this.$refs[refName].cycle01 = indexArr[0];
this.$refs[refName].cycle02 = indexArr[1];
insValue = 2;
} else if (value.indexOf("/") > -1) {
var _indexArr = value.split("/");
isNaN(_indexArr[0]) ? this.$refs[refName].average01 = 0 : this.$refs[refName].average01 = _indexArr[0];
this.$refs[refName].average02 = _indexArr[1];
insValue = 3;
} else {
insValue = 4;
this.$refs[refName].checkboxList = value.split(",");
}
} else if (name == "day") {
if (value === "*") {
insValue = 1;
} else if (value == "?") {
insValue = 2;
} else if (value.indexOf("-") > -1) {
var _indexArr2 = value.split("-");
isNaN(_indexArr2[0]) ? this.$refs[refName].cycle01 = 0 : this.$refs[refName].cycle01 = _indexArr2[0];
this.$refs[refName].cycle02 = _indexArr2[1];
insValue = 3;
} else if (value.indexOf("/") > -1) {
var _indexArr3 = value.split("/");
isNaN(_indexArr3[0]) ? this.$refs[refName].average01 = 0 : this.$refs[refName].average01 = _indexArr3[0];
this.$refs[refName].average02 = _indexArr3[1];
insValue = 4;
} else if (value.indexOf("W") > -1) {
var _indexArr4 = value.split("W");
isNaN(_indexArr4[0]) ? this.$refs[refName].workday = 0 : this.$refs[refName].workday = _indexArr4[0];
insValue = 5;
} else if (value === "L") {
insValue = 6;
} else {
this.$refs[refName].checkboxList = value.split(",");
insValue = 7;
}
} else if (name == "week") {
if (value === "*") {
insValue = 1;
} else if (value == "?") {
insValue = 2;
} else if (value.indexOf("-") > -1) {
var _indexArr5 = value.split("-");
isNaN(_indexArr5[0]) ? this.$refs[refName].cycle01 = 0 : this.$refs[refName].cycle01 = _indexArr5[0];
this.$refs[refName].cycle02 = _indexArr5[1];
insValue = 3;
} else if (value.indexOf("#") > -1) {
var _indexArr6 = value.split("#");
isNaN(_indexArr6[0]) ? this.$refs[refName].average01 = 1 : this.$refs[refName].average01 = _indexArr6[0];
this.$refs[refName].average02 = _indexArr6[1];
insValue = 4;
} else if (value.indexOf("L") > -1) {
var _indexArr7 = value.split("L");
isNaN(_indexArr7[0]) ? this.$refs[refName].weekday = 1 : this.$refs[refName].weekday = _indexArr7[0];
insValue = 5;
} else {
this.$refs[refName].checkboxList = value.split(",");
insValue = 6;
}
} else if (name == "year") {
if (value == "") {
insValue = 1;
} else if (value == "*") {
insValue = 2;
} else if (value.indexOf("-") > -1) {
insValue = 3;
} else if (value.indexOf("/") > -1) {
insValue = 4;
} else {
this.$refs[refName].checkboxList = value.split(",");
insValue = 5;
}
}
this.$refs[refName].radioValue = insValue;
},
// 表单选项的子组件校验数字格式(通过-props传递)
checkNumber: function checkNumber(value, minLimit, maxLimit) {
// 检查必须为整数
value = Math.floor(value);
if (value < minLimit) {
value = minLimit;
} else if (value > maxLimit) {
value = maxLimit;
}
return value;
},
// 隐藏弹窗
hidePopup: function hidePopup() {
this.$emit("hide");
},
// 填充表达式
submitFill: function submitFill() {
this.$emit("fill", this.crontabValueString);
this.hidePopup();
},
clearCron: function clearCron() {
// 还原选择项
"准备还原";
this.crontabValueObj = {
second: "*",
min: "*",
hour: "*",
day: "*",
month: "*",
week: "?",
year: ""
};
for (var j in this.crontabValueObj) {
this.changeRadio(j, this.crontabValueObj[j]);
}
}
},
computed: {
crontabValueString: function crontabValueString() {
var obj = this.crontabValueObj;
var str = obj.second + " " + obj.min + " " + obj.hour + " " + obj.day + " " + obj.month + " " + obj.week + (obj.year == "" ? "" : " " + obj.year);
return str;
}
},
components: {
CrontabSecond: CrontabSecond,
CrontabMin: CrontabMin,
CrontabHour: CrontabHour,
CrontabDay: CrontabDay,
CrontabMonth: CrontabMonth,
CrontabWeek: CrontabWeek,
CrontabYear: CrontabYear,
CrontabResult: CrontabResult
},
watch: {
expression: "resolveExp",
hideComponent: function hideComponent(value) {
// 隐藏部分组件
}
},
mounted: function mounted() {
this.resolveExp();
}
};function createInjectorSSR(context) {
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
}
if (!context)
return () => { };
if (!('styles' in context)) {
context._styles = context._styles || {};
Object.defineProperty(context, 'styles', {
enumerable: true,
get: () => context._renderStyles(context._styles)
});
context._renderStyles = context._renderStyles || renderStyles;
}
return (id, style) => addStyle(id, style, context);
}
function addStyle(id, css, context) {
const group = css.media || 'default' ;
const style = context._styles[group] || (context._styles[group] = { ids: [], css: '' });
if (!style.ids.includes(id)) {
style.media = css.media;
style.ids.push(id);
let code = css.source;
style.css += code + '\n';
}
}
function renderStyles(styles) {
let css = '';
for (const key in styles) {
const style = styles[key];
css +=
'<style data-vue-ssr-id="' +
Array.from(style.ids).join(' ') +
'"' +
(style.media ? ' media="' + style.media + '"' : '') +
'>' +
style.css +
'</style>';
}
return css;
}/* script */
var __vue_script__ = script;
/* template */
var __vue_render__ = function __vue_render__() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('div', [_c('el-tabs', {
attrs: {
"type": "border-card"
}
}, [_vm.shouldHide('second') ? _c('el-tab-pane', {
attrs: {
"label": "秒"
}
}, [_c('CrontabSecond', {
ref: "cronsecond",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e(), _vm._v(" "), _vm.shouldHide('min') ? _c('el-tab-pane', {
attrs: {
"label": "分钟"
}
}, [_c('CrontabMin', {
ref: "cronmin",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e(), _vm._v(" "), _vm.shouldHide('hour') ? _c('el-tab-pane', {
attrs: {
"label": "小时"
}
}, [_c('CrontabHour', {
ref: "cronhour",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e(), _vm._v(" "), _vm.shouldHide('day') ? _c('el-tab-pane', {
attrs: {
"label": "日"
}
}, [_c('CrontabDay', {
ref: "cronday",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e(), _vm._v(" "), _vm.shouldHide('month') ? _c('el-tab-pane', {
attrs: {
"label": "月"
}
}, [_c('CrontabMonth', {
ref: "cronmonth",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e(), _vm._v(" "), _vm.shouldHide('week') ? _c('el-tab-pane', {
attrs: {
"label": "周"
}
}, [_c('CrontabWeek', {
ref: "cronweek",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e(), _vm._v(" "), _vm.shouldHide('year') ? _c('el-tab-pane', {
attrs: {
"label": "年"
}
}, [_c('CrontabYear', {
ref: "cronyear",
attrs: {
"check": _vm.checkNumber,
"cron": _vm.crontabValueObj
},
on: {
"update": _vm.updateCrontabValue
}
})], 1) : _vm._e()], 1), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"popup-main\" data-v-69e234ce>", "</div>", [_vm._ssrNode("<div class=\"popup-result\" data-v-69e234ce><p class=\"title\" data-v-69e234ce>时间表达式</p> <table data-v-69e234ce><thead data-v-69e234ce>" + _vm._ssrList(_vm.tabTitles, function (item) {
return "<th width=\"40\" data-v-69e234ce>" + _vm._ssrEscape(_vm._s(item)) + "</th>";
}) + " <th data-v-69e234ce>Cron 表达式</th></thead> <tbody data-v-69e234ce><td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.second)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.min)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.hour)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.day)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.month)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.week)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueObj.year)) + "</span></td> <td data-v-69e234ce><span data-v-69e234ce>" + _vm._ssrEscape(_vm._s(_vm.crontabValueString)) + "</span></td></tbody></table></div> "), _c('CrontabResult', {
attrs: {
"ex": _vm.crontabValueString
}
}), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"pop_btn\" data-v-69e234ce>", "</div>", [_c('el-button', {
attrs: {
"size": "small",
"type": "primary"
},
on: {
"click": _vm.submitFill
}
}, [_vm._v("确定")]), _vm._ssrNode(" "), _c('el-button', {
attrs: {
"size": "small",
"type": "warning"
},
on: {
"click": _vm.clearCron
}
}, [_vm._v("重置")]), _vm._ssrNode(" "), _c('el-button', {
attrs: {
"size": "small"
},
on: {
"click": _vm.hidePopup
}
}, [_vm._v("取消")])], 2)], 2)], 2);
};
var __vue_staticRenderFns__ = [];
/* style */
var __vue_inject_styles__ = function __vue_inject_styles__(inject) {
if (!inject) return;
inject("data-v-69e234ce_0", {
source: ".pop_btn[data-v-69e234ce]{text-align:center;margin-top:20px}.popup-main[data-v-69e234ce]{position:relative;margin:10px auto;background:#fff;border-radius:5px;font-size:12px;overflow:hidden}.popup-title[data-v-69e234ce]{overflow:hidden;line-height:34px;padding-top:6px;background:#f2f2f2}.popup-result[data-v-69e234ce]{box-sizing:border-box;line-height:24px;margin:25px auto;padding:15px 10px 10px;border:1px solid #ccc;position:relative}.popup-result .title[data-v-69e234ce]{position:absolute;top:-28px;left:50%;width:140px;font-size:14px;margin-left:-70px;text-align:center;line-height:30px;background:#fff}.popup-result table[data-v-69e234ce]{text-align:center;width:100%;margin:0 auto}.popup-result table span[data-v-69e234ce]{display:block;width:100%;font-family:arial;line-height:30px;height:30px;white-space:nowrap;overflow:hidden;border:1px solid #e8e8e8}.popup-result-scroll[data-v-69e234ce]{font-size:12px;line-height:24px;height:10em;overflow-y:auto}",
map: undefined,
media: undefined
});
};
/* scoped */
var __vue_scope_id__ = "data-v-69e234ce";
/* module identifier */
var __vue_module_identifier__ = "data-v-69e234ce";
/* functional template */
var __vue_is_functional_template__ = false;
/* style inject shadow dom */
var __vue_component__ = /*#__PURE__*/normalizeComponent({
render: __vue_render__,
staticRenderFns: __vue_staticRenderFns__
}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, createInjectorSSR, undefined);
var component$1 = __vue_component__;// Import vue component
// Default export is installable instance of component.
// IIFE injects install function into component, allowing component
// to be registered via Vue.use() as well as Vue.component(),
var component = /*#__PURE__*/(function () {
// Get component instance
var installable = component$1;
// Attach install function executed by Vue.use()
installable.install = function (Vue) {
Vue.component('VueCronPicker', installable);
};
return installable;
})();
// It's possible to expose named exports when writing components that can
// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';
// export const RollupDemoDirective = directive;
var namedExports=/*#__PURE__*/Object.freeze({__proto__:null,'default':component});// Attach named exports directly to component. IIFE/CJS will
// only expose one global var, with named exports exposed as properties of
// that global var (eg. plugin.namedExport)
Object.entries(namedExports).forEach(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
exportName = _ref2[0],
exported = _ref2[1];
if (exportName !== 'default') component[exportName] = exported;
});module.exports=component;