| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051 | 
							- <!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;
 
-         }
 
-         .port-head {
 
-             width: 100%;
 
-         }
 
-         .port-info {
 
-             float: left;
 
-             width: 50%;
 
-             overflow: hidden;
 
-             white-space: nowrap;
 
-             text-overflow: ellipsis;
 
-         }
 
-         .mui-table-view-cell:after{
 
-             left: 0;
 
-         }
 
-         .order-info,.order-info-loading {
 
-             background: #fafafb;
 
-             position: relative;
 
-             padding: 6px;
 
-             margin: 8px 0;
 
-         }
 
-         .p-title{
 
-         }
 
-         .power-graph-box {
 
-             background: #fff;
 
-             width: 100%;
 
-             height: 220px;
 
-             padding: 0;
 
-         }
 
-         .chart-box {
 
-             background: #fff;
 
-             width: 100%;
 
-             height: 220px;
 
-         }
 
-     </style>
 
- </head>
 
- <body class="">
 
- <h4 class="param-title" id="device">设备</h4>
 
- <div class="mui-input-group mui-control-content mui-active" id="portPanel">
 
- </div>
 
- <!--生成二维码-->
 
- <div class="common-mask" id="codePanel">
 
-     <div class="common-model">
 
-         <div class="common-model-tit">长按二维码保存
 
-         </div>
 
-         <img id="previewImg" style="margin: auto;display: block">
 
-         <div class="common-model-close" onclick="closeQRCode()">关闭</div>
 
-     </div>
 
- </div>
 
- <div class="common-mask" id="showPG">
 
-     <div class="common-model">
 
-         <div class="common-model-tit" id="pgTitle">数据获取中...</div>
 
-         <div class="power-graph-box chart-box" id="powerGraph"></div>
 
-         <div class="common-model-close" onclick="closePG()">关闭</div>
 
-     </div>
 
- </div>
 
- <!--没有操作按钮-->
 
- <script type="text/html" id="modal100201">
 
-     <div class="mui-table-view-cell">
 
-         <div class="port-head">
 
-             <span class="port-name"></span>
 
-         </div>
 
-     </div>
 
- </script>
 
- <!--有停止、启用、禁用-->
 
- <script type="text/html" id="modal100202">
 
-     <div class="mui-table-view-cell">
 
-         <div class="port-head">
 
-             <span class="port-name"></span>
 
-             <span data-id="33" class="mui-pull-right oper-btn font-b-8" permission="manage-show">
 
-             <em onclick="stopPort()" class="padding-5 stopPort mui-hidden"><i
 
-                     class="iconfont icon-close-dark font-18 c-lgreen"></i><i
 
-                     class="">停止</i></em>
 
-             <em onclick="activePort()" class="padding-5 activePort"><i class="iconfont icon-fault font-16 "></i><i
 
-                     class="word"> 禁用</i></em>
 
-         </span>
 
-         </div>
 
-     </div>
 
- </script>
 
- <!--只有停止-->
 
- <script type="text/html" id="modal100203">
 
-     <div class="mui-table-view-cell">
 
-         <div class="port-head">
 
-             <span class="port-name"></span>
 
-             <span data-id="33" class="mui-pull-right oper-btn font-b-8" permission="manage-show">
 
-             <em onclick="stopPort()" class="padding-5 stopPort mui-hidden"><i
 
-                     class="iconfont icon-close-dark font-18 c-lgreen"></i><i
 
-                     class="">停止</i></em>
 
-             </span>
 
-         </div>
 
-     </div>
 
- </script>
 
- <!--100805的充电柜 可以直接进行开锁的-->
 
- <script type="text/html" id="modal100805">
 
-     <div class="mui-table-view-cell">
 
-         <div class="port-head">
 
-             <span class="port-name"></span>
 
-             <span data-id="33" class="mui-pull-right oper-btn font-b-8" permission="manage-show">
 
-             <em onclick="unlockPort()" class="padding-5 stopPort "><i
 
-                     class="iconfont icon-unlock font-18 c-red"></i><i
 
-                     class=""> 开锁</i></em>
 
-             </span>
 
-         </div>
 
-     </div>
 
- </script>
 
- <!--换电柜 直接启动给电池充电-->
 
- <script type="text/html" id="modal100230">
 
-     <div class="mui-table-view-cell">
 
-         <div class="port-head">
 
-             <span class="port-name"></span>
 
-             <span data-id="33" class="mui-pull-right oper-btn font-b-8" permission="manage-show">
 
-             <em onclick="activePort()" class="padding-5 activePort">
 
-                 <i class="iconfont icon-fault font-16 "></i>
 
-                 <i class="word"> 禁用</i>
 
-             </em>
 
-             <em onclick="chargePort()" class="padding-5 chargePort">
 
-                 <i class="iconfont icon-start font-16 c-green"></i>
 
-                 <i class=""> 充电</i>
 
-             </em>
 
-             </span>
 
-         </div>
 
-     </div>
 
- </script>
 
- <div id="stopTypeMenu" class="mui-popover mui-popover-action mui-popover-bottom">
 
-     <ul class="mui-table-view">
 
-         <li class="mui-table-view-cell" onclick="confirmStop('dealerStopUsingPort')">
 
-             <div class='mui-navigate-right'><span>管理员停止端口</span></div>
 
-         </li>
 
-         <li class="mui-table-view-cell" onclick="confirmStop('dealerCancelOrder')">
 
-             <div class='mui-navigate-right'><span>管理员取消订单</span></div>
 
-         </li>
 
-         <li class="mui-table-view-cell" onclick="confirmStop('illegalUseStop')">
 
-             <div class='mui-navigate-right'><span>违规使用停止</span></div>
 
-         </li>
 
-         <li class="mui-table-view-cell" onclick="confirmStop('packageMismatchStop')">
 
-             <div class='mui-navigate-right'><span>套餐不符停止</span></div>
 
-         </li>
 
-     </ul>
 
- </div>
 
- <script src="https://cdn.washpayer.com/components/lib/jquery.min.js"></script>
 
- <script src="../components/lib/jquery.qrcode.min.js"></script>
 
- <script src="../components/lib/echarts.js"></script>
 
- <script src="https://cdn.washpayer.com/components/lib/moment.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 code = getQueryString("code");
 
-     var type = getQueryString("type");
 
-     $("#device").html("<i class='c-primary iconfont " + getDevIconName(type) + "'></i> " + type + logicalCode + '的端口');
 
-     var portListUrl = "/dealer/getDevicePort"
 
-     if (code === "100206" || code === "100202"|| code === "100256"|| code === "101206" || code === "102256" || code === "103210") {
 
-         portListUrl = "/dealer/getPortsInfo"
 
-     }
 
-     //获取 设备功能设置
 
-     sendRequest({
 
-         url: portListUrl,
 
-         type: "GET",
 
-         data: {logicalCode: logicalCode},
 
-         mask: "正在获取端口信息...",
 
-         success: function (response) {
 
-             if (response.result == 1) {
 
-                 var payload = response.payload;
 
-                 if (payload.isManager || payload.isManager == null) {
 
-                     $("body").attr("role", "manage");
 
-                 } else {
 
-                     $("body").attr("role", "limit-user");
 
-                 }
 
-                 var portList = payload.portList;
 
-                 if (portList.length > 0) {
 
-                     for (var index in portList) {
 
-                         var port = portList[index];
 
-                         if (code) {
 
-                             setNodeData(code, port);
 
-                         }
 
-                     }
 
-                 }
 
-             } else {
 
-                 mui.toast(response.description);
 
-             }
 
-         }
 
-     });
 
-     function loadOnePort(dom, portConfig, port) {
 
-         sendRequest({
 
-             url: "/dealer/getDevicePortDetail",
 
-             type: "GET",
 
-             data: {logicalCode: logicalCode, portIndex: port.index},
 
-             mask: "正在获取端口详细信息...",
 
-             success: function (response) {
 
-                 if (response.result === 1) {
 
-                     var payload = response.payload;
 
-                     renderPortDetail(dom, portConfig, payload)
 
-                 } else {
 
-                     mui.toast(response.description);
 
-                 }
 
-             }
 
-         });
 
-     }
 
-     function getPortStatusDom(status) {
 
-         var statusMap = {
 
-             // 这三个状态根据配置来确定是否可用
 
-             idle: {
 
-                 name: '空闲',
 
-                 style: 'c-success'
 
-             },
 
-             busy: {
 
-                 name: '繁忙',
 
-                 style: 'c-lgreen'
 
-             },
 
-             finished: {
 
-                 name: '完成',
 
-                 style: 'c-success'
 
-             },
 
-             connected: {
 
-                 name: '连接',
 
-                 style: 'c-lgreen'
 
-             },
 
-             // 以下两个状态 完全不能用
 
-             fault: {
 
-                 name: '故障',
 
-                 style: 'c-red'
 
-             },
 
-             ban: {
 
-                 name: '禁用',
 
-                 style: 'font-4'
 
-             },
 
-             estop: {
 
-                 name: '急停状态',
 
-                 style: 'c-red'
 
-             },
 
-             ready: {
 
-                 name: '就绪',
 
-                 style:  'c-lgreen'
 
-             },
 
-             // 0:'空闲',
 
-             // 1:'繁忙',
 
-             // 2:'故障',
 
-             // 3:'禁用',
 
-             // 4:'暂停',
 
-             // 5:'已连接',
 
-             // 6:'充电完成',
 
-             // 7:'维护中',
 
-             // 8:'预约中',
 
-             0: {
 
-                 name: '空闲',
 
-                 style: 'c-success'
 
-             },
 
-             1: {
 
-                 name: '繁忙',
 
-                 style: 'c-lgreen'
 
-             },
 
-             2: {
 
-                 name: '故障',
 
-                 style: 'c-red'
 
-             },
 
-             3: {
 
-                 name: '禁用',
 
-                 style: 'c-red'
 
-             },
 
-             4: {
 
-                 name: '暂停',
 
-                 style: 'c-lgreen'
 
-             },
 
-             5: {
 
-                 name: '已连接',
 
-                 style: 'c-success'
 
-             },
 
-             6: {
 
-                 name: '充电完成',
 
-                 style: 'c-success'
 
-             },
 
-             7: {
 
-                 name: '维护中',
 
-                 style: 'c-red'
 
-             },
 
-             8: {
 
-                 name: '预约中',
 
-                 style: 'c-red'
 
-             },
 
-             10: {
 
-                 name: '占位状态',
 
-                 style: 'c-lgreen'
 
-             },
 
-             11: {
 
-                 name: '急停状态',
 
-                 style:  'c-red'
 
-             },
 
-             12: {
 
-                 name: '就绪',
 
-                 style:  'c-success'
 
-             },
 
-             13: {
 
-                 name: '继电器粘连',
 
-                 style:  'c-red'
 
-             },
 
-         }
 
-         var item = statusMap[status]
 
-         // 普通充电桩
 
-         if (item) {
 
-             return "<span class='" + item.style + "'>" + item.name + "</span>"
 
-         } else {
 
-             return "<span class='font-4'>未知</span>"
 
-         }
 
-     }
 
-     function setNodeData(code, port) {
 
-         var dom;
 
-         // todo 缺少参数mcuVersion ,但目前的后台实现机制其实也用不上了
 
-         var devFeatures = getDeviceFeatures({code: code});
 
-         var portConfig = devFeatures.portConfig
 
-         // 如果没有端口配置,说明没有操作按钮
 
-         if (!portConfig) {
 
-             dom = $($("#modal100201").html());
 
-         } else if (portConfig.stop && portConfig.toggle) {
 
-             dom = $($("#modal100202").html());
 
-             var banBtn = '<i class="iconfont icon-fault font-16 c-red"></i><i class="word"> 禁用</i>';
 
-             if (port.status == "busy") {
 
-                 dom.find(".stopPort").removeClass("mui-hidden");
 
-             } else if (port.status == "fault" || port.status == "ban") {
 
-                 banBtn = '<i class="iconfont icon-start font-16 c-success"></i><i class="word"> 启用</i>';
 
-             }
 
-             //todo 停止|启动,似乎目前只有停止,不能远程启动?
 
-             dom.find(".activePort").html(banBtn);
 
-         } else if (portConfig.toggle && portConfig.charge) {
 
-             dom = $($("#modal100230").html());
 
-             if (port.status == "ban" || port.status == "fault"){
 
-                 var banBtn = '<i class="iconfont icon-start font-16 c-success"></i><i class="word"> 启用</i>';
 
-                 dom.find(".activePort").html(banBtn);
 
-             }
 
-         } else if (portConfig.toggle) {
 
-             dom = $($("#modal100202").html());
 
-             var banBtn = '<i class="iconfont icon-fault font-16 c-red"></i><i class="word"> 禁用</i>';
 
-             if (port.status == "fault" || port.status == "ban") {
 
-                 banBtn = '<i class="iconfont icon-start font-16 c-success"></i><i class="word"> 启用</i>';
 
-             }
 
-             dom.find(".activePort").html(banBtn);
 
-         } else if (portConfig.stop) {
 
-             dom = $($("#modal100203").html());
 
-             if (port.status == "busy"  || port.status == "ready") {
 
-                 dom.find(".stopPort").removeClass("mui-hidden");
 
-             } else {
 
-             }
 
-         } else if (portConfig.unlock) {
 
-             dom = $($("#modal100805").html());
 
-         }
 
-         if (!dom) {
 
-             return
 
-         }
 
-         //端口基本信息
 
-         dom.find(".port-name").text("端口:" + port.index).append('<span class="margin-l-10 port-status"></span>');
 
-         dom.attr("index", port.index);
 
-         dom.attr("status", port.status);
 
-         dom.find(".port-status").html(getPortStatusDom(port.status));
 
-         $("#portPanel").append(dom);
 
-         if (port.isLazy) {
 
-             var loadingDom = $('<div class="order-info-loading mui-clearfix mui-navigate-right">' +
 
-                 ' <em class="padding-5 ">' +
 
-                 '                <i class="iconfont icon-eye font-18 c-blue"></i><i class="word"> 工作详情</i>' +
 
-                 '            </em></div>')
 
-             loadingDom.on('click', function () {
 
-                 $(this).remove()
 
-                 loadOnePort(dom, portConfig, port)
 
-             })
 
-             dom.append(loadingDom)
 
-         }
 
-         renderPortDetail(dom, portConfig, port)
 
-     }
 
-     var gearMap = {
 
-         0: "第一档",
 
-         1: "第二档",
 
-         2: "第三档",
 
-         3: "第四档",
 
-         4: "第五档",
 
-     }
 
-     function renderPortDetail(dom, portConfig, port) {
 
-         dom.find('.order-info,.port-foot').remove() // 先尝试清空旧的信息
 
-         function getPayTypeEnum(item, type) {
 
-             // 单位后台确定
 
-             var payTypeEnum = {
 
-                 'mobile': '扫码付费' + (item.coins || 0),
 
-                 'mobile_vcard': '虚拟卡抵扣',
 
-                 'monthlyPackage': '包月卡抵扣',
 
-                 'coin': '投币' + (item.coins || 0),
 
-                 'card': '刷卡' + (item.coins || 0),
 
-                 'serverBilling': '后台计费',
 
-                 'powerBilling': '功率计费',
 
-                 'postpaid': '后付费',
 
-                 'billAsServicePostpaid': '后付费',
 
-                 'isFree': '免费时段',
 
-                 null: "未知"
 
-             }
 
-             return payTypeEnum[type]
 
-         }
 
-         var devDom = $('<div class="order-info mui-clearfix"><div class="font-14 p-title">设备详情</div></div>')
 
-         var orderDom = $('<div class="order-info mui-clearfix"><div class="font-14 p-title">当前订单详情</div></div>')
 
-         dom.append(devDom)
 
-         dom.append(orderDom)
 
-         // 公共字段,订单信息
 
-         if (port.nickName) {
 
-             orderDom.append('<p class="port-info no-alert margin-t-5 "  onclick="goUser(\'' + (port.openId || '') + '\')"><span class="">用户昵称:</span><span class="c-success">' + port.nickName + '</span></p>')
 
-         }
 
-         if (port.cardNo) {
 
-             orderDom.append('<p class="port-info no-alert margin-t-5 " onclick="goUserCard(\'' + (port.openId || '') + '\')"><span class="">卡号:</span><span class="c-success" >' + port.cardNo + '</span></p>')
 
-         }
 
-         if (port.cardName) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">卡名:</span><span class="c-success">' + port.cardName + '</span></p>')
 
-         }
 
-         if (port.pw != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">密码:</span><span class="c-success">' + port.pw + '</span></p>')
 
-         }
 
-         if (port.consumeType != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">消费:</span><span class="c-success">' + getPayTypeEnum(port,port.consumeType) + '</span></p>')
 
-         }
 
-         if (port.elecFee != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">电量费用:</span><span class="c-success">' + port.elecFee + '</span>元</p>')
 
-         }
 
-         if (port.serviceFee != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">服务费:</span><span class="c-success">' + port.serviceFee + '</span>元</p>')
 
-         }
 
-         if (port.statusErrorInfo != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">异常信息:</span><span class="c-red">' + port.statusErrorInfo + '</span></p>')
 
-         }
 
-         if (port.faultDesc != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">故障描述:</span><span class="c-red">' + (port.faultDesc || '') + '</span></p>')
 
-         }
 
-         if (port.startTime != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">开始时间:</span><span class="c-success">' + (port.startTime) + '</span></p>')
 
-         }
 
-         if (port.needTime != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">订购时间:</span><span class="c-success">' + (port.needTime || 0) + '</span></p>')
 
-         }
 
-         if (port.actualNeedTime != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">实际预定时间:</span><span class="c-success">' + port.actualNeedTime + '</span>分钟</p>')
 
-         }
 
-         if (port.usedTime != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">已充时间:</span><span class="c-success">' + (port.usedTime || 0) + '</span>分钟</p>')
 
-         }
 
-         if (port.duration != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">充电时间:</span><span class="c-success">' + (port.duration || 0) + '</span>分钟</p>')
 
-         }
 
-         if (port.leftTime != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">剩余时间:</span><span class="c-success">' + (port.leftTime || 0) + '</span>分钟</p>')
 
-         }
 
-         if (port.occTime != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">占位时间:</span><span class="c-success">' + (port.occTime || 0) + '</span>分钟</p>')
 
-         }
 
-         if (port.allPayMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">订单总金额:</span><span class="c-success">' + (port.allPayMoney || 0) + '</span></p>')
 
-         }
 
-         if (port.consumeMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">已消费金额:</span><span class="c-success">' + (port.consumeMoney || 0) + '</span></p>')
 
-         }
 
-         if (port.chargedMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">已充金额:</span><span class="c-success">' + (port.chargedMoney || 0) + '</span>元</p>')
 
-         }
 
-         if (port.leftMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">本次消费余额:</span><span class="c-success">' + (port.leftMoney || 0) + '</span></p>')
 
-         }
 
-         if (port.leftElec != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">剩余电量:</span><span class="c-success">' + (port.leftElec || 0) + '</span>度</p>')
 
-         }
 
-         if (port.usedElec != null && port.usedElec !=0) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">已充入电量:</span><span class="c-success">' + (port.usedElec || 0) + '</span>度</p>')
 
-         }
 
-         if (port.elec != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">已充电量:</span><span class="c-success">' + (port.elec || 0) + '</span>度</p>')
 
-         }
 
-         if (port.needElec != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">订购电量:</span><span class="c-success">' + (port.needElec || 0) + '</span>度</p>')
 
-         }
 
-         if (port.cardConsumeMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">本次刷卡已使用:</span><span class="c-success">' + (port.cardConsumeMoney || '') + '</span></p>')
 
-         }
 
-         if (port.lastPayMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">单次刷卡金额:</span><span class="c-success">' + (port.lastPayMoney || '') + '</span></p>')
 
-         }
 
-         if (port.cardLeftMoney != null) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">本次刷卡剩余:</span><span class="c-success">' + (port.cardLeftMoney || '') + '</span></p>')
 
-         }
 
-         if (port.cardBalance) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">卡上余额:</span><span class="c-success">' + (port.cardBalance || '') + '</span></p>')
 
-         }
 
-         if (port.sequanceNo) {
 
-             orderDom.append('<p class="port-info margin-t-5 "><span class="">流水号:</span><span class="c-success">' + (port.sequanceNo || '') + '</span></p>')
 
-         }
 
-         // 等待执行的订单
 
-         if (port.waittingOrder && port.waittingOrder.length) {
 
-             for (var index in port.waittingOrder) {
 
-                 var item = port.waittingOrder[index]
 
-                 var orderWaitDom = $('<div class="order-info mui-clearfix"><div class="font-14 p-title">等待执行订单' + (parseInt(index) + 1) + '</div></div>')
 
-                 dom.append(orderWaitDom)
 
-                 if (item.createTime != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">创建时间:</span><span class="c-success">' + item.createTime + '</span></p>')
 
-                 }
 
-                  if (item.nickName != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">用户昵称:</span><span class="c-success">' + item.nickName + '</span></p>')
 
-                 }
 
-                 if (item.consumeType != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">消费:</span><span class="c-success">' + getPayTypeEnum(item, item.consumeType) + '</span></p>')
 
-                 }
 
-                 if (item.needTime != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">订购时间:</span><span class="c-success">' + (item.needTime || 0) + '</span></p>')
 
-                 }
 
-                 if (item.needElec != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">订购电量:</span><span class="c-success">' + (item.needElec || '') + '</span>度</p>')
 
-                 }
 
-                 if (item.cardNo != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">卡号:</span><span class="c-success">' + item.cardNo + '</span></p>')
 
-                 }
 
-                if (item.cardBalance != null) {
 
-                     orderWaitDom.append('<p class="port-info margin-t-5 "><span class="">卡上余额:</span><span class="c-success">' + item.cardBalance + '</span></p>')
 
-                 }
 
-             }
 
-         }
 
-         let qiangStatusMap = {
 
-             yes: '是',
 
-             no: '否',
 
-             unknow: '未知'
 
-         }
 
-         // 设备信息
 
-         if (port.power != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">功率:</span><span class="c-success">' + (port.power || 0) + '</span>瓦</p>')
 
-         }
 
-         if (port.STA != null) {
 
-             devDom.append('<p class="port-info margin-t-5"><span>STA:</span><span class="c-success">' + (port.STA || '') + '</span></p>')
 
-         }
 
-         if (port.isPlugin != null) {
 
-             devDom.append('<p class="port-info margin-t-5"><span>是否插枪:</span><span class="c-success">' + (qiangStatusMap[port.isPlugin] || '') + '</span></p>')
 
-         }
 
-         if (port.qiangGuiwei != null) {
 
-             devDom.append('<p class="port-info margin-t-5"><span>枪是否归位:</span><span class="c-success">' + (qiangStatusMap[port.qiangGuiwei] || '') + '</span></p>')
 
-         }
 
-         if (port.electricity != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电流:</span><span class="c-success">' + (port.electricity || 0) + '</span>安</p>')
 
-         }
 
-         if (port.current != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电流:</span><span class="c-success">' + (port.current || 0) + '</span>安</p>')
 
-         }
 
-         if (port.ampere != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电流大小:</span><span class="c-success">' + (port.ampere || 0) + '</span>安</p>')
 
-         }
 
-         if (port.outputVoltage != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">输出电压:</span><span class="c-success">' + (port.outputVoltage || 0) + '</span>伏</p>')
 
-         }
 
-         if (port.outputElec != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">输出电流:</span><span class="c-success">' + (port.outputElec || 0) + '</span>安</p>')
 
-         }
 
-         if (port.chargeStatus != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">充电状态:</span><span class="c-success">' + (port.chargeStatus || 0) + '</span></p>')
 
-         }
 
-         if (port.batteryVoltage != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电池电压:</span><span class="c-success">' + (port.batteryVoltage || 0) + '</span>伏</p>')
 
-         }
 
-         if (port.voltage != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电压:</span><span class="c-success">' + (port.voltage || 0) + '</span>伏</p>')
 
-         }
 
-         if (port.doorStatus != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">柜门状态:</span><span class="c-success">' + (port.doorStatus || '') + '</span></p>')
 
-         }
 
-         if (port.batteryImei != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电池编号:</span><span class="c-success">' + (port.batteryImei || '') + '</span></p>')
 
-         }
 
-         if (port.devTemp != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">充电桩芯片组温度:</span><span class="c-success">' + (port.devTemp || '') + '</span>℃</p>')
 
-         }
 
-         if (port.elecPoint != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">电量百分比:</span><span class="c-success">' + (port.elecPoint || 0) + '</span></p>')
 
-         }
 
-         if (port.gear != null) {
 
-             devDom.append('<p class="port-info margin-t-5 "><span class="">充电档位:</span><span class="c-success">' + (gearMap[port.gear]) + '</span></p>')
 
-         }
 
-         //公共的 2018.6.5 所有设备的端口都需要:扫码带端口号的二维码直接使用
 
-         dom.append('<p class="port-foot mui-text-right margin-t-5">' +
 
-             (port.showPG != null ? ('<span class="iconfont icon-chart-line c-green font-18 padding-10" style="vertical-align: -2px;" onclick="goPowerGraph(\'' + port.index + '\',' + '\'' + (port.startTime || '') + '\')"></span>') : '') +
 
-             '<span class="iconfont icon-qrcode c-primary padding-10" onclick="getQRCode(\'' + port.index + '\')"></span>' +
 
-             '</p>')
 
-         if (portConfig && portConfig.param) {
 
-             dom.append('<p class="port-foot padding-t-10 c-primary" onclick="goConfig(\'' + port.index + '\')"><i class="iconfont icon-setting"></i> 参数配置</p>')
 
-         }
 
-         // 隐藏不含信息的模块
 
-         if (devDom.find('p.port-info').length === 0) {
 
-             devDom.hide()
 
-         }
 
-         if (orderDom.find('p.port-info').length === 0) {
 
-             orderDom.hide()
 
-         }
 
-     }
 
-     var lastPort = null
 
-     // 立马停止充电
 
-     function stopPort() {
 
-         var dom = $(event.target).closest(".mui-table-view-cell");
 
-         lastPort = dom.attr("index");
 
-         if (code == 110700) {
 
-             mui('#stopTypeMenu').popover('toggle');
 
-             return
 
-         }
 
-         confirmStop()
 
-     }
 
-     function confirmStop(type){
 
-         var tit = "您确定要立即停止充电?";
 
-         var btnArray = ['取消', '确定'];
 
-         mui.confirm(tit, '温馨提示', btnArray, function (e) {
 
-             if (e.index == 1) {
 
-                 sendRequest("/device/operDevicePort", "POST", {
 
-                     logicalCode: logicalCode,
 
-                     stop: true,
 
-                     type: type,
 
-                     portIndex: lastPort
 
-                 }, function (response) {
 
-                     if (response.result == 1) {
 
-                         mui.toast("操作成功");
 
-                         setTimeout(function () {
 
-                             window.location.reload();
 
-                         }, 1000);
 
-                     } else {
 
-                         mui.toast(response.description);
 
-                     }
 
-                 });
 
-             }
 
-         });
 
-     }
 
-     function unlockPort() {
 
-         var dom = $(event.target).closest(".mui-table-view-cell");
 
-         var index = dom.attr("index");
 
-         var tit = "您确定要立即开锁?";
 
-         var btnArray = ['取消', '确定'];
 
-         mui.confirm(tit, '温馨提示', btnArray, function (e) {
 
-             if (e.index == 1) {
 
-                 sendRequest("/device/unlockPort", "POST", {
 
-                     logicalCode: logicalCode,
 
-                     portIndex: index
 
-                 }, function (response) {
 
-                     if (response.result == 1) {
 
-                         mui.toast("操作成功");
 
-                         setTimeout(function () {
 
-                             window.location.reload();
 
-                         }, 1000);
 
-                     } else {
 
-                         mui.toast(response.description);
 
-                     }
 
-                 });
 
-             }
 
-         });
 
-     }
 
-     // 启动端口的充电
 
-     function chargePort() {
 
-         var dom = $(event.target).closest(".mui-table-view-cell");
 
-         var index = dom.attr("index");
 
-         var status = dom.attr("status");
 
-         var chargePort = true;
 
-         var tit = "";
 
-         if (status === "idle") {
 
-             tit = "确定启动该端口充电?";
 
-         } else {
 
-             tit = "确定停止该端口充电?";
 
-         }
 
-         var btnArray = ['取消', '确定'];
 
-         mui.confirm(tit, '温馨提示', btnArray, function (e) {
 
-             if (e.index == 1) {
 
-                 sendRequest(
 
-                     "/device/operDevicePort",
 
-                     "POST",
 
-                     {
 
-                         logicalCode: logicalCode,
 
-                         charge: chargePort,
 
-                         portIndex: index
 
-                     },
 
-                     function (response) {
 
-                         if (response.result == 1) {
 
-                             mui.toast("操作成功");
 
-                             // setTimeout(
 
-                             //     function () {
 
-                             //         window.location.reload();
 
-                             //     },
 
-                             //     1000
 
-                             // );
 
-                         } else {
 
-                             mui.toast(response.description);
 
-                         }
 
-                     }
 
-                 );
 
-             }
 
-         });
 
-     }
 
-     // 启用或禁用充电端口
 
-     function activePort() {
 
-         var dom = $(event.target).closest(".mui-table-view-cell");
 
-         var index = dom.attr("index");
 
-         var status = dom.attr("status");
 
-         var active = "";
 
-         var tit = "";
 
-         if (status == "ban" || status == "fault") {
 
-             active = true;
 
-             tit = "您确定要启用该端口?";
 
-         } else {
 
-             active = false;
 
-             tit = "您确定要禁用该端口?";
 
-         }
 
-         var btnArray = ['取消', '确定'];
 
-         mui.confirm(tit, '温馨提示', btnArray, function (e) {
 
-             if (e.index == 1) {
 
-                 sendRequest("/device/operDevicePort", "POST", {
 
-                     logicalCode: logicalCode,
 
-                     active: active,
 
-                     portIndex: index
 
-                 }, function (response) {
 
-                     if (response.result == 1) {
 
-                         mui.toast("操作成功");
 
-                         setTimeout(function () {
 
-                             window.location.reload();
 
-                         }, 1000);
 
-                     } else {
 
-                         mui.toast(response.description);
 
-                     }
 
-                 });
 
-             }
 
-         });
 
-     }
 
-     //生成带端口号的二维码
 
-     function getQRCode(index) {
 
-         $("#codePanel").show();
 
-         var protocol = location.protocol;
 
-         if (logicalCode.indexOf('B') > -1) {
 
-             protocol = "https:"
 
-         }
 
-         var currentDomain = protocol + "//" + location.host;
 
-         var userUrl = currentDomain + "/userLogin?l=" + logicalCode + "&chargeIndex=" + index;
 
-         var dataURL = getQRCodeImageData(userUrl, logicalCode + '-' + index);
 
-         $("#previewImg").attr({
 
-             "width": 200,
 
-             "height": 230,
 
-             "src": dataURL
 
-         });
 
-     }
 
-     function goConfig(index) {
 
-         var devFeatures = getDeviceFeatures({code: code});
 
-         var portConfig = devFeatures.portConfig
 
-         var url = portConfig.param;
 
-         var option = {
 
-             logicalCode: logicalCode,
 
-             port: index,
 
-             type: type,
 
-         };
 
-         if (url) {
 
-             goPage(url, option);
 
-         } else {
 
-             mui.alert('该设备端口无法进行参数配置', '提示', '确定');
 
-         }
 
-     }
 
-     function closeQRCode() {
 
-         $("#codePanel").hide();
 
-     }
 
-     function goPowerGraph(index, startTime) {
 
-         function powerChartOption(showCurrent, dataList) {
 
-             var xData = [];
 
-             var powerSeries = [];
 
-             var voltageSeries = [];
 
-             var currentSeries = [];
 
-             for (var index in dataList) {
 
-                 let item = dataList[index]
 
-                 xData.push(moment(item.time).format("HH:mm"));
 
-                 powerSeries.push(parseFloat(item.power));
 
-                 voltageSeries.push(parseFloat(item.voltage));
 
-                 currentSeries.push(parseFloat(item.current));
 
-             }
 
-             var option = {
 
-                 grid: {
 
-                     x: 40,
 
-                     x2: 15,
 
-                     y: 45,
 
-                     y2: 40,
 
-                 },
 
-                 toolbox: {
 
-                 },
 
-                 tooltip: {
 
-                     trigger: 'axis',
 
-                     axisPointer: {
 
-                         lineStyle: {
 
-                             color: '#108EE9',
 
-                             width: .3,
 
-                         }
 
-                     }
 
-                 },
 
-                 legend: {
 
-                     data: ['功率']
 
-                 },
 
-                 xAxis: [{
 
-                     type: 'category',
 
-                     axisLabel: {
 
-                         textStyle: {
 
-                             color: "#aaa",
 
-                             fontSize: "12px"
 
-                         }
 
-                     },
 
-                     axisTick: {
 
-                         show: false,
 
-                     },
 
-                     axisLine: {
 
-                         show: false,
 
-                     },
 
-                     data: xData,
 
-                     min: 'dataMin',
 
-                     max: 'dataMax'
 
-                 }],
 
-                 yAxis: [
 
-                     {
 
-                         type: 'value',
 
-                         axisLabel: {
 
-                             textStyle: {
 
-                                 color: "#aaa",
 
-                                 fontSize: "12px"
 
-                             }
 
-                         },
 
-                         axisTick: {
 
-                             show: false,
 
-                         },
 
-                         axisLine: {
 
-                             show: false,
 
-                         },
 
-                         splitLine: {
 
-                             lineStyle: {
 
-                                 color: '#ccc',
 
-                                 width: 0.3,
 
-                                 type: 'dotted'
 
-                             }
 
-                         },
 
-                     }
 
-                 ],
 
-                 series: [
 
-                     {
 
-                         name: '功率',
 
-                         type: 'line',
 
-                         itemStyle: {
 
-                             normal: {
 
-                                 color: "#108EE9",
 
-                             }
 
-                         },
 
-                         data: powerSeries
 
-                     }
 
-                 ]
 
-             };
 
-             if (showCurrent == true) {
 
-                 option.legend.data = option.legend.data.concat(['电压', '电流'])
 
-                 option.series = option.series.concat([{
 
-                     name: '电压',
 
-                     type: 'line',
 
-                     itemStyle: {
 
-                         normal: {
 
-                             color: "#07C160",
 
-                         }
 
-                     },
 
-                     data: voltageSeries
 
-                 }, {
 
-                     name: '电流',
 
-                     type: 'line',
 
-                     itemStyle: {
 
-                         normal: {
 
-                             color: "#ED6066",
 
-                         }
 
-                     },
 
-                     data: currentSeries
 
-                 }])
 
-             }
 
-             return option
 
-         }
 
-         moment.locale('zh-cn');
 
-         var _startTime = moment().subtract(8, 'hour').format("YYYY-MM-DD HH:mm:ss")
 
-         var _endTime = moment().format("YYYY-MM-DD HH:mm:ss")
 
-         if (startTime) {
 
-             _startTime = moment(startTime.substr(-14, 14), 'MM-DD HH:mm:ss').subtract(4, 'hour').format("YYYY-MM-DD HH:mm:ss")
 
-         }
 
-         $("#showPG").show();
 
-         $("#pgTitle").html('功率曲线( 端口: <em class="c-success">' + index + '</em> )' );
 
-         var powerGraph = echarts.init(document.getElementById('powerGraph'));
 
-         let url = '/common/getPowerGraph'
 
-         sendRequest({
 
-             url: url,
 
-             type: "GET",
 
-             data: {
 
-                 logicalCode: logicalCode,
 
-                 startTime: _startTime,
 
-                 endTime: _endTime,
 
-                 port: index
 
-             },
 
-             mask: "正在获取端口详细信息...",
 
-             success: function (response) {
 
-                 if (response.result === 1) {
 
-                     var payload = response.payload;
 
-                     powerGraph.setOption(powerChartOption(0, payload.dataList))
 
-                     powerGraph.resize()
 
-                 } else {
 
-                     mui.toast(response.description);
 
-                 }
 
-             }
 
-         });
 
- }
 
-     function closePG() {
 
-         $("#showPG").hide();
 
-     }
 
-     function goUpper() {
 
-         var url = "remote-upper.html";
 
-         var option = {logicalCode: logicalCode,}
 
-         goPage(url, option);
 
-     }
 
-     function goUser(openId) {
 
-         if (openId) {
 
-             var url = "/dealer/index.html#/user/detail?openId=" + openId
 
-             goPage(url);
 
-         }
 
-     }
 
-     function goUserCard(openId) {
 
-         if (openId) {
 
-             var url = "/app/card-manage.html?userId=" + openId
 
-             goPage(url);
 
-         }
 
-     }
 
-     // 点击字段看详情
 
-     $(function () {
 
-         $('body').on('click', '.port-info:not(".no-alert")', function () {
 
-             mui.alert($(this).text())
 
-         })
 
-     })
 
- </script>
 
- </body>
 
- </html>
 
 
  |