linwenling
2023-10-22 dbca8bf9dde4fe0c7eb89a0c30b095eb823142a5
ruoyi-ui/src/views/components/superMindmap.vue
@@ -3,6 +3,7 @@
</template>
<script>
    import * as d3 from 'd3';
import { useRoute,useRouter } from 'vue-router'
    export default {
        props: {
@@ -79,6 +80,7 @@
        methods: {
            drawMap() {
                let that = this
                //alert(that.$router)
                // 源数据
                let data = {}
                // 判断data是否为空对象
@@ -100,7 +102,7 @@
                // 左右内边距
                let mapPaddingLR = 10
                // 上下内边距
                let mapPaddingTB = 0
                let mapPaddingTB =10
                let mapWidth = this.nodeWidth * TreeDeep + mapPaddingLR * 2;
                let mapHeight = (this.nodeHeight - 4) * leafNum + mapPaddingTB * 2;
                // 定义画布—— 外边距 10px
@@ -158,7 +160,7 @@
                        return Bézier_curve_generator({source: start, target: end});
                    })
                    .attr("fill", "none")
                    .attr("stroke", "#c3c3c3")
                    .attr("stroke", "#EBA4AA")
                    // 虚线
                    // .attr("stroke-dasharray", "8")
                    .attr("stroke-width", 1);
@@ -192,12 +194,12 @@
                    .attr("r", 4)
                    .attr("fill", function (d) {
                        if (d.data.childrenTemp) {
                            return 'red'
                            return '#EBA4AA'
                        } else {
                            return 'white'
                        }
                    })
                    .attr("stroke", "red")
                    .attr("stroke", "#EBA4AA")
                    .attr("stroke-width", 1);
                //绘制标注(节点前的矩形)
                groups.append("rect")
@@ -209,7 +211,7 @@
                        }
                    )
                    .attr("height", 22)
                    .attr("fill", "grey")
                    .attr("fill", "#FFFFFF")
                    // 添加圆角
                    .attr("rx", 4)
                //绘制链接方式
@@ -217,11 +219,24 @@
                    .attr("x", 12)
                    .attr("y", -5)
                    .attr("dy", 10)
                    .attr("fill", 'white')
                    .attr("font-size", 12)
                    .attr("fill", '#F6739F')
                    .attr("font-size", 14)
                    .text(function (d) {
                        return d.data.link;
                    })
                    .on("click",function (event, node) {
                             let data = node.data
                      that.$router.push("/familymodel/jiagenwang/personInfo/" + data.id);
                      })
                      .attr("cursor",
                          function (d) {
                              if (d.data.disabled) {
                                  return 'not-allowed'
                              } else {
                                  return 'pointer'
                              }
                          })
                //绘制文字
                groups.append("text")
                    .on("click", function (event, node) {
@@ -231,10 +246,12 @@
                            return
                        }
                        // 有外链的节点,打开新窗口后恢复到思维导图页面
                        if (data.url) {
                            window.open(data.url)
                            that.$emit('activeChange', 'map')
                            return
                        if (data.id) {
                           // window.open(data.url)
                            that.$router.push("/familymodel/jiagenwang/personInfo/" + data.id);
                            //that.$emit('activeChange', 'map')
                           // return
                        }
                        // 标准节点—— 传出 prop
                        if (data.dicType) {
@@ -252,6 +269,8 @@
                        function (d) {
                            if (d.data.prop === that.active) {
                                return '#409EFF'
                            }else{
                              return '#8296C5'
                            }
                        }
                    )