| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 | <!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta http-equiv="Cache-Control" content="no-cache,no-store,no-siteapp,must-revalidate">    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="expires" content="0">    <meta name="author" content="">    <meta name="description" content=""/>    <meta name="keywords" content="扫码支付,线上投币,运营数据,物联网"/>    <meta name="format-detection" content="telephone=no,email=no">    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">    <title>故障管理</title>    <link rel="stylesheet" href="https://cdn.washpayer.com/components/lib/mui.min.css">    <link rel="stylesheet" href="../components/custom/css/common.css">    <link rel="stylesheet" href="css/xyf.common.min.css">    <style>        .oper-btn {            margin-right: -5px;        }        .line-head {            font-size: 16px;            font-weight: bold;            color: #000;            padding-bottom: 10px;        }        .port-info {            float: left;            width: 100%;            overflow: hidden;            white-space: nowrap;            text-overflow: ellipsis;        }    </style></head><body class=""><h4 class="param-title" id="device">设备</h4><!--整机显示--><div class="mui-input-group mui-control-content, mui-active mui-hidden" id="deviceFault"></div><!--端口显示--><div class="mui-input-group mui-control-content mui-active mui-hidden" id="portPanel"></div><!--取消设备故障按钮--><div class="custom-subt">    <a class="custom-btn custom-btn-primary" href="javascript:clearAllFault();">全部清除</a></div><script src="https://cdn.washpayer.com/components/lib/jquery.min.js"></script><script src="../components/lib/jquery.qrcode.min.js"></script><script src="https://cdn.washpayer.com/components/lib/mui.min.js"></script><script src="/components/custom/js/common.js"></script><script src="js/xyf.common.js"></script><script src="js/device-features.js"></script><script>    var logicalCode = getQueryString("logicalCode");    var type = getQueryString("type");    $("#device").html("<i class='c-primary iconfont " + getDevIconName(type) + "'></i> " + type + logicalCode);    //获取 设备功能设置    sendRequest({        url: "/dealer/getDeviceWarning",        type: "GET",        data: {logicalCode: logicalCode},        mask: "正在获取告警信息...",        success: function (response) {            if (response.result === 1) {                var payload = response.payload;                // 显示端口设置                var ports = payload.ports;                if (ports.length > 0) {                    for (var port of ports) {                        setPortFault(port);                    }                }            } else {                mui.toast(response.description);            }        }    });    // 获取节点title    function getLineTitle(item) {        if (item.index) {            return "端口" + item.index        } else {            return "整机告警"        }    }    // 获取故障等级    function getFaultLevel(status) {        var statusMap = {            1: {                name: '告警',                style: 'c-blue'            },            2: {                name: '故障',                style: 'c-red'            },        };        var defaultItem = {name: '未知', style: 'c-success'};        var item = statusMap[status];        // 普通充电桩        if (item) {            return item        } else {            return defaultItem        }    }    // 生成故障节点    function generateFaultNode(item) {        var dom = $(            `<div class="mui-table-view-cell">            <p class="line-head margin-t-5">                <span class=""></span>            </p>            <p class="port-info margin-t-5">                <span class="">告警状态:</span>                <span class="fault-status text-style"></span>            </p>            <p class="port-info margin-t-5">                <span class="">告警时间:</span>                <span class="fault-time text-style"></span>            </p>            <p class="port-info margin-t-5 mui-hidden desc">                <span class="">告警描述:</span>                <span class="fault-desc text-style"></span>            </p>            <span data-id="33" class="mui-pull-right oper-btn font-b-8" permission="manage-show">                <em onclick="cancelFault()" class="padding-5 stopPort">                    <i class="iconfont icon-close-dark font-18 c-lgreen"></i>                    <i class="">清除告警</i>                </em>            </span>        </div>`        );        var faultLevel = getFaultLevel(item.warningStatus);        dom.find(".text-style").addClass(faultLevel.style);        dom.find(".fault-status").html(faultLevel.name);        dom.find(".line-head").find("span").text(getLineTitle(item));        dom.find(".fault-time").text(item.warningTime);        if (item.warningDesc) {            dom.find(".desc").removeClass("mui-hidden");            dom.find(".fault-desc").text(item.warningDesc);        }        // 0 代表整机        dom.attr("index", item.index || 0);        return dom    }    // 添加端口故障节点    function setPortFault(port) {        var portsDom = $("#portPanel");        if (portsDom.hasClass("mui-hidden")) {            portsDom.removeClass("mui-hidden");        }        var dom = generateFaultNode(port);        portsDom.append(dom)    }    // 发送请求至后台    function sendCancelRequest(payload) {        var url = "/dealer/cancelDeviceWarning";        var btnArray = ["取消", "确定"];        var message = "确定清除告警信息么?(此行为仅仅清除服务器端告警显示,请确定设备恢复正常后再清除)";        var tit = "温馨提示";        mui.confirm(message, tit, btnArray, function (e) {            if (e.index) {                sendRequest(url, "POST", payload, function (response) {                    if (response.result === 1) {                        mui.toast("设备告警状态清除成功");                    } else {                        mui.toast(response.description)                    }                    setTimeout(function () {                        window.location.reload();                    }, 500);                })            }        });    }        // 取消故障    function cancelFault() {        var dom = $(event.target).closest(".mui-table-view-cell");        var index = dom.attr("index");        sendCancelRequest({logicalCode: logicalCode, part: index})    }    // 一次性全部取消故障    function clearAllFault() {        sendCancelRequest({logicalCode: logicalCode})    }</script></body></html>
 |