From 1c7c20c11c68e55f1599aac6e25303f4cf2b42bc Mon Sep 17 00:00:00 2001 From: marvzhang Date: Tue, 11 Feb 2020 15:37:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=88=AC=E8=99=AB?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes/task.go | 19 ++++++++-- backend/services/schedule.go | 6 +-- backend/services/task.go | 8 ++-- .../components/Common/CrawlConfirmDialog.vue | 37 ++++++++++++++----- frontend/src/views/task/TaskDetail.vue | 6 +-- 5 files changed, 51 insertions(+), 25 deletions(-) diff --git a/backend/routes/task.go b/backend/routes/task.go index 07105f2d..d1071881 100644 --- a/backend/routes/task.go +++ b/backend/routes/task.go @@ -100,6 +100,9 @@ func PutTask(c *gin.Context) { return } + // 任务ID + var taskIds []string + if reqBody.RunType == constants.RunTypeAllNodes { // 所有节点 nodes, err := model.GetNodeList(nil) @@ -115,10 +118,13 @@ func PutTask(c *gin.Context) { UserId: services.GetCurrentUser(c).Id, } - if err := services.AddTask(t); err != nil { + id, err := services.AddTask(t); + if err != nil { HandleError(http.StatusInternalServerError, c, err) return } + + taskIds = append(taskIds, id) } } else if reqBody.RunType == constants.RunTypeRandom { // 随机 @@ -127,10 +133,12 @@ func PutTask(c *gin.Context) { Param: reqBody.Param, UserId: services.GetCurrentUser(c).Id, } - if err := services.AddTask(t); err != nil { + id, err := services.AddTask(t); + if err != nil { HandleError(http.StatusInternalServerError, c, err) return } + taskIds = append(taskIds, id) } else if reqBody.RunType == constants.RunTypeSelectedNodes { // 指定节点 for _, nodeId := range reqBody.NodeIds { @@ -141,16 +149,19 @@ func PutTask(c *gin.Context) { UserId: services.GetCurrentUser(c).Id, } - if err := services.AddTask(t); err != nil { + id, err := services.AddTask(t); + if err != nil { HandleError(http.StatusInternalServerError, c, err) return } + taskIds = append(taskIds, id) } } else { HandleErrorF(http.StatusInternalServerError, c, "invalid run_type") return } - HandleSuccess(c) + + HandleSuccessData(c, taskIds) } func DeleteTaskByStatus(c *gin.Context) { diff --git a/backend/services/schedule.go b/backend/services/schedule.go index a179b50f..1bf70e8a 100644 --- a/backend/services/schedule.go +++ b/backend/services/schedule.go @@ -37,7 +37,7 @@ func AddScheduleTask(s model.Schedule) func() { UserId: s.UserId, } - if err := AddTask(t); err != nil { + if _, err := AddTask(t); err != nil { return } } @@ -49,7 +49,7 @@ func AddScheduleTask(s model.Schedule) func() { Param: s.Param, UserId: s.UserId, } - if err := AddTask(t); err != nil { + if _, err := AddTask(t); err != nil { log.Errorf(err.Error()) debug.PrintStack() return @@ -65,7 +65,7 @@ func AddScheduleTask(s model.Schedule) func() { UserId: s.UserId, } - if err := AddTask(t); err != nil { + if _, err := AddTask(t); err != nil { return } } diff --git a/backend/services/task.go b/backend/services/task.go index f911159d..c71d344f 100644 --- a/backend/services/task.go +++ b/backend/services/task.go @@ -666,7 +666,7 @@ func CancelTask(id string) (err error) { return nil } -func AddTask(t model.Task) error { +func AddTask(t model.Task) (string, error) { // 生成任务ID id := uuid.NewV4() t.Id = id.String() @@ -683,17 +683,17 @@ func AddTask(t model.Task) error { if err := model.AddTask(t); err != nil { log.Errorf(err.Error()) debug.PrintStack() - return err + return t.Id, err } // 加入任务队列 if err := AssignTask(t); err != nil { log.Errorf(err.Error()) debug.PrintStack() - return err + return t.Id, err } - return nil + return t.Id, nil } func GetTaskEmailMarkdownContent(t model.Task, s model.Spider) string { diff --git a/frontend/src/components/Common/CrawlConfirmDialog.vue b/frontend/src/components/Common/CrawlConfirmDialog.vue index d25bfaaa..6739ae9e 100644 --- a/frontend/src/components/Common/CrawlConfirmDialog.vue +++ b/frontend/src/components/Common/CrawlConfirmDialog.vue @@ -30,13 +30,22 @@ - - 我已阅读并同意 《免责声明》 所有内容 +
+ + 我已阅读并同意 《免责声明》 所有内容 +
+
+ + 跳转到任务详情页 +
+
+ @@ -64,7 +73,8 @@ export default { param: '', nodeList: [] }, - isAllowDisclaimer: true + isAllowDisclaimer: true, + isRedirect: true } }, methods: { @@ -72,20 +82,27 @@ export default { this.$emit('close') }, onConfirm () { - this.$refs['form'].validate(res => { - if (!res) return + this.$refs['form'].validate(async valid => { + if (!valid) return - this.$store.dispatch('spider/crawlSpider', { + const res = await this.$store.dispatch('spider/crawlSpider', { spiderId: this.spiderId, nodeIds: this.form.nodeIds, param: this.form.param, runType: this.form.runType }) - .then(() => { - this.$message.success(this.$t('A task has been scheduled successfully')) - }) + + const id = res.data.data[0] + + this.$message.success(this.$t('A task has been scheduled successfully')) + this.$emit('close') this.$st.sendEv('爬虫确认', '确认运行', this.form.runType) + + if (this.isRedirect) { + this.$router.push('/tasks/' + id) + this.$st.sendEv('爬虫确认', '跳转到任务详情') + } }) }, onClickDisclaimer () { diff --git a/frontend/src/views/task/TaskDetail.vue b/frontend/src/views/task/TaskDetail.vue index 39aca864..a5eec74d 100644 --- a/frontend/src/views/task/TaskDetail.vue +++ b/frontend/src/views/task/TaskDetail.vue @@ -10,14 +10,12 @@ - + - - - +
From 2c164f2f45b52685f9373e742aaf150121125d94 Mon Sep 17 00:00:00 2001 From: marvzhang Date: Tue, 11 Feb 2020 15:44:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E8=AF=A6=E6=83=85UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/node/NodeDetail.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/node/NodeDetail.vue b/frontend/src/views/node/NodeDetail.vue index ba53dcb8..24b81b63 100644 --- a/frontend/src/views/node/NodeDetail.vue +++ b/frontend/src/views/node/NodeDetail.vue @@ -18,7 +18,7 @@
- + @@ -136,8 +136,8 @@ export default { display: flex; align-items: center; position: absolute; - right: 20px; - margin-top: -7px; + right: 30px; + margin-top: 4px; /*float: right;*/ z-index: 999; } @@ -147,6 +147,8 @@ export default { } .label { + color: #909399; + font-weight: 100; width: 100px; text-align: right; }