From 1aa5be564d5df56297355a2e71ae4ff6c7df0042 Mon Sep 17 00:00:00 2001
From: feige <feige@qq.com>
Date: 星期一, 09 十月 2023 10:03:23 +0800
Subject: [PATCH] ss
---
ruoyi-ui/src/views/mindMap/index.vue | 165 ++++++++++++++++++++++++++++++------------------------
1 files changed, 92 insertions(+), 73 deletions(-)
diff --git a/ruoyi-ui/src/views/mindMap/index.vue b/ruoyi-ui/src/views/mindMap/index.vue
index e8a14cf..6b3c31a 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,87 @@
});
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{
+ opacity: 0.75;
+ margin-top: -20px;
+ padding: 20px;
+
+}
+.image-container {
+ /*position: absolute;*/
+ position: fixed;
+ top: 70px;
+ 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