添加定时任务随机时间执行功能;修复手动执行任务不发送邮件通知

This commit is contained in:
Yu Yon
2025-12-12 10:12:27 +08:00
parent d1e47dca7f
commit 2d0d51da17
3 changed files with 69 additions and 19 deletions

View File

@@ -710,6 +710,13 @@
<label class="form-label">参与账号</label>
<div class="account-select-list" id="scheduleAccountList"></div>
</div>
<div class="form-group">
<label class="checkbox-wrapper">
<input type="checkbox" id="scheduleRandomDelay">
<span>随机时间执行</span>
</label>
<div style="font-size: 12px; color: #666; margin-top: 5px; margin-left: 24px;">勾选后将在设定时间前后15分钟内随机执行</div>
</div>
<div class="form-group">
<label class="checkbox-wrapper">
<input type="checkbox" id="scheduleScreenshot" checked>
@@ -1544,7 +1551,7 @@
'<div class="schedule-info">' +
'<div class="schedule-name">' + escapeHtml(s.name || '未命名任务') + '</div>' +
'<div class="schedule-meta">' +
'<span>⏰ ' + (s.schedule_time || '08:00') + '</span>' +
'<span>⏰ ' + (s.schedule_time || '08:00') + (s.random_delay === 1 ? ' <span style="color:#ff9800;font-size:11px;">±15分钟</span>' : '') + '</span>' +
'<span>📅 ' + (weekdays || '无') + '</span>' +
'<span>📋 ' + (s.browse_type || '应读') + '</span>' +
'<span>👤 ' + accountCount + ' 个账号</span>' +
@@ -1569,6 +1576,7 @@
document.getElementById('scheduleTime').value = scheduleData ? (scheduleData.schedule_time || '08:00') : '08:00';
document.getElementById('scheduleBrowseType').value = scheduleData ? (scheduleData.browse_type || '应读') : '应读';
document.getElementById('scheduleScreenshot').checked = scheduleData ? (scheduleData.enable_screenshot !== 0) : true;
document.getElementById('scheduleRandomDelay').checked = scheduleData ? (scheduleData.random_delay === 1) : false;
const weekdays = scheduleData ? (scheduleData.weekdays || '').split(',') : ['1','2','3','4','5'];
document.querySelectorAll('#weekdaySelector input').forEach(function(input) {
input.checked = weekdays.includes(input.value);
@@ -1608,7 +1616,8 @@
const accountIds = [];
document.querySelectorAll('#scheduleAccountList input:checked').forEach(function(input) { accountIds.push(input.value); });
if (weekdays.length === 0) { showToast('请选择至少一个执行日期', 'warning'); return; }
const data = {name: name, schedule_time: scheduleTime, weekdays: weekdays.join(','), browse_type: browseType, enable_screenshot: enableScreenshot, account_ids: accountIds};
const randomDelay = document.getElementById('scheduleRandomDelay').checked ? 1 : 0;
const data = {name: name, schedule_time: scheduleTime, weekdays: weekdays.join(','), browse_type: browseType, enable_screenshot: enableScreenshot, account_ids: accountIds, random_delay: randomDelay};
const url = editingScheduleId ? '/api/schedules/' + editingScheduleId : '/api/schedules';
const method = editingScheduleId ? 'PUT' : 'POST';
fetch(url, {method: method, headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data)}).then(r => r.json()).then(function(result) {