From 54b5fa2047324b81b6d2ee7f830693267f946c0a Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 10 一月 2024 17:45:54 +0800
Subject: [PATCH] 1. 编写数据源检查模块

---
 src/views/fysp/evaluation/components/CompEvaTask.vue |   78 +++++++++++++++++++++++---------------
 1 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/src/views/fysp/evaluation/components/CompEvaTask.vue b/src/views/fysp/evaluation/components/CompEvaTask.vue
index 57299b1..27bcec4 100644
--- a/src/views/fysp/evaluation/components/CompEvaTask.vue
+++ b/src/views/fysp/evaluation/components/CompEvaTask.vue
@@ -29,6 +29,7 @@
       <template v-for="(v, i) in taskList" :key="i">
         <FYBgTaskCard
           :model="v"
+          :index="i"
           @start="startTask"
           @shutDown="shutDownTask"
           @remove="removeTask"
@@ -58,6 +59,21 @@
     };
   },
   methods: {
+    newTestTask() {
+      this.fetchData((page, pageSize) => {
+        return bgtaskApi.newTestTask(`Test-Task-${++this.taskIndex}`).then((res) => {
+          this.taskList.push(res.data);
+        });
+      });
+    },
+    startNewTestTask() {
+      this.fetchData((page, pageSize) => {
+        return bgtaskApi.startNewTestTask(`Test-Task-${++this.taskIndex}`).then((res) => {
+          this.taskList.push(res.data);
+        });
+      });
+    },
+
     _getParam(taskStatus) {
       return {
         type: taskStatus.type,
@@ -75,47 +91,47 @@
           });
       });
     },
-    startTask(taskStatus) {
+    startTask(index, callback) {
       this.fetchData((page, pageSize) => {
-        return bgtaskApi.startTask(this._getParam(taskStatus)).then((res) => {
-          this.taskList = this.taskList.concat(res.data);
+        const param = this._getParam(this.taskList[index]);
+        return bgtaskApi.startTask(param).then((res) => {
+          this.taskList[index] = res.data;
+          callback(true);
         });
       });
     },
-    newTestTask() {
+    shutDownTask(index, callback) {
       this.fetchData((page, pageSize) => {
-        return bgtaskApi.newTestTask(`Test-Task-${++this.taskIndex}`).then((res) => {
-          this.taskList = this.taskList.concat(res.data);
-        });
-      });
-    },
-    startNewTestTask() {
-      this.fetchData((page, pageSize) => {
-        return bgtaskApi.startNewTestTask(`Test-Task-${++this.taskIndex}`).then((res) => {
-          this.taskList = this.taskList.concat(res.data);
-        });
-      });
-    },
-    shutDownTask(taskStatus) {
-      this.fetchData((page, pageSize) => {
-        return bgtaskApi.shutDownTask(this._getParam(taskStatus)).then((res) => {
-          res.data.forEach((e) => {
-            let v = this.taskList.find((value) => {
-              return value.id == e.id;
+        const param = this._getParam(this.taskList[index]);
+        return bgtaskApi.shutDownTask(param).then((res) => {
+          if (index && res.data && res.data.length == 1) {
+            this.taskList[index] = res.data[0];
+          } else {
+            res.data.forEach((e) => {
+              let v = this.taskList.find((value) => {
+                return value.id == e.id;
+              });
+              const i = this.taskList.indexOf(v);
+              this.taskList[i] = e;
             });
-            const i = this.taskList.indexOf(v);
-            this.taskList[i] = e;
-          });
+          }
+          callback(true);
         });
       });
     },
-    removeTask(taskStatus){
-
+    removeTask(index, callback) {
+      this.fetchData((page, pageSize) => {
+        const param = this._getParam(this.taskList[index]);
+        return bgtaskApi.removeTask(param).then((res) => {
+          if (res.data) {
+            this.taskList.splice(index, 1);
+            callback(true);
+          }
+        });
+      });
     },
-    gotoResult(taskStatus) {
-
-    }
-  },
+    gotoResult(index) {}
+  }
 };
 </script>
 <style scoped>

--
Gitblit v1.9.3