From 25150fa8d7e71dfe73ab06a11b3828c51a9e5be1 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Tue, 10 Feb 2026 17:14:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sMsSendManage/loopSend/Crontab/index.vue | 1 - src/views/sMsSendManage/loopSend/edit.vue | 66 +++++++++++++++---- 2 files changed, 55 insertions(+), 12 deletions(-) diff --git a/src/views/sMsSendManage/loopSend/Crontab/index.vue b/src/views/sMsSendManage/loopSend/Crontab/index.vue index 1a3a190..082641c 100644 --- a/src/views/sMsSendManage/loopSend/Crontab/index.vue +++ b/src/views/sMsSendManage/loopSend/Crontab/index.vue @@ -12,7 +12,6 @@ class="period-btn" > {{ period.label }} - 0-23 diff --git a/src/views/sMsSendManage/loopSend/edit.vue b/src/views/sMsSendManage/loopSend/edit.vue index 4ca632a..8c50db8 100644 --- a/src/views/sMsSendManage/loopSend/edit.vue +++ b/src/views/sMsSendManage/loopSend/edit.vue @@ -343,6 +343,7 @@ const getInitFormData = () => ({ sex: '', // 群发短信群体:0-男,1-女 recipientList: [], // 接收人员列表 groupList: [], // 接收分组列表 + remark: '', // 备注 }) const formData = ref(getInitFormData()) @@ -476,6 +477,60 @@ const parseCronToChinese = (cronExpression) => { year = parts[6] || '' } + // 获取单个值(如果是列表,取第一个) + const getSingleValue = (value) => { + if (value.includes(',')) { + return value.split(',')[0] + } + return value + } + + // 优先处理:每分钟执行(所有时间字段都是*,且没有步长) + if ( + minute === '*' && + hour === '*' && + day === '*' && + month === '*' && + (week === '?' || week === '*') && + (!year || year === '*') && + (second === '*' || second === '0' || second === '?' || !second) + ) { + // 检查是否有步长表达式 + const hasMinuteStep = minute.includes('/') + const hasHourStep = hour.includes('/') + const hasSecondStep = second && second.includes('/') + + if (!hasMinuteStep && !hasHourStep && !hasSecondStep) { + const result = '每分钟执行' + formData.value.remark = result + formData.value.cronExpressionMsg = result + return result + } + } + + // 优先处理:每小时执行(小时是*,但分钟有具体值) + const isHourWildcard = hour === '*' || (hour.includes('/') && hour.split('/')[0] === '*') + const hasMinuteValue = minute !== '*' && minute !== '?' && !minute.includes('/') + const isSecondZero = !second || second === '*' || second === '0' || second === '?' + + if ( + isHourWildcard && + hasMinuteValue && + isSecondZero && + day === '*' && + month === '*' && + (week === '?' || week === '*') && + (!year || year === '*') + ) { + const m = getSingleValue(minute) + // 去掉前导零,直接显示分钟数 + const mNum = parseInt(String(m).replace(/\*/g, '0'), 10) + const result = `每小时的${mNum}分执行` + formData.value.remark = result + formData.value.cronExpressionMsg = result + return result + } + // 格式化时间(时分秒) const formatTime = (h, m, s) => { // 如果值是*,替换为0 @@ -488,14 +543,6 @@ const parseCronToChinese = (cronExpression) => { return `${hStr}:${mStr}:${sStr}` } - // 获取单个值(如果是列表,取第一个) - const getSingleValue = (value) => { - if (value.includes(',')) { - return value.split(',')[0] - } - return value - } - // 解析星期 const parseWeek = (weekValue) => { if (!weekValue || weekValue === '?' || weekValue === '*') return '' @@ -729,9 +776,6 @@ const parseCronToChinese = (cronExpression) => { // 构建最终描述 if (partsDesc.length === 0) { - if (minute === '*' && hour === '*' && day === '*' && month === '*' && week === '?') { - return '每分钟执行' - } return `Cron表达式:${cronExpression}` }