当前位置: 首页 > Web前端 > CSS

《免费开源》基于Vue和Quasar的前端SPA项目crudapi后台管理系统动态表关系管理(六)

时间:2023-03-31 11:38:42 CSS

基于Vue和Quasar的前端SPA项目实战表关系(六)回顾通过上一篇文章基于Vue和Quasar前端SPA项目实战之动态表单介绍(五),我们完成了元数据中的动态表单设计功能,本文主要实现表关系功能。简介在crudapi系统中,通过表关系(relation)管理将多个表连接起来,支持一对多、多对一、一对一、多对多等多种关系。表关系的基本概念可以参考上一篇文章表关系,通过UI配置表关系后,可以支持主子表的级联操作。UI界面表关系列表编辑表关系表关系图API表关系API包括基本的CRUD操作,可以通过swagger文档查看。通过axios封装api,名称为metadataRelationimport{axiosInstance}from"boot/axios";constmetadataRelation={create:function(data){returnaxiosInstance.post("/api/metadata/tablerelations",data);},update:function(id,data){returnaxiosInstance.patch("/api/metadata/tablerelations/"+id,data);},list:function(page,rowsPerPage,search,query){returnaxiosInstance.get("/api/metadata/tablerelations",{参数:{offset:(page-1)*rowsPerPage,limit:rowsPerPage,search:search,...询问}});},count:function(search,query){returnaxiosInstance.get("/api/metadata/tablerelations/count",{params:{search:search,...query}});},get:function(id){returnaxiosInstance.get("/api/metadata/tablerelations/"+id,{params:{}});},删除:函数(id){返回axiosInstance.delete("/api/metadata/tablerelations/"+id);},batchDelete:function(ids){returnaxiosInstance.delete("/api/metadata/tablerelations",{data:ids});}};导出{元数据关系};核心代码q-select控件表关系设计页面使用q-select控件,支持选择4种基本类型:包括一对多OneToMany、多对一ManyToOne、一对一(master-sub)OneToOneMainToSub,一对一对于一个(子master)OneToOneSubToMain,通过多种组合实现各类表关系relationTypeOptions:[{值:“OneToMany”,标签:“一对多”},{值:“ManyToOne”,标签:“多对一”},{value:"OneToOneMainToSub",label:"一对一(Master-Sub)"},{value:"OneToOneSubToMain",label:"一对一(Sub-Master)"}]表关系diagramG6采用了蚂蚁集团的G6图形可视化引擎。G6是一个简单、易用、完备的图形可视化引擎,在高度定制能力的基础上,提供了一系列设计优雅、易用的图形可视化解决方案。它可以帮助开发人员构建自己的图形、图形分析应用程序或图形编辑器应用程序。package.json添加@antv/g6依赖"dependencies":{"@quasar/extras":"^1.0.0","@antv/g6":"^3.3.6","axios":"^0.18.1","core-js":"^3.6.5","quasar":"^1.0.0","vue-i18n":"^8.0.0"}通过列表增删改查页面,新建页面和编辑页面,实现表关系的基本CRUD操作。编辑页面类似于新页面。在表关系图中可以看到所有表之间的关系,一目了然。有关详细信息,请参阅源代码。总结本文主要介绍元数据中的表关系管理功能,支持常见的一对多、一对一、多对多关系,通过G6图表库展示所有表的关系图。至此,元数据设计功能已经全部实现,下一篇将介绍业务数据的CRUD功能。Demo演示官网地址:https://crudapi.cn测试地址:https://demo.crudapi.cn/crudapi/login附源码地址GitHub地址https://github.com/crudapi/crudapi-admin-webGitee地址https://gitee.com/crudapi/crudapi-admin-web由于网络原因,GitHub可能会比较慢,改访问Gitee即可,代码会同步更新。