Compare commits

..

8 Commits

Author SHA1 Message Date
x1ao4
9363ab7b95
Merge pull request #62 from x1ao4/dev
在编辑任务模态框内新增保存并运行任务按钮
2025-09-16 19:25:19 +08:00
x1ao4
e181211e53 在编辑任务模态框内新增保存并运行任务按钮 2025-09-16 19:10:46 +08:00
x1ao4
8b7adfa609
Merge pull request #61 from x1ao4/dev
优化创建与编辑任务模态框的显示效果
2025-09-16 18:49:10 +08:00
x1ao4
7b662f65bc 优化创建与编辑任务模态框的显示效果 2025-09-16 18:37:18 +08:00
x1ao4
401b7fe869
Merge pull request #60 from x1ao4/dev
修复影视发现页面的 “创建任务” 按钮错误触发编辑模式而非创建模式的问题
2025-09-16 18:19:14 +08:00
x1ao4
1aa0f44041 修复影视发现页面的 “创建任务” 按钮错误触发编辑模式而非创建模式的问题
- 重置 `createTaskFromDiscovery` 为创建模式,初始化表单,修复标题与底部按钮显示为创建态
2025-09-16 18:09:29 +08:00
x1ao4
3fd496cf2e Revert "新增海报懒加载与异步解码,提升首次打开性能"
This reverts commit 2e2bf064d4.
2025-09-16 03:08:02 +08:00
x1ao4
2e2bf064d4 新增海报懒加载与异步解码,提升首次打开性能 2025-09-16 02:28:38 +08:00
2 changed files with 83 additions and 1 deletions

View File

@ -8065,6 +8065,12 @@ div:has(> .collapse:not(.show)):has(+ .row.title[title^="资源搜索"]) {
margin-bottom: 8px;
}
/* 创建与编辑任务模态框:插件配置与下方分割线间距 16px */
#createTaskModal .form-group .jsoneditor,
#createTaskModal .form-group .jsoneditor-vue {
margin-bottom: 16px !important;
}
/* 海报视图资源失效警告按钮样式 */
.discovery-warning-btn {
position: relative;

View File

@ -2640,7 +2640,7 @@
<div class="form-group row" v-if="Object.keys(getAvailablePlugins(formData.plugins)).length" :title="getCreateTaskPluginConfigTitle()">
<label class="col-sm-2 col-form-label">插件配置</label>
<div class="col-sm-10">
<v-jsoneditor v-model="createTask.taskData.addition" :options="{mode:'tree'}" :plus="false" height="162px" style="margin-bottom: -8px;" :disabled="isPluginConfigDisabled(createTask.taskData)"></v-jsoneditor>
<v-jsoneditor v-model="createTask.taskData.addition" :options="{mode:'tree'}" :plus="false" height="162px" :disabled="isPluginConfigDisabled(createTask.taskData)"></v-jsoneditor>
</div>
</div>
</div>
@ -2654,6 +2654,9 @@
<button type="button" class="btn btn-primary" :disabled="createTask.loading" @click="confirmEditTask">
保存
</button>
<button type="button" class="btn btn-primary" :disabled="createTask.loading" @click="confirmEditAndRunTask" style="margin-left: 4px;">
保存并运行任务
</button>
</template>
<template v-else>
<button type="button" class="btn btn-primary" :disabled="createTask.loading" @click="confirmCreateTask">
@ -11783,6 +11786,13 @@
createTaskFromDiscovery(item) {
// 从影视发现页面创建任务
try {
// 强制切换为创建模式并重置表单
this.createTask.isEditMode = false;
this.createTask.editTaskIndex = null;
this.createTask.error = null;
// 使用 newTask 的完整结构初始化,再由智能填充覆盖
this.createTask.taskData = { ...this.newTask };
// 存储影视作品数据,并提取年份信息
const movieData = { ...item };
// 如果没有year字段尝试从card_subtitle中提取
@ -12627,6 +12637,72 @@
this.createTask.loading = false;
});
},
confirmEditAndRunTask() {
// 确认编辑任务并立即运行
if (this.createTask.loading) return;
// 复用与编辑验证相同的逻辑
if (!this.createTask.taskData.taskname.trim()) {
this.createTask.error = '任务名称不能为空';
return;
}
if (!this.createTask.taskData.shareurl.trim()) {
this.createTask.error = '分享链接不能为空';
return;
}
if (!this.createTask.taskData.savepath.trim()) {
this.createTask.error = '保存路径不能为空';
return;
}
this.createTask.loading = true;
this.createTask.error = null;
// 更新任务数据
const updatedTask = { ...this.createTask.taskData };
// 应用全局插件配置
this.applyGlobalPluginConfig(updatedTask);
// 处理命名模式
if (updatedTask.use_sequence_naming) {
updatedTask.pattern = updatedTask.sequence_naming;
} else if (updatedTask.use_episode_naming) {
updatedTask.pattern = updatedTask.episode_naming;
}
// 更新任务列表中的任务
if (this.createTask.editTaskIndex !== null && this.formData.tasklist && this.formData.tasklist[this.createTask.editTaskIndex]) {
this.$set(this.formData.tasklist, this.createTask.editTaskIndex, updatedTask);
}
// 保存配置
axios.post('/update', this.formData)
.then(response => {
if (response.data.success) {
this.configModified = false;
this.showToast('任务编辑成功并开始运行', 'success');
this.fetchUserInfo();
this.updateTasklistMetadata();
const taskIndex = this.createTask.editTaskIndex;
this.createTask.loading = false;
this.cancelCreateTask();
// 稍后运行任务,保证模态框关闭完成
setTimeout(() => {
if (taskIndex !== null && taskIndex >= 0) {
this.runScriptNow(taskIndex);
}
}, 300);
} else {
alert(response.data.message);
this.createTask.loading = false;
}
})
.catch(error => {
alert("保存失败: " + (error.response?.data?.message || error.message || "未知错误"));
this.createTask.loading = false;
});
},
confirmCreateAndRunTask() {
// 确认创建并运行任务
if (this.createTask.loading) return;