RuoYi
2021-09-08 cd4119b26a65b1cf07face7ebd640e5292deaf5f
修正单词拼写错误
1 files renamed
6 files modified
512 ■■■■ changed files
ruoyi-ui/src/components/Crontab/day.vue 4 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/index.vue 142 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/month.vue 256 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/result.vue 92 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/second.vue 4 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/week.vue 6 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/year.vue 8 ●●●● patch | view | raw | blame | history
ruoyi-ui/src/components/Crontab/day.vue
@@ -75,7 +75,7 @@
            if (this.radioValue === 1) {
                this.$emit('update', 'day', '*', 'day');
                this.$emit('update', 'week', '?', 'day');
                this.$emit('update', 'mouth', '*', 'day');
                this.$emit('update', 'month', '*', 'day');
            } else {
                if (this.cron.hour === '*') {
                    this.$emit('update', 'hour', '0', 'day');
@@ -176,4 +176,4 @@
        }
    }
}
</script>
</script>
ruoyi-ui/src/components/Crontab/index.vue
@@ -2,59 +2,59 @@
  <div>
    <el-tabs type="border-card">
      <el-tab-pane label="秒" v-if="shouldHide('second')">
        <CrontabSecond @update="updateContabValue" :check="checkNumber" ref="cronsecond" />
        <CrontabSecond @update="updateCrontabValue" :check="checkNumber" ref="cronsecond" />
      </el-tab-pane>
      <el-tab-pane label="分钟" v-if="shouldHide('min')">
        <CrontabMin
          @update="updateContabValue"
          @update="updateCrontabValue"
          :check="checkNumber"
          :cron="contabValueObj"
          :cron="crontabValueObj"
          ref="cronmin"
        />
      </el-tab-pane>
      <el-tab-pane label="小时" v-if="shouldHide('hour')">
        <CrontabHour
          @update="updateContabValue"
          @update="updateCrontabValue"
          :check="checkNumber"
          :cron="contabValueObj"
          :cron="crontabValueObj"
          ref="cronhour"
        />
      </el-tab-pane>
      <el-tab-pane label="日" v-if="shouldHide('day')">
        <CrontabDay
          @update="updateContabValue"
          @update="updateCrontabValue"
          :check="checkNumber"
          :cron="contabValueObj"
          :cron="crontabValueObj"
          ref="cronday"
        />
      </el-tab-pane>
      <el-tab-pane label="月" v-if="shouldHide('mouth')">
        <CrontabMouth
          @update="updateContabValue"
      <el-tab-pane label="月" v-if="shouldHide('month')">
        <CrontabMonth
          @update="updateCrontabValue"
          :check="checkNumber"
          :cron="contabValueObj"
          ref="cronmouth"
          :cron="crontabValueObj"
          ref="cronmonth"
        />
      </el-tab-pane>
      <el-tab-pane label="周" v-if="shouldHide('week')">
        <CrontabWeek
          @update="updateContabValue"
          @update="updateCrontabValue"
          :check="checkNumber"
          :cron="contabValueObj"
          :cron="crontabValueObj"
          ref="cronweek"
        />
      </el-tab-pane>
      <el-tab-pane label="年" v-if="shouldHide('year')">
        <CrontabYear
          @update="updateContabValue"
          @update="updateCrontabValue"
          :check="checkNumber"
          :cron="contabValueObj"
          :cron="crontabValueObj"
          ref="cronyear"
        />
      </el-tab-pane>
@@ -70,33 +70,33 @@
          </thead>
          <tbody>
            <td>
              <span>{{contabValueObj.second}}</span>
              <span>{{crontabValueObj.second}}</span>
            </td>
            <td>
              <span>{{contabValueObj.min}}</span>
              <span>{{crontabValueObj.min}}</span>
            </td>
            <td>
              <span>{{contabValueObj.hour}}</span>
              <span>{{crontabValueObj.hour}}</span>
            </td>
            <td>
              <span>{{contabValueObj.day}}</span>
              <span>{{crontabValueObj.day}}</span>
            </td>
            <td>
              <span>{{contabValueObj.mouth}}</span>
              <span>{{crontabValueObj.month}}</span>
            </td>
            <td>
              <span>{{contabValueObj.week}}</span>
              <span>{{crontabValueObj.week}}</span>
            </td>
            <td>
              <span>{{contabValueObj.year}}</span>
              <span>{{crontabValueObj.year}}</span>
            </td>
            <td>
              <span>{{contabValueString}}</span>
              <span>{{crontabValueString}}</span>
            </td>
          </tbody>
        </table>
      </div>
      <CrontabResult :ex="contabValueString"></CrontabResult>
      <CrontabResult :ex="crontabValueString"></CrontabResult>
      <div class="pop_btn">
        <el-button size="small" type="primary" @click="submitFill">确定</el-button>
@@ -112,7 +112,7 @@
import CrontabMin from "./min.vue";
import CrontabHour from "./hour.vue";
import CrontabDay from "./day.vue";
import CrontabMouth from "./mouth.vue";
import CrontabMonth from "./month.vue";
import CrontabWeek from "./week.vue";
import CrontabYear from "./year.vue";
import CrontabResult from "./result.vue";
@@ -123,12 +123,12 @@
      tabTitles: ["秒", "分钟", "小时", "日", "月", "周", "年"],
      tabActive: 0,
      myindex: 0,
      contabValueObj: {
      crontabValueObj: {
        second: "*",
        min: "*",
        hour: "*",
        day: "*",
        mouth: "*",
        month: "*",
        week: "?",
        year: "",
      },
@@ -142,7 +142,7 @@
      return true;
    },
    resolveExp() {
      //反解析 表达式
      // 反解析 表达式
      if (this.expression) {
        let arr = this.expression.split(" ");
        if (arr.length >= 6) {
@@ -152,11 +152,11 @@
            min: arr[1],
            hour: arr[2],
            day: arr[3],
            mouth: arr[4],
            month: arr[4],
            week: arr[5],
            year: arr[6] ? arr[6] : "",
          };
          this.contabValueObj = {
          this.crontabValueObj = {
            ...obj,
          };
          for (let i in obj) {
@@ -164,7 +164,7 @@
          }
        }
      } else {
        //没有传入的表达式 则还原
        // 没有传入的表达式 则还原
        this.clearCron();
      }
    },
@@ -173,122 +173,122 @@
      this.tabActive = index;
    },
    // 由子组件触发,更改表达式组成的字段值
    updateContabValue(name, value, from) {
      "updateContabValue", name, value, from;
      this.contabValueObj[name] = value;
    updateCrontabValue(name, value, from) {
      "updateCrontabValue", name, value, from;
      this.crontabValueObj[name] = value;
      if (from && from !== name) {
        console.log(`来自组件 ${from} 改变了 ${name} ${value}`);
        this.changeRadio(name, value);
      }
    },
    //赋值到组件
    // 赋值到组件
    changeRadio(name, value) {
      let arr = ["second", "min", "hour", "mouth"],
      let arr = ["second", "min", "hour", "month"],
        refName = "cron" + name,
        insVlaue;
        insValue;
      if (!this.$refs[refName]) return;
      if (arr.includes(name)) {
        if (value === "*") {
          insVlaue = 1;
          insValue = 1;
        } else if (value.indexOf("-") > -1) {
          let indexArr = value.split("-");
          isNaN(indexArr[0])
            ? (this.$refs[refName].cycle01 = 0)
            : (this.$refs[refName].cycle01 = indexArr[0]);
          this.$refs[refName].cycle02 = indexArr[1];
          insVlaue = 2;
          insValue = 2;
        } else if (value.indexOf("/") > -1) {
          let indexArr = value.split("/");
          isNaN(indexArr[0])
            ? (this.$refs[refName].average01 = 0)
            : (this.$refs[refName].average01 = indexArr[0]);
          this.$refs[refName].average02 = indexArr[1];
          insVlaue = 3;
          insValue = 3;
        } else {
          insVlaue = 4;
          insValue = 4;
          this.$refs[refName].checkboxList = value.split(",");
        }
      } else if (name == "day") {
        if (value === "*") {
          insVlaue = 1;
          insValue = 1;
        } else if (value == "?") {
          insVlaue = 2;
          insValue = 2;
        } else if (value.indexOf("-") > -1) {
          let indexArr = value.split("-");
          isNaN(indexArr[0])
            ? (this.$refs[refName].cycle01 = 0)
            : (this.$refs[refName].cycle01 = indexArr[0]);
          this.$refs[refName].cycle02 = indexArr[1];
          insVlaue = 3;
          insValue = 3;
        } else if (value.indexOf("/") > -1) {
          let indexArr = value.split("/");
          isNaN(indexArr[0])
            ? (this.$refs[refName].average01 = 0)
            : (this.$refs[refName].average01 = indexArr[0]);
          this.$refs[refName].average02 = indexArr[1];
          insVlaue = 4;
          insValue = 4;
        } else if (value.indexOf("W") > -1) {
          let indexArr = value.split("W");
          isNaN(indexArr[0])
            ? (this.$refs[refName].workday = 0)
            : (this.$refs[refName].workday = indexArr[0]);
          insVlaue = 5;
          insValue = 5;
        } else if (value === "L") {
          insVlaue = 6;
          insValue = 6;
        } else {
          this.$refs[refName].checkboxList = value.split(",");
          insVlaue = 7;
          insValue = 7;
        }
      } else if (name == "week") {
        if (value === "*") {
          insVlaue = 1;
          insValue = 1;
        } else if (value == "?") {
          insVlaue = 2;
          insValue = 2;
        } else if (value.indexOf("-") > -1) {
          let indexArr = value.split("-");
          isNaN(indexArr[0])
            ? (this.$refs[refName].cycle01 = 0)
            : (this.$refs[refName].cycle01 = indexArr[0]);
          this.$refs[refName].cycle02 = indexArr[1];
          insVlaue = 3;
          insValue = 3;
        } else if (value.indexOf("#") > -1) {
          let indexArr = value.split("#");
          isNaN(indexArr[0])
            ? (this.$refs[refName].average01 = 1)
            : (this.$refs[refName].average01 = indexArr[0]);
          this.$refs[refName].average02 = indexArr[1];
          insVlaue = 4;
          insValue = 4;
        } else if (value.indexOf("L") > -1) {
          let indexArr = value.split("L");
          isNaN(indexArr[0])
            ? (this.$refs[refName].weekday = 1)
            : (this.$refs[refName].weekday = indexArr[0]);
          insVlaue = 5;
          insValue = 5;
        } else {
          this.$refs[refName].checkboxList = value.split(",");
          insVlaue = 7;
          insValue = 7;
        }
      } else if (name == "year") {
        if (value == "") {
          insVlaue = 1;
          insValue = 1;
        } else if (value == "*") {
          insVlaue = 2;
          insValue = 2;
        } else if (value.indexOf("-") > -1) {
          insVlaue = 3;
          insValue = 3;
        } else if (value.indexOf("/") > -1) {
          insVlaue = 4;
          insValue = 4;
        } else {
          this.$refs[refName].checkboxList = value.split(",");
          insVlaue = 5;
          insValue = 5;
        }
      }
      this.$refs[refName].radioValue = insVlaue;
      this.$refs[refName].radioValue = insValue;
    },
    // 表单选项的子组件校验数字格式(通过-props传递)
    checkNumber(value, minLimit, maxLimit) {
      //检查必须为整数
      // 检查必须为整数
      value = Math.floor(value);
      if (value < minLimit) {
        value = minLimit;
@@ -303,29 +303,29 @@
    },
    // 填充表达式
    submitFill() {
      this.$emit("fill", this.contabValueString);
      this.$emit("fill", this.crontabValueString);
      this.hidePopup();
    },
    clearCron() {
      // 还原选择项
      ("准备还原");
      this.contabValueObj = {
      this.crontabValueObj = {
        second: "*",
        min: "*",
        hour: "*",
        day: "*",
        mouth: "*",
        month: "*",
        week: "?",
        year: "",
      };
      for (let j in this.contabValueObj) {
        this.changeRadio(j, this.contabValueObj[j]);
      for (let j in this.crontabValueObj) {
        this.changeRadio(j, this.crontabValueObj[j]);
      }
    },
  },
  computed: {
    contabValueString: function() {
      let obj = this.contabValueObj;
    crontabValueString: function() {
      let obj = this.crontabValueObj;
      let str =
        obj.second +
        " " +
@@ -335,7 +335,7 @@
        " " +
        obj.day +
        " " +
        obj.mouth +
        obj.month +
        " " +
        obj.week +
        (obj.year == "" ? "" : " " + obj.year);
@@ -347,7 +347,7 @@
    CrontabMin,
    CrontabHour,
    CrontabDay,
    CrontabMouth,
    CrontabMonth,
    CrontabWeek,
    CrontabYear,
    CrontabResult,
ruoyi-ui/src/components/Crontab/month.vue
File was renamed from ruoyi-ui/src/components/Crontab/mouth.vue
@@ -1,128 +1,128 @@
<template>
    <el-form size='small'>
        <el-form-item>
            <el-radio v-model='radioValue' :label="1">
                月,允许的通配符[, - * /]
            </el-radio>
        </el-form-item>
        <el-form-item>
            <el-radio v-model='radioValue' :label="2">
                周期从
                <el-input-number v-model='cycle01' :min="1" :max="12" /> -
                <el-input-number v-model='cycle02' :min="1" :max="12" /> 月
            </el-radio>
        </el-form-item>
        <el-form-item>
            <el-radio v-model='radioValue' :label="3">
                从
                <el-input-number v-model='average01' :min="1" :max="12" /> 月开始,每
                <el-input-number v-model='average02' :min="1" :max="12" /> 月月执行一次
            </el-radio>
        </el-form-item>
        <el-form-item>
            <el-radio v-model='radioValue' :label="4">
                指定
                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
                    <el-option v-for="item in 12" :key="item" :value="item">{{item}}</el-option>
                </el-select>
            </el-radio>
        </el-form-item>
    </el-form>
</template>
<script>
export default {
    data() {
        return {
            radioValue: 1,
            cycle01: 1,
            cycle02: 2,
            average01: 1,
            average02: 1,
            checkboxList: [],
            checkNum: this.check
        }
    },
    name: 'crontab-mouth',
    props: ['check', 'cron'],
    methods: {
        // 单选按钮值变化时
        radioChange() {
            if (this.radioValue === 1) {
                this.$emit('update', 'mouth', '*');
                this.$emit('update', 'year', '*');
            } else {
                if (this.cron.day === '*') {
                    this.$emit('update', 'day', '0', 'mouth');
                }
                if (this.cron.hour === '*') {
                    this.$emit('update', 'hour', '0', 'mouth');
                }
                if (this.cron.min === '*') {
                    this.$emit('update', 'min', '0', 'mouth');
                }
                if (this.cron.second === '*') {
                    this.$emit('update', 'second', '0', 'mouth');
                }
            }
            switch (this.radioValue) {
                case 2:
                    this.$emit('update', 'mouth', this.cycle01 + '-' + this.cycle02);
                    break;
                case 3:
                    this.$emit('update', 'mouth', this.average01 + '/' + this.average02);
                    break;
                case 4:
                    this.$emit('update', 'mouth', this.checkboxString);
                    break;
            }
        },
        // 周期两个值变化时
        cycleChange() {
            if (this.radioValue == '2') {
                this.$emit('update', 'mouth', this.cycleTotal);
            }
        },
        // 平均两个值变化时
        averageChange() {
            if (this.radioValue == '3') {
                this.$emit('update', 'mouth', this.averageTotal);
            }
        },
        // checkbox值变化时
        checkboxChange() {
            if (this.radioValue == '4') {
                this.$emit('update', 'mouth', this.checkboxString);
            }
        }
    },
    watch: {
        "radioValue": "radioChange",
        'cycleTotal': 'cycleChange',
        'averageTotal': 'averageChange',
        'checkboxString': 'checkboxChange'
    },
    computed: {
        // 计算两个周期值
        cycleTotal: function () {
            this.cycle01 = this.checkNum(this.cycle01, 1, 12)
            this.cycle02 = this.checkNum(this.cycle02, 1, 12)
            return this.cycle01 + '-' + this.cycle02;
        },
        // 计算平均用到的值
        averageTotal: function () {
            this.average01 = this.checkNum(this.average01, 1, 12)
            this.average02 = this.checkNum(this.average02, 1, 12)
            return this.average01 + '/' + this.average02;
        },
        // 计算勾选的checkbox值合集
        checkboxString: function () {
            let str = this.checkboxList.join();
            return str == '' ? '*' : str;
        }
    }
}
</script>
<template>
    <el-form size='small'>
        <el-form-item>
            <el-radio v-model='radioValue' :label="1">
                月,允许的通配符[, - * /]
            </el-radio>
        </el-form-item>
        <el-form-item>
            <el-radio v-model='radioValue' :label="2">
                周期从
                <el-input-number v-model='cycle01' :min="1" :max="12" /> -
                <el-input-number v-model='cycle02' :min="1" :max="12" /> 月
            </el-radio>
        </el-form-item>
        <el-form-item>
            <el-radio v-model='radioValue' :label="3">
                从
                <el-input-number v-model='average01' :min="1" :max="12" /> 月开始,每
                <el-input-number v-model='average02' :min="1" :max="12" /> 月月执行一次
            </el-radio>
        </el-form-item>
        <el-form-item>
            <el-radio v-model='radioValue' :label="4">
                指定
                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%">
                    <el-option v-for="item in 12" :key="item" :value="item">{{item}}</el-option>
                </el-select>
            </el-radio>
        </el-form-item>
    </el-form>
</template>
<script>
export default {
    data() {
        return {
            radioValue: 1,
            cycle01: 1,
            cycle02: 2,
            average01: 1,
            average02: 1,
            checkboxList: [],
            checkNum: this.check
        }
    },
    name: 'crontab-month',
    props: ['check', 'cron'],
    methods: {
        // 单选按钮值变化时
        radioChange() {
            if (this.radioValue === 1) {
                this.$emit('update', 'month', '*');
                this.$emit('update', 'year', '*');
            } else {
                if (this.cron.day === '*') {
                    this.$emit('update', 'day', '0', 'month');
                }
                if (this.cron.hour === '*') {
                    this.$emit('update', 'hour', '0', 'month');
                }
                if (this.cron.min === '*') {
                    this.$emit('update', 'min', '0', 'month');
                }
                if (this.cron.second === '*') {
                    this.$emit('update', 'second', '0', 'month');
                }
            }
            switch (this.radioValue) {
                case 2:
                    this.$emit('update', 'month', this.cycle01 + '-' + this.cycle02);
                    break;
                case 3:
                    this.$emit('update', 'month', this.average01 + '/' + this.average02);
                    break;
                case 4:
                    this.$emit('update', 'month', this.checkboxString);
                    break;
            }
        },
        // 周期两个值变化时
        cycleChange() {
            if (this.radioValue == '2') {
                this.$emit('update', 'month', this.cycleTotal);
            }
        },
        // 平均两个值变化时
        averageChange() {
            if (this.radioValue == '3') {
                this.$emit('update', 'month', this.averageTotal);
            }
        },
        // checkbox值变化时
        checkboxChange() {
            if (this.radioValue == '4') {
                this.$emit('update', 'month', this.checkboxString);
            }
        }
    },
    watch: {
        "radioValue": "radioChange",
        'cycleTotal': 'cycleChange',
        'averageTotal': 'averageChange',
        'checkboxString': 'checkboxChange'
    },
    computed: {
        // 计算两个周期值
        cycleTotal: function () {
            this.cycle01 = this.checkNum(this.cycle01, 1, 12)
            this.cycle02 = this.checkNum(this.cycle02, 1, 12)
            return this.cycle01 + '-' + this.cycle02;
        },
        // 计算平均用到的值
        averageTotal: function () {
            this.average01 = this.checkNum(this.average01, 1, 12)
            this.average02 = this.checkNum(this.average02, 1, 12)
            return this.average01 + '/' + this.average02;
        },
        // 计算勾选的checkbox值合集
        checkboxString: function () {
            let str = this.checkboxList.join();
            return str == '' ? '*' : str;
        }
    }
}
</script>
ruoyi-ui/src/components/Crontab/result.vue
@@ -37,7 +37,7 @@
            // 获取当前时间精确至[年、月、日、时、分、秒]
            let nTime = new Date();
            let nYear = nTime.getFullYear();
            let nMouth = nTime.getMonth() + 1;
            let nMonth = nTime.getMonth() + 1;
            let nDay = nTime.getDate();
            let nHour = nTime.getHours();
            let nMin = nTime.getMinutes();
@@ -47,7 +47,7 @@
            this.getMinArr(ruleArr[1]);
            this.getHourArr(ruleArr[2]);
            this.getDayArr(ruleArr[3]);
            this.getMouthArr(ruleArr[4]);
            this.getMonthArr(ruleArr[4]);
            this.getWeekArr(ruleArr[5]);
            this.getYearArr(ruleArr[6], nYear);
            // 将获取到的数组赋值-方便使用
@@ -62,7 +62,7 @@
            let mIdx = this.getIndex(mDate, nMin);
            let hIdx = this.getIndex(hDate, nHour);
            let DIdx = this.getIndex(DDate, nDay);
            let MIdx = this.getIndex(MDate, nMouth);
            let MIdx = this.getIndex(MDate, nMonth);
            let YIdx = this.getIndex(YDate, nYear);
            // 重置月日时分秒的函数(后面用的比较多)
            const resetSecond = function () {
@@ -84,17 +84,17 @@
                nDay = DDate[DIdx]
                resetHour();
            }
            const resetMouth = function () {
            const resetMonth = function () {
                MIdx = 0;
                nMouth = MDate[MIdx]
                nMonth = MDate[MIdx]
                resetDay();
            }
            // 如果当前年份不为数组中当前值
            if (nYear !== YDate[YIdx]) {
                resetMouth();
                resetMonth();
            }
            // 如果当前月份不为数组中当前值
            if (nMouth !== MDate[MIdx]) {
            if (nMonth !== MDate[MIdx]) {
                resetDay();
            }
            // 如果当前“日”不为数组中当前值
@@ -114,12 +114,12 @@
            goYear: for (let Yi = YIdx; Yi < YDate.length; Yi++) {
                let YY = YDate[Yi];
                // 如果到达最大值时
                if (nMouth > MDate[MDate.length - 1]) {
                    resetMouth();
                if (nMonth > MDate[MDate.length - 1]) {
                    resetMonth();
                    continue;
                }
                // 循环月份数组
                goMouth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {
                goMonth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {
                    // 赋值、方便后面运算
                    let MM = MDate[Mi];
                    MM = MM < 10 ? '0' + MM : MM;
@@ -127,7 +127,7 @@
                    if (nDay > DDate[DDate.length - 1]) {
                        resetDay();
                        if (Mi == MDate.length - 1) {
                            resetMouth();
                            resetMonth();
                            continue goYear;
                        }
                        continue;
@@ -144,10 +144,10 @@
                            if (Di == DDate.length - 1) {
                                resetDay();
                                if (Mi == MDate.length - 1) {
                                    resetMouth();
                                    resetMonth();
                                    continue goYear;
                                }
                                continue goMouth;
                                continue goMonth;
                            }
                            continue;
                        }
@@ -155,11 +155,11 @@
                        // 判断日期的合法性,不合法的话也是跳出当前循环
                        if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && this.dayRule !== 'workDay' && this.dayRule !== 'lastWeek' && this.dayRule !== 'lastDay') {
                            resetDay();
                            continue goMouth;
                            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) {
@@ -169,7 +169,7 @@
                                }
                            }
                        } else if (this.dayRule == 'workDay') {
                            //校验并调整如果是2月30号这种日期传进来时需调整至正常月底
                            // 校验并调整如果是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--;
@@ -180,15 +180,15 @@
                            let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
                            // 当星期日时
                            if (thisWeek == 0) {
                                //先找下一个日,并判断是否为月底
                                // 先找下一个日,并判断是否为月底
                                DD++;
                                thisDD = DD < 10 ? '0' + DD : DD;
                                //判断下一日已经不是合法日期
                                // 判断下一日已经不是合法日期
                                if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
                                    DD -= 3;
                                }
                            } else if (thisWeek == 6) {
                                //当星期6时只需判断不是1号就可进行操作
                                // 当星期6时只需判断不是1号就可进行操作
                                if (this.dayRuleSup !== 1) {
                                    DD--;
                                } else {
@@ -196,25 +196,25 @@
                                }
                            }
                        } else if (this.dayRule == 'weekDay') {
                            //如果指定了是星期几
                            //获取当前日期是属于星期几
                            // 如果指定了是星期几
                            // 获取当前日期是属于星期几
                            let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
                            //校验当前星期是否在星期池(dayRuleSup)中
                            // 校验当前星期是否在星期池(dayRuleSup)中
                            if (Array.indexOf(this.dayRuleSup, thisWeek) < 0) {
                                // 如果到达最大值时
                                if (Di == DDate.length - 1) {
                                    resetDay();
                                    if (Mi == MDate.length - 1) {
                                        resetMouth();
                                        resetMonth();
                                        continue goYear;
                                    }
                                    continue goMouth;
                                    continue goMonth;
                                }
                                continue;
                            }
                        } else if (this.dayRule == 'assWeek') {
                            //如果指定了是第几周的星期几
                            //获取每月1号是属于星期几
                            // 如果指定了是第几周的星期几
                            // 获取每月1号是属于星期几
                            let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
                            if (this.dayRuleSup[1] >= thisWeek) {
                                DD = (this.dayRuleSup[0] - 1) * 7 + this.dayRuleSup[1] - thisWeek + 1;
@@ -222,17 +222,17 @@
                                DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1;
                            }
                        } else if (this.dayRule == 'lastWeek') {
                            //如果指定了每月最后一个星期几
                            //校验并调整如果是2月30号这种日期传进来时需调整至正常月底
                            // 如果指定了每月最后一个星期几
                            // 校验并调整如果是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;
                                }
                            }
                            //获取月末最后一天是星期几
                            // 获取月末最后一天是星期几
                            let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
                            //找到要求中最近的那个星期几
                            // 找到要求中最近的那个星期几
                            if (this.dayRuleSup < thisWeek) {
                                DD -= thisWeek - this.dayRuleSup;
                            } else if (this.dayRuleSup > thisWeek) {
@@ -254,10 +254,10 @@
                                    if (Di == DDate.length - 1) {
                                        resetDay();
                                        if (Mi == MDate.length - 1) {
                                            resetMouth();
                                            resetMonth();
                                            continue goYear;
                                        }
                                        continue goMouth;
                                        continue goMonth;
                                    }
                                    continue goDay;
                                }
@@ -277,10 +277,10 @@
                                            if (Di == DDate.length - 1) {
                                                resetDay();
                                                if (Mi == MDate.length - 1) {
                                                    resetMouth();
                                                    resetMonth();
                                                    continue goYear;
                                                }
                                                continue goMouth;
                                                continue goMonth;
                                            }
                                            continue goDay;
                                        }
@@ -296,9 +296,9 @@
                                        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) {
@@ -308,10 +308,10 @@
                                                if (Di == DDate.length - 1) {
                                                    resetDay();
                                                    if (Mi == MDate.length - 1) {
                                                        resetMouth();
                                                        resetMonth();
                                                        continue goYear;
                                                    }
                                                    continue goMouth;
                                                    continue goMonth;
                                                }
                                                continue goDay;
                                            }
@@ -323,7 +323,7 @@
                            } //goMin
                        }//goHour
                    }//goDay
                }//goMouth
                }//goMonth
            }
            // 判断100年内的结果条数
            if (resultArr.length == 0) {
@@ -339,7 +339,7 @@
        },
        //用于计算某位数字在数组中的索引
        // 用于计算某位数字在数组中的索引
        getIndex(arr, value) {
            if (value <= arr[0] || value > arr[arr.length - 1]) {
                return 0;
@@ -365,7 +365,7 @@
            }
        },
        // 获取"月"数组
        getMouthArr(rule) {
        getMonthArr(rule) {
            this.dateArr[4] = this.getOrderArr(1, 12);
            if (rule.indexOf('-') >= 0) {
                this.dateArr[4] = this.getCycleArr(rule, 12, false)
@@ -377,7 +377,7 @@
        },
        // 获取"日"数组-主要为日期规则
        getWeekArr(rule) {
            //只有当日期规则的两个值均为“”时则表达日期是有选项的
            // 只有当日期规则的两个值均为“”时则表达日期是有选项的
            if (this.dayRule == '' && this.dayRuleSup == '') {
                if (rule.indexOf('-') >= 0) {
                    this.dayRule = 'weekDay';
@@ -401,7 +401,7 @@
                    this.dayRule = 'weekDay';
                    this.dayRuleSup = this.getAssignArr(rule)
                }
                //如果weekDay时将7调整为0【week值0即是星期日】
                // 如果weekDay时将7调整为0【week值0即是星期日】
                if (this.dayRule == 'weekDay') {
                    for (let i = 0; i < this.dayRuleSup.length; i++) {
                        if (this.dayRuleSup[i] == 7) {
@@ -502,7 +502,7 @@
        },
        // 根据规则返回一个具有周期性的数组
        getCycleArr(rule, limit, status) {
            //status--表示是否从0开始(则从1开始)
            // status--表示是否从0开始(则从1开始)
            let arr = [];
            let cycleArr = rule.split('-');
            let min = Number(cycleArr[0]);
@@ -520,7 +520,7 @@
            arr.sort(this.compare)
            return arr;
        },
        //比较数字大小(用于Array.sort)
        // 比较数字大小(用于Array.sort)
        compare(value1, value2) {
            if (value2 - value1 > 0) {
                return -1;
@@ -563,4 +563,4 @@
    }
}
</script>
</script>
ruoyi-ui/src/components/Crontab/second.vue
@@ -86,7 +86,7 @@
            }
        },
        othChange() {
            //反解析
            // 反解析
            let ins = this.cron.second
            ('反解析 second', ins);
            if (ins === '*') {
@@ -130,4 +130,4 @@
        }
    }
}
</script>
</script>
ruoyi-ui/src/components/Crontab/week.vue
@@ -71,8 +71,8 @@
                this.$emit('update', 'week', '*');
                this.$emit('update', 'year', '*');
            } else {
                if (this.cron.mouth === '*') {
                    this.$emit('update', 'mouth', '0', 'week');
                if (this.cron.month === '*') {
                    this.$emit('update', 'month', '0', 'week');
                }
                if (this.cron.day === '*') {
                    this.$emit('update', 'day', '0', 'week');
@@ -164,4 +164,4 @@
        }
    }
}
</script>
</script>
ruoyi-ui/src/components/Crontab/year.vue
@@ -55,12 +55,12 @@
        }
    },
    name: 'crontab-year',
    props: ['check', 'mouth', 'cron'],
    props: ['check', 'month', 'cron'],
    methods: {
        // 单选按钮值变化时
        radioChange() {
            if (this.cron.mouth === '*') {
                this.$emit('update', 'mouth', '0', 'year');
            if (this.cron.month === '*') {
                this.$emit('update', 'month', '0', 'year');
            }
            if (this.cron.day === '*') {
                this.$emit('update', 'day', '0', 'year');
@@ -141,4 +141,4 @@
        this.fullYear = Number(new Date().getFullYear());
    }
}
</script>
</script>