From 56cccf63a0748c0cf48237bf935fb04e500a4eea Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期六, 28 二月 2026 21:00:22 +0800
Subject: [PATCH] feat: 排版计划接口对接、任务工单详情接口对接

---
 src/views/operations/taskOrder/taskOrderCenter/index.vue |   63 ++++++++++++++++++++++++++-----
 1 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/src/views/operations/taskOrder/taskOrderCenter/index.vue b/src/views/operations/taskOrder/taskOrderCenter/index.vue
index 0da061d..899a205 100644
--- a/src/views/operations/taskOrder/taskOrderCenter/index.vue
+++ b/src/views/operations/taskOrder/taskOrderCenter/index.vue
@@ -7,6 +7,7 @@
 import SearchPanel from '@/components/custom/SearchPanel.vue'
 import TableModal from './components/TableModal.vue'
 import AddFormModal from './components/AddFormModal.vue'
+import DetailModal from './components/detailModal.vue'
 import dayjs from 'dayjs'
 
 const router = useRouter()
@@ -30,6 +31,8 @@
 
 const formRef = ref<FormInst | null>()
 const modalRef = ref()
+const detailModalRef = ref()
+
 const showFormModal = ref(false)
 const formMode = ref<'add' | 'edit'>('add')
 
@@ -186,18 +189,56 @@
   formMode.value = 'add'
 }
 
+/**
+ * 级联选中时自动补充父级 id
+ * @param tree 原始树结构
+ * @param selectedIds 已选中的 id 列表
+ */
+function addParentIds(
+  tree: any[],
+  selectedIds: string[]
+): string[] {
+  const result = new Set(selectedIds)
+
+  function traverse(nodes: any[], parent?: any) {
+    nodes.forEach(node => {
+      // 如果当前节点被选中
+      if (result.has(node.id) && parent) {
+        result.add(parent.id)
+      }
+
+      if (node.child && node.child.length) {
+        traverse(node.child, node)
+      }
+    })
+  }
+
+  traverse(tree)
+
+  return Array.from(result)
+}
+
 const handleConfirmForm = (data: any) => {
+  console.log(data)
+  const taskImage = data.taskImage.map((item: any) => {
+    return {
+      id: item.id,
+      name: item.name,
+      url: item.url
+    }
+  })
   const params = {
     ...data,
-    taskTypeId: data.taskTypeId.join(','),
+    taskTypeId: addParentIds(taskErrorIdOptions.value,data.taskTypeId).join(','),
+    taskImage: JSON.stringify(taskImage),
   }
-    createTaskAccident(params).then((res) => {
-      if (res.code === 200) {
-        window.$message.success('新增成功')
-      }
-    }).finally(() => {
-      getList()
-    })
+  createTaskAccident(params).then((res) => {
+    if (res.code === 200) {
+      window.$message.success('新增成功')
+    }
+  }).finally(() => {
+    getList()
+  })
 }
 
 
@@ -309,7 +350,7 @@
           <NButton
             text
             type='primary'
-            onClick={() => modalRef.value.openModal('edit', row.id)}
+            onClick={() => detailModalRef.value.openModal(row.id)}
           >
             详情
           </NButton>
@@ -360,6 +401,8 @@
       </NSpace>
     </n-card>
     <TableModal ref="modalRef" @refresh="getList" />
-    <AddFormModal v-model:show="showFormModal" :mode="formMode" @confirm="handleConfirmForm" :taskErrorIdOptions="taskErrorIdOptions" :taskUrgencyLevelOptions="taskUrgencyLevelOptions"/>
+    <DetailModal ref="detailModalRef" />
+    <AddFormModal v-model:show="showFormModal" :mode="formMode" @confirm="handleConfirmForm"
+      :taskErrorIdOptions="taskErrorIdOptions" :taskUrgencyLevelOptions="taskUrgencyLevelOptions" />
   </div>
 </template>

--
Gitblit v1.7.1