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

工厂环境监测系统实战(四):前端监控大屏与实时数据展示

前言

数据采集和存储就绪后,本章介绍前端如何展示这些数据——首页监控大屏的设计与实现。

页面布局

首页采用 Bootstrap 响应式布局,左侧固定导航,右侧内容区展示各设备的环境数据:

<!-- _Layout.cshtml 核心结构 --> <div class="left-side sticky-left-side"> <div class="logo"> <a href="/Home/Index"> <img src="@DataHelper.GetLogo()" alt="" style="width:140px;height:40px;"> </a> </div> <!-- 菜单导航 --> <ul class="sidebar-menu"> <li><a href="/Home/Index">监控大屏</a></li> <li><a href="/Company/CompanyList">工厂管理</a></li> <!-- ... --> </ul> </div> <section class="main-content"> @RenderBody() </section>

工厂选择器

首页顶部有工厂下拉切换,数据来自数据库Company表,根据当前登录用户关联的工厂动态加载:

// HomeController.Index() model.companyListdata = _companyAppService.GetUserCompanyList(currentUserId); var userCompany = _userCompanyAppService.GetUserCompanyByUserId(currentUserId); model.userCompanyId = userCompany?.CompanyId ?? 0;
<!-- Views/Home/Index.cshtml --> <select class="form-control js_search_Company"> @foreach (var item in Model.companyListdata) { var selected = Model.userCompanyId == item.Id ? "selected" : ""; <option @selected value="@item.Id">@item.CompanyName</option> } </select>

切换工厂时通过 AJAX 刷新下方的设备列表和环境数据。

设备状态卡片

每个设备以卡片形式展示,显示当前温湿度、露点、压差、粒径等指标:

┌───────────────────────┐ │ 设备名称 │ │ ┌──────┐ ┌──────┐ │ │ │ 24.7℃│ │48.5% │ │ │ │ 温度 │ │ 湿度 │ │ │ └──────┘ └──────┘ │ │ ┌──────┐ ┌──────┐ │ │ │ 12.3℃│ │ 45Pa │ │ │ │ 露点 │ │ 压差 │ │ │ └──────┘ └──────┘ │ └───────────────────────┘

数据从FacilityData表查询最新一条记录,通过 AJAX 定时刷新。

实时刷新方案

此处没有使用 SignalR 或 WebSocket,而是采用了定时 AJAX 轮询的方案,简单可靠:

// 每5秒刷新一次数据 setInterval(function() { var companyId = $('.js_search_Company').val(); $.ajax({ url: '/Home/GetFacilityData', data: { companyId: companyId }, success: function(data) { // 更新页面上的温度、湿度等数值 $.each(data, function(i, item) { $('#temp_' + item.FacilityNumber).text(item.Temperature + '℃'); $('#humi_' + item.FacilityNumber).text(item.Humidity + '%RH'); }); } }); }, 5000);

CSS 响应式适配

侧边栏收缩后,Logo 区域切换为小图标:

/* 收缩时隐藏全尺寸Logo */ .left-side-collapsed .logo { display: none; } /* 显示小图标 */ .left-side-collapsed .logo-icon { display: block; } /* 展开时显示Logo */ .logo-icon { display: none; }

小结

  • 左侧导航 + 右侧内容的经典管理后台布局
  • 工厂下拉根据用户权限动态加载
  • 定时 AJAX 轮询实现数据实时刷新
  • CSS 控制侧边栏展开/收缩的响应式效果

下一章介绍工厂与设备的后台管理功能。


上一篇:第3章 — 数据库设计与 Entity Framework 实战

下一篇:第5章 — 工厂与设备管理

http://www.jsqmd.com/news/1293233/

相关文章:

  • 2024年AI原生应用三大突破:对话交互、垂直模型与多模态
  • Windows任务栏透明化神器:TranslucentTB终极指南,三分钟打造个性化桌面美学
  • 知芽(Notebook-Skill) vs 有道宝库:谁才是真正的「中国版NotebookLM」
  • 魔兽争霸3终极辅助工具:5分钟快速上手WarcraftHelper完全指南
  • 3分钟极速解锁:ncmdump让你的网易云音乐重获自由播放权
  • JDK 26的Value Class,我做了个性能测试,结果出乎意料
  • 商机管理系统:从CRM到智能销售的核心升级
  • GPT-6技术解析:多模态感知与神经符号混合架构
  • UDP传输PCM音频:原理、Python实现与优化
  • LCD厨房秤方案开发
  • 不定长滑动窗口算法:原理、模式与优化技巧
  • 个页面的弹窗不再工作?经过数小时排查,最终发现只是因为两位开发者都不约而同地定义了一个 show() 函数,后加载的覆盖了先加载的。 ...
  • 嵌入式段码屏驱动开发:从原理到实战的完整指南
  • 2026年江苏无锡焊管热门供货商推荐 品类覆盖全+供货稳选购指南 - 热点速览
  • Beyond Compare 5终极密钥生成指南:Python工具实现永久激活的完整方案
  • 递归元嵌套函数范式在数学证明中的应用与突破
  • Unity资源管理实战:Prefab、Material与Texture核心解析与性能优化
  • 大模型之基于PEFT的SFT微调实战篇
  • Mermaid Live Editor:5分钟掌握免费在线图表编辑器的终极指南
  • Sunshine:构建个人游戏串流服务器的完整解决方案
  • OpenClaw开源智能助手框架详解与应用场景
  • 告别环境配置难题,OpenClaw v2.7.9 Windows 端完整搭建实操手册(含安装包)
  • Nacos生产级集群部署指南:从架构解析到高可用搭建与安全加固
  • 网盘直链下载助手:告别限速,解锁九大网盘高速下载的终极解决方案
  • 2028年,苹果或将迎来史上最贵产品!
  • 商用投票页面无水印教程,云众评选免费关闭水印,商用无忧 - 微信投票小程序
  • 私有化IM:企业数据主权基础设施
  • OpenCore Legacy Patcher深度解析:如何让老旧Mac焕发新生
  • 符号三角形问题:递归回溯与剪枝的经典算法实践
  • Tauri框架:轻量级跨平台桌面应用开发指南