From f1f26b166b71371e0a8dfaf9b9f575d2d79feefc Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 23 四月 2025 17:40:03 +0800
Subject: [PATCH] 完成线索任务的发布功能

---
 src/views/overlay-clue/report/ClueReport.vue |   45 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/src/views/overlay-clue/report/ClueReport.vue b/src/views/overlay-clue/report/ClueReport.vue
index dabd554..3f9ed43 100644
--- a/src/views/overlay-clue/report/ClueReport.vue
+++ b/src/views/overlay-clue/report/ClueReport.vue
@@ -56,20 +56,31 @@
       </el-scrollbar>
     </div>
   </CloseButton>
+  <ClueTaskEdit
+    v-model="clueTaskDialog"
+    :clue-task="clueTask"
+    :clue-data="clueData"
+    :create="isCreateMode"
+    @on-submit="handelClueTaskEdit"
+  ></ClueTaskEdit>
 </template>
 
 <script>
 import ClueReportClue from './components/ClueReportClue.vue';
 import ClueReportConclusion from './components/ClueReportConclusion.vue';
 import ClueReportQuestion from './components/ClueReportQuestion.vue';
+import ClueTaskEdit from '@/views/overlay-clue/task/ClueTaskEdit.vue';
+
 import { useMessageBoxTip } from '@/composables/messageBox';
 import clueApi from '@/api/clue/clueApi';
+import clueTaskApi from '@/api/clue/clueTaskApi';
 
 export default {
   components: {
     ClueReportClue,
     ClueReportConclusion,
-    ClueReportQuestion
+    ClueReportQuestion,
+    ClueTaskEdit
   },
   props: {
     clueData: {
@@ -80,11 +91,20 @@
     },
     show: Boolean
   },
-  emits: ['update:show', 'pushed'],
+  emits: ['update:show', 'pushed', 'onClueTaskChange'],
   data() {
     return {
-      clueTask: undefined
+      clueTask: undefined,
+      clueTaskDialog: false,
+      isCreateMode: true
     };
+  },
+  watch: {
+    clueData(nV, oV) {
+      if (nV && nV != oV) {
+        this.getClueTask();
+      }
+    }
   },
   methods: {
     closeEdit() {
@@ -104,8 +124,25 @@
         this.$emit('pushed', res);
       });
     },
-    publishTask() {
 
+    getClueTask() {
+      clueTaskApi
+        .fetchClueTask({ clueId: this.clueData.cid })
+        .then((res) => {
+          this.isCreateMode = res.data.length == 0;
+          if (res.data.length > 0) {
+            this.clueTask = res.data[0];
+          } else {
+            this.clueTask = undefined;
+          }
+        });
+    },
+    publishTask() {
+      this.clueTaskDialog = true;
+    },
+    handelClueTaskEdit() {
+      this.getClueTask();
+      this.$emit('onClueTaskChange');
     }
   }
 };

--
Gitblit v1.9.3