人人都可配置的大屏可视化

大屏主要是为了展示数据和酷炫的效果,布局大部分是9宫格,或者在9宫格上做的延伸,现在介绍下 泛积木-低代码 提供的大屏可视化配置。

首先查看效果展示 泛积木-低代码大屏展示。

大屏布局组件

创建页面之后,点击进入编辑页面,在可视化编辑器左侧组件往下翻,找到自定义组件中的 大屏布局组件 ,将 大屏布局组件 拖入页面,可以看到下面的成果:

大屏布局组件

拖入的 大屏布局组件 将使用基础配置,并且已经自带了缩放容器组件。

缩放容器组件

缩放容器组件

缩放容器组件主要用于适配不同的尺寸大小,实现原理:缩放容器组件是以该组件的宽度和设计稿的宽度求比例,然后等比例缩放

缩放容器组件支持配置 设计稿宽度、设计稿高度、样式名称、背景颜色,当要适配不同尺寸的屏幕时,我们只需要修改 设计稿宽度、设计稿高度 为对应尺寸即可。样式名称是添加您需要设置的 样式 或添加唯一的classNameclassName作用的元素将作为后续全屏按钮点击时全屏的元素。

全屏按钮组件

全屏按钮组件

全屏按钮组件主要用于配置全屏按钮加全屏元素等。在全屏元素中配置 缩放容器组件 的 唯一className

全屏按钮组件还支持配置 样式名称、字体颜色、字体大小、间距。字体颜色未配置时,会默认从 大屏布局组件 的字体颜色继承。

说完上述两个小组件之后,我们再来说说关键的 大屏布局组件。

大屏布局组件

大屏布局组件

大屏布局组件的配置项可以概括为两部分:

  1. 总体配置:
    1. 总体内容:
      1. 样式名称;
      2. 字体颜色;
      3. 背景颜色;
      4. 背景图片(不想写链接,也可以直接上传);
      5. 是否显示头部;
      6. 模块样式模板;
      7. 样式覆盖;
    2. 页面内容:
      1. 样式名称;
      2. 内间距;
  2. 头部配置:
    1. 头部总体配置:
      1. 标题名称;
      2. 头部背景图片(支持上传);
      3. 样式名称;
    2. 头部左侧:
      1. 左侧内容;
      2. 样式名称;
    3. 头部右侧:
      1. 右侧内容;
      2. 样式名称;
    4. 头部时间:
      1. 是否显示;
      2. 字体大小;
      3. 显示格式。

样式覆盖 填入 css 之后,会自动在组件内创建 style 标签添加样式,这个时候需要使用 css 优先级去覆盖默认展示内容,例如:

.large-screen-layout .large-screen-layout-header {
  height: 100px;
}

此时页面头部的高度将由默认的 80px 调整为 100px 。

头部背景图片 未设置时,头部高度默认为 80px ,设置之后,高度为背景图片按照宽度整体缩放之后的高度。

头部左/右侧内容 是配置 SchemaNode , SchemaNode 是指每一个 amis 配置节点的类型,支持模板、Schema(配置)以及SchemaArray(配置数组)三种类型。

例如:

{
  ...
  "headerLeft": {
    "type": "tpl",
    "tpl": "公司名称",
    "id": "u:3dc2c3411ae1"
  },
  "headerRight": {
    "type": "fan-screenfull-button",
    "targetClass": "largeScreenLayout",
    "fontSize": "22px",
    "id": "u:be46114da702"
  },
  ...
}

模块样式模板 用于统一设置 大屏单块模板组件 的样式模板,样式模板是事先定义好的一些简单样式。

大屏单块模板组件

大屏单块模板组件

大屏单块模板组件 是用于配置大屏每块内容,大屏布局组件 和 大屏单块模板组件 之间还有一层 grid-2d 组件。

grid-2d
grid-2d

grid-2d 组件 是使用 grid 布局,支持配置 外层 Dom 的类名、格子划分、格子垂直高度、格子间距、格子行间距,建议 大屏布局组件 -> 总体配置 -> 页面内容 -> 内边距 和格子间距设置一致,格子划分 指定 划分为几列,格子间距统一设置横向和纵向的间距,格子行间距可以设置横向间距,优先级高于格子间距。

格子垂直高度 = (缩放容器组件的设计稿高度 - 大屏布局组件头部高度 - 大屏布局组件头部高度页面内容内边距 * 2 - (格子行间距 || 格子间距) * 2) / 3

例如默认的: (1080 - 80 - 20 * 2 - 20 * 2) / 3 = 306.667px

大屏单块模板组件 支持如下配置:

  1. 总体内容:
    1. 样式名称;
    2. 样式模板;
    3. 位置配置;
      1. 起始位置X;
      2. 起始位置Y;
      3. 宽度W;
      4. 高度H;
    4. 是否显示头部;
    5. 样式覆盖;
  2. 模块标题:
    1. 标题名称;
    2. 标题样式;
    3. 字体颜色;
  3. 模块头部右侧:
    1. 右侧内容;
    2. 样式名称;
  4. 模块内容:
    1. 样式名称;
    2. 内边距。

样式覆盖 填入 css 之后,会自动在组件内创建 style 标签添加样式,这个时候需要使用 css 优先级去覆盖默认展示内容,例如:

.fan-screen-card .fan-screen-card-header {
  height: 80px;
}

此时模块头部的高度将由默认的 50px 调整为 80px 。 css 会作用于符合 css 的所有DOM元素,如果需要唯一设置,请在前面添加特殊的前缀,例如:

特殊的前缀

.fan-screen-card-1.fan-screen-card .fan-screen-card-header {
  height: 80px;
}

样式模板 可单独设置每个模块的样式。

模块头部右侧内容 是配置 SchemaNode , SchemaNode 是指每一个 amis 配置节点的类型,支持模板、Schema(配置)以及SchemaArray(配置数组)三种类型。

位置配置 每项的值都是数值,比如默认的 9 宫格就是 3 * 3,此时设置的值就是 1/2/3 ,宽度1就代表一列,高度1就代表一行。可以调整初始位置、宽度、高度等配置出多种布局方式。

大屏单块模板内容首先嵌套 Service 功能型容器 用于获取数据,再使用 Chart 图表 进行图表渲染。

如果需要轮流高亮 Chart 图表的每个数据,例如 大屏动态展示 可以使用如下配置:

  1. 在 Chart 图表 上添加唯一的 className
  2. 配置 Chart 图表的 config
  3. 配置 Chart 图表的 dataFilter

dataFilter

const curFlag = 'lineCharts';

if (window.fanEchartsIntervals && window.fanEchartsIntervals.get(curFlag)) {
  clearInterval(window.fanEchartsIntervals.get(curFlag)[0]);
  window.fanEchartsIntervals.get(curFlag)[1] && window.fanEchartsIntervals.get(curFlag)[1].dispose();
}

const myChart = echarts.init(document.getElementsByClassName(curFlag)[0]);
let currentIndex = -1;
myChart.setOption({
  ...config,
  series: [
    {
      ...config.series[0],
      data: data.line
    }
  ]
});
const interval = setInterval(function () {
  const dataLen = data.line.length;
  // 取消之前高亮的图形
  myChart.dispatchAction({
    type: 'downplay',
    seriesIndex: 0,
    dataIndex: currentIndex
  });
  currentIndex = (currentIndex + 1) % dataLen;
  // 高亮当前图形
  myChart.dispatchAction({
    type: 'highlight',
    seriesIndex: 0,
    dataIndex: currentIndex
  });
  // 显示 tooltip
  myChart.dispatchAction({
    type: 'showTip',
    seriesIndex: 0,
    dataIndex: currentIndex
  });
}, 1000);

if (window.fanEchartsIntervals) {
  window.fanEchartsIntervals.set(curFlag, [interval, myChart]);
} else {
  window.fanEchartsIntervals = new Map();
  window.fanEchartsIntervals.set(curFlag, [interval, myChart]);
}

return config;

修改高亮行 1 curFlag 设置为对应的 Chart 图表的 className,12-17 行是插入数据,22-39 为对应数据的切换展示方式。

增加大屏单块模板

当添加第二个 大屏单块模板 时,直接把第一个复制一份,调整位置、service组件的接口、dataFilter配置等。

至此大屏就配置完成了。

更详细的使用文档可以查看 泛积木-低代码 。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电子液晶屏幕生产厂污废水处理需要哪些工艺设备

随着电子液晶屏幕行业的不断发展,污废水处理成为了一个重要的环保问题。为了达到合规性排放要求,并保护环境,厂家需要采取一系列工艺设备来处理污废水。 首先,常见的一种处理工艺是物理与化学处理。物理处理包括预处理与固液分离&…

Servlet过滤器个监听器

过滤器和监听器 过滤器 什么是过滤器 当浏览器向服务器发送请求的时候,过滤器可以将请求拦截下来,完成一些特殊的功能,比如:编码设置、权限校验、日志记录等。 过滤器执行流程 Filter实例 package com.by.servlet;import jav…

看过来:大龄程序员转行的18个方向

程序员35岁后,无人问津、被下岗,说到底还是中国互联网企业普遍短命和中国程序员新人不断涌现导致的,前者是岗位的缩减,后者是供应的增加,两者一叠加,35岁程序员就成了背锅侠。 大龄程序员和老医生一样都是非…

MySQL数据库基础合集

MySQL数据库基础合集 目录 MySQL数据库基础合集SQL关键字DDL关键字DML关键字DQL关键字DCL关键字约束关键字 SQL基础数据类型整数类型字符类型浮点类型时间类型 数据定义语言DDL1.查看数据库2.创建库3.删除库4.切换库5.创建表6.删除表7.查看表8.查看表属性9.插入列10.修改列11.设…

【MySQL】学习如何通过DQL进行数据库数据的条件查询

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-63IIm2s5sIhQfsfy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

股票市场

(一)股票市场 顾名思义,就是买卖股票的场所。就是为了撮合想发展但缺钱的企业与有钱但想投资的投资者。 股票市场按照交易场所,可分为场内市场和场外市场: 场内市场是指证券交易所, 场外市场就是证券交易…

Java 学生管理系统

条件要求: 自己写的代码: public class Student{private String id;private String name;private int age;private String address;public Student() {}public Student(String id, String name, int age, String address) {this.id id;this.name name…

element ui组件 el-date-picker设置default-time的默认时间

default-time &#xff1a;选择日期后的默认时间值。 如未指定则默认时间值为 00:00:00 默认值修改 <el-form-item label"计划开始时间" style"width: 100%;" prop"planStartTime"><el-date-picker v-model"formData.planStart…

【论文解读】Collaboration Helps Camera Overtake LiDAR in 3D Detection

CoCa3D 摘要引言Collaborative Camera-Only 3D DetectionCollaborative depth estimationCollaborative detection feature learning 实验结论和局限 摘要 与基于 LiDAR 的检测系统相比&#xff0c;仅相机 3D 检测提供了一种经济的解决方案&#xff0c;具有简单的配置来定位 3…

【Linux】Linux环境基础开发工具使用

上篇博客我们学习了Linux权限相关知识&#xff0c;那么这节课我们来学习一下Linux环境基础开发工具使用吧~&#xff0c;主要包括yum、vim、gcc/g的使用&#xff0c;以及Linux项目自动化构建工具。 目录 Linux软件包管理器--yum yum是什么 yum相关操作 yum本地配置 Linux编…

程序员怎么写简历_写简历软件

你们在制作简历时&#xff0c;是不是基本只关注两件事&#xff1a;简历模板&#xff0c;还有基本信息的填写。 当你再次坐下来更新你的简历时&#xff0c;可能会发现自己不自觉地选择了那个“看起来最好看的模板”&#xff0c;填写基本信息&#xff0c;却没有深入思考如何使简历…

小程序样例5:简单登录界面

基本功能 1、头像选择、用户名、密码、昵称选择、性别、城市 2、确认注册跳转 我的页面。 3、其他注册方式跳转用户名 密码登录方式 4、清除 和 密码显示按钮&#xff1a; 5、用户名、密码合法性校验&#xff1a; 6、点击微信图标&#xff0c;调转回微信登录&#xff1a; 代码…

模糊神经网络控制器(MATLAB)

模糊神经网络控制器(Fuzzy Neural Network Controller)是将模糊控制和神经网络相结合的一类控制器。它综合了两者的优点,主要包括以下特点: 知识表达能力强。模糊系统的语言规则和神经网络的学习能力相结合,可以表示复杂的非线性映射关系。 自适应能力强。神经网络提供了在线学…

幻兽帕鲁服务器部署教程(超详细)

幻兽帕鲁服务器部署教程&#xff08;超详细&#xff09; 文章目录 幻兽帕鲁服务器部署教程&#xff08;超详细&#xff09;[TOC] 前言一、怎么部署属于自己的幻兽帕鲁服务器一、怎么登录游戏体验&#xff1f; 前言 在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同…

HCIA学习作业五

拓扑图&#xff1a; PC端 PC1>ipconfig PC2>ipconfig PC3>ipconfig PC4>ipconfig PC>ping PC1>ping 192.168.1.125 PC1>ping 192.168.1.254 PC1>ping 192.168.1.253 PC2>ping 192.168.1.125 PC2>ping 192.168.1.253 PC3>ping 192.168.1.126…

蓝桥杯备战——9.读写AT24C02

1.分析原理图 由上图我们可以看到AT24C02通过IIC与单片机进行通讯&#xff0c;由于A0,A1,A2都接地&#xff0c;所以器件地址为0XA0。 2.IIC通讯协议 比赛的时候会提供IIC驱动代码&#xff0c;我们不需要自己去写&#xff0c;我这里简单贴出一份&#xff1a; #include "i…

电池-电量监测基础知识

一、为何要进行电池电量监测 不知各位有没有想过为何现在手机电池和笔记本电脑电池不容易鼓包了&#xff1f;十年前还经常出现的电池鼓包最近像是消失了一样&#xff0c;其实是因为随着电量监测技术的发展&#xff0c;哪怕是最基本的电子设备也有电池侧和产品侧至少两级电量监测…

1.30 C++ day4

思维导图 构造函数、析构函数、拷贝构造函数、拷贝赋值函数 代码 #include <iostream>using namespace std;class Stu//封装一个学生类 { private://私有属性string name;int id;double *score; public://公共属性//无参构造函数Stu(){cout << "Stu::无参构…

File、IO流(一)

File、IO流 File File是Java.io包下的类&#xff0c;File类的对象&#xff0c;用于代表当前操作系统的文件&#xff08;可以是文件、或者文件夹&#xff09;。 注意&#xff1a;File类只能对文件本身进行操作&#xff0c;不能读写文件里面存储的数据。 IO流 用于读写数据的&…

二叉树-堆实现

目录 Test.c测试代码 test1 test2 test3 &#x1f387;Test.c总代码 Heap.h头文件&函数声明 头文件 函数声明 &#x1f387;Heap.h总代码 Heap.c函数实现 ☁HeapInit初始化 ☁HeapDestroy销毁 ☁HeapPush插入数据 【1】插入数据 【2】向上调整Adjustup❗ …