From 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期日, 27 四月 2025 22:13:53 +0800
Subject: [PATCH] 0427

---
 internal_system_v1/converinfo2.cpp |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index 31a3900..b9e8c48 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -100,9 +100,9 @@
 {
     if(m_curItem==nullptr)return;
     qDebug()<<"鍒犻櫎鍏徃淇℃伅,鑺傜偣锛�"<<m_curItem->text(0);
-    auto resList = m_curItem->takeChildren();
+    //auto resList = m_curItem->takeChildren();
 
-    qDebug()<<"鍒犻櫎鏁伴噺:"<<resList.size();
+    //qDebug()<<"鍒犻櫎鏁伴噺:"<<resList.size();
 
     // 鍒犻櫎鏁版嵁搴撹〃閲岄潰瀵瑰簲鐨勫叕鍙镐俊鎭紝骞朵笖鍐嶆鍒锋柊涓嬫媺妗嗗拰鏍戠姸鍥�
 
@@ -121,9 +121,43 @@
     deleteAllByName(name);
 
     // 鍒犻櫎瀹屼簡锛岃繕寰楀幓鍒锋柊涓嬫媺妗�
+    for(auto it=m_nameAndComInfos.begin();it!=m_nameAndComInfos.end();){
+        if(it.key() == name){
+            m_nameAndComInfos.erase(it++);
+            break;
+        }else{
+            it++;
+        }
+    }
+
 
     // 鍘诲埛鏂版爲褰㈠浘
+    for(auto it=m_treeNodes.begin();it!=m_treeNodes.end();){
+        // 濡傛灉绛変簬閿紝閭d箞瑕佸垹闄ゅ搴旂殑鎵�鏈夌殑鍊�
+        if(it.key() == name){
+            // 鎶婃墍鏈夌殑鍊煎搴旂殑鍗曚綅淇℃伅閮藉垹鎺�
+            for(auto str:it.value()){
+                auto p = m_nameAndComInfos.find(str);
+                if(p != m_nameAndComInfos.end()){
+                    deleteAllByName(str); // 杩樺緱鍐嶅垹鎺夋暟鎹簱涓殑鍐呭
+                    m_nameAndComInfos.erase(p);
+                }
+            }
+            m_treeNodes.erase(it++);
+            break;
+        }
+        // 鍙槸鏌愪釜鍊硷紝鍙垹闄や竴涓嵆鍙�,閬嶅巻鍊奸噷闈㈢殑杩唬鍣紝鎵惧埌鍒犻櫎鍗冲彲
+        else{
+            auto p = it.value().find(name);
+            if(p != it.value().end()){
+                it.value().erase(p);
+            }
+            it++;
+        }
+    }
 
+    emit updateComboListSignal(m_nameAndComInfos);
+    createTreeNode();
 
 
 }
@@ -800,11 +834,13 @@
 
                 if(upName.isValid()){
                     if(name.isValid()){
-                        m_treeNodes[upName.toString()].push_back(name.toString());
+                        //m_treeNodes[upName.toString()].push_back(name.toString());
+                        m_treeNodes[upName.toString()].insert(name.toString());
                     }
                 }else{
                     if(name.isValid()){
-                        m_treeNodes[name.toString()].push_back(name.toString());
+                        //m_treeNodes[name.toString()].push_back(name.toString());
+                        m_treeNodes[name.toString()].insert(name.toString());
                     }
                 }
 
@@ -1673,6 +1709,9 @@
 }
 
 void ConverInfo2::createTreeNode(){
+    // 鍏堟竻闄ゅ綋鍓嶆爲涓婄殑鎵�鏈夎妭鐐�
+    ui->treeWidget->clear();
+
     qDebug()<<"鏋勫缓鏍戝舰鍒楄〃"<<m_treeNodes.size();
     for(auto iter=m_treeNodes.begin();iter != m_treeNodes.end();iter++)
     {
@@ -1939,9 +1978,15 @@
             // 瀛樺悕瀛楀埌鍗曚綅鏍憁ap
             QString upName = query.value(21).toString();
             if(!upName.isEmpty()){
-                m_treeNodes[upName].push_back(name);
+                //m_treeNodes[upName].push_back(name);
+                m_treeNodes[upName].insert(name);
             }else{
-                m_treeNodes[name].push_back(name);
+                //m_treeNodes[name].push_back(name);
+                //m_treeNodes[upName].insert(name);
+                if(!name.isEmpty()){
+                    //m_treeNodes[name.toString()].push_back(name.toString());
+                    m_treeNodes[name].insert(name);
+                }
             }
             qDebug()<<"name"<<name<<"upName"<<upName;
 

--
Gitblit v1.8.0