吉安感知网项目-前端
罗广辉
2026-08-13 1d552a3bad95caae4af15322df28e6240b797693
applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue
@@ -22,20 +22,13 @@
      </el-form-item>
      <el-form-item label="所属区划" prop="areaCode">
        <el-tree-select
        <RegionSelect
          class="gd-select gray"
          popper-class="gd-tree-select-popper"
          v-model="searchParams.areaCode"
          node-key="id"
          :props="treeSelectProps"
          placeholder="请选择"
          clearable
          filterable
          @change="handleSearch"
          :check-strictly="true"
          lazy
          :load="loadRegionNode"
          :render-after-expand="false"
        />
      </el-form-item>
@@ -45,13 +38,13 @@
      </el-form-item>
    </el-form>
    <div class="gd-table-toolbar">
      <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增机构</el-button>
      <el-button :icon="Upload" @click="handleImport">机构导入</el-button>
      <el-button :icon="Download" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">机构导出</el-button>
    </div>
    <div class="gd-table-container" v-loading="loading">
      <div class="gd-table-toolbar">
        <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增机构</el-button>
        <el-button :icon="Upload" color="#ECECF4" @click="handleImport">机构导入</el-button>
        <el-button :icon="Download" color="#ECECF4" :loading="exportLoading" :disabled="exportLoading" @click="handleExport">机构导出</el-button>
      </div>
      <div class="gd-table-content gd-table-content-bg">
        <el-table class="gd-table" :data="list" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="46" />
@@ -69,7 +62,7 @@
             {{ getDictLabel(row.status, dictObj.institutionStatus) }}
            </template>
          </el-table-column>
          <el-table-column label="操作" class-name="operation-btns" width="200">
          <el-table-column label="操作" class-name="operation-btns" width="200" fixed="right">
            <template v-slot="{ row }">
              <el-link type="primary" @click="openForm('view', row)">查看</el-link>
              <el-link type="primary"  @click="openForm('edit', row)">编辑</el-link>
@@ -99,7 +92,7 @@
      class="gd-dialog"
      append-to-body
      v-model="isShowImportView"
      title="导入机构"
      title="机构导入"
      :width="pxToRem(500)"
      :close-on-click-modal="false"
      :destroy-on-close="true"
@@ -109,7 +102,8 @@
        <el-form-item label="导出模板">
          <el-button 
            color="#F2F3F5"
            type="primary"
            type="primary"
                  class="gd-upload-btn"
            @click="handleExportTemplate"
          >
            下载模板
@@ -118,7 +112,7 @@
        <el-form-item label="上传文件" prop="file">
         
          <el-upload class="avatar-uploader" action="" :show-file-list="false" :before-upload="onImportFileBefore">
            <el-button  type="primary">点击上传</el-button>
            <el-button class="gd-upload-btn" type="primary">点击上传</el-button>
          </el-upload>
          <div class="upload-tip">
           {{ importFileName }}
@@ -134,7 +128,7 @@
          :disabled="importSubmitting"
          @click="submitImport(importFormRef)"
        >
          保存
          导入
        </el-button>
      </template>
    </el-dialog>
@@ -146,13 +140,13 @@
import { onMounted, ref, provide, nextTick } from 'vue'
import { ElMessage, ElMessageBox, ElUpload } from 'element-plus'
import FormDiaLog from './FormDiaLog.vue'
import RegionSelect from '@/components/RegionSelect/main.vue'
import {
  agenciesPageApi,
  agenciesRemoveApi,
  agenciesImportApi,
  agenciesExportApi,
  agenciesExportTemplateApi,
  regionLazyTreeApi,
  agenciesSubmitApi
} from './agenciesApi'
import { getDictionaryByCode } from '@/api/system/dictbiz'
@@ -176,13 +170,6 @@
const regionOptions = ref([]) // 区域选项
const dictObj = ref({}) // 字典对象
const selectedFiles = ref([]) // 勾选的文件列表
// 树形选择器配置
const treeSelectProps = {
  value: 'id',
  label: 'name',
  children: 'children'
}
// 导入机构相关
const isShowImportView = ref(false)
const importFileName = ref('')
@@ -210,37 +197,6 @@
  getDictionaryByCode('institutionStatus').then(res => {
          dictObj.value = res.data.data
  })
}
// 懒加载获取区域节点数据
async function loadRegionNode(node, resolve) {
  try {
    // 限制只加载两级,当前节点 level >= 1 时不加载子节点
    if (node.level >= 2) {
      resolve([])
      return
    }
    // 初始化加载时传递 code 参数,加载子节点时传递 parentCode 参数
    const params = node.data?.id ? { parentCode: node.data.id } : { code: '360800000000' }
    const res = await regionLazyTreeApi(params)
    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 getList() {