From 3696193a03d45dfe495ab1fa1372f1dc2d3a6be9 Mon Sep 17 00:00:00 2001
From: liwenxuan <1298531568@qq.com>
Date: Thu, 23 Oct 2025 10:02:07 +0800
Subject: [PATCH] =?UTF-8?q?=E9=80=89=E6=8B=A9=E7=94=A8=E6=88=B7,=E6=80=A7?=
=?UTF-8?q?=E8=83=BD=E4=BC=98=E5=8C=96,=E6=A0=B7=E5=BC=8F=E4=BC=98?=
=?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../lowCode/assistant/rangedUserTree.vue | 191 ++++++++++++++----
1 file changed, 147 insertions(+), 44 deletions(-)
diff --git a/src/components/lowCode/assistant/rangedUserTree.vue b/src/components/lowCode/assistant/rangedUserTree.vue
index 1a686ed..317764a 100644
--- a/src/components/lowCode/assistant/rangedUserTree.vue
+++ b/src/components/lowCode/assistant/rangedUserTree.vue
@@ -39,18 +39,18 @@ watch(value,(newValue)=>{
let userAry = new Array
newValue.forEach(item =>{
- console.log(item)
+ //console.log(item)
userAry.push(item)
})
str = userAry.join(',')
- console.log(str)
+ //console.log(str)
emits('update:modelValue', str)
// userlist.value = userAry.join(',')
//
}else{
let str = ""
- console.log(str)
+ //console.log(str)
emits('update:modelValue', str)
}
},{ deep: true })
@@ -74,13 +74,20 @@ function parseStringToArray(str:string) {
onBeforeMount(() => {
// 启动检查
checkReady()
- getManConts()
+
//getTree()
setTimeout(()=>{
value.value = parseStringToArray(props.modelValue)
},500 )
})
+onMounted(()=>{
+ setTimeout(()=>{
+ getManConts()
+ },300)
+
+})
+
const url = "/javasys/lowCode/manCont/getManContsByKeys"
//console.log(attrs.value)
const keys = computed(()=>{
@@ -90,7 +97,7 @@ const keys = computed(()=>{
return attrs.orgRange
}
})
-function getManContsByKeys() {
+/* function getManContsByKeys() {
//console.log(11111)
return request({
@@ -101,11 +108,89 @@ function getManContsByKeys() {
},
});
-}
+} */
const options = ref([])
+const convertToAFormatComplate = ref(false)
+function convertToAFormat(bTree, idArray) {
+ const nodeMap = {};
+
+ // 递归收集节点,增加详细日志
+ function collectNodes(node, level = 0) {
+ if (!node) {
+ //console.log(`跳过无效节点: ${node}`);
+ return;
+ }
+ // 记录当前节点信息(方便调试)
+ //console.log(`收集节点 [层级${level}]: id=${node.id}, label=${node.label}`);
+ // 必须有id才存入映射表(避免非节点元素)
+ if (node.id !== undefined && node.id !== null) {
+ nodeMap[node.id] = node;
+ } else {
+ //console.warn(`节点缺少id,跳过:`, node);
+ }
+ // 处理子节点(确保是数组,且元素有效)
+ if (Array.isArray(node.children)) {
+ node.children.forEach((child, index) => {
+ collectNodes(child, level + 1); // 层级+1,方便查看嵌套关系
+ });
+ } else if (node.children !== null && node.children !== undefined) {
+ //console.warn(`节点children不是数组,跳过:`, node.children);
+ }
+ }
+
+ // 处理根节点(兼容数组或单个对象)
+ if (Array.isArray(bTree)) {
+ //console.log(`bTree是数组,共${bTree.length}个根节点`);
+ bTree.forEach((root, index) => {
+ //console.log(`处理根节点${index + 1}`);
+ collectNodes(root);
+ });
+ } else {
+ //console.log(`bTree是单个根节点`);
+ collectNodes(bTree);
+ }
+
+ // 打印收集到的所有节点id(关键调试信息)
+ //console.log(`收集到的节点id列表:`, Object.keys(nodeMap));
+
+ // 匹配idArray并转换
+ const result = idArray.map(id => {
+ // 打印当前匹配的id,检查是否在nodeMap中
+ //console.log(`匹配id: ${id},是否存在: ${id in nodeMap}`);
+ const targetNode = nodeMap[id];
+ if (!targetNode) return null;
+
+ return {
+ id: targetNode.id,
+ number: targetNode.value ?? '', // 用空字符串替代null/undefined
+ name: targetNode.label ?? '',
+ icon: null,
+ key: String(targetNode.id), // 确保key是字符串(与a格式一致)
+ role: '',
+ deparment: '',
+ parentId: targetNode.parentId ?? ''
+ };
+ }).filter(Boolean);
+
+ //console.log(`最终转换结果:`, result);
+ convertToAFormatComplate.value = true
+ return result;
+}
function getManConts(){
- getManContsByKeys().then(({data})=>{
+
+
+ let data = convertToAFormat(props.orgAndManTree,keys.value)
+ data.forEach((element: any) => {
+ element.icon = element.name+"("+element.number+")"
+ element.deparment = ""+element.deparment+">"+element.icon
+ element.label = element.deparment
+ element.value = element.icon
+ });
+ options.value = data
+
+
+ /* getManContsByKeys().then(({data})=>{
data.forEach((element: any) => {
element.icon = element.name+"("+element.number+")"
element.deparment = ""+element.deparment+">"+element.icon
@@ -115,7 +200,7 @@ function getManConts(){
options.value = data
//console.log(options.value)
- })
+ }) */
}
/**
@@ -145,11 +230,13 @@ const userList = computed({
get() {
- return [{
+ /* return [{
id: '全选',
label: '全选',
children: [...resData.value]
- }]
+ }] */
+
+ return resData.value
@@ -337,7 +424,7 @@ watch(props.orgAndManTree,(newValue)=>{
const checkReady = () => {
- if (props.orgAndManTree) {
+ if (props.orgAndManTree&&convertToAFormatComplate.value&&props.orgAndManTree.children.length>0) {//
getTree()
} else {
// 未就绪,100ms 后重试(非阻塞)
@@ -357,49 +444,23 @@ function getTree() {
//alert(1)
let data1 = processTreeData(props.orgAndManTree)
- //console.log(data1)
- let data2 = filterTreeByList(data1.children, options.value)
-
- //console.log(data2)
- data1.children = data2
-
- //console.log(resData.value)
- //console.log(`获取穿梭框接口数据`);
- resData.value = data1.children
- userList.value = [{
- id: '全选',
- label: '全选',
- children: [...resData.value]
- }]
-
- enrichTreeWithEmployeeInfo(options.value, userList.value)
- loading.value = false
- }/* else{
- getOrgAndManTree().then(({ data }) => {
-
-
- let data1 = processTreeData(data)
- //console.log(data1)
+ //console.log(data1)
+
let data2 = filterTreeByList(data1.children, options.value)
- //console.log(data2)
data1.children = data2
- //console.log(resData.value)
- //console.log(`获取穿梭框接口数据`);
resData.value = data1.children
- userList.value = [{
+ /* userList.value = [{
id: '全选',
label: '全选',
children: [...resData.value]
- }]
+ }] */
+ userList.value = resData.value
enrichTreeWithEmployeeInfo(options.value, userList.value)
loading.value = false
-
- })
- } */
-
+ }
@@ -422,8 +483,50 @@ function getOrgAndManTree() {
show-checkbox clearable collapse-tags collapse-tags-tooltip :max-collapse-tags="1" filterable />
{{valPrint(value)}}
-
\ No newline at end of file