基于jeecgboot的大屏设计器开发——数据源设计(一)
创始人
2025-05-29 19:45:26
0

     因为项目需要,需要开发类似大屏设计器的内容,所以开始考虑开发大屏设计器。

     一、数据库设计

     1、主要先考虑数据源类型,可以根据需要进行增加,包括mysql,oracle,http等。


DROP TABLE IF EXISTS `bs_source_type`;
CREATE TABLE `bs_source_type` (
  `id` varchar(36) NOT NULL COMMENT 'id',
  `code` varchar(32) DEFAULT NULL COMMENT '编码',
  `name` varchar(32) DEFAULT NULL COMMENT '名称',
  `json_value` text COMMENT 'json值',
  `status` int(11) DEFAULT NULL COMMENT '状态',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建日期',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新日期',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2、 数据源表,保存用实际需要的数据源,同时可以进行测试。

DROP TABLE IF EXISTS `bs_data_source`;
CREATE TABLE `bs_data_source` (
  `id` varchar(36) NOT NULL COMMENT 'id',
  `code` varchar(100) DEFAULT NULL COMMENT '数据源编码',
  `name` varchar(100) DEFAULT NULL COMMENT '数据源名称',
  `type` varchar(10) DEFAULT NULL COMMENT '数据源类型',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建日期',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新日期',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门',
  `config` text COMMENT '数据源配置',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `bs_data_source_code_uni` (`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

二、online表单设计

   因为上面的数据都需要录入等维护,所以通过online设计表单实现

   因为大盘设计作为单独的模块表单,所以在数据字典增加一个类型大盘表单

 1、bs_source_type表单按照正常的新建一个就可以,如下:

 生成代码也不需要做什么调整,应该直接 就可以用了。

2、bs_data_source表单如下:

 这个主要是用到第一个表的type类型,所以需要进行关联,生成的前后端代码也要做一些调整。

2.1 前端代码

  

首先数据源类型这里需要增加一个onchange事件,以便选择变化的时候进行取值,获取type数据源类型后再把json值取出来

onchange(val) {const that = this;console.log("onchange val=",val);this.sourceForm.sourceType = val;let url = this.url.queryByCode, method = 'get';let params = {code: val};getAction(url,params).then((res)=>{if(res.success){//that.$message.success(res.message);console.log("onchange res=",res);that.dataLink = JSON.parse(res.result.jsonValue);console.log("onchange that.dataLink=",that.dataLink);}else{that.$message.warning(res.message);}}).finally(() => {that.confirmLoading = false;})},

同时根据这个值进行动态显示相应的类型内容

测试

显示出来后进行相应的数据源测试

// 测试dataSourceTest() {const newList = {};this.dataLink.forEach(item => {newList[item.label] = item.value;});this.sourceForm.sourceConfig = JSON.stringify(newList);testConnection(this.sourceForm).then(res => {console.log("testConnection res=",res);if (res.code == "200") {this.testReplyCode = res.code;this.$message.success(res.result);} else {this.$message.error(res.result);this.testReplyCode = null;}});},

后端部分修改下个章节介绍

三、效果如下:

3.1数据源类型

 3.2 数据源编辑与测试

 

 

 

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...