用relation-graph构建关系图谱 vue版

用relation-graph构建关系图谱 vue版

  • vue文件和Json数据

vue文件和Json数据

<template><div><div style="margin-top:0px;width: calc(100% - 10px);height:calc(100vh);"><RelationGraph ref="graphRef" :options="graphOptions"><template #node="{node}"><div class="my-node-style" :style="{'background-image': 'url(' + node.data.icon + ')'}"></div><div class="c-node-name" :style="{color:node.color}">{{ node.text }}</div></template><template #graph-plug><div style="position:absolute;z-index:700;left:20px;top:20px;height:110px;padding-top:6px;padding-left: 30px;padding-right:30px;border: #efefef solid 1px;color: #555555;border-radius: 10px;background-color: rgba(255,255,255,0.79);font-size: 12px;"><div style=""><div style="line-height: 20px;">节点筛选:</div><a-radio-group v-model="checked_sex" @change="doFilter"><a-radio-button value="">全部</a-radio-button><a-radio-button value=""></a-radio-button><a-radio-button value=""></a-radio-button></a-radio-group>&nbsp;&nbsp;&nbsp;&nbsp;<a-radio-group v-model="checked_isgoodman" style="margin-left:50px;" @change="doFilter"><a-radio-button value="">全部</a-radio-button><a-radio-button :value="true">正面人物</a-radio-button><a-radio-button :value="false">反面人物</a-radio-button></a-radio-group></div><div><div style="line-height: 20px;">关系筛选:</div><a-checkbox-group v-model="rel_checkList" @change="doFilter"><div style="display:flex;flex-wrap: wrap;line-height: 32px;"><div v-for="item in all_rel_type" :key="item.iid" style="margin-left: 10px"><a-checkbox :key="item" :value="item" > {{ item }} </a-checkbox></div></div></a-checkbox-group></div></div></template></RelationGraph></div></div>
</template><script>
// 如果您没有在main.js文件中使用Vue.use(RelationGraph) 就需要使用下面这一行代码来引入relation-graph
import RelationGraph from 'relation-graph'
import demoData from './Demo4AdvDataFilterData.json'
const graphOptions = {debug: false,defaultNodeBorderWidth: 0,defaultNodeColor: 'rgba(238, 178, 94, 1)',allowSwitchLineShape: true,allowSwitchJunctionPoint: true,defaultLineShape: 1,layout:{label: '自动布局',layoutName: 'force',layoutClassName: 'seeks-layout-force'},defaultJunctionPoint: 'border'// 这里可以参考"Graph 图谱"中的参数进行设置
}
export default {name: 'RelationGraphDemo',components: { RelationGraph }, // 如果您没有在main.js文件中使用Vue.use(RelationGraph) 就需要在这里注册:components: { RelationGraph }data() {return {g_loading: true,demoname: '---',checked_sex: '',checked_isgoodman: '',rel_checkList: ['师生', '上下级', '亲戚', '情人', '朋友', '夫妻', '勾结', '腐化', '举报'],all_rel_type: ['师生', '上下级', '亲戚', '情人', '朋友', '夫妻', '勾结', '腐化', '举报'],graphOptions}},created() {},mounted() {this.setGraphData()},methods: {setGraphData() {const graphJsonData = demoDatathis.$refs.graphRef.setJsonData(graphJsonData, (graphInstance) => {// 这些写上当图谱初始化完成后需要执行的代码})},doFilter() {const allNodes = this.$refs.graphRef.getInstance().getNodes()const allLinks = this.$refs.graphRef.getInstance().getLinks()allNodes.forEach(thisNode => {let _isHideThisLine = falseif (this.checked_sex !== '') {if (thisNode.data['sexType'] !== this.checked_sex) {_isHideThisLine = true}}if (this.checked_isgoodman !== '') {if (thisNode.data['isGoodMan'] !== this.checked_isgoodman) {_isHideThisLine = true}}thisNode.opacity = _isHideThisLine ? 0.1 : 1})allLinks.forEach(thisLink => {thisLink.relations.forEach(thisLine => {if (this.rel_checkList.indexOf(thisLine.data['type']) === -1) {if (!thisLine.isHide) {thisLine.isHide = trueconsole.log('Hide line:', thisLine)}} else {if (thisLine.isHide) {thisLine.isHide = falseconsole.log('Show line:', thisLine)}}})// thisNode.opacity = _isShowThisNode ? 1 : 0.1})this.$refs.graphRef.getInstance().dataUpdated()}}
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="less">
.my-node-style{background-position: center center;background-size: 100%;height:100%;width:100%;border-radius: 40px;overflow: visible;
}
.c-node-name{width:80px;text-align:center;color: #2E74B5;margin-top: 10px;
}</style>

Demo4AdvDataFilterData.json


{"rootId": "N0","nodes": [ {"id": "N2","text": "首都之窗集约化运营门户升级项目","type": "1"},{"id": "N7","text": "温州市数据开放门户升级项目","type": "3"},{"id": "N10","text": "中国兵器工业集团有限公司","type": "2"},{"id": "N14","text": "志愿北京信息平台升级改造项目","type": "3"},{"id": "N18","text": "工业和信息化部政务服务门户改版","type": "3"},{"id": "N21","text": "金华市数据开放门户升级项目","type": "3"}],"lines": [{"from": "N2","to": "N14","text": "关联"},{"from": "N2","to": "N10","text": "关联"},{"from": "N2","to": "N7","text": "关联"},{"from": "N2","to": "N18","text": "关联"},{"from": "N2","to": "N21","text": "关联"}]
}

##相关链接 relation-graph

最后效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919388.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python基础-控制结构

控制结构是编程语言中用来控制程序执行流程的语句。Python提供了条件语句、循环语句等控制结构&#xff0c;让程序能够根据不同条件执行不同的代码块。 程序执行流程图&#xff1a; ┌───────────────────────────────────────────…

Java算法之排序

下面我们将讲述七大基于比较的排序算法的基本原理及实现。并从稳定性、时间复杂度、空间复杂度3种性能对每种排序进行分析。 重点&#xff1a;快速排序和堆排序&#xff1b;难点&#xff1a;快速排序和归并排序 目录 一、排序概念 二、常见排序算法的实现 2.1 插入排序 2.…

RabbitMQ:SpringAMQP 多消费者绑定同一队列

目录一、案例需求二、代码实现三、总结生产者源码 消费者源码 一、案例需求 模拟WorkQueue&#xff0c;实现一个队列绑定多个消费者。 在RabbitMQ的控制台创建一个队列&#xff0c;命名为work.queue。在生产者服务中定义测试方法&#xff0c;在1s内产生50条消息&#xff0c;…

Java技术总监的成长之路(技术干货分享)

以下是针对 ​Java技术总监​ 在 Linux 环境下搭建企业级开发环境的完整指南&#xff0c;涵盖 JDK 配置、工程工具链、协作平台及性能优化方案&#xff1a; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 一、核心环境搭建 1. ​JDK 安装与调优​ ​版本选择…

C++代码解释:实现一个 mystring 类,用于表示字符串,实现构造函数,默认构造长度为 10 的空间,提供打印字符串,获取空间大小,修改内容的成员函数

题目代码#include <cstring> // 包含字符串处理函数库&#xff0c;如strlen、strncpy等 #include <iostream> // 包含输入输出流库&#xff0c;用于cout等操作 using namespace std; // 使用标准命名空间&#xff0c;避免重复书写std::class mystring { // 定…

如何解决IDEA/Datagrip无法连接数据库的问题:解决方法为添加参数-Djava.net.preferIPv4Stack=true

如何解决IDEA/Datagrip无法连接数据库的问题&#xff1a;解决方法为添加参数-Djava.net.preferIPv4Stacktrue 引言 在开发过程中&#xff0c;我们常常使用集成开发环境&#xff08;IDE&#xff09;如 IntelliJ IDEA 或 JetBrains DataGrip 来与数据库进行交互。然而&#xff…

走进数字时代,融入数字生活,构建数字生态

一、准备在IT行业深耕十七年&#xff0c;始终专注于企业生产经营中的实际应用问题&#xff0c;历经开发、测试、运维、实施、架构设计等多个技术岗位&#xff0c;并参与肉制品的生产与销售业务&#xff0c;推进了企业主业的市场管理落地&#xff0c;积累了业务与信息技术融合的…

【Vue开发】在Vite+Vue3项目中实现离线Iconify图标方案

在ViteVue3项目中实现离线Iconify图标方案 项目背景 当前项目需要部署到无网络连接的离线环境&#xff0c;因此需要将Iconify图标集打包到项目构建结果中&#xff0c;实现完全离线使用。 技术环境 框架: Vue 3构建工具: Vite核心依赖:"iconify/json": "^2.2…

Kotlin 协程之Channel

前言 在之前的文章中&#xff0c;我们已经知道了协程的启动、挂起、取消、异常以及常用的协程作用域等基础应用。 这些基础应用适合的场景是一次性任务&#xff0c;执行完就结束了的场景。 launch / async 适合的场景 网络请求数据库查询文件读写并行计算任务等等 Channel …

linux系统装google chrome,amd64

google chrome官网最下边其他平台&#xff0c;linux 查看自己的系统架构&#xff08;用下边这行代码查看&#xff09;&#xff0c;看看是amd还是 &#xff0c;我的显示amd64&#xff0c;amd对应.deb,rpm对应x86 &#xff0c;选择下载 dpkg --print-architecture 然后 sudo…

【C++基础】C++ 中const与volatile关键字深度解析:从面试考点到底层实现

在 C 开发岗位的面试中&#xff0c;const与volatile关键字是高频考点之一。这两个关键字看似简单&#xff0c;但实际上蕴含着丰富的语义和底层机制。本文从基础语法到高级应用&#xff0c;结合大厂真题&#xff0c;深入解析这两个关键字的奥秘。一、const关键字&#xff1a;常量…

达梦分布式集群DPC_故障分析_yxy

达梦分布式集群DPC_节点故障分析1 DPC核心概念回顾2 场景1-主库故障3 场景2-少数备库故障4 场景3-多数节点故障4.1 多数节点故障&#xff08;包括主库&#xff09;4.2 多数备库节点故障&#xff08;不包括主库&#xff09;1 DPC核心概念回顾 达梦分布式集群DPC&#xff0c;基于…

【高并发内存池】一、简介 定长内存池实现

文章目录Ⅰ. 项目介绍1、这个项目要做什么2、项目的要求Ⅱ. 什么是内存池1、池化技术2、内存池3、mallocⅢ. 设计一个定长内存池1、定长内存池的概念2、实现如何实现定长❓❓❓如何绕开 malloc 向堆直接申请空间❓❓❓3、性能测试Ⅰ. 项目介绍 1、这个项目要做什么 tcmalloc源…

产品设计.原型设计

产品思维&#xff1a; 1. 产品定位&#xff1a;产品的具体的、用户画像&#xff1b; --什么样的人在什么环境下做什么事情的场景 2. 范围层: 发现、识别和决策需求。--识别真假需求&#xff0c;做ROI判断 3. 可复用的、MVP产品方案--要能复用的解决方案&#xff0c;最小可用产品…

vue3+element-plus 输入框el-input设置背景颜色和字体颜色,样式效果等同于不可编辑的效果

应用效果&#xff1a;代码&#xff1a;<template> ......<el-form-item label"文件编号" label-position"right"><el-input v-model"qualityFileForm.fileNo" clearable :disabled"!props.isNew" /></el-form-it…

[ CSS 前端 ] 网页内容的修饰

目录 一. CSS 1. 概述 2. 基本语法 (1)行内样式表 (2)内嵌样式表 (3)外部样式表 3. 选择器 (1)标签选择器: (2)类选择器: (3)通配选择器: (4)后代选择器: 4. 基础样式 (1). 文本样式 (2). 背景样式 (3). 列表样式 5. 伪类 (1)定义: (2)伪类的语法&#xff1a; …

全面深入了解榛树游戏引擎

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;榛树游戏引擎&#xff08;Hazel&#xff09;是一款专为游戏开发设计的先进软件工具&#xff0c;它集成了多种功能&#xff0c;支持现代图形API&#xff0c;具有高性能的物理模拟系统和易学易用的脚本语言&#…

“大模型”技术专栏 | 浅谈基于 Kubernetes 的 LLM 分布式推理框架架构:概览

编者按&#xff1a;人工智能正以前所未有的渗透力重塑生产与生活图景。作为国内领先的数据智能科技企业&#xff0c;和鲸科技自 2015 年成立以来&#xff0c;深耕人工智能与数据科学&#xff0c;历经十年发展&#xff0c;已在气象、教育、医疗、航空航天、金融、通信、能源、零…

【JS】认识并实现一个chrome扩展程序

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍chrome扩展程序。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#…

jeecgboot项目遇见的一些问题:

1.当你想修改项目的标题&#xff0c;前端将jeecgboot改成你想要的标题的时候&#xff0c;去前端的.env文件中进行修改。图1 修改标题根据路径找到文件&#xff0c;将网站标题改成自己需要的就可以正常显示了。图2 显示前图3 显示后2.在动态数组中&#xff0c;如果你知道数组需要…