吉安感知网项目-前端
张含笑
2026-01-27 871b878fac8244fe2ee5b7ece0cf7e2ec77594f7
feat:加载数据
2 files modified
103 ■■■■ changed files
applications/task-work-order/src/views/orderView/organizational/agenciesManagement/FormDiaLog.vue 52 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue 51 ●●●●● patch | view | raw | blame | history
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">
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)
  }
}