From 5e29b1323d051893de577c1a33c8bd30545fde1e Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 17 十一月 2025 13:40:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jshdasrs' into jshdasrs

---
 src/main/java/com/zy/asrs/controller/BasDevpErrorLogController.java     |   16 
 src/main/webapp/views/basDevpErrorLog/logDetl.html                      |  239 ++++++++
 src/main/java/com/zy/asrs/controller/BasRgvErrorLogController.java      |   16 
 src/main/webapp/views/basRgvErrorLog/logDetl.html                       |  213 +++++++
 src/main/webapp/views/basRgvErrorLog/basRgvErrorLog.html                |  254 ---------
 src/main/webapp/views/basDevpErrorLog/basDevpErrorLog.html              |  276 ----------
 src/main/webapp/views/basErrLog/logDetl.html                            |  274 +++++++---
 src/main/webapp/static/js/basDevpErrorLog/basDevpErrorLog.js            |  141 ++--
 src/main/webapp/static/js/cool.js                                       |    2 
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |    1 
 src/main/webapp/static/js/basRgvErrorLog/basRgvErrorLog.js              |  150 ++---
 11 files changed, 801 insertions(+), 781 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasDevpErrorLogController.java b/src/main/java/com/zy/asrs/controller/BasDevpErrorLogController.java
index 816dbf0..9f3d41f 100644
--- a/src/main/java/com/zy/asrs/controller/BasDevpErrorLogController.java
+++ b/src/main/java/com/zy/asrs/controller/BasDevpErrorLogController.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
+import com.zy.asrs.entity.BasCrnErrorLog;
 import com.zy.asrs.entity.BasDevpErrorLog;
 import com.zy.asrs.service.BasDevpErrorLogService;
 import com.core.annotations.ManagerAuth;
@@ -50,6 +51,21 @@
         return R.ok(basDevpErrorLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
+    /**
+     * 鏍规嵁绮剧‘鐨� createTime 鏌ヨ
+     */
+    @RequestMapping(value = "/basDevpErrorLog/listByUuid/auth")
+    @ManagerAuth
+    public R listByUuid(@RequestParam String uuid,
+                        @RequestParam(defaultValue = "1") Integer curr,
+                        @RequestParam(defaultValue = "10") Integer limit) {
+
+        EntityWrapper<BasDevpErrorLog> wrapper = new EntityWrapper<>();
+        wrapper.eq("id", uuid);
+        Page<BasDevpErrorLog> page = basDevpErrorLogService.selectPage(new Page<>(curr, limit), wrapper);
+        return R.ok(page);
+    }
+
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/controller/BasRgvErrorLogController.java b/src/main/java/com/zy/asrs/controller/BasRgvErrorLogController.java
index 2b12861..ad0d3ac 100644
--- a/src/main/java/com/zy/asrs/controller/BasRgvErrorLogController.java
+++ b/src/main/java/com/zy/asrs/controller/BasRgvErrorLogController.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
+import com.zy.asrs.entity.BasCrnErrorLog;
 import com.zy.asrs.entity.BasRgvErrorLog;
 import com.zy.asrs.service.BasRgvErrorLogService;
 import com.core.annotations.ManagerAuth;
@@ -51,7 +52,22 @@
 
         return R.ok(basRgvErrorLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
+    /**
+     * 鏍规嵁绮剧‘鐨� createTime 鏌ヨ
+     */
+    @RequestMapping(value = "/basRgvErrorLog/listByUuid/auth")
+    @ManagerAuth
+    public R listByUuid(@RequestParam String uuid,
+                        @RequestParam(defaultValue = "1") Integer curr,
+                        @RequestParam(defaultValue = "10") Integer limit) {
 
+        EntityWrapper<BasRgvErrorLog> wrapper = new EntityWrapper<>();
+        // 绮剧‘鍖归厤褰撳ぉ鐨勬暟鎹紝鎴栬�呮煇涓叿浣撴椂闂�
+        wrapper.eq("id", uuid); // 濡傛灉甯屾湜绮剧‘鍒扮
+
+        Page<BasRgvErrorLog> page = basRgvErrorLogService.selectPage(new Page<>(curr, limit), wrapper);
+        return R.ok(page);
+    }
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
index 88f62b1..8547d04 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -284,6 +284,7 @@
                                 locOwner.setOwnerUuid(ownerUuid);
                                 locOwner.setCreateTime(createTime);
                                 locOwner.setUpdateTime(updateTime);
+                                locOwner.setStatus(1);
                                 if (!locOwnerService.insert(locOwner)) {
                                     callApiLogSaveOwner(locOwner, kingDeeUtilType, "鍚屾鏂拌揣涓诲嚭閿欙紒" + locOwner, false);
                                     log.info("鍚屾鏂拌揣涓诲嚭閿欙紒鍙傛暟锛歔{}]銆乕{}]", locOwner, jsonObjectNew);
diff --git a/src/main/webapp/static/js/basDevpErrorLog/basDevpErrorLog.js b/src/main/webapp/static/js/basDevpErrorLog/basDevpErrorLog.js
index 27ab919..4f8bc9d 100644
--- a/src/main/webapp/static/js/basDevpErrorLog/basDevpErrorLog.js
+++ b/src/main/webapp/static/js/basDevpErrorLog/basDevpErrorLog.js
@@ -9,6 +9,28 @@
     var form = layui.form;
     var admin = layui.admin;
 
+    // 寮傚父椤规槧灏�
+    var errorNames = {
+        passTimeOut: '鐗╀綋杩�/鍑鸿秴鏃�',
+        objectNoIdError: '鏈夌墿浣撴棤鏁版嵁',
+        idNoObjectError: '鏈夋暟鎹棤鐗╀綋',
+        lmfrError: '绾夸綋鐢垫満鐑户鎶ヨ',
+        liftError: '椤跺崌鎶ヨ',
+        dlfrError: '椤跺崌鐢垫満鐑户鎶ヨ',
+        dmfrError: '椤跺崌妯Щ鐢垫満鐑户鎶ヨ',
+        vfdError: '鍙橀鏁呴殰',
+        srvError: '浼烘湇鏁呴殰',
+        res1:'棰勭暀1',
+        res2:'棰勭暀2',
+        res3:'棰勭暀3',
+        communicationTimeOut: '涓庝笂浣嶆満閫氳瓒呮椂',
+        parameterIncompleteError: '淇℃伅鍙傛暟涓嶅叏',
+        dataNotClear: '淇℃伅鏁版嵁鏈竻闄�',
+        setParameterError: '鍙傛暟璁剧疆鎶ヨ',
+        dataError: '鏁版嵁閿欒'
+    };
+    var errorFields = Object.keys(errorNames);
+
     // 鏁版嵁娓叉煋
     tableIns = table.render({
         elem: '#basDevpErrorLog',
@@ -21,53 +43,14 @@
         cellMinWidth: 50,
         height: 'full-120',
         cols: [[
-            {type: 'checkbox'}
-            ,{field: 'devNo', align: 'center',title: '杈撻�佺紪鍙�'}
-            ,{field: 'passTimeOut', align: 'center',title: '鐗╀綋杩�/鍑鸿秴鏃�'}
-            ,{field: 'objectNoIdError', align: 'center',title: '鏈夌墿浣撴棤鏁版嵁'}
-            ,{field: 'idNoObjectError', align: 'center',title: '鏈夋暟鎹棤鐗╀綋'}
-            ,{field: 'lmfrError', align: 'center',title: '绾夸綋鐢垫満鐑户鎶ヨ'}
-            ,{field: 'liftError', align: 'center',title: '椤跺崌鎶ヨ'}
-            ,{field: 'dlfrError', align: 'center',title: '椤跺崌鐢垫満鐑户鎶ヨ'}
-            ,{field: 'dmfrError', align: 'center',title: '椤跺崌妯Щ鐢垫満鐑户鎶ヨ'}
-            ,{field: 'vfdError', align: 'center',title: '鍙橀鏁呴殰'}
-            ,{field: 'srvError', align: 'center',title: '浼烘湇鏁呴殰'}
-            ,{field: 'res1', align: 'center',title: '棰勭暀1',hide:true}
-            ,{field: 'res2', align: 'center',title: '棰勭暀2',hide:true}
-            ,{field: 'res3', align: 'center',title: '棰勭暀3',hide:true}
-            ,{field: 'communicationTimeOut', align: 'center',title: '涓庝笂浣嶆満閫氳瓒呮椂'}
-            ,{field: 'parameterIncompleteError', align: 'center',title: '淇℃伅鍙傛暟涓嶅叏'}
-            ,{field: 'dataNotClear', align: 'center',title: '淇℃伅鏁版嵁鏈竻闄�'}
-            ,{field: 'setParameterError', align: 'center',title: '鍙傛暟璁剧疆鎶ヨ'}
-            ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿'}
-            // ,{field: 'inEnable', align: 'center',title: '',hide:true}
-            // ,{field: 'outEnable', align: 'center',title: '',hide:true}
-            ,{field: 'dataError', align: 'center',title: '鏁版嵁閿欒'}
-            // ,{field: 'id', align: 'center',title: '',hide:true}
-            ,{field: 'sensorGArrive', align: 'center',title: '鐩寸嚎鍏夌數',hide:true}
-            ,{field: 'sensorGDec', align: 'center',title: '鍑忛�熷厜鐢�',hide:true}
-            ,{field: 'sensorGArrive2', align: 'center',title: '鐩寸嚎鍑稿嚭',hide:true}
-            ,{field: 'sensorLimit', align: 'center',title: '闄愪綅淇濇姢鍏夌數',hide:true}
-            ,{field: 'emergency', align: 'center',title: '鎬ュ仠',hide:true}
-            ,{field: 'sensorGLeave', align: 'center',title: '鍏夌數绂诲紑1',hide:true}
-            ,{field: 'sensorGLeave2', align: 'center',title: '鍏夌數绂诲紑2',hide:true}
-            ,{field: 'sensorCUp', align: 'center',title: '椤跺崌涓婂崌',hide:true}
-            ,{field: 'sensorCDown', align: 'center',title: '椤跺崌涓嬮檷',hide:true}
-            ,{field: 'liftMotorFr', align: 'center',title: '椤跺崌鐑户',hide:true}
-            ,{field: 'lineMotorFr', align: 'center',title: '鐩寸嚎鐑户',hide:true}
-            ,{field: 'tranMotorFr', align: 'center',title: '绉绘牻鐑户',hide:true}
-            ,{field: 'rst1', align: 'center',title: '澶囩敤1',hide:true}
-            ,{field: 'rst2', align: 'center',title: '澶囩敤2',hide:true}
-            ,{field: 'rst3', align: 'center',title: '澶囩敤3',hide:true}
-            ,{field: 'rst4', align: 'center',title: '澶囩敤4',hide:true}
-            ,{field: 'sensorArriveD', align: 'center',title: '鐩磋鏂瑰悜鍒颁綅',hide:true}
-            ,{field: 'sensorDecD', align: 'center',title: '鐩磋鏂瑰悜鍑忛��',hide:true}
-            ,{field: 'sensorArriveL', align: 'center',title: '宸︾Щ鏂瑰悜鍒颁綅',hide:true}
-            ,{field: 'sensorDecL', align: 'center',title: '宸︾Щ鏂瑰悜鍑忛��',hide:true}
-            ,{field: 'sensorArriveR', align: 'center',title: '鍙崇Щ鏂瑰悜鍒颁綅',hide:true}
-            ,{field: 'sensorDecR', align: 'center',title: '鍙崇Щ鏂瑰悜鍑忛��',hide:true}
-
-            // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+            {field: 'devNo', align: 'center', title: '杈撻�佺紪鍙�'},
+            {field: 'errors', align: 'center', title: '寮傚父椤�',
+                templet: function(d){
+                    return errorFields.filter(f => d[f] === 'Y').map(f => errorNames[f]).join(', ');
+                }
+            },
+            {field: 'createTime$', align: 'center', title: '鍙戠敓鏃堕棿'},
+            {fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
         ]],
         request: {
             pageName: 'curr',
@@ -89,7 +72,7 @@
                 top.location.href = baseUrl+"/";
             }
             pageCurr=curr;
-            limit();
+            limit && limit();
         }
     });
 
@@ -115,32 +98,21 @@
                 showEditModel();
                 break;
             case 'deleteData':
-               if (checkStatus.length === 0) {
-                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
-                   return;
-               }
-               del(checkStatus.map(function (d) {
-                   return d.id;
-               }));
-               break;
+                if (checkStatus.length === 0) {
+                    layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                    return;
+                }
+                del(checkStatus.map(function (d) { return d.id; }));
+                break;
             case 'exportData':
                 admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
-                        }
-                    });
+                    var titles=['杈撻�佺紪鍙�','寮傚父椤�','鍒涘缓鏃堕棿'];
+                    var fields=['devNo','errors','createTime$'];
                     var exportData = {};
                     $.each($('#search-box [name]').serializeArray(), function() {
                         exportData[this.name] = this.value;
                     });
-                    var param = {
-                        'basDevpErrorLog': exportData,
-                        'fields': fields
-                    };
+                    var param = {'basDevpErrorLog': exportData, 'fields': fields};
                     $.ajax({
                         url: baseUrl+"/basDevpErrorLog/export/auth",
                         headers: {'token': localStorage.getItem('token')},
@@ -168,6 +140,22 @@
     table.on('tool(basDevpErrorLog)', function(obj){
         var data = obj.data;
         switch (obj.event) {
+            case 'detlShow':
+                layer.open({
+                    type: 2,
+                    title: '寮傚父鏄庣粏',
+                    maxmin: true,
+                    area: [top.detailWidth, top.detailHeight],
+                    shadeClose: true,
+                    content: 'logDetl.html',
+                    success: function(layero, index){
+                        var iframeWin = window[layero.find('iframe')[0]['name']];
+                        iframeWin.setCreateTime(data.createTime$);
+                        iframeWin.setUuid(data.id);
+                        console.log(data.id);
+                    }
+                });
+                break;
             case 'edit':
                 showEditModel(data);
                 break;
@@ -217,10 +205,7 @@
 
     /* 鍒犻櫎 */
     function del(ids) {
-        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
-            skin: 'layui-layer-admin',
-            shade: .1
-        }, function (i) {
+        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {skin: 'layui-layer-admin', shade: .1}, function (i) {
             layer.close(i);
             var loadIndex = layer.load(2);
             $.ajax({
@@ -260,20 +245,18 @@
     function layDateRender(data) {
         setTimeout(function () {
             layDate.render({
-                elem: '.layui-laydate-range'
-                ,type: 'datetime'
-                ,range: true
+                elem: '.layui-laydate-range',
+                type: 'datetime',
+                range: true
             });
             layDate.render({
                 elem: '#createTime\\$',
                 type: 'datetime',
-                value: data!==undefined?data['createTime\\$']:null
+                value: data!==undefined?data['createTime$']:null
             });
-
         }, 300);
     }
     layDateRender();
-
 });
 
 // 鍏抽棴鍔ㄤ綔
@@ -289,5 +272,5 @@
     tableIns.reload({
         where: searchData,
         page: {curr: pageCurr}
-     });
+    });
 }
diff --git a/src/main/webapp/static/js/basRgvErrorLog/basRgvErrorLog.js b/src/main/webapp/static/js/basRgvErrorLog/basRgvErrorLog.js
index cb42cc8..e46017c 100644
--- a/src/main/webapp/static/js/basRgvErrorLog/basRgvErrorLog.js
+++ b/src/main/webapp/static/js/basRgvErrorLog/basRgvErrorLog.js
@@ -9,6 +9,27 @@
     var form = layui.form;
     var admin = layui.admin;
 
+    // 寮傚父椤规槧灏�
+    var errorNames = {
+        emergencyStop: '鎬ュ仠瑙﹀彂',
+        slot1EmptyNoData: '1鍙蜂綅鏈夌墿鏃犺祫鏂�',
+        slot2EmptyNoData: '2鍙蜂綅鏈夌墿鏃犺祫鏂�',
+        commandErrorChainConflict: '鍛戒护閿欒璧伴摼鏉″啿绐�',
+        targetPositionIssue: '鐩爣浣嶄笅鍙戦敊璇�',
+        travelInverterError: '璧拌鍙橀鍣ㄥ紓甯�',
+        photoelectric1Error: '1鍙峰厜鐢靛紓甯�',
+        photoelectric2Error: '2鍙峰厜鐢靛紓甯�',
+        timeoutConnectionWithLine: '涓庤緭绾挎椂鎺ヨ秴鏃�',
+        leftRollerTimeout: '宸︿晶婊氱瓛杩愯瓒呮椂',
+        rightRollerTimeout: '鍙充晶婊氱瓛杩愯瓒呮椂',
+        rgvRunTimeout: 'rgv杩愯瓒呮椂',
+        position1ChainInverterError: '1鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父',
+        position2ChainInverterError: '2鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父',
+        frontRearLimit: '鍓嶅悗鏋侀檺浣�'
+        // 鍏朵粬闅愯棌鍒楀彲浠ユ寜闇�鍔犲叆
+    };
+    var errorFields = Object.keys(errorNames);
+
     // 鏁版嵁娓叉煋
     tableIns = table.render({
         elem: '#basRgvErrorLog',
@@ -21,49 +42,15 @@
         cellMinWidth: 50,
         height: 'full-120',
         cols: [[
-            {type: 'checkbox'}
-            ,{field: 'rgvNo', align: 'center',title: '缂栧彿'}
-            ,{field: 'emergencyStop', align: 'center',title: '鎬ュ仠瑙﹀彂'}
-            ,{field: 'slot1EmptyNoData', align: 'center',title: '1鍙蜂綅鏈夌墿鏃犺祫鏂�'}
-            ,{field: 'slot2EmptyNoData', align: 'center',title: '2鍙蜂綅鏈夌墿鏃犺祫鏂�'}
-            ,{field: 'commandErrorChainConflict', align: 'center',title: '鍛戒护閿欒璧伴摼鏉″啿绐�'}
-            ,{field: 'targetPositionIssue', align: 'center',title: '鐩爣浣嶄笅鍙戦敊璇�'}
-            ,{field: 'travelInverterError', align: 'center',title: '璧拌鍙橀鍣ㄥ紓甯�'}
-            ,{field: 'photoelectric1Error', align: 'center',title: '1鍙峰厜鐢靛紓甯�'}
-            ,{field: 'photoelectric2Error', align: 'center',title: '2鍙峰厜鐢靛紓甯�'}
-            ,{field: 'timeoutConnectionWithLine', align: 'center',title: '涓庤緭绾挎椂鎺ヨ秴鏃�'}
-            ,{field: 'leftRollerTimeout', align: 'center',title: '宸︿晶婊氱瓛杩愯瓒呮椂'}
-            ,{field: 'rightRollerTimeout', align: 'center',title: '鍙充晶婊氱瓛杩愯瓒呮椂'}
-            ,{field: 'rgvRunTimeout', align: 'center',title: 'rgv杩愯瓒呮椂'}
-            ,{field: 'position1ChainInverterError', align: 'center',title: '1鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父'}
-            ,{field: 'position2ChainInverterError', align: 'center',title: '2鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父'}
-            ,{field: 'frontRearLimit', align: 'center',title: '鍓嶅悗鏋侀檺浣�'}
-            ,{field: 'emergencyButton', align: 'center',title: '鎬ュ仠鎸夐挳',hide:true}
-            ,{field: 'forwardButton', align: 'center',title: '鎬ュ仠鎸夐挳',hide:true}
-            ,{field: 'reverseButton', align: 'center',title: '鍚庨��鎸夐挳',hide:true}
-            ,{field: 'localRemote', align: 'center',title: '鏈湴/杩滅▼',hide:true}
-            // ,{field: 'id', align: 'center',title: ''}
-            ,{field: 'reset', align: 'center',title: '澶嶄綅',hide:true}
-            ,{field: 'travelBrakeSwitch', align: 'center',title: '璧拌鎶遍椄寮�鍏抽挳',hide:true}
-            ,{field: 'travelSpeedLimitPhotoelectric', align: 'center',title: '璧拌寮哄埗鍑忛�熷厜鐢�'}
-            ,{field: 'leftOverlimit1', align: 'center',title: '宸﹁秴闄� 1'}
-            ,{field: 'rightOverlimit1', align: 'center',title: '鍙宠秴闄� 1'}
-            ,{field: 'leftAtPosition1', align: 'center',title: '宸﹀埌浣� 1',hide:true}
-            ,{field: 'rightAtPosition1', align: 'center',title: '鍙冲埌浣� 1',hide:true}
-            ,{field: 'chainForward1', align: 'center',title: '閾炬潯鍓嶈繘 1',hide:true}
-            ,{field: 'chainReverse1', align: 'center',title: '閾炬潯鍚庨�� 1',hide:true}
-            ,{field: 'inverterAlarm', align: 'center',title: '鍙橀鍣ㄦ姤璀�'}
-            ,{field: 'leftOverlimit2', align: 'center',title: '宸﹁秴闄� 2'}
-            ,{field: 'rightOverlimit2', align: 'center',title: '鍙宠秴闄� 2'}
-            ,{field: 'leftAtPosition2', align: 'center',title: '宸﹀埌浣� 2',hide:true}
-            ,{field: 'rightAtPosition2', align: 'center',title: '鍙冲埌浣� 2',hide:true}
-            ,{field: 'cargoSpeedReduction', align: 'center',title: '璐х墿鍑忛��',hide:true}
-            ,{field: 'conveyorInverterAlarm2', align: 'center',title: '杈撻�佸彉棰戝櫒鎶ヨ 2',hide:true}
-            ,{field: 'leftConveyor2', align: 'center',title: '宸﹁緭閫� 2',hide:true}
-            ,{field: 'rightConveyor2', align: 'center',title: '鍙宠緭閫� 2',hide:true}
-            ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿'}
-
-            // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+            {type: 'checkbox'},
+            {field: 'rgvNo', align: 'center', title: '缂栧彿'},
+            {field: 'errors', align: 'center', title: '寮傚父椤�',
+                templet: function(d){
+                    return errorFields.filter(f => d[f] === 'Y').map(f => errorNames[f]).join(', ');
+                }
+            },
+            {field: 'createTime$', align: 'center', title: '鍒涘缓鏃堕棿'},
+            {fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
         ]],
         request: {
             pageName: 'curr',
@@ -84,7 +71,7 @@
             if (res.code === 403) {
                 top.location.href = baseUrl+"/";
             }
-            pageCurr=curr;
+            pageCurr = curr;
             limit();
         }
     });
@@ -111,32 +98,21 @@
                 showEditModel();
                 break;
             case 'deleteData':
-               if (checkStatus.length === 0) {
-                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
-                   return;
-               }
-               del(checkStatus.map(function (d) {
-                   return d.id;
-               }));
-               break;
+                if (checkStatus.length === 0) {
+                    layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+                    return;
+                }
+                del(checkStatus.map(function (d) { return d.id; }));
+                break;
             case 'exportData':
                 admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
-                        }
-                    });
+                    var titles=['缂栧彿','寮傚父椤�','鍒涘缓鏃堕棿'];
+                    var fields=['rgvNo','errors','createTime$'];
                     var exportData = {};
                     $.each($('#search-box [name]').serializeArray(), function() {
                         exportData[this.name] = this.value;
                     });
-                    var param = {
-                        'basRgvErrorLog': exportData,
-                        'fields': fields
-                    };
+                    var param = {'basRgvErrorLog': exportData, 'fields': fields};
                     $.ajax({
                         url: baseUrl+"/basRgvErrorLog/export/auth",
                         headers: {'token': localStorage.getItem('token')},
@@ -164,6 +140,22 @@
     table.on('tool(basRgvErrorLog)', function(obj){
         var data = obj.data;
         switch (obj.event) {
+            case 'detlShow':
+                layer.open({
+                    type: 2,
+                    title: '寮傚父鏄庣粏',
+                    maxmin: true,
+                    area: [top.detailWidth, top.detailHeight],
+                    shadeClose: true,
+                    content: 'logDetl.html',
+                    success: function(layero, index){
+                        var iframeWin = window[layero.find('iframe')[0]['name']];
+                        iframeWin.setCreateTime(data.createTime$);
+                        iframeWin.setUuid(data.id);
+                        console.log(data.id);
+                    }
+                });
+                break;
             case 'edit':
                 showEditModel(data);
                 break;
@@ -173,7 +165,6 @@
         }
     });
 
-    /* 寮圭獥 - 鏂板銆佷慨鏀� */
     function showEditModel(mData) {
         admin.open({
             type: 1,
@@ -211,12 +202,8 @@
         });
     }
 
-    /* 鍒犻櫎 */
     function del(ids) {
-        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
-            skin: 'layui-layer-admin',
-            shade: .1
-        }, function (i) {
+        layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {skin: 'layui-layer-admin', shade: .1}, function (i) {
             layer.close(i);
             var loadIndex = layer.load(2);
             $.ajax({
@@ -239,40 +226,26 @@
         });
     }
 
-    // 鎼滅储
     form.on('submit(search)', function (data) {
         pageCurr = 1;
         tableReload(false);
     });
 
-    // 閲嶇疆
     form.on('submit(reset)', function (data) {
         pageCurr = 1;
         clearFormVal($('#search-box'));
         tableReload(false);
     });
 
-    // 鏃堕棿閫夋嫨鍣�
     function layDateRender(data) {
         setTimeout(function () {
-            layDate.render({
-                elem: '.layui-laydate-range'
-                ,type: 'datetime'
-                ,range: true
-            });
-            layDate.render({
-                elem: '#createTime\\$',
-                type: 'datetime',
-                value: data!==undefined?data['createTime\\$']:null
-            });
-
+            layDate.render({elem: '.layui-laydate-range', type: 'datetime', range: true});
+            layDate.render({elem: '#createTime\\$', type: 'datetime', value: data!==undefined?data['createTime$']:null});
         }, 300);
     }
     layDateRender();
-
 });
 
-// 鍏抽棴鍔ㄤ綔
 $(document).on('click','#data-detail-close', function () {
     parent.layer.closeAll();
 });
@@ -282,8 +255,5 @@
     $.each($('#search-box [name]').serializeArray(), function() {
         searchData[this.name] = this.value;
     });
-    tableIns.reload({
-        where: searchData,
-        page: {curr: pageCurr}
-     });
+    tableIns.reload({where: searchData, page: {curr: pageCurr}});
 }
diff --git a/src/main/webapp/static/js/cool.js b/src/main/webapp/static/js/cool.js
index d817c09..15eca0c 100644
--- a/src/main/webapp/static/js/cool.js
+++ b/src/main/webapp/static/js/cool.js
@@ -31,7 +31,7 @@
  */
 function autoLoad(val) {
     var inputDomVal = document.querySelector("input[data-key="+val+"]").value;
-    var selectDom = document.querySelector("select[data-key="+val+"Select]");
+    var selectDom = document.querySelector("select[data-key=\""+val+"Select\"]");
     selectDom.length = 0;
     var defaultOption = new Option("鍙栨秷閫夋嫨", "");
     defaultOption.title = "";
diff --git a/src/main/webapp/views/basDevpErrorLog/basDevpErrorLog.html b/src/main/webapp/views/basDevpErrorLog/basDevpErrorLog.html
index 24dfd81..4a13b1f 100644
--- a/src/main/webapp/views/basDevpErrorLog/basDevpErrorLog.html
+++ b/src/main/webapp/views/basDevpErrorLog/basDevpErrorLog.html
@@ -56,8 +56,7 @@
 </script>
 
 <script type="text/html" id="operate">
-    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
-    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+    <a class="layui-btn layui-btn-xs btn-detlShow" lay-event="detlShow">鏄庣粏</a>
 </script>
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
@@ -66,279 +65,6 @@
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/basDevpErrorLog/basDevpErrorLog.js" charset="utf-8"></script>
 </body>
-<!-- 琛ㄥ崟寮圭獥 -->
-<script type="text/html" id="editDialog">
-    <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
-        <input name="id" type="hidden">
-        <div class="layui-row">
-            <div class="layui-col-md12">
-                <div class="layui-form-item">
-                    <label class="layui-form-label">杈撻�佺紪鍙�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="devNo" placeholder="璇疯緭鍏ヨ緭閫佺紪鍙�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐗╀綋杩�/鍑鸿秴鏃�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="passTimeOut" placeholder="璇疯緭鍏ョ墿浣撹繘/鍑鸿秴鏃�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鏈夌墿浣撴棤鏁版嵁: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="objectNoIdError" placeholder="璇疯緭鍏ユ湁鐗╀綋鏃犳暟鎹�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鏈夋暟鎹棤鐗╀綋: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="idNoObjectError" placeholder="璇疯緭鍏ユ湁鏁版嵁鏃犵墿浣�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">绾夸綋鐢垫満鐑户鎶ヨ: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="lmfrError" placeholder="璇疯緭鍏ョ嚎浣撶數鏈虹儹缁ф姤璀�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">椤跺崌鎶ヨ: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="liftError" placeholder="璇疯緭鍏ラ《鍗囨姤璀�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">椤跺崌鐢垫満鐑户鎶ヨ: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="dlfrError" placeholder="璇疯緭鍏ラ《鍗囩數鏈虹儹缁ф姤璀�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">椤跺崌妯Щ鐢垫満鐑户鎶ヨ: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="dmfrError" placeholder="璇疯緭鍏ラ《鍗囨í绉荤數鏈虹儹缁ф姤璀�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙橀鏁呴殰: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="vfdError" placeholder="璇疯緭鍏ュ彉棰戞晠闅�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">浼烘湇鏁呴殰: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="srvError" placeholder="璇疯緭鍏ヤ己鏈嶆晠闅�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">棰勭暀1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="res1" placeholder="璇疯緭鍏ラ鐣�1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">棰勭暀2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="res2" placeholder="璇疯緭鍏ラ鐣�2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">棰勭暀3: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="res3" placeholder="璇疯緭鍏ラ鐣�3">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">涓庝笂浣嶆満閫氳瓒呮椂: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="communicationTimeOut" placeholder="璇疯緭鍏ヤ笌涓婁綅鏈洪�氳瓒呮椂">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">淇℃伅鍙傛暟涓嶅叏: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="parameterIncompleteError" placeholder="璇疯緭鍏ヤ俊鎭弬鏁颁笉鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">淇℃伅鏁版嵁鏈竻闄�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="dataNotClear" placeholder="璇疯緭鍏ヤ俊鎭暟鎹湭娓呴櫎">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙傛暟璁剧疆鎶ヨ: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="setParameterError" placeholder="璇疯緭鍏ュ弬鏁拌缃姤璀�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍒涘缓鏃堕棿: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ュ垱寤烘椂闂�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="inEnable" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="outEnable" placeholder="璇疯緭鍏�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鏁版嵁閿欒: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="dataError" placeholder="璇疯緭鍏ユ暟鎹敊璇�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐩寸嚎鍏夌數: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorGArrive" placeholder="璇疯緭鍏ョ洿绾垮厜鐢�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍑忛�熷厜鐢�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorGDec" placeholder="璇疯緭鍏ュ噺閫熷厜鐢�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐩寸嚎鍑稿嚭: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorGArrive2" placeholder="璇疯緭鍏ョ洿绾垮嚫鍑�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">闄愪綅淇濇姢鍏夌數: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorLimit" placeholder="璇疯緭鍏ラ檺浣嶄繚鎶ゅ厜鐢�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鎬ュ仠: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="emergency" placeholder="璇疯緭鍏ユ�ュ仠">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍏夌數绂诲紑1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorGLeave" placeholder="璇疯緭鍏ュ厜鐢电寮�1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍏夌數绂诲紑2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorGLeave2" placeholder="璇疯緭鍏ュ厜鐢电寮�2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">椤跺崌涓婂崌: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorCUp" placeholder="璇疯緭鍏ラ《鍗囦笂鍗�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">椤跺崌涓嬮檷: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorCDown" placeholder="璇疯緭鍏ラ《鍗囦笅闄�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">椤跺崌鐑户: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="liftMotorFr" placeholder="璇疯緭鍏ラ《鍗囩儹缁�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐩寸嚎鐑户: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="lineMotorFr" placeholder="璇疯緭鍏ョ洿绾跨儹缁�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">绉绘牻鐑户: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="tranMotorFr" placeholder="璇疯緭鍏ョЩ鏍界儹缁�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">澶囩敤1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rst1" placeholder="璇疯緭鍏ュ鐢�1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">澶囩敤2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rst2" placeholder="璇疯緭鍏ュ鐢�2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">澶囩敤3: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rst3" placeholder="璇疯緭鍏ュ鐢�3">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">澶囩敤4: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rst4" placeholder="璇疯緭鍏ュ鐢�4">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐩磋鏂瑰悜鍒颁綅: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorArriveD" placeholder="璇疯緭鍏ョ洿琛屾柟鍚戝埌浣�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐩磋鏂瑰悜鍑忛��: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorDecD" placeholder="璇疯緭鍏ョ洿琛屾柟鍚戝噺閫�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸︾Щ鏂瑰悜鍒颁綅: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorArriveL" placeholder="璇疯緭鍏ュ乏绉绘柟鍚戝埌浣�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸︾Щ鏂瑰悜鍑忛��: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorDecL" placeholder="璇疯緭鍏ュ乏绉绘柟鍚戝噺閫�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙崇Щ鏂瑰悜鍒颁綅: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorArriveR" placeholder="璇疯緭鍏ュ彸绉绘柟鍚戝埌浣�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙崇Щ鏂瑰悜鍑忛��: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="sensorDecR" placeholder="璇疯緭鍏ュ彸绉绘柟鍚戝噺閫�">
-                    </div>
-                </div>
 
-             </div>
-        </div>
-        <hr class="layui-bg-gray">
-        <div class="layui-form-item text-right">
-            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
-            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
-        </div>
-    </form>
-</script>
 </html>
 
diff --git a/src/main/webapp/views/basDevpErrorLog/logDetl.html b/src/main/webapp/views/basDevpErrorLog/logDetl.html
new file mode 100644
index 0000000..d49b27a
--- /dev/null
+++ b/src/main/webapp/views/basDevpErrorLog/logDetl.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>杈撻�佺嚎寮傚父</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+    <style>
+        body {
+            background: #f5f7fa;
+            font-family: "Microsoft YaHei", sans-serif;
+            margin: 0;
+            padding: 0;
+        }
+
+        /* 椤堕儴鏃堕棿鍖哄煙 */
+        .layui-inline {
+            background: #fff;
+            padding: 16px 20px;
+            border-radius: 10px;
+            box-shadow: 0 3px 12px rgba(0,0,0,0.06);
+            margin: 20px 0 0 20px;
+            display: inline-flex;
+            align-items: center;
+        }
+
+        .layui-form-label {
+            font-weight: bold;
+        }
+
+        /* 鏁翠綋瀹瑰櫒 */
+        #logContainer {
+            display: flex;
+            width: 100%;
+            margin-top: 20px;
+            height: 600px;
+            overflow-y: auto;
+            background: #fff;
+            border-radius: 12px;
+            box-shadow: 0 4px 18px rgba(0,0,0,0.08);
+            padding: 20px;
+            box-sizing: border-box;
+        }
+
+        /* 宸﹀彸鍒� */
+        .log-column {
+            flex: 1;
+            padding: 10px 20px;
+            box-sizing: border-box;
+        }
+
+        .log-column.left {
+            border-right: 1px solid #e5e5e5;
+        }
+
+        /* 鍒楁爣棰� */
+        .column-title {
+            text-align: center;
+            font-size: 20px;
+            font-weight: bold;
+            margin-bottom: 18px;
+            padding-bottom: 10px;
+            border-bottom: 2px solid #eee;
+        }
+
+        .title-red { color: #e74c3c; }
+        .title-green { color: #27ae60; }
+
+        ul li {
+            display: inline-block;          /* 鏀规垚琛屽唴鍧楋紝鑷�傚簲瀹藉害 */
+            margin: 6px 6px 6px 0;          /* 鍗$墖闂磋窛 */
+            padding: 8px 12px;              /* 鍐呰竟璺� */
+            border-radius: 10px;
+            font-size: 14px;
+            box-shadow: 0 2px 6px rgba(0,0,0,0.08);
+            transition: all 0.2s;
+            white-space: nowrap;            /* 闃叉鏂囧瓧鎹㈣锛屽崱鐗囧搴﹁嚜閫傚簲鍐呭 */
+        }
+
+        ul li:hover {
+            transform: translateY(-2px);
+            box-shadow: 0 4px 12px rgba(0,0,0,0.12);
+            cursor: default;
+        }
+
+        /* 寮傚父椤� */
+        .error-item {
+            color: #c0392b;
+            background: #fdecea;
+            border: 1px solid #f5c5c5;
+        }
+
+        /* 姝e父椤� */
+        .normal-item {
+            color: #1e8449;
+            background: #eafaf1;
+            border: 1px solid #c7e6d1;
+        }
+
+    </style>
+</head>
+<body>
+<div class="layui-inline">
+    <label class="layui-form-label">鍙戠敓鏃堕棿锛�</label>
+    <div class="layui-input-inline">
+        <input id="createTime" class="layui-input" type="text" disabled="disabled">
+    </div>
+</div>
+
+<div id="logContainer">
+    <!-- 寮傚父鍒� -->
+    <div class="log-column left">
+        <h3 class="column-title title-red">寮傚父椤�(Y)</h3>
+        <ul id="errorList"></ul>
+    </div>
+
+    <!-- 姝e父鍒� -->
+    <div class="log-column">
+        <h3 class="column-title title-green">鏃犲紓甯搁」(N)</h3>
+        <ul id="normalList"></ul>
+    </div>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript">
+    var parentUuid;
+
+    /** 鍒楃粨鏋� */
+    function getCol() {
+        return [
+            ,{field: 'devNo', align: 'center',title: '杈撻�佺紪鍙�'}
+            ,{field: 'passTimeOut', align: 'center',title: '鐗╀綋杩�/鍑鸿秴鏃�'}
+            ,{field: 'objectNoIdError', align: 'center',title: '鏈夌墿浣撴棤鏁版嵁'}
+            ,{field: 'idNoObjectError', align: 'center',title: '鏈夋暟鎹棤鐗╀綋'}
+            ,{field: 'lmfrError', align: 'center',title: '绾夸綋鐢垫満鐑户鎶ヨ'}
+            ,{field: 'liftError', align: 'center',title: '椤跺崌鎶ヨ'}
+            ,{field: 'dlfrError', align: 'center',title: '椤跺崌鐢垫満鐑户鎶ヨ'}
+            ,{field: 'dmfrError', align: 'center',title: '椤跺崌妯Щ鐢垫満鐑户鎶ヨ'}
+            ,{field: 'vfdError', align: 'center',title: '鍙橀鏁呴殰'}
+            ,{field: 'srvError', align: 'center',title: '浼烘湇鏁呴殰'}
+            ,{field: 'res1', align: 'center',title: '棰勭暀1',hide:true}
+            ,{field: 'res2', align: 'center',title: '棰勭暀2',hide:true}
+            ,{field: 'res3', align: 'center',title: '棰勭暀3',hide:true}
+            ,{field: 'communicationTimeOut', align: 'center',title: '涓庝笂浣嶆満閫氳瓒呮椂'}
+            ,{field: 'parameterIncompleteError', align: 'center',title: '淇℃伅鍙傛暟涓嶅叏'}
+            ,{field: 'dataNotClear', align: 'center',title: '淇℃伅鏁版嵁鏈竻闄�'}
+            ,{field: 'setParameterError', align: 'center',title: '鍙傛暟璁剧疆鎶ヨ'}
+            ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿'}
+            // ,{field: 'inEnable', align: 'center',title: '',hide:true}
+            // ,{field: 'outEnable', align: 'center',title: '',hide:true}
+            ,{field: 'dataError', align: 'center',title: '鏁版嵁閿欒'}
+            // ,{field: 'id', align: 'center',title: '',hide:true}
+            ,{field: 'sensorGArrive', align: 'center',title: '鐩寸嚎鍏夌數'}
+            ,{field: 'sensorGDec', align: 'center',title: '鍑忛�熷厜鐢�'}
+            ,{field: 'sensorGArrive2', align: 'center',title: '鐩寸嚎鍑稿嚭'}
+            ,{field: 'sensorLimit', align: 'center',title: '闄愪綅淇濇姢鍏夌數'}
+            ,{field: 'emergency', align: 'center',title: '鎬ュ仠'}
+            ,{field: 'sensorGLeave', align: 'center',title: '鍏夌數绂诲紑1'}
+            ,{field: 'sensorGLeave2', align: 'center',title: '鍏夌數绂诲紑2'}
+            ,{field: 'sensorCUp', align: 'center',title: '椤跺崌涓婂崌'}
+            ,{field: 'sensorCDown', align: 'center',title: '椤跺崌涓嬮檷'}
+            ,{field: 'liftMotorFr', align: 'center',title: '椤跺崌鐑户'}
+            ,{field: 'lineMotorFr', align: 'center',title: '鐩寸嚎鐑户'}
+            ,{field: 'tranMotorFr', align: 'center',title: '绉绘牻鐑户'}
+            ,{field: 'rst1', align: 'center',title: '澶囩敤1',hide:true}
+            ,{field: 'rst2', align: 'center',title: '澶囩敤2',hide:true}
+            ,{field: 'rst3', align: 'center',title: '澶囩敤3',hide:true}
+            ,{field: 'rst4', align: 'center',title: '澶囩敤4',hide:true}
+            ,{field: 'sensorArriveD', align: 'center',title: '鐩磋鏂瑰悜鍒颁綅',}
+            ,{field: 'sensorDecD', align: 'center',title: '鐩磋鏂瑰悜鍑忛��',}
+            ,{field: 'sensorArriveL', align: 'center',title: '宸︾Щ鏂瑰悜鍒颁綅',}
+            ,{field: 'sensorDecL', align: 'center',title: '宸︾Щ鏂瑰悜鍑忛��',}
+            ,{field: 'sensorArriveR', align: 'center',title: '鍙崇Щ鏂瑰悜鍒颁綅',}
+            ,{field: 'sensorDecR', align: 'center',title: '鍙崇Щ鏂瑰悜鍑忛��',}
+        ];
+    }
+
+    /** 鏍煎紡鍖栨椂闂� */
+    function formatDateTime(isoString) {
+        const date = new Date(isoString);
+        const y = date.getFullYear();
+        const m = String(date.getMonth() + 1).padStart(2, '0');
+        const d = String(date.getDate()).padStart(2, '0');
+        const hh = String(date.getHours()).padStart(2, '0');
+        const mm = String(date.getMinutes()).padStart(2, '0');
+        const ss = String(date.getSeconds()).padStart(2, '0');
+        return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
+    }
+
+    /** 娓叉煋鍙屽垪鍗$墖鍒楄〃 */
+    function renderList(data) {
+        const cols = getCol();
+        $("#errorList").empty();
+        $("#normalList").empty();
+        cols.forEach(col => {
+            const field = col.field;
+            const title = col.title;
+            if (data[field] === "Y") {
+                $("#errorList").append(`<li class="error-item">${title}</li>`);
+            } else if (data[field] === "N") {
+                $("#normalList").append(`<li class="normal-item">${title}</li>`);
+            }
+        });
+    }
+
+    /** 鏌ヨ鍚庣鏁版嵁 */
+    function renderTable() {
+        if (!parentUuid) return;
+        $.ajax({
+            url: baseUrl + '/basDevpErrorLog/listByUuid/auth',
+            method: 'GET',
+            headers: { token: localStorage.getItem('token') },
+            data: { uuid: parentUuid, curr: 1, limit: 1 },
+            success: function(res) {
+                if (res.code !== 200) return;
+                const record = res.data.records[0];
+                if (record) renderList(record);
+            }
+        });
+    }
+
+    /** 鐖堕〉闈㈣皟鐢� */
+    function setUuid(uuid){
+        parentUuid = uuid;
+        renderTable();
+    }
+
+    function setCreateTime(value){
+        $('#createTime').val(formatDateTime(value));
+    }
+</script>
+</body>
+</html>
diff --git a/src/main/webapp/views/basErrLog/logDetl.html b/src/main/webapp/views/basErrLog/logDetl.html
index b04b078..007dd05 100644
--- a/src/main/webapp/views/basErrLog/logDetl.html
+++ b/src/main/webapp/views/basErrLog/logDetl.html
@@ -2,7 +2,7 @@
 <html lang="en">
 <head>
     <meta charset="utf-8">
-    <title></title>
+    <title>鍫嗗灈鏈哄紓甯�</title>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -10,79 +10,180 @@
     <link rel="stylesheet" href="../../static/css/cool.css" media="all">
     <link rel="stylesheet" href="../../static/css/common.css" media="all">
     <style>
+        body {
+            background: #f5f7fa;
+            font-family: "Microsoft YaHei", sans-serif;
+            margin: 0;
+            padding: 0;
+        }
+
+        /* 椤堕儴鏃堕棿鍖哄煙 */
+        .layui-inline {
+            background: #fff;
+            padding: 16px 20px;
+            border-radius: 10px;
+            box-shadow: 0 3px 12px rgba(0,0,0,0.06);
+            margin: 20px 0 0 20px;
+            display: inline-flex;
+            align-items: center;
+        }
+
+        .layui-form-label {
+            font-weight: bold;
+        }
+
+        /* 鏁翠綋瀹瑰櫒 */
+        #logContainer {
+            display: flex;
+            width: 100%;
+            margin-top: 20px;
+            height: 600px;
+            overflow-y: auto;
+            background: #fff;
+            border-radius: 12px;
+            box-shadow: 0 4px 18px rgba(0,0,0,0.08);
+            padding: 20px;
+            box-sizing: border-box;
+        }
+
+        /* 宸﹀彸鍒� */
+        .log-column {
+            flex: 1;
+            padding: 10px 20px;
+            box-sizing: border-box;
+        }
+
+        .log-column.left {
+            border-right: 1px solid #e5e5e5;
+        }
+
+        /* 鍒楁爣棰� */
+        .column-title {
+            text-align: center;
+            font-size: 20px;
+            font-weight: bold;
+            margin-bottom: 18px;
+            padding-bottom: 10px;
+            border-bottom: 2px solid #eee;
+        }
+
+        .title-red { color: #e74c3c; }
+        .title-green { color: #27ae60; }
+
+        ul li {
+            display: inline-block;          /* 鏀规垚琛屽唴鍧楋紝鑷�傚簲瀹藉害 */
+            margin: 6px 6px 6px 0;          /* 鍗$墖闂磋窛 */
+            padding: 8px 12px;              /* 鍐呰竟璺� */
+            border-radius: 10px;
+            font-size: 14px;
+            box-shadow: 0 2px 6px rgba(0,0,0,0.08);
+            transition: all 0.2s;
+            white-space: nowrap;            /* 闃叉鏂囧瓧鎹㈣锛屽崱鐗囧搴﹁嚜閫傚簲鍐呭 */
+        }
+
+        ul li:hover {
+            transform: translateY(-2px);
+            box-shadow: 0 4px 12px rgba(0,0,0,0.12);
+            cursor: default;
+        }
+
+        /* 寮傚父椤� */
+        .error-item {
+            color: #c0392b;
+            background: #fdecea;
+            border: 1px solid #f5c5c5;
+        }
+
+        /* 姝e父椤� */
+        .normal-item {
+            color: #1e8449;
+            background: #eafaf1;
+            border: 1px solid #c7e6d1;
+        }
+
     </style>
 </head>
 <body>
-<div class="layui-inline"  style="width:31%;margin-top: 20px">
+<div class="layui-inline">
     <label class="layui-form-label">鍙戠敓鏃堕棿锛�</label>
     <div class="layui-input-inline">
         <input id="createTime" class="layui-input" type="text" disabled="disabled">
     </div>
 </div>
-<table class="layui-hide" id="logDetlByTime" lay-filter="logDetlByTime"></table>
-</body>
+
+<div id="logContainer">
+    <!-- 寮傚父鍒� -->
+    <div class="log-column left">
+        <h3 class="column-title title-red">寮傚父椤�(Y)</h3>
+        <ul id="errorList"></ul>
+    </div>
+
+    <!-- 姝e父鍒� -->
+    <div class="log-column">
+        <h3 class="column-title title-green">鏃犲紓甯搁」(N)</h3>
+        <ul id="normalList"></ul>
+    </div>
+</div>
+
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/locMast/locMast.js" charset="utf-8"></script>
 <script type="text/javascript">
-    var tableIns1;  // 鍏ㄥ眬鍙橀噺
-    var pageCur;
+    var parentUuid;
+
+    /** 鍒楃粨鏋� */
     function getCol() {
-        var cols = [
-            {field: 'crnNo', align: 'center',title: '缂栧彿'}
-            ,{field: 'ibDriveFault', align: 'center',title: '琛岃蛋鍙橀鍣ㄦ晠闅�'}
-            ,{field: 'ibSupplyFault', align: 'center',title: '鎻愬叡鍙橀鍣ㄦ晠闅�'}
-            ,{field: 'ibForkDriveFault', align: 'center',title: '璐у弶鍙橀鍣ㄦ晠闅�'}
-            ,{field: 'ibDriveCircuitFault', align: 'center',title: '琛岃蛋鏂矾鍣ㄦ晠闅�'}
-            ,{field: 'ibLiftCircuitFault', align: 'center',title: '鎻愬崌鏂矾鍣ㄦ晠闅�'}
-            ,{field: 'ibForkCircuitFault', align: 'center',title: '璐у弶鏂矾鍣ㄦ晠闅�'}
-            ,{field: 'ibForwardLimit', align: 'center',title: '鍓嶈繘闄愪綅',hide:true}
-            ,{field: 'ibReverseLimit', align: 'center',title: '鍚庨��闄愪綅',hide:true}
-            ,{field: 'ibDriveStart', align: 'center',title: '琛岃蛋鍘熺偣',hide:true}
-            ,{field: 'ibForwardBrakeSpeed', align: 'center',title: '鍓嶈繘寮哄埗浣庨��',hide:true}
-            ,{field: 'ibReverseBrakeSpeed', align: 'center',title: '鍚庨��寮哄埗浣庨��',hide:true}
-            ,{field: 'ibUpLimit', align: 'center',title: '涓婂崌闄愪綅',hide:true}
-            ,{field: 'ibDownLimit', align: 'center',title: '涓嬮檺闄愪綅',hide:true}
-            ,{field: 'ibUpOrigin', align: 'center',title: '鎻愬崌鍘熺偣',hide:true}
-            ,{field: 'ibUpBrakeSpeed', align: 'center',title: '涓婂崌寮哄埗浣庨��',hide:true}
-            ,{field: 'ibDownBrakeSpeed', align: 'center',title: '涓嬮檷寮哄埗浣庨��',hide:true}
-            ,{field: 'ibPlatformSignal', align: 'center',title: '杞借揣鍙版帰璐�'}
-            ,{field: 'ibForkMidSignal', align: 'center',title: '璐у弶涓綅淇″彿'}
-            ,{field: 'ibForkLeftLimit', align: 'center',title: '璐у弶宸︽瀬闄�'}
-            // ,{field: 'id', align: 'center',title: ''}
-            ,{field: 'ibForkRightLimit', align: 'center',title: '璐у弶鍙虫瀬闄�'}
-            ,{field: 'ibFrontOverLimit', align: 'center',title: '鍓嶈秴闄�'}
-            ,{field: 'ibRearOverLimit', align: 'center',title: '鍚庤秴闄�'}
-            ,{field: 'ibLeftOverLimit', align: 'center',title: '宸﹁秴闄�'}
-            ,{field: 'ibRightOverLimit', align: 'center',title: '鍙宠秴闄�'}
-            ,{field: 'ibHighOverLimit1', align: 'center',title: '楂樿秴闄�1'}
-            ,{field: 'ibHighOverLimit2', align: 'center',title: '楂樿秴闄�2'}
-            ,{field: 'ibHighOverLimit3', align: 'center',title: '楂樿秴闄�3'}
-            ,{field: 'ibOneExtendLeftLoad1', align: 'center',title: '涓�浼稿乏渚ф帰璐�1',hide:true}
-            ,{field: 'ibOneExtendLeftLoad2', align: 'center',title: '涓�浼稿乏渚ф帰璐�2',hide:true}
-            ,{field: 'ibOneExtendRightLoad1', align: 'center',title: '涓�浼稿彸渚ф帰璐�1',hide:true}
-            ,{field: 'ibOneExtendRightLoad2', align: 'center',title: '涓�浼稿彸渚ф帰璐�2',hide:true}
-            ,{field: 'ibTwoExtendLeftLoad1', align: 'center',title: '浜屼几宸︿晶鎺㈣揣1',hide:true}
-            ,{field: 'ibTwoExtendLeftLoad2', align: 'center',title: '浜屼几宸︿晶鎺㈣揣2',hide:true}
-            ,{field: 'ibTwoExtendRightLoad1', align: 'center',title: '浜屼几鍙充晶鎺㈣揣1',hide:true}
-            ,{field: 'ibTwoExtendRightLoad2', align: 'center',title: '浜屼几鍙充晶鎺㈣揣2',hide:true}
-            ,{field: 'ibSpeedSignal1', align: 'center',title: '瓒呴�熶俊鍙�1',hide:true}
-            ,{field: 'ibSpeedSignal2', align: 'center',title: '瓒呴�熶俊鍙�2',hide:true}
-            ,{field: 'ibOverweightSignal1', align: 'center',title: '瓒呴噸淇″彿1',hide:true}
-            ,{field: 'ibOverweightSignal2', align: 'center',title: '瓒呴噸淇″彿2',hide:true}
-            ,{field: 'ibRopeReleaseSignal1', align: 'center',title: '鏉剧怀淇″彿1',hide:true}
-            ,{field: 'ibRopeReleaseSignal2', align: 'center',title: '鏉剧怀淇″彿2',hide:true}
-            ,{field: 'ibSafetyClamp', align: 'center',title: '瀹夊叏閽�',hide:true}
-            ,{field: 'ibTightener', align: 'center',title: '寮犵揣鍣�',hide:true}
-            ,{field: 'ibSpeedLimiter', align: 'center',title: '闄愰�熷櫒',hide:true}
-            ,{field: 'ibSafetyDoorOpen', align: 'center',title: '瀹夊叏闂ㄦ墦寮�',hide:true}
-            ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿'}
+        return [
+            {field: 'crnNo', title: '缂栧彿'},
+            {field: 'ibDriveFault', title: '琛岃蛋鍙橀鍣ㄦ晠闅�'},
+            {field: 'ibSupplyFault', title: '鎻愬叡鍙橀鍣ㄦ晠闅�'},
+            {field: 'ibForkDriveFault', title: '璐у弶鍙橀鍣ㄦ晠闅�'},
+            {field: 'ibDriveCircuitFault', title: '琛岃蛋鏂矾鍣ㄦ晠闅�'},
+            {field: 'ibLiftCircuitFault', title: '鎻愬崌鏂矾鍣ㄦ晠闅�'},
+            {field: 'ibForkCircuitFault', title: '璐у弶鏂矾鍣ㄦ晠闅�'},
+            {field: 'ibForwardLimit', title: '鍓嶈繘闄愪綅'},
+            {field: 'ibReverseLimit', title: '鍚庨��闄愪綅'},
+            {field: 'ibDriveStart', title: '琛岃蛋鍘熺偣'},
+            {field: 'ibForwardBrakeSpeed', title: '鍓嶈繘寮哄埗浣庨��'},
+            {field: 'ibReverseBrakeSpeed', title: '鍚庨��寮哄埗浣庨��'},
+            {field: 'ibUpLimit', title: '涓婂崌闄愪綅'},
+            {field: 'ibDownLimit', title: '涓嬮檺闄愪綅'},
+            {field: 'ibUpOrigin', title: '鎻愬崌鍘熺偣'},
+            {field: 'ibUpBrakeSpeed', title: '涓婂崌寮哄埗浣庨��'},
+            {field: 'ibDownBrakeSpeed', title: '涓嬮檷寮哄埗浣庨��'},
+            {field: 'ibPlatformSignal', title: '杞借揣鍙版帰璐�'},
+            {field: 'ibForkMidSignal', title: '璐у弶涓綅淇″彿'},
+            {field: 'ibForkLeftLimit', title: '璐у弶宸︽瀬闄�'},
+            {field: 'ibForkRightLimit', title: '璐у弶鍙虫瀬闄�'},
+            {field: 'ibFrontOverLimit', title: '鍓嶈秴闄�'},
+            {field: 'ibRearOverLimit', title: '鍚庤秴闄�'},
+            {field: 'ibLeftOverLimit', title: '宸﹁秴闄�'},
+            {field: 'ibRightOverLimit', title: '鍙宠秴闄�'},
+            {field: 'ibHighOverLimit1', title: '楂樿秴闄�1'},
+            {field: 'ibHighOverLimit2', title: '楂樿秴闄�2'},
+            {field: 'ibHighOverLimit3', title: '楂樿秴闄�3'},
+            {field: 'ibOneExtendLeftLoad1', title: '涓�浼稿乏渚ф帰璐�1'},
+            {field: 'ibOneExtendLeftLoad2', title: '涓�浼稿乏渚ф帰璐�2'},
+            {field: 'ibOneExtendRightLoad1', title: '涓�浼稿彸渚ф帰璐�1'},
+            {field: 'ibOneExtendRightLoad2', title: '涓�浼稿彸渚ф帰璐�2'},
+            {field: 'ibTwoExtendLeftLoad1', title: '浜屼几宸︿晶鎺㈣揣1'},
+            {field: 'ibTwoExtendLeftLoad2', title: '浜屼几宸︿晶鎺㈣揣2'},
+            {field: 'ibTwoExtendRightLoad1', title: '浜屼几鍙充晶鎺㈣揣1'},
+            {field: 'ibTwoExtendRightLoad2', title: '浜屼几鍙充晶鎺㈣揣2'},
+            {field: 'ibSpeedSignal1', title: '瓒呴�熶俊鍙�1'},
+            {field: 'ibSpeedSignal2', title: '瓒呴�熶俊鍙�2'},
+            {field: 'ibOverweightSignal1', title: '瓒呴噸淇″彿1'},
+            {field: 'ibOverweightSignal2', title: '瓒呴噸淇″彿2'},
+            {field: 'ibRopeReleaseSignal1', title: '鏉剧怀淇″彿1'},
+            {field: 'ibRopeReleaseSignal2', title: '鏉剧怀淇″彿2'},
+            {field: 'ibSafetyClamp', title: '瀹夊叏閽�'},
+            {field: 'ibTightener', title: '寮犵揣鍣�'},
+            {field: 'ibSpeedLimiter', title: '闄愰�熷櫒'},
+            {field: 'ibSafetyDoorOpen', title: '瀹夊叏闂ㄦ墦寮�'}
         ];
-        return cols;
     }
-    // 鏍煎紡鍖栨椂闂村嚱鏁�
+
+    /** 鏍煎紡鍖栨椂闂� */
     function formatDateTime(isoString) {
         const date = new Date(isoString);
         const y = date.getFullYear();
@@ -94,40 +195,47 @@
         return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
     }
 
-    // 娓叉煋琛ㄦ牸鍑芥暟
-    function renderTable() {
-        if(!parentUuid) return; // 娌uid灏变笉娓叉煋
-
-        layui.use(['table','form'], function(){
-            var table = layui.table;
-
-            tableIns1 = table.render({
-                elem: '#logDetlByTime',
-                url: baseUrl + '/basCrnErrorLog/listByUuid/auth',
-                headers: { token: localStorage.getItem('token') },
-                where: { uuid: parentUuid },
-                page: true,
-                limit: 16,
-                cols: [getCol()],
-                parseData: function(res){ // 杞崲鎺ュ彛杩斿洖鐨勬暟鎹�
-                    console.log(res);
-                    return res;
-                }
-            });
+    /** 娓叉煋鍙屽垪鍗$墖鍒楄〃 */
+    function renderList(data) {
+        const cols = getCol();
+        $("#errorList").empty();
+        $("#normalList").empty();
+        cols.forEach(col => {
+            const field = col.field;
+            const title = col.title;
+            if (data[field] === "Y") {
+                $("#errorList").append(`<li class="error-item">${title}</li>`);
+            } else if (data[field] === "N") {
+                $("#normalList").append(`<li class="normal-item">${title}</li>`);
+            }
         });
     }
 
-    // 鐖堕〉闈㈣皟鐢� setUuid 鍚庤缃� uuid 骞舵覆鏌撹〃鏍�
+    /** 鏌ヨ鍚庣鏁版嵁 */
+    function renderTable() {
+        if (!parentUuid) return;
+        $.ajax({
+            url: baseUrl + '/basCrnErrorLog/listByUuid/auth',
+            method: 'GET',
+            headers: { token: localStorage.getItem('token') },
+            data: { uuid: parentUuid, curr: 1, limit: 1 },
+            success: function(res) {
+                if (res.code !== 200) return;
+                const record = res.data.records[0];
+                if (record) renderList(record);
+            }
+        });
+    }
+
+    /** 鐖堕〉闈㈣皟鐢� */
     function setUuid(uuid){
         parentUuid = uuid;
         renderTable();
     }
 
-    // 鐖堕〉闈㈣皟鐢� setCreateTime 璁剧疆鏃堕棿鏄剧ず
     function setCreateTime(value){
         $('#createTime').val(formatDateTime(value));
     }
-
 </script>
+</body>
 </html>
-
diff --git a/src/main/webapp/views/basRgvErrorLog/basRgvErrorLog.html b/src/main/webapp/views/basRgvErrorLog/basRgvErrorLog.html
index e013559..348c84e 100644
--- a/src/main/webapp/views/basRgvErrorLog/basRgvErrorLog.html
+++ b/src/main/webapp/views/basRgvErrorLog/basRgvErrorLog.html
@@ -54,10 +54,8 @@
         <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
     </div>
 </script>
-
 <script type="text/html" id="operate">
-    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
-    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+    <a class="layui-btn layui-btn-xs btn-detlShow" lay-event="detlShow">鏄庣粏</a>
 </script>
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
@@ -66,255 +64,5 @@
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/basRgvErrorLog/basRgvErrorLog.js" charset="utf-8"></script>
 </body>
-<!-- 琛ㄥ崟寮圭獥 -->
-<script type="text/html" id="editDialog">
-    <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
-        <input name="id" type="hidden">
-        <div class="layui-row">
-            <div class="layui-col-md12">
-                <div class="layui-form-item">
-                    <label class="layui-form-label">缂栧彿: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rgvNo" placeholder="璇疯緭鍏ョ紪鍙�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鎬ュ仠瑙﹀彂: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="emergencyStop" placeholder="璇疯緭鍏ユ�ュ仠瑙﹀彂">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">1鍙蜂綅鏈夌墿鏃犺祫鏂�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="slot1EmptyNoData" placeholder="璇疯緭鍏�1鍙蜂綅鏈夌墿鏃犺祫鏂�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">2鍙蜂綅鏈夌墿鏃犺祫鏂�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="slot2EmptyNoData" placeholder="璇疯緭鍏�2鍙蜂綅鏈夌墿鏃犺祫鏂�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍛戒护閿欒璧伴摼鏉″啿绐�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="commandErrorChainConflict" placeholder="璇疯緭鍏ュ懡浠ら敊璇蛋閾炬潯鍐茬獊">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鐩爣浣嶄笅鍙戦敊璇�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="targetPositionIssue" placeholder="璇疯緭鍏ョ洰鏍囦綅涓嬪彂閿欒">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">璧拌鍙橀鍣ㄥ紓甯�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="travelInverterError" placeholder="璇疯緭鍏ヨ蛋琛屽彉棰戝櫒寮傚父">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">1鍙峰厜鐢靛紓甯�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="photoelectric1Error" placeholder="璇疯緭鍏�1鍙峰厜鐢靛紓甯�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">2鍙峰厜鐢靛紓甯�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="photoelectric2Error" placeholder="璇疯緭鍏�2鍙峰厜鐢靛紓甯�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">涓庤緭绾挎椂鎺ヨ秴鏃�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="timeoutConnectionWithLine" placeholder="璇疯緭鍏ヤ笌杈撶嚎鏃舵帴瓒呮椂">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸︿晶婊氱瓛杩愯瓒呮椂: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="leftRollerTimeout" placeholder="璇疯緭鍏ュ乏渚ф粴绛掕繍琛岃秴鏃�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙充晶婊氱瓛杩愯瓒呮椂: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rightRollerTimeout" placeholder="璇疯緭鍏ュ彸渚ф粴绛掕繍琛岃秴鏃�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">rgv杩愯瓒呮椂: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rgvRunTimeout" placeholder="璇疯緭鍏gv杩愯瓒呮椂">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">1鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="position1ChainInverterError" placeholder="璇疯緭鍏�1鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">2鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="position2ChainInverterError" placeholder="璇疯緭鍏�2鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍓嶅悗鏋侀檺浣�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="frontRearLimit" placeholder="璇疯緭鍏ュ墠鍚庢瀬闄愪綅">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鎬ュ仠鎸夐挳: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="emergencyButton" placeholder="璇疯緭鍏ユ�ュ仠鎸夐挳">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍒涘缓鏃堕棿: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ュ垱寤烘椂闂�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鎬ュ仠鎸夐挳: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="forwardButton" placeholder="璇疯緭鍏ユ�ュ仠鎸夐挳">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍚庨��鎸夐挳: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="reverseButton" placeholder="璇疯緭鍏ュ悗閫�鎸夐挳">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鏈湴/杩滅▼: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="localRemote" placeholder="璇疯緭鍏ユ湰鍦�/杩滅▼">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">澶嶄綅: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="reset" placeholder="璇疯緭鍏ュ浣�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">璧拌鎶遍椄寮�鍏抽挳: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="travelBrakeSwitch" placeholder="璇疯緭鍏ヨ蛋琛屾姳闂稿紑鍏抽挳">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">璧拌寮哄埗鍑忛�熷厜鐢�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="travelSpeedLimitPhotoelectric" placeholder="璇疯緭鍏ヨ蛋琛屽己鍒跺噺閫熷厜鐢�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸﹁秴闄� 1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="leftOverlimit1" placeholder="璇疯緭鍏ュ乏瓒呴檺 1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙宠秴闄� 1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rightOverlimit1" placeholder="璇疯緭鍏ュ彸瓒呴檺 1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸﹀埌浣� 1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="leftAtPosition1" placeholder="璇疯緭鍏ュ乏鍒颁綅 1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙冲埌浣� 1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rightAtPosition1" placeholder="璇疯緭鍏ュ彸鍒颁綅 1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">閾炬潯鍓嶈繘 1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="chainForward1" placeholder="璇疯緭鍏ラ摼鏉″墠杩� 1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">閾炬潯鍚庨�� 1: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="chainReverse1" placeholder="璇疯緭鍏ラ摼鏉″悗閫� 1">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙橀鍣ㄦ姤璀�: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="inverterAlarm" placeholder="璇疯緭鍏ュ彉棰戝櫒鎶ヨ">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸﹁秴闄� 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="leftOverlimit2" placeholder="璇疯緭鍏ュ乏瓒呴檺 2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙宠秴闄� 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rightOverlimit2" placeholder="璇疯緭鍏ュ彸瓒呴檺 2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸﹀埌浣� 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="leftAtPosition2" placeholder="璇疯緭鍏ュ乏鍒颁綅 2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙冲埌浣� 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rightAtPosition2" placeholder="璇疯緭鍏ュ彸鍒颁綅 2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">璐х墿鍑忛��: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="cargoSpeedReduction" placeholder="璇疯緭鍏ヨ揣鐗╁噺閫�">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">杈撻�佸彉棰戝櫒鎶ヨ 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="conveyorInverterAlarm2" placeholder="璇疯緭鍏ヨ緭閫佸彉棰戝櫒鎶ヨ 2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">宸﹁緭閫� 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="leftConveyor2" placeholder="璇疯緭鍏ュ乏杈撻�� 2">
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label">鍙宠緭閫� 2: </label>
-                    <div class="layui-input-block">
-                        <input class="layui-input" name="rightConveyor2" placeholder="璇疯緭鍏ュ彸杈撻�� 2">
-                    </div>
-                </div>
-
-             </div>
-        </div>
-        <hr class="layui-bg-gray">
-        <div class="layui-form-item text-right">
-            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
-            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
-        </div>
-    </form>
-</script>
 </html>
 
diff --git a/src/main/webapp/views/basRgvErrorLog/logDetl.html b/src/main/webapp/views/basRgvErrorLog/logDetl.html
new file mode 100644
index 0000000..5c8b44e
--- /dev/null
+++ b/src/main/webapp/views/basRgvErrorLog/logDetl.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>RGV寮傚父</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+    <style>
+        body {
+            background: #f5f7fa;
+            font-family: "Microsoft YaHei", sans-serif;
+            margin: 0;
+            padding: 0;
+        }
+
+        /* 椤堕儴鏃堕棿鍖哄煙 */
+        .layui-inline {
+            background: #fff;
+            padding: 16px 20px;
+            border-radius: 10px;
+            box-shadow: 0 3px 12px rgba(0,0,0,0.06);
+            margin: 20px 0 0 20px;
+            display: inline-flex;
+            align-items: center;
+        }
+
+        .layui-form-label {
+            font-weight: bold;
+        }
+
+        /* 鏁翠綋瀹瑰櫒 */
+        #logContainer {
+            display: flex;
+            width: 100%;
+            margin-top: 20px;
+            height: 600px;
+            overflow-y: auto;
+            background: #fff;
+            border-radius: 12px;
+            box-shadow: 0 4px 18px rgba(0,0,0,0.08);
+            padding: 20px;
+            box-sizing: border-box;
+        }
+
+        /* 宸﹀彸鍒� */
+        .log-column {
+            flex: 1;
+            padding: 10px 20px;
+            box-sizing: border-box;
+        }
+
+        .log-column.left {
+            border-right: 1px solid #e5e5e5;
+        }
+
+        /* 鍒楁爣棰� */
+        .column-title {
+            text-align: center;
+            font-size: 20px;
+            font-weight: bold;
+            margin-bottom: 18px;
+            padding-bottom: 10px;
+            border-bottom: 2px solid #eee;
+        }
+
+        .title-red { color: #e74c3c; }
+        .title-green { color: #27ae60; }
+
+        ul li {
+            display: inline-block;          /* 鏀规垚琛屽唴鍧楋紝鑷�傚簲瀹藉害 */
+            margin: 6px 6px 6px 0;          /* 鍗$墖闂磋窛 */
+            padding: 8px 12px;              /* 鍐呰竟璺� */
+            border-radius: 10px;
+            font-size: 14px;
+            box-shadow: 0 2px 6px rgba(0,0,0,0.08);
+            transition: all 0.2s;
+            white-space: nowrap;            /* 闃叉鏂囧瓧鎹㈣锛屽崱鐗囧搴﹁嚜閫傚簲鍐呭 */
+        }
+
+        ul li:hover {
+            transform: translateY(-2px);
+            box-shadow: 0 4px 12px rgba(0,0,0,0.12);
+            cursor: default;
+        }
+
+        /* 寮傚父椤� */
+        .error-item {
+            color: #c0392b;
+            background: #fdecea;
+            border: 1px solid #f5c5c5;
+        }
+
+        /* 姝e父椤� */
+        .normal-item {
+            color: #1e8449;
+            background: #eafaf1;
+            border: 1px solid #c7e6d1;
+        }
+
+    </style>
+</head>
+<body>
+<div class="layui-inline">
+    <label class="layui-form-label">鍙戠敓鏃堕棿锛�</label>
+    <div class="layui-input-inline">
+        <input id="createTime" class="layui-input" type="text" disabled="disabled">
+    </div>
+</div>
+
+<div id="logContainer">
+    <!-- 寮傚父鍒� -->
+    <div class="log-column left">
+        <h3 class="column-title title-red">寮傚父椤�(Y)</h3>
+        <ul id="errorList"></ul>
+    </div>
+
+    <!-- 姝e父鍒� -->
+    <div class="log-column">
+        <h3 class="column-title title-green">鏃犲紓甯搁」(N)</h3>
+        <ul id="normalList"></ul>
+    </div>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript">
+    var parentUuid;
+
+    /** 鍒楃粨鏋� */
+    function getCol() {
+        return [
+            ,{field: 'reset', align: 'center',title: '澶嶄綅'}
+            ,{field: 'travelBrakeSwitch', align: 'center',title: '璧拌鎶遍椄寮�鍏抽挳'}
+            ,{field: 'travelSpeedLimitPhotoelectric', align: 'center',title: '璧拌寮哄埗鍑忛�熷厜鐢�'}
+            ,{field: 'leftOverlimit1', align: 'center',title: '宸﹁秴闄� 1'}
+            ,{field: 'rightOverlimit1', align: 'center',title: '鍙宠秴闄� 1'}
+            ,{field: 'leftAtPosition1', align: 'center',title: '宸﹀埌浣� 1'}
+            ,{field: 'rightAtPosition1', align: 'center',title: '鍙冲埌浣� 1'}
+            ,{field: 'chainForward1', align: 'center',title: '閾炬潯鍓嶈繘 1'}
+            ,{field: 'chainReverse1', align: 'center',title: '閾炬潯鍚庨�� 1'}
+            ,{field: 'inverterAlarm', align: 'center',title: '鍙橀鍣ㄦ姤璀�'}
+            ,{field: 'leftOverlimit2', align: 'center',title: '宸﹁秴闄� 2'}
+            ,{field: 'rightOverlimit2', align: 'center',title: '鍙宠秴闄� 2'}
+            ,{field: 'leftAtPosition2', align: 'center',title: '宸﹀埌浣� 2'}
+            ,{field: 'rightAtPosition2', align: 'center',title: '鍙冲埌浣� 2'}
+            ,{field: 'cargoSpeedReduction', align: 'center',title: '璐х墿鍑忛��'}
+            ,{field: 'conveyorInverterAlarm2', align: 'center',title: '杈撻�佸彉棰戝櫒鎶ヨ 2'}
+            ,{field: 'leftConveyor2', align: 'center',title: '宸﹁緭閫� 2'}
+            ,{field: 'rightConveyor2', align: 'center',title: '鍙宠緭閫� 2'}
+        ];
+    }
+
+    /** 鏍煎紡鍖栨椂闂� */
+    function formatDateTime(isoString) {
+        const date = new Date(isoString);
+        const y = date.getFullYear();
+        const m = String(date.getMonth() + 1).padStart(2, '0');
+        const d = String(date.getDate()).padStart(2, '0');
+        const hh = String(date.getHours()).padStart(2, '0');
+        const mm = String(date.getMinutes()).padStart(2, '0');
+        const ss = String(date.getSeconds()).padStart(2, '0');
+        return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
+    }
+
+    /** 娓叉煋鍙屽垪鍗$墖鍒楄〃 */
+    function renderList(data) {
+        const cols = getCol();
+        $("#errorList").empty();
+        $("#normalList").empty();
+        cols.forEach(col => {
+            const field = col.field;
+            const title = col.title;
+            if (data[field] === "Y") {
+                $("#errorList").append(`<li class="error-item">${title}</li>`);
+            } else if (data[field] === "N") {
+                $("#normalList").append(`<li class="normal-item">${title}</li>`);
+            }
+        });
+    }
+
+    /** 鏌ヨ鍚庣鏁版嵁 */
+    function renderTable() {
+        if (!parentUuid) return;
+        $.ajax({
+            url: baseUrl + '/basRgvErrorLog/listByUuid/auth',
+            method: 'GET',
+            headers: { token: localStorage.getItem('token') },
+            data: { uuid: parentUuid, curr: 1, limit: 1 },
+            success: function(res) {
+                if (res.code !== 200) return;
+                const record = res.data.records[0];
+                if (record) renderList(record);
+            }
+        });
+    }
+
+    /** 鐖堕〉闈㈣皟鐢� */
+    function setUuid(uuid){
+        parentUuid = uuid;
+        renderTable();
+    }
+
+    function setCreateTime(value){
+        $('#createTime').val(formatDateTime(value));
+    }
+</script>
+</body>
+</html>

--
Gitblit v1.9.1