当前位置: 首页 > news >正文

Tpri-Datavue前端插件系统文档

Datavue前端插件系统文档

一、整体架构概述

Datavue前端插件系统是基于Vue框架设计的组件化扩展机制,允许开发者通过注册自定义组件,实现功能模块化扩展。系统核心通过两种插件类型(二次开发插件、Datavue插件)提供不同场景下的组件注册能力,支持组件的复用、分组管理及私有性控制,最终服务于数据可视化设计或前端应用开发。

二、二次开发插件

2.1 插件注册方法

二次开发插件通过 v1.registVuePlugin 方法注册,支持将通用Vue组件集成到Datavue框架中。方法签名如下:

v1.registVuePlugin(plugin,       // Vue组件代码对象name,         // 组件名称(使用时唯一标识)func,         // 功能说明content,      // 使用说明snap,         // 代码片段(可快速插入使用)group = '其它', // 组件分组(默认“其他”组)isPrivate     // 私有组件标识(可选,用于控制访问权限)
)

2.2 参数说明

参数名称类型说明
pluginObjectVue组件代码对象,包含组件的核心实现(如模板、样式、数据、方法等),与Vue文件结构一致
nameString组件唯一名称,用于在框架中引用(如<org-tree>中的org-tree
funcString组件功能描述,用于说明组件的核心作用(如“组织机构树”)
contentString组件使用方法说明,指导开发者如何在项目中调用该组件
snapString代码片段,提供组件快速使用示例(如<org-tree ref="orgTree" />
groupString组件分组名称,用于在组件管理界面分类展示(默认“其他”组)
isPrivateBoolean私有组件标识,若为true,需在代码开头通过注释指定访问组(如// 组名1;组名2

2.3 组件代码对象(plugin)结构

plugin 对象的属性与Vue单文件组件(SFC)结构一致,核心包含以下部分:

2.3.1 基础结构(与Vue组件一致)
  • template:组件模板,定义HTML结构(如使用<el-tree>实现树形展示)
  • style:组件样式,支持CSS/SCSS等预处理器
  • props:组件属性,用于接收外部传入的数据或配置(如organidorgancode控制树的根节点)
  • data:组件内部数据,如treeLoading(加载状态)、treeData(组织机构数据)
  • watch:数据监听,如监听value变化并同步更新组件状态
  • mounted:生命周期钩子,组件挂载后执行初始化逻辑(如加载数据)
  • methods:组件方法,处理业务逻辑(如getTreeData请求数据、handleNodeClick处理节点点击)
2.3.2 特殊属性(示例组件说明)

以“组织机构树”组件(org-tree)为例,其plugin对象实现了完整的组织机构树功能:

  • template:使用Element UI的<el-tree>组件,定义树的结构,支持节点标签、加载状态、点击事件等
  • props:包含organid(根节点ID)、organcode(根节点编码)、dataSource(接口地址)等属性,控制树的数据源和展示
  • methods
    • getTreeData:通过http.postForm请求后端接口,获取组织机构数据(/prod-api/tpridmp/process/${this.dataSource}
    • handleNodeClick:处理节点点击事件,删除节点子数据后通过@setNodeData事件传递选中节点信息
    • setExpandedKeys/expandNodePath:控制树的展开节点,默认展开根节点或指定节点路径
  • 生命周期mounted钩子中调用getTreeData加载数据,完成初始化

2.4 功能总结

二次开发插件的核心功能是实现可复用的Vue组件,支持自定义业务组件(如组织机构树),通过插件注册机制集成到Datavue框架中。其特点是:

  • 遵循Vue组件开发规范,便于开发者快速上手
  • 支持数据交互(如请求后端接口)和事件通信(@setNodeData@setRootIds等)
  • 可通过分组和私有标识管理组件,适配不同项目或团队的组件管理需求

三、Datavue插件

3.1 插件注册方法

Datavue插件通过 v1.registDataVueDesignerPlugin 方法注册,用于扩展Datavue设计器的自定义组件(如数据可视化组件)。方法签名如下:

v1.registDataVueDesignerPlugin(plugin,       // dataVue组件代码对象name,         // 组件名称(设计器中显示的唯一标识)des,          // 功能说明group,        // 组件分组名称subGroup      // 子组名称,用于细分组件分类
)

3.2 参数说明

参数名称类型说明
pluginObjectdataVue组件代码对象,与Vue组件结构一致,包含模板、样式、数据、方法等
nameString组件名称,在设计器组件库中显示(如“测试”)
desString组件功能描述,用于在设计器中说明组件作用(如“测试组件”)
groupString组件分组,用于在设计器中分类展示(如“实验”)
subGroupString子组名称,用于更细粒度的分类(如“测试”)

3.3 组件代码对象(plugin)结构

plugin 对象为Datavue设计器定制的组件,核心特点是支持可视化配置数据绑定,具体包含:

3.3.1 特殊属性(与二次开发插件的差异)
  • props中的颜色控制:定义colorcolorDes属性,用于在设计器右侧属性面板提供颜色配置项(如color: ['#fff']控制文字颜色,colorDes: ['文字颜色']说明颜色用途)
  • 数据处理方法getDefaultData提供默认数据(如{ text: 'Data Vue' }),getDataPropMapping定义数据与属性的映射关系用于数据绑定(如“文字”对应text属性)
  • 设计器适配:支持在设计器中通过拖拽、属性面板配置组件,如调整颜色、修改文本内容(通过data中的数据和methods中的逻辑实现)
3.3.2 示例组件说明

以“测试”组件为例,其plugin对象实现了基础文本展示功能:

  • template<div :style="{color:color[0]}"><span class="title">{{data.text}}</span></div>,通过color[0]绑定颜色属性,data.text绑定文本内容
  • propscolor(颜色数组)和colorDes(颜色说明数组),用于设计器中颜色配置面板
  • methods
    • getDefaultData返回默认文本数据({ text: 'Data Vue' }),在设计器初始化时使用
      • getDataPropMapping定义数据映射关系({ 文字: { name: 'text', type: String } }),使设计器能识别“文字”属性对应text字段
  • 生命周期mountedbeforeDestroy钩子可用于设计器中的初始化和销毁逻辑

3.4 功能总结

Datavue插件的核心功能是扩展Datavue设计器的可视化组件,支持通过设计器界面配置组件样式和数据,无需手动编写代码。其特点是:

  • 集成设计器交互能力,可通过属性面板配置颜色、文本等参数
  • 提供数据默认值和映射规则,简化数据绑定流程
  • 支持分组管理(group+subGroup),便于设计器组件库整理和查找

四、两种插件的对比

维度二次开发插件(v1.registVuePlugin)Datavue插件(v1.registDataVueDesignerPlugin)
注册方法通用Vue组件注册,适配Vue标准开发流程针对Datavue设计器的组件注册,适配可视化配置需求
核心场景如组织机构树等业务逻辑复杂的Vue组件如文本、图表等可视化配置型组件
关键参数snap(代码片段)、isPrivate(私有标识)subGroup(子组)、color/colorDes(颜色控制)
设计器支持非设计器场景,需手动编码调用设计器场景,支持拖拽、属性面板配置
数据交互需手动实现数据请求(如http.postForm依赖设计器数据绑定,通过getDataPropMapping映射数据

五、总结

Datavue前端插件系统通过两种注册方法,为开发者提供了灵活的组件扩展能力:

  • 二次开发插件聚焦通用Vue组件的复用,支持复杂业务逻辑实现(如组织机构树的树形展示、数据请求),适合手动编码集成场景
  • Datavue插件聚焦设计器可视化配置,通过颜色控制、数据映射等机制,简化组件配置流程,适合通过设计器快速生成组件的场景

两种插件均基于Vue组件结构设计,通过统一的注册接口接入Datavue框架,降低了组件扩展的复杂度,提升了前端开发和设计效率。

http://www.dtcms.com/a/610545.html

相关文章:

  • jmeter发送SOAP请求对WebService接口进行测试
  • 哪个网站做任务可以赚钱网站后台的数据库怎么做
  • 自建开发工具IDE(二)文件托拽读取——东方仙盟炼气期
  • 青岛 网站科技公司wordpress商品资源
  • 数据结构 11 图
  • 通过Golang订阅binlog实现轻量级的增量日志解析,并解决缓存不一致的开源库cacheflow
  • 写作网站哪个名声好互联网运营模式有哪几种
  • 磁共振成像原理(理论)32:分辨率限制 (Resolution Limitations)
  • StringRedisTemplate的用法详解
  • 第7天-摄像头体感游戏
  • wordpress液态页面wordpress国内优化 墙
  • AIC8800M40模组调试中遇到的问题
  • Linux设置目录用户权限
  • RVO2-CS:高效的多智能体避碰算法C#实现——原理、应用与实战指南
  • 哈希表实现unordered_map
  • 亚马逊欧洲FBM Ship+上线丨零成本升级配送,中国卖家入驻正当时
  • 做网站seo优化总结做网站年入多少
  • 主流 AI IDE 之一的 Meituan CatPaw IDE 介绍
  • 网站模板下载后怎么使用建设银行舟山分行网站
  • 解决访问 https 网站时,后端重定向或获取 URL 变成 http 的问题
  • 南京h5网站开发网上免费个人网站
  • 【☀Linux驱动开发笔记☀】新字符设备驱动开发_02
  • Java-173 Neo4j + Spring Boot 实战:从 Driver 到 Repository 的整合与踩坑
  • 阳光保险网站wordpress phpwind
  • Android内核进阶之获取DMA地址snd_pcm_sgbuf_get_addr:用法实例(九十一)
  • 隔离地过孔要放哪里,才能最有效减少高速信号过孔串扰?
  • 鸿蒙应用开发从入门到实战(五):ArkUI概述
  • 广东大唐建设网站网站开发名片怎么做
  • 图片展示类网站wordpress模板在线编辑
  • 大模型面试题:请讲一下生成式语言模型的工作机理