From 661e8cf7b40d79d2024969e56f04100b31abef1a Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Wed, 11 Feb 2026 15:38:13 +0800
Subject: [PATCH] 优化字典类型属性提醒说明
---
ruoyi-ui/src/components/Crontab/index.vue | 261 ++++++++++++++++++++++++++-------------------------
1 files changed, 133 insertions(+), 128 deletions(-)
diff --git a/ruoyi-ui/src/components/Crontab/index.vue b/ruoyi-ui/src/components/Crontab/index.vue
index 629bad7..395f615 100644
--- a/ruoyi-ui/src/components/Crontab/index.vue
+++ b/ruoyi-ui/src/components/Crontab/index.vue
@@ -2,59 +2,64 @@
<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"
+ :cron="crontabValueObj"
+ 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 +75,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>
@@ -108,14 +113,14 @@
</template>
<script>
-import CrontabSecond from "./second.vue";
-import CrontabMin from "./min.vue";
-import CrontabHour from "./hour.vue";
-import CrontabDay from "./day.vue";
-import CrontabMouth from "./mouth.vue";
-import CrontabWeek from "./week.vue";
-import CrontabYear from "./year.vue";
-import CrontabResult from "./result.vue";
+import CrontabSecond from "./second.vue"
+import CrontabMin from "./min.vue"
+import CrontabHour from "./hour.vue"
+import CrontabDay from "./day.vue"
+import CrontabMonth from "./month.vue"
+import CrontabWeek from "./week.vue"
+import CrontabYear from "./year.vue"
+import CrontabResult from "./result.vue"
export default {
data() {
@@ -123,28 +128,28 @@
tabTitles: ["秒", "分钟", "小时", "日", "月", "周", "年"],
tabActive: 0,
myindex: 0,
- contabValueObj: {
+ crontabValueObj: {
second: "*",
min: "*",
hour: "*",
day: "*",
- mouth: "*",
+ month: "*",
week: "?",
year: "",
},
- };
+ }
},
name: "vcrontab",
props: ["expression", "hideComponent"],
methods: {
shouldHide(key) {
- if (this.hideComponent && this.hideComponent.includes(key)) return false;
- return true;
+ if (this.hideComponent && this.hideComponent.includes(key)) return false
+ return true
},
resolveExp() {
- //反解析 表达式
+ // 反解析 表达式
if (this.expression) {
- let arr = this.expression.split(" ");
+ let arr = this.expression.split(" ")
if (arr.length >= 6) {
//6 位以上是合法表达式
let obj = {
@@ -152,180 +157,180 @@
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) {
- if (obj[i]) this.changeRadio(i, obj[i]);
+ if (obj[i]) this.changeRadio(i, obj[i])
}
}
} else {
- //没有传入的表达式 则还原
- this.clearCron();
+ // 没有传入的表达式 则还原
+ this.clearCron()
}
},
// tab切换值
tabCheck(index) {
- this.tabActive = index;
+ 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);
+ 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 (!this.$refs[refName]) return
if (arr.includes(name)) {
if (value === "*") {
- insVlaue = 1;
+ insValue = 1
} else if (value.indexOf("-") > -1) {
- let indexArr = value.split("-");
+ 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;
+ : (this.$refs[refName].cycle01 = indexArr[0])
+ this.$refs[refName].cycle02 = indexArr[1]
+ insValue = 2
} else if (value.indexOf("/") > -1) {
- let indexArr = value.split("/");
+ 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;
+ : (this.$refs[refName].average01 = indexArr[0])
+ this.$refs[refName].average02 = indexArr[1]
+ insValue = 3
} else {
- insVlaue = 4;
- this.$refs[refName].checkboxList = value.split(",");
+ 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("-");
+ 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;
+ : (this.$refs[refName].cycle01 = indexArr[0])
+ this.$refs[refName].cycle02 = indexArr[1]
+ insValue = 3
} else if (value.indexOf("/") > -1) {
- let indexArr = value.split("/");
+ 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;
+ : (this.$refs[refName].average01 = indexArr[0])
+ this.$refs[refName].average02 = indexArr[1]
+ insValue = 4
} else if (value.indexOf("W") > -1) {
- let indexArr = value.split("W");
+ let indexArr = value.split("W")
isNaN(indexArr[0])
? (this.$refs[refName].workday = 0)
- : (this.$refs[refName].workday = indexArr[0]);
- insVlaue = 5;
+ : (this.$refs[refName].workday = indexArr[0])
+ insValue = 5
} else if (value === "L") {
- insVlaue = 6;
+ insValue = 6
} else {
- this.$refs[refName].checkboxList = value.split(",");
- insVlaue = 7;
+ this.$refs[refName].checkboxList = value.split(",")
+ 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("-");
+ 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;
+ : (this.$refs[refName].cycle01 = indexArr[0])
+ this.$refs[refName].cycle02 = indexArr[1]
+ insValue = 3
} else if (value.indexOf("#") > -1) {
- let indexArr = value.split("#");
+ 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;
+ : (this.$refs[refName].average01 = indexArr[0])
+ this.$refs[refName].average02 = indexArr[1]
+ insValue = 4
} else if (value.indexOf("L") > -1) {
- let indexArr = value.split("L");
+ let indexArr = value.split("L")
isNaN(indexArr[0])
? (this.$refs[refName].weekday = 1)
- : (this.$refs[refName].weekday = indexArr[0]);
- insVlaue = 5;
+ : (this.$refs[refName].weekday = indexArr[0])
+ insValue = 5
} else {
- this.$refs[refName].checkboxList = value.split(",");
- insVlaue = 7;
+ this.$refs[refName].checkboxList = value.split(",")
+ insValue = 6
}
} 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;
+ this.$refs[refName].checkboxList = value.split(",")
+ insValue = 5
}
}
- this.$refs[refName].radioValue = insVlaue;
+ this.$refs[refName].radioValue = insValue
},
// 表单选项的子组件校验数字格式(通过-props传递)
checkNumber(value, minLimit, maxLimit) {
- //检查必须为整数
- value = Math.floor(value);
+ // 检查必须为整数
+ value = Math.floor(value)
if (value < minLimit) {
- value = minLimit;
+ value = minLimit
} else if (value > maxLimit) {
- value = maxLimit;
+ value = maxLimit
}
- return value;
+ return value
},
// 隐藏弹窗
hidePopup() {
- this.$emit("hide");
+ this.$emit("hide")
},
// 填充表达式
submitFill() {
- this.$emit("fill", this.contabValueString);
- this.hidePopup();
+ 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,11 +340,11 @@
" " +
obj.day +
" " +
- obj.mouth +
+ obj.month +
" " +
obj.week +
- (obj.year == "" ? "" : " " + obj.year);
- return str;
+ (obj.year == "" ? "" : " " + obj.year)
+ return str
},
},
components: {
@@ -347,7 +352,7 @@
CrontabMin,
CrontabHour,
CrontabDay,
- CrontabMouth,
+ CrontabMonth,
CrontabWeek,
CrontabYear,
CrontabResult,
@@ -359,9 +364,9 @@
},
},
mounted: function() {
- this.resolveExp();
+ this.resolveExp()
},
-};
+}
</script>
<style scoped>
.pop_btn {
--
Gitblit v1.9.3