From 4a836815f12e8ba717702cc8ed431e1b4f96134c Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 25 四月 2025 13:55:34 +0800
Subject: [PATCH] 新增内部线索相关管理逻辑

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

diff --git a/src/views/overlay-clue/report/ClueReport.vue b/src/views/overlay-clue/report/ClueReport.vue
index dabd554..d342985 100644
--- a/src/views/overlay-clue/report/ClueReport.vue
+++ b/src/views/overlay-clue/report/ClueReport.vue
@@ -2,6 +2,7 @@
   <!-- 娓呭崟璇︽儏 -->
   <CloseButton v-show="show" @close="closeEdit">
     <el-button
+      v-if="!isInternal"
       class="push-btn"
       :type="clueData.cuploaded ? 'success' : 'danger'"
       @click="pushCheck"
@@ -56,20 +57,37 @@
       </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 {
+  inject: {
+    // 鏄惁鏄唴閮ㄧ嚎绱㈢浉鍏虫搷浣�
+    isInternal: {
+      default: false
+    }
+  },
   components: {
     ClueReportClue,
     ClueReportConclusion,
-    ClueReportQuestion
+    ClueReportQuestion,
+    ClueTaskEdit
   },
   props: {
     clueData: {
@@ -80,11 +98,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 +131,28 @@
         this.$emit('pushed', res);
       });
     },
-    publishTask() {
 
+    getClueTask() {
+      clueTaskApi
+        .fetchClueTask({
+          clueId: this.clueData.cid,
+          internalTask: this.isInternal
+        })
+        .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