| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786 | 
							- <!DOCTYPE html>
 
- <html class="x-admin-sm">
 
- <head>
 
-     <meta charset="UTF-8">
 
-     <meta name="renderer" content="webkit">
 
-     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-     <meta name="viewport"
 
-           content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
 
-     <link rel="shortcut icon" href="/static/favicon.ico">
 
-     <link rel="bookmark" href="/static/favicon.ico">
 
-     <link rel="stylesheet" href="/static/css/font.css">
 
-     <link rel="stylesheet" href="/static/css/xadmin.css">
 
-     <link rel="stylesheet" href="/static/layui/css/modules/layer/default/layer.css">
 
-     <link rel="stylesheet" href="/static/layui/css/modules/laydate/default/laydate.css">
 
-     <script src="/static/js/jquery.min.js"></script>
 
-     <script src="/static/lib/layui/layui.js" charset="utf-8"></script>
 
-     <!--    <script src="/static/lib/layui/lay/modules/laydate.js"/>-->
 
-     <script src="/static/lib/layui/lay/modules/layer.js" charset="utf-8"></script>
 
-     <script type="text/javascript" src="/static/js/xadmin.js"></script>
 
-     <style>
 
-         .red-text {
 
-             color: red;
 
-         }
 
-     </style>
 
- </head>
 
- <body>
 
- <div class="x-nav">
 
-             <span class="layui-breadcrumb">
 
-                 <a href="">首页</a>
 
-                <a><cite>设备管理</cite></a>
 
-             </span>
 
-     <a class="layui-btn layui-btn-normal" style="line-height:1.6em;margin-top:3px;float:right"
 
-        onclick="location.reload()" title="刷新">
 
-         <i class="layui-icon layui-icon-refresh" style="line-height:30px"></i>
 
-     </a>
 
- </div>
 
- <div class="layui-fluid">
 
-     <div class="layui-row layui-col-space15">
 
-         <div class="layui-col-md12">
 
-             <div class="layui-card">
 
-                 <div class="layui-card-body ">
 
-                     <div class="layui-form layui-col-space5">
 
-                         <div class="layui-input-inline layui-show-xs-block">
 
-                             <input id="deviceName" type="text" name="Name"
 
-                                    placeholder="设备名称/sn"
 
-                                    autocomplete="off" class="layui-input"></div>
 
-                         <div class="layui-input-inline layui-show-xs-block">
 
-                             <select id="searchClass" value="0" class="layui-select">
 
-                                 <option value="">所有分类</option>
 
-                                 {{range $index, $elem := .Class_List}}
 
-                                 <option value={{$elem.Id}}>{{$elem.T_name}}</option>
 
-                                 {{end}}
 
-                             </select>
 
-                         </div>
 
-                         <div class="layui-input-inline layui-show-xs-block">
 
-                             <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="search"
 
-                                     onclick="getDeviceDataList(1)">
 
-                                 <i class="layui-icon"></i></button>
 
-                         </div>
 
-                         <!--                        <button class="layui-btn layui-btn-normal" onclick="Zero()">一键归零</button>-->
 
-                         <div class="layui-card-body"
 
-                              style="display: flex;justify-content: space-between;align-items: center">
 
-                             <div>
 
-                                 <button class="layui-btn layui-btn-sm layui-btn-normal" id="selectAllBtn"
 
-                                         onclick="selectAll()">
 
-                                     全选本页
 
-                                 </button>
 
-                                 <button class="layui-btn layui-btn-sm layui-btn-normal" onclick="reverseSelect()">反选
 
-                                 </button>
 
-                                 <button class="layui-btn layui-btn-sm layui-btn-normal" id="noSelectAllBtn"
 
-                                         onclick="noSelect()">全不选
 
-                                 </button>
 
-                                 <button class="layui-btn layui-btn-sm layui-btn-normal" onclick="dataRepeat()">数据重传
 
-                                 </button>
 
-                                 <button class="layui-btn layui-btn-sm layui-btn-normal" onclick="SensorAll()">偏差值
 
-                                 </button>
 
-                             </div>
 
-                         </div>
 
-                         <h2>显示<span style="color: #00FF97FF">绿色</span>代表设备参数正在下发中。请勿重复下发!!!</h2>
 
-                     </div>
 
-                 </div>
 
-                 <!--数据列表部分-->
 
-                 <div class="layui-card-body " style="min-height: 400px">
 
-                     <table class="layui-table" lay-size="lg">
 
-                         <colgroup>
 
-                             <col width="20">
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                             <col>
 
-                         </colgroup>
 
-                         <thead>
 
-                         <th>选择</th>
 
-                         <th>SN</th>
 
-                         <th>编号</th>
 
-                         <th>传感器名称</th>
 
-                         <th>最新温度</th>
 
-                         <th>最新湿度</th>
 
-                         <th>温湿度上下限</th>
 
-                         <th>温度偏差值</th>
 
-                         <th>湿度偏差值</th>
 
-                         <th>操作</th>
 
-                         </thead>
 
-                         <tbody id="tableBody">
 
-                         </tbody>
 
-                     </table>
 
-                 </div>
 
-                 <div class="layui-card-body ">
 
-                     <div class="page">
 
-                         <div id="pageTool">
 
-                             <!--上一页-->
 
-                         </div>
 
-                     </div>
 
-                 </div>
 
-                 <!--设别列表部分end-->
 
-                 <div class="layui-card-body"
 
-                      style="justify-content: space-between;align-items: center;color: #ed3f35;height: 110px;">
 
-                     <h2 class="layui-col-md12">注意:</h2>
 
-                     <h3 class="layui-col-md12">1、修改参数 提示成功后,为了确保设备修改成功,请再次读取确定!!!</h3>
 
-                     <h3 class="layui-col-md12">2、此页面功能项目都属于敏感参数,没有修改记录!!!</h3>
 
-                     <h3 class="layui-col-md12">
 
-                         3、没有多选操作功能,因为修改以上参数必须设备在线与真实成功,为了可靠性,所以取消了多选操作功能!!!</h3>
 
-                 </div>
 
-                 <!--分页、选择区域 start-->
 
-                 <!-- 分页、选择区域 end -->
 
-             </div>
 
-         </div>
 
-     </div>
 
- </div>
 
- <div id="deviation" style="display: none;margin-top: 20px;text-align: center">
 
-     <form class="layui-form" lay-filter="dataRepeat" style="text-align: center">
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label">温度补偿:</label>
 
-             <input type="text" id="wdbc" class="layui-input layui-input-inline"/>
 
-         </div>
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label">湿度补偿: </label>
 
-             <input type="text" id="sdbc" class="layui-input layui-input-inline"/>
 
-         </div>
 
-     </form>
 
- </div>
 
- <div id="deviationall" style="display: none;margin-top: 20px;text-align: center">
 
-     <form class="layui-form" lay-filter="dataRepeat" style="text-align: center">
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label">温度补偿:</label>
 
-             <input type="text" id="wdbcall" class="layui-input layui-input-inline"/>
 
-         </div>
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label">湿度补偿: </label>
 
-             <input type="text" id="sdbcall" class="layui-input layui-input-inline"/>
 
-         </div>
 
-     </form>
 
- </div>
 
- <div id="Sensor" style="display: none;margin-top: 20px;text-align: center">
 
-     <form class="layui-form" lay-filter="dataRepeat" style="text-align: center">
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label" style="width: 120px;">传感器采样率:</label>
 
-             <input type="text" id="speed" class="layui-input layui-input-inline"/>
 
-             <label class="layui-form-label" style="width: 120px;">s(1~240) 默认:15</label>
 
-         </div>
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label" style="width: 120px;">传感器灵敏度:</label>
 
-             <input type="text" id="sense" class="layui-input layui-input-inline"/>
 
-             <label class="layui-form-label" style="width: 120px;">s(0~600) 默认:60 </label>
 
-         </div>
 
-     </form>
 
- </div>
 
- <div id="dataRepeat" style="display: none;margin-top: 20px;text-align: center">
 
-     <form class="layui-form" lay-filter="dataRepeat">
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label">开始时间:</label>
 
-             <input id="startTime" class="layui-input layui-input-inline" lay-key="1"/>
 
-         </div>
 
-         <div class="layui-form-item">
 
-             <label class="layui-form-label">结束时间: </label>
 
-             <input id="endTime" name="humidity" class="layui-input layui-input-inline" lay-key="2"/>
 
-         </div>
 
-     </form>
 
- </div>
 
- <script>
 
-     //数据表格
 
-     let pageInfo = null
 
-     let currentPage = 1
 
-     function getDeviceDataList(currentPage) {
 
-         // 显示加载页面
 
-         layui.layer.load();
 
-         let searchDeviceName = $('#deviceName').val()
 
-         let searchDeviceClass = $('#searchClass').val()
 
-         console.log(searchDeviceName, searchDeviceClass)
 
-         let formData = new FormData();
 
-         formData.set('deviceName', searchDeviceName)
 
-         formData.set('deviceClass', searchDeviceClass)
 
-         formData.set('currentPage', currentPage)
 
-         $.ajax({
 
-             type: "POST",
 
-             data: formData,
 
-             contentType: false,
 
-             processData: false,
 
-             url: "/Device/DeviceList",
 
-             success: function (result) {
 
-                 pageInfo = result
 
-                 let b = $('#tableBody')
 
-                 b.html("")
 
-                 if (result.list != null) {
 
-                     layui.layer.closeAll("loading");
 
-                     for (let v of result.list) {
 
-                         let isTrueStyle = v.Is_true === 1 ? 'style="background-color: #00FF97FF;"' : '';
 
-                         b.append(`
 
-                     <tr ${isTrueStyle}>
 
-                         <td><input type="checkbox" class="layui-form-checkbox" data-sn="${v.T_sn}" data-id="${v.T_id}"/></td>
 
-                         <td>${v.T_sn}</td>
 
-                         <td>${v.T_id}</td>
 
-                         <td>${v.T_name}</td>
 
-                         <td>${v.T_t}</td>
 
-                         <td>${v.T_rh}</td>
 
-                          <td>${v.T_Tlower}~${v.T_Tupper}|${v.T_RHlower}~${v.T_RHupper}</td>
 
-                         <td> ${v.T_tDeviation === 1201 ? '<span style="color: #ff0000;">首次需先获取偏差值</span>' : v.T_tDeviation}</td>
 
-                         <td>${v.T_RhDeviation === 1201 ? '<span style="color: red;">首次需先获取偏差值</span>' : v.T_RhDeviation}</td>
 
-                         <td>
 
-                             <button onclick="deviation('${v.T_sn}','${v.T_id}')" class="layui-btn layui-btn-normal layui-btn-sm">偏差值</button>
 
-                             <button onclick="Sensor('${v.T_sn}','${v.T_id}')" class="layui-btn layui-btn-normal layui-btn-sm">传感器参数</button>
 
- <!--                            <button onclick="dataRepeat('${v.T_sn}','${v.T_id}')" class="layui-btn layui-btn-normal layui-btn-sm">数据重传</button>-->
 
-                         </td>
 
-                     </tr>
 
-                     `)
 
-                     }
 
-                 } else {
 
-                     b.append(`<tr>
 
-                         <td colspan="5" rowspan="10" style="height: 590px;text-align: center">没有设备数据!</td>
 
-                     </tr>`)
 
-                 }
 
-                 //渲染分页
 
-                 $('#pageTool').html('')
 
-                 if (!pageInfo.previousPage) {
 
-                     $('#pageTool').append(`<button class="layui-btn layui-btn-primary layui-btn-sm " onclick="getDeviceDataList(${pageInfo.currentPage - 1})">上一页</button>`)
 
-                 } else {
 
-                     $('#pageTool').append(`<button class="layui-btn layui-btn-primary layui-btn-disabled layui-btn-sm" onclick="getDeviceDataList(${pageInfo.currentPage - 1})">上一页</button>`)
 
-                 }
 
-                 //页码
 
-                 let start, end
 
-                 start = pageInfo.currentPage - 2 <= 0 ? 1 : pageInfo.currentPage - 2
 
-                 end = pageInfo.currentPage + 2 >= pageInfo.totalPage ? pageInfo.totalPage : pageInfo.currentPage + 2
 
-                 end = end + (Math.abs(end - start)) >= pageInfo.totalPage ? pageInfo.totalPage : end + (Math.abs(end - start))
 
-                 start = start - (Math.abs(end - start)) <= 0 ? 1 : start - (Math.abs(end - start))
 
-                 for (; start <= end; start++) {
 
-                     if (pageInfo.currentPage == start) {
 
-                         $('#pageTool').append(`<button class="layui-btn layui-btn-disabled layui-btn-primary layui-btn-sm" onclick="getDeviceDataList(${start})">${start}</button>`)
 
-                     } else {
 
-                         $('#pageTool').append(`<button class="layui-btn layui-btn-primary layui-btn-sm" onclick="getDeviceDataList(${start})">${start}</button>`)
 
-                     }
 
-                 }
 
-                 if (!pageInfo.nextPage) {
 
-                     $('#pageTool').append(`<button class="layui-btn layui-btn-primary layui-btn-sm " onclick="getDeviceDataList(${pageInfo.currentPage + 1}">下一页</button>`)
 
-                 } else {
 
-                     $('#pageTool').append(`<button class="layui-btn layui-btn-primary layui-btn-disabled layui-btn-sm " onclick="getDeviceDataList( ${pageInfo.currentPage + 1} )">下一页</button>`)
 
-                 }
 
-             }
 
-         })
 
-     }
 
-     //偏差值
 
-     function deviation(sn = '', id = '') {
 
-         $('#wdbc').val("同步中...")
 
-         $('#sdbc').val("同步中...")
 
-         let selectSns = {}
 
-         if (sn !== '' && id !== '') {
 
-             selectSns[sn] = [parseInt(id)]
 
-         }
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             if ($(e).prop('checked')) {
 
-                 let sn = $(e).attr('data-sn')
 
-                 let id = parseInt($(e).attr('data-id'))
 
-                 if (selectSns[sn] === undefined) {
 
-                     selectSns[sn] = [id]
 
-                 } else {
 
-                     selectSns[sn].push(id)
 
-                 }
 
-                 $('#wdbc').val("")
 
-                 $('#sdbc').val("")
 
-             }
 
-             layui.layer.msg('请 确您勾选的设备 一定在线! 一定在线! 一定在线!,否则本次设置的参数可能无效!')
 
-         })
 
-         if (sn == null && selectSns.length === 0) {
 
-             layui.layer.msg('没有可以操作的设备')
 
-             return
 
-         }
 
-         let deviationData = [{}]
 
-         console.log("选择数据:", selectSns)
 
-         $.ajax({
 
-             type: 'POST',
 
-             url: '/Device/ReadDeviation',
 
-             processData: false,
 
-             contentType: "application/json",
 
-             data: JSON.stringify(selectSns),
 
-             timeout: 20000, // 添加超时时间
 
-             success: function (rlt) {
 
-                 deviationData = []
 
-                 if (rlt.Code === 200) {
 
-                     for (let i = 0; i < rlt.Data.data.length; i++) {
 
-                         if (rlt.Data.data[i].id == id) {
 
-                             $('#wdbc').val(rlt.Data.data[i].t)
 
-                             $('#sdbc').val(rlt.Data.data[i].h)
 
-                             deviationData.push({
 
-                                 sn: sn,
 
-                                 data: [{
 
-                                     id: parseInt(rlt.Data.data[i].id),
 
-                                     h: rlt.Data.data[i].h,
 
-                                     t: rlt.Data.data[i].t
 
-                                 }]
 
-                             })
 
-                         }
 
-                     }
 
-                     //
 
-                     //
 
-                     // if (rlt.Data.length === 1) {
 
-                     //     let t = JSON.parse(rlt.Data[0])
 
-                     //     for (let i = 0; i < t.data.length; i++) {
 
-                     //         console.log(t.data[i]);
 
-                     //         if (t.data[i].id === id) {
 
-                     //             $('#wdbc').val(t.data[i].t)
 
-                     //             $('#sdbc').val(t.data[i].h)
 
-                     //             deviationData.push({
 
-                     //                 sn: sn,
 
-                     //                 data: [{
 
-                     //                     id: parseInt(t.data[i].id),
 
-                     //                     h: t.data[i].h,
 
-                     //                     t: t.data[i].t
 
-                     //                 }]
 
-                     //             })
 
-                     //         }
 
-                     //     }
 
-                     // } else {
 
-                     //     $('#wdbc').disabled()
 
-                     //     $('#sdbc').disabled()
 
-                     //     for (let v of rlt.Data) {
 
-                     //         console.log(rlt.Data[0])
 
-                     //         let t = JSON.parse(v)
 
-                     //         deviationData.push({
 
-                     //             sn: sn,
 
-                     //             data: [{
 
-                     //                 id: parseInt(t.data[0].id),
 
-                     //                 h: t.data[0].h,
 
-                     //                 t: t.data[0].t
 
-                     //             }]
 
-                     //         })
 
-                     //     }
 
-                     // }
 
-                 } else if (rlt.Code !== 200) {
 
-                     $('#wdbc').val("同步硬件参数失败")
 
-                     $('#sdbc').val("同步硬件参数失败")
 
-                     $('#wdbc').addClass('red-text');
 
-                     $('#sdbc').addClass('red-text');
 
-                     layui.layer.msg(rlt.Msg)
 
-                     // layui.layer.closeAll(); // 关闭所有弹窗
 
-                     layui.layer.closeAll(function(){
 
-                         $('#wdbc').removeClass('red-text');
 
-                         $('#sdbc').removeClass('red-text');
 
-                     });
 
-                 }
 
-             },
 
-             error: function (xhr, status, error) { // 添加错误处理
 
-                 layui.layer.msg('硬件无法通信,请检查设备连接。')
 
-             }
 
-         })
 
-         layer.open({
 
-             type: 1,
 
-             title: '偏差值',
 
-             area: ['400px', '230px'],
 
-             content: $('#deviation'),
 
-             btn: ['提交'],
 
-             btnAlign: 'c',
 
-             yes(index, elem) {
 
-                 console.log("偏差值数据:", deviationData)
 
-                 layui.layer.load();
 
-                 if (deviationData.length === 1) {
 
-                     deviationData[0].data[0].t = Number.parseFloat($('#wdbc').val())
 
-                     deviationData[0].data[0].h = Number.parseFloat($('#sdbc').val())
 
-                 }
 
-                 $.ajax({
 
-                     type: "POST",
 
-                     url: "/Device/WriteDeviation",
 
-                     contentType: "application/json",
 
-                     data: JSON.stringify(deviationData),
 
-                     processData: false,
 
-                     success: function (rlt) {
 
-                         layui.layer.closeAll('loading');
 
-                         if (rlt.Code === 200) {
 
-                             layui.layer.msg(rlt.Msg);
 
-                             location.reload()
 
-                         } else if (rlt.Code === 1201) {
 
-                             if (Array.isArray(rlt.Data) && rlt.Data.length > 0) {
 
-                                 // 构建失败SN的列表字符串
 
-                                 const failedSns = rlt.Data.join('<br>'); // 使用<br>标签换行
 
-                                 // 显示弹窗,用户可以选择关闭
 
-                                 layui.layer.alert('部分设置失败:\n' + failedSns, {
 
-                                     closeBtn: 0,
 
-                                     btn: ['关闭']
 
-                                 });
 
-                             } else {
 
-                                 layui.layer.msg(rlt.Msg || '未知错误');
 
-                             }
 
-                         } else {
 
-                             layui.layer.msg(rlt.Msg || '未知错误');
 
-                         }
 
-                     },
 
-                     error: function () {
 
-                         // 关闭加载页面
 
-                         layui.layer.closeAll('loading');
 
-                         layui.layer.msg('请求失败,请重试');
 
-                     },
 
-                 })
 
-                 layui.layer.close(index)
 
-             }
 
-         })
 
-     }
 
-     //传感器参数
 
-     function Sensor(sn = '', id = '') {
 
-         $('#speed').val("同步中...")
 
-         $('#sense').val("同步中...")
 
-         let selectSns = {}
 
-         if (sn !== '' && id !== '') {
 
-             selectSns[sn] = [parseInt(id)]
 
-         }
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             if ($(e).prop('checked')) {
 
-                 let sn = $(e).attr('data-sn')
 
-                 let id = parseInt($(e).attr('data-id'))
 
-                 if (selectSns[sn] === undefined) {
 
-                     selectSns[sn] = [id]
 
-                 } else {
 
-                     selectSns[sn].push(id)
 
-                 }
 
-                 $('#speed').val("")
 
-                 $('#sense').val("")
 
-             }
 
-             layui.layer.msg('请 确您勾选的设备 一定在线! 一定在线! 一定在线!,否则本次设置的参数可能无效!')
 
-         })
 
-         if (sn == null && selectSns.length === 0) {
 
-             layui.layer.msg('没有可以操作的设备')
 
-             return
 
-         }
 
-         let SensorData = [{}]
 
-         console.log("选择数据:", selectSns)
 
-         $.ajax({
 
-             type: 'POST',
 
-             url: '/Device/ReadSensor',
 
-             processData: false,
 
-             contentType: "application/json",
 
-             data: JSON.stringify(selectSns),
 
-             success: function (rlt) {
 
-                 SensorData = []
 
-                 if (rlt.Code === 200) {
 
-                     console.log("获取参数",rlt)
 
-                     $('#speed').val(rlt.Data.speed)
 
-                     $('#sense').val(rlt.Data.sense)
 
-                     SensorData.push({
 
-                         sn: rlt.Data.sn,
 
-                         data: [{
 
-                             id: parseInt(rlt.Data.t_id),
 
-                             speed: rlt.Data.speed,
 
-                             sense: rlt.Data.sense
 
-                         }]
 
-                     })
 
-                 } else {
 
-                     layui.layer.msg(rlt.Msg)
 
-                 }
 
-             }
 
-         })
 
-         layer.open({
 
-             type: 1,
 
-             title: '传感器参数',
 
-             area: ['500px', '230px'],
 
-             content: $('#Sensor'),
 
-             btn: ['提交'],
 
-             btnAlign: 'c',
 
-             yes(index, elem) {
 
-                 console.log("传感器参数:", SensorData)
 
-                 if (SensorData.length == 1) {
 
-                     SensorData[0].data[0].speed = Number.parseFloat($('#speed').val())
 
-                     SensorData[0].data[0].sense = Number.parseFloat($('#sense').val())
 
-                 }
 
-                 $.ajax({
 
-                     type: "POST",
 
-                     url: "/Device/WriteSensor",
 
-                     contentType: "application/json",
 
-                     data: JSON.stringify(SensorData),
 
-                     processData: false,
 
-                     success: function (rlt) {
 
-                         layui.layer.msg(rlt.Msg)
 
-                     }
 
-                 })
 
-                 layui.layer.close(index)
 
-             }
 
-         })
 
-     }
 
-     function SensorAll() {
 
-         let selectSns = {}
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             if ($(e).prop('checked')) {
 
-                 let sn = $(e).attr('data-sn')
 
-                 let id = parseInt($(e).attr('data-id'))
 
-                 console.log(sn, id)
 
-                 if (selectSns[sn] === undefined) {
 
-                     selectSns[sn] = [id]
 
-                 } else {
 
-                     selectSns[sn].push(id)
 
-                 }
 
-                 $('#speed').val("")
 
-                 $('#sense').val("")
 
-             }
 
-             layui.layer.msg('请 确您勾选的设备 一定在线! 一定在线! 一定在线!,否则本次设置的参数可能无效!')
 
-         })
 
-         if (selectSns.length === 0) {
 
-             layui.layer.msg('没有可以操作的设备')
 
-             return
 
-         }
 
-         console.log("选择数据:", selectSns)
 
-         layer.open({
 
-             type: 1,
 
-             title: '偏差值',
 
-             area: ['400px', '230px'],
 
-             content: $('#deviationall'),
 
-             btn: ['提交'],
 
-             btnAlign: 'c',
 
-             yes(index, elem) {
 
-                 console.log("偏差值数据:", selectSns)
 
-                 layui.layer.load();
 
-                 console.log(Number.parseFloat($('#wdbcall').val()))
 
-                 console.log(Number.parseFloat($('#sdbcall').val()))
 
-                 let t = parseFloat($('#wdbcall').val());
 
-                 let h = parseFloat($('#sdbcall').val());
 
-                 let SensorData = {
 
-                     type: 0, // 根据实际情况设置类型
 
-                     sn: Object.keys(selectSns),
 
-                     mid: 0,
 
-                     data: []
 
-                 };
 
-                 for (let sn in selectSns) {
 
-                     selectSns[sn].forEach(id => {
 
-                         SensorData.data.push({id, t, h});
 
-                     });
 
-                 }
 
-                 console.log(JSON.stringify(SensorData))
 
-                 $.ajax({
 
-                     type: "POST",
 
-                     url: "/Device/WriteDeviationAll",
 
-                     contentType: "application/json",
 
-                     data: JSON.stringify(SensorData),
 
-                     processData: false,
 
-                     success: function (rlt) {
 
-                         layui.layer.closeAll('loading');
 
-                         if (rlt.Code === 200) {
 
-                             layui.layer.msg(rlt.Msg);
 
-                             location.reload()
 
-                         } else if (rlt.Code === 1201) {
 
-                             if (Array.isArray(rlt.Data) && rlt.Data.length > 0) {
 
-                                 // 构建失败SN的列表字符串
 
-                                 const failedSns = rlt.Data.join('<br>'); // 使用<br>标签换行
 
-                                 // 显示弹窗,用户可以选择关闭
 
-                                 layui.layer.alert('部分设置失败:\n' + failedSns, {
 
-                                     closeBtn: 0,
 
-                                     btn: ['关闭']
 
-                                 });
 
-                             } else {
 
-                                 layui.layer.msg(rlt.Msg || '未知错误');
 
-                             }
 
-                         } else {
 
-                             layui.layer.msg(rlt.Msg || '未知错误');
 
-                         }
 
-                     },
 
-                     error: function () {
 
-                         // 关闭加载页面
 
-                         // layui.layer.closeAll('loading');
 
-                         layui.layer.msg('请求失败,请重试');
 
-                     },
 
-                 })
 
-                 layui.layer.close(index)
 
-             }
 
-         })
 
-     }
 
-     //数据重传
 
-     function dataRepeat(sn, type) {
 
-         let selectSns = {}
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             if ($(e).prop('checked')) {
 
-                 let sn = $(e).attr('data-sn')
 
-                 let id = $(e).attr('data-id')
 
-                 if (selectSns[sn] === undefined) {
 
-                     selectSns[sn] = [id]
 
-                 } else {
 
-                     selectSns[sn].push(id)
 
-                 }
 
-             }
 
-             layui.layer.msg('请 确您勾选的设备 一定在线! 一定在线! 一定在线!,否则本次设置的参数可能无效!')
 
-         })
 
-         if (sn == null && selectSns.length === 0) {
 
-             layui.layer.msg('没有可以操作的设备')
 
-             return
 
-         }
 
-         let startTime, endTime;
 
-         layui.layer.open({
 
-             type: 1,
 
-             title: '数据重传',
 
-             area: ['400px', '230px'],
 
-             content: $('#dataRepeat'),
 
-             btn: ['提交'],
 
-             btnAlign: 'c',
 
-             yes(index, elem) {
 
-                 layui.layer.load();
 
-                 startTime = $("#startTime").val();
 
-                 endTime = $("#endTime").val();
 
-                 console.log(`开始时间:${startTime},结束时间:${endTime}`)
 
-                 if (startTime === '' || endTime === '') {
 
-                     layui.layer.msg('开始、结束时间不能为空')
 
-                     return
 
-                 }
 
-                 //如果sn存在则表示针对单个设备
 
-                 if (sn != null) {
 
-                     selectSns = {}
 
-                     selectSns[sn] = [type]
 
-                 }
 
-                 $.ajax({
 
-                     type: 'POST',
 
-                     url: '/Device/DataRepeat',
 
-                     data: JSON.stringify({
 
-                         sns: selectSns,
 
-                         startTime: startTime,
 
-                         endTime: endTime
 
-                     }),
 
-                     contentType: "application/json;charset=utf-8",
 
-                     processData: false,
 
-                     success: function (rlt) {
 
-                         // 关闭加载页面
 
-                         layui.layer.closeAll('loading');
 
-                         if (rlt.Code === 200) {
 
-                             layui.layer.msg(rlt.Msg);
 
-                         } else if (rlt.Code === 1201) {
 
-                             if (Array.isArray(rlt.Data) && rlt.Data.length > 0) {
 
-                                 // 构建失败SN的列表字符串
 
-                                 var failedSns = rlt.Data.join('<br>'); // 使用<br>标签换行
 
-                                 // 显示弹窗,用户可以选择关闭
 
-                                 layui.layer.alert('部分重传失败:\n' + failedSns, {
 
-                                     closeBtn: 0,
 
-                                     btn: ['关闭']
 
-                                 });
 
-                             } else {
 
-                                 layui.layer.msg(rlt.Msg || '未知错误');
 
-                             }
 
-                         } else {
 
-                             layui.layer.msg(rlt.Msg || '未知错误');
 
-                         }
 
-                     },
 
-                     error: function () {
 
-                         // 关闭加载页面
 
-                         layui.layer.closeAll('loading');
 
-                         layui.layer.msg('请求失败,请重试');
 
-                     }
 
-                 })
 
-             }
 
-         });
 
-     }
 
-     //初始化日期的操作
 
-     layui.use(['laydate', 'form', 'element'],
 
-         function () {
 
-             var laydate = layui.laydate;
 
-             //执行一个laydate实例
 
-             laydate.render({
 
-                 elem: '#startTime' //指定元素
 
-                 , type: 'datetime'
 
-             });
 
-             //执行一个laydate实例
 
-             laydate.render({
 
-                 elem: '#endTime' //指定元素
 
-                 , type: 'datetime'
 
-             });
 
-             var element = layui.element;
 
-             element.length = 30
 
-         }
 
-     );
 
-     //全选
 
-     let selectAllField = false
 
-     function selectAll() {
 
-         selectAllField = true
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             $(e).prop('checked', true)
 
-         })
 
-     }
 
-     //反选
 
-     function reverseSelect() {
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             $(e).prop('checked', !$(e).prop('checked'))
 
-         })
 
-     }
 
-     //全不选
 
-     function noSelect() {
 
-         $('#tableBody > tr > td > input[type="checkbox"]').each((i, e) => {
 
-             $(e).prop('checked', false)
 
-         })
 
-     }
 
-     $(function () {
 
-         getDeviceDataList(1) //获取数据列表
 
-     })
 
-     function Zero() {
 
-         // 显示加载页面
 
-         layui.layer.load();
 
-         $.ajax({
 
-             type: "POST",
 
-             url: "/Device/SetDeviceDataZero",
 
-             contentType: "application/json",
 
-             success: function (rlt) {
 
-                 // 关闭加载页面
 
-                 layui.layer.closeAll('loading');
 
-                 if (rlt.Code === 200) {
 
-                     layui.layer.msg(rlt.Msg);
 
-                 } else if (rlt.Code === 1201) {
 
-                     if (Array.isArray(rlt.Data) && rlt.Data.length > 0) {
 
-                         // 构建失败SN的列表字符串
 
-                         var failedSns = rlt.Data.join('<br>'); // 使用<br>标签换行
 
-                         // 显示弹窗,用户可以选择关闭
 
-                         layui.layer.alert('部分设置失败:\n' + failedSns, {
 
-                             closeBtn: 0,
 
-                             btn: ['关闭']
 
-                         });
 
-                     } else {
 
-                         layui.layer.msg(rlt.Msg || '未知错误');
 
-                     }
 
-                 } else {
 
-                     layui.layer.msg(rlt.Msg || '未知错误');
 
-                 }
 
-             },
 
-             error: function () {
 
-                 // 关闭加载页面
 
-                 layui.layer.closeAll('loading');
 
-                 layui.layer.msg('请求失败,请重试');
 
-             }
 
-         });
 
-     }
 
- </script>
 
- </body>
 
- </html>
 
 
  |