From 66db80bd6679d011c67ae289e4ded4fa4a76e5d4 Mon Sep 17 00:00:00 2001 From: linwenling <3256558519@qq.com> Date: 星期二, 12 九月 2023 09:48:27 +0800 Subject: [PATCH] 修改个人中心 --- ruoyi-ui/src/views/mindMap/index.vue | 166 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 93 insertions(+), 73 deletions(-) diff --git a/ruoyi-ui/src/views/mindMap/index.vue b/ruoyi-ui/src/views/mindMap/index.vue index e8a14cf..c0bed43 100644 --- a/ruoyi-ui/src/views/mindMap/index.vue +++ b/ruoyi-ui/src/views/mindMap/index.vue @@ -1,17 +1,11 @@ <template> <div class="app-container"> - <h1 style="font-size: 21px;">{{ greeting +'锛�' + user.userName }}</h1> + <div class="text" > + <h1 style="font-size: 21px;margin-left: 0">{{ greeting +'锛�' + user.userName }}</h1></div> <div class="image-container"> <img class="top-image" src="../../assets/images/zhang.png" alt="Top Image"> - <img class="bottom-image" src="../../assets/images/bkg.png" alt="Bottom Image"> - - <el-card class="mind-map-container "> - <div id="mind-map"> - - </div> - </el-card> - </div> + <superMindmap v-if="showMindMap" :active='active' :data="mapData" @activeChange="activeChange" class="mind-map-container "/> </div> </template> @@ -20,11 +14,19 @@ 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:[] @@ -33,8 +35,28 @@ mounted() { 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(); @@ -56,90 +78,88 @@ }); listRoot(4).then(response =>{ this.rootList =response.data; - console.log(this.rootList); - this.drawMindMap(); + + const mindMapData = this.rootList[0]; + // console.log(mindMapData) + // console.log(this.drawData(mindMapData)) + this.mapData = this.drawData(mindMapData) + this.showMindMap = true }) }, - drawMindMap() { - const mindMapData = this.rootList[0]; // 浠巖ootList涓幏鍙栨暟鎹� + drawData(mpdata) { + if (mpdata == null) + return null; + var data = { + "label": mpdata['spouse'] != null ? eval(mpdata['spouse']).nickName : '', + "prop": mpdata['nickName'], + "url": '12', + "id": mpdata['userId'], + "link": mpdata['nickName'], + "children": [] + }; - // 娓呴櫎鐜版湁鐨凷VG鍏冪礌 - d3.select("#mind-map svg").remove(); + 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": '12', + "id": mpdata['childList'][i]['userId'], + "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; + }, - // 鍒涘缓SVG鍏冪礌锛岃缃搴﹀拰楂樺害 - const svg = d3.select("#mind-map") - .append("svg") - .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; -} - -.image-container { position: relative; + /*background-color: transparent;*/ + /*padding-left: -20px;*/ +} +.text{ + background-color: #FEF7FC; + opacity: 0.75; + margin-top: -20px; + padding: 20px; + +} +.image-container { + /*position: absolute;*/ + position: fixed; + top: 50px; + left: 50px; width: 100%; height: 100%; + z-index: -1; } .mind-map-container{ - z-index: 3; + position: fixed; + z-index: 2; + opacity: 0.8; + margin-top: 50px; + margin-left: 50px; + background-color: transparent; } .top-image { - width: 50%; - /*height: 100%;*/ - object-fit: cover; - position: absolute; - top: 0; - right: 0; - opacity: 1; -} - -.bottom-image { - z-index: 1; /* 璁剧疆搴曞眰鍥剧墖鐨勫眰绾т负1 */ width: 100%; height: 100%; - /*position: absolute;*/ - top: 0; + object-fit: cover; + position: static; + opacity: 0.8; } - - </style> -- Gitblit v1.9.1