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