fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -159,7 +159,7 @@ </PropertyDef> <PropertyDef name="deptId"> <Property></Property> <Property name="label">æå±ååº</Property> <Property name="label">æå¨åºåº</Property> <Property name="mapping"> <Property name="mapValues">${dorado.getDataProvider("deptPR#getAllData").getResult()}</Property> <Property name="keyProperty">id</Property> @@ -628,12 +628,19 @@ <Property name="align">center</Property> <Property name="width">150</Property> </DataColumn> <DataColumn name="deptId"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">deptId</Property> <Property name="align">center</Property> <Property name="width">250</Property> </DataColumn> <DataColumn name="plateNum"> <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
 arg.processDefault = true;</ClientEvent> <Property name="property">plateNum</Property> <Property name="align">center</Property> <Property name="width">130</Property> <Property name="width">120</Property> </DataColumn> <DataColumn> <Property name="property">customerName</Property> @@ -763,6 +770,12 @@ <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">deptId</Property> <Property name="property">deptId</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">depotId</Property> <Property name="property">depotId</Property> <Property name="label">è£ å¸ä»åº</Property> @@ -823,7 +836,7 @@ <Property name="trigger">ddNotice</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">noticeId</Property> <Property name="property">noticeId</Property> <Editor/> fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/DemoController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.fzzy.sys.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @Desc: * @Author: Andy.jia * @Date: 2025/12/15 */ @Controller public class DemoController { /** * DEMO页颿§å¶ * @param request * @param response * @param tag * @return */ @GetMapping("/demo") public String demo(HttpServletRequest request, HttpServletResponse response, @RequestParam("t") String tag, @RequestParam("r") String r) { if (null == tag) tag = "1"; return "demo_v" + tag; } } fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/SysIndexController.java
@@ -82,14 +82,6 @@ mmap.put("user", user); mmap.put("sysName", FrameworkConfig.getName()); //夿æ¯å¦æ¾ç¤ºåºåºéæ©å¼¹çª String showDeptList = "Y"; SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId()); if (Constant.DEPT_TYPE_20.equals(userDept.getType())) { showDeptList = "N"; } mmap.put("showDeptList", showDeptList); ContextUtil.updateSubDept(user.getLoginName(), deptId); SysDept dept = iSysDeptService.selectDeptById(Long.valueOf(deptId)); mmap.put("dept", dept); fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
@@ -10,7 +10,9 @@ import com.fzzy.igds.service.CoreDeptService; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.SystemUtil; import com.fzzy.sys.manager.common.CommonManager; import com.fzzy.sys.manager.security.SecManager; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import lombok.extern.slf4j.Slf4j; import com.ruoyi.common.utils.StringUtils; @@ -39,16 +41,20 @@ @Resource private SecManager secManager; @Resource private CommonManager commonManager; @Resource private CoreDeptService deptService; /** * åºåºå®é²é¡µé¢ * @param type 1.表示2.5Dé¸ç°å¾é¡µé¢é¢è§ï¼2.表示å表é¢è§é¡µé¢ * @param deptId * @param view * @return */ @RequestMapping("/video-dept") public String videoDept(@RequestParam(value = "type", required = false) String type, @RequestParam(value = "deptId", required = false) String deptId, ModelMap view) { if (StringUtils.isBlank(type)) { @@ -58,11 +64,24 @@ SysUser user = ContextUtil.getLoginUser(); view.put(Constant.MODEL_KEY_LOGIN_USER, user); String deptId = ContextUtil.subDeptId(user); if(StringUtils.isBlank(deptId)){ deptId = ContextUtil.subDeptId(user); } view.put("deptId", deptId); List<Camera> listCamera = secManager.listCamera(deptId, user.getCompanyId()); view.put("listCamera", listCamera); SysDept sysDept = commonManager.getDeptById(deptId); view.put("dept", sysDept); view.put("type", type); //夿æ¯å¦æ¾ç¤ºåºåºéæ©å¼¹çª String showDeptList = "Y"; if (Constant.USER_TYPE_30.equals(user.getUserType())) { showDeptList = "N"; } view.put("showDeptList", showDeptList); //é»è®¤çæ§åè¡¨é¡µé¢ String viewUrl = prefix + "/video-list-dept"; @@ -70,53 +89,7 @@ if("1".equals(type)){ viewUrl = prefix + "/video-aerial-dept"; //é¸ç°å¾ Dept dept = deptService.getDeptById(deptId); if (dept != null && StringUtils.isNotEmpty(dept.getImgPath())) { view.put("backgroundImg", dept.getImgPath()); } } if("2".equals(type)){ viewUrl = prefix + "/video-list-dept"; } return viewUrl; } /** * ç管å®é²é¡µé¢ * @param type 1.表示2.5Dé¸ç°å¾é¡µé¢é¢è§ï¼2.表示å表é¢è§é¡µé¢ * @param view * @return */ @RequestMapping("/video-super") public String videoSuper(@RequestParam(value = "type", required = false) String type, ModelMap view) { if (StringUtils.isBlank(type)) { type = "2"; } SysUser user = ContextUtil.getLoginUser(); view.put(Constant.MODEL_KEY_LOGIN_USER, user); String deptId = ContextUtil.subDeptId(user); view.put("deptId", deptId); List<Camera> listCamera = secManager.listCamera(deptId, user.getCompanyId()); view.put("listCamera", listCamera); //é»è®¤çæ§åè¡¨é¡µé¢ String viewUrl = prefix + "/video-list-dept"; if("1".equals(type)){ viewUrl = prefix + "/video-aerial-dept"; //é¸ç°å¾ Dept dept = deptService.getDeptById(deptId); if (dept != null && StringUtils.isNotEmpty(dept.getImgPath())) { view.put("backgroundImg", dept.getImgPath()); } view.put("backgroundImg", commonManager.getDeptImg(deptId)); } if("2".equals(type)){ viewUrl = prefix + "/video-list-dept"; fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/common/CommonManager.java
@@ -9,9 +9,11 @@ import com.fzzy.igds.service.DicService; import com.fzzy.igds.service.SecCameraService; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -35,12 +37,38 @@ private DicService dicService; @Resource private CoreDeptService coreDeptService; @Autowired private SecCameraService secCameraService; @Autowired @Resource private ISysUserService userService; @Resource private ISysDeptService iSysDeptService; /** * æ ¹æ®åºåºç¼ç è·ååºåºä¸ææä»åºå表 * * @param id * @return */ public SysDept getDeptById(String id) { return iSysDeptService.selectDeptById(Long.valueOf(id)); } /** * è·ååºåºé¸ç°å¾ * @param deptId * @return */ public String getDeptImg(String deptId) { String imgPath = "/img/deptImg.jpg"; //é»è®¤å¾ Dept dept = coreDeptService.getDeptById(deptId); if(null != dept && StringUtils.isNotEmpty(dept.getImgPath())){ imgPath = dept.getImgPath(); } return imgPath; } /** * æ ¹æ®åå ¸ç±»åè·ååå ¸å表 fzzy-igdss-web/src/main/resources/static/common/igds-common.js
@@ -232,7 +232,9 @@ if ("video" == pageTag) { url = "/group/video"; } if ("sys" == pageTag) { url = "/index?deptId=" + deptId; } window.location.href = url; } fzzy-igdss-web/src/main/resources/static/img/deptImg.jpg
fzzy-igdss-web/src/main/resources/static/img/web/security/qh.png
fzzy-igdss-web/src/main/resources/static/security/video-list-dept.js
@@ -50,10 +50,50 @@ table = layui.table; }); showDeptSelect(); //åå§åæ¸²æææ¾å表 renderList(); }); /** * å¼¹åºåæ¢åºåºå表 */ function showDeptSelect() { if(showDeptList === "N"){ $("#deptList").css('display', 'none'); } if(showDeptList === "Y"){ $("#deptList").css('display', 'block'); } } /** * å¼¹åºåæ¢åºåºå表 */ function showDepotAreaSelect() { layer.open({ type: 2, title: 'éæ©åºåº', area: ['400px', '650px'], offset: ['50px', '170px'], shade: 0, content: "/com.fzzy.igds.SelectDept.d", closeBtn: 1 }); } /** * * @param id * @returns {boolean} */ function onDeptAreaChange(id) { window.location.href = "./security/video-dept?type=" + type + "&deptId=" + id; return true; } /** * 渲æçæ§å表 */ fzzy-igdss-web/src/main/resources/templates/demo_v1.html
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,173 @@ <!DOCTYPE html> <html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>æºæ §ç²®åºç®¡çç³»ç»-é¦é¡µ</title> <link rel="stylesheet" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/> <!-- èªå®ä¹æ ·å¼ --> <style> body { background-color: #f8f9fa; font-family: 'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif; } .container { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 20px; box-sizing: border-box; } .notification-card { background: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); padding: 40px 30px; max-width: 500px; width: 100%; text-align: center; transform: translateY(20px); opacity: 0; animation: fadeInUp 0.8s ease forwards; } @keyframes fadeInUp { to { transform: translateY(0); opacity: 1; } } .icon-container { width: 120px; height: 120px; margin: 0 auto 30px; background: linear-gradient(135deg, #e8f4f8 0%, #f0f8fb 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; } .icon-container::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(66, 153, 225, 0.1); transform: scale(0); border-radius: 50%; animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(0.5); opacity: 0.8; } 100% { transform: scale(1.2); opacity: 0; } } .notification-icon { font-size: 50px; color: #4299e1; position: relative; z-index: 1; } .notification-title { font-size: 24px; font-weight: 600; color: #2d3748; margin-bottom: 15px; } .notification-desc { font-size: 16px; color: #718096; line-height: 1.6; margin-bottom: 30px; } .back-btn { background-color: #4299e1; color: #fff; border-radius: 8px; /* padding: 12px 30px;*/ font-size: 16px; transition: all 0.3s ease; border: none; } .back-btn:hover { background-color: #3182ce; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(66, 153, 225, 0.3); color: #fff; } .footer { margin-top: 40px; color: #a0aec0; font-size: 14px; text-align: center; } @media (max-width: 768px) { .notification-card { padding: 30px 20px; } .icon-container { width: 100px; height: 100px; } .notification-icon { font-size: 40px; } .notification-title { font-size: 20px; } .notification-desc { font-size: 15px; } } </style> </head> <body> <div class="container"> <!-- æéå¡ç --> <div class="notification-card"> <div class="icon-container"> <i class="fas fa-flask notification-icon"></i> </div> <h2 class="notification-title">åè½è°è¯ä¸â¦â¦</h2> <p class="notification-desc"> æ¨å¥½ï¼å½ååè½æ£å¨ç´§å¼ æµè¯ä¸ï¼ä¸ºäºç»æ¨å¸¦æ¥æ´ç¨³å®ãä¼è´¨çä½éªï¼ æä»¬æ£å¨è¿è¡æåçä¼åè°æ´ãæ¬è¯·æå¾ æ£å¼å¼æ¾ï¼ </p> <button class="layui-btn back-btn"> <i class="fas fa-arrow-left mr-2"></i>ç¨åä¸çº¿â¦â¦ </button> </div> </div> </body> </html> fzzy-igdss-web/src/main/resources/templates/group/gis.html
@@ -56,12 +56,14 @@ <div class="container"> <div class="i-top"> <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">ç级å¨å¤ç²®ç管平å°</span></h1> <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">æºæ §ç²®åºè´¨æ¼ç管大å±</span></h1> <p ondblclick="changeScreen()" class="i-top-p" id="sloganText">æ°çä¼å®åæåä¸é¶è¡è¡ä»½æéå ¬å¸ââæºæ §ç管平å°</p> <div class="i-navBar"> <a href="javaScript:;" onclick="changePage('index')" class="i-nav3">é¦é¡µ</a> <a href="javaScript:;" onclick="changePage('gis')" class="i-nav4 active">GISç管</a> <a href="javaScript:;" onclick="changePage('video')" class="i-nav5">è§é¢ç管</a> <a href="javaScript:;" onclick="changePage('logout')" class="i-nav6">éåºç³»ç»</a> <a href="javaScript:;" onclick="changePage('sys')" class="i-nav6">åå°ç®¡ç</a> <a href="javaScript:;" onclick="changePage('logout')" class="i-nav7">éåºç³»ç»</a> </div> <div class="date-time-module"> <span id="navBarTime"></span> fzzy-igdss-web/src/main/resources/templates/group/index.html
@@ -23,12 +23,14 @@ <div class="container"> <div class="i-top"> <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">æ¿çæ§å¨å¤ç²®æ²¹ç管平å°</span></h1> <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">æºæ §ç²®åºè´¨æ¼ç管大å±</span></h1> <p ondblclick="changeScreen()" class="i-top-p" id="sloganText">æ°çä¼å®åæåä¸é¶è¡è¡ä»½æéå ¬å¸ââæºæ §ç管平å°</p> <div class="i-navBar"> <a href="javaScript:;" onclick="changePage('index')" class="i-nav3 active">é¦é¡µ</a> <a href="javaScript:;" onclick="changePage('gis')" class="i-nav4">GISç管</a> <a href="javaScript:;" onclick="changePage('video')" class="i-nav5">è§é¢ç管</a> <a href="javaScript:;" onclick="changePage('logout')" class="i-nav6">éåºç³»ç»</a> <a href="javaScript:;" onclick="changePage('sys')" class="i-nav6">åå°ç®¡ç</a> <a href="javaScript:;" onclick="changePage('logout')" class="i-nav7">éåºç³»ç»</a> </div> <div class="date-time-module"> <span id="navBarTime"></span> fzzy-igdss-web/src/main/resources/templates/group/video.html
@@ -135,12 +135,14 @@ <div class="container row-main"> <div class="i-top"> <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">æ¿çæ§å¨å¤ç²®æ²¹ç管平å°</span></h1> <h1 ondblclick="changeScreen()" class="i-top-tit"><span th:text="${sysName}">æºæ §ç²®åºè´¨æ¼ç管大å±</span></h1> <p ondblclick="changeScreen()" class="i-top-p" id="sloganText">æ°çä¼å®åæåä¸é¶è¡è¡ä»½æéå ¬å¸ââæºæ §ç管平å°</p> <div class="i-navBar"> <a href="javaScript:;" onclick="changePage('index')" class="i-nav3">é¦é¡µ</a> <a href="javaScript:;" onclick="changePage('gis')" class="i-nav4">GISç管</a> <a href="javaScript:;" onclick="changePage('video')" class="i-nav5 active">è§é¢ç管</a> <a href="javaScript:;" onclick="changePage('logout')" class="i-nav6">éåºç³»ç»</a> <a href="javaScript:;" onclick="changePage('sys')" class="i-nav6">åå°ç®¡ç</a> <a href="javaScript:;" onclick="changePage('logout')" class="i-nav7">éåºç³»ç»</a> </div> <div class="date-time-module"> <span id="navBarTime"></span> fzzy-igdss-web/src/main/resources/templates/index-topnav.html
@@ -271,12 +271,14 @@ </div> <!-- å³ä¾§æ --> <ul class="nav navbar-top-links navbar-right welcome-message"> <li style="background-color: #03703a;"><a onclick="showDepotAreaSelect()" data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="åºåºéæ©" href="javascript:;"><i class="fa fa-refresh"></i> [[${#strings.defaultString(dept.deptName, <li style="background-color: #03703a;"><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" th:title="${dept.deptName}" href="javascript:;"><i class="fa fa-map-o"></i> [[${#strings.defaultString(dept.deptName, '-')}]]</a></li> <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="å¼åææ¡£" href="https://fzzygf-company.feishu.cn/wiki/ZgS5wQuyMi2uDKk9xN6cx8jlnuf" target="_blank"><i class="fa fa-question-circle"></i> ææ¡£</a></li> <!-- <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="å¼åææ¡£"--> <!-- href="https://fzzygf-company.feishu.cn/wiki/ZgS5wQuyMi2uDKk9xN6cx8jlnuf" target="_blank"><i--> <!-- class="fa fa-question-circle"></i> ææ¡£</a></li>--> <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="大å±" href="/index-gateway" id="index-gateway"><i class="fa fa-laptop"></i> 大å±</a></li> <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="éå®å±å¹" href="javascript:;" id="lockScreen"><i class="fa fa-lock"></i> éå±</a></li> <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="å ¨å±æ¾ç¤º" @@ -399,24 +401,6 @@ area : ["530px", "386px"], content : [ctx + "system/switchSkin", 'no'] }) } /** * å¼¹åºåæ¢åºåºå表 */ function showDepotAreaSelect() { if(showDeptList === "N"){ return false; } layer.open({ type: 2, title: 'éæ©åºåº', area: ['400px', '650px'], offset: ['50px', '1350px'], shade: 0, content: "com.fzzy.igds.SelectDept.d", closeBtn: 1 }); } /** fzzy-igdss-web/src/main/resources/templates/security/video-list-dept.html
@@ -223,6 +223,13 @@ width: 100%; height: 100%; } .dept{ margin-left: 150px; font-size: 16px; color: #FFFFFF; width: 400px; padding-top: 8px; } </style> </head> @@ -238,6 +245,10 @@ <h3> <i></i>è§é¢å®æ¶é¢è§ </h3> <div id="deptList" class="dept" onclick="showDepotAreaSelect()"> <img style="width: 18px" th:src="@{/img/web/security/qh.png}"/> [[${#strings.defaultString(dept.deptName, '-')}]] </div> <div class="fenping_icon"> <img onclick="fenping(1)" id="f_1" style="width: 30px" th:src="@{/img/web/group/fp_1_active.png}"/> <img onclick="fenping(4)" id="f_4" style="width: 30px" th:src="@{/img/web/group/fp_4.png}"/> @@ -419,6 +430,8 @@ <script th:inline="javascript"> var listCamera = [[${listCamera}]]; var showDeptList = [[${showDeptList}]]; var type = [[${type}]]; </script> <script th:src="@{/js/jquery.min.js}"></script> <script th:src="@{/ajax/libs/layui/layui.js}"></script> fzzy-igdss-web/src/main/resources/templates/skin.html
@@ -5,9 +5,6 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="renderer" content="webkit"> <title>主é¢éæ©</title> <!--[if lt IE 9]> <meta http-equiv="refresh" content="0;ie.html"/> <![endif]--> <link rel="shortcut icon" href="../static/favicon.ico" th:href="@{favicon.ico}"/> <link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/> <link th:href="@{/css/style.min.css}" rel="stylesheet"/>