如何快速构建一个交互式的JavaScript UI仪表板?用DHTMLX很简单!
DHTMLX Suite包含了超过20个UI小部件可以帮助开发功能齐全的Web应用程序。例如开发者可以创建一个全面的仪表板来可视化和监控票务系统的性能。在本文这个JavaScript仪表板教程中我们将介绍如何在DHTMLX Suite UI小部件和Optimus微框架的帮助下构建和配置交互式仪表板。DevExpress新旧版本帮助文档下载可进QQ qun获取169725316Demo概述查看和下载UI仪表板演示通过DHTMLX创建的UI仪表板允许用户创建新的票证将其分配给不同的公司部门并监视其性能。该Demo是使用以下小部件创建的:Grid网格显示收到的通知列表Charts图表跟踪年度销售额评估销售、市场、质量保证和技术支持部门的业绩Window窗口创建新票证DataView数据视图可视化开放门票列表Pagination分页简化数据网格中的导航Toolbar工具栏提供跨UI仪表板的导航Layout布局用于附加和排列所有的UI组件创建JavaScript UI Dashboard首先您必须dashboard demo并在设备上运行它构建UI仪表板的DHTMLX小部件被划分为多个视图可以分别初始化或配置每个小部件也可以删除它们。让我们来概述一下基于Optimus框架的UI仪表板demo。从index.html文件开始在文件的头部可以找到suite.js和suite.css包括DHTMLX套件及其所有组件。同样可以看到app.js和app.css来配置webpack!DOCTYPE html html langen head ... titleDHTMLX - UI Dashboard/title ... !-- Suite -- script typetext/javascript src./lib/suite/suite.js/script link relstylesheet href./lib/suite/suite.css/ !-- App -- script typetext/javascript src./app.js/script link relstylesheet href./app.css/ /head所有这些文件都包含在demo包中在body部分我们可以看到一个容器来渲染demobody section classdemo--container idtop_layout/section /body应用程序的初始化是通过render()方法完成的script const app new uidashboard.UIDashboardApp(); app.render(#top_layout); /scriptdemo的下一个主文件是index.js它包含呈现应用程序的UIDashboardApp类在index.html中被用来初始化我们上面描述的演示export class UIDashboardApp extends App { init() { this.tickets getTickets(); this.store new Store(initialState); this.params.store this.store; this.state this.store.getState(); this.subscribe(); dhx.scrollViewConfig.enable true; this.show(, TopLayout, { tickets: this.tickets, schedulerData, ganttData }); // TopLayout view this.use(HistoryManager); } subscribe() { this.on(modeChanged, id { this.state.mode id || dashboard; }); this.on(addTicketClicked, obj { this.tickets.add( { title: obj.title, text: obj.comment, type: obj.type, icon: Avatar_01, name: ${obj.name} ${obj.lastName}, comments: 0, time: new Date().getTime(), }, 0 ); }); } }UIDashboardApp类继承自index.js文件中包含的所有类TopLayout类是UI仪表板演示的下一个重要部分import ./assets/styles/main.scss; import { App } from dhx-optimus; import Store from dhx-optimus-store; import { getLocationParams } from ./helpers/url; import TopLayout from ./views/TopLayout; // TopLayout view import HistoryManager from ./components/HistoryManager; import { getTickets } from ./services/dataService;总而言之index.html和index.js文件是UI仪表板演示的基础。仪表板演示的下一个组件是Views文件块可以在view文件夹中找到它们每个视图都是一个ViewName.js文件。让我们从“unites”演示的TopLayout.js视图开始。在这里您可以看到如何构建和初始化TopLayout类它包括布局和标签栏export default class TopLayout extends View { init() { this.ui new dhx.Layout(null, layoutConfig); this.navigationBar new dhx.Tabbar(this.ui.getCell(tabbar), { mode: top, tabAlign: center, tabWidth: 200, noContent: true, views: [ { id: dashboard, tab: Dashboard }, ], }); this.navigationBar.events.on(change, id { this.fire(modeChanged, [id]); }); this.show(this.ui.getCell(top), TopBar); return this.ui; } ready() { this.observe( state state.mode, mode { const cell this.navigationBar.getCell(this.app.state.mode); if (cell) { cell.show(); } this.changeView(mode); } ); } changeView(id) { switch (id) { case dashboard: this.show(this.ui.getCell(center), Dashboard, { tickets: this.params.tickets }); break; default: this.show(this.ui.getCell(center), NotReady); break; } } }然后可以通过将其划分为三个单元格来配置布局const layoutConfig { rows: [ { id: top, height: content, }, { id: tabbar, height: content, }, { css: cell_center, id: center, }, ], };在这里你可以看到一个输出TopLayout类继承自以下类import { View } from dhx-optimus; import TopBar from ./TopBar; import Dashboard from ./Dashboard; // Dashboard demo现在我们准备概述Dashboard视图它初始化UI仪表板demo打开Dashboard.js文件。在这里可以看到Dashboard的初始化以及Layout的配置export default class Dashboard extends View { init() { this.ui new dhx.Layout(null, { type: space, cols: [ { type: wide, rows: [ { height: 50%, cols: [ { id: left-top, }, { id: left-bottom, }, ], }, { id: center, }, ], }, { id: right, width: 30%, minWidth: 440, maxWidth: 440, }, ], }); this.show(this.ui.getCell(right), Notifications); this.show(this.ui.getCell(center), Tickets, { tickets: this.params.tickets }); this.show(this.ui.getCell(left-top), SalesChart); this.show(this.ui.getCell(left-bottom), NotificationsChart); return this.ui; } }因此我们将Layout的中心单元格划分为4个部分Dashboard类继承自以下类import { View } from dhx-optimus; import Notifications from ./Notifications; import Tickets from ./Tickets; import SalesChart from ./SalesChart; import NotificationsChart from ./NotificationsChart;这就是创建DHTMLX UI仪表板演示的方法您会发现视图的结构是完全相同的。每个视图都将构建仪表板演示的一部分并在必要时从底层类继承。您可以打开每个视图的文件探索它们的结构并根据需求对它们进行配置。

相关新闻

VCL组件DevExpress VCL图表控件中文指南 - 如何实现值标签自定义?

VCL组件DevExpress VCL图表控件中文指南 - 如何实现值标签自定义?

DevExpress VCL拥有230个VCL界面控件、40个自定义设计的VCL应用主题,它能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。 在刚更新的DevExpress VCL v23.1组件库中,包含…

2026/8/8 22:02:05 阅读更多 →
SSH-tools:为技术团队节省70%SSH管理时间的智能工具集

SSH-tools:为技术团队节省70%SSH管理时间的智能工具集

SSH-tools:为技术团队节省70%SSH管理时间的智能工具集 【免费下载链接】ssh-tools Making SSH more convenient 项目地址: https://gitcode.com/gh_mirrors/ss/ssh-tools 在日常运维和开发工作中,SSH连接管理是每个技术团队无法回避的基础工作。然…

2026/8/10 0:22:19 阅读更多 →
什么是Heatmap(热图)图表?用DHTMLX可实现快速构建

什么是Heatmap(热图)图表?用DHTMLX可实现快速构建

DHTMLX Chart是DHTMLX最新发布的JavaScript UI小部件库的核心内容之一,这个图表小部件收到了几个重要的更新,但其中最引人注目的是一个新的数据可视化选项——日历热图。 DHTMLX专注于JavaScript和HTML5 UI小部件和库,以帮助开发人员更快地构…

2026/8/10 0:21:43 阅读更多 →

最新新闻

Spring自定义注解开发实战与性能优化

Spring自定义注解开发实战与性能优化

1. Spring自定义注解与处理器深度解析在Java企业级开发中,Spring框架的注解机制极大简化了配置工作。但实际业务中,标准注解往往不能满足所有需求。上周我重构一个权限系统时,就遇到了需要自定义注解的场景——现有的PreAuthorize无法满足我们…

2026/8/10 1:21:42 阅读更多 →
程序员段子背后的技术真相:从删库跑路到环境一致性的工程实践

程序员段子背后的技术真相:从删库跑路到环境一致性的工程实践

1. 这篇文章真正要解决的问题程序员这个群体,在外界看来总是带着一丝神秘色彩:高薪、高智商、与机器对话。但圈内人都知道,这份工作的日常远非如此光鲜,更多的是与Bug缠斗、与需求“搏斗”、与各种匪夷所思的“技术债”共存的真实…

2026/8/10 1:21:42 阅读更多 →
《我的世界》服务器BGP与高防技术解析:从原理到实战避坑指南

《我的世界》服务器BGP与高防技术解析:从原理到实战避坑指南

如果你正在为《我的世界》服务器寻找一个既稳定又实惠的托管方案,那么“BGP高防”这个组合词,很可能已经在你眼前晃过无数次了。它听起来很专业,似乎能解决所有问题:网络不卡、不怕攻击、价格还便宜。但真相是,很多宣传…

2026/8/10 1:21:42 阅读更多 →
C++性能优化实战:移动语义与完美转发的核心原理与应用

C++性能优化实战:移动语义与完美转发的核心原理与应用

1. 项目概述:为什么我们需要这份实战指南如果你写过一段时间的C,尤其是接触过一些对性能有要求的项目,比如游戏引擎、高频交易系统或者大型数据处理框架,那你一定对“性能”这两个字又爱又恨。爱的是,C给了我们直接操作…

2026/8/10 1:21:42 阅读更多 →
MyBatis-Plus @TableName注解详解与最佳实践

MyBatis-Plus @TableName注解详解与最佳实践

1. TableName注解核心解析在MyBatis-Plus框架中,TableName注解是实体类与数据库表建立映射关系的关键配置。这个看似简单的注解背后,实际上解决了ORM框架中最基础的"对象-关系映射"问题。当我们的Java实体类名与数据库表名不一致时&#xff08…

2026/8/10 1:21:42 阅读更多 →
C++通信开发必知:字节对齐原理、问题与跨平台解决方案

C++通信开发必知:字节对齐原理、问题与跨平台解决方案

1. 项目概述:通信中的字节对齐为何如此关键?在C开发,尤其是涉及网络通信、嵌入式系统、硬件交互或者跨平台数据传输的场景里,字节对齐(Byte Alignment)是一个你迟早会碰上的“坑”。它不像语法错误那样会立…

2026/8/10 1:20:41 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →