From ec6434effd4589ad67c0bc3b97f9d125184146a2 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 27 Jan 2026 10:22:25 +0800
Subject: [PATCH] feat:调整机构

---
 applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 61 insertions(+), 16 deletions(-)

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 e863da8..7db5f8e 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
@@ -22,16 +22,19 @@
       </el-form-item>
 
       <el-form-item label="所属区划" prop="areaCode">
-        <el-select
+        <el-tree-select
           class="gd-select gray"
-          popper-class="gd-select-popper"
+          popper-class="gd-tree-select-popper"
           v-model="searchParams.areaCode"
+          :data="regionOptions"
+          node-key="id"
+          :props="treeSelectProps"
           placeholder="请选择"
           clearable
+          filterable
           @change="handleSearch"
-        >
-          <el-option v-for="item in regionOptions" :key="item.value" :label="item.title" :value="item.value" />
-        </el-select>
+          :check-strictly="true"
+        />
       </el-form-item>
 
       <el-form-item class="gd-search-actions">
@@ -100,7 +103,6 @@
       @close="handleImportClose"
     >
       <el-form class="gd-dialog-form" ref="importFormRef" :model="importParams" :rules="importRules" label-width="140px">
-       
         <el-form-item label="上传文件" prop="file">
           {{ importFileName }}
           <el-upload class="avatar-uploader" action="" :show-file-list="false" :before-upload="onImportFileBefore">
@@ -158,6 +160,14 @@
 const regionOptions = ref([]) // 区域选项
 const dictObj = ref({}) // 字典对象
 
+// 树形选择器配置
+const treeSelectProps = {
+  value: 'id',
+  label: 'name',
+  children: 'children'
+}
+
+
 // 导入机构相关
 const isShowImportView = ref(false)
 const importFileName = ref('')
@@ -181,13 +191,38 @@
   })
 }
 
-// 获取区域列表
-function getRegionList() {
-  regionLazyTreeApi({parentCode: '360800000000'}).then(res => {
-  console.log('区域列表', res.data.data);
-  
-    regionOptions.value = res.data.data || []
-  })
+// 递归获取区域树形数据
+async function getRegionTree(parentCode = '360800000000') {
+  try {
+    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 = []
+      }
+      node.name = node.name || node.title || node.label
+      // 确保 id 属性存在
+      node.id = node.id || node.value
+    }
+    return nodes
+  } catch (error) {
+    console.error('获取区域数据失败:', error)
+    return []
+  }
+}
+
+// 获取完整的区域树形数据
+async function getRegionList() {
+  try {
+    regionOptions.value = await getRegionTree()
+    console.log('区域树形数据:', regionOptions.value)
+  } catch (error) {
+    ElMessage.error('获取区域数据失败')
+  }
 }
 
 // 获取列表
@@ -274,7 +309,13 @@
 
 // 上传文件前处理
 function onImportFileBefore(file) {
-  // 执行文件上传
+  // 检查文件类型
+  const allowedTypes = ['.xlsx', '.xls']
+  const fileExtension = file.name.substring(file.name.lastIndexOf('.')).toLowerCase()
+  if (!allowedTypes.includes(fileExtension)) {
+    ElMessage.error('请上传Excel文件(.xlsx 或 .xls)')
+    return false
+  }
   let data = new FormData()
   data.append('file', file)
 
@@ -301,8 +342,12 @@
     if (valid) {
       importSubmitting.value = true
       try {
-        // 这里实际上传文件的逻辑已经在onImportFileBefore中处理了
-        // 这里可以添加额外的验证或逻辑
+        if (!importParams.value.file) {
+          ElMessage.error('请先上传文件')
+          return
+        }
+        // 触发上传操作
+        await onImportFileBefore(importParams.value.file)
       } finally {
         importSubmitting.value = false
       }

--
Gitblit v1.9.3