Explorar o código

新增页面及数据对接

ming %!s(int64=4) %!d(string=hai) anos
pai
achega
6af96002a5
Modificáronse 10 ficheiros con 1311 adicións e 8 borrados
  1. 10 0
      api/request.js
  2. 4 5
      css/index.css
  3. 1 1
      js/auth-manage.js
  4. 1 2
      js/index.js
  5. 340 0
      js/record.js
  6. 55 0
      operate-manage.html
  7. 211 0
      pages/operation/group.html
  8. 240 0
      pages/operation/plan.html
  9. 211 0
      pages/operation/point.html
  10. 238 0
      pages/operation/record.html

+ 10 - 0
api/request.js

@@ -157,6 +157,16 @@ const EVENT_WARNING_MANAGE_EXPORT = "iot/alarm/view/getGJListExcel"; //告警管
 const LOG_MANAGE_LIST = 'iot/log/getLogList' //日志管理列表查询  
 const LOG_EXPORT = 'iot/log/getLogListExecl' //日志导出
 
+
+const RECORD_LIST = 'iot/spotoperationrecord/getList' //维保记录列表查询
+const RECORD_STATIC_AND_SELECT = 'iot/spotoperationrecord/getList3' //维保记录数据统计
+
+
+
+
+
+
+
 function ajaxRequest(path, method, data, success, error, type = 1) {
 
     let url = path;

+ 4 - 5
css/index.css

@@ -37,7 +37,7 @@
         
         .mainbox .column:nth-child(2) {
             flex: 6;
-            margin: 0 .575rem .1875rem;
+            margin: 0 .575rem 0;
             overflow: hidden
         }
         
@@ -332,12 +332,11 @@
             text-overflow: ellipsis;
             position: relative
         }
-        
-        .no table th:hover,
+        /* .no table th:hover,
         .no table td:hover {
             overflow: auto;
             text-overflow: clip;
-        }
+        } */
         
         .no tr td:first-child,
         .no tr th:first-child {
@@ -361,7 +360,7 @@
         
         .no tr td:nth-child(5),
         .no tr th:nth-child(5) {
-            width: 1.5rem
+            width: 1.9rem
         }
         
         .huan tr td:first-child,

+ 1 - 1
js/auth-manage.js

@@ -142,7 +142,7 @@ layui.use('layer', function() {
 
 
                 let id = $('.pure-table tr').find('.checked').data('id');
-                alert(id)
+                // alert(id)
 
                 //获取详情信息
                 getMenuDetailInfo({ 'id': id });

+ 1 - 2
js/index.js

@@ -236,7 +236,6 @@ function getIndexDate(queryParam = {}) {
                     data: lineDate,
                     "axisLabel": {
                         "color": "#c0c3cd",
-
                     },
                     "axisLine": {
                         lineStyle: {
@@ -585,7 +584,7 @@ function getIndexDate(queryParam = {}) {
                     <td >${index+1}</td>
                     <td >${item.time}</td>
                     <td >${item.dwtype} </td>
-                    <td > ${item.evtname}</td>
+                    <td title="${item.evtname}"> ${item.evtname}</td>
                     <td >${item.insertid} </td>
                 </tr>`
                 })

+ 340 - 0
js/record.js

@@ -0,0 +1,340 @@
+var page = 1;
+var totalPages = 0;
+
+var param1 = '';
+var param2 = '';
+var param3 = '';
+
+
+// 数据统计及责任人下拉 start
+getStaticAndSelectAjax();
+
+function getStaticAndSelectAjax(queryParam = {}) {
+
+    ajaxRequest(RECORD_STATIC_AND_SELECT, "POST", queryParam, function(result) {
+        let data = result.RESULT1;
+        $('#xjrysl').html(result.xjrysl)
+        $('#jrrw').html(result.jrrw)
+        $('#csrw').html(result.csrw)
+        $('#jrwcrw').html(result.jrwcrw)
+
+
+        let items = '';
+        data.forEach(function(item, key) {
+            items += `<option value="${item.person_liable_id}">${item.name}</option>`
+        })
+        $('#zrr').append(items);
+    }, function(errorMsg) {
+        alert("请求数据失败!");
+    })
+}
+// 数据统计end
+
+//列表渲染
+getListDataAjax();
+
+//获取列表 ajax请求
+function getListDataAjax(queryParam = {}, page = 1) {
+
+    queryParam.page = page;
+    queryParam.limit = 4; //每页显示条数
+    queryParam.start = 0; //每页显示条数
+
+    ajaxRequest(RECORD_LIST, "POST", queryParam, function(result) {
+        let data = result.RESULT;
+        let items = '';
+        if (result.totalCount > 0) {
+            data.forEach(function(item, key) {
+                items += "<tr>" +
+                    "<td class='status'  data-id=" + item.id + "></td>" +
+                    "<td>" + item.xh + "</td>" +
+                    "<td>" + item.plan_name + "</td>" +
+                    "<td>查看</td>" +
+                    "<td>" + item.ywcsj + "</td>" +
+                    "<td>" + item.zt + "</td>" +
+                    "<td>" + item.completion + "</td>" +
+                    "<td>" + item.name + "</td>" +
+                    "<td>" + item.phone + "</td>" +
+                    "</tr>"
+            })
+            $('#dataList').html(items);
+        }
+
+        console.log(result)
+        console.log(result.totalCount / result.limit)
+        totalPages = result.totalCount / result.limit;
+        $('#totalPage').html(totalPages); //总共多少页
+        $('#dataTotal').html(result.totalCount); //总共多少条数据
+        $('#currentPage').val(page); //当前页面
+        let pageFrom = (page - 1) * result.limit + 1; //开始
+        let pageTo = result.page * result.limit; //结束
+        // pageTo = pageTo > result.totalCount ? result.totalCount : pageTo;
+        $('#pageFrom').html(pageFrom);
+        $('#pageTo').html(pageTo);
+
+        // 无数据时
+        if (!data.length) {
+            $('.pager.has-data').hide()
+            $('.pager.no-data').show()
+        } else {
+            $('.pager.has-data').show()
+            $('.pager.no-data').hide()
+        }
+
+        if (page < totalPages) {
+            $('#nextPageButton,#lastPageButton').removeClass('disabled');
+        } else {
+            $('#nextPageButton,#lastPageButton').addClass('disabled');
+        }
+        if (page === 1) {
+            $('#firstPageButton,#prevPageButton').addClass('disabled');
+        } else {
+            $('#firstPageButton,#prevPageButton').removeClass('disabled');
+        }
+    }, function(errorMsg) {
+        alert("请求数据失败!");
+    })
+}
+
+
+//分页操作
+$('#firstPageButton').on('click', function() {
+    page = 1;
+    getListDataAjax(getSearchParamObj(), 1);
+})
+
+$('#lastPageButton').on('click', function() {
+    page = totalPages;
+    getListDataAjax(getSearchParamObj(), page);
+})
+
+$('#prevPageButton').on('click', function() {
+    page -= 1;
+    getListDataAjax(getSearchParamObj(), page);
+})
+
+$('#nextPageButton').on('click', function() {
+    page += 1;
+    getListDataAjax(getSearchParamObj(), page);
+})
+
+
+
+
+
+//按钮搜索
+$('#buttonSearch').on('click', function() {
+    page = 1;
+    getListDataAjax(getSearchParamObj());
+
+    param1 = $('#time_start').val()
+    param2 = $('#time_end').val()
+    param3 = $('#clzt').val()
+})
+
+//拼接搜索条件
+function getSearchParamObj() {
+    let queryParam = {};
+    let time_start = $('#time_start').val();
+    let time_end = $('#time_end').val()
+    let clzt = $('#clzt').val()
+    queryParam.time_start = time_start;
+    queryParam.time_end = time_end;
+    queryParam.clzt = clzt;
+    return queryParam;
+}
+
+//重置表单
+$('.reset').click(resetForm);
+//分页刷新按钮
+$('.pg-refresh').click(resetForm);
+
+//重置表单
+function resetForm() {
+    page = 1;
+    $("#clzt").val("");
+    $("#time_start").val("");
+    $("#time_end").val("");
+    getListDataAjax(getSearchParamObj());
+
+    param1 = $('#time_start').val()
+    param2 = $('#time_end').val()
+    param3 = $('#clzt').val()
+}
+
+
+
+
+//单位下拉
+getNameList()
+
+//单位下拉 ajax请求
+function getNameList() {
+    ajaxRequest(DEVICE_TYPE_COMPANYLIST, "POST", {}, function(result) {
+        let data = result.RESULT;
+        let items = '';
+        data.forEach(function(item, key) {
+            items += `<option value="${item.owner_id}">${item.owner_name}</option>`
+        })
+        $('#getNameList').append(items);
+        $('#getNameList2').append(items);
+    }, function(errorMsg) {
+        alert("请求数据失败!");
+    })
+}
+
+/*新增 修改 关闭 弹框*/
+var layer = layui.layer;
+var layerCreateIndex = '';
+var layerUpdateIndex = ''
+layui.use('layer', function() {
+    //处置弹框信息 
+    $('.handle').click(function() {
+        if (!$('.pure-table tr').has('.checked').length) {
+            layer.msg('请选择一条需要修改的信息!', { icon: 5 });
+        } else {
+            //重新渲染表单
+            $('#handleDataForm')[0].reset()
+            layui.use(['form'], function() {
+                var form = layui.form;
+                form.render('radio');
+            });
+            let userInfo = $('.pure-table tr').find('.checked').data('user');
+            $('.handleDataOut input[name=company_name]').val(userInfo.company_name)
+            $('.handleDataOut input[name=name]').val(userInfo.name)
+            $('.handleDataOut input[name=data]').val(userInfo.data)
+            $('.handleDataOut input[name=id').val(userInfo.id)
+            $('.handleDataOut input[name=dwtype]').val(userInfo.dwtype)
+            $('.handleDataOut input[name=status]').val(userInfo.status)
+            $('.handleDataOut input[name=device_code]').val(userInfo.device_code)
+            $('.handleDataOut textarea[name=clnr]').val(userInfo.clnr)
+            if (userInfo.clzt == "已处理") {
+                $('.handleDataOut textarea[name=clnr]').attr({ readonly: 'true' })
+                $('#handleUpdate').addClass('disabled')
+                $('.handle-range').hide()
+                $('.handleDataOut input[name=device_code]').val(userInfo.device_code)
+                $('.handleDataOut input[name=clwb]').val(userInfo.clwb);
+                $("input[type=radio]").attr("disabled", "true")
+                if (userInfo.clwb == 0) {
+                    $("#no").prop("checked", true);
+                } else {
+                    $("#yes").prop("checked", true);
+                }
+                layui.use(['form'], function() {
+                    var form = layui.form;
+                    form.render('radio');
+                });
+            } else {
+                $('.handleDataOut textarea[name=clnr]').removeAttr("readonly")
+                $("input[type=radio]").removeAttr("disabled")
+                $('#handleUpdate').removeClass('disabled')
+                $('.handle-range').show()
+                layui.use(['form'], function() {
+                    var form = layui.form;
+                    form.render('radio');
+                });
+            }
+
+            layerUpdateIndex = layer.open({
+                type: 1,
+                title: false,
+                closeBtn: 0,
+                shadeClose: true,
+                skin: 'yourclass',
+                area: ['410px', '440px'],
+                content: $(".handleDataOut"),
+                success: function() {
+                    $('.clsBtn,.cancel').click(function() {
+                        layer.close(layerUpdateIndex);
+                    })
+                }
+            });
+        }
+    })
+})
+
+/* 处置发送请求 */
+$('#handleUpdate').click(function() {
+
+    //获取表单的值 并转换成对象
+    let allParam = serializeArrayToObj($("#handleDataForm").serializeArray());
+
+    //验证数据是否为空
+    let res = validParamIsEmpty(allParam, {
+        "clnr": "请输入处理内容",
+    });
+
+    if (res.code == -1) {
+        alert(res.msg);
+        return;
+    }
+
+    ajaxRequest(EVENT_DANGER_MANAGE_HANDLE, "POST", allParam, function(result) {
+        layer.close(layerUpdateIndex);
+        layer.msg('处置成功!', { icon: 6 });
+        getListDataAjax();
+    }, function(errorMsg) {
+        alert("数据修改失败!");
+    })
+})
+
+
+
+// 导出 start
+$('.export').click(function() {
+    getDataExport({ "time_start": param1, "time_end": param2, "clzt": param3 })
+})
+
+function getDataExport(queryParam = {}) {
+    // 输出base64编码
+    const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
+
+    ajaxRequest(EVENT_DANGER_MANAGE_EXPORT, "POST", queryParam, function(result) {
+        console.log(result.RESULT)
+        let data = result.RESULT;
+        let newData = [];
+        if (data) {
+            data.forEach(function(item, index) {
+                var time = item.time.time ? getFormatDate(item.time.time) : '';
+                var clsj = item.clsj.time ? getFormatDate(item.clsj.time) : '';
+
+                newData.push({ orderIdx: item.orderIdx, company_name: item.company_name, time: time, data: item.data, data4: item.data4, fullname: item.fullname, clzt: item.clzt, clr: item.clr, clsj: clsj })
+            });
+        }
+
+        let str = '<tr style="text-align:center"><th>序号</th><th>单位名称</th><th>上报时间</th><th>报告数据</th><th>告警值</th><th>报告内容</th><th>处理状态</th><th>处理人</th><th>处理时间</th></tr>';
+        // 循环遍历,每行加入tr标签,每个单元格加td标签
+        for (let i = 0; i < newData.length; i++) {
+            str += '<tr style="text-align:center">';
+            for (const key in newData[i]) {
+                // 增加\t为了不让表格显示科学计数法或者其他格式
+                str += `<td x:str>${ newData[i][key] + '\t'}</td>`;
+            }
+            str += '</tr>';
+        }
+        // Worksheet名
+        const worksheet = 'Sheet1'
+        const uri = 'data:application/vnd.ms-excel;base64,';
+
+        // 下载的表格模板数据
+        const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" 
+        xmlns:x="urn:schemas-microsoft-com:office:excel" 
+        xmlns="http://www.w3.org/TR/REC-html40">
+        <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
+        <x:Name>${worksheet}</x:Name>
+        <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
+        </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
+        </head><body><table>${str}</table></body></html>`;
+
+        // 通过创建a标签实现
+        const link = document.createElement("a");
+        link.href = uri + base64(template);
+        // 对下载的文件命名
+        link.download = "隐患管理数据表.xls";
+        link.click();
+
+    }, function(errorMsg) {
+        alert("请求数据失败!");
+    })
+}
+// 导出  end

+ 55 - 0
operate-manage.html

@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang="zh">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>运维管理(隐患管理)</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link rel="stylesheet" href="layui/css/layui.css">
+    <link rel="stylesheet" href="css/common.css" />
+    <link rel="stylesheet" href="css/per-manage.css" />
+    <script src="js/flexible.js"></script>
+
+</head>
+
+<body style="background-image:url(images/big-bg.png)">
+    <section class="mainbox ">
+        <div class="tit-box flex">
+            <h2 class="title flex2">运维管理
+            </h2>
+            <h2 class="title flex10">详细列表</h2>
+        </div>
+        <div class="content-box flex">
+            <div class="column column1 flex2">
+                <ul>
+                    <li class="selected"><a href="pages/operation/record.html" target="iframe">维保记录</a></li>
+                    <li><a href="pages/operation/plan.html" target="iframe">维保计划</a></li>
+                    <li><a href="pages/operation/group.html" target="iframe">班组人员</a></li>
+                    <li><a href="pages/operation/point.html" target="iframe">维保点位</a></li>
+                </ul>
+            </div>
+            <div class="column3 flex10">
+                <iframe name="iframe" width="100%" height="100%" frameborder="0" src="pages/operation/record.html"></iframe>
+            </div>
+        </div>
+
+    </section>
+
+    <script src="js/jquery.js"></script>
+
+    <script>
+        $(function() {
+            $('ul li').click(function() {
+                $(this).siblings().each(function() {
+                        $(this).removeClass('selected');
+                    })
+                    //当前选中
+                $(this).addClass('selected')
+            })
+        })
+    </script>
+
+</body>
+
+</html>

+ 211 - 0
pages/operation/group.html

@@ -0,0 +1,211 @@
+<!DOCTYPE html>
+<html lang="zh">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>运维管理(班组人员)</title>
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../layui/css/layui.css">
+    <link rel="stylesheet" href="../../css/common.css" />
+    <link rel="stylesheet" href="../../css/per-manage.css" />
+    <script src="../../js/flexible-inner.js"></script>
+
+</head>
+
+<body style="background:rgba(0,0,0,0)">
+    <div class="memberbox memberbox2">
+        <div class="membertit">班组人员</div>
+        <div class="member-choose">
+            <span>事件名称</span>
+            <input type="text" id="event_name">
+            <span>事件类型</span>
+            <select name="" id="event_type">>
+                <option value="">所有</option>
+                <option value="1">消防隐患</option>
+                <option value="2">消防告警</option>
+                <option value="3">设备设施</option>
+            </select>
+            <a class="button" id="buttonSearch">确定</a>
+            <a class="button reset">重置</a>
+        </div>
+        <div class="operatebox"></div>
+        <ul class="member-operate">
+            <div class="event-count-box">
+                <ul>
+                    <li class="color-blue">
+                        <img src="../../images/event-icon1.png" alt="">
+                        <span>事件总数</span>
+                        <span class="event-num color-blue" id="totalCount">0</span>
+                    </li>
+                    <li class="color-orange">
+                        <img src="../../images/event-icon2.png" alt="">
+                        <span>已处置数</span>
+                        <span class="event-num color-orange" id="handled">0</span>
+                    </li>
+                    <li class="color-red">
+                        <img src="../../images/event-icon3.png" alt="">
+                        <span>未处置数</span>
+                        <span class="event-num color-red" id="unhandle">0</span>
+                    </li>
+                    <li class="color-green">
+                        <img src="../../images/event-icon4.png" alt="">
+                        <span>处置率</span>
+                        <span class="event-num color-green" id="handleRate">0%</span>
+                    </li>
+                </ul>
+            </div>
+            <a class="button add">新增</a>
+            <a class="button handle">处置</a>
+            <a class="button export">导出</a>
+        </ul>
+        <table class="pure-table" cellspacing="0px">
+            <thead>
+                <tr>
+                    <th style="width:24px">
+                    </th>
+                    <th>序号</th>
+                    <th>单位名称</th>
+                    <th>上报时间</th>
+                    <th>事件名称</th>
+                    <th>事件类型</th>
+                    <th>处理状态</th>
+                    <th>处理人</th>
+                    <th>处理时间</th>
+                </tr>
+            </thead>
+            <tbody id="dataList">
+            </tbody>
+        </table>
+    </div>
+
+    <div class="pager has-data flex">
+        <div class="pager-left flex1 align-left">
+            <ul>
+                <li id="firstPageButton" class="pg-first disabled"></li>
+                <li id="prevPageButton" class="pg-prev disabled"></li>
+                <li class="pg-des">
+                    第 <input id="currentPage" type="text" size="1" value="1"> 页,共 <span id="totalPage">1</span> 页
+                </li>
+                <li id="nextPageButton" class="pg-next"></li>
+                <li id="lastPageButton" class="pg-last"></li>
+                <li class="pg-refresh">
+                    <a href="javascript:location.reload();"></a>
+                </li>
+            </ul>
+        </div>
+        <div class="pager-right  flex1 align-right">显示第 <span id="pageFrom"> 1 </span> 条到 <span id="pageTo">
+                1 </span>条记录,总共 <span id="dataTotal">
+                1 </span>条
+        </div>
+    </div>
+    <div class="pager no-data" style="display:none;text-align:right">
+        暂无数据
+    </div>
+
+    <!-- 新增弹框 -->
+    <div class="xcConfirm  addDataOut" style="display:none">
+        <div class="popBox">
+            <div class="ttBox">
+                <a class="clsBtn"></a>
+                <span class="tt">新增</span>
+            </div>
+            <form action="" id="addDataForm">
+                <div class="txtBox">
+                    <div>
+                        <span>事件名称:<i class="necessary">*</i></span>
+                        <input type="text" name="event_name">
+                    </div>
+                    <div>
+                        <span>事件内容:<i class="necessary">*</i></span>
+                        <input type="text" name="event_content">
+                    </div>
+                    <div>
+                        <span>事件类型:<i class="necessary">*</i></span>
+                        <select name="event_type" id="">
+                            <option value="1">消防隐患</option>
+                            <option value="2">消防告警</option>
+                            <option value="3">设备设施</option>
+                        </select>
+                    </div>
+                    <div>
+                        <span>所属单位:<i class="necessary">*</i></span>
+                        <select name="company_code" id="getNameList">
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                </div>
+            </form>
+            <div class="btnArea">
+                <div class="btnGroup">
+                    <a class="sgBtn ok" id="addData"><img src="../../images/accept.png" alt=""> 提交</a>
+                    <a class="sgBtn cancel"><img src="../../images/cancel.png" alt="">关闭</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    </div>
+    <div class="xcConfirm  handleDataOut" style="display:none">
+        <!-- 处置弹框 -->
+        <div class="popBox">
+            <div class="ttBox">
+                <a class="clsBtn"></a>
+                <span class="tt">处置</span>
+            </div>
+            <form action="" id="handleDataForm">
+                <div class="txtBox ">
+                    <div>
+                        <span>单位名称:</span>
+                        <input type="text" name="company_name" readonly>
+                    </div>
+                    <div>
+                        <span>事件类型:</span>
+                        <input type="text" name="event_type" readonly>
+                    </div>
+                    <div>
+                        <span>事件名称:</span>
+                        <input type="text" name="event_name" readonly>
+                    </div>
+                    <div>
+                        <span>事件内容:</span>
+                        <input type="text" name="event_content" readonly>
+                    </div>
+                    <div>
+                        <span>处置内容:</span>
+                        <textarea name="cl_content" id="" cols="30" rows="6"></textarea>
+                    </div>
+                    <div style="opacity:0">
+                        <span>数据id:</span>
+                        <input type="text" name="id">
+                    </div>
+                </div>
+            </form>
+            <div class="btnArea">
+                <div class="btnGroup">
+                    <a class="sgBtn ok" id="handleUpdate"><img src="../../images/accept.png" alt=""> 提交</a>
+                    <a class="sgBtn cancel"><img src="../../images/cancel.png" alt="">关闭</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div id="view"></div>
+
+    <script src="../../js/jquery.js"></script>
+    <script src="../../js/util.js"></script>
+    <script src="../../api/request.js"></script>
+    <script src="../../js/main.js"></script>
+    <script src="../../layui/layui.js"></script>
+    <script src="../../js/valid.js"></script>
+    <script src="../../js/event-manage.js"></script>
+    <script>
+        layui.use(['form', 'layedit', 'laydate'], function() {
+            var form = layui.form,
+                layer = layui.layer,
+                layedit = layui.layedit,
+                laydate = layui.laydate;
+        });
+    </script>
+
+</body>
+
+</html>

+ 240 - 0
pages/operation/plan.html

@@ -0,0 +1,240 @@
+<!DOCTYPE html>
+<html lang="zh">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>运维管理(维保计划)</title>
+    <link rel="shortcut icon" href="../../favicon.ico">
+
+    <link rel="stylesheet" href="../../layui/css/layui.css">
+    <link rel="stylesheet" href="../../css/common.css" />
+    <link rel="stylesheet" href="../../css/per-manage.css" />
+
+    <script src="../../js/flexible-inner.js"></script>
+
+</head>
+
+<body style="background:rgba(0,0,0,0)">
+    <div class="memberbox ">
+        <div class="membertit">维保计划</div>
+        <div class="member-choose">
+            <span>开始时间</span>
+            <div class="layui-inline">
+                <input type="text" id="time_start" class="layui-input test-item" placeholder="所有">
+            </div>
+
+            <span>结束时间</span>
+
+            <div class="layui-inline">
+                <input type="text" id="time_end" class="layui-input test-item" placeholder="所有">
+            </div>
+
+            <span>处理状态</span>
+            <select name="" id="clzt">
+                <option value="">所有</option>
+                <option value="1">已处理</option>
+                <option value="0">未处理</option>
+            </select>
+
+            <a class="button" id="buttonSearch">确定</a>
+            <a class="button reset">重置</a>
+        </div>
+        <div class="operatebox"></div>
+        <ul class="member-operate">
+            <div class="event-count-box">
+                <ul>
+                    <li class="color-blue">
+                        <img src="../../images/event-icon1.png" alt="">
+                        <span>事件总数</span>
+                        <span class="event-num color-blue" id="totalCount">0</span>
+                    </li>
+                    <li class="color-orange">
+                        <img src="../../images/event-icon2.png" alt="">
+                        <span>已处置数</span>
+                        <span class="event-num color-orange" id="handled">0</span>
+                    </li>
+                    <li class="color-red">
+                        <img src="../../images/event-icon3.png" alt="">
+                        <span>未处置数</span>
+                        <span class="event-num color-red" id="unhandle">0</span>
+                    </li>
+                    <li class="color-green">
+                        <img src="../../images/event-icon4.png" alt="">
+                        <span>处置率</span>
+                        <span class="event-num color-green" id="handleRate">0%</span>
+                    </li>
+                </ul>
+            </div>
+            <a class="button handle">处置</a>
+            <a class="button export">导出</a>
+
+        </ul>
+
+
+        <table class="pure-table" cellspacing="0px">
+            <thead>
+                <tr>
+                    <th style="width:24px">
+                    </th>
+                    <th>序号</th>
+                    <th>单位名称</th>
+                    <th>上报时间</th>
+                    <th>报告数据</th>
+                    <th>报告内容</th>
+                    <th>处理状态</th>
+                    <th>处理人</th>
+                    <th>处理时间</th>
+                </tr>
+            </thead>
+
+            <tbody id="dataList">
+            </tbody>
+        </table>
+    </div>
+    <div class="pager has-data flex">
+        <div class="pager-left flex1 align-left">
+            <ul>
+                <li id="firstPageButton" class="pg-first disabled"></li>
+                <li id="prevPageButton" class="pg-prev disabled"></li>
+                <li class="pg-des">
+                    第 <input id="currentPage" type="text" size="1" value="1"> 页,共 <span id="totalPage">1</span> 页
+                </li>
+                <li id="nextPageButton" class="pg-next"></li>
+                <li id="lastPageButton" class="pg-last"></li>
+                <li class="pg-refresh">
+                    <a href="javascript:location.reload();"></a>
+                </li>
+            </ul>
+        </div>
+        <div class="pager-right  flex1 align-right">显示第 <span id="pageFrom"> 1 </span> 条到 <span id="pageTo">
+                1 </span>条记录,总共 <span id="dataTotal">
+                1 </span>条
+        </div>
+    </div>
+    <div class="pager no-data" style="display:none;text-align:right">
+        暂无数据
+    </div>
+
+    <div class="xcConfirm handleDataOut" style="display:none">
+        <!-- 处置弹框 -->
+        <div class="popBox">
+            <div class="ttBox">
+                <a class="clsBtn"></a>
+                <span class="tt">处置详情</span>
+            </div>
+            <form action="" id="handleDataForm">
+                <div class="txtBox ">
+                    <div>
+                        <span>单位名称:</span>
+                        <input type="text" name="company_name" readonly>
+                    </div>
+                    <div>
+                        <span>设备名称:</span>
+                        <input type="text" name="name" readonly>
+                    </div>
+                    <div>
+                        <span>报告数据:</span>
+                        <input type="text" name="data" readonly>
+                    </div>
+                    <div class="error-radio layui-form">
+                        <span>误报:</span>
+                        <div class="layui-form-item">
+                            <div class="layui-input-block">
+
+                                <input id="yes" type="radio" name="clwb" value="" title="是" checked>
+                                <input id="no" type="radio" name="clwb" value="" title="否">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="error-radio layui-form handle-range">
+                        <span>处理范围:</span>
+                        <div class="layui-form-item">
+                            <div class="layui-input-block">
+                                <input type="radio" name="clwb1" value="" title="批量" checked>
+                                <input type="radio" name="clwb1" value="" title="单一">
+                            </div>
+                        </div>
+                    </div>
+                    <div>
+                        <span>处理内容:</span>
+                        <textarea name="clnr" id="" cols="10" rows="5"></textarea>
+                    </div>
+                    <div style="opacity:0">
+                        <span>数据id:</span>
+                        <input type="text" name="id">
+                    </div>
+                    <div style="opacity:0">
+                        <span>设备类型:</span>
+                        <input type="text" name="dwtype">
+                    </div>
+                    <div style="opacity:0">
+                        <span>数据上报状态:</span>
+                        <input type="text" name="status">
+                    </div>
+                    <div style="opacity:0">
+                        <span>设备编号:</span>
+                        <input type="text" name="device_code">
+                    </div>
+                </div>
+            </form>
+
+            <div class="btnArea">
+                <div class="btnGroup">
+                    <a class="sgBtn ok" id="handleUpdate"><img src="../../images/accept.png" alt=""> 提交</a>
+                    <a class="sgBtn cancel"><img src="../../images/cancel.png" alt="">关闭</a>
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+
+
+    <script src="../../js/jquery.js"></script>
+    <script src="../../js/util.js"></script>
+    <script src="../../api/request.js"></script>
+    <script src="../../js/main.js"></script>
+    <script src="../../layui/layui.js"></script>
+    <script src="../../js/valid.js"></script>
+    <script src="../../js/eventWarning-manage.js"></script>
+    <script>
+        layui.use(['form', 'layedit', 'laydate'], function() {
+            var form = layui.form,
+                layer = layui.layer,
+                layedit = layui.layedit,
+                laydate = layui.laydate;
+        });
+
+        layui.use('laydate', function() {
+            var laydate = layui.laydate;
+            //开始日期
+            var insStart = laydate.render({
+                elem: '#time_start',
+                trigger: 'click',
+                done: function(value, date) {
+                    //更新结束日期的最小日期
+                    insEnd.config.min = lay.extend({}, date, {
+                        month: date.month - 1
+                    });
+                    //自动弹出结束日期的选择器
+                    insEnd.config.elem[0].focus();
+                }
+            });
+
+            //结束日期
+            var insEnd = laydate.render({
+                elem: '#time_end',
+                trigger: 'click',
+                done: function(value, date) {
+                    //更新开始日期的最大日期
+                    insStart.config.max = lay.extend({}, date, {
+                        month: date.month - 1
+                    });
+                }
+            });
+        });
+    </script>
+</body>
+
+</html>

+ 211 - 0
pages/operation/point.html

@@ -0,0 +1,211 @@
+<!DOCTYPE html>
+<html lang="zh">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>运维管理(维保点位)</title>
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../layui/css/layui.css">
+    <link rel="stylesheet" href="../../css/common.css" />
+    <link rel="stylesheet" href="../../css/per-manage.css" />
+    <script src="../../js/flexible-inner.js"></script>
+
+</head>
+
+<body style="background:rgba(0,0,0,0)">
+    <div class="memberbox memberbox2">
+        <div class="membertit">维保点位</div>
+        <div class="member-choose">
+            <span>事件名称</span>
+            <input type="text" id="event_name">
+            <span>事件类型</span>
+            <select name="" id="event_type">>
+                <option value="">所有</option>
+                <option value="1">消防隐患</option>
+                <option value="2">消防告警</option>
+                <option value="3">设备设施</option>
+            </select>
+            <a class="button" id="buttonSearch">确定</a>
+            <a class="button reset">重置</a>
+        </div>
+        <div class="operatebox"></div>
+        <ul class="member-operate">
+            <div class="event-count-box">
+                <ul>
+                    <li class="color-blue">
+                        <img src="../../images/event-icon1.png" alt="">
+                        <span>事件总数</span>
+                        <span class="event-num color-blue" id="totalCount">0</span>
+                    </li>
+                    <li class="color-orange">
+                        <img src="../../images/event-icon2.png" alt="">
+                        <span>已处置数</span>
+                        <span class="event-num color-orange" id="handled">0</span>
+                    </li>
+                    <li class="color-red">
+                        <img src="../../images/event-icon3.png" alt="">
+                        <span>未处置数</span>
+                        <span class="event-num color-red" id="unhandle">0</span>
+                    </li>
+                    <li class="color-green">
+                        <img src="../../images/event-icon4.png" alt="">
+                        <span>处置率</span>
+                        <span class="event-num color-green" id="handleRate">0%</span>
+                    </li>
+                </ul>
+            </div>
+            <a class="button add">新增</a>
+            <a class="button handle">处置</a>
+            <a class="button export">导出</a>
+        </ul>
+        <table class="pure-table" cellspacing="0px">
+            <thead>
+                <tr>
+                    <th style="width:24px">
+                    </th>
+                    <th>序号</th>
+                    <th>单位名称</th>
+                    <th>上报时间</th>
+                    <th>事件名称</th>
+                    <th>事件类型</th>
+                    <th>处理状态</th>
+                    <th>处理人</th>
+                    <th>处理时间</th>
+                </tr>
+            </thead>
+            <tbody id="dataList">
+            </tbody>
+        </table>
+    </div>
+
+    <div class="pager has-data flex">
+        <div class="pager-left flex1 align-left">
+            <ul>
+                <li id="firstPageButton" class="pg-first disabled"></li>
+                <li id="prevPageButton" class="pg-prev disabled"></li>
+                <li class="pg-des">
+                    第 <input id="currentPage" type="text" size="1" value="1"> 页,共 <span id="totalPage">1</span> 页
+                </li>
+                <li id="nextPageButton" class="pg-next"></li>
+                <li id="lastPageButton" class="pg-last"></li>
+                <li class="pg-refresh">
+                    <a href="javascript:location.reload();"></a>
+                </li>
+            </ul>
+        </div>
+        <div class="pager-right  flex1 align-right">显示第 <span id="pageFrom"> 1 </span> 条到 <span id="pageTo">
+                1 </span>条记录,总共 <span id="dataTotal">
+                1 </span>条
+        </div>
+    </div>
+    <div class="pager no-data" style="display:none;text-align:right">
+        暂无数据
+    </div>
+
+    <!-- 新增弹框 -->
+    <div class="xcConfirm  addDataOut" style="display:none">
+        <div class="popBox">
+            <div class="ttBox">
+                <a class="clsBtn"></a>
+                <span class="tt">新增</span>
+            </div>
+            <form action="" id="addDataForm">
+                <div class="txtBox">
+                    <div>
+                        <span>事件名称:<i class="necessary">*</i></span>
+                        <input type="text" name="event_name">
+                    </div>
+                    <div>
+                        <span>事件内容:<i class="necessary">*</i></span>
+                        <input type="text" name="event_content">
+                    </div>
+                    <div>
+                        <span>事件类型:<i class="necessary">*</i></span>
+                        <select name="event_type" id="">
+                            <option value="1">消防隐患</option>
+                            <option value="2">消防告警</option>
+                            <option value="3">设备设施</option>
+                        </select>
+                    </div>
+                    <div>
+                        <span>所属单位:<i class="necessary">*</i></span>
+                        <select name="company_code" id="getNameList">
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                </div>
+            </form>
+            <div class="btnArea">
+                <div class="btnGroup">
+                    <a class="sgBtn ok" id="addData"><img src="../../images/accept.png" alt=""> 提交</a>
+                    <a class="sgBtn cancel"><img src="../../images/cancel.png" alt="">关闭</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    </div>
+    <div class="xcConfirm  handleDataOut" style="display:none">
+        <!-- 处置弹框 -->
+        <div class="popBox">
+            <div class="ttBox">
+                <a class="clsBtn"></a>
+                <span class="tt">处置</span>
+            </div>
+            <form action="" id="handleDataForm">
+                <div class="txtBox ">
+                    <div>
+                        <span>单位名称:</span>
+                        <input type="text" name="company_name" readonly>
+                    </div>
+                    <div>
+                        <span>事件类型:</span>
+                        <input type="text" name="event_type" readonly>
+                    </div>
+                    <div>
+                        <span>事件名称:</span>
+                        <input type="text" name="event_name" readonly>
+                    </div>
+                    <div>
+                        <span>事件内容:</span>
+                        <input type="text" name="event_content" readonly>
+                    </div>
+                    <div>
+                        <span>处置内容:</span>
+                        <textarea name="cl_content" id="" cols="30" rows="6"></textarea>
+                    </div>
+                    <div style="opacity:0">
+                        <span>数据id:</span>
+                        <input type="text" name="id">
+                    </div>
+                </div>
+            </form>
+            <div class="btnArea">
+                <div class="btnGroup">
+                    <a class="sgBtn ok" id="handleUpdate"><img src="../../images/accept.png" alt=""> 提交</a>
+                    <a class="sgBtn cancel"><img src="../../images/cancel.png" alt="">关闭</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div id="view"></div>
+
+    <script src="../../js/jquery.js"></script>
+    <script src="../../js/util.js"></script>
+    <script src="../../api/request.js"></script>
+    <script src="../../js/main.js"></script>
+    <script src="../../layui/layui.js"></script>
+    <script src="../../js/valid.js"></script>
+    <script src="../../js/event-manage.js"></script>
+    <script>
+        layui.use(['form', 'layedit', 'laydate'], function() {
+            var form = layui.form,
+                layer = layui.layer,
+                layedit = layui.layedit,
+                laydate = layui.laydate;
+        });
+    </script>
+
+</body>
+
+</html>

+ 238 - 0
pages/operation/record.html

@@ -0,0 +1,238 @@
+<!DOCTYPE html>
+<html lang="zh">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>运维管理(维保记录)</title>
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../layui/css/layui.css">
+    <link rel="stylesheet" href="../../css/common.css" />
+    <link rel="stylesheet" href="../../css/per-manage.css" />
+    <script src="../../js/flexible-inner.js"></script>
+
+</head>
+
+<body style="background:rgba(0,0,0,0)">
+    <div class="memberbox ">
+        <div class="membertit">维保记录</div>
+        <div class="member-choose">
+            <span>完成时间</span>
+            <div class="layui-inline">
+                <input type="text" id="time_start" class="layui-input test-item" placeholder="所有">
+            </div>
+            <span>~</span>
+            <div class="layui-inline">
+                <input type="text" id="time_end" class="layui-input test-item" placeholder="所有">
+            </div>
+            <span>任务状态</span>
+            <select name="" id="clzt">
+                <option value="">所有</option>
+                <option value="0">未开始</option>
+                <option value="1">进行中</option>
+                <option value="2">完成</option>
+                <option value="3">超时</option>
+            </select>
+            <span>任务名称</span>
+            <input type="text" id="buildName">
+
+            <span>责任人</span>
+            <select name="" id="zrr">
+                <option value="">所有</option>
+            </select>
+
+
+            <a class="button" id="buttonSearch">确定</a>
+            <a class="button reset">重置</a>
+        </div>
+        <div class="operatebox"></div>
+        <ul class="member-operate">
+            <div class="event-count-box">
+                <ul>
+                    <li class="color-blue">
+                        <img src="../../images/event-icon1.png" alt="">
+                        <span>维保人员数量</span>
+                        <span class="event-num color-blue" id="xjrysl">0</span>
+                    </li>
+                    <li class="color-orange">
+                        <img src="../../images/event-icon2.png" alt="">
+                        <span>今日任务</span>
+                        <span class="event-num color-orange" id="jrrw">0</span>
+                    </li>
+                    <li class="color-red">
+                        <img src="../../images/event-icon3.png" alt="">
+                        <span>超时任务</span>
+                        <span class="event-num color-red" id="csrw">0</span>
+                    </li>
+                    <li class="color-green">
+                        <img src="../../images/event-icon4.png" alt="">
+                        <span>今日完成任务</span>
+                        <span class="event-num color-green" id="jrwcrw">0%</span>
+                    </li>
+                </ul>
+            </div>
+            <a class="button export">导出</a>
+        </ul>
+        <table class="pure-table" cellspacing="0px">
+            <thead>
+                <tr>
+                    <th style="width:24px">
+                    </th>
+                    <th>序号</th>
+                    <th>任务名称</th>
+                    <th>维保点位</th>
+                    <th>应完成时间</th>
+                    <th>当前状态</th>
+                    <th>完成情况(%)</th>
+                    <th>相关责任人</th>
+                    <th>联系电话</th>
+                </tr>
+            </thead>
+            <tbody id="dataList">
+            </tbody>
+        </table>
+    </div>
+
+    <div class="pager has-data flex">
+        <div class="pager-left flex1 align-left">
+            <ul>
+                <li id="firstPageButton" class="pg-first disabled"></li>
+                <li id="prevPageButton" class="pg-prev disabled"></li>
+                <li class="pg-des">
+                    第 <input id="currentPage" type="text" size="1" value="1"> 页,共 <span id="totalPage">1</span> 页
+                </li>
+                <li id="nextPageButton" class="pg-next"></li>
+                <li id="lastPageButton" class="pg-last"></li>
+                <li class="pg-refresh">
+                    <a href="javascript:location.reload();"></a>
+                </li>
+            </ul>
+        </div>
+        <div class="pager-right  flex1 align-right">显示第 <span id="pageFrom"> 1 </span> 条到 <span id="pageTo">
+                            1 </span>条记录,总共 <span id="dataTotal">
+                            1 </span>条
+        </div>
+    </div>
+    <div class="pager no-data" style="display:none;text-align:right">
+        暂无数据
+    </div>
+
+    <div class="xcConfirm handleDataOut" style="display:none">
+        <!-- 处置弹框 -->
+        <div class="popBox">
+            <div class="ttBox">
+                <a class="clsBtn"></a>
+                <span class="tt">处置详情</span>
+            </div>
+            <form action="" id="handleDataForm">
+                <div class="txtBox ">
+                    <div>
+                        <span>单位名称:</span>
+                        <input type="text" name="company_name" readonly>
+                    </div>
+                    <div>
+                        <span>设备名称:</span>
+                        <input type="text" name="name" readonly>
+                    </div>
+                    <div>
+                        <span>报告数据:</span>
+                        <input type="text" name="data" readonly>
+                    </div>
+                    <div class="error-radio layui-form">
+                        <span>误报:</span>
+                        <div class="layui-form-item">
+                            <div class="layui-input-block">
+                                <input id="yes" type="radio" name="clwb" value="1" title="是" checked>
+                                <input id="no" type="radio" name="clwb" value="0" title="否">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="error-radio layui-form handle-range">
+                        <span>处理范围:</span>
+                        <div class="layui-form-item">
+                            <div class="layui-input-block">
+                                <input type="radio" name="clwb1" value="" title="批量" checked>
+                                <input type="radio" name="clwb1" value="" title="单一">
+                            </div>
+                        </div>
+                    </div>
+                    <div>
+                        <span>处理内容:</span>
+                        <textarea name="clnr" id="" cols="10" rows="5"></textarea>
+                    </div>
+                    <div style="opacity:0">
+                        <span>数据id:</span>
+                        <input type="text" name="id">
+                    </div>
+                    <div style="opacity:0">
+                        <span>设备类型:</span>
+                        <input type="text" name="dwtype">
+                    </div>
+                    <div style="opacity:0">
+                        <span>数据上报状态:</span>
+                        <input type="text" name="status">
+                    </div>
+                    <div style="opacity:0">
+                        <span>设备编号:</span>
+                        <input type="text" name="device_code">
+                    </div>
+                </div>
+            </form>
+
+            <div class="btnArea">
+                <div class="btnGroup">
+                    <a class="sgBtn ok" id="handleUpdate"><img src="../../images/accept.png" alt=""> 提交</a>
+                    <a class="sgBtn cancel"><img src="../../images/cancel.png" alt="">关闭</a>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <script src="../../js/jquery.js"></script>
+    <script src="../../js/util.js"></script>
+    <script src="../../api/request.js"></script>
+    <script src="../../js/main.js"></script>
+    <script src="../../layui/layui.js"></script>
+    <script src="../../js/valid.js"></script>
+    <script src="../../js/record.js"></script>
+    <script>
+        layui.use(['form', 'layedit', 'laydate'], function() {
+            var form = layui.form,
+                layer = layui.layer,
+                layedit = layui.layedit,
+                laydate = layui.laydate;
+        });
+
+        layui.use('laydate', function() {
+            var laydate = layui.laydate;
+            //开始日期
+            var insStart = laydate.render({
+                elem: '#time_start',
+                trigger: 'click',
+                done: function(value, date) {
+                    //更新结束日期的最小日期
+                    insEnd.config.min = lay.extend({}, date, {
+                        month: date.month - 1
+                    });
+                    //自动弹出结束日期的选择器
+                    insEnd.config.elem[0].focus();
+                }
+            });
+
+            //结束日期
+            var insEnd = laydate.render({
+                elem: '#time_end',
+                trigger: 'click',
+                done: function(value, date) {
+                    //更新开始日期的最大日期
+                    insStart.config.max = lay.extend({}, date, {
+                        month: date.month - 1
+                    });
+                }
+            });
+
+        });
+    </script>
+</body>
+
+</html>