本项目是一套面向智慧城市、智慧海洋、智慧交通、智慧文旅及智慧园区等行业的数字孪生低代码可视化大屏开发平台,主要解决传统数据可视化项目开发周期长、组件重复开发率高、交互逻辑复杂、维护成本高以及跨项目复用性不足等问题。
平台采用低代码、组件化和配置化的设计理念,将数据图表、二维地图、三维场景、业务数据接口及交互事件等能力进行统一封装,为开发人员和项目实施人员提供一站式可视化大屏搭建工具。用户通过组件拖拽、属性配置、数据源绑定和交互事件编排,即可快速完成数据可视化页面的设计与开发,减少重复编码工作。
核心功能包括:
1. 可视化画布编辑: 支持组件拖拽、缩放、位置调整、图层排序、画布设置及样式配置,实现所见即所得的大屏设计。
2. 可视化组件管理: 提供柱状图、折线图、饼图、表格、文本、图片、地图及三维场景等组件,支持动态配置与复用。
3. 数据源管理: 支持对接后端 REST API,实现业务数据获取、解析、绑定及可视化展示。
4. 事件交互编排: 提供事件配置和蓝图编辑能力,实现组件点击、数据切换、地图联动及跨组件交互。
5. 数字孪生场景展示: 集成二维地图和三维可视化能力,实现地理空间信息与业务数据的融合展示。
6. 大屏项目管理: 支持项目配置保存、读取、编辑及预览,实现大屏配置的持久化与重复使用。
7. 动态视觉展示: 支持组件动画、背景样式、主题属性及多种可视化效果配置,满足不同业务场景的展示需求。
平台能够应用于城市运行监测、海洋环境监控、旅游数据分析、交通运行监管、园区设备监测及企业运营管理等场景,将分散的业务数据集中展示,为运营监控、业务分析和辅助决策提供直观的数据支持。
技术栈: Vue 3、TypeScript、Vite、Pinia、Vue Router、Element Plus、Naive UI、ECharts、ECharts GL、Three.js、Axios、VueDraggable、Monaco Editor、GSAP、SCSS。
1. 前端整体架构: 基于 Vue 3 + TypeScript + Vite 搭建项目,采用模块化与组件化架构,将可视化编辑器、组件资源库、属性配置、数据管理、事件交互和预览运行等功能解耦,提高系统可维护性与扩展性。
2. 动态组件渲染: 采用配置驱动的开发模式,通过统一的数据结构管理组件类型、位置、尺寸、样式、数据源及交互事件。根据组件配置动态加载对应组件,并利用 Vue 响应式机制实现属性修改与画布实时更新。
3. 可视化画布交互: 基于拖拽组件和画布交互逻辑,实现组件拖拽、移动、缩放、层级调整及布局管理。通过坐标计算与画布状态管理,保证不同缩放比例下的组件布局及交互准确性。
4. 编辑器状态管理: 使用 Pinia 集中管理画布配置、组件列表、当前选中组件、图层状态及编辑历史,实现属性面板、画布和图层管理模块之间的数据同步,并支持项目配置的保存与恢复。
5. 图表组件封装: 基于 ECharts 和 ECharts GL 封装可复用的二维、三维图表组件,将图表样式、坐标轴、图例、数据系列等属性抽象为动态配置,实现组件数据更新及不同业务场景的快速复用。
6. 三维可视化集成: 基于 Three.js 实现三维图形展示能力,结合地图组件及场景管理模块,将地理空间数据与业务图表融合,实现数字孪生可视化场景的统一展示。
7. 事件交互系统: 通过事件驱动和蓝图编排机制,配置组件的点击、双击、鼠标交互及对应业务动作,实现组件间数据联动、状态切换和交互逻辑执行,降低复杂交互场景的开发成本。
8. 数据接口集成: 基于 Axios 封装统一网络请求,通过接口配置、数据解析和字段映射,将后端业务数据转换为可视化组件所需的数据结构,实现动态数据展示。
9. 项目配置与预览: 将画布布局、组件属性、数据配置及事件信息进行结构化存储,通过配置解析完成大屏加载与渲染,实现编辑模式与运行模式分离。