From ec10ac7a0b3a5f728d18e2f566340d019cc0ef65 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Tue, 03 Feb 2026 13:37:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/task-work-order/src/views/orderView/appConfiguration/inventory/FormDiaLog.vue |  147 +++++-------------------------------------------
 1 files changed, 16 insertions(+), 131 deletions(-)

diff --git a/applications/task-work-order/src/views/orderView/appConfiguration/inventory/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/appConfiguration/inventory/FormDiaLog.vue
index 4d2fb0e..1c2355c 100644
--- a/applications/task-work-order/src/views/orderView/appConfiguration/inventory/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/appConfiguration/inventory/FormDiaLog.vue
@@ -42,23 +42,12 @@
 			<el-row>
 				<el-col :span="12">
 					<el-form-item label="所属区划" prop="areaCode">
-						<el-tree-select
-							class="gd-select"
-							popper-class="gd-tree-select-popper"
-							v-model="formData.areaCode"
-							node-key="id"
-							:default-expanded-keys="expandedKeys"
-							:props="treeSelectProps"
-							placeholder="请选择"
-							clearable
-							filterable
-							:check-strictly="true"
-							lazy
-							:load="loadRegionNode"
-							:render-after-expand="false"
-							@change="handleAreaChange"
-						/>
-					</el-form-item>
+					<RegionSelect
+						v-model="formData.areaCode"
+						placeholder="请选择"
+						@change="handleAreaChange"
+					/>
+				</el-form-item>
 				</el-col>
 				<el-col :span="12">
 					<el-form-item label="实施清单名称" prop="implementName">
@@ -106,7 +95,8 @@
 import { computed, ref, inject } from 'vue'
 import { ElMessage } from 'element-plus'
 import { fieldRules } from '@ztzf/utils'
-import { inventorySubmitApi, inventoryDetailApi, regionLazyTreeApi } from './inventoryApi'
+import { inventorySubmitApi, inventoryDetailApi } from './inventoryApi'
+import RegionSelect from '@/components/RegionSelect/main.vue'
 
 // 初始化表单数据
 const initForm = () => ({
@@ -135,20 +125,6 @@
 const submitting = ref(false) // 提交中
 const dialogReadonly = computed(() => dialogMode.value === 'view')
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
-const expandedKeys = ref([]) // 树形选择器展开的节点
-const regionNodeCache = ref(new Map()) // 缓存区域节点及其父节点关系
-
-// 区域树形选择器配置
-const treeSelectProps = ref({
-	value: 'id',
-	label: 'name',
-	children: 'children',
-	// 判断叶子节点
-	isLeaf: (data, node) => {
-		// 如果是第二级节点,则认为是叶子节点
-		return node.level >= 2
-	},
-})
 
 // 表单校验规则
 const rules = {
@@ -188,10 +164,14 @@
 		formData.value.areaName = ''
 		return
 	}
-	// 从缓存中获取区域名称
-	const node = regionNodeCache.value.get(value)
-	if (node) {
-		formData.value.areaName = node.name || ''
+	// 处理RegionSelect组件传递的包含code和name的对象
+	if (typeof value === 'object' && value.code) {
+		formData.value.areaCode = value.code
+		formData.value.areaName = value.name || ''
+	} else {
+		// 兼容旧的字符串值格式
+		formData.value.areaCode = value
+		formData.value.areaName = ''
 	}
 }
 
@@ -220,62 +200,6 @@
 		data.areaCode = String(data.areaCode)
 	}
 	formData.value = data
-
-	// 如果是编辑模式,获取区域节点的路径以展开树形选择器
-	if (dialogMode.value === 'edit' && data.areaCode) {
-		await loadRegionPath(data.areaCode)
-	}
-}
-
-// 加载区域节点路径
-async function loadRegionPath(areaCode) {
-	try {
-		const path = []
-		const queue = [{ code: '360800000000', currentPath: ['360800000000'] }]
-		let found = false
-
-		// 广度优先搜索,逐层加载节点直到找到目标节点
-		while (queue.length > 0 && !found) {
-			const { code, currentPath } = queue.shift()
-
-			// 获取当前节点的子节点
-			const res = await regionLazyTreeApi({ parentCode: code })
-			const nodes = res?.data?.data || []
-
-			for (const node of nodes) {
-				const nodeId = node.id || node.value
-
-				// 缓存节点及其父节点关系
-				regionNodeCache.value.set(nodeId, {
-					id: nodeId,
-					name: node.name || node.title || node.label,
-					parentId: code,
-					hasChildren: node.hasChildren || false,
-				})
-
-				// 检查是否找到目标节点
-				if (nodeId === areaCode) {
-					path.push(...currentPath, nodeId)
-					found = true
-					break
-				}
-
-				// 如果有子节点,加入队列继续搜索
-				if (node.hasChildren) {
-					queue.push({
-						code: nodeId,
-						currentPath: [...currentPath, nodeId],
-					})
-				}
-			}
-		}
-
-		if (path.length > 0) {
-			expandedKeys.value = path
-		}
-	} catch (error) {
-		console.error('加载区域路径失败:', error)
-	}
 }
 
 // 打开弹框
@@ -284,45 +208,6 @@
 	formData.value = dialogMode.value === 'add' ? initForm() : row
 	if (dialogMode.value !== 'add') {
 		await loadDetail()
-	}
-}
-
-// 懒加载获取区域节点数据
-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 parentCode = node.data?.id || '360800000000'
-		const res = await regionLazyTreeApi(params)
-		const nodes = res?.data?.data || []
-
-		// 处理返回的节点数据
-		const processedNodes = nodes.map(item => {
-			const nodeId = item.id || item.value
-			// 缓存节点及其父节点关系
-			regionNodeCache.value.set(nodeId, {
-				id: nodeId,
-				name: item.name || item.title || item.label,
-				parentId: parentCode,
-				hasChildren: item.hasChildren || false,
-			})
-
-			return {
-				id: nodeId,
-				name: item.name || item.title || item.label,
-				hasChildren: item.hasChildren || false,
-			}
-		})
-
-		resolve(processedNodes)
-	} catch (error) {
-		console.error('获取区域数据失败:', error)
-		resolve([])
 	}
 }
 

--
Gitblit v1.9.3