|
134 | 134 | <div class="setting-item"> |
135 | 135 | <div class="setting-label"> |
136 | 136 | <span class="label-text">挂载文件自动刷新</span> |
137 | | - <span class="label-desc">开启后,系统将自动刷新挂载的文件列表,频率:每10分钟执行一次,此功能不能保证文件列表的实时性,可在前台文件浏览页面使用<b>刷新索引</b>功能手动刷新</span> |
| 137 | + <span class="label-desc">开启后,系统将自动刷新挂载的文件列表,此功能不能保证文件列表的实时性,可在前台文件浏览页面使用<b>刷新索引</b>功能手动刷新</span> |
138 | 138 | </div> |
139 | 139 | <div class="setting-control"> |
140 | 140 | <div class="custom-switch" @click="handleToggleEnableTopFileAutoRefresh"> |
|
149 | 149 | </div> |
150 | 150 | </div> |
151 | 151 |
|
| 152 | + <div class="setting-item"> |
| 153 | + <div class="setting-label"> |
| 154 | + <span class="label-text">自动刷新间隔</span> |
| 155 | + <span class="label-desc">设置挂载文件自动刷新的时间间隔,范围:5-120分钟</span> |
| 156 | + </div> |
| 157 | + <div class="setting-control"> |
| 158 | + <div class="thread-count-control"> |
| 159 | + <input |
| 160 | + v-model.number="autoRefreshMinutes" |
| 161 | + type="range" |
| 162 | + min="5" |
| 163 | + max="120" |
| 164 | + step="5" |
| 165 | + class="thread-slider" |
| 166 | + :disabled="loading" |
| 167 | + @input="handleAutoRefreshMinutesChange" |
| 168 | + > |
| 169 | + <span class="thread-count-value">{{ autoRefreshMinutes }}分钟</span> |
| 170 | + </div> |
| 171 | + <button |
| 172 | + @click="handleModifyAutoRefreshMinutes" |
| 173 | + class="btn btn-primary btn-sm" |
| 174 | + :disabled="loading || autoRefreshMinutes === originalAutoRefreshMinutes" |
| 175 | + > |
| 176 | + {{ loading ? '保存中...' : '保存' }} |
| 177 | + </button> |
| 178 | + </div> |
| 179 | + </div> |
| 180 | + |
152 | 181 | <div class="setting-item"> |
153 | 182 | <div class="setting-label"> |
154 | 183 | <span class="label-text">任务线程数</span> |
@@ -219,6 +248,8 @@ const baseURL = ref('') |
219 | 248 | const originalBaseURL = ref('') // 用于存储原始基础URL |
220 | 249 | const jobThreadCount = ref(1) |
221 | 250 | const originalJobThreadCount = ref(1) // 用于存储原始任务线程数 |
| 251 | +const autoRefreshMinutes = ref(10) |
| 252 | +const originalAutoRefreshMinutes = ref(10) // 用于存储原始自动刷新间隔 |
222 | 253 |
|
223 | 254 | // 定时器引用 |
224 | 255 | const timer = ref<NodeJS.Timeout | null>(null) |
@@ -275,6 +306,8 @@ const fetchSettingData = async () => { |
275 | 306 | originalBaseURL.value = data.baseURL |
276 | 307 | jobThreadCount.value = data.jobThreadCount || 1 |
277 | 308 | originalJobThreadCount.value = data.jobThreadCount || 1 |
| 309 | + autoRefreshMinutes.value = data.autoRefreshMinutes || 10 |
| 310 | + originalAutoRefreshMinutes.value = data.autoRefreshMinutes || 10 |
278 | 311 | } |
279 | 312 | } catch (error) { |
280 | 313 | toast.error('获取设置失败') |
@@ -482,6 +515,31 @@ const handleModifyJobThreadCount = async () => { |
482 | 515 | } |
483 | 516 | } |
484 | 517 |
|
| 518 | +// 处理自动刷新间隔变化 |
| 519 | +const handleAutoRefreshMinutesChange = () => { |
| 520 | + // 实时更新显示值,但不保存 |
| 521 | +} |
| 522 | +
|
| 523 | +// 修改自动刷新间隔 |
| 524 | +const handleModifyAutoRefreshMinutes = async () => { |
| 525 | + if (autoRefreshMinutes.value < 5 || autoRefreshMinutes.value > 120) { |
| 526 | + toast.warning('自动刷新间隔必须在5-120分钟之间') |
| 527 | + return |
| 528 | + } |
| 529 | + |
| 530 | + try { |
| 531 | + loading.value = true |
| 532 | + await settingStore.modifyAutoRefreshMinutes(autoRefreshMinutes.value) |
| 533 | + originalAutoRefreshMinutes.value = autoRefreshMinutes.value |
| 534 | + toast.success('自动刷新间隔修改成功') |
| 535 | + } catch (error) { |
| 536 | + console.error('修改自动刷新间隔失败:', error) |
| 537 | + toast.error('修改自动刷新间隔失败') |
| 538 | + } finally { |
| 539 | + loading.value = false |
| 540 | + } |
| 541 | +} |
| 542 | +
|
485 | 543 | // 组件挂载时获取设置并启动定时器 |
486 | 544 | onMounted(async () => { |
487 | 545 | // 初始获取数据 |
|
0 commit comments