热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端折线图中背景_前端可视化开发(三)基础元素

基础元素(图元)范围在第一篇中我们通过思维导图也简单介绍了图元的范围。基础图形-点线面基础图表-echarts[折线图,饼图,
028ebdc50cd964c2f2244558ddf044f5.png
f091b7815335559e3ce1b932c52631e2.png

基础元素(图元)

范围

在第一篇中我们通过思维导图也简单介绍了图元的范围。

  • 基础图形 - 点线面
  • 基础图表 - echarts[折线图,饼图,柱状图,地图,散点图...]
  • 媒体 - 视频,直播视频
  • 表格
  • 3d图形
  • 行业组件
  • ...

配置项

样式配置项

可以通过样式配置项,配置图元的基础样式属性,如下:

f9c9f6e34e255e8a48a037288859366c.png

数据配置项 可以通过数据配置项,配置图元的数据,这里有个数据源的概念。 数据源指的就是获取数据的方式,可以通过以下的方式:

  1. 静态的编辑器书写,
  2. 可以通过api,
  3. 可以通过sql,
  4. ...
f22e092a9d1ffb504d4aedcc3002af4c.png

图元属性

  • 位置 - top,left
  • 大小 - width,height
  • 角度 - angle
  • 名称 - partName
  • id - partId
  • 图层 - layer
  • 身份标示 - partType

基本就是以上的信息我们重新梳理一下(x指left,y指top):

class Part {/*** 图形元素的名称*/public partName: string = '';
​/*** 图形元素的id*/public partId: string = '';
​/*** 图形的类型,比如part,component, template*/public partType: string = '';
​/*** 第一级表示标识*/public sourceType: string = '';
​/*** 第二级表示标识*/public type: string = '';
​/*** 第三级表示标识*/public childType: string = '';
​/*** 图形元素的图层*/public layer: number = 0;/*** 基本的样式*/public partStyle: PartStyle;
}

class PartStyle {/*** 图形元素的x坐标*/public x: number;
​/*** 图形元素的y坐标*/public y: number;
​/*** 图形元素的宽度*/public width: number;
​/*** 图形元素的高度*/public height: number;
​/*** 图形元素的角度*/public angle: number;
​/*** 图形元素的背景颜色*/public backgroundColor: string;
​/*** 图形元素的透明度* 1~100*/public opacity: number;
}

图元函数(方法)

生命周期

图元是一个完整的实例类,所以它是一个有生命的个体,所以我们需要为它定制生命周期,以抽象的形式展示

初始化实例对象

发生在创建实例的时候,比如从菜单拖拽出一个图元

销毁实例对象

export abstract class LifeCircle {/*** 初始化类对象*/abstract init(domId: string, opts?: any): void;
​/*** 销毁类对象*/abstract destroyed(): void;
}

通用的方法钩子

这里面我是用ts写的,大概可以总结为以下几个方法

  1. 数据存储和读取
保存图元数据,获取图元数据数据,发生在保存和初始化的情况
  • 获取类对象纯属性 - getPartAllProps
  • 设置类对象纯属性 - setPartAllProps

2. 样式配置

设置样式配置项 公共的样式配置项指的是大小,坐标,图层等 私有的样式配置项指的是echarts的系列,xy轴等
  • 获取类对象公共样式 - setPublicStyle
  • 设置类对象私有样式 - setShapeStyle(setPrivateStyle)

3. 数据配置

设置数据配置项 调用设置静态数据,这里补充一点不管是什么数据源,最终拿到的都是静态数据,所以只有一个设置静态数据的方法
  • 获取类对象静态数据 - setStaticData

4. 事件配置

设置事件配置项 公共的事件配置项指的是图元间的传参等 私有的事件配置项指的是图元内部的事件等
  • 获取类对象公共事件 - setPublicPartEvent
  • 设置类对象私有事件 - setPrivatePartEvent

5. 动画配置

设置动画配置项 内置动画配置项指的是图元内部的动画,比如echarts的tooltip显示等 外部动画配置项指的是图元外部渐变显示和隐藏等
  • 获取类对象外部动画 - setOuterAnimation
  • 设置类对象内置动画 - setInnerAnimation

export abstract class AbstractPart extends LifeCircle {/*** 获取类对象纯属性*/public abstract getPartAllProps(): Model.Part;
​/*** 设置类对象纯属性*/public abstract setPartAllProps(partType: any): void;
​/*** 设置公共和私有的实例样式属性*/public abstract setPublicStyle(option: any): void;public abstract setPrivateStyle(option: any): void;/*** 设置静态数据*/public abstract setStaticData(option: any): void;/*** 设置实例的事件*/public abstract setPublicPartEvent(): void;public abstract setPrivatePartEvent(): void;
​/*** 设置实例内置的动画*/public abstract setInnerAnimation(): void;
​/*** 设置实例外置的动画*/public abstract setOuterAnimation(): void;
}

下一章节,我们将介绍如何去设计一个能够实例化图元的大致流程

上一篇 前端可视化开发(二)- 框架选择

下一篇 前端可视化开发(四)- 实现图元阶段一



推荐阅读
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • ServiceStack与Swagger的无缝集成指南
    本文详细介绍了如何在ServiceStack项目中集成Swagger,以实现API文档的自动生成和在线测试。通过本指南,您将了解从配置到部署的完整流程,并掌握如何优化API接口的开发和维护。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
author-avatar
qyfdxlwb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有