Commit 3257b55718ed6e52e16ac15880c8f3f82a396634
1 parent
291f31be
refactor: crontab components
Showing
11 changed files
with
514 additions
and
499 deletions
yudao-ui-admin-vue3/src/components/Crontab/index.ts
0 → 100644
yudao-ui-admin-vue3/src/components/Crontab/day.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/day.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio v-model="radioValue" :label="1"> 日,允许的通配符[, - * ? / L W] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio v-model="radioValue" :label="2"> 不指定 </el-radio> | ||
| 9 | - </el-form-item> | ||
| 10 | - | ||
| 11 | - <el-form-item> | ||
| 12 | - <el-radio v-model="radioValue" :label="3"> | ||
| 13 | - 周期从 | ||
| 14 | - <el-input-number v-model="cycle01" :min="1" :max="30" /> - | ||
| 15 | - <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 2" :max="31" /> 日 | ||
| 16 | - </el-radio> | ||
| 17 | - </el-form-item> | ||
| 18 | - | ||
| 19 | - <el-form-item> | ||
| 20 | - <el-radio v-model="radioValue" :label="4"> | ||
| 21 | - 从 | ||
| 22 | - <el-input-number v-model="average01" :min="1" :max="30" /> 号开始,每 | ||
| 23 | - <el-input-number v-model="average02" :min="1" :max="31 - average01 || 1" /> 日执行一次 | ||
| 24 | - </el-radio> | ||
| 25 | - </el-form-item> | ||
| 26 | - | ||
| 27 | - <el-form-item> | ||
| 28 | - <el-radio v-model="radioValue" :label="5"> | ||
| 29 | - 每月 | ||
| 30 | - <el-input-number v-model="workday" :min="1" :max="31" /> 号最近的那个工作日 | ||
| 31 | - </el-radio> | ||
| 32 | - </el-form-item> | ||
| 33 | - | ||
| 34 | - <el-form-item> | ||
| 35 | - <el-radio v-model="radioValue" :label="6"> 本月最后一天 </el-radio> | ||
| 36 | - </el-form-item> | ||
| 37 | - | ||
| 38 | - <el-form-item> | ||
| 39 | - <el-radio v-model="radioValue" :label="7"> | ||
| 40 | - 指定 | ||
| 41 | - <el-select | ||
| 42 | - clearable | ||
| 43 | - v-model="checkboxList" | ||
| 44 | - placeholder="可多选" | ||
| 45 | - multiple | ||
| 46 | - style="width: 100%" | ||
| 47 | - > | ||
| 48 | - <el-option v-for="item in 31" :key="item" :value="item">{{ item }}</el-option> | ||
| 49 | - </el-select> | ||
| 50 | - </el-radio> | ||
| 51 | - </el-form-item> | ||
| 52 | - </el-form> | ||
| 53 | -</template> | ||
| 54 | - | ||
| 55 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 56 | import { computed, ref, watch } from 'vue' | 2 | import { computed, ref, watch } from 'vue' |
| 57 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 58 | const props = defineProps({ | 4 | const props = defineProps({ |
| 59 | check: { | 5 | check: { |
| 60 | type: Function, | 6 | type: Function, |
| @@ -172,3 +118,56 @@ watch(checkboxString, () => { | @@ -172,3 +118,56 @@ watch(checkboxString, () => { | ||
| 172 | } | 118 | } |
| 173 | }) | 119 | }) |
| 174 | </script> | 120 | </script> |
| 121 | +<template> | ||
| 122 | + <el-form> | ||
| 123 | + <el-form-item> | ||
| 124 | + <el-radio v-model="radioValue" :label="1"> 日,允许的通配符[, - * ? / L W] </el-radio> | ||
| 125 | + </el-form-item> | ||
| 126 | + | ||
| 127 | + <el-form-item> | ||
| 128 | + <el-radio v-model="radioValue" :label="2"> 不指定 </el-radio> | ||
| 129 | + </el-form-item> | ||
| 130 | + | ||
| 131 | + <el-form-item> | ||
| 132 | + <el-radio v-model="radioValue" :label="3"> | ||
| 133 | + 周期从 | ||
| 134 | + <el-input-number v-model="cycle01" :min="1" :max="30" /> - | ||
| 135 | + <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 2" :max="31" /> 日 | ||
| 136 | + </el-radio> | ||
| 137 | + </el-form-item> | ||
| 138 | + | ||
| 139 | + <el-form-item> | ||
| 140 | + <el-radio v-model="radioValue" :label="4"> | ||
| 141 | + 从 | ||
| 142 | + <el-input-number v-model="average01" :min="1" :max="30" /> 号开始,每 | ||
| 143 | + <el-input-number v-model="average02" :min="1" :max="31 - average01 || 1" /> 日执行一次 | ||
| 144 | + </el-radio> | ||
| 145 | + </el-form-item> | ||
| 146 | + | ||
| 147 | + <el-form-item> | ||
| 148 | + <el-radio v-model="radioValue" :label="5"> | ||
| 149 | + 每月 | ||
| 150 | + <el-input-number v-model="workday" :min="1" :max="31" /> 号最近的那个工作日 | ||
| 151 | + </el-radio> | ||
| 152 | + </el-form-item> | ||
| 153 | + | ||
| 154 | + <el-form-item> | ||
| 155 | + <el-radio v-model="radioValue" :label="6"> 本月最后一天 </el-radio> | ||
| 156 | + </el-form-item> | ||
| 157 | + | ||
| 158 | + <el-form-item> | ||
| 159 | + <el-radio v-model="radioValue" :label="7"> | ||
| 160 | + 指定 | ||
| 161 | + <el-select | ||
| 162 | + clearable | ||
| 163 | + v-model="checkboxList" | ||
| 164 | + placeholder="可多选" | ||
| 165 | + multiple | ||
| 166 | + style="width: 100%" | ||
| 167 | + > | ||
| 168 | + <el-option v-for="item in 31" :key="item" :value="item">{{ item }}</el-option> | ||
| 169 | + </el-select> | ||
| 170 | + </el-radio> | ||
| 171 | + </el-form-item> | ||
| 172 | + </el-form> | ||
| 173 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/hour.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/hour.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio v-model="radioValue" :label="1"> 小时,允许的通配符[, - * /] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio v-model="radioValue" :label="2"> | ||
| 9 | - 周期从 | ||
| 10 | - <el-input-number v-model="cycle01" :min="0" :max="22" /> - | ||
| 11 | - <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 1" :max="23" /> 小时 | ||
| 12 | - </el-radio> | ||
| 13 | - </el-form-item> | ||
| 14 | - | ||
| 15 | - <el-form-item> | ||
| 16 | - <el-radio v-model="radioValue" :label="3"> | ||
| 17 | - 从 | ||
| 18 | - <el-input-number v-model="average01" :min="0" :max="22" /> 小时开始,每 | ||
| 19 | - <el-input-number v-model="average02" :min="1" :max="23 - average01 || 0" /> 小时执行一次 | ||
| 20 | - </el-radio> | ||
| 21 | - </el-form-item> | ||
| 22 | - | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-radio v-model="radioValue" :label="4"> | ||
| 25 | - 指定 | ||
| 26 | - <el-select | ||
| 27 | - clearable | ||
| 28 | - v-model="checkboxList" | ||
| 29 | - placeholder="可多选" | ||
| 30 | - multiple | ||
| 31 | - style="width: 100%" | ||
| 32 | - > | ||
| 33 | - <el-option v-for="item in 24" :key="item" :value="item - 1">{{ item - 1 }}</el-option> | ||
| 34 | - </el-select> | ||
| 35 | - </el-radio> | ||
| 36 | - </el-form-item> | ||
| 37 | - </el-form> | ||
| 38 | -</template> | ||
| 39 | - | ||
| 40 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 41 | import { computed, ref, watch } from 'vue' | 2 | import { computed, ref, watch } from 'vue' |
| 42 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 43 | const props = defineProps({ | 4 | const props = defineProps({ |
| 44 | check: { | 5 | check: { |
| 45 | type: Function, | 6 | type: Function, |
| @@ -119,3 +80,41 @@ watch(radioValue, () => { | @@ -119,3 +80,41 @@ watch(radioValue, () => { | ||
| 119 | } | 80 | } |
| 120 | }) | 81 | }) |
| 121 | </script> | 82 | </script> |
| 83 | +<template> | ||
| 84 | + <el-form> | ||
| 85 | + <el-form-item> | ||
| 86 | + <el-radio v-model="radioValue" :label="1"> 小时,允许的通配符[, - * /] </el-radio> | ||
| 87 | + </el-form-item> | ||
| 88 | + | ||
| 89 | + <el-form-item> | ||
| 90 | + <el-radio v-model="radioValue" :label="2"> | ||
| 91 | + 周期从 | ||
| 92 | + <el-input-number v-model="cycle01" :min="0" :max="22" /> - | ||
| 93 | + <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 1" :max="23" /> 小时 | ||
| 94 | + </el-radio> | ||
| 95 | + </el-form-item> | ||
| 96 | + | ||
| 97 | + <el-form-item> | ||
| 98 | + <el-radio v-model="radioValue" :label="3"> | ||
| 99 | + 从 | ||
| 100 | + <el-input-number v-model="average01" :min="0" :max="22" /> 小时开始,每 | ||
| 101 | + <el-input-number v-model="average02" :min="1" :max="23 - average01 || 0" /> 小时执行一次 | ||
| 102 | + </el-radio> | ||
| 103 | + </el-form-item> | ||
| 104 | + | ||
| 105 | + <el-form-item> | ||
| 106 | + <el-radio v-model="radioValue" :label="4"> | ||
| 107 | + 指定 | ||
| 108 | + <el-select | ||
| 109 | + clearable | ||
| 110 | + v-model="checkboxList" | ||
| 111 | + placeholder="可多选" | ||
| 112 | + multiple | ||
| 113 | + style="width: 100%" | ||
| 114 | + > | ||
| 115 | + <el-option v-for="item in 24" :key="item" :value="item - 1">{{ item - 1 }}</el-option> | ||
| 116 | + </el-select> | ||
| 117 | + </el-radio> | ||
| 118 | + </el-form-item> | ||
| 119 | + </el-form> | ||
| 120 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/src/components/index.ts
0 → 100644
| 1 | +import CrontabSecond from './second.vue' | ||
| 2 | +import CrontabMin from './min.vue' | ||
| 3 | +import CrontabHour from './hour.vue' | ||
| 4 | +import CrontabDay from './day.vue' | ||
| 5 | +import CrontabMonth from './month.vue' | ||
| 6 | +import CrontabWeek from './week.vue' | ||
| 7 | +import CrontabYear from './year.vue' | ||
| 8 | +import CrontabResult from './result.vue' | ||
| 9 | + | ||
| 10 | +export { | ||
| 11 | + CrontabSecond, | ||
| 12 | + CrontabMin, | ||
| 13 | + CrontabHour, | ||
| 14 | + CrontabDay, | ||
| 15 | + CrontabMonth, | ||
| 16 | + CrontabWeek, | ||
| 17 | + CrontabYear, | ||
| 18 | + CrontabResult | ||
| 19 | +} |
yudao-ui-admin-vue3/src/components/Crontab/min.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/min.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio v-model="radioValue" :label="1"> 分钟,允许的通配符[, - * /] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio v-model="radioValue" :label="2"> | ||
| 9 | - 周期从 | ||
| 10 | - <el-input-number v-model="cycle01" :min="0" :max="58" /> - | ||
| 11 | - <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 1" :max="59" /> 分钟 | ||
| 12 | - </el-radio> | ||
| 13 | - </el-form-item> | ||
| 14 | - | ||
| 15 | - <el-form-item> | ||
| 16 | - <el-radio v-model="radioValue" :label="3"> | ||
| 17 | - 从 | ||
| 18 | - <el-input-number v-model="average01" :min="0" :max="58" /> 分钟开始,每 | ||
| 19 | - <el-input-number v-model="average02" :min="1" :max="59 - average01 || 0" /> 分钟执行一次 | ||
| 20 | - </el-radio> | ||
| 21 | - </el-form-item> | ||
| 22 | - | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-radio v-model="radioValue" :label="4"> | ||
| 25 | - 指定 | ||
| 26 | - <el-select | ||
| 27 | - clearable | ||
| 28 | - v-model="checkboxList" | ||
| 29 | - placeholder="可多选" | ||
| 30 | - multiple | ||
| 31 | - style="width: 100%" | ||
| 32 | - > | ||
| 33 | - <el-option v-for="item in 60" :key="item" :value="item - 1">{{ item - 1 }}</el-option> | ||
| 34 | - </el-select> | ||
| 35 | - </el-radio> | ||
| 36 | - </el-form-item> | ||
| 37 | - </el-form> | ||
| 38 | -</template> | ||
| 39 | - | ||
| 40 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 41 | import { computed, ref, watch } from 'vue' | 2 | import { computed, ref, watch } from 'vue' |
| 42 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 43 | const props = defineProps({ | 4 | const props = defineProps({ |
| 44 | check: { | 5 | check: { |
| 45 | type: Function, | 6 | type: Function, |
| @@ -119,3 +80,41 @@ watch(radioValue, () => { | @@ -119,3 +80,41 @@ watch(radioValue, () => { | ||
| 119 | } | 80 | } |
| 120 | }) | 81 | }) |
| 121 | </script> | 82 | </script> |
| 83 | +<template> | ||
| 84 | + <el-form> | ||
| 85 | + <el-form-item> | ||
| 86 | + <el-radio v-model="radioValue" :label="1"> 分钟,允许的通配符[, - * /] </el-radio> | ||
| 87 | + </el-form-item> | ||
| 88 | + | ||
| 89 | + <el-form-item> | ||
| 90 | + <el-radio v-model="radioValue" :label="2"> | ||
| 91 | + 周期从 | ||
| 92 | + <el-input-number v-model="cycle01" :min="0" :max="58" /> - | ||
| 93 | + <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 1" :max="59" /> 分钟 | ||
| 94 | + </el-radio> | ||
| 95 | + </el-form-item> | ||
| 96 | + | ||
| 97 | + <el-form-item> | ||
| 98 | + <el-radio v-model="radioValue" :label="3"> | ||
| 99 | + 从 | ||
| 100 | + <el-input-number v-model="average01" :min="0" :max="58" /> 分钟开始,每 | ||
| 101 | + <el-input-number v-model="average02" :min="1" :max="59 - average01 || 0" /> 分钟执行一次 | ||
| 102 | + </el-radio> | ||
| 103 | + </el-form-item> | ||
| 104 | + | ||
| 105 | + <el-form-item> | ||
| 106 | + <el-radio v-model="radioValue" :label="4"> | ||
| 107 | + 指定 | ||
| 108 | + <el-select | ||
| 109 | + clearable | ||
| 110 | + v-model="checkboxList" | ||
| 111 | + placeholder="可多选" | ||
| 112 | + multiple | ||
| 113 | + style="width: 100%" | ||
| 114 | + > | ||
| 115 | + <el-option v-for="item in 60" :key="item" :value="item - 1">{{ item - 1 }}</el-option> | ||
| 116 | + </el-select> | ||
| 117 | + </el-radio> | ||
| 118 | + </el-form-item> | ||
| 119 | + </el-form> | ||
| 120 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/month.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/month.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio v-model="radioValue" :label="1"> 月,允许的通配符[, - * /] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio v-model="radioValue" :label="2"> | ||
| 9 | - 周期从 | ||
| 10 | - <el-input-number v-model="cycle01" :min="1" :max="11" /> - | ||
| 11 | - <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 2" :max="12" /> 月 | ||
| 12 | - </el-radio> | ||
| 13 | - </el-form-item> | ||
| 14 | - | ||
| 15 | - <el-form-item> | ||
| 16 | - <el-radio v-model="radioValue" :label="3"> | ||
| 17 | - 从 | ||
| 18 | - <el-input-number v-model="average01" :min="1" :max="11" /> 月开始,每 | ||
| 19 | - <el-input-number v-model="average02" :min="1" :max="12 - average01 || 0" /> 月月执行一次 | ||
| 20 | - </el-radio> | ||
| 21 | - </el-form-item> | ||
| 22 | - | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-radio v-model="radioValue" :label="4"> | ||
| 25 | - 指定 | ||
| 26 | - <el-select | ||
| 27 | - clearable | ||
| 28 | - v-model="checkboxList" | ||
| 29 | - placeholder="可多选" | ||
| 30 | - multiple | ||
| 31 | - style="width: 100%" | ||
| 32 | - > | ||
| 33 | - <el-option v-for="item in 12" :key="item" :value="item">{{ item }}</el-option> | ||
| 34 | - </el-select> | ||
| 35 | - </el-radio> | ||
| 36 | - </el-form-item> | ||
| 37 | - </el-form> | ||
| 38 | -</template> | ||
| 39 | - | ||
| 40 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 41 | import { computed, ref, watch } from 'vue' | 2 | import { computed, ref, watch } from 'vue' |
| 42 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 43 | const props = defineProps({ | 4 | const props = defineProps({ |
| 44 | check: { | 5 | check: { |
| 45 | type: Function, | 6 | type: Function, |
| @@ -119,3 +80,41 @@ watch(radioValue, () => { | @@ -119,3 +80,41 @@ watch(radioValue, () => { | ||
| 119 | } | 80 | } |
| 120 | }) | 81 | }) |
| 121 | </script> | 82 | </script> |
| 83 | +<template> | ||
| 84 | + <el-form> | ||
| 85 | + <el-form-item> | ||
| 86 | + <el-radio v-model="radioValue" :label="1"> 月,允许的通配符[, - * /] </el-radio> | ||
| 87 | + </el-form-item> | ||
| 88 | + | ||
| 89 | + <el-form-item> | ||
| 90 | + <el-radio v-model="radioValue" :label="2"> | ||
| 91 | + 周期从 | ||
| 92 | + <el-input-number v-model="cycle01" :min="1" :max="11" /> - | ||
| 93 | + <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 2" :max="12" /> 月 | ||
| 94 | + </el-radio> | ||
| 95 | + </el-form-item> | ||
| 96 | + | ||
| 97 | + <el-form-item> | ||
| 98 | + <el-radio v-model="radioValue" :label="3"> | ||
| 99 | + 从 | ||
| 100 | + <el-input-number v-model="average01" :min="1" :max="11" /> 月开始,每 | ||
| 101 | + <el-input-number v-model="average02" :min="1" :max="12 - average01 || 0" /> 月月执行一次 | ||
| 102 | + </el-radio> | ||
| 103 | + </el-form-item> | ||
| 104 | + | ||
| 105 | + <el-form-item> | ||
| 106 | + <el-radio v-model="radioValue" :label="4"> | ||
| 107 | + 指定 | ||
| 108 | + <el-select | ||
| 109 | + clearable | ||
| 110 | + v-model="checkboxList" | ||
| 111 | + placeholder="可多选" | ||
| 112 | + multiple | ||
| 113 | + style="width: 100%" | ||
| 114 | + > | ||
| 115 | + <el-option v-for="item in 12" :key="item" :value="item">{{ item }}</el-option> | ||
| 116 | + </el-select> | ||
| 117 | + </el-radio> | ||
| 118 | + </el-form-item> | ||
| 119 | + </el-form> | ||
| 120 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/result.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/result.vue
| 1 | -<template> | ||
| 2 | - <div class="popup-result"> | ||
| 3 | - <p class="title">最近5次运行时间</p> | ||
| 4 | - <ul class="popup-result-scroll"> | ||
| 5 | - <template v-if="isShow"> | ||
| 6 | - <li v-for="item in resultList" :key="item">{{ item }}</li> | ||
| 7 | - </template> | ||
| 8 | - <li v-else>计算结果中...</li> | ||
| 9 | - </ul> | ||
| 10 | - </div> | ||
| 11 | -</template> | ||
| 12 | - | ||
| 13 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 14 | import { onMounted, ref, watch } from 'vue' | 2 | import { onMounted, ref, watch } from 'vue' |
| 15 | 3 | ||
| 16 | const props = defineProps({ | 4 | const props = defineProps({ |
| @@ -572,3 +560,14 @@ function checkDate(value) { | @@ -572,3 +560,14 @@ function checkDate(value) { | ||
| 572 | return value === format | 560 | return value === format |
| 573 | } | 561 | } |
| 574 | </script> | 562 | </script> |
| 563 | +<template> | ||
| 564 | + <div class="popup-result"> | ||
| 565 | + <p class="title">最近5次运行时间</p> | ||
| 566 | + <ul class="popup-result-scroll"> | ||
| 567 | + <template v-if="isShow"> | ||
| 568 | + <li v-for="item in resultList" :key="item">{{ item }}</li> | ||
| 569 | + </template> | ||
| 570 | + <li v-else>计算结果中...</li> | ||
| 571 | + </ul> | ||
| 572 | + </div> | ||
| 573 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/second.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/second.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio v-model="radioValue" :label="1"> 秒,允许的通配符[, - * /] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio v-model="radioValue" :label="2"> | ||
| 9 | - 周期从 | ||
| 10 | - <el-input-number v-model="cycle01" :min="0" :max="58" /> - | ||
| 11 | - <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 1" :max="59" /> 秒 | ||
| 12 | - </el-radio> | ||
| 13 | - </el-form-item> | ||
| 14 | - | ||
| 15 | - <el-form-item> | ||
| 16 | - <el-radio v-model="radioValue" :label="3"> | ||
| 17 | - 从 | ||
| 18 | - <el-input-number v-model="average01" :min="0" :max="58" /> 秒开始,每 | ||
| 19 | - <el-input-number v-model="average02" :min="1" :max="59 - average01 || 0" /> 秒执行一次 | ||
| 20 | - </el-radio> | ||
| 21 | - </el-form-item> | ||
| 22 | - | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-radio v-model="radioValue" :label="4"> | ||
| 25 | - 指定 | ||
| 26 | - <el-select | ||
| 27 | - clearable | ||
| 28 | - v-model="checkboxList" | ||
| 29 | - placeholder="可多选" | ||
| 30 | - multiple | ||
| 31 | - style="width: 100%" | ||
| 32 | - > | ||
| 33 | - <el-option v-for="item in 60" :key="item" :value="item - 1">{{ item - 1 }}</el-option> | ||
| 34 | - </el-select> | ||
| 35 | - </el-radio> | ||
| 36 | - </el-form-item> | ||
| 37 | - </el-form> | ||
| 38 | -</template> | ||
| 39 | - | ||
| 40 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 41 | import { computed, ref, watch } from 'vue' | 2 | import { computed, ref, watch } from 'vue' |
| 42 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 43 | const props = defineProps({ | 4 | const props = defineProps({ |
| 44 | check: { | 5 | check: { |
| 45 | type: Function, | 6 | type: Function, |
| @@ -119,3 +80,41 @@ watch(radioValue, () => { | @@ -119,3 +80,41 @@ watch(radioValue, () => { | ||
| 119 | } | 80 | } |
| 120 | }) | 81 | }) |
| 121 | </script> | 82 | </script> |
| 83 | +<template> | ||
| 84 | + <el-form> | ||
| 85 | + <el-form-item> | ||
| 86 | + <el-radio v-model="radioValue" :label="1"> 秒,允许的通配符[, - * /] </el-radio> | ||
| 87 | + </el-form-item> | ||
| 88 | + | ||
| 89 | + <el-form-item> | ||
| 90 | + <el-radio v-model="radioValue" :label="2"> | ||
| 91 | + 周期从 | ||
| 92 | + <el-input-number v-model="cycle01" :min="0" :max="58" /> - | ||
| 93 | + <el-input-number v-model="cycle02" :min="cycle01 ? cycle01 + 1 : 1" :max="59" /> 秒 | ||
| 94 | + </el-radio> | ||
| 95 | + </el-form-item> | ||
| 96 | + | ||
| 97 | + <el-form-item> | ||
| 98 | + <el-radio v-model="radioValue" :label="3"> | ||
| 99 | + 从 | ||
| 100 | + <el-input-number v-model="average01" :min="0" :max="58" /> 秒开始,每 | ||
| 101 | + <el-input-number v-model="average02" :min="1" :max="59 - average01 || 0" /> 秒执行一次 | ||
| 102 | + </el-radio> | ||
| 103 | + </el-form-item> | ||
| 104 | + | ||
| 105 | + <el-form-item> | ||
| 106 | + <el-radio v-model="radioValue" :label="4"> | ||
| 107 | + 指定 | ||
| 108 | + <el-select | ||
| 109 | + clearable | ||
| 110 | + v-model="checkboxList" | ||
| 111 | + placeholder="可多选" | ||
| 112 | + multiple | ||
| 113 | + style="width: 100%" | ||
| 114 | + > | ||
| 115 | + <el-option v-for="item in 60" :key="item" :value="item - 1">{{ item - 1 }}</el-option> | ||
| 116 | + </el-select> | ||
| 117 | + </el-radio> | ||
| 118 | + </el-form-item> | ||
| 119 | + </el-form> | ||
| 120 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/week.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/week.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio v-model="radioValue" :label="1"> 周,允许的通配符[, - * ? / L #] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio v-model="radioValue" :label="2"> 不指定 </el-radio> | ||
| 9 | - </el-form-item> | ||
| 10 | - | ||
| 11 | - <el-form-item> | ||
| 12 | - <el-radio v-model="radioValue" :label="3"> | ||
| 13 | - 周期从星期 | ||
| 14 | - <el-select clearable v-model="cycle01"> | ||
| 15 | - <el-option | ||
| 16 | - v-for="(item, index) of weekList" | ||
| 17 | - :key="index" | ||
| 18 | - :label="item.value" | ||
| 19 | - :value="item.key" | ||
| 20 | - :disabled="item.key === 1" | ||
| 21 | - >{{ item.value }}</el-option | ||
| 22 | - > | ||
| 23 | - </el-select> | ||
| 24 | - - | ||
| 25 | - <el-select clearable v-model="cycle02"> | ||
| 26 | - <el-option | ||
| 27 | - v-for="(item, index) of weekList" | ||
| 28 | - :key="index" | ||
| 29 | - :label="item.value" | ||
| 30 | - :value="item.key" | ||
| 31 | - :disabled="item.key < cycle01 && item.key !== 1" | ||
| 32 | - >{{ item.value }}</el-option | ||
| 33 | - > | ||
| 34 | - </el-select> | ||
| 35 | - </el-radio> | ||
| 36 | - </el-form-item> | ||
| 37 | - | ||
| 38 | - <el-form-item> | ||
| 39 | - <el-radio v-model="radioValue" :label="4"> | ||
| 40 | - 第 | ||
| 41 | - <el-input-number v-model="average01" :min="1" :max="4" /> 周的星期 | ||
| 42 | - <el-select clearable v-model="average02"> | ||
| 43 | - <el-option | ||
| 44 | - v-for="(item, index) of weekList" | ||
| 45 | - :key="index" | ||
| 46 | - :label="item.value" | ||
| 47 | - :value="item.key" | ||
| 48 | - >{{ item.value }}</el-option | ||
| 49 | - > | ||
| 50 | - </el-select> | ||
| 51 | - </el-radio> | ||
| 52 | - </el-form-item> | ||
| 53 | - | ||
| 54 | - <el-form-item> | ||
| 55 | - <el-radio v-model="radioValue" :label="5"> | ||
| 56 | - 本月最后一个星期 | ||
| 57 | - <el-select clearable v-model="weekday"> | ||
| 58 | - <el-option | ||
| 59 | - v-for="(item, index) of weekList" | ||
| 60 | - :key="index" | ||
| 61 | - :label="item.value" | ||
| 62 | - :value="item.key" | ||
| 63 | - >{{ item.value }}</el-option | ||
| 64 | - > | ||
| 65 | - </el-select> | ||
| 66 | - </el-radio> | ||
| 67 | - </el-form-item> | ||
| 68 | - | ||
| 69 | - <el-form-item> | ||
| 70 | - <el-radio v-model="radioValue" :label="6"> | ||
| 71 | - 指定 | ||
| 72 | - <el-select | ||
| 73 | - clearable | ||
| 74 | - v-model="checkboxList" | ||
| 75 | - placeholder="可多选" | ||
| 76 | - multiple | ||
| 77 | - style="width: 100%" | ||
| 78 | - > | ||
| 79 | - <el-option | ||
| 80 | - v-for="(item, index) of weekList" | ||
| 81 | - :key="index" | ||
| 82 | - :label="item.value" | ||
| 83 | - :value="String(item.key)" | ||
| 84 | - >{{ item.value }}</el-option | ||
| 85 | - > | ||
| 86 | - </el-select> | ||
| 87 | - </el-radio> | ||
| 88 | - </el-form-item> | ||
| 89 | - </el-form> | ||
| 90 | -</template> | ||
| 91 | - | ||
| 92 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 93 | import { computed, ref, watch } from 'vue' | 2 | import { computed, ref, watch } from 'vue' |
| 94 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 95 | const props = defineProps({ | 4 | const props = defineProps({ |
| 96 | check: { | 5 | check: { |
| 97 | type: Function, | 6 | type: Function, |
| @@ -222,3 +131,93 @@ watch(radioValue, () => { | @@ -222,3 +131,93 @@ watch(radioValue, () => { | ||
| 222 | } | 131 | } |
| 223 | }) | 132 | }) |
| 224 | </script> | 133 | </script> |
| 134 | +<template> | ||
| 135 | + <el-form> | ||
| 136 | + <el-form-item> | ||
| 137 | + <el-radio v-model="radioValue" :label="1"> 周,允许的通配符[, - * ? / L #] </el-radio> | ||
| 138 | + </el-form-item> | ||
| 139 | + | ||
| 140 | + <el-form-item> | ||
| 141 | + <el-radio v-model="radioValue" :label="2"> 不指定 </el-radio> | ||
| 142 | + </el-form-item> | ||
| 143 | + | ||
| 144 | + <el-form-item> | ||
| 145 | + <el-radio v-model="radioValue" :label="3"> | ||
| 146 | + 周期从星期 | ||
| 147 | + <el-select clearable v-model="cycle01"> | ||
| 148 | + <el-option | ||
| 149 | + v-for="(item, index) of weekList" | ||
| 150 | + :key="index" | ||
| 151 | + :label="item.value" | ||
| 152 | + :value="item.key" | ||
| 153 | + :disabled="item.key === 1" | ||
| 154 | + >{{ item.value }}</el-option | ||
| 155 | + > | ||
| 156 | + </el-select> | ||
| 157 | + - | ||
| 158 | + <el-select clearable v-model="cycle02"> | ||
| 159 | + <el-option | ||
| 160 | + v-for="(item, index) of weekList" | ||
| 161 | + :key="index" | ||
| 162 | + :label="item.value" | ||
| 163 | + :value="item.key" | ||
| 164 | + :disabled="item.key < cycle01 && item.key !== 1" | ||
| 165 | + >{{ item.value }}</el-option | ||
| 166 | + > | ||
| 167 | + </el-select> | ||
| 168 | + </el-radio> | ||
| 169 | + </el-form-item> | ||
| 170 | + | ||
| 171 | + <el-form-item> | ||
| 172 | + <el-radio v-model="radioValue" :label="4"> | ||
| 173 | + 第 | ||
| 174 | + <el-input-number v-model="average01" :min="1" :max="4" /> 周的星期 | ||
| 175 | + <el-select clearable v-model="average02"> | ||
| 176 | + <el-option | ||
| 177 | + v-for="(item, index) of weekList" | ||
| 178 | + :key="index" | ||
| 179 | + :label="item.value" | ||
| 180 | + :value="item.key" | ||
| 181 | + >{{ item.value }}</el-option | ||
| 182 | + > | ||
| 183 | + </el-select> | ||
| 184 | + </el-radio> | ||
| 185 | + </el-form-item> | ||
| 186 | + | ||
| 187 | + <el-form-item> | ||
| 188 | + <el-radio v-model="radioValue" :label="5"> | ||
| 189 | + 本月最后一个星期 | ||
| 190 | + <el-select clearable v-model="weekday"> | ||
| 191 | + <el-option | ||
| 192 | + v-for="(item, index) of weekList" | ||
| 193 | + :key="index" | ||
| 194 | + :label="item.value" | ||
| 195 | + :value="item.key" | ||
| 196 | + >{{ item.value }}</el-option | ||
| 197 | + > | ||
| 198 | + </el-select> | ||
| 199 | + </el-radio> | ||
| 200 | + </el-form-item> | ||
| 201 | + | ||
| 202 | + <el-form-item> | ||
| 203 | + <el-radio v-model="radioValue" :label="6"> | ||
| 204 | + 指定 | ||
| 205 | + <el-select | ||
| 206 | + clearable | ||
| 207 | + v-model="checkboxList" | ||
| 208 | + placeholder="可多选" | ||
| 209 | + multiple | ||
| 210 | + style="width: 100%" | ||
| 211 | + > | ||
| 212 | + <el-option | ||
| 213 | + v-for="(item, index) of weekList" | ||
| 214 | + :key="index" | ||
| 215 | + :label="item.value" | ||
| 216 | + :value="String(item.key)" | ||
| 217 | + >{{ item.value }}</el-option | ||
| 218 | + > | ||
| 219 | + </el-select> | ||
| 220 | + </el-radio> | ||
| 221 | + </el-form-item> | ||
| 222 | + </el-form> | ||
| 223 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/year.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/components/year.vue
| 1 | -<template> | ||
| 2 | - <el-form size="small"> | ||
| 3 | - <el-form-item> | ||
| 4 | - <el-radio label="1" v-model="radioValue"> 不填,允许的通配符[, - * /] </el-radio> | ||
| 5 | - </el-form-item> | ||
| 6 | - | ||
| 7 | - <el-form-item> | ||
| 8 | - <el-radio label="2" v-model="radioValue"> 每年 </el-radio> | ||
| 9 | - </el-form-item> | ||
| 10 | - | ||
| 11 | - <el-form-item> | ||
| 12 | - <el-radio label="3" v-model="radioValue"> | ||
| 13 | - 周期从 | ||
| 14 | - <el-input-number v-model="cycle01" :min="fullYear" :max="2098" /> - | ||
| 15 | - <el-input-number | ||
| 16 | - v-model="cycle02" | ||
| 17 | - :min="cycle01 ? cycle01 + 1 : fullYear + 1" | ||
| 18 | - :max="2099" | ||
| 19 | - /> | ||
| 20 | - </el-radio> | ||
| 21 | - </el-form-item> | ||
| 22 | - | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-radio label="4" v-model="radioValue"> | ||
| 25 | - 从 | ||
| 26 | - <el-input-number v-model="average01" :min="fullYear" :max="2098" /> 年开始,每 | ||
| 27 | - <el-input-number v-model="average02" :min="1" :max="2099 - average01 || fullYear" /> | ||
| 28 | - 年执行一次 | ||
| 29 | - </el-radio> | ||
| 30 | - </el-form-item> | ||
| 31 | - | ||
| 32 | - <el-form-item> | ||
| 33 | - <el-radio label="5" v-model="radioValue"> | ||
| 34 | - 指定 | ||
| 35 | - <el-select clearable v-model="checkboxList" placeholder="可多选" multiple> | ||
| 36 | - <el-option | ||
| 37 | - v-for="item in 9" | ||
| 38 | - :key="item" | ||
| 39 | - :value="item - 1 + fullYear" | ||
| 40 | - :label="item - 1 + fullYear" | ||
| 41 | - /> | ||
| 42 | - </el-select> | ||
| 43 | - </el-radio> | ||
| 44 | - </el-form-item> | ||
| 45 | - </el-form> | ||
| 46 | -</template> | ||
| 47 | - | ||
| 48 | -<script lang="ts" setup> | 1 | +<script setup lang="ts"> |
| 49 | import { computed, onMounted, ref, watch } from 'vue' | 2 | import { computed, onMounted, ref, watch } from 'vue' |
| 50 | - | 3 | +import { ElForm, ElFormItem, ElRadio, ElSelect, ElOption, ElInputNumber } from 'element-plus' |
| 51 | const props = defineProps({ | 4 | const props = defineProps({ |
| 52 | check: { | 5 | check: { |
| 53 | type: Function, | 6 | type: Function, |
| @@ -138,3 +91,49 @@ onMounted(() => { | @@ -138,3 +91,49 @@ onMounted(() => { | ||
| 138 | average01.value = fullYear.value | 91 | average01.value = fullYear.value |
| 139 | }) | 92 | }) |
| 140 | </script> | 93 | </script> |
| 94 | +<template> | ||
| 95 | + <el-form> | ||
| 96 | + <el-form-item> | ||
| 97 | + <el-radio label="1" v-model="radioValue"> 不填,允许的通配符[, - * /] </el-radio> | ||
| 98 | + </el-form-item> | ||
| 99 | + | ||
| 100 | + <el-form-item> | ||
| 101 | + <el-radio label="2" v-model="radioValue"> 每年 </el-radio> | ||
| 102 | + </el-form-item> | ||
| 103 | + | ||
| 104 | + <el-form-item> | ||
| 105 | + <el-radio label="3" v-model="radioValue"> | ||
| 106 | + 周期从 | ||
| 107 | + <el-input-number v-model="cycle01" :min="fullYear" :max="2098" /> - | ||
| 108 | + <el-input-number | ||
| 109 | + v-model="cycle02" | ||
| 110 | + :min="cycle01 ? cycle01 + 1 : fullYear + 1" | ||
| 111 | + :max="2099" | ||
| 112 | + /> | ||
| 113 | + </el-radio> | ||
| 114 | + </el-form-item> | ||
| 115 | + | ||
| 116 | + <el-form-item> | ||
| 117 | + <el-radio label="4" v-model="radioValue"> | ||
| 118 | + 从 | ||
| 119 | + <el-input-number v-model="average01" :min="fullYear" :max="2098" /> 年开始,每 | ||
| 120 | + <el-input-number v-model="average02" :min="1" :max="2099 - average01 || fullYear" /> | ||
| 121 | + 年执行一次 | ||
| 122 | + </el-radio> | ||
| 123 | + </el-form-item> | ||
| 124 | + | ||
| 125 | + <el-form-item> | ||
| 126 | + <el-radio label="5" v-model="radioValue"> | ||
| 127 | + 指定 | ||
| 128 | + <el-select clearable v-model="checkboxList" placeholder="可多选" multiple> | ||
| 129 | + <el-option | ||
| 130 | + v-for="item in 9" | ||
| 131 | + :key="item" | ||
| 132 | + :value="item - 1 + fullYear" | ||
| 133 | + :label="item - 1 + fullYear" | ||
| 134 | + /> | ||
| 135 | + </el-select> | ||
| 136 | + </el-radio> | ||
| 137 | + </el-form-item> | ||
| 138 | + </el-form> | ||
| 139 | +</template> |
yudao-ui-admin-vue3/src/components/Crontab/index.vue renamed to yudao-ui-admin-vue3/src/components/Crontab/src/index.vue
| 1 | -<template> | ||
| 2 | - <div> | ||
| 3 | - <el-tabs type="border-card"> | ||
| 4 | - <el-tab-pane label="秒" v-if="shouldHide('second')"> | ||
| 5 | - <CrontabSecond | ||
| 6 | - @update="updateCrontabValue" | ||
| 7 | - :check="checkNumber" | ||
| 8 | - :cron="crontabValueObj" | ||
| 9 | - ref="cronsecond" | ||
| 10 | - /> | ||
| 11 | - </el-tab-pane> | ||
| 12 | - | ||
| 13 | - <el-tab-pane label="分钟" v-if="shouldHide('min')"> | ||
| 14 | - <CrontabMin | ||
| 15 | - @update="updateCrontabValue" | ||
| 16 | - :check="checkNumber" | ||
| 17 | - :cron="crontabValueObj" | ||
| 18 | - ref="cronmin" | ||
| 19 | - /> | ||
| 20 | - </el-tab-pane> | ||
| 21 | - | ||
| 22 | - <el-tab-pane label="小时" v-if="shouldHide('hour')"> | ||
| 23 | - <CrontabHour | ||
| 24 | - @update="updateCrontabValue" | ||
| 25 | - :check="checkNumber" | ||
| 26 | - :cron="crontabValueObj" | ||
| 27 | - ref="cronhour" | ||
| 28 | - /> | ||
| 29 | - </el-tab-pane> | ||
| 30 | - | ||
| 31 | - <el-tab-pane label="日" v-if="shouldHide('day')"> | ||
| 32 | - <CrontabDay | ||
| 33 | - @update="updateCrontabValue" | ||
| 34 | - :check="checkNumber" | ||
| 35 | - :cron="crontabValueObj" | ||
| 36 | - ref="cronday" | ||
| 37 | - /> | ||
| 38 | - </el-tab-pane> | ||
| 39 | - | ||
| 40 | - <el-tab-pane label="月" v-if="shouldHide('month')"> | ||
| 41 | - <CrontabMonth | ||
| 42 | - @update="updateCrontabValue" | ||
| 43 | - :check="checkNumber" | ||
| 44 | - :cron="crontabValueObj" | ||
| 45 | - ref="cronmonth" | ||
| 46 | - /> | ||
| 47 | - </el-tab-pane> | ||
| 48 | - | ||
| 49 | - <el-tab-pane label="周" v-if="shouldHide('week')"> | ||
| 50 | - <CrontabWeek | ||
| 51 | - @update="updateCrontabValue" | ||
| 52 | - :check="checkNumber" | ||
| 53 | - :cron="crontabValueObj" | ||
| 54 | - ref="cronweek" | ||
| 55 | - /> | ||
| 56 | - </el-tab-pane> | ||
| 57 | - | ||
| 58 | - <el-tab-pane label="年" v-if="shouldHide('year')"> | ||
| 59 | - <CrontabYear | ||
| 60 | - @update="updateCrontabValue" | ||
| 61 | - :check="checkNumber" | ||
| 62 | - :cron="crontabValueObj" | ||
| 63 | - ref="cronyear" | ||
| 64 | - /> | ||
| 65 | - </el-tab-pane> | ||
| 66 | - </el-tabs> | ||
| 67 | - | ||
| 68 | - <div class="popup-main"> | ||
| 69 | - <div class="popup-result"> | ||
| 70 | - <p class="title">时间表达式</p> | ||
| 71 | - <table> | ||
| 72 | - <thead> | ||
| 73 | - <th v-for="item of tabTitles" width="40" :key="item">{{ item }}</th> | ||
| 74 | - <th>Cron 表达式</th> | ||
| 75 | - </thead> | ||
| 76 | - <tbody> | ||
| 77 | - <td> | ||
| 78 | - <span>{{ crontabValueObj.second }}</span> | ||
| 79 | - </td> | ||
| 80 | - <td> | ||
| 81 | - <span>{{ crontabValueObj.min }}</span> | ||
| 82 | - </td> | ||
| 83 | - <td> | ||
| 84 | - <span>{{ crontabValueObj.hour }}</span> | ||
| 85 | - </td> | ||
| 86 | - <td> | ||
| 87 | - <span>{{ crontabValueObj.day }}</span> | ||
| 88 | - </td> | ||
| 89 | - <td> | ||
| 90 | - <span>{{ crontabValueObj.month }}</span> | ||
| 91 | - </td> | ||
| 92 | - <td> | ||
| 93 | - <span>{{ crontabValueObj.week }}</span> | ||
| 94 | - </td> | ||
| 95 | - <td> | ||
| 96 | - <span>{{ crontabValueObj.year }}</span> | ||
| 97 | - </td> | ||
| 98 | - <td> | ||
| 99 | - <span>{{ crontabValueString }}</span> | ||
| 100 | - </td> | ||
| 101 | - </tbody> | ||
| 102 | - </table> | ||
| 103 | - </div> | ||
| 104 | - <CrontabResult :ex="crontabValueString" /> | ||
| 105 | - | ||
| 106 | - <div class="pop_btn"> | ||
| 107 | - <el-button size="small" type="primary" @click="submitFill">确定</el-button> | ||
| 108 | - <el-button size="small" type="warning" @click="clearCron">重置</el-button> | ||
| 109 | - <el-button size="small" @click="hidePopup">取消</el-button> | ||
| 110 | - </div> | ||
| 111 | - </div> | ||
| 112 | - </div> | ||
| 113 | -</template> | ||
| 114 | - | ||
| 115 | -<script lang="ts" setup> | ||
| 116 | -import CrontabSecond from './second.vue' | ||
| 117 | -import CrontabMin from './min.vue' | ||
| 118 | -import CrontabHour from './hour.vue' | ||
| 119 | -import CrontabDay from './day.vue' | ||
| 120 | -import CrontabMonth from './month.vue' | ||
| 121 | -import CrontabWeek from './week.vue' | ||
| 122 | -import CrontabYear from './year.vue' | ||
| 123 | -import CrontabResult from './result.vue' | 1 | +<script setup lang="ts"> |
| 2 | +import { | ||
| 3 | + CrontabSecond, | ||
| 4 | + CrontabMin, | ||
| 5 | + CrontabHour, | ||
| 6 | + CrontabDay, | ||
| 7 | + CrontabMonth, | ||
| 8 | + CrontabWeek, | ||
| 9 | + CrontabYear, | ||
| 10 | + CrontabResult | ||
| 11 | +} from './components' | ||
| 12 | +import { ElTabs, ElTabPane } from 'element-plus' | ||
| 124 | import { computed, defineEmits, defineProps, onMounted, Ref, ref, watch } from 'vue' | 13 | import { computed, defineEmits, defineProps, onMounted, Ref, ref, watch } from 'vue' |
| 125 | 14 | ||
| 126 | const cronsecond = ref(null) | 15 | const cronsecond = ref(null) |
| @@ -208,7 +97,7 @@ function updateCrontabValue(name, value, from) { | @@ -208,7 +97,7 @@ function updateCrontabValue(name, value, from) { | ||
| 208 | changeRadio(name, value) | 97 | changeRadio(name, value) |
| 209 | } | 98 | } |
| 210 | } | 99 | } |
| 211 | - | 100 | +// 赋值到组件 |
| 212 | function changeRadio(name, value) { | 101 | function changeRadio(name, value) { |
| 213 | let arr = ['second', 'min', 'hour', 'month'], | 102 | let arr = ['second', 'min', 'hour', 'month'], |
| 214 | refName = 'cron' + name, | 103 | refName = 'cron' + name, |
| @@ -373,7 +262,119 @@ function clearCron() { | @@ -373,7 +262,119 @@ function clearCron() { | ||
| 373 | 262 | ||
| 374 | watch(() => props.expression, resolveExp) | 263 | watch(() => props.expression, resolveExp) |
| 375 | </script> | 264 | </script> |
| 265 | +<template> | ||
| 266 | + <div> | ||
| 267 | + <el-tabs type="border-card"> | ||
| 268 | + <el-tab-pane label="秒" v-if="shouldHide('second')"> | ||
| 269 | + <CrontabSecond | ||
| 270 | + @update="updateCrontabValue" | ||
| 271 | + :check="checkNumber" | ||
| 272 | + :cron="crontabValueObj" | ||
| 273 | + ref="cronsecond" | ||
| 274 | + /> | ||
| 275 | + </el-tab-pane> | ||
| 276 | + | ||
| 277 | + <el-tab-pane label="分钟" v-if="shouldHide('min')"> | ||
| 278 | + <CrontabMin | ||
| 279 | + @update="updateCrontabValue" | ||
| 280 | + :check="checkNumber" | ||
| 281 | + :cron="crontabValueObj" | ||
| 282 | + ref="cronmin" | ||
| 283 | + /> | ||
| 284 | + </el-tab-pane> | ||
| 285 | + | ||
| 286 | + <el-tab-pane label="小时" v-if="shouldHide('hour')"> | ||
| 287 | + <CrontabHour | ||
| 288 | + @update="updateCrontabValue" | ||
| 289 | + :check="checkNumber" | ||
| 290 | + :cron="crontabValueObj" | ||
| 291 | + ref="cronhour" | ||
| 292 | + /> | ||
| 293 | + </el-tab-pane> | ||
| 294 | + | ||
| 295 | + <el-tab-pane label="日" v-if="shouldHide('day')"> | ||
| 296 | + <CrontabDay | ||
| 297 | + @update="updateCrontabValue" | ||
| 298 | + :check="checkNumber" | ||
| 299 | + :cron="crontabValueObj" | ||
| 300 | + ref="cronday" | ||
| 301 | + /> | ||
| 302 | + </el-tab-pane> | ||
| 303 | + | ||
| 304 | + <el-tab-pane label="月" v-if="shouldHide('month')"> | ||
| 305 | + <CrontabMonth | ||
| 306 | + @update="updateCrontabValue" | ||
| 307 | + :check="checkNumber" | ||
| 308 | + :cron="crontabValueObj" | ||
| 309 | + ref="cronmonth" | ||
| 310 | + /> | ||
| 311 | + </el-tab-pane> | ||
| 312 | + | ||
| 313 | + <el-tab-pane label="周" v-if="shouldHide('week')"> | ||
| 314 | + <CrontabWeek | ||
| 315 | + @update="updateCrontabValue" | ||
| 316 | + :check="checkNumber" | ||
| 317 | + :cron="crontabValueObj" | ||
| 318 | + ref="cronweek" | ||
| 319 | + /> | ||
| 320 | + </el-tab-pane> | ||
| 321 | + | ||
| 322 | + <el-tab-pane label="年" v-if="shouldHide('year')"> | ||
| 323 | + <CrontabYear | ||
| 324 | + @update="updateCrontabValue" | ||
| 325 | + :check="checkNumber" | ||
| 326 | + :cron="crontabValueObj" | ||
| 327 | + ref="cronyear" | ||
| 328 | + /> | ||
| 329 | + </el-tab-pane> | ||
| 330 | + </el-tabs> | ||
| 376 | 331 | ||
| 332 | + <div class="popup-main"> | ||
| 333 | + <div class="popup-result"> | ||
| 334 | + <p class="title">时间表达式</p> | ||
| 335 | + <table> | ||
| 336 | + <thead> | ||
| 337 | + <th v-for="item of tabTitles" width="40" :key="item">{{ item }}</th> | ||
| 338 | + <th>Cron 表达式</th> | ||
| 339 | + </thead> | ||
| 340 | + <tbody> | ||
| 341 | + <td> | ||
| 342 | + <span>{{ crontabValueObj.second }}</span> | ||
| 343 | + </td> | ||
| 344 | + <td> | ||
| 345 | + <span>{{ crontabValueObj.min }}</span> | ||
| 346 | + </td> | ||
| 347 | + <td> | ||
| 348 | + <span>{{ crontabValueObj.hour }}</span> | ||
| 349 | + </td> | ||
| 350 | + <td> | ||
| 351 | + <span>{{ crontabValueObj.day }}</span> | ||
| 352 | + </td> | ||
| 353 | + <td> | ||
| 354 | + <span>{{ crontabValueObj.month }}</span> | ||
| 355 | + </td> | ||
| 356 | + <td> | ||
| 357 | + <span>{{ crontabValueObj.week }}</span> | ||
| 358 | + </td> | ||
| 359 | + <td> | ||
| 360 | + <span>{{ crontabValueObj.year }}</span> | ||
| 361 | + </td> | ||
| 362 | + <td> | ||
| 363 | + <span>{{ crontabValueString }}</span> | ||
| 364 | + </td> | ||
| 365 | + </tbody> | ||
| 366 | + </table> | ||
| 367 | + </div> | ||
| 368 | + <CrontabResult :ex="crontabValueString" /> | ||
| 369 | + | ||
| 370 | + <div class="pop_btn"> | ||
| 371 | + <el-button type="primary" @click="submitFill">确定</el-button> | ||
| 372 | + <el-button type="warning" @click="clearCron">重置</el-button> | ||
| 373 | + <el-button @click="hidePopup">取消</el-button> | ||
| 374 | + </div> | ||
| 375 | + </div> | ||
| 376 | + </div> | ||
| 377 | +</template> | ||
| 377 | <style scoped> | 378 | <style scoped> |
| 378 | .pop_btn { | 379 | .pop_btn { |
| 379 | text-align: center; | 380 | text-align: center; |