保存路径和任务名称智能关联填写

This commit is contained in:
Cp0204 2024-12-12 15:18:30 +08:00
parent fd3d439b3e
commit 2687de5428

View File

@ -176,7 +176,7 @@
<label class="col-sm-2 col-form-label">任务名称</label>
<div class="col-sm-10">
<div class="input-group">
<input type="text" name="taskname[]" class="form-control" v-model="task.taskname" placeholder="必填">
<input type="text" name="taskname[]" class="form-control" v-model="task.taskname" placeholder="必填" @focus="focusTaskname(index, task)" @input="changeTaskname(task)">
<div class="input-group-append" v-if="task.taskname">
<div class="input-group-text">
<a target="_blank" :href="`https://www.google.com/search?q=%22pan.quark%22+${task.taskname}`"><i class="bi bi-search"></i></a>
@ -202,8 +202,10 @@
<label class="col-sm-2 col-form-label">保存路径</label>
<div class="col-sm-10">
<div class="input-group">
<input type="text" name="savepath[]" class="form-control" v-model="task.savepath" placeholder="必填">
<input type="text" name="savepath[]" class="form-control" v-model="task.savepath" placeholder="必填" @focus="focusTaskname(index, task)">
<div class="input-group-append">
<button class="btn btn-secondary" type="button" v-if="smart_param.index == index && task.savepath != smart_param.origin_savepath" @click="task.savepath = smart_param.origin_savepath"><i class="
bi bi-reply"></i></button>
<button class="btn btn-outline-secondary dropdown-toggle" type="button" @click="getSavepathDirs(task.savepath)" data-toggle="dropdown" aria-expanded="false">选择</button>
<div class="dropdown-menu" style="max-height: 300px; overflow-y: auto;">
<a class="dropdown-item" @click.stop.prevent="selectSavepath(index,getParentDirectory(task.savepath),'..')" href="#">..</a>
@ -391,7 +393,7 @@
newTask: {
taskname: "",
shareurl: "",
savepath: "",
savepath: "/",
pattern: "",
replace: "",
enddate: "",
@ -406,7 +408,12 @@
savepaths: [],
modalLoading: false,
shareFiles: [],
forceTaskIndex: null
forceTaskIndex: null,
smart_param: {
index: null,
savepath: "",
origin_savepath: "",
},
},
filters: {
ts2date: function (value) {
@ -511,11 +518,13 @@
addTask() {
newTask = { ...this.newTask }
newTask.taskname = this.taskNameFilter
lastTask = this.formData.tasklist[this.formData.tasklist.length - 1]
if (this.formData.tasklist.length > 0 && lastTask.taskname) {
newTask.savepath = lastTask.savepath.replace(lastTask.taskname, 'TASKNAME')
} else {
newTask.savepath = this.taskDirSelected + "/" + newTask.taskname
if (this.formData.tasklist.length > 0) {
lastTask = this.formData.tasklist[this.formData.tasklist.length - 1]
if (this.taskDirSelected) {
newTask.savepath = this.taskDirSelected + '/TASKNAME'
} else {
newTask.savepath = lastTask.savepath.replace(lastTask.taskname, 'TASKNAME')
}
}
this.formData.tasklist.push(newTask);
// 滚到最下
@ -525,6 +534,22 @@
});
}, 1);
},
focusTaskname(index, task) {
this.smart_param.index = index
this.smart_param.origin_savepath = task.savepath
regex = new RegExp(`/${task.taskname}(/|$)`)
if (task.savepath.includes('TASKNAME')) {
this.smart_param.savepath = task.savepath;
} else if (task.savepath.match(regex)) {
this.smart_param.savepath = task.savepath.replace(task.taskname, 'TASKNAME');
} else {
this.smart_param.savepath = undefined;
}
},
changeTaskname(task) {
if (this.smart_param.savepath)
task.savepath = this.smart_param.savepath.replace('TASKNAME', task.taskname);
},
removeTask(index) {
if (confirm("确认删除任务 [#" + (index + 1) + ": " + this.formData.tasklist[index].taskname + "] 吗?"))
this.formData.tasklist.splice(index, 1);