From bf4ac3ad7a20fadd5aaa92ea0b6abde452c232ee Mon Sep 17 00:00:00 2001 From: 若依 <yzz_ivy@163.com> Date: 星期二, 30 十一月 2021 11:03:08 +0800 Subject: [PATCH] !378 fix: crontab组件bug Merge pull request !378 from fuzui/fix_cron_tool --- ruoyi-ui/src/components/Crontab/week.vue | 107 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 71 insertions(+), 36 deletions(-) diff --git a/ruoyi-ui/src/components/Crontab/week.vue b/ruoyi-ui/src/components/Crontab/week.vue index 5ad949d..ae389a7 100644 --- a/ruoyi-ui/src/components/Crontab/week.vue +++ b/ruoyi-ui/src/components/Crontab/week.vue @@ -2,7 +2,7 @@ <el-form size='small'> <el-form-item> <el-radio v-model='radioValue' :label="1"> - 周,允许的通配符[, - * / L #] + 周,允许的通配符[, - * ? / L #] </el-radio> </el-form-item> @@ -15,8 +15,25 @@ <el-form-item> <el-radio v-model='radioValue' :label="3"> 周期从星期 - <el-input-number v-model='cycle01' :min="1" :max="7" /> - - <el-input-number v-model='cycle02' :min="1" :max="7" /> + <el-select clearable v-model="cycle01"> + <el-option + v-for="(item,index) of weekList" + :key="index" + :label="item.value" + :value="item.key" + :disabled="item.key === 1" + >{{item.value}}</el-option> + </el-select> + - + <el-select clearable v-model="cycle02"> + <el-option + v-for="(item,index) of weekList" + :key="index" + :label="item.value" + :value="item.key" + :disabled="item.key < cycle01 && item.key !== 1" + >{{item.value}}</el-option> + </el-select> </el-radio> </el-form-item> @@ -24,14 +41,18 @@ <el-radio v-model='radioValue' :label="4"> 第 <el-input-number v-model='average01' :min="1" :max="4" /> 周的星期 - <el-input-number v-model='average02' :min="1" :max="7" /> + <el-select clearable v-model="average02"> + <el-option v-for="(item,index) of weekList" :key="index" :label="item.value" :value="item.key">{{item.value}}</el-option> + </el-select> </el-radio> </el-form-item> <el-form-item> <el-radio v-model='radioValue' :label="5"> 本月最后一个星期 - <el-input-number v-model='weekday' :min="1" :max="7" /> + <el-select clearable v-model="weekday"> + <el-option v-for="(item,index) of weekList" :key="index" :label="item.value" :value="item.key">{{item.value}}</el-option> + </el-select> </el-radio> </el-form-item> @@ -39,7 +60,7 @@ <el-radio v-model='radioValue' :label="6"> 指定 <el-select clearable v-model="checkboxList" placeholder="可多选" multiple style="width:100%"> - <el-option v-for="(item,index) of weekList" :key="index" :value="index+1">{{item}}</el-option> + <el-option v-for="(item,index) of weekList" :key="index" :label="item.value" :value="item.key">{{item.value}}</el-option> </el-select> </el-radio> </el-form-item> @@ -52,13 +73,42 @@ data() { return { radioValue: 2, - weekday: 1, - cycle01: 1, - cycle02: 2, + weekday: 2, + cycle01: 2, + cycle02: 3, average01: 1, - average02: 1, + average02: 2, checkboxList: [], - weekList: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], + 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 } }, @@ -67,45 +117,30 @@ methods: { // 单选按钮值变化时 radioChange() { - if (this.radioValue === 1) { - this.$emit('update', 'week', '*'); - this.$emit('update', 'year', '*'); - } else { - if (this.cron.month === '*') { - this.$emit('update', 'month', '0', 'week'); - } - if (this.cron.day === '*') { - this.$emit('update', 'day', '0', 'week'); - } - if (this.cron.hour === '*') { - this.$emit('update', 'hour', '0', 'week'); - } - if (this.cron.min === '*') { - this.$emit('update', 'min', '0', 'week'); - } - if (this.cron.second === '*') { - this.$emit('update', 'second', '0', 'week'); - } + 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.cycle01 + '-' + this.cycle02); + this.$emit('update', 'week', this.cycleTotal); break; case 4: - this.$emit('update', 'week', this.average01 + '#' + this.average02); + this.$emit('update', 'week', this.averageTotal); break; case 5: - this.$emit('update', 'week', this.weekday + 'L'); + this.$emit('update', 'week', this.weekdayCheck + 'L'); break; case 6: this.$emit('update', 'week', this.checkboxString); break; } }, - // 根据互斥事件,更改radio的值 // 周期两个值变化时 cycleChange() { @@ -133,7 +168,7 @@ }, }, watch: { - "radioValue": "radioChange", + 'radioValue': 'radioChange', 'cycleTotal': 'cycleChange', 'averageTotal': 'averageChange', 'weekdayCheck': 'weekdayChange', @@ -150,7 +185,7 @@ averageTotal: function () { this.average01 = this.checkNum(this.average01, 1, 4) this.average02 = this.checkNum(this.average02, 1, 7) - return this.average01 + '#' + this.average02; + return this.average02 + '#' + this.average01; }, // 最近的工作日(格式) weekdayCheck: function () { -- Gitblit v1.9.2