From 5f36b05f0eb2327c43c6a0c39558ebc5ece4b831 Mon Sep 17 00:00:00 2001
From: feige <791364011@qq.com>
Date: 星期二, 18 三月 2025 21:25:17 +0800
Subject: [PATCH] 修改图片

---
 ruoyi-ui/src/views/mindMap/index.vue |  182 ++++++++++++++++++++++++++-------------------
 1 files changed, 105 insertions(+), 77 deletions(-)

diff --git a/ruoyi-ui/src/views/mindMap/index.vue b/ruoyi-ui/src/views/mindMap/index.vue
index 83f0819..6125b69 100644
--- a/ruoyi-ui/src/views/mindMap/index.vue
+++ b/ruoyi-ui/src/views/mindMap/index.vue
@@ -1,14 +1,14 @@
 <template>
   <div class="app-container">
-    <h1 style="font-size: 21px;">{{ greeting +'锛�' + user.userName }}</h1>
-    <div class="image-container">
-      <img class="top-image" src="../../assets/images/zhang.png" alt="Top Image">
+<!--    <div class="text" style="background-color: #FEF7FC;" >
+      <h1 style="font-size: 21px;">{{ greeting +'锛�' + user.userName }}</h1></div> -->
+    <div class="image-container" style="background-color: #FEF7FC;">
+      <img class="top-image" src="../../assets/images/awd.png" alt="Top Image">
     </div>
-    <el-card class="mind-map-container">
-      <div id="mind-map">
+    <superMindmap  v-if="showMindMap" :active='active' :data="mapData" @activeChange="activeChange" class="mind-map-container ">
 
-      </div>
-    </el-card>
+    </superMindmap>
+
   </div>
 </template>
 
@@ -16,22 +16,49 @@
 import { getUserProfile } from "@/api/system/user";
 import { listRootAll ,listRoot} from "@/api/root/index";
 import * as d3 from 'd3';
-
+// 瀵煎叆鎬濈淮瀵煎浘鏁版嵁
+import MapData from '../components/MapData.js'
+// 瀵煎叆鎬濈淮瀵煎浘缁勪欢
+import superMindmap from '../components/superMindmap.vue'
 
 export default {
+   components:{superMindmap},
   name: "index",
   data() {
     return {
+      active: '',
+      mapData: null,
+      showMindMap: false,
       user: {},
       greeting: "",
       rootList:[]
     };
   },
   mounted() {
-    this.setGreeting();
+  //  this.setGreeting();
     this.getUser();
+  //  this.mapData = MapData.webMap
+
+   // console.log(this.mapData)
+   // console.log('sssssssssssssssssss')
   },
+
   methods: {
+     // 鐐瑰嚮鎬濈淮瀵煎浘鑺傜偣鍚庯紝瑙﹀彂鍙橀噺鏇存柊
+    activeChange(newLabel) {
+        this.active = newLabel
+        this.reloadMindMap()
+    },
+    // 閲嶈浇鎬濈淮瀵煎浘
+    reloadMindMap() {
+        this.showMindMap = false
+        this.$nextTick(
+            () => {
+                this.showMindMap = true
+            }
+        )
+    },
+
     setGreeting() {
       const currentTime = new Date();
       const currentHour = currentTime.getHours();
@@ -51,92 +78,95 @@
       getUserProfile().then(response => {
         this.user = response.data;
       });
-      listRoot(4).then(response =>{
+	  let clanId = this.$store.state.user.clanId
+	//  alert(clanId)
+      listRoot(10,clanId).then(response =>{
         this.rootList =response.data;
-        console.log(this.rootList);
-        this.drawMindMap();
+
+        const mindMapData = this.rootList[0];
+         console.log(mindMapData)
+	//	for(let i = 0; i < )
+		 console.log('9999')
+        // console.log(this.drawData(mindMapData))
+        this.mapData = this.drawData(mindMapData)
+        this.showMindMap = true
       })
 
     },
+    drawData(mpdata) {
+	  let tp = "https://www.bendudu.com:8080/profile/upload/2023/03/19/test7_20230319222030A007.jpg"
+      if (mpdata == null)
+        return null;
+		
+      var data = {
+        "label": mpdata['spouse'] != null ? eval(mpdata['spouse']).nickName : '',
+        "prop": mpdata['nickName'],
+        "url": mpdata['url']!=null?'https://www.bendudu.com:8080/'+mpdata['url']:tp,
+        "purl": mpdata['spouse'] != null ? (mpdata['spouse'].url!=null? 'https://www.bendudu.com:8080/'+mpdata['spouse'].url:tp):tp,
+        "id": mpdata['userId'],
+		"spid": mpdata['spouseId'] != null ? mpdata['spouseId'] : '',
+        "link": mpdata['nickName'],
+        "children": []
+      };
 
-    drawMindMap() {
-      const mindMapData = this.rootList[0]; // 浠巖ootList涓幏鍙栨暟鎹�
+      if (mpdata['childList'] != null) {
+        for (var i = 0; i < mpdata['childList'].length; i++) {
+          var dt = {
+            "label": mpdata['childList'][i]['spouse'] != null ? eval(mpdata['childList'][i]['spouse']).nickName : "",
+            "prop": mpdata['childList'][i]['nickName'],
+            "url": mpdata['childList'][i]['url']!=null?'https://www.bendudu.com:8080/'+mpdata['childList'][i]['url']:tp,
+             "id": mpdata['childList'][i]['userId'],
+			 "spid": mpdata['childList'][i]['spouseId'] != null ? mpdata['childList'][i]['spouseId'] : '',
+			 "purl": (mpdata['childList'][i]['spouse'] != null ) ?( mpdata['childList'][i]['spouse'].url!= null?'https://www.bendudu.com:8080/'+mpdata['childList'][i]['spouse'].url:tp):tp,
+            "link": mpdata['childList'][i]['nickName'],
+            "children": []
+          };
+          if (mpdata['childList'][i]['childList'] != null) {
+            for (var j = 0; j < mpdata['childList'][i]['childList'].length; j++) {
+              dt['children'].push(this.drawData(mpdata['childList'][i]['childList'][j]));
+            }
+          }
+          data['children'].push(dt);
+        }
+      }
+      return data;
+    },
 
-      // 娓呴櫎鐜版湁鐨凷VG鍏冪礌
-      d3.select("#mind-map svg").remove();
-
-      // 鍒涘缓涓�涓柊鐨� div 鍏冪礌浣滀负鍖呰9鎬濈淮瀵煎浘鐨勫鍣�
-      const mindMapContainer = document.createElement("div");
-      mindMapContainer.setAttribute("id", "mind-map-container");
-      mindMapContainer.style.position = "absolute";
-      mindMapContainer.style.top = "0";
-      mindMapContainer.style.left = "0";
-      mindMapContainer.style.width = "100%";
-      mindMapContainer.style.height = "100%";
-      mindMapContainer.style.zIndex = "1";
-
-      // 灏嗘�濈淮瀵煎浘瀹瑰櫒鎻掑叆鍒� image-container 涓�
-      document.querySelector(".image-container").appendChild(mindMapContainer);
-
-      // 鍒涘缓SVG鍏冪礌锛岃缃搴﹀拰楂樺害
-      const svg = d3.select("#mind-map-container")
-        .append("svg")
-        .attr("class", "svg-container") // 娣诲姞 className
-        .attr("width", "100%")
-        .attr("height", "100%");
-
-      // 鍒涘缓鏍硅妭鐐�
-      const root = d3.hierarchy(mindMapData);
-      const treeLayout = d3.tree().size([500, 400]); // 璁剧疆鏍戠姸甯冨眬鐨勫昂瀵�
-      treeLayout(root);
-
-      // 鍒涘缓閾炬帴绾�
-      svg.selectAll(".link")
-        .data(root.descendants().slice(1))
-        .enter()
-        .append("path")
-        .attr("class", "link")
-        .attr("d", d => {
-          return "M" + d.x + "," + d.y + "C" + (d.x + d.parent.x) / 2 + "," + d.y + " " +
-            (d.x + d.parent.x) / 2 + "," + d.parent.y + " " + d.parent.x + "," + d.parent.y;
-        });
-
-      // 鍒涘缓鑺傜偣
-      const nodes = svg.selectAll(".node")
-        .data(root.descendants())
-        .enter()
-        .append("g")
-        .attr("class", "node")
-        .attr("transform", d => "translate(" + d.x + "," + d.y + ")");
-
-      nodes.append("circle")
-        .attr("r", 10);
-
-      nodes.append("text")
-        .attr("dx", 12)
-        .attr("dy", 5)
-        .text(d => d.data.nickName);
-    }
   }
 };
 </script>
 
 <style scoped>
 .app-container{
-  background-color: #FEF7FC;
   position: relative;
+  background-color: transparent;
+  /*padding-left: -30px;*/
+  margin-top:-30px;
+  margin-left: -20px;
 }
-
+.text{
+  opacity: 0.75;
+  padding: 10px;
+}
 .image-container {
   position: absolute;
-  width: 100%;
+  /*position: fixed;*/
+  top: 50px;
+  /*left:-20px;*/
+  width: 110%;
   height: 100%;
   z-index: -1;
 }
 
 .mind-map-container{
-  z-index: 2;
-  opacity: 0.5;
+  /*position: fixed;*/
+
+  overflow: auto;
+  z-index: 1;
+  opacity: 1;
+  margin-top: 5%;
+  margin-left: 12%;
+  /*background-color: transparent;*/
 }
 .top-image {
   width: 100%;
@@ -144,8 +174,6 @@
   object-fit: cover;
   position: static;
   opacity: 0.8;
+  overflow: auto;
 }
-
-
-
 </style>

--
Gitblit v1.9.1