From 75a3365af2e78f89c464c9cdf87a91ab5b577e77 Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期一, 20 四月 2026 09:53:40 +0800
Subject: [PATCH] 1

---
 WebTM/views/Baseset/基础资料/saomazutuo_xiaowei.html         |    8 
 WebTM/views/数采管理/DAQ_EquipRunningSlice copy.html         | 1476 ++++++++++++++++++++++++
 WebTM/views/数采管理/DAQ_EvidenceEquipmentCockpitDetail.html |  191 +-
 WebTM/layuiadmin/Scripts/webConfig.js                    |    4 
 WebTM/views/数采管理/DAQ_EquipRunningSlice.html              | 1370 +++++++++++++++++++--
 WebTM/WebTM.csproj                                       |    1 
 WebTM/views/仓存管理/仓库报表/Kf_WMSDailyRunStateReport.html     |  542 +++++++++
 7 files changed, 3,328 insertions(+), 264 deletions(-)

diff --git a/WebTM/WebTM.csproj b/WebTM/WebTM.csproj
index 00618c5..3626108 100644
--- a/WebTM/WebTM.csproj
+++ b/WebTM/WebTM.csproj
@@ -210,6 +210,7 @@
     <Content Include="views\WMS鎵爜妯″潡\閲囪喘鍏ュ簱\Kf_POStockInBackBill_Check_PDA.html" />
     <Content Include="views\WMS鎵爜妯″潡\閿�鍞嚭搴揬Kf_SellOutBackBill_CheckList_PDA.html" />
     <Content Include="views\WMS鎵爜妯″潡\閿�鍞嚭搴揬Kf_SellOutBackBill_Check_PDA.html" />
+    <Content Include="views\浠撳瓨绠$悊\浠撳簱鎶ヨ〃\Kf_WMSDailyRunStateReport.html" />
     <Content Include="views\浠撳瓨绠$悊\鏉$爜鐢熸垚\Gy_BarCodeBill_HuaZhou.html" />
     <Content Include="views\鍩虹璧勬枡\鍏敤鍩虹璧勬枡\Add_Edit_Gy_Car.html" />
     <Content Include="views\鍩虹璧勬枡\鍏敤鍩虹璧勬枡\Add_Edit_Gy_CostCenter.html" />
diff --git a/WebTM/layuiadmin/Scripts/webConfig.js b/WebTM/layuiadmin/Scripts/webConfig.js
index 47260b1..ca232dd 100644
--- a/WebTM/layuiadmin/Scripts/webConfig.js
+++ b/WebTM/layuiadmin/Scripts/webConfig.js
@@ -4,8 +4,8 @@
   //var WEBURL = "http://localhost/API/";             //棰滄檽鍐涙湰鍦伴厤缃�
   //var WEBURL = "http://localhost:8082/API/";        //鏉滆春鏈湴閰嶇疆
 /*  var WEBURL = "http://localhost:81/API/"           //缈佹稕娑涙湰鍦伴厤缃�*/
-  var WEBURL = "http://localhost:8082/API/"; //寮犵憺骞挎湰鍦伴厤缃�
-  //var WEBURL = "http://localhost:81/API/";          //闄堥晲鍝叉湰鍦伴厤缃�
+  // var WEBURL = "http://localhost:8082/API/"; //寮犵憺骞挎湰鍦伴厤缃�
+  var WEBURL = "http://localhost:81/API/";          //闄堥晲鍝叉湰鍦伴厤缃�
   // var WEBURL = "http://localhost:8082/LuBaoAPI/";   //鏉庢灄淇婃湰鍦伴厤缃�
   //var WEBURL = "http://localhost:8080/API/";        //鐜嬩华鏈湴閰嶇疆
   //var WEBURL = "http://localhost:8082/LuBaoAPI/";   //浣欐�濇澃鏈湴閰嶇疆
diff --git "a/WebTM/views/Baseset/\345\237\272\347\241\200\350\265\204\346\226\231/saomazutuo_xiaowei.html" "b/WebTM/views/Baseset/\345\237\272\347\241\200\350\265\204\346\226\231/saomazutuo_xiaowei.html"
index 7d98a02..b83163c 100644
--- "a/WebTM/views/Baseset/\345\237\272\347\241\200\350\265\204\346\226\231/saomazutuo_xiaowei.html"
+++ "b/WebTM/views/Baseset/\345\237\272\347\241\200\350\265\204\346\226\231/saomazutuo_xiaowei.html"
@@ -508,11 +508,11 @@
                     if (listData.length > 0) {
                         // 鑾峰彇褰撳墠鏉$爜鐨勫悗9-10浣嶏紙浠庡悗寰�鍓嶆暟绗�9鍜岀8浣嶏級
                         if (sBarCode.length >= 10) {
-                            var currentLast9to10 = sBarCode.substr(-14, 2); // 鑾峰彇鍊掓暟绗�9浣嶅紑濮嬬殑2浣嶅瓧绗�
+                            var currentLast9to10 = sBarCode.substr(-15, 2); // 鑾峰彇鍊掓暟绗�9浣嶅紑濮嬬殑2浣嶅瓧绗�
                             // 鑾峰彇涓婁竴鏉℃潯鐮佺殑瀵瑰簲浣嶇疆
                             var lastBarCode = listData[listData.length - 1]['鏉$爜缂栧彿'];
                             if (lastBarCode.length >= 10) {
-                                var lastLast9to10 = lastBarCode.substr(-14, 2);
+                                var lastLast9to10 = lastBarCode.substr(-15, 2);
                                 if (currentLast9to10 !== lastLast9to10) {
                                     layer.msg(`褰撳墠鏉$爜鍊掓暟14-15浣�(${currentLast9to10})涓庝笂涓�鏉℃潯鐮�(${lastLast9to10})涓嶅悓锛岃妫�鏌ワ紒`, { icon: 5 });
                                     $('#HBarCode').val('');
@@ -526,11 +526,11 @@
                     if (listData.length > 0) {
                         // 鑾峰彇褰撳墠鏉$爜鐨勫悗9-10浣嶏紙浠庡悗寰�鍓嶆暟绗�9鍜岀8浣嶏級
                         if (sBarCode.length >= 10) {
-                            var currentLast9to10 = sBarCode.substr(-10, 2); // 鑾峰彇鍊掓暟绗�9浣嶅紑濮嬬殑2浣嶅瓧绗�
+                            var currentLast9to10 = sBarCode.substr(-11, 2); // 鑾峰彇鍊掓暟绗�9浣嶅紑濮嬬殑2浣嶅瓧绗�
                             // 鑾峰彇涓婁竴鏉℃潯鐮佺殑瀵瑰簲浣嶇疆
                             var lastBarCode = listData[listData.length - 1]['鏉$爜缂栧彿'];
                             if (lastBarCode.length >= 10) {
-                                var lastLast9to10 = lastBarCode.substr(-10, 2);
+                                var lastLast9to10 = lastBarCode.substr(-11, 2);
                                 if (currentLast9to10 !== lastLast9to10) {
                                     layer.msg(`褰撳墠鏉$爜鍊掓暟10-11浣�(${currentLast9to10})涓庝笂涓�鏉℃潯鐮�(${lastLast9to10})涓嶅悓锛岃妫�鏌ワ紒`, { icon: 5 });
                                     $('#HBarCode').val('');
diff --git "a/WebTM/views/\344\273\223\345\255\230\347\256\241\347\220\206/\344\273\223\345\272\223\346\212\245\350\241\250/Kf_WMSDailyRunStateReport.html" "b/WebTM/views/\344\273\223\345\255\230\347\256\241\347\220\206/\344\273\223\345\272\223\346\212\245\350\241\250/Kf_WMSDailyRunStateReport.html"
new file mode 100644
index 0000000..c37c8b7
--- /dev/null
+++ "b/WebTM/views/\344\273\223\345\255\230\347\256\241\347\220\206/\344\273\223\345\272\223\346\212\245\350\241\250/Kf_WMSDailyRunStateReport.html"
@@ -0,0 +1,542 @@
+锘�
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>WMS姣忔棩杩愯鐘舵�佹姤琛�</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="../../../layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
+    <script src="../../../layuiadmin/layui/layui.js"></script>
+    <script src="../../../layuiadmin/Scripts/json2.js"></script>
+    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+    <script src="../../../layuiadmin/PubCustom.js"></script>
+    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
+    <script src="../../../layuiadmin/HideButton.js"></script>
+    <script src='../../../layuiadmin/lib/extend/echarts.min.js'></script>
+    <style type="text/css">
+        * {
+            margin: 0;
+            padding: 0;
+            box-sizing: border-box;
+        }
+
+        html, body {
+            height: 100%;
+        }
+
+        .page-container {
+            height: 100%;
+            padding: 10px;
+            display: flex;
+            flex-direction: column;
+        }
+
+        .query-bar {
+            background: #fff;
+            padding: 10px 15px;
+            border-radius: 6px;
+            margin-bottom: 10px;
+            flex-shrink: 0;
+        }
+
+        .summary-row {
+            display: flex;
+            flex-wrap: wrap;
+            margin-bottom: 10px;
+            flex-shrink: 0;
+        }
+
+        .chart-container {
+            background: #fff;
+            border-radius: 6px;
+            padding: 8px;
+            flex: 1;
+            overflow: auto;
+            min-height: 0;
+            display: grid;
+            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
+            gap: 8px;
+        }
+
+        .chart-box {
+            margin: 4px;
+            border: 1px solid #eee;
+            border-radius: 4px;
+            background: #fafbfc;
+            position: relative;
+            min-height: 260px;
+            display: flex;
+            align-items: stretch;
+            justify-content: stretch;
+        }
+
+        .empty-tip {
+            position: absolute;
+            left: 0;
+            top: 0;
+            width: 100%;
+            height: 100%;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            color: #999;
+            font-size: 12px;
+        }
+
+        .summary-card {
+            margin: 4px;
+            border: 1px solid #eee;
+            border-radius: 4px;
+            background: #fafbfc;
+            text-align: center;
+            padding: 8px 4px;
+            min-width: 200px;
+        }
+
+            .summary-card.total-card {
+                background: linear-gradient(135deg, #1e9fff 0%, #5fb3ff 100%);
+                border-color: #1e9fff;
+            }
+
+                .summary-card.total-card .summary-number,
+                .summary-card.total-card .summary-label {
+                    color: #fff;
+                }
+
+        .summary-number {
+            font-size: 16px;
+            font-weight: bold;
+            color: #1e9fff;
+        }
+
+        .summary-label {
+            font-size: 11px;
+            color: #888;
+            margin-top: 2px;
+        }
+    </style>
+</head>
+<body>
+    <div class="page-container">
+        <div class="query-bar">
+            <form class="layui-form" action="" lay-filter="component-form-group">
+                <div class="layui-collapse">
+                    <div class="layui-colla-item">
+                        <div class="layui-colla-title layui-inline">
+                            <div class="layui-inline"><span>鏇村</span></div>
+                        </div>
+                        <div class="layui-inline">
+                            <label class="layui-form-label" style="width:100px;">鏃ユ湡闂撮殧</label>
+                            <div class="layui-input-block">
+                                <select name="HInitTimeCycle" id="HInitTimeCycle" class="ForFilteringSchemes" lay-filter="HInitTimeCycle" style="width:190px;">
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <label class="layui-form-label" style="width:100px;">寮�濮嬫棩鏈�</label>
+                            <div class="layui-input-block">
+                                <input type="date" class="layui-input ForFilteringSchemes" id="HBeginDate" style="width:160px;">
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <label class="layui-form-label" style="width:100px;">缁撴潫鏃ユ湡</label>
+                            <div class="layui-input-block">
+                                <input type="date" class="layui-input ForFilteringSchemes" id="HEndDate" style="width:160px;">
+                            </div>
+                        </div>
+                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+                        </button>
+                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">閲嶇疆</button>
+                    </div>
+                    <div class="layui-colla-content">
+                    </div>
+                </div>
+            </form>
+        </div>
+
+        <div class="summary-row" id="summaryRow"></div>
+        <div class="chart-container" id="chartContainer"></div>
+    </div>
+
+    <script>
+        layui.config({
+            base: '../../../layuiadmin/'
+        }).extend({
+            index: 'lib/index',
+        }).use(['index', 'form', 'element'], function () {
+
+            var $ = layui.$, layer = layui.layer, form = layui.form;
+            var chartInstances = {};
+            var chartConfigKeys = [];
+
+            // 鍥捐〃閰嶇疆
+            var ChartConfig = {
+                cgrk: { chartTitle: '閲囪喘鍏ュ簱缁熻', chartType: 'bar', dataTableIndex: 0 },
+                cgtl: { chartTitle: '閲囪喘閫�鏂欑粺璁�', chartType: 'bar', dataTableIndex: 1 },
+                scll: { chartTitle: '鐢熶骇棰嗘枡缁熻', chartType: 'bar', dataTableIndex: 2 },
+                scbl: { chartTitle: '鐢熶骇琛ユ枡缁熻', chartType: 'bar', dataTableIndex: 3 },
+                wcll: { chartTitle: '濮斿棰嗘枡缁熻', chartType: 'bar', dataTableIndex: 4 },
+                schb: { chartTitle: '鐢熶骇姹囨姤缁熻', chartType: 'bar', dataTableIndex: 5 },
+                scrk: { chartTitle: '鐢熶骇鍏ュ簱缁熻', chartType: 'bar', dataTableIndex: 6 },
+                wcrk: { chartTitle: '濮斿鍏ュ簱缁熻', chartType: 'bar', dataTableIndex: 7 },
+                sctk: { chartTitle: '鐢熶骇閫�搴撶粺璁�', chartType: 'bar', dataTableIndex: 8 },
+                sctl: { chartTitle: '鐢熶骇閫�鏂欑粺璁�', chartType: 'bar', dataTableIndex: 9 },
+                xscK: { chartTitle: '閿�鍞嚭搴撶粺璁�', chartType: 'bar', dataTableIndex: 10 },
+                zjdb: { chartTitle: '鐩存帴璋冩嫧缁熻', chartType: 'bar', dataTableIndex: 11 },
+                fbsdr: { chartTitle: '鍒嗗竷寮忚皟鍏ョ粺璁�', chartType: 'bar', dataTableIndex: 12 },
+                fbsdc: { chartTitle: '鍒嗗竷寮忚皟鍑虹粺璁�', chartType: 'bar', dataTableIndex: 13 },
+                stjgrk: { chartTitle: '鍙楁墭鍔犲伐鍏ュ簱缁熻', chartType: 'bar', dataTableIndex: 14 },
+                stjgtl: { chartTitle: '鍙楁墭鍔犲伐閫�鏂欑粺璁�', chartType: 'bar', dataTableIndex: 15 },
+                qtrk: { chartTitle: '鍏朵粬鍏ュ簱缁熻', chartType: 'bar', dataTableIndex: 16 },
+                qtck: { chartTitle: '鍏朵粬鍑哄簱缁熻', chartType: 'bar', dataTableIndex: 17 }
+            };
+
+            // 鐢熸垚椤甸潰缁撴瀯
+            function generatePageStructure() {
+                chartConfigKeys = [];
+                for (var key in ChartConfig) { chartConfigKeys.push(key); }
+                generateSummaryCards();
+                generateChartBoxes();
+            }
+            function generateSummaryCards() {
+                var $summaryRow = $('#summaryRow'); $summaryRow.empty();
+                $summaryRow.append('<div class="summary-card total-card" id="card-total"><div class="summary-number">0</div><div class="summary-label">鎬昏</div></div>');
+                chartConfigKeys.forEach(key => {
+                    var config = ChartConfig[key];
+                    var label = config.chartTitle.replace('缁熻', '');
+                    $summaryRow.append(`<div class="summary-card" id="card-${key}"><div class="summary-number">0</div><div class="summary-label">${label}</div></div>`);
+                });
+            }
+            function generateChartBoxes() {
+                var $c = $('#chartContainer'); $c.empty();
+                chartConfigKeys.forEach(key => {
+                    $c.append(`<div class="chart-box" id="chart-${key}"><div class="empty-tip">鏆傛棤鏁版嵁</div></div>`);
+                });
+            }
+
+            //鏌ヨ
+            form.on('submit(btnReSearch)', function (data) {
+                set_ClearQuery();
+            });
+            //閲嶇疆
+            form.on('submit(btnSearch)', function (data) {
+                get_FastQuery();
+            });
+            //鏃ユ湡闂撮殧涓嬫媺鍒楄〃鐩戝惉
+            form.on('select(HInitTimeCycle)', function (data) {
+                var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
+                if (HInitTimeCycle != -1) {
+                    $('#HBeginDate').prop('disabled', true);
+                    $('#HEndDate').prop('disabled', true);
+                    $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
+                    $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+                    get_FastQuery();
+                } else {
+                    $('#HBeginDate').prop('disabled', false);
+                    $('#HEndDate').prop('disabled', false);
+                }
+            });
+
+            //鍒濆鍖�
+            function set_ClearBill() {
+                generatePageStructure();
+                setSelect_HInitTimeCycle();
+                var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
+                if (HInitTimeCycle != -1) {
+                    $('#HBeginDate').prop('disabled', true);
+                    $('#HEndDate').prop('disabled', true);
+                } else {
+                    $('#HBeginDate').prop('disabled', false);
+                    $('#HEndDate').prop('disabled', false);
+                }
+                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
+                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+                get_FastQuery();
+            }
+
+            //閲嶇疆
+            function set_ClearQuery() {
+                var today = Format(new Date(), "yyyy-MM-dd");
+                $("#HBeginDate").val(today);
+                $("#HEndDate").val(today);
+                get_FastQuery();
+            }
+
+            //鍒濆鏃ユ湡闂撮殧 涓嬫媺鍒楄〃
+            function setSelect_HInitTimeCycle() {
+                var valueList = [0, 1, 2, 3, 4, 5, 6, 29];
+                var titleList = ["浠婂ぉ", "杩戜袱澶�", "杩戜笁澶�", "杩戝洓澶�", "杩戜簲澶�", "杩戝叚澶�", "杩戜竷澶�", "杩�30澶�"];
+                var HInitTimeCycle_ArrayList = '<option  value="-1" selected="selected" >浠绘剰闂撮殧</option>';
+                for (var i = 0; i < valueList.length; i++) {
+                    HInitTimeCycle_ArrayList += '<option  style="color:blue;" value="' + valueList[i] + '">' + titleList[i] + '</option>';
+                }
+                $("#HInitTimeCycle").empty().append(HInitTimeCycle_ArrayList);
+                $("#HInitTimeCycle").val("0");
+                form.render('select');
+            }
+            // ==============================================
+            // 鏌ヨ 鑷姩琛ラ綈鎵�鏈夋棩鏈燂紙绌烘暟鎹�=0锛�
+            // ==============================================
+            function get_FastQuery() {
+                var wait = layer.load();
+                var beginDate = $("#HBeginDate").val();
+                var endDate = $("#HEndDate").val();
+
+                var sWhere = JSON.stringify({ HBeginDate: beginDate, HEndDate: endDate });
+                var params = { sWhere: sWhere, user: sessionStorage["HUserName"] || '' };
+
+                $.ajax({
+                    url: GetWEBURL() + 'WEBSController/GetKf_WMSDailyRunStateReport_Json',
+                    type: 'GET',
+                    data: params,
+                    success: function (result) {
+                        var data = {};
+                        var fullDateList = getDateRange(beginDate, endDate);
+
+                        if (result && result.code == "1" && result.data) {
+                            chartConfigKeys.forEach(key => {
+                                var cfg = ChartConfig[key];
+                                var tb = "h_p_Kf_WMSDailyRunStateReport" + (cfg.dataTableIndex > 0 ? cfg.dataTableIndex : "");
+                                var list = (result.data[tb] && Array.isArray(result.data[tb])) ? result.data[tb] : [];
+
+                                // 杞� map锛堟棩鏈熺粺涓�鏍煎紡鍖栵級
+                                var dataMap = {};
+                                list.forEach(x => {
+                                    var date = x.鏃ユ湡 || "";
+                                    try {
+                                        date = Format(new Date(date), "yyyy-MM-dd");
+                                    } catch (e) {
+                                        date = "";
+                                    }
+                                    var num = parseInt(x.鏁伴噺) || 0;
+                                    if (date) dataMap[date] = num;
+                                });
+
+                                // 琛ラ綈鎵�鏈夋棩鏈�
+                                data[key] = fullDateList.map(date => ({
+                                    name: date,
+                                    value: dataMap[date] || 0
+                                }));
+                            });
+                        } else {
+                            // 鍚庣鏃犳湁鏁堟暟鎹細鍏ㄩ儴鍒濆鍖栦负 0
+                            chartConfigKeys.forEach(key => {
+                                data[key] = fullDateList.map(date => ({ name: date, value: 0 }));
+                            });
+                        }
+
+                        renderAll(data);
+                        layer.close(wait);
+                    },
+                    error: function () {
+                        var fullDateList = getDateRange(beginDate, endDate);
+                        var data = {};
+                        chartConfigKeys.forEach(key => {
+                            data[key] = fullDateList.map(date => ({ name: date, value: 0 }));
+                        });
+                        renderAll(data);
+                        layer.close(wait);
+                    }
+                });
+            }
+
+            // ==============================================
+            // 鐢熸垚寮�濮媬缁撴潫鐨勬墍鏈夋棩鏈燂紙鑷姩璺ㄦ湀/璺ㄥ勾锛�
+            // ==============================================
+            function getDateRange(startDate, endDate) {
+                var arr = [];
+                var start = new Date(startDate);
+                var end = new Date(endDate);
+                while (start <= end) {
+                    arr.push(Format(start, "yyyy-MM-dd"));
+                    start.setDate(start.getDate() + 1);
+                }
+                return arr;
+            }
+
+            // ==============================================
+            // 娓叉煋鎵�鏈夊浘琛ㄥ拰鍗$墖锛堝彇娑堚�滃叏0璺宠繃鈥濓紝濮嬬粓缁樺浘锛�
+            // ==============================================
+            function renderAll(data) {
+                chartConfigKeys.forEach(key => {
+                    var cfg = ChartConfig[key];
+                    var d = data[key] || [];
+                    var $chartBox = $('#chart-' + key);
+                    var dom = $chartBox[0];
+                    var chartKey = 'chart-' + key;
+
+                    // 1. 閿�姣佹棫瀹炰緥锛屾柇寮� ResizeObserver 骞舵竻绌哄鍣�
+                    if (chartInstances[chartKey]) {
+                        try {
+                            if (chartInstances[chartKey]._resizeObserver) chartInstances[chartKey]._resizeObserver.disconnect();
+                        } catch (e) { }
+                        chartInstances[chartKey].dispose();
+                        delete chartInstances[chartKey];
+                    }
+                    $chartBox.empty();
+
+                    // 2. 鏇存柊鍗$墖鎬绘暟
+                    var total = d.reduce((a, b) => a + b.value, 0);
+                    $('#card-' + key + ' .summary-number').text(total);
+
+                    // 3. 濮嬬粓缁樺埗鍥捐〃锛堟煴鐘跺浘浼氭樉绀�0鍊兼煴瀛愶紝楗煎浘鍏�0鏃剁壒娈婂鐞嗭級
+                    if (cfg.chartType === 'pie') {
+                        // 楗煎浘鏃犺鏄惁鏈�0閮界粯鍒�
+                        renderPie(key, cfg.chartTitle, d);
+                    } else if (cfg.chartType === 'bar') {
+                        // 鏌辩姸鍥炬棤璁烘槸鍚︽湁0閮界粯鍒讹紝璁╂í杞存棩鏈熷畬鏁村睍绀�
+                        renderBar(key, cfg.chartTitle, d);
+                    }
+                });
+
+                // 鏇存柊鎬昏鍗$墖
+                var totalAll = 0;
+                chartConfigKeys.forEach(key => {
+                    var d = data[key] || [];
+                    totalAll += d.reduce((a, b) => a + b.value, 0);
+                });
+                $("#card-total .summary-number").text(totalAll);
+            }
+
+            function renderPie(key, title, data) {
+                var dom = document.getElementById('chart-' + key);
+                var $chartBox = $('#chart-' + key);
+                $chartBox.empty();
+
+                var chart = echarts.init(dom);
+                chartInstances['chart-' + key] = chart;
+                // 鑷姩鍝嶅簲瀹瑰櫒灏哄鍙樺寲锛堜紭鍏堜娇鐢� ResizeObserver锛�
+                if (window.ResizeObserver) {
+                    try {
+                        var ro = new ResizeObserver(function () { try { chart.resize(); } catch (e) { } });
+                        ro.observe(dom);
+                        chart._resizeObserver = ro;
+                    } catch (e) { }
+                }
+
+                // 璁$畻鎬诲拰
+                var total = data.reduce((s, x) => s + x.value, 0);
+                var isAllZero = total === 0;
+
+                // 缁樺埗鏁版嵁锛堝叏0鏃剁敤鏋佸皬鍊煎崰浣嶏級
+                var pieData = data.map(x => ({
+                    name: x.name,
+                    value: isAllZero ? 0.0001 : x.value,
+                    originalValue: x.value
+                }));
+
+                // 鍩虹绯诲垪閰嶇疆
+                var seriesConfig = {
+                    type: 'pie',
+                    radius: ['30%', '50%'],
+                    data: pieData,
+                    label: {
+                        show: true,
+                        fontSize: 11,
+                        // 寮哄埗鏄剧ず鏍囩锛岄槻姝㈣闅愯棌
+                        overflow: 'none',
+                        hideOverlap: false
+                    },
+                    labelLine: {
+                        show: true,
+                        length: 10,
+                        length2: 8
+                    },
+                    avoidLabelOverlap: false // 鍏佽鏍囩閲嶅彔锛岀‘淇濋兘鏄剧ず
+                };
+
+                chart.setOption({
+                    title: { text: title, left: 'center', textStyle: { fontSize: 12 } },
+                    tooltip: {
+                        trigger: 'item',
+                        formatter: function (params) {
+                            return `${params.name}: ${params.data.originalValue}`;
+                        }
+                    },
+                    series: [
+                        // 绗竴灞傦細澶栭儴鏄剧ず鏃ユ湡
+                        {
+                            ...seriesConfig,
+                            label: {
+                                ...seriesConfig.label,
+                                position: 'outside',
+                                formatter: function (params) {
+                                    // 澶栭儴濮嬬粓鏄剧ず鏃ユ湡锛堝悕绉帮級
+                                    return params.name;
+                                }
+                            }
+                        },
+                        // 绗簩灞傦細鍐呴儴鏄剧ず鏁伴噺锛堝叏0鏃朵篃鏄剧ず0锛�
+                        {
+                            ...seriesConfig,
+                            label: {
+                                ...seriesConfig.label,
+                                position: 'inside',
+                                formatter: function (params) {
+                                    // 鍐呴儴鏄剧ず鍘熷鏁伴噺锛屽叏0鏃舵樉绀� '0'
+                                    return params.data.originalValue;
+                                }
+                            },
+                            labelLine: { show: false } // 鍐呴儴涓嶉渶瑕佸紩瀵肩嚎
+                        }
+                    ]
+                });
+            }
+
+            // ==============================================
+            // 鏌辩姸鍥炬覆鏌擄紙鏀寔鍏�0鏁版嵁锛屾樉绀烘í杞存爣绛惧拰0鍊硷級
+            // ==============================================
+            function renderBar(key, title, data) {
+                var dom = document.getElementById('chart-' + key);
+                var chart = echarts.init(dom);
+                chartInstances['chart-' + key] = chart;
+                if (window.ResizeObserver) {
+                    try {
+                        var ro = new ResizeObserver(function () { try { chart.resize(); } catch (e) { } });
+                        ro.observe(dom);
+                        chart._resizeObserver = ro;
+                    } catch (e) { }
+                }
+                var colorList = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'];
+
+                chart.setOption({
+                    title: { text: title, left: 'center', textStyle: { fontSize: 12 } },
+                    tooltip: { trigger: 'axis' },
+                    xAxis: { type: 'category', data: data.map(x => x.name) },
+                    yAxis: { type: 'value' },
+                    series: [{
+                        type: 'bar',
+                        data: data.map(x => x.value),
+                        barWidth: '40%',
+                        itemStyle: {
+                            color: function (params) {
+                                return colorList[params.dataIndex % colorList.length];
+                            },
+                            borderRadius: [4, 4, 0, 0]
+                        },
+                        label: {
+                            show: true,
+                            position: 'top',
+                            fontSize: 11,
+                            formatter: '{c}'
+                        }
+                    }]
+                });
+            }
+            // 鍒濆鍖�
+            set_ClearBill();
+
+            window.onresize = function () {
+                for (var k in chartInstances) {
+                    if (chartInstances[k]) chartInstances[k].resize();
+                }
+            };
+        });
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git "a/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice copy.html" "b/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice copy.html"
new file mode 100644
index 0000000..d92e179
--- /dev/null
+++ "b/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice copy.html"
@@ -0,0 +1,1476 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8" />
+    <title>璁惧杩愯鍒囩墖</title>
+    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+    <script src="../../layuiadmin/layui/layui.js"></script>
+    <script src="../../layuiadmin/layui/layui.js"></script>
+    <script src="../../layuiadmin/Scripts/json2.js"></script>
+    <script src="../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+    <script src="../../layuiadmin/layui/layui1.js"></script>
+    <script src="../../layuiadmin/echarts.min.js"></script>
+    <script src="../../layuiadmin/dayjs.min.js"></script>
+    <link href="../../layuiadmin/layui/css/ReportPlatform.css" rel="stylesheet" />
+    <script src="../../layuiadmin/Scripts/webConfig.js"></script>
+    <style>
+        /*鏍戠姸鍥剧偣鍑婚珮浜彉鑹�*/
+        .layui-tree-set-active>.layui-tree-entry .layui-tree-main {
+            background: #aef0f7;
+        }
+
+        .cnt {
+            border: 1px solid #5FB878;
+            height: 50px;
+            border-radius: 5px;
+            /*background: -webkit-gradient(linear, 0% 0%, 0% 50%,from(#262525), to(#262525));*/
+            /*璋锋瓕*/
+        }
+
+        .bottomright {
+            cursor: pointer;
+            /*榧犳爣鍙樻垚鎵嬫寚鏍峰紡*/
+            transition: all 0.1s;
+            /*鎵�鏈夊睘鎬у彉鍖栧湪0.6绉掑唴鎵ц鍔ㄧ敾*/
+        }
+
+        .bottomright:hover {
+            transform: scale(1.3);
+            /*榧犳爣鏀句笂涔嬪悗鍏冪礌鍙樻垚1.4鍊嶅ぇ灏�*/
+        }
+
+        .imgtitle {
+            width: 70%;
+            height: 50px;
+            text-align: center;
+            display: block;
+            font-size: 15px;
+            float: left;
+            line-height: 50px;
+        }
+
+        .cns {
+            border: 1px solid #5FB878;
+            height: 130px;
+            border-radius: 5px;
+        }
+
+        .cns p {
+            font-size: 12px;
+            line-height: 18px;
+            margin: 0 5px;
+            white-space: nowrap;
+            text-overflow: ellipsis;
+            overflow: hidden;
+        }
+
+        .check1 {
+            cursor: pointer;
+            /*榧犳爣鍙樻垚鎵嬫寚鏍峰紡*/
+            -webkit-transition: border linear .1s, -webkit-box-shadow linear .5s;
+            border-color: rgba(0, 148, 255, .75);
+            -webkit-box-shadow: 0 0 18px rgba(0, 148, 255);
+        }
+
+        .prs {
+            font-family: "寰蒋闆呴粦";
+            font-weight: bold;
+            line-height: 30px;
+            margin: 0 0px 0px 10px;
+            float: left;
+        }
+
+        .layui-progress {
+            width: 45%;
+            float: left;
+            top: 6px;
+        }
+
+        .tr1-1,
+        .tr1-2,
+        .tr1-3,
+        .tr1-4 {
+            margin-left: 3%;
+            margin-top: 4%;
+            height: 310px;
+            border: 1px solid rgb(0 0 0 / 10%);
+            width: 95%;
+        }
+
+        .btnM {
+            width: 30%;
+            height: 50px;
+            line-height: 50px;
+            float: left;
+            text-align: right;
+        }
+
+        .layui-icon {
+            font-size: 20px;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="layui-fluid">
+        <div class="layui-col-md12">
+            <div class="layui-card" style="padding: 1px">
+                <div class="layui-card-body" style="padding: 1px;">
+                    <form class="layui-form" action="" lay-filter="component-form-group">
+                        <div class="layui-row">
+                            <div class="layui-col-xs2 layui-inline" style="border: solid 1.5px #e0d6d64d;">
+                                <div id="TreeTable" class="demo-tree demo-tree-box"
+                                    style="height: 600px; overflow: scroll;"></div>
+                            </div>
+                            <div class="layui-col-xs10 layui-inline" style="border: solid 1.5px #e0d6d64d;">
+                                <div class="layui-form-item" style="display: flex; justify-content: space-around;">
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label">鏃ユ湡鑼冨洿</label>
+                                        <div class="layui-inline" id="ID-laydate-range">
+                                            <div class="layui-input-inline">
+                                                <input type="text" autocomplete="off" id="ID-laydate-start-date"
+                                                    class="layui-input" placeholder="寮�濮嬫棩鏈�">
+                                            </div>
+                                            <div class="layui-form-mid">-</div>
+                                            <div class="layui-input-inline">
+                                                <input type="text" autocomplete="off" id="ID-laydate-end-date"
+                                                    class="layui-input" placeholder="缁撴潫鏃ユ湡">
+                                            </div>
+                                        </div>
+                                    </div>
+
+                                    <div class="layui-btn-group layui-inline" id="modeBtnGroup">
+                                        <button type="button" class="layui-btn" data-mode="day">鍗曟棩鏁版嵁</button>
+                                        <button type="button" class="layui-btn layui-btn-primary layui-border"
+                                            data-mode="history">鍘嗗彶鏁版嵁</button>
+                                    </div>
+                                </div>
+                                <div id="chartContainer" style="height:600px;display:block;overflow-y:auto;">
+                                </div>
+                            </div>
+                            <!-- <div class="layui-col-xs1 layui-inline" style="border: solid 1.5px #e0d6d64d;">
+                                <fieldset style="border: 1px solid #eee; box-shadow: 0 2px 5px 0 rgb(0 0 0 / 10%); height: 585px;">
+                                    <legend style="color: #5FB878">鎿嶄綔鍙�</legend>
+                                    <div class="content4">
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="PowerOn(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-pause imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">寮�鏈�</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="PowerOff(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-logout imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鍋滄満</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="DotCheck(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-list imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鐐规璁板綍</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="FaultRegistration(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-list imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鏁呴殰鐧昏</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="Maintenance(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-form imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">缁翠慨</span>
+                                                </div>
+                                            </div>
+                                        </div>
+
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="Resume(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-table imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">灞ュ巻</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="Process(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-file imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">宸ヨ壓</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="HStatus(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-set imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鐘舵��</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </fieldset>
+                            </div> -->
+                        </div>
+                        <div class="layui-row">
+                            <!-- <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-1" id="mychart11"> </div>
+                            </div>
+                            <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-2" id="mychart22"> </div>
+                            </div>
+                            <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-3" id="mychart3"> </div>
+                            </div>
+                            <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-4" id="mychart4"> </div>
+                            </div> -->
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</body>
+
+<script>
+    var wktag = 0;
+    var HEquipID = 0;//璁惧id
+    var HEquipNumber = "";//璁惧缂栫爜
+    var HEquipName = "";//璁惧鍚嶇О
+    var HSourceID = "";//浜х嚎id
+    var HDeptID = "";
+    var pieData = []; // 楗煎浘鏁版嵁闆嗗悎
+    var timelineData = []; //鏃跺簭鍥炬暟鎹泦鍚� 
+    layui.config({
+        base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
+    }).extend({
+        index: 'lib/index', //涓诲叆鍙fā鍧�
+    }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'tree', 'util'], function () {
+        //#region 鍏敤鍙橀噺
+        var $ = layui.$
+            , admin = layui.admin
+            , layer = layui.layer
+            , table = layui.table
+            , form = layui.form
+            , element = layui.element
+            , laypage = layui.laypage
+            , laydate = layui.laydate
+            , tree = layui.tree
+            , util = layui.util
+        //#endregion
+
+        //#region 杩涘叆椤甸潰鍗冲姞杞�
+
+        //鍒濆鍖栫晫闈�
+        set_ClearBill();
+
+        //#endregion
+
+        //#region 瑙﹀彂浜嬩欢锛氬寘鎷琭orm.on(){}鏍煎紡鐨勬墍鏈夌偣鍑讳簨浠躲�侀�夋嫨浜嬩欢绛�
+
+
+        //#endregion
+
+
+        //#region 鏈〉闈㈣璋冪敤鐨勬墍鏈夋柟娉�
+
+        //#region 鍒濆鍖栫晫闈�
+        function set_ClearBill() {
+            Init_dateRange()
+
+            // var mychart11 = echarts.init(document.getElementById('mychart11'));
+            // var mychart22 = echarts.init(document.getElementById('mychart22'));
+            // var mychart3 = echarts.init(document.getElementById('mychart3'));
+            // var mychart4 = echarts.init(document.getElementById('mychart4'));
+            // get_Histogram1(mychart11, '');//鏌辩姸鍥�1
+            // get_LineChart(mychart22, '');//鎶樼嚎
+            // get_Statistics(mychart3, '');//楗煎浘
+            // get_Histogram4(mychart4, '');//鏌辩姸鍥�4
+
+            //鏌ヨ
+            get_Display_Tree();
+        }
+        //#endregion
+
+        //#region 鍒濆鍖栨棩鏈熼�夋嫨鍣�
+        function Init_dateRange() {
+            $("#ID-laydate-start-date").val(util.toDateString(new Date(), 'yyyy-MM-dd'))
+            $("#ID-laydate-end-date").val(util.toDateString(new Date(), 'yyyy-MM-dd'))
+
+            var laydate = layui.laydate;
+            // 鏃ユ湡鑼冨洿 - 宸﹀彸闈㈡澘鐙珛閫夋嫨妯″紡
+            laydate.render({
+                elem: '#ID-laydate-range',
+                range: ['#ID-laydate-start-date', '#ID-laydate-end-date']
+            });
+            // 鏃ユ湡鑼冨洿 - 宸﹀彸闈㈡澘鑱斿姩閫夋嫨妯″紡
+            laydate.render({
+                elem: '#ID-laydate-rangeLinked',
+                range: ['#ID-laydate-start-date-1', '#ID-laydate-end-date-1'],
+                rangeLinked: true // 寮�鍚棩鏈熻寖鍥撮�夋嫨鏃剁殑鍖洪棿鑱斿姩鏍囨敞妯″紡 ---  2.8+ 鏂板
+            });
+        }
+        //#endregion
+
+        //鏌ヨ閮ㄩ棬 璁惧瀵瑰簲鐨勬姤琛�
+        function Check() {
+            var HBeginDate = $("#ID-laydate-start-date").val()
+            var HEndDate = $("#ID-laydate-end-date").val()
+
+            $.ajax({
+                url: GetWEBURL() + '/DAQ_EquipRunningSlice/GetHEquipStatusReportList_DAQ',
+                type: "GET",
+                async: false,
+                data: { "HDeptID": HDeptID, "HEquipID": HEquipID, HBeginDate: HBeginDate, HEndDate: HEndDate, "user": sessionStorage["HUserName"] },
+                dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+                success: function (res) {
+                    data = res.data
+
+                    if (data.length < 1) {
+                        return
+                    }
+
+                    pieData = data
+                }
+            })
+
+            $.ajax({
+                url: GetWEBURL() + '/DAQ_EquipRunningSlice/GetHEquipStatusReportList2_DAQ',
+                type: "GET",
+                async: false,
+                data: { "HDeptID": HDeptID, "HEquipID": HEquipID, HBeginDate: HBeginDate, HEndDate: HEndDate, "user": sessionStorage["HUserName"] },
+                dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+                success: function (res) {
+                    data = res.data
+
+                    if (data.length < 1) {
+                        return
+                    }
+                    console.log(timelineData)
+                    timelineData = data
+                }
+            })
+
+            drawCharts()
+
+
+            //wktag = 0;
+            //$("#btomleft").html("");
+            //$.ajax({
+            //    url: GetWEBURL() + '/Sc_HEquipStateDistribution/Sc_HEquipStateDistribution_Souce',
+            //    type: "GET",
+            //    data: { "HDeptID": HDeptID, "user": sessionStorage["HUserName"], "OrganizationID": sessionStorage["OrganizationID"] },
+            //    dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+            //    success: function (data) {
+            //
+            //        var LoadData1 = data.data.h_p_sc_HDeptSouceMOList;
+            //        if (LoadData1.length > 0)  //宸ュ崟鍒楄〃鏁版嵁
+            //        {
+            //
+            //            for (var i = 0; i < LoadData1.length; i++) {
+            //                var html1 = '';
+            //                html1 += '<div class="layui-col-sm12 layui-col-md2" style="margin: 6px;width: 180px;">';
+            //                html1 += '<div class="cns" id="bs' + (i + 1) + '" onclick="CheckBtom(this,' + (i + 1) + ')">';
+            //                html1 += '<dl>';
+            //                html1 += '<dd class="tcenter">';
+            //                html1 += '<h1 style="display:none;"><span>鐢熶骇璁㈠崟鍙蜂富ID锛�</span><span id="df' + (i + 1) + '">' + LoadData1[i].鐢熶骇璁㈠崟涓诲唴鐮� + '</span></h1>';
+            //                html1 += '<h1 style="display:none;"><span>鐢熶骇璁㈠崟瀛怚D锛�</span><span id="ds' + (i + 1) + '">' + LoadData1[i].鐢熶骇璁㈠崟瀛愬唴鐮� + '</span></h1>';
+            //                html1 += '<h1 style="display:none;"><span>浜х嚎ID锛�</span><span id="cs' + (i + 1) + '">' + LoadData1[i].HSourceID + '</span></h1>';
+            //                html1 += '<h1 style="display:none;"><span>璁惧ID锛�</span><span id="sb' + (i + 1) + '">' + LoadData1[i].璁惧id + '</span></h1>';
+            //
+            //                html1 += '<p><span>璁惧缂栫爜锛�</span><span id="sbbm' + (i + 1) + '">' + LoadData1[i].璁惧缂栫爜 + '</span></p>';
+            //                html1 += '<p><span>璁惧鍚嶇О锛�</span><span id="sbmc' + (i + 1) + '">' + LoadData1[i].璁惧鍚嶇О + '</span></p>';
+            //                html1 += '<p><span>浜х嚎锛�</span><span id="cxmc' + (i + 1) + '">' + LoadData1[i].浜х嚎 + '</span></p>';
+            //                html1 += '<p><span>褰撳墠璁㈠崟锛�</span><span id="gd' + (i + 1) + '">' + LoadData1[i].鐢熶骇璁㈠崟 + '</span></p>';
+            //                html1 += '<p><span>璁㈠崟鏁伴噺锛�</span><span id="ddqty' + (i + 1) + '">' + LoadData1[i].浠诲姟鍗曟暟閲� + '</span></p>';
+            //                html1 += '<p><span>瀹屾垚鏁伴噺锛�</span><span id="wcqty' + (i + 1) + '">' + LoadData1[i].娴佽浆鍗℃暟閲� + '</span></p>';
+            //                switch (LoadData1[i].璁惧鐘舵��) {
+            //                    case "绌洪棽":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border6"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "寮�鏈�":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border4"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "鍋滄満":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border3"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "鐢熶骇":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border2"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "缁翠慨涓�":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border5"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "鏁呴殰":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border1"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "缁翠慨瀹屾垚":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border7"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    default:
+            //                }
+            //                html1 += '</dd>';
+            //                html1 += '</dl>';
+            //                html1 += '</div>';
+            //                html1 += '</div>';
+            //                $("#btomleft").append(html1);
+            //            }
+            //        }
+            //    },
+            //    error: function (err) {
+            //        layer.alert(err.Message, { time: 1 * 2000, icon: 5 });
+            //        return false;
+            //    }
+            //});
+        }
+
+
+        //#region 缁樺埗鍥捐〃
+        function drawCharts() {
+            var $container = $("#chartContainer");
+            $container.empty();
+
+            var data = pieData
+            console.log(pieChart)
+            var data1 = timelineData
+
+            for (var i = 0; i < data.length; i++) {
+                var hmainid = data[i].hmainid;
+                var equipName = data[i].璁惧鍚嶇О;
+                var dateStr = data[i].鎵�灞炴棩鏈�.split('T')[0];
+
+                // 鏃堕棿瀛楁
+                var runTime = data[i].杩愯鏃堕棿 || 0;         // 杩愯
+                var stopTime = data[i].鍋滄満鏃堕棿 || 0;         // 鍋滄満
+                var alarmTime = data[i].鍛婅鏃堕棿 || 0;      // 鍛婅
+                var offTime = data[i].鍏虫満鏃堕棿 || 0;        // 鍏虫満
+                var total = runTime + stopTime + alarmTime + offTime;
+
+                // ==============================================
+                // 1. 鍒涘缓姣忎釜璁惧鐨勫浘琛ㄥ澹筹紙宸﹀彸甯冨眬锛氶ゼ鍥� + 鏃跺簭鍥撅級
+                // ==============================================
+                var itemHtml = `
+            <div style="width:100%; height:200px; margin-bottom:20px; border:1px solid #eee; padding:15px; border-radius:8px;">
+                <div style="display: inline-block; height:20%; display:flex; gap:20px;">
+                    <div style="width:40%;">${dateStr} ${equipName}</div>
+                    <div style="width:60%; display: flex; justify-content: right; align-items: center; gap: 8px;">
+                        <div style="width: 18px; height: 18px; background-color: #73cc3f; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">杩愯(${runTime}H)</div>
+                        <div style="width: 18px; height: 18px; background-color: #f2a439; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">鍋滄満(${stopTime}H)</div>
+                        <div style="width: 18px; height: 18px; background-color: #ff796a; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">鍛婅(${alarmTime}H)</div>
+                        <div style="width: 18px; height: 18px; background-color: #9b9a9b; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">鍏虫満(${offTime}H)</div>
+                    </div>
+                </div> 
+                <div style="display: inline-block; height:80%; display:flex; gap:20px;">
+                    <div id="chart_pie_${hmainid}_${i}" style="width:25%; height:100%;"></div>
+                    <div id="chart_time_${hmainid}_${i}" style="width:70%; height:100%;"></div>
+                </div>
+            </div>`;
+                $container.append(itemHtml);
+
+                // ==============================================
+                // 2. 宸︿晶鐜舰楗煎浘锛堣繍琛�/鍋滄満/鍛婅/鍏虫満 鍗犳瘮锛�
+                // ==============================================
+                var pieChart = echarts.init(document.getElementById(`chart_pie_${hmainid}_${i}`));
+                pieChart.setOption({
+                    // title: { text: `${dateStr} ${equipName}`, left: 'center', textStyle: { fontSize: 16 } },
+                    tooltip: {
+                        trigger: 'item', formatter: '{b}: {c}H ({d}%)', textStyle: {
+                            lineHeight: 22  // 鏂囧瓧闂磋窛鏇村ぇ
+                        },
+                    },
+                    legend: {
+                        orient: 'vertical', right: '2%', top: 'middle', textStyle: { fontSize: 13 }
+                        , formatter: function (name, value) {
+                            var getRate = function () {
+                                if (name == '杩愯') {
+                                    return (runTime / total * 100.0).toFixed(2)
+                                }
+                                if (name == '鍋滄満') {
+                                    return (stopTime / total * 100.0).toFixed(2)
+                                }
+                                if (name == '鍛婅') {
+                                    return (alarmTime / total * 100.0).toFixed(2)
+                                }
+                                if (name == '鍏虫満') {
+                                    return (offTime / total * 100.0).toFixed(2)
+                                }
+                            }()
+                            return name + '鐜�(' + getRate
+                                + '%)'
+                        }
+                    },
+                    series: [{
+                        type: 'pie',
+                        radius: ['42%', '70%'],
+                        center: ['25%', '50%'],
+                        itemStyle: { borderRadius: 4, borderColor: '#fff', borderWidth: 2 },
+                        label: { show: false },
+                        data: [
+                            { value: runTime, name: '杩愯', itemStyle: { color: '#73cc3f' } },
+                            { value: stopTime, name: '鍋滄満', itemStyle: { color: '#f2a439' } },
+                            { value: alarmTime, name: '鍛婅', itemStyle: { color: '#ff796a' } },
+                            { value: offTime, name: '鍏虫満', itemStyle: { color: '#9b9a9b' } }
+                        ]
+                    }]
+                });
+
+                // ==============================================
+                // 3. 鍙充晶 24灏忔椂 璁惧杩愯鏃跺簭鍥�
+                // ==============================================
+                var timeChart = echarts.init(document.getElementById(`chart_time_${hmainid}_${i}`));
+                // 浣犵殑鍘熷鏁版嵁
+                var data1Instance = data1["2026-04-16"]
+
+                var startTime = dayjs("2026-04-16 00:00:00").valueOf();
+                var endTime = dayjs("2026-04-16 23:59:59").valueOf();
+                var categories = [data1Instance[0]["鐢熶骇璧勬簮"]];
+                var types = [
+                    { name: '姝e父杩愯', color: '#73cc3f' },
+                    { name: '绂荤嚎', color: '#9b9a9b' },
+                    { name: '寰呮満', color: '#f2a439' },
+                ];
+
+                var getColor = function (name) {
+                    for (var i = 0; i < types.length; i++) {
+                        if (name == types[i].name) {
+                            return types[i].color
+                        }
+                    }
+                }
+
+                chartDataTimeline = []
+                for (var cursor = 0; cursor < data1Instance.length; cursor++) {
+                    chartDataTimeline.push({
+                        "name": data1Instance[cursor]["HResult"],
+                        "value": [
+                            0,
+                            dayjs(data1Instance[cursor]["鏃堕棿"]).valueOf(),
+                            dayjs(data1Instance[cursor]["鏃堕棿"]).add(5, 'm').valueOf(),
+                            300000
+                        ],
+                        "itemStyle": {
+                            "normal": {
+                                "color": getColor(data1Instance[cursor]["HResult"])
+                            }
+                        }
+                    })
+                }
+                timeChart.setOption({
+                    tooltip: {
+                        formatter: function (params) {
+                            return params.marker + params.name;
+                        }
+                    },
+                    grid: {
+                        top: 0,
+                        bottom: 0,
+                        left: 20,  // 缁橸杞存枃瀛楃暀涓�鐐逛綅缃�
+                        right: 20,
+                        containLabel: true
+                    },
+                    xAxis: {
+                        type: 'time',
+                        min: startTime,  //  寮�濮嬫椂闂存埑
+                        max: endTime,  //  缁撴潫鏃堕棿鎴�
+                        minInterval: 7200000, // 闂撮殧涓ゅ皬鏃�
+                        scale: true,
+                        axisLabel: {
+                            formatter: function (val) {
+                                return echarts.format.formatTime('hh:mm', val);
+                            }
+                        },
+                        axisLine: {
+                            show: false   //  闅愯棌 x 杞磋酱绾�
+                        }
+                    },
+                    yAxis: {
+                        data: categories,
+                        axisLine: {
+                            show: false   //  闅愯棌 y 杞磋酱绾�
+                        },
+                        name: "",
+                        axisLabel: { show: false }, //  闅愯棌Y杞存爣绛�
+                    },
+                    series: [
+                        {
+                            type: 'custom',
+                            renderItem: renderItem,
+                            itemStyle: {
+                                opacity: 0.8
+                            },
+                            encode: {
+                                x: [1, 2],
+                                y: 0
+                            },
+                            data: chartDataTimeline
+                        }
+                    ]
+                })
+            }
+        }
+        //#endregion
+
+        // 鏍戠姸鍥炬煡璇�
+        function get_Display_Tree() {
+            var sWhere = " AND HUSEORGID=" + sessionStorage["OrganizationID"];
+            var ajaxLoad = layer.load();
+            $.ajax({
+                url: GetWEBURL() + '/DAQ_EquipRunningSlice/GetHEquipTreeList_DAQ',
+                data: { "sWhere": "" },
+                type: "GET",
+                success: function (data1) {
+                    if (data1.count == 1) {
+                        layer.close(ajaxLoad);
+                        var data = data1.data;
+                        MenuMain(data);
+                    } else {
+                        layer.close(ajaxLoad);
+                        layer.alert(data1.code + data1.Message, { icon: 5 });
+                    }
+                }, error: function () {
+                    layer.close(ajaxLoad);
+                    layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+                }
+            });
+        }
+
+        //閬嶅巻鐢熸垚涓昏彍鍗�
+        function MenuMain(data) {
+            var liStr = '[';
+            //閬嶅巻鐢熸垚涓昏彍鍗�
+            HDeptID = data[0].id
+            for (var i = 0; i < data.length; i++) {
+                // 鍒ゆ柇鏄惁瀛樺湪瀛愯彍鍗�
+                if (data[i].children != null && data[i].children.length > 0) {
+                    liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '","spread":true, "children":[ ';
+                    // 閬嶅巻鑾峰彇瀛愯彍鍗�
+                    for (var k = 0; k < data[i].children.length; k++) {
+                        liStr += getChildMenu(data[i].children[k], 0, data[i].id);
+                    }
+                    liStr = liStr.substring(0, liStr.length - 1);
+                    liStr += ']},';
+                } else {
+                    liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '"},';
+                }
+            };
+            liStr = liStr.substring(0, liStr.length - 1);
+            liStr += "]";
+            var treeTable = JSON.parse(liStr);
+            tree.render({
+                elem: '#TreeTable' //榛樿鏄偣鍑昏妭鐐瑰彲杩涜鏀剁缉
+                , data: treeTable
+                , click: function (obj) {
+                    //楂樹寒鍙樿壊
+                    $(".layui-tree-set").removeClass('layui-tree-set-active');
+                    obj.elem.addClass('layui-tree-set-active');
+
+                    var data = obj.data;  //鑾峰彇褰撳墠鐐瑰嚮鐨勮妭鐐规暟鎹�
+                    HDeptID = 0;
+                    HEquipID = 0;
+                    if (data.HPID) {
+                        // 鏈塒ID 鍒ゅ畾涓哄瓙鑺傜偣
+                        HDeptID = data.HPID || 0
+                        HEquipID = data.id
+                    } else {
+                        HDeptID = data.id || 0
+                    }
+
+
+
+                    Check();
+                }
+            });
+        }
+
+        // 閫掑綊鐢熸垚瀛愯彍鍗�
+        function getChildMenu(subMenu, num, parentID) {
+            num++;
+            var subStr = '';
+            if (subMenu.children != null && subMenu.children.length > 0) {
+                subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '", "HPID": "' + parentID + '","children":[';
+                for (var j = 0; j < subMenu.children.length; j++) {
+                    subStr += getChildMenu(subMenu.children[j], num, parentID);
+                    if (j + 1 == subMenu.children.length) {
+                        subStr = subStr.substring(0, subStr.length - 1);
+                    }
+                }
+                subStr += ']},';
+            } else {
+                subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '","HPID": "' + parentID + '"},';
+            }
+            return subStr;
+        }
+
+
+        $('#modeBtnGroup').on('click', 'button', function (e) {
+            console.log("鐐瑰嚮鎴愬姛锛乪vent =", e);  // event 浜嬩欢鎷垮埌
+
+            var $btn = $(this);
+            var $btnGroup = $btn.closest('div');
+            $btnGroup.find('button').addClass("layui-btn-primary").addClass("layui-border")
+            $btn.removeClass("layui-btn-primary").removeClass("layui-border")
+            var mode = $btn.data('mode');  // day / history
+
+
+            //閫氳繃mode鍒ゆ柇鎵ц鍝釜鏌ヨ锛屽鏋滄槸day锛屽垯鏌ヨ鐨勬椂鍊欙紝寮�濮嬫棩鏈熷拰缁撴潫鏃ユ湡閮芥槸褰撳ぉ(涓庢棩鏈熻寖鍥存棤鍏�),濡傛灉鏄痟istory锛屽垯鎸夌収鏃ユ湡鑼冨洿鍜屽巻鍙叉暟鎹繘琛岀瓫閫�
+        });
+
+    });
+    //#endregion
+
+    //宸ュ崟鍒楄〃閫変腑
+    function CheckBtom(obj, i) {
+        workcode = $("#gd" + i + "").html(); //閫氳繃鏍峰紡ID鑾峰彇html鍐呭(宸ュ崟鍙�)
+        HICMOInterID = $("#df" + i + "").html();     //鐢熶骇璁㈠崟涓诲唴鐮�
+        HICMOEntryID = $("#ds" + i + "").html();     //鐢熶骇璁㈠崟瀛愬唴鐮�
+        HEquipID = $("#sb" + i + "").html();     //璁惧id
+        HEquipNumber = $("#sbbm" + i + "").html();     //璁惧缂栫爜
+        HEquipName = $("#sbmc" + i + "").html();     //璁惧鍚嶇О
+        HSourceID = $("#cs" + i + "").html();     //浜х嚎id
+
+        $('.cns').removeClass('check1');  //鍒犻櫎涓嶅悓鐖剁骇clss鏍峰紡鐩稿悓鐨勬墍鏈夊厓绱�
+        $("#bs" + i + "").addClass('check1'); // 娣诲姞褰撳墠鍏冪礌鐨勬牱寮�
+        if (HEquipID != "" && HEquipID != null) {
+            wktag = 1;
+        }
+        sWhere = {
+            HDeptID: HDeptID
+            , HSourceID: HSourceID
+        }
+
+        /* 鐐瑰嚮 璁惧 寮�鍚澶囪鎯呭脊绐楋紝璁惧鐘舵�佽鎯呴〉闈� 
+        *璇︽儏椤甸潰锛氭棩鏈熻繃婊ゃ�佽澶囪繍琛屽垎鏋愩�佽鎶ワ紙鍙互鍏堝彇鍊间负鏈�杩戠殑瀹夌伅绠$悊锛夊彇鍊肩敤 璁惧杩愯鐘舵�佽〃 Sb_EquipRunningStatus(璁惧褰撳墠鐘舵�佹晥鐜囧垎鏋�) 
+        */
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '璁惧璇︽儏',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: './DAQ_EvidenceEquipmentCockpitDetail.html?HEquipID=' + HEquipID,
+            end: function () {
+
+            },
+            success: function (dom, index) {
+
+            },
+        });
+        // FourReport(JSON.stringify(sWhere));
+    }
+
+    //鏌ヨ 閮ㄩ棬+浜х嚎 4涓浘琛� 璧嬪��
+    function FourReport(sWhere) {
+        $.ajax({
+            url: GetWEBURL() + '/Sc_HEquipStateDistribution/Get_EquipStateDistribution_FourReport',
+            type: "GET",
+            data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "OrganizationID": sessionStorage["OrganizationID"] },
+            dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+            success: function (data) {
+                var chartData = data.data.h_p_Sc_FourStateDistributionReport;
+                var chartData1 = data.data.h_p_Sc_FourStateDistributionReport1;
+                var chartData2 = data.data.h_p_Sc_FourStateDistributionReport2;
+                var chartData3 = data.data.h_p_Sc_FourStateDistributionReport3;
+                var mychart11 = echarts.init(document.getElementById('mychart11'));
+                var mychart22 = echarts.init(document.getElementById('mychart22'));
+                var mychart3 = echarts.init(document.getElementById('mychart3'));
+                var mychart4 = echarts.init(document.getElementById('mychart4'));
+
+                get_Histogram1(mychart11, chartData);
+                get_LineChart(mychart22, chartData1);
+                get_Statistics(mychart3, chartData2);
+                get_Histogram4(mychart4, chartData3);
+
+            },
+            error: function (err) {
+                layer.alert(err.Message, { time: 1 * 2000, icon: 5 });
+                return false;
+            }
+        });
+    }
+
+    //鏌辩姸鍥�
+    function get_Histogram1(mychart11, chartData) {
+        // 榛樿鐨刼ption缁撴瀯
+        var option = {
+            title: {
+                text: '杩戜竷澶╀骇鑳�', // 榛樿鏍囬涓虹┖
+                left: 'center',
+                top: '10%', // 璋冩暣鏍囬浣嶇疆锛屾斁鍒版渶涓婇潰
+                textStyle: {
+                    fontSize: 18,
+                    color: '#ff0000'
+                }
+            },
+            grid: {
+                top: '25%', // 璋冩暣grid鐨則op鍊硷紝缁欐爣棰樼暀鍑虹┖闂�
+                bottom: '20%',
+                left: '10%',
+                right: '10%'
+            },
+            xAxis: {
+                type: 'category',
+                data: [] // 榛樿x杞存暟鎹负绌�
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [], // 榛樿series鏁版嵁涓虹┖
+                    type: 'bar'
+                }
+            ]
+        };
+
+        // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
+        if (chartData && chartData.length > 0) {
+            option.title.text = '杩戜竷澶╀骇鑳�'; // 姝e父鏁版嵁鏃舵病鏈夋爣棰�
+            option.xAxis.data = chartData.map(item => item.鏃ユ湡); // 璁剧疆x杞存暟鎹�
+            option.series[0].data = chartData.map(item => item['鐢熶骇鎬绘暟']); // 璁剧疆y杞存暟鎹�
+
+            option.series[0].label = {
+                normal: {
+                    show: true,
+                    position: 'top',
+                    formatter: function (params) {
+                        return echarts.format.addCommas(params.value);
+                    }
+                }
+            };
+
+            option.series[0].itemStyle = {
+                normal: {
+                    color: '#15b1fa',
+                    label: {
+                        show: true // 鍦ㄦ煴鐘跺浘涓婃樉绀烘暟鎹�
+                    }
+                }
+            };
+        } else {
+            // 娌℃湁鏁版嵁鏃讹紝鏄剧ず"鏆傛棤鏁版嵁"鎻愮ず
+            option.title.text = '鏆傛棤鏁版嵁';
+        }
+
+        // 鏇存柊鍥捐〃
+        mychart11.setOption(option);
+    }
+
+    //鏌辩姸鍥�2
+    function get_LineChart(mychart22, chartData1) {
+        // 榛樿鐨刼ption缁撴瀯
+        var option = {
+            title: {
+                text: '缁翠慨', // 榛樿鏍囬涓虹┖
+                left: 'center',
+                top: '10%', // 璋冩暣鏍囬浣嶇疆锛屾斁鍒版渶涓婇潰
+                textStyle: {
+                    fontSize: 18,
+                    color: '#ff0000'
+                }
+            },
+            axisLabel: {
+                show: true,
+                interval: 0,
+                color: '#15b1fa',
+                formatter: function (value) {
+                    var ret = "";//鎷兼帴鍔燶n杩斿洖鐨勭被鐩」
+                    var maxLength = 1;//姣忛」鏄剧ず鏂囧瓧涓暟
+                    var valLength = value.length;//X杞寸被鐩」鐨勬枃瀛椾釜鏁�
+                    var rowN = Math.ceil(valLength / maxLength); //绫荤洰椤归渶瑕佹崲琛岀殑琛屾暟
+                    if (rowN > 1)//濡傛灉绫荤洰椤圭殑鏂囧瓧澶т簬3,
+                    {
+                        for (var i = 0; i < rowN; i++) {
+                            var temp = "";//姣忔鎴彇鐨勫瓧绗︿覆
+                            var start = i * maxLength;//寮�濮嬫埅鍙栫殑浣嶇疆
+                            var end = start + maxLength;//缁撴潫鎴彇鐨勪綅缃�
+                            //杩欓噷涔熷彲浠ュ姞涓�涓槸鍚︽槸鏈�鍚庝竴琛岀殑鍒ゆ柇锛屼絾鏄笉鍔犱篃娌℃湁褰卞搷锛岄偅灏变笉鍔犲惂
+                            temp = value.substring(start, end) + "\n";
+                            ret += temp; //鍑�熸渶缁堢殑瀛楃涓�
+                        }
+                        return ret;
+                    }
+                    else {
+                        return value;
+                    }
+                }
+            },
+            grid: {
+                top: '25%', // 璋冩暣grid鐨則op鍊硷紝缁欐爣棰樼暀鍑虹┖闂�
+                bottom: '20%',
+                left: '10%',
+                right: '10%'
+            },
+            xAxis: {
+                type: 'category',
+                data: [] // 榛樿x杞存暟鎹负绌�
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [], // 榛樿series鏁版嵁涓虹┖
+                    type: 'bar'
+                }
+            ]
+        };
+
+
+
+        // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
+        if (chartData1 && chartData1.length > 0) {
+            option.title.text = '涓嶈壇鍘熷洜'; // 姝e父鏁版嵁鏃舵病鏈夋爣棰�
+            option.xAxis.data = chartData1.map(item => item.涓嶈壇鍘熷洜); // 璁剧疆x杞存暟鎹�
+            option.series[0].data = chartData1.map(item => item['鏁伴噺']); // 璁剧疆y杞存暟鎹�
+
+            option.series[0].label = {
+                normal: {
+                    show: true,
+                    position: 'top',
+                    formatter: function (params) {
+                        return echarts.format.addCommas(params.value);
+                    }
+                }
+            };
+
+            option.series[0].itemStyle = {
+                normal: {
+                    color: '#15b1fa',
+                    label: {
+                        show: true // 鍦ㄦ煴鐘跺浘涓婃樉绀烘暟鎹�
+                    }
+                }
+            };
+        } else {
+            // 娌℃湁鏁版嵁鏃讹紝鏄剧ず"鏆傛棤鏁版嵁"鎻愮ず
+            option.title.text = '鏆傛棤鏁版嵁';
+        }
+
+        // 鏇存柊鍥捐〃
+        mychart22.setOption(option);
+    }
+
+    //楗煎浘
+    function get_Statistics(mychart3, chartData2) {
+        // 濡傛灉 chartData2 涓虹┖锛屾彁渚涗竴涓�滄棤鏁版嵁鈥濇彁绀�
+        if (chartData2.length === 0) {
+            mychart3.setOption({
+                title: {
+                    text: '鏆傛棤鏁版嵁',
+                    left: 'center',
+                    top: '10%',
+                    textStyle: {
+                        color: 'red', // 璁剧疆鏍囬棰滆壊涓虹孩鑹�
+                        fontSize: 18,
+                        fontWeight: 'bold'
+                    }
+                },
+                series: [],  // 娓呯┖鏁版嵁
+                graphic: []  // 娓呯┖鍥惧舰涓殑鏂囨湰
+            });
+            return;
+        }
+
+        // 鐘舵�侀鑹叉槧灏�
+        const statusColorMap = {
+            '寮�鏈�': '#28a745',    // 缁胯壊
+            '鏁呴殰': '#ff63a5',    // 妗冪孩鑹�
+            '鍋滄満': '#f0ad4e',    // 榛勮壊
+            '鏈煡': '#6c757d'     // 鐏拌壊
+        };
+
+        // 璁$畻寮�鏈虹巼
+        const totalDevices = chartData2.reduce((sum, item) => sum + item.鏁伴噺, 0);
+        const onlineDevices = chartData2.find(item => item.鐘舵�� === '寮�鏈�')?.鏁伴噺 || 0;
+        const onlineRate = totalDevices === 0 ? 0 : (onlineDevices / totalDevices * 100).toFixed(2);
+
+        // 鍔ㄦ�佺敓鎴愰ゼ鍥炬暟鎹紝骞舵牴鎹姸鎬佽缃鑹�
+        var data = chartData2.map(function (item) {
+            // 鑾峰彇褰撳墠鐘舵�佺殑棰滆壊锛岄粯璁や负鐏拌壊
+            var color = statusColorMap[item.鐘舵�乚 || statusColorMap['鏈煡'];
+
+            return {
+                value: item.鏁伴噺,
+                name: item.鐘舵��,
+                itemStyle: {
+                    color: color  // 涓烘瘡涓姸鎬佽缃搴旂殑棰滆壊
+                }
+            };
+        });
+
+        // 鍥捐〃鐨勯厤缃」
+        var option = {
+            title: {
+                text: '璁惧鐘舵�佸垎鏋愬姣�',
+                left: 'center',
+                top: '10%',  // 灏嗘爣棰樻斁缃埌椤堕儴
+                textStyle: {
+                    color: 'red',  // 璁剧疆鏍囬瀛椾綋棰滆壊涓虹孩鑹�
+                    fontSize: 18,
+                    fontWeight: 'bold'
+                }
+            },
+            tooltip: {
+                trigger: 'item'
+            },
+            legend: {
+                orient: 'vertical',
+                left: 'left'
+            },
+            series: [
+                {
+                    name: '璁惧鐘舵��',
+                    type: 'pie',
+                    radius: '50%',
+                    data: data,  // 浣跨敤鍔ㄦ�佺敓鎴愮殑鏁版嵁
+                    emphasis: {
+                        itemStyle: {
+                            shadowBlur: 10,
+                            shadowOffsetX: 0,
+                            shadowColor: 'rgba(0, 0, 0, 0.5)'
+                        }
+                    }
+                }
+            ],
+            graphic: [{
+                type: 'text',
+                left: 'center',
+                top: '85%',  // 璋冩暣鏂囨湰浣嶇疆锛岃鍏剁◢寰洿寰�涓�
+                style: {
+                    text: `寮�鏈虹巼: ${onlineRate}%`,  // 鏄剧ず寮�鏈虹巼
+                    font: '16px Arial',
+                    fill: '#00aaff'  // 浣跨敤娴呰摑鑹叉樉绀哄紑鏈虹巼
+                }
+            }]
+        };
+
+        // 璁剧疆鍥捐〃鐨勯厤缃」
+        mychart3.setOption(option);
+    }
+
+    //鏌辩姸鍥�4
+    function get_Histogram4(mychart4, chartData3) {
+        // 榛樿鐨刼ption缁撴瀯
+        var option = {
+            title: {
+                text: '缁翠慨', // 榛樿鏍囬涓虹┖
+                left: 'center',
+                top: '10%', // 璋冩暣鏍囬浣嶇疆锛屾斁鍒版渶涓婇潰
+                textStyle: {
+                    fontSize: 18,
+                    color: '#ff0000'
+                }
+            },
+            axisLabel: {
+                show: true,
+                interval: 0,
+                color: '#15b1fa',
+                formatter: function (value) {
+                    var ret = "";//鎷兼帴鍔燶n杩斿洖鐨勭被鐩」
+                    var maxLength = 1;//姣忛」鏄剧ず鏂囧瓧涓暟
+                    var valLength = value.length;//X杞寸被鐩」鐨勬枃瀛椾釜鏁�
+                    var rowN = Math.ceil(valLength / maxLength); //绫荤洰椤归渶瑕佹崲琛岀殑琛屾暟
+                    if (rowN > 1)//濡傛灉绫荤洰椤圭殑鏂囧瓧澶т簬3,
+                    {
+                        for (var i = 0; i < rowN; i++) {
+                            var temp = "";//姣忔鎴彇鐨勫瓧绗︿覆
+                            var start = i * maxLength;//寮�濮嬫埅鍙栫殑浣嶇疆
+                            var end = start + maxLength;//缁撴潫鎴彇鐨勪綅缃�
+                            //杩欓噷涔熷彲浠ュ姞涓�涓槸鍚︽槸鏈�鍚庝竴琛岀殑鍒ゆ柇锛屼絾鏄笉鍔犱篃娌℃湁褰卞搷锛岄偅灏变笉鍔犲惂
+                            temp = value.substring(start, end) + "\n";
+                            ret += temp; //鍑�熸渶缁堢殑瀛楃涓�
+                        }
+                        return ret;
+                    }
+                    else {
+                        return value;
+                    }
+                }
+            },
+            grid: {
+                top: '25%', // 璋冩暣grid鐨則op鍊硷紝缁欐爣棰樼暀鍑虹┖闂�
+                bottom: '20%',
+                left: '10%',
+                right: '10%'
+            },
+            xAxis: {
+                type: 'category',
+                data: [] // 榛樿x杞存暟鎹负绌�
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [], // 榛樿series鏁版嵁涓虹┖
+                    type: 'bar'
+                }
+            ]
+        };
+
+        // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
+        if (chartData3 && chartData3.length > 0) {
+            option.title.text = '缁翠慨'; // 姝e父鏁版嵁鏃舵病鏈夋爣棰�
+            option.xAxis.data = chartData3.map(item => item.缁翠慨椤圭洰); // 璁剧疆x杞存暟鎹�
+            option.series[0].data = chartData3.map(item => item['缁翠慨娆℃暟']); // 璁剧疆y杞存暟鎹�
+
+            option.series[0].label = {
+                normal: {
+                    show: true,
+                    position: 'top',
+                    formatter: function (params) {
+                        return echarts.format.addCommas(params.value);
+                    }
+                }
+            };
+
+            option.series[0].itemStyle = {
+                normal: {
+                    color: '#15b1fa',
+                    label: {
+                        show: true // 鍦ㄦ煴鐘跺浘涓婃樉绀烘暟鎹�
+                    }
+                }
+            };
+        } else {
+            // 娌℃湁鏁版嵁鏃讹紝鏄剧ず"鏆傛棤鏁版嵁"鎻愮ず
+            option.title.text = '鏆傛棤鏁版嵁';
+        }
+
+        // 鏇存柊鍥捐〃
+        mychart4.setOption(option);
+    }
+
+
+
+    //#region   鎿嶄綔鍙版寜閽偣鍑讳簨浠�
+
+    //寮�鏈烘寜閽偣鍑讳簨浠�
+    function PowerOn(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板寮�鏈哄崟',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/璁惧寮�鏈哄崟/Sb_EquipBeginBill.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //鍋滄満鎸夐挳鐐瑰嚮浜嬩欢
+    function PowerOff(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板鍋滄満鍗�',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/璁惧鍋滄満鍗�/Sb_EquipStopBill.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //鐐规璁板綍鎸夐挳鐐瑰嚮浜嬩欢
+    function DotCheck(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧鏈堢偣妫�璁板綍',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../杞﹂棿绠$悊/鍚姩鐐规鍗�/Sc_WorkDotCheckBillList_Day.html?OperationType=璁惧&linterid=' + HEquipID + '',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID,
+                    "HEquipType": "璁惧"
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+
+            },
+        });
+    }
+
+    //鏁呴殰鐧昏鎸夐挳鐐瑰嚮浜嬩欢
+    function FaultRegistration(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板鏁呴殰鐧昏鍗�',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/Sb_Add_EqpConkBookBillList.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //缁翠慨璁板綍鎸夐挳鐐瑰嚮浜嬩欢
+    function Maintenance(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板缁翠慨璁板綍鍗�',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/Sb_Add_EqpMaintenanceBillList.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //灞ュ巻鎸夐挳鐐瑰嚮浜嬩欢
+    function Resume(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧灞ュ巻',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/璁惧鎶ヨ〃/Sb_EquipResumeCheckQuery.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID,
+                    "HEquipNumber": HEquipNumber,
+                    "HEquipName": HEquipName
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //宸ヨ壓鎸夐挳鐐瑰嚮浜嬩欢
+    function Process(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧宸ヨ壓鍙傛暟',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../鐢熶骇绠$悊/璁㈠崟鐘舵�佸垎甯�/Sc_EquipmentProcessList.html?OperationType=4&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID,
+                    "HICMOInterID": HICMOInterID,
+                    "HICMOEntryID": HICMOEntryID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+
+            },
+        });
+    }
+
+    //鐘舵�佹寜閽偣鍑讳簨浠�
+    function HStatus(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧OEE',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../鐢熶骇绠$悊/璁㈠崟鐘舵�佸垎甯�/Sc_OEEStatusReport.html?OperationType=4&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipNumber": HEquipNumber
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+
+            },
+        });
+    }
+
+    function renderItem(params, api) {
+        var categoryIndex = api.value(0);
+        var start = api.coord([api.value(1), categoryIndex]);
+        var end = api.coord([api.value(2), categoryIndex]);
+        var height = api.size([0, 1])[1] * 0.6;
+        var rectShape = echarts.graphic.clipRectByRect(
+            {
+                x: start[0],
+                y: start[1] - height / 2,
+                width: end[0] - start[0],
+                height: height
+            },
+            {
+                x: params.coordSys.x,
+                y: params.coordSys.y,
+                width: params.coordSys.width,
+                height: params.coordSys.height
+            }
+        );
+        return (
+            rectShape && {
+                type: 'rect',
+                transition: ['shape'],
+                shape: rectShape,
+                style: api.style()
+            }
+        );
+    }
+    //#endregion
+</script>
+
+</html>
\ No newline at end of file
diff --git "a/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice.html" "b/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice.html"
index 2981279..8c1cb4a 100644
--- "a/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice.html"
+++ "b/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EquipRunningSlice.html"
@@ -12,12 +12,12 @@
     <script src="../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
     <script src="../../layuiadmin/layui/layui1.js"></script>
     <script src="../../layuiadmin/echarts.min.js"></script>
+    <script src="../../layuiadmin/dayjs.min.js"></script>
     <link href="../../layuiadmin/layui/css/ReportPlatform.css" rel="stylesheet" />
     <script src="../../layuiadmin/Scripts/webConfig.js"></script>
-    <script src="../../layuiadmin/zgqCustom/zgqCustom.js"></script>
     <style>
         /*鏍戠姸鍥剧偣鍑婚珮浜彉鑹�*/
-        .layui-tree-set-active > .layui-tree-entry .layui-tree-main {
+        .layui-tree-set-active>.layui-tree-entry .layui-tree-main {
             background: #aef0f7;
         }
 
@@ -36,10 +36,10 @@
             /*鎵�鏈夊睘鎬у彉鍖栧湪0.6绉掑唴鎵ц鍔ㄧ敾*/
         }
 
-            .bottomright:hover {
-                transform: scale(1.3);
-                /*榧犳爣鏀句笂涔嬪悗鍏冪礌鍙樻垚1.4鍊嶅ぇ灏�*/
-            }
+        .bottomright:hover {
+            transform: scale(1.3);
+            /*榧犳爣鏀句笂涔嬪悗鍏冪礌鍙樻垚1.4鍊嶅ぇ灏�*/
+        }
 
         .imgtitle {
             width: 70%;
@@ -57,14 +57,14 @@
             border-radius: 5px;
         }
 
-            .cns p {
-                font-size: 12px;
-                line-height: 18px;
-                margin: 0 5px;
-                white-space: nowrap;
-                text-overflow: ellipsis;
-                overflow: hidden;
-            }
+        .cns p {
+            font-size: 12px;
+            line-height: 18px;
+            margin: 0 5px;
+            white-space: nowrap;
+            text-overflow: ellipsis;
+            overflow: hidden;
+        }
 
         .check1 {
             cursor: pointer;
@@ -127,42 +127,131 @@
                             <div class="layui-col-xs10 layui-inline" style="border: solid 1.5px #e0d6d64d;">
                                 <div class="layui-form-item" style="display: flex; justify-content: space-around;">
                                     <div class="layui-inline">
-                                        <label class="layui-form-label">鏃ユ湡闂撮殧</label>
-                                        <div class="layui-input-block">
-                                            <select name="HInitTimeCycle" id="HInitTimeCycle"
-                                                    class="ForFilteringSchemes" lay-filter="HInitTimeCycle"
-                                                    style="width:190px;">
-                                            </select>
+                                        <label class="layui-form-label">鏃ユ湡鑼冨洿</label>
+                                        <div class="layui-inline" id="ID-laydate-range">
+                                            <div class="layui-input-inline">
+                                                <input type="text" autocomplete="off" id="ID-laydate-start-date"
+                                                    class="layui-input" placeholder="寮�濮嬫棩鏈�">
+                                            </div>
+                                            <div class="layui-form-mid">-</div>
+                                            <div class="layui-input-inline">
+                                                <input type="text" autocomplete="off" id="ID-laydate-end-date"
+                                                    class="layui-input" placeholder="缁撴潫鏃ユ湡">
+                                            </div>
                                         </div>
                                     </div>
-                                    <div class="layui-inline">
-                                        <label class="layui-form-label">寮�濮嬫棩鏈�</label>
-                                        <div class="layui-input-block">
-                                            <input type="date" class="layui-input ForFilteringSchemes" name="HDate1"
-                                                   id="HDate1">
+
+                                    <div class="layui-btn-group layui-inline" id="modeBtnGroup">
+                                        <button type="button" class="layui-btn" data-mode="day">鍗曟棩鏁版嵁</button>
+                                        <button type="button" class="layui-btn layui-btn-primary layui-border"
+                                            data-mode="history">鍘嗗彶鏁版嵁</button>
+                                    </div>
+                                </div>
+                                <div id="chartContainer" style="height:600px;display:block;overflow-y:auto;">
+                                </div>
+                            </div>
+                            <!-- <div class="layui-col-xs1 layui-inline" style="border: solid 1.5px #e0d6d64d;">
+                                <fieldset style="border: 1px solid #eee; box-shadow: 0 2px 5px 0 rgb(0 0 0 / 10%); height: 585px;">
+                                    <legend style="color: #5FB878">鎿嶄綔鍙�</legend>
+                                    <div class="content4">
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="PowerOn(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-pause imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">寮�鏈�</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="PowerOff(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-logout imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鍋滄満</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="DotCheck(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-list imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鐐规璁板綍</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="FaultRegistration(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-list imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鏁呴殰鐧昏</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="Maintenance(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-form imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">缁翠慨</span>
+                                                </div>
+                                            </div>
+                                        </div>
+
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="Resume(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-table imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">灞ュ巻</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="Process(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-file imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">宸ヨ壓</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="layui-row layui-col-space10">
+                                            <div class="layui-col-sm12 " onclick="HStatus(event,this)">
+                                                <div class="cnt bottomright">
+                                                    <div class="btnM">
+                                                        <span class="layui-icon layui-icon-set imgicon"></span>
+                                                    </div>
+                                                    <span class="imgtitle">鐘舵��</span>
+                                                </div>
+                                            </div>
                                         </div>
                                     </div>
-                                    <div class="layui-inline">
-                                        <label class="layui-form-label">缁撴潫鏃ユ湡</label>
-                                        <div class="layui-input-block">
-                                            <input type="date" class="layui-input ForFilteringSchemes" name="HDate2"
-                                                   id="HDate2" style="width:190px;">
-                                        </div>
-                                    </div>                                  
-                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit=""
-                                            lay-filter="btnSearch" id="btnSearch">
-                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
-                                    </button>
-                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit=""
-                                            lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">
-                                        閫�鍑�
-                                    </button>
-                                </div>
-                                <div id="chartContainer" style="height:800px;display:block;overflow-y:auto;">
-                                </div>
-                            </div>                           
+                                </fieldset>
+                            </div> -->
                         </div>
-                        <div class="layui-row">                           
+                        <div class="layui-row">
+                            <!-- <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-1" id="mychart11"> </div>
+                            </div>
+                            <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-2" id="mychart22"> </div>
+                            </div>
+                            <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-3" id="mychart3"> </div>
+                            </div>
+                            <div class="layui-col-xs3 layui-inline">
+                                <div class="tr1-4" id="mychart4"> </div>
+                            </div> -->
                         </div>
                     </form>
                 </div>
@@ -171,7 +260,15 @@
     </div>
 </body>
 
-<script>   
+<script>
+    var wktag = 0;
+    var HEquipID = 0;//璁惧id
+    var HEquipNumber = "";//璁惧缂栫爜
+    var HEquipName = "";//璁惧鍚嶇О
+    var HSourceID = "";//浜х嚎id
+    var HDeptID = "";
+    var pieData = []; // 楗煎浘鏁版嵁闆嗗悎
+    var timelineData = []; //鏃跺簭鍥炬暟鎹泦鍚� 
     layui.config({
         base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
     }).extend({
@@ -199,25 +296,6 @@
 
         //#region 瑙﹀彂浜嬩欢锛氬寘鎷琭orm.on(){}鏍煎紡鐨勬墍鏈夌偣鍑讳簨浠躲�侀�夋嫨浜嬩欢绛�
 
-        //鏃ユ湡闂撮殧涓嬫媺鍒楄〃鐩戝惉
-        form.on('select(HInitTimeCycle)', function (data) {
-            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
-            //鑻ユ棩鏈熼棿闅斾笉涓� 浠绘剰闂撮殧锛屽垯绂佺敤寮�濮嬫棩鏈熶笌缁撴潫鏃ユ湡鐨勯�夋嫨
-            if (HInitTimeCycle != -1) {
-                $('#HDate1').prop('disabled', true);
-                $('#HDate2').prop('disabled', true);
-
-                $("#HDate1").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
-                $("#HDate2").val(Format(new Date(), "yyyy-MM-dd"));
-
-                //鎵ц鏌ヨ鏂规硶
-                Check();
-            } else {
-                $('#HDate1').prop('disabled', false);
-                $('#HDate2').prop('disabled', false);
-            }
-        });
-
 
         //#endregion
 
@@ -226,141 +304,349 @@
 
         //#region 鍒濆鍖栫晫闈�
         function set_ClearBill() {
-           
-            //鍒濆鍖栨棩鏈熼棿闅斻�佸紑濮嬫棩鏈熴�佺粨鏉熸棩鏈�
-            setSelect_HInitTimeCycle();
-            //鑻ユ棩鏈熼棿闅斾笉涓� 浠绘剰闂撮殧锛屽垯绂佺敤寮�濮嬫棩鏈熶笌缁撴潫鏃ユ湡鐨勯�夋嫨
-            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
-            if (HInitTimeCycle != -1) {
-                $('#HDate1').prop('disabled', true);
-                $('#HDate2').prop('disabled', true);
-            } else {
-                $('#HDate1').prop('disabled', false);
-                $('#HDate2').prop('disabled', false);
-            }
-            $("#HDate1").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
-            $("#HDate2").val(Format(new Date(), "yyyy-MM-dd"));
+            Init_dateRange()
+
+            // var mychart11 = echarts.init(document.getElementById('mychart11'));
+            // var mychart22 = echarts.init(document.getElementById('mychart22'));
+            // var mychart3 = echarts.init(document.getElementById('mychart3'));
+            // var mychart4 = echarts.init(document.getElementById('mychart4'));
+            // get_Histogram1(mychart11, '');//鏌辩姸鍥�1
+            // get_LineChart(mychart22, '');//鎶樼嚎
+            // get_Statistics(mychart3, '');//楗煎浘
+            // get_Histogram4(mychart4, '');//鏌辩姸鍥�4
 
             //鏌ヨ
             get_Display_Tree();
         }
         //#endregion
 
+        //#region 鍒濆鍖栨棩鏈熼�夋嫨鍣�
+        function Init_dateRange() {
+            $("#ID-laydate-start-date").val(util.toDateString(new Date(), 'yyyy-MM-dd'))
+            $("#ID-laydate-end-date").val(util.toDateString(new Date(), 'yyyy-MM-dd'))
 
-        //#region 鍒濆鏃ユ湡闂撮殧 涓嬫媺鍒楄〃
-        function setSelect_HInitTimeCycle() {
-            var valueList = [0, 1, 2, 3, 4, 5, 6, 29];
-            var titleList = ["浠婂ぉ", "杩戜袱澶�", "杩戜笁澶�", "杩戝洓澶�", "杩戜簲澶�", "杩戝叚澶�", "杩戜竷澶�", "杩�30澶�"];
-
-            var HInitTimeCycle_ArrayList = '<option  value="-1" selected="selected" >浠绘剰闂撮殧</option>';
-            for (var i = 0; i < valueList.length; i++) {
-                HInitTimeCycle_ArrayList += '<option  style="color:blue;" value="' + valueList[i] + '">' + titleList[i] + '</option>';
-            }
-
-            $("#HInitTimeCycle").empty();
-            $("#HInitTimeCycle").append(HInitTimeCycle_ArrayList);
-           
-
-            $("#HInitTimeCycle").val("0");
-            form.render('select');
+            var laydate = layui.laydate;
+            // 鏃ユ湡鑼冨洿 - 宸﹀彸闈㈡澘鐙珛閫夋嫨妯″紡
+            laydate.render({
+                elem: '#ID-laydate-range',
+                range: ['#ID-laydate-start-date', '#ID-laydate-end-date']
+            });
+            // 鏃ユ湡鑼冨洿 - 宸﹀彸闈㈡澘鑱斿姩閫夋嫨妯″紡
+            laydate.render({
+                elem: '#ID-laydate-rangeLinked',
+                range: ['#ID-laydate-start-date-1', '#ID-laydate-end-date-1'],
+                rangeLinked: true // 寮�鍚棩鏈熻寖鍥撮�夋嫨鏃剁殑鍖洪棿鑱斿姩鏍囨敞妯″紡 ---  2.8+ 鏂板
+            });
         }
         //#endregion
-       
+
         //鏌ヨ閮ㄩ棬 璁惧瀵瑰簲鐨勬姤琛�
         function Check() {
-            var HBeginDate = $("#HDate1").val()
-            var HEndDate = $("#HDate2").val()
+            var HBeginDate = $("#ID-laydate-start-date").val()
+            var HEndDate = $("#ID-laydate-end-date").val()
 
             $.ajax({
                 url: GetWEBURL() + '/DAQ_EquipRunningSlice/GetHEquipStatusReportList_DAQ',
                 type: "GET",
+                async: false,
                 data: { "HDeptID": HDeptID, "HEquipID": HEquipID, HBeginDate: HBeginDate, HEndDate: HEndDate, "user": sessionStorage["HUserName"] },
                 dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
                 success: function (res) {
                     data = res.data
-                    debugger
+
                     if (data.length < 1) {
                         return
                     }
 
-                    var $container = $("#chartContainer");
-                    $container.empty();
-
-                    for (var i = 0; i < data.length; i++) {
-                        var hmainid = data[i].hmainid;
-                        var equipName = data[i].璁惧鍚嶇О;
-                        var dateStr = data[i].鎵�灞炴棩鏈�.split('T')[0];
-
-                        // 鏃堕棿瀛楁
-                        var runTime = data[i].杩愯鏃堕棿;         // 杩愯
-                        var stopTime = data[i].鏈烘椂闂�;         // 鍋滄満
-                        var alarmTime = data[i].鍛婅鏃堕棿;      // 鍛婅
-                        var offTime = data[i].鍏虫満鏃堕棿;        // 鍏虫満
-                        var total = runTime + stopTime + alarmTime + offTime;
-
-                        // ==============================================
-                        // 1. 鍒涘缓姣忎釜璁惧鐨勫浘琛ㄥ澹筹紙宸﹀彸甯冨眬锛氶ゼ鍥� + 鏃跺簭鍥撅級
-                        // ==============================================
-                        var itemHtml = `
-            <div style="width:100%; height:420px; display:flex; gap:20px; margin-bottom:30px; border:1px solid #eee; padding:15px; border-radius:8px;">
-                <div id="chart_pie_${hmainid}" style="width:38%; height:100%;"></div>
-                <div id="chart_time_${hmainid}" style="width:62%; height:100%;"></div>
-            </div>`;
-                        $container.append(itemHtml);
-
-                        // ==============================================
-                        // 2. 宸︿晶鐜舰楗煎浘锛堣繍琛�/鍋滄満/鍛婅/鍏虫満 鍗犳瘮锛�
-                        // ==============================================
-                        var pieChart = echarts.init(document.getElementById(`chart_pie_${hmainid}`));
-                        pieChart.setOption({
-                            title: { text: `${dateStr} ${equipName}`, left: 'center', textStyle: { fontSize: 16 } },
-                            tooltip: { trigger: 'item', formatter: '{b}: {c}H ({d}%)' },
-                            legend: { orient: 'vertical', right: '2%', top: 'middle', textStyle: { fontSize: 13 } },
-                            series: [{
-                                type: 'pie',
-                                radius: ['42%', '70%'],
-                                center: ['45%', '55%'],
-                                itemStyle: { borderRadius: 4, borderColor: '#fff', borderWidth: 2 },
-                                label: { show: false },
-                                data: [
-                                    { value: runTime, name: '杩愯', itemStyle: { color: '#4CAF50' } },
-                                    { value: stopTime, name: '鍋滄満', itemStyle: { color: '#FF9800' } },
-                                    { value: alarmTime, name: '鍛婅', itemStyle: { color: '#F44336' } },
-                                    { value: offTime, name: '鍏虫満', itemStyle: { color: '#9E9E9E' } }
-                                ]
-                            }]
-                        });
-
-                        // ==============================================
-                        // 3. 鍙充晶 24灏忔椂 璁惧杩愯鏃跺簭鍥撅紙鍜屾晥鏋滃浘瀹屽叏涓�鑷达級
-                        // ==============================================
-                        var timeChart = echarts.init(document.getElementById(`chart_time_${hmainid}`));
-                        timeChart.setOption({
-                            title: {
-                                text: `杩愯:${runTime.toFixed(1)}H | 鍋滄満:${stopTime.toFixed(1)}H | 鍛婅:${alarmTime.toFixed(1)}H | 鍏虫満:${offTime.toFixed(1)}H`,
-                                left: 'center',
-                                textStyle: { fontSize: 14 }
-                            },
-                            grid: { left: '3%', right: '3%', top: '20%', bottom: '10%', containLabel: true },
-                            xAxis: {
-                                type: 'category',
-                                data: ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00', '24:00']
-                            },
-                            yAxis: { type: 'value', max: 1, show: false },
-                            series: [
-                                { type: 'bar', stack: 'total', barWidth: '80%', itemStyle: { color: '#9E9E9E' }, data: [offTime / 24, 0, 0, 0, 0, 0, 0] },
-                                { type: 'bar', stack: 'total', barWidth: '80%', itemStyle: { color: '#FF9800' }, data: [stopTime / 24, 0, 0, 0, 0, 0, 0] },
-                                { type: 'bar', stack: 'total', barWidth: '80%', itemStyle: { color: '#F44336' }, data: [alarmTime / 24, 0, 0, 0, 0, 0, 0] },
-                                { type: 'bar', stack: 'total', barWidth: '80%', itemStyle: { color: '#4CAF50' }, data: [runTime / 24, 0, 0, 0, 0, 0, 0] }
-                            ]
-                        });
-                    }
-
+                    pieData = data
                 }
             })
+
+            $.ajax({
+                url: GetWEBURL() + '/DAQ_EquipRunningSlice/GetHEquipStatusReportList2_DAQ',
+                type: "GET",
+                async: false,
+                data: { "HDeptID": HDeptID, "HEquipID": HEquipID, HBeginDate: HBeginDate, HEndDate: HEndDate, "user": sessionStorage["HUserName"] },
+                dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+                success: function (res) {
+                    data = res.data
+
+                    if (data.length < 1) {
+                        return
+                    }
+                    console.log(timelineData)
+                    timelineData = data
+                }
+            })
+
+            drawCharts()
+
+
+            //wktag = 0;
+            //$("#btomleft").html("");
+            //$.ajax({
+            //    url: GetWEBURL() + '/Sc_HEquipStateDistribution/Sc_HEquipStateDistribution_Souce',
+            //    type: "GET",
+            //    data: { "HDeptID": HDeptID, "user": sessionStorage["HUserName"], "OrganizationID": sessionStorage["OrganizationID"] },
+            //    dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+            //    success: function (data) {
+            //
+            //        var LoadData1 = data.data.h_p_sc_HDeptSouceMOList;
+            //        if (LoadData1.length > 0)  //宸ュ崟鍒楄〃鏁版嵁
+            //        {
+            //
+            //            for (var i = 0; i < LoadData1.length; i++) {
+            //                var html1 = '';
+            //                html1 += '<div class="layui-col-sm12 layui-col-md2" style="margin: 6px;width: 180px;">';
+            //                html1 += '<div class="cns" id="bs' + (i + 1) + '" onclick="CheckBtom(this,' + (i + 1) + ')">';
+            //                html1 += '<dl>';
+            //                html1 += '<dd class="tcenter">';
+            //                html1 += '<h1 style="display:none;"><span>鐢熶骇璁㈠崟鍙蜂富ID锛�</span><span id="df' + (i + 1) + '">' + LoadData1[i].鐢熶骇璁㈠崟涓诲唴鐮� + '</span></h1>';
+            //                html1 += '<h1 style="display:none;"><span>鐢熶骇璁㈠崟瀛怚D锛�</span><span id="ds' + (i + 1) + '">' + LoadData1[i].鐢熶骇璁㈠崟瀛愬唴鐮� + '</span></h1>';
+            //                html1 += '<h1 style="display:none;"><span>浜х嚎ID锛�</span><span id="cs' + (i + 1) + '">' + LoadData1[i].HSourceID + '</span></h1>';
+            //                html1 += '<h1 style="display:none;"><span>璁惧ID锛�</span><span id="sb' + (i + 1) + '">' + LoadData1[i].璁惧id + '</span></h1>';
+            //
+            //                html1 += '<p><span>璁惧缂栫爜锛�</span><span id="sbbm' + (i + 1) + '">' + LoadData1[i].璁惧缂栫爜 + '</span></p>';
+            //                html1 += '<p><span>璁惧鍚嶇О锛�</span><span id="sbmc' + (i + 1) + '">' + LoadData1[i].璁惧鍚嶇О + '</span></p>';
+            //                html1 += '<p><span>浜х嚎锛�</span><span id="cxmc' + (i + 1) + '">' + LoadData1[i].浜х嚎 + '</span></p>';
+            //                html1 += '<p><span>褰撳墠璁㈠崟锛�</span><span id="gd' + (i + 1) + '">' + LoadData1[i].鐢熶骇璁㈠崟 + '</span></p>';
+            //                html1 += '<p><span>璁㈠崟鏁伴噺锛�</span><span id="ddqty' + (i + 1) + '">' + LoadData1[i].浠诲姟鍗曟暟閲� + '</span></p>';
+            //                html1 += '<p><span>瀹屾垚鏁伴噺锛�</span><span id="wcqty' + (i + 1) + '">' + LoadData1[i].娴佽浆鍗℃暟閲� + '</span></p>';
+            //                switch (LoadData1[i].璁惧鐘舵��) {
+            //                    case "绌洪棽":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border6"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "寮�鏈�":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border4"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "鍋滄満":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border3"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "鐢熶骇":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border2"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "缁翠慨涓�":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border5"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "鏁呴殰":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border1"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    case "缁翠慨瀹屾垚":
+            //                        html1 += '<p><span>褰撳墠鐘舵�侊細</span><span class="gj_icon color_border7"></span><span>' + LoadData1[i].璁惧鐘舵�� + '</span></p>';
+            //                        break;
+            //                    default:
+            //                }
+            //                html1 += '</dd>';
+            //                html1 += '</dl>';
+            //                html1 += '</div>';
+            //                html1 += '</div>';
+            //                $("#btomleft").append(html1);
+            //            }
+            //        }
+            //    },
+            //    error: function (err) {
+            //        layer.alert(err.Message, { time: 1 * 2000, icon: 5 });
+            //        return false;
+            //    }
+            //});
         }
 
 
+        //#region 缁樺埗鍥捐〃
+        function drawCharts() {
+            var $container = $("#chartContainer");
+            $container.empty();
+
+            var data = pieData
+            console.log(pieChart)
+            var data1 = timelineData
+
+            for (var i = 0; i < data.length; i++) {
+                var hmainid = data[i].hmainid;
+                var equipName = data[i].璁惧鍚嶇О;
+                var dateStr = data[i].鎵�灞炴棩鏈�.split('T')[0];
+
+                // 鏃堕棿瀛楁
+                var runTime = data[i].杩愯鏃堕棿 || 0;         // 杩愯
+                var stopTime = data[i].鍋滄満鏃堕棿 || 0;         // 鍋滄満
+                var alarmTime = data[i].鍛婅鏃堕棿 || 0;      // 鍛婅
+                var offTime = data[i].鍏虫満鏃堕棿 || 0;        // 鍏虫満
+                var total = runTime + stopTime + alarmTime + offTime;
+
+                // ==============================================
+                // 1. 鍒涘缓姣忎釜璁惧鐨勫浘琛ㄥ澹筹紙宸﹀彸甯冨眬锛氶ゼ鍥� + 鏃跺簭鍥撅級
+                // ==============================================
+                var itemHtml = `
+            <div style="width:100%; height:200px; margin-bottom:20px; border:1px solid #eee; padding:15px; border-radius:8px;">
+                <div style="display: inline-block; height:20%; display:flex; gap:20px;">
+                    <div style="width:40%;">${dateStr} ${equipName}</div>
+                    <div style="width:60%; display: flex; justify-content: right; align-items: center; gap: 8px;">
+                        <div style="width: 18px; height: 18px; background-color: #73cc3f; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">杩愯(${runTime}H)</div>
+                        <div style="width: 18px; height: 18px; background-color: #f2a439; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">鍋滄満(${stopTime}H)</div>
+                        <div style="width: 18px; height: 18px; background-color: #ff796a; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">鍛婅(${alarmTime}H)</div>
+                        <div style="width: 18px; height: 18px; background-color: #9b9a9b; display: inline-block"></div>
+                        <div style="padding-left: 4px ;display: inline-block">鍏虫満(${offTime}H)</div>
+                    </div>
+                </div> 
+                <div style="display: inline-block; height:80%; display:flex; gap:20px;">
+                    <div id="chart_pie_${hmainid}_${i}" style="width:25%; height:100%;"></div>
+                    <div id="chart_time_${hmainid}_${i}" style="width:70%; height:100%;"></div>
+                </div>
+            </div>`;
+                $container.append(itemHtml);
+
+
+                // ==============================================
+                // 2. 宸︿晶鐜舰楗煎浘锛堣繍琛�/鍋滄満/鍛婅/鍏虫満 鍗犳瘮锛�
+                // ==============================================
+                var pieChart = echarts.init(document.getElementById(`chart_pie_${hmainid}_${i}`));
+                pieChart.setOption({
+                    // title: { text: `${dateStr} ${equipName}`, left: 'center', textStyle: { fontSize: 16 } },
+                    tooltip: {
+                        trigger: 'item', formatter: '{b}: {c}H ({d}%)', textStyle: {
+                            lineHeight: 22  // 鏂囧瓧闂磋窛鏇村ぇ
+                        },
+                    },
+                    legend: {
+                        orient: 'vertical', right: '2%', top: 'middle', textStyle: { fontSize: 13 }
+                        , formatter: function (name, value) {
+                            var getRate = function () {
+                                if (name == '杩愯') {
+                                    return (runTime / total * 100.0).toFixed(2)
+                                }
+                                if (name == '鍋滄満') {
+                                    return (stopTime / total * 100.0).toFixed(2)
+                                }
+                                if (name == '鍛婅') {
+                                    return (alarmTime / total * 100.0).toFixed(2)
+                                }
+                                if (name == '鍏虫満') {
+                                    return (offTime / total * 100.0).toFixed(2)
+                                }
+                            }()
+                            return name + '鐜�(' + getRate
+                                + '%)'
+                        }
+                    },
+                    series: [{
+                        type: 'pie',
+                        radius: ['42%', '70%'],
+                        center: ['25%', '50%'],
+                        itemStyle: { borderRadius: 4, borderColor: '#fff', borderWidth: 2 },
+                        label: { show: false },
+                        data: [
+                            { value: runTime, name: '杩愯', itemStyle: { color: '#73cc3f' } },
+                            { value: stopTime, name: '鍋滄満', itemStyle: { color: '#f2a439' } },
+                            { value: alarmTime, name: '鍛婅', itemStyle: { color: '#ff796a' } },
+                            { value: offTime, name: '鍏虫満', itemStyle: { color: '#9b9a9b' } }
+                        ]
+                    }]
+                });
+
+                // ==============================================
+                // 3. 鍙充晶 24灏忔椂 璁惧杩愯鏃跺簭鍥�
+                // ==============================================
+                // data鐨勬椂闂村拰璁惧id浠モ�榑鈥欒繘琛屾嫾鎺ュ彲寰楀嚭data1瀵硅薄鐨刱ey锛岀畝鍖栨搷浣�
+
+                var key = dateStr + "_" + hmainid
+
+                var timeChart = echarts.init(document.getElementById(`chart_time_${hmainid}_${i}`));
+                // 浣犵殑鍘熷鏁版嵁
+                var data1Instance = data1[key]
+                if(!data1Instance){
+                    continue
+                }
+                var startTime = dayjs(dateStr + " 00:00:00").valueOf();
+                var endTime = dayjs(dateStr + " 23:59:59").valueOf();
+                var categories = [data1Instance[0]["鐢熶骇璧勬簮"]];
+                var types = [
+                    { name: '姝e父杩愯', color: '#73cc3f' },
+                    { name: '绂荤嚎', color: '#9b9a9b' },
+                    { name: '寰呮満', color: '#f2a439' },
+                ];
+
+                var getColor = function (name) {
+                    for (var i = 0; i < types.length; i++) {
+                        if (name == types[i].name) {
+                            return types[i].color
+                        }
+                    }
+                }
+
+                chartDataTimeline = []
+                for (var cursor = 0; cursor < data1Instance.length; cursor++) {
+                    chartDataTimeline.push({
+                        "name": data1Instance[cursor]["HResult"],
+                        "value": [
+                            0,
+                            dayjs(data1Instance[cursor]["鏃堕棿"]).valueOf(),
+                            dayjs(data1Instance[cursor]["鏃堕棿"]).add(5, 'm').valueOf(),
+                            300000
+                        ],
+                        "itemStyle": {
+                            "normal": {
+                                "color": getColor(data1Instance[cursor]["HResult"])
+                            }
+                        }
+                    })
+                }
+                timeChart.setOption({
+                    tooltip: {
+                        formatter: function (params) {
+                            return params.marker + params.name;
+                        }
+                    },
+                    grid: {
+                        top: 0,
+                        bottom: 0,
+                        left: 20,  // 缁橸杞存枃瀛楃暀涓�鐐逛綅缃�
+                        right: 20,
+                        containLabel: true
+                    },
+                    xAxis: {
+                        type: 'time',
+                        min: startTime,  //  寮�濮嬫椂闂存埑
+                        max: endTime,  //  缁撴潫鏃堕棿鎴�
+                        minInterval: 7200000, // 闂撮殧涓ゅ皬鏃�
+                        scale: true,
+                        axisLabel: {
+                            formatter: function (val) {
+                                return echarts.format.formatTime('hh:mm', val);
+                            }
+                        },
+                        axisLine: {
+                            show: false   //  闅愯棌 x 杞磋酱绾�
+                        }
+                    },
+                    yAxis: {
+                        data: categories,
+                        axisLine: {
+                            show: false   //  闅愯棌 y 杞磋酱绾�
+                        },
+                        name: "",
+                        axisLabel: { show: false }, //  闅愯棌Y杞存爣绛�
+                    },
+                    series: [
+                        {
+                            type: 'custom',
+                            renderItem: renderItem,
+                            itemStyle: {
+                                opacity: 0.8
+                            },
+                            encode: {
+                                x: [1, 2],
+                                y: 0
+                            },
+                            data: chartDataTimeline
+                        }
+                    ]
+                })
+            }
+        }
+        //#endregion
 
         // 鏍戠姸鍥炬煡璇�
         function get_Display_Tree() {
@@ -451,9 +737,747 @@
                 subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '","HPID": "' + parentID + '"},';
             }
             return subStr;
-        }       
+        }
+
+
+        $('#modeBtnGroup').on('click', 'button', function (e) {
+            console.log("鐐瑰嚮鎴愬姛锛乪vent =", e);  // event 浜嬩欢鎷垮埌
+
+            var $btn = $(this);
+            var $btnGroup = $btn.closest('div');
+            $btnGroup.find('button').addClass("layui-btn-primary").addClass("layui-border")
+            $btn.removeClass("layui-btn-primary").removeClass("layui-border")
+            var mode = $btn.data('mode');  // day / history
+
+
+            //閫氳繃mode鍒ゆ柇鎵ц鍝釜鏌ヨ锛屽鏋滄槸day锛屽垯鏌ヨ鐨勬椂鍊欙紝寮�濮嬫棩鏈熷拰缁撴潫鏃ユ湡閮芥槸褰撳ぉ(涓庢棩鏈熻寖鍥存棤鍏�),濡傛灉鏄痟istory锛屽垯鎸夌収鏃ユ湡鑼冨洿鍜屽巻鍙叉暟鎹繘琛岀瓫閫�
+        });
 
     });
+    //#endregion
+
+    //宸ュ崟鍒楄〃閫変腑
+    function CheckBtom(obj, i) {
+        workcode = $("#gd" + i + "").html(); //閫氳繃鏍峰紡ID鑾峰彇html鍐呭(宸ュ崟鍙�)
+        HICMOInterID = $("#df" + i + "").html();     //鐢熶骇璁㈠崟涓诲唴鐮�
+        HICMOEntryID = $("#ds" + i + "").html();     //鐢熶骇璁㈠崟瀛愬唴鐮�
+        HEquipID = $("#sb" + i + "").html();     //璁惧id
+        HEquipNumber = $("#sbbm" + i + "").html();     //璁惧缂栫爜
+        HEquipName = $("#sbmc" + i + "").html();     //璁惧鍚嶇О
+        HSourceID = $("#cs" + i + "").html();     //浜х嚎id
+
+        $('.cns').removeClass('check1');  //鍒犻櫎涓嶅悓鐖剁骇clss鏍峰紡鐩稿悓鐨勬墍鏈夊厓绱�
+        $("#bs" + i + "").addClass('check1'); // 娣诲姞褰撳墠鍏冪礌鐨勬牱寮�
+        if (HEquipID != "" && HEquipID != null) {
+            wktag = 1;
+        }
+        sWhere = {
+            HDeptID: HDeptID
+            , HSourceID: HSourceID
+        }
+
+        /* 鐐瑰嚮 璁惧 寮�鍚澶囪鎯呭脊绐楋紝璁惧鐘舵�佽鎯呴〉闈� 
+        *璇︽儏椤甸潰锛氭棩鏈熻繃婊ゃ�佽澶囪繍琛屽垎鏋愩�佽鎶ワ紙鍙互鍏堝彇鍊间负鏈�杩戠殑瀹夌伅绠$悊锛夊彇鍊肩敤 璁惧杩愯鐘舵�佽〃 Sb_EquipRunningStatus(璁惧褰撳墠鐘舵�佹晥鐜囧垎鏋�) 
+        */
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '璁惧璇︽儏',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: './DAQ_EvidenceEquipmentCockpitDetail.html?HEquipID=' + HEquipID,
+            end: function () {
+
+            },
+            success: function (dom, index) {
+
+            },
+        });
+        // FourReport(JSON.stringify(sWhere));
+    }
+
+    //鏌ヨ 閮ㄩ棬+浜х嚎 4涓浘琛� 璧嬪��
+    function FourReport(sWhere) {
+        $.ajax({
+            url: GetWEBURL() + '/Sc_HEquipStateDistribution/Get_EquipStateDistribution_FourReport',
+            type: "GET",
+            data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "OrganizationID": sessionStorage["OrganizationID"] },
+            dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
+            success: function (data) {
+                var chartData = data.data.h_p_Sc_FourStateDistributionReport;
+                var chartData1 = data.data.h_p_Sc_FourStateDistributionReport1;
+                var chartData2 = data.data.h_p_Sc_FourStateDistributionReport2;
+                var chartData3 = data.data.h_p_Sc_FourStateDistributionReport3;
+                var mychart11 = echarts.init(document.getElementById('mychart11'));
+                var mychart22 = echarts.init(document.getElementById('mychart22'));
+                var mychart3 = echarts.init(document.getElementById('mychart3'));
+                var mychart4 = echarts.init(document.getElementById('mychart4'));
+
+                get_Histogram1(mychart11, chartData);
+                get_LineChart(mychart22, chartData1);
+                get_Statistics(mychart3, chartData2);
+                get_Histogram4(mychart4, chartData3);
+
+            },
+            error: function (err) {
+                layer.alert(err.Message, { time: 1 * 2000, icon: 5 });
+                return false;
+            }
+        });
+    }
+
+    //鏌辩姸鍥�
+    function get_Histogram1(mychart11, chartData) {
+        // 榛樿鐨刼ption缁撴瀯
+        var option = {
+            title: {
+                text: '杩戜竷澶╀骇鑳�', // 榛樿鏍囬涓虹┖
+                left: 'center',
+                top: '10%', // 璋冩暣鏍囬浣嶇疆锛屾斁鍒版渶涓婇潰
+                textStyle: {
+                    fontSize: 18,
+                    color: '#ff0000'
+                }
+            },
+            grid: {
+                top: '25%', // 璋冩暣grid鐨則op鍊硷紝缁欐爣棰樼暀鍑虹┖闂�
+                bottom: '20%',
+                left: '10%',
+                right: '10%'
+            },
+            xAxis: {
+                type: 'category',
+                data: [] // 榛樿x杞存暟鎹负绌�
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [], // 榛樿series鏁版嵁涓虹┖
+                    type: 'bar'
+                }
+            ]
+        };
+
+        // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
+        if (chartData && chartData.length > 0) {
+            option.title.text = '杩戜竷澶╀骇鑳�'; // 姝e父鏁版嵁鏃舵病鏈夋爣棰�
+            option.xAxis.data = chartData.map(item => item.鏃ユ湡); // 璁剧疆x杞存暟鎹�
+            option.series[0].data = chartData.map(item => item['鐢熶骇鎬绘暟']); // 璁剧疆y杞存暟鎹�
+
+            option.series[0].label = {
+                normal: {
+                    show: true,
+                    position: 'top',
+                    formatter: function (params) {
+                        return echarts.format.addCommas(params.value);
+                    }
+                }
+            };
+
+            option.series[0].itemStyle = {
+                normal: {
+                    color: '#15b1fa',
+                    label: {
+                        show: true // 鍦ㄦ煴鐘跺浘涓婃樉绀烘暟鎹�
+                    }
+                }
+            };
+        } else {
+            // 娌℃湁鏁版嵁鏃讹紝鏄剧ず"鏆傛棤鏁版嵁"鎻愮ず
+            option.title.text = '鏆傛棤鏁版嵁';
+        }
+
+        // 鏇存柊鍥捐〃
+        mychart11.setOption(option);
+    }
+
+    //鏌辩姸鍥�2
+    function get_LineChart(mychart22, chartData1) {
+        // 榛樿鐨刼ption缁撴瀯
+        var option = {
+            title: {
+                text: '缁翠慨', // 榛樿鏍囬涓虹┖
+                left: 'center',
+                top: '10%', // 璋冩暣鏍囬浣嶇疆锛屾斁鍒版渶涓婇潰
+                textStyle: {
+                    fontSize: 18,
+                    color: '#ff0000'
+                }
+            },
+            axisLabel: {
+                show: true,
+                interval: 0,
+                color: '#15b1fa',
+                formatter: function (value) {
+                    var ret = "";//鎷兼帴鍔燶n杩斿洖鐨勭被鐩」
+                    var maxLength = 1;//姣忛」鏄剧ず鏂囧瓧涓暟
+                    var valLength = value.length;//X杞寸被鐩」鐨勬枃瀛椾釜鏁�
+                    var rowN = Math.ceil(valLength / maxLength); //绫荤洰椤归渶瑕佹崲琛岀殑琛屾暟
+                    if (rowN > 1)//濡傛灉绫荤洰椤圭殑鏂囧瓧澶т簬3,
+                    {
+                        for (var i = 0; i < rowN; i++) {
+                            var temp = "";//姣忔鎴彇鐨勫瓧绗︿覆
+                            var start = i * maxLength;//寮�濮嬫埅鍙栫殑浣嶇疆
+                            var end = start + maxLength;//缁撴潫鎴彇鐨勪綅缃�
+                            //杩欓噷涔熷彲浠ュ姞涓�涓槸鍚︽槸鏈�鍚庝竴琛岀殑鍒ゆ柇锛屼絾鏄笉鍔犱篃娌℃湁褰卞搷锛岄偅灏变笉鍔犲惂
+                            temp = value.substring(start, end) + "\n";
+                            ret += temp; //鍑�熸渶缁堢殑瀛楃涓�
+                        }
+                        return ret;
+                    }
+                    else {
+                        return value;
+                    }
+                }
+            },
+            grid: {
+                top: '25%', // 璋冩暣grid鐨則op鍊硷紝缁欐爣棰樼暀鍑虹┖闂�
+                bottom: '20%',
+                left: '10%',
+                right: '10%'
+            },
+            xAxis: {
+                type: 'category',
+                data: [] // 榛樿x杞存暟鎹负绌�
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [], // 榛樿series鏁版嵁涓虹┖
+                    type: 'bar'
+                }
+            ]
+        };
+
+
+
+        // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
+        if (chartData1 && chartData1.length > 0) {
+            option.title.text = '涓嶈壇鍘熷洜'; // 姝e父鏁版嵁鏃舵病鏈夋爣棰�
+            option.xAxis.data = chartData1.map(item => item.涓嶈壇鍘熷洜); // 璁剧疆x杞存暟鎹�
+            option.series[0].data = chartData1.map(item => item['鏁伴噺']); // 璁剧疆y杞存暟鎹�
+
+            option.series[0].label = {
+                normal: {
+                    show: true,
+                    position: 'top',
+                    formatter: function (params) {
+                        return echarts.format.addCommas(params.value);
+                    }
+                }
+            };
+
+            option.series[0].itemStyle = {
+                normal: {
+                    color: '#15b1fa',
+                    label: {
+                        show: true // 鍦ㄦ煴鐘跺浘涓婃樉绀烘暟鎹�
+                    }
+                }
+            };
+        } else {
+            // 娌℃湁鏁版嵁鏃讹紝鏄剧ず"鏆傛棤鏁版嵁"鎻愮ず
+            option.title.text = '鏆傛棤鏁版嵁';
+        }
+
+        // 鏇存柊鍥捐〃
+        mychart22.setOption(option);
+    }
+
+    //楗煎浘
+    function get_Statistics(mychart3, chartData2) {
+        // 濡傛灉 chartData2 涓虹┖锛屾彁渚涗竴涓�滄棤鏁版嵁鈥濇彁绀�
+        if (chartData2.length === 0) {
+            mychart3.setOption({
+                title: {
+                    text: '鏆傛棤鏁版嵁',
+                    left: 'center',
+                    top: '10%',
+                    textStyle: {
+                        color: 'red', // 璁剧疆鏍囬棰滆壊涓虹孩鑹�
+                        fontSize: 18,
+                        fontWeight: 'bold'
+                    }
+                },
+                series: [],  // 娓呯┖鏁版嵁
+                graphic: []  // 娓呯┖鍥惧舰涓殑鏂囨湰
+            });
+            return;
+        }
+
+        // 鐘舵�侀鑹叉槧灏�
+        const statusColorMap = {
+            '寮�鏈�': '#28a745',    // 缁胯壊
+            '鏁呴殰': '#ff63a5',    // 妗冪孩鑹�
+            '鍋滄満': '#f0ad4e',    // 榛勮壊
+            '鏈煡': '#6c757d'     // 鐏拌壊
+        };
+
+        // 璁$畻寮�鏈虹巼
+        const totalDevices = chartData2.reduce((sum, item) => sum + item.鏁伴噺, 0);
+        const onlineDevices = chartData2.find(item => item.鐘舵�� === '寮�鏈�')?.鏁伴噺 || 0;
+        const onlineRate = totalDevices === 0 ? 0 : (onlineDevices / totalDevices * 100).toFixed(2);
+
+        // 鍔ㄦ�佺敓鎴愰ゼ鍥炬暟鎹紝骞舵牴鎹姸鎬佽缃鑹�
+        var data = chartData2.map(function (item) {
+            // 鑾峰彇褰撳墠鐘舵�佺殑棰滆壊锛岄粯璁や负鐏拌壊
+            var color = statusColorMap[item.鐘舵�乚 || statusColorMap['鏈煡'];
+
+            return {
+                value: item.鏁伴噺,
+                name: item.鐘舵��,
+                itemStyle: {
+                    color: color  // 涓烘瘡涓姸鎬佽缃搴旂殑棰滆壊
+                }
+            };
+        });
+
+        // 鍥捐〃鐨勯厤缃」
+        var option = {
+            title: {
+                text: '璁惧鐘舵�佸垎鏋愬姣�',
+                left: 'center',
+                top: '10%',  // 灏嗘爣棰樻斁缃埌椤堕儴
+                textStyle: {
+                    color: 'red',  // 璁剧疆鏍囬瀛椾綋棰滆壊涓虹孩鑹�
+                    fontSize: 18,
+                    fontWeight: 'bold'
+                }
+            },
+            tooltip: {
+                trigger: 'item'
+            },
+            legend: {
+                orient: 'vertical',
+                left: 'left'
+            },
+            series: [
+                {
+                    name: '璁惧鐘舵��',
+                    type: 'pie',
+                    radius: '50%',
+                    data: data,  // 浣跨敤鍔ㄦ�佺敓鎴愮殑鏁版嵁
+                    emphasis: {
+                        itemStyle: {
+                            shadowBlur: 10,
+                            shadowOffsetX: 0,
+                            shadowColor: 'rgba(0, 0, 0, 0.5)'
+                        }
+                    }
+                }
+            ],
+            graphic: [{
+                type: 'text',
+                left: 'center',
+                top: '85%',  // 璋冩暣鏂囨湰浣嶇疆锛岃鍏剁◢寰洿寰�涓�
+                style: {
+                    text: `寮�鏈虹巼: ${onlineRate}%`,  // 鏄剧ず寮�鏈虹巼
+                    font: '16px Arial',
+                    fill: '#00aaff'  // 浣跨敤娴呰摑鑹叉樉绀哄紑鏈虹巼
+                }
+            }]
+        };
+
+        // 璁剧疆鍥捐〃鐨勯厤缃」
+        mychart3.setOption(option);
+    }
+
+    //鏌辩姸鍥�4
+    function get_Histogram4(mychart4, chartData3) {
+        // 榛樿鐨刼ption缁撴瀯
+        var option = {
+            title: {
+                text: '缁翠慨', // 榛樿鏍囬涓虹┖
+                left: 'center',
+                top: '10%', // 璋冩暣鏍囬浣嶇疆锛屾斁鍒版渶涓婇潰
+                textStyle: {
+                    fontSize: 18,
+                    color: '#ff0000'
+                }
+            },
+            axisLabel: {
+                show: true,
+                interval: 0,
+                color: '#15b1fa',
+                formatter: function (value) {
+                    var ret = "";//鎷兼帴鍔燶n杩斿洖鐨勭被鐩」
+                    var maxLength = 1;//姣忛」鏄剧ず鏂囧瓧涓暟
+                    var valLength = value.length;//X杞寸被鐩」鐨勬枃瀛椾釜鏁�
+                    var rowN = Math.ceil(valLength / maxLength); //绫荤洰椤归渶瑕佹崲琛岀殑琛屾暟
+                    if (rowN > 1)//濡傛灉绫荤洰椤圭殑鏂囧瓧澶т簬3,
+                    {
+                        for (var i = 0; i < rowN; i++) {
+                            var temp = "";//姣忔鎴彇鐨勫瓧绗︿覆
+                            var start = i * maxLength;//寮�濮嬫埅鍙栫殑浣嶇疆
+                            var end = start + maxLength;//缁撴潫鎴彇鐨勪綅缃�
+                            //杩欓噷涔熷彲浠ュ姞涓�涓槸鍚︽槸鏈�鍚庝竴琛岀殑鍒ゆ柇锛屼絾鏄笉鍔犱篃娌℃湁褰卞搷锛岄偅灏变笉鍔犲惂
+                            temp = value.substring(start, end) + "\n";
+                            ret += temp; //鍑�熸渶缁堢殑瀛楃涓�
+                        }
+                        return ret;
+                    }
+                    else {
+                        return value;
+                    }
+                }
+            },
+            grid: {
+                top: '25%', // 璋冩暣grid鐨則op鍊硷紝缁欐爣棰樼暀鍑虹┖闂�
+                bottom: '20%',
+                left: '10%',
+                right: '10%'
+            },
+            xAxis: {
+                type: 'category',
+                data: [] // 榛樿x杞存暟鎹负绌�
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [], // 榛樿series鏁版嵁涓虹┖
+                    type: 'bar'
+                }
+            ]
+        };
+
+        // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
+        if (chartData3 && chartData3.length > 0) {
+            option.title.text = '缁翠慨'; // 姝e父鏁版嵁鏃舵病鏈夋爣棰�
+            option.xAxis.data = chartData3.map(item => item.缁翠慨椤圭洰); // 璁剧疆x杞存暟鎹�
+            option.series[0].data = chartData3.map(item => item['缁翠慨娆℃暟']); // 璁剧疆y杞存暟鎹�
+
+            option.series[0].label = {
+                normal: {
+                    show: true,
+                    position: 'top',
+                    formatter: function (params) {
+                        return echarts.format.addCommas(params.value);
+                    }
+                }
+            };
+
+            option.series[0].itemStyle = {
+                normal: {
+                    color: '#15b1fa',
+                    label: {
+                        show: true // 鍦ㄦ煴鐘跺浘涓婃樉绀烘暟鎹�
+                    }
+                }
+            };
+        } else {
+            // 娌℃湁鏁版嵁鏃讹紝鏄剧ず"鏆傛棤鏁版嵁"鎻愮ず
+            option.title.text = '鏆傛棤鏁版嵁';
+        }
+
+        // 鏇存柊鍥捐〃
+        mychart4.setOption(option);
+    }
+
+
+
+    //#region   鎿嶄綔鍙版寜閽偣鍑讳簨浠�
+
+    //寮�鏈烘寜閽偣鍑讳簨浠�
+    function PowerOn(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板寮�鏈哄崟',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/璁惧寮�鏈哄崟/Sb_EquipBeginBill.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //鍋滄満鎸夐挳鐐瑰嚮浜嬩欢
+    function PowerOff(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板鍋滄満鍗�',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/璁惧鍋滄満鍗�/Sb_EquipStopBill.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //鐐规璁板綍鎸夐挳鐐瑰嚮浜嬩欢
+    function DotCheck(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧鏈堢偣妫�璁板綍',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../杞﹂棿绠$悊/鍚姩鐐规鍗�/Sc_WorkDotCheckBillList_Day.html?OperationType=璁惧&linterid=' + HEquipID + '',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID,
+                    "HEquipType": "璁惧"
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+
+            },
+        });
+    }
+
+    //鏁呴殰鐧昏鎸夐挳鐐瑰嚮浜嬩欢
+    function FaultRegistration(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板鏁呴殰鐧昏鍗�',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/Sb_Add_EqpConkBookBillList.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //缁翠慨璁板綍鎸夐挳鐐瑰嚮浜嬩欢
+    function Maintenance(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏂板缁翠慨璁板綍鍗�',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/Sb_Add_EqpMaintenanceBillList.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //灞ュ巻鎸夐挳鐐瑰嚮浜嬩欢
+    function Resume(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧灞ュ巻',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../璁惧绠$悊/璁惧鎶ヨ〃/Sb_EquipResumeCheckQuery.html?OperationType=1&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID,
+                    "HEquipNumber": HEquipNumber,
+                    "HEquipName": HEquipName
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+            },
+        });
+    }
+
+    //宸ヨ壓鎸夐挳鐐瑰嚮浜嬩欢
+    function Process(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧宸ヨ壓鍙傛暟',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../鐢熶骇绠$悊/璁㈠崟鐘舵�佸垎甯�/Sc_EquipmentProcessList.html?OperationType=4&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipID": HEquipID,
+                    "HICMOInterID": HICMOInterID,
+                    "HICMOEntryID": HICMOEntryID
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+
+            },
+        });
+    }
+
+    //鐘舵�佹寜閽偣鍑讳簨浠�
+    function HStatus(event, obj) {
+        if (wktag == 0) {
+            layer.alert("璇烽�夋嫨瀵瑰簲璁惧", { icon: 5 });
+            return false;
+        }
+        layer.open({
+            type: 2,
+            skin: 'layui-layer-rim', //鍔犱笂杈规
+            title: '鏌ョ湅璁惧OEE',
+            closeBtn: 1,
+            shift: 2,
+            area: ['100%', '100%'],
+            maxmin: true,
+            content: '../../鐢熶骇绠$悊/璁㈠崟鐘舵�佸垎甯�/Sc_OEEStatusReport.html?OperationType=4&linterid=0&HSouceBillType=',
+            end: function () {
+
+            },
+            success: function (dom, index) {
+                var data = [];
+                data.push({
+                    "HEquipNumber": HEquipNumber
+                });
+
+                //閫氳繃绱㈠紩鑾峰彇鍒板綋鍓峣frame寮瑰嚭灞�
+                var iframe = window['layui-layer-iframe' + index];
+                //璋冪敤iframe寮瑰嚭灞傚唴鐨勬柟娉�
+                iframe.edit(data);
+
+            },
+        });
+    }
+
+    function renderItem(params, api) {
+        var categoryIndex = api.value(0);
+        var start = api.coord([api.value(1), categoryIndex]);
+        var end = api.coord([api.value(2), categoryIndex]);
+        var height = api.size([0, 1])[1] * 0.6;
+        var rectShape = echarts.graphic.clipRectByRect(
+            {
+                x: start[0],
+                y: start[1] - height / 2,
+                width: end[0] - start[0],
+                height: height
+            },
+            {
+                x: params.coordSys.x,
+                y: params.coordSys.y,
+                width: params.coordSys.width,
+                height: params.coordSys.height
+            }
+        );
+        return (
+            rectShape && {
+                type: 'rect',
+                transition: ['shape'],
+                shape: rectShape,
+                style: api.style()
+            }
+        );
+    }
+    //#endregion
 </script>
 
 </html>
\ No newline at end of file
diff --git "a/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EvidenceEquipmentCockpitDetail.html" "b/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EvidenceEquipmentCockpitDetail.html"
index d96c478..f756e7d 100644
--- "a/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EvidenceEquipmentCockpitDetail.html"
+++ "b/WebTM/views/\346\225\260\351\207\207\347\256\241\347\220\206/DAQ_EvidenceEquipmentCockpitDetail.html"
@@ -16,6 +16,7 @@
     <script src="../../layuiadmin/soulTable.slim.js"></script>
     <script src="../../layuiadmin/PageTitle.js"></script>
     <script src="../../layuiadmin/echarts.min.js"></script>
+    <script src="../../layuiadmin/dayjs.min.js"></script>
     <script src="../../layuiadmin/Scripts/webConfig.js"></script>
 
     <style type="text/css">
@@ -299,106 +300,95 @@
             function get_LineChart(mychart22, chartData1) {
                 var baseTime = $("HBeginDate").val()
                 var endTime = $("HEndDate").val()
+                var startTime = dayjs(baseTime).valueOf();
+                var endTime = dayjs(endTime).valueOf();
                 var yAxisData = [$("#HDeptName").val()]
-                var seriesData = chartData1.map(item => [
-                    item.StartTime,
-                    item.EndTime,
-                    item.EquipName,
-                    item.Status
-                ]);
-                // 榛樿鐨刼ption缁撴瀯
-                chartsOption = {
-                    // 鏍囬
-                    title: {
-                        text: '璁惧杩愯鏃跺簭',
-                        left: 'left',
-                        show: false
-                    },
-                    // 鍥句緥锛堝彸涓婅鐨勭姸鎬佹爣璇嗭級
-                    legend: {
-                        data: ['杩愯', '寮�鏈�', '鍋滄満', '鍛婅', '鍏虫満'],
-                        right: 10,
-                        top: 5,
-                        show: true
-                    },
-                    // 鎻愮ず妗嗭紙榧犳爣鎮诞鏃舵樉绀猴級
+                if (chartData1.length == 0) {
+                    return
+                }
+                var categories = [chartData1[0]["鐢熶骇璧勬簮"]];
+                var types = [
+                    { name: '姝e父杩愯', color: '#73cc3f' },
+                    { name: '绂荤嚎', color: '#9b9a9b' },
+                    { name: '寰呮満', color: '#f2a439' },
+                ];
+
+                var getColor = function (name) {
+                    for (var i = 0; i < types.length; i++) {
+                        if (name == types[i].name) {
+                            return types[i].color
+                        }
+                    }
+                }
+
+                var chartDataTimeline = []
+                for (var cursor = 0; cursor < chartData1.length; cursor++) {
+                    chartDataTimeline.push({
+                        "name": chartData1[cursor]["HResult"],
+                        "value": [
+                            0,
+                            dayjs(chartData1[cursor]["鏃堕棿"]).valueOf(),
+                            dayjs(chartData1[cursor]["鏃堕棿"]).add(5, 'm').valueOf(),
+                            300000
+                        ],
+                        "itemStyle": {
+                            "normal": {
+                                "color": getColor(chartData1[cursor]["HResult"])
+                            }
+                        }
+                    })
+                }
+                var chartsOption = {
                     tooltip: {
-                        trigger: 'axis',
                         formatter: function (params) {
-                            // params 鏄竴涓暟缁勶紝杩欓噷鍙湁涓�鏉℃暟鎹�
-                            const data = params[0];
-                            const start = new Date(data.value[0]);
-                            const end = new Date(data.value[1]);
-                            // 鏍煎紡鍖栨椂闂存樉绀�
-                            return `${data.name}<br/>${start.toLocaleTimeString()} ~ ${end.toLocaleTimeString()}`;
+                            return params.marker + params.name;
                         }
                     },
-                    // 缃戞牸锛堣皟鏁村浘琛ㄥ唴杈硅窛锛岀粰Y杞村拰X杞存爣绛剧暀鍑虹┖闂达級
                     grid: {
-                        left: '3%',
-                        right: '4%',
-                        bottom: '3%',
+                        top: 0,
+                        bottom: 0,
+                        left: 20,  // 缁橸杞存枃瀛楃暀涓�鐐逛綅缃�
+                        right: 20,
                         containLabel: true
                     },
-                    // X杞撮厤缃細鏃堕棿杞�
                     xAxis: {
-                        type: 'time', // 鍏抽敭锛氭椂闂寸被鍨嬭酱
-                        min: baseTime, // 鍥哄畾鏈�灏忔椂闂达細14:00
-                        max: endTime,  // 鍥哄畾鏈�澶ф椂闂达細娆℃棩12:00
+                        type: 'time',
+                        min: startTime,  //  寮�濮嬫椂闂存埑
+                        max: endTime,  //  缁撴潫鏃堕棿鎴�
+                        minInterval: 7200000, // 闂撮殧涓ゅ皬鏃�
+                        scale: true,
                         axisLabel: {
-                            // 鏍煎紡鍖朮杞存爣绛炬樉绀轰负 14:00, 16:00 鏍煎紡
-                            formatter: function (value) {
-                                const date = new Date(value);
-                                return `${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}`;
-                            },
-                            interval: 2 * 3600 * 1000 // 姣�2灏忔椂鏄剧ず涓�涓埢搴︼紙瀵瑰簲14, 16, 18...锛�
+                            formatter: function (val) {
+                                return echarts.format.formatTime('hh:mm', val);
+                            }
                         },
-                        axisLine: { show: true },
-                        splitLine: { show: true }
+                        axisLine: {
+                            show: false   //  闅愯棌 x 杞磋酱绾�
+                        }
                     },
-                    // Y杞撮厤缃細绫荤洰杞�
                     yAxis: {
-                        type: 'category',
-                        data: yAxisData,
-                        axisLine: { show: false },
-                        axisTick: { show: false } // 闅愯棌Y杞村埢搴︾嚎
+                        data: categories,
+                        axisLine: {
+                            show: false   //  闅愯棌 y 杞磋酱绾�
+                        },
+                        name: "",
+                        axisLabel: { show: false }, //  闅愯棌Y杞存爣绛�
                     },
-                    // 绯诲垪鏁版嵁
                     series: [
                         {
-                            name: ['杩愯', '寮�鏈�', '鍋滄満', '鍛婅', '鍏虫満'],
-                            type: 'bar', // 浣跨敤鏌辩姸鍥惧疄鐜扮敇鐗瑰浘鏁堟灉
-                            barWidth: '80%', // 鏌卞瓙楂樺害
-                            // 鏁版嵁鏄犲皠锛氬皢鏃堕棿鎴虫暟鎹叧鑱斿埌X杞�
-                            encode: {
-                                x: [0, 1], // value 鐨勭0椤逛綔涓鸿捣濮嬶紝绗�1椤逛綔涓虹粨鏉�
-                                y: 2       // value 鐨勭2椤逛綔涓篩杞寸被鐩�
-                            },
-                            // 鍏蜂綋鏁版嵁
-                            data: seriesData,
-                            // 鐘舵�侀鑹叉槧灏�
+                            type: 'custom',
+                            renderItem: renderItem,
                             itemStyle: {
-                                color: function (params) {
-                                    // 鏍规嵁鏁版嵁鍚嶇О鍖归厤棰滆壊
-                                    const name = params.data[2];
-                                    const colorMap = {
-                                        '杩愯': '#67C23A',
-                                        '杩愯涓�': '#67C23A',
-                                        '寮�鏈�': '#409EFF',
-                                        '鍋滄満': '#E6A23C',
-                                        '鍛婅': '#F56C6C',
-                                        '鍏虫満': '#909399',
-                                        '缁翠慨涓�': '#F56C6C',
-                                        '缁存姢涓�': '#F56C6C'
-                                    };
-                                    return colorMap[name] || '#ccc';
-                                }
+                                opacity: 0.8
                             },
-                            // 鏌卞瓙涓婁笉鏄剧ず鏂囧瓧鏍囩
-                            label: { show: false }
+                            encode: {
+                                x: [1, 2],
+                                y: 0
+                            },
+                            data: chartDataTimeline
                         }
                     ]
-                };
+                }
 
 
                 // 濡傛灉鏈夋暟鎹紝鏇存柊option鐨勫唴瀹�
@@ -450,16 +440,18 @@
 
                 // 鑾峰彇璁惧杩愯鏃跺簭淇℃伅
                 $.ajax({
-                    url: GetWEBURL() + '/SB_EquipRunningStatus/ReportByID',
+                    url: GetWEBURL() + '/DAQ_EquipRunningSlice/GetHEquipStatusReportList2_DAQ',
                     type: "GET",
-                    data: { "HEquipID": HEquipID, "sWhere": sWhere2, "user": sessionStorage["HUserName"] },
+                    data: { "HEquipID": HEquipID, HDeptID: 0, HBeginDate: util.toDateString(HBeginDate, 'yyyy-MM-dd'), HEndDate: util.toDateString(HEndDate, 'yyyy-MM-dd'), "user": sessionStorage["HUserName"] },
                     dataType: "json",//鏁版嵁绫诲瀷鍙互涓� text xml json  script  jsonp
                     success: function (data) {
-                        console.log(data)
-
                         if (data.count == 1) {
+                            var dataInstance = []
+                            for (var key in data.data) {
+                                $.merge(dataInstance, data.data[key])
+                            }
                             var EquipRunningStatusCharts = echarts.init(document.getElementById("EquipRunningStatusCharts"))
-                            get_LineChart(EquipRunningStatusCharts, data.data);//鎶樼嚎
+                            get_LineChart(EquipRunningStatusCharts, dataInstance);//鎶樼嚎
                         } else {
                             layer.alert(data.Message, { time: 1 * 2000, icon: 5 });
                             return false;
@@ -524,6 +516,35 @@
             //#endregion
 
         })
+
+        function renderItem(params, api) {
+        var categoryIndex = api.value(0);
+        var start = api.coord([api.value(1), categoryIndex]);
+        var end = api.coord([api.value(2), categoryIndex]);
+        var height = api.size([0, 1])[1] * 0.6;
+        var rectShape = echarts.graphic.clipRectByRect(
+            {
+                x: start[0],
+                y: start[1] - height / 2,
+                width: end[0] - start[0],
+                height: height
+            },
+            {
+                x: params.coordSys.x,
+                y: params.coordSys.y,
+                width: params.coordSys.width,
+                height: params.coordSys.height
+            }
+        );
+        return (
+            rectShape && {
+                type: 'rect',
+                transition: ['shape'],
+                shape: rectShape,
+                style: api.style()
+            }
+        );
+    }
     </script>
 </body>
 

--
Gitblit v1.9.1