From 871b878fac8244fe2ee5b7ece0cf7e2ec77594f7 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 27 Jan 2026 11:22:53 +0800
Subject: [PATCH] feat:加载数据

---
 applications/task-work-order/src/views/orderView/organizational/agenciesManagement/FormDiaLog.vue |   52 +++++++++++++++++++++++++-
 applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue      |   51 +++++++++++++++----------
 2 files changed, 81 insertions(+), 22 deletions(-)

diff --git a/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/FormDiaLog.vue
index b0da69e..205905a 100644
--- a/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/FormDiaLog.vue
@@ -47,7 +47,6 @@
               class="gd-select"
               popper-class="gd-tree-select-popper"
               v-model="formData.areaCode"
-              :data="regionOptions"
               node-key="id"
               :props="{
                 value: 'id',
@@ -58,6 +57,9 @@
               clearable
               filterable
               :check-strictly="true"
+              lazy
+              :load="loadRegionNode"
+              :render-after-expand="false"
             />
           </el-form-item>
         </el-col>
@@ -111,6 +113,7 @@
 import {
   agenciesSubmitApi,
   agenciesDetailApi,
+  regionLazyTreeApi
 } from './agenciesApi'
 
 // 初始化表单数据
@@ -180,8 +183,53 @@
     await loadDetail()
   }
 }
-
+// 懒加载获取区域节点数据
+async function loadRegionNode(node, resolve) {
+  try {
+    const parentCode = node.data?.id  || '360800000000'
+    const res = await regionLazyTreeApi({ parentCode })
+    const nodes = res?.data?.data || []
+    
+    // 处理返回的节点数据
+    const processedNodes = nodes.map(item => {
+      return {
+        id: item.id || item.value,
+        name: item.name || item.title || item.label,
+        hasChildren: item.hasChildren || false
+      }
+    })
+    
+    resolve(processedNodes)
+  } catch (error) {
+    console.error('获取区域数据失败:', error)
+    resolve([])
+  }
+}
+// 获取初始区域数据(根节点)
+async function getRegionList() {
+  try {
+    // 懒加载模式下,只需要初始化根节点
+    const res = await regionLazyTreeApi({ parentCode: '360800000000' })
+    const nodes = res?.data?.data || []
+    
+    // 处理根节点数据
+    regionOptions.value = nodes.map(item => {
+      return {
+        id: item.id || item.value,
+        name: item.name || item.title || item.label,
+        hasChildren: item.hasChildren || false
+      }
+    })
+  } catch (error) {
+    console.error('获取区域数据失败:', error)
+    ElMessage.error('获取区域数据失败')
+  }
+}
 defineExpose({ open })
+
+onMounted(() => {
+  getRegionList()
+})
 </script>
 
 <style scoped lang="scss">
diff --git a/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue b/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue
index 12c3cfe..457e203 100644
--- a/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue
+++ b/applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue
@@ -26,7 +26,6 @@
           class="gd-select gray"
           popper-class="gd-tree-select-popper"
           v-model="searchParams.areaCode"
-          :data="regionOptions"
           node-key="id"
           :props="treeSelectProps"
           placeholder="请选择"
@@ -34,7 +33,9 @@
           filterable
           @change="handleSearch"
           :check-strictly="true"
-          
+          lazy
+          :load="loadRegionNode"
+          :render-after-expand="false"
         />
       </el-form-item>
 
@@ -192,37 +193,47 @@
   })
 }
 
-// 递归获取区域树形数据
-async function getRegionTree(parentCode = '360800000000') {
+// 懒加载获取区域节点数据
+async function loadRegionNode(node, resolve) {
+
   try {
+    const parentCode = node.data?.id || '360800000000'
     const res = await regionLazyTreeApi({ parentCode })
     const nodes = res?.data?.data || []
     
-    // 如果节点有子节点,递归获取子节点
-    for (let node of nodes) {
-      if (node.hasChildren) {
-        node.children = await getRegionTree(node.id)
-      } else {
-        node.children = []
+    // 处理返回的节点数据
+    const processedNodes = nodes.map(item => {
+      return {
+        id: item.id || item.value,
+        name: item.name || item.title || item.label,
+        hasChildren: item.hasChildren || false
       }
-      node.name = node.name || node.title || node.label
-      // 确保 id 属性存在
-      node.id = node.id || node.value
-    }
-    return nodes
+    })
+    
+    resolve(processedNodes)
   } catch (error) {
     console.error('获取区域数据失败:', error)
-    return []
+    resolve([])
   }
 }
 
-// 获取完整的区域树形数据
+// 获取初始区域数据(根节点)
 async function getRegionList() {
   try {
-    regionOptions.value = await getRegionTree()
-    console.log('区域树形数据:', regionOptions.value)
+    // 懒加载模式下,只需要初始化根节点
+    const res = await regionLazyTreeApi({ parentCode: '360800000000' })
+    const nodes = res?.data?.data || []
+    
+    // 处理根节点数据
+    regionOptions.value = nodes.map(item => {
+      return {
+        id: item.id || item.value,
+        name: item.name || item.title || item.label,
+        hasChildren: item.hasChildren || false
+      }
+    })
   } catch (error) {
-    ElMessage.error('获取区域数据失败')
+    console.error('获取区域数据失败:', error)
   }
 }
 

--
Gitblit v1.9.3