基于jeecgboot的大屏设计器开发——数据源设计(一)

简介: 基于jeecgboot的大屏设计器开发——数据源设计(一)

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

    一、数据库设计

    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 前端代码

<a-col :span="24">
            <a-form-model-item label="数据源类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
              <j-dict-select-tag type="list" v-model="model.type" dictCode="bs_source_type,name,code" @change="onchange" placeholder="请选择数据源类型" />
            </a-form-model-item>
          </a-col>

首先数据源类型这里需要增加一个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;
        })
      },

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

<a-col
            v-for="(data, index) in dataLink"
            :key="index"
            :span="24"
          >
            <a-form-model-item :label="data.labelValue" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input v-model.trim="data.value" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <center><a-button type="primary" @click="dataSourceTest">测试</a-button></center>
          </a-col>

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

// 测试
      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 数据源编辑与测试


相关文章
|
存储 数据可视化 JavaScript
(低代码)可视化搭建平台数据源设计剖析
低代码平台属于APaaS(应用平台即服务),其解决的是企业内部应用协调和人效成本的问题. 随着计算机技术诸如云服务等的发展, 传统软件服务已无法满足数字化浪潮的压力,
1058 0
|
3月前
|
数据可视化 前端开发 JavaScript
本来不想分享的,但这套可视化大屏确实不错
本来不想分享的,但这套可视化大屏确实不错
|
4月前
|
存储
通用研发提效问题之女娲系统管理不同类型的数据源,如何解决
通用研发提效问题之女娲系统管理不同类型的数据源,如何解决
|
6月前
|
数据库
基于jeecgboot的大屏设计器开发——数据源设计(三)
基于jeecgboot的大屏设计器开发——数据源设计(三)
88 1
基于jeecgboot的大屏设计器开发——数据源设计(三)
|
6月前
|
数据库
基于jeecgboot的大屏设计器开发——数据源设计(二)
基于jeecgboot的大屏设计器开发——数据源设计(二)
149 1
|
6月前
|
前端开发
基于jeecgboot的大屏设计器开发——数据集设计(一)
基于jeecgboot的大屏设计器开发——数据集设计(一)
143 3
|
6月前
|
移动开发 前端开发 BI
基于jeecgboot的大屏设计器开发——大屏报表管理(一)
基于jeecgboot的大屏设计器开发——大屏报表管理(一)
152 0
|
6月前
|
前端开发 BI
基于jeecgboot的大屏设计器开发——大屏报表管理(二)
基于jeecgboot的大屏设计器开发——大屏报表管理(二)
147 0
|
6月前
|
前端开发
基于jeecgboot流程管理平台的自定义业务表单集成方法
基于jeecgboot流程管理平台的自定义业务表单集成方法
157 0
|
6月前
|
存储 运维 小程序
电商小程序02数据源设计
电商小程序02数据源设计