From dd57e0e9a989e7ee8b3e3473a7ee6a1dff06a4ae Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 27 Jan 2026 17:19:04 +0800
Subject: [PATCH] feat:调整加载
---
applications/task-work-order/src/views/orderView/organizational/agenciesManagement/index.vue | 85 +++++++++++++++++++++++++++++++-----------
1 files changed, 62 insertions(+), 23 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..fc7452c 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
@@ -11,10 +11,10 @@
/>
</el-form-item>
- <el-form-item label="机构编码" prop="bindCode">
+ <el-form-item label="机构编码" prop="deptCode">
<el-input
class="gd-input gray"
- v-model="searchParams.bindCode"
+ v-model="searchParams.deptCode"
placeholder="请输入"
clearable
@clear="handleSearch"
@@ -22,16 +22,21 @@
</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"
+ 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"
+ lazy
+ :load="loadRegionNode"
+ :render-after-expand="false"
+ />
</el-form-item>
<el-form-item class="gd-search-actions">
@@ -51,10 +56,10 @@
<el-table class="gd-table" :data="list">
<el-table-column label="序号" width="80">
<template v-slot="{ $index }">
- {{ ((searchParams.current - 1) * searchParams.size + $index + 1).toString().padStart(2, '0') }}
+ {{ $index + 1 }}
</template>
</el-table-column>
- <el-table-column prop="bindCode" show-overflow-tooltip label="机构编码" />
+ <el-table-column prop="deptCode" show-overflow-tooltip label="机构编码" />
<el-table-column prop="deptName" show-overflow-tooltip label="机构名称" />
<el-table-column prop="areaName" show-overflow-tooltip label="所属区划" />
<el-table-column prop="remark" show-overflow-tooltip label="机构描述" />
@@ -63,7 +68,7 @@
{{ getDictLabel(row.status, dictObj.institutionStatus) }}
</template>
</el-table-column>
- <el-table-column label="操作" class-name="operation-btns" width="310">
+ <el-table-column label="操作" class-name="operation-btns" width="400">
<template v-slot="{ row }">
<el-link type="primary" @click="openForm('view', row)">查看</el-link>
<el-link type="primary" @click="openForm('edit', row)">编辑</el-link>
@@ -100,7 +105,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">
@@ -143,7 +147,7 @@
// 初始化查询参数
const initSearchParams = () => ({
deptName: '', // 机构名称
- bindCode: '', // 机构编码
+ deptCode: '', // 机构编码
areaCode: '', // 所属区划
current: 1, // 当前页
size: 10, // 每页大小
@@ -157,6 +161,14 @@
const dialogVisible = ref(false)
const regionOptions = ref([]) // 区域选项
const dictObj = ref({}) // 字典对象
+
+// 树形选择器配置
+const treeSelectProps = {
+ value: 'id',
+ label: 'name',
+ children: 'children'
+}
+
// 导入机构相关
const isShowImportView = ref(false)
@@ -181,14 +193,32 @@
})
}
-// 获取区域列表
-function getRegionList() {
- regionLazyTreeApi({parentCode: '360800000000'}).then(res => {
- console.log('区域列表', res.data.data);
-
- regionOptions.value = res.data.data || []
- })
+// 懒加载获取区域节点数据
+async function loadRegionNode(node, resolve) {
+
+ try {
+ // 初始化加载时传递 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() {
@@ -274,7 +304,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 +337,12 @@
if (valid) {
importSubmitting.value = true
try {
- // 这里实际上传文件的逻辑已经在onImportFileBefore中处理了
- // 这里可以添加额外的验证或逻辑
+ if (!importParams.value.file) {
+ ElMessage.error('请先上传文件')
+ return
+ }
+ // 触发上传操作
+ await onImportFileBefore(importParams.value.file)
} finally {
importSubmitting.value = false
}
@@ -327,7 +367,6 @@
onMounted(() => {
getDictList()
- getRegionList()
getList()
})
</script>
--
Gitblit v1.9.3