protect_frm.html 12.5 KB
<!DOCTYPE html>
  <html>
  <head>
      <meta charset="utf-8">
      <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
      <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
      <title>保护动作_frm</title>
      <link rel="stylesheet" type="text/css" href="../../css/api.css"/>
      <link rel="stylesheet" type="text/css" href="../../css/aui.css"/>
      <link rel="stylesheet" type="text/css" href="../../css/protect/protect.css"/>
      <link rel="stylesheet" type="text/css" href="../../css/aui-flex.css" />
      <link rel="stylesheet" type="text/css" href="../../css/style.css"/>
      <style>
          html,
          body{
            background-color: #F4F6F9;
          }
      </style>
  </head>
  <body>
    <div class="protect-panel" id="protect_panel">
      <!-- <div class="protect-list">
        <div class="info-panel">
          <div class="aui-row aui-row-flex top-14">
              <div class="aui-col aui-col-span-2 aui-row-flex-start">
                  <div class="number-id">01</div>
              </div>
              <div class="aui-col aui-col-span-6 aui-row-flex-start">
                  <span class="action-name">漏电动作</span>
              </div>
              <div class="aui-col aui-col-span-16 aui-row-flex-end">
                  <span class="action-time">2019-07-15 12:32:16</span>
              </div>
          </div>
          <div class="list-line"></div>
          <div class="aui-row aui-row-flex">
              <div class="aui-col aui-col-span-5 aui-row-flex-center">
                <span class="details-value">0.00</span><span class="details-value2">A</span>
                <div class="title-value-panel">
                  <p class="title-value">电流</p>
                </div>
              </div>
              <div class="aui-col aui-col-span-5 aui-row-flex-center">
                <span class="details-value">220</span><span class="details-value2">V</span>
                <div class="title-value-panel">
                  <p class="title-value" >电压</p>
                </div>
              </div>
              <div class="aui-col aui-col-span-5 aui-row-flex-center">
                <span class="details-value">27</span><span class="details-value2">mA</span>
                <div class="title-value-panel">
                  <p class="title-value" >漏电电流</p>
                </div>
              </div>
              <div class="aui-col aui-col-span-4 aui-row-flex-center">
                <span class="details-value">37</span><span class="details-value2">℃</span>
                <div class="title-value-panel">
                  <p class="title-value" >温度</p>
                </div>
              </div>
              <div class="aui-col aui-col-span-5 aui-row-flex-center">
                <span class="details-value">20</span><span class="details-value2">ms</span>
                <div class="title-value-panel">
                  <p class="title-value" >动作时长</p>
                </div>
              </div>
          </div>
        </div>
      </div> -->
    </div>
    <div style="margin-top:50px;"></div>
  </body>
  <script type="text/javascript" src="../../script/api.js"></script>
  <script type="text/javascript" src="../../script/common.js"></script>
  <script type="text/javascript">
      var userId;
      var token;
      var defaultImei;
      var page = 1;
      var pageSize = 50;
      var selectedDate = '';
      var actionType = 'all';
      var sequence = 0;
      var selectedHandleList = [];
      var hasNext = true;
      apiready = function(){
        api.parseTapmode();
        defaultImei = $api.getStorage('defaultDevice');
        token = $api.getStorage('userToken');
        userId = $api.getStorage('userID');
        /**上拉加载 */
        api.addEventListener({
            name: 'scrolltobottom',
            extra: {
                threshold: 0
            }
        }, function(ret, err) {
            if(hasNext) {
              page += 1;
            }
            getProtectList();
        });
        /** 下拉刷新 */
        api.setRefreshHeaderInfo({
            loadingImg:'../../image/alpha0.png',
            bgColor: '#FFFFFF',
            textColor: '#AEB8CE',
            textDown: '刷新保护动作列表...',
            textUp: '松开刷新...'
        }, function(ret, err) {
          page = 1;
          selectedDate = '';
          actionType = 'all';
          sequence = 0;
          selectedHandleList = [];
          hasNext = true;
          //---移除dom中的所有元素
          var allDom = $api.domAll('.protect-list');
          for (var i = 0; i < allDom.length; i++) {
            $api.remove(allDom[i]);
          }
          //-----
          api.sendEvent({
              name: 'reloadProtectList'
          });

          getProtectList();

          api.refreshHeaderLoadDone();
        });

        api.addEventListener({
            name: 'handleAllProtectMsgBegin'
        }, function(ret, err){
            if( ret ){
              if (ret.value.isEdit) {    //打开弹性布局
                var normalDoms = $api.domAll('.normal-area');
                for (var i = 0; i < normalDoms.length; i++) {
                  $api.removeCls(normalDoms[i], 'aui-flex-item-12');
                  $api.addCls(normalDoms[i], 'aui-flex-item-11');
                }
                var chooseDoms = $api.domAll('.choose-area');
                for (var j = 0; j < chooseDoms.length; j++) {
                  $api.removeCls(chooseDoms[j], 'aui-hide');
                }

                //打开底部操作栏
                api.openFrame({
                    name: 'protect_tool',
                    url: './protect_tool.html',
                    rect: {
                        x: 0,
                        y: api.winHeight-api.pageParam.f-64,
                        w: api.winWidth,
                        h: 65
                    }
                });

              }else {          //关闭弹性布局;找到所有selected图,置为unselected
                var normalDoms = $api.domAll('.normal-area');
                for (var i = 0; i < normalDoms.length; i++) {
                  $api.removeCls(normalDoms[i], 'aui-flex-item-11');
                  $api.addCls(normalDoms[i], 'aui-flex-item-12');
                }
                var chooseDoms = $api.domAll('.choose-area');
                for (var j = 0; j < chooseDoms.length; j++) {
                  $api.addCls(chooseDoms[j], 'aui-hide');
                  ((chooseDoms[j].childNodes)[0]).src = '../../image/alarm/icon-unselected.png';
                }

                selectedHandleList = [];
                //发送消息至底部工具栏 置空数据
                //...
                //关闭底部操作栏
                api.closeFrame({
                    name: 'protect_tool'
                });

              }
            }
        });

        api.addEventListener({
            name: 'chooseAllProtectInfo'
        }, function(ret, err){
            if( ret ){
              chooseAll(ret.value.chooseAll);
            }
        });

        api.addEventListener({
            name: 'changeProtectType'
        }, function(ret, err){
            if( ret ){
              page = 1;
              sequence = 0;
              selectedHandleList = [];
              actionType = ret.value.curSelect;
              hasNext = true;
              //---移除dom中的所有元素
              var allDom = $api.domAll('.protect-list');
              for (var i = 0; i < allDom.length; i++) {
                $api.remove(allDom[i]);
              }
              //-----
              getProtectList();
            }
        });

        //选中的编辑已读
        api.addEventListener({
            name: 'protectReadTag'
        }, function(ret, err){
            if( ret ){
              handleRead();
            }
        });

        //----

        //保护动作时间选择
        api.addEventListener({
            name: 'chanegProtectSearchDate'
        }, function(ret, err){
          if( ret ){
            page = 1;
            sequence = 0;
            selectedHandleList = [];
            selectedDate = ret.value.selected_time;
            hasNext = true;
            //---移除dom中的所有元素
            var allDom = $api.domAll('.protect-list');
            for (var i = 0; i < allDom.length; i++) {
              $api.remove(allDom[i]);
            }
            //-----
            getProtectList();
          }
        });

        //-----
        if (api.pageParam.staticToProtect) {
          selectedDate = api.pageParam.staticToProtect;
          //这段貌似没有用
          page = 1;
          sequence = 0;
          selectedHandleList = [];
          hasNext = true;
          //--------
        }

        getProtectList();
      };

      function getProtectList() {
        var params = {
          page: page,
          limit: pageSize,
          imei: defaultImei,
          user_id: userId,
        }
        if (actionType && actionType != '') {
          params.action_type = actionType;
        }
        if (selectedDate && selectedDate != '') {
          params.date = selectedDate;
        }
        api.ajax({
          url: HOST + '/iot_api/v1/app/get_action_list',
          method: 'GET',
          headers: {
            'Content-Type': 'application/json;charset=utf-8',
            'token': token
          },
          data: {
            body: params
          }
        }, function(ret, err) {
          if (ret.code == 0) {
            if (!hasNext && !ret.data.next) {
              api.toast({msg: '暂无更多数据!',duration: 2000,location: 'bottom'});
              return;
            }

            var nullDom = $api.domAll('.no-data');
            for (var i = 0; i < nullDom.length; i++) {
              $api.remove(nullDom[i]);
            }

            var protectList = ret.data.rows;
            if (protectList.length == 0) {
              noData($api.byId("protect_panel"),5);
            }else {
              for(var i in protectList){
                sequence += 1;
                var addProtectListDom = addProtectListHtml(protectList[i],sequence);
                $api.append($api.byId("protect_panel"), addProtectListDom);
              }
            }
            hasNext = ret.data.next;
          }else {
            api.toast({msg: '网络错误',duration: 2000,location: 'bottom'});
          }


        });
      }

      function chooseToHandle(dom,msg_id) { //val是序号
        if (dom.src.indexOf("unselected") != -1) { //选中操作
          dom.src = '../../image/alarm/icon-selected.png';
          if ( selectedHandleList.indexOf(msg_id) == -1 ) {  //防止list数据重复
            selectedHandleList.push(msg_id);
          }
        }else {  //取消选中按钮
          dom.src = '../../image/alarm/icon-unselected.png';
          var index = selectedHandleList.indexOf(msg_id);
          if ( index > -1 ) {
            selectedHandleList.splice(index, 1);
          }
        }
      }

      //标记所有页面上有的
      function chooseAll(chooseAll) {
        selectedHandleList = [];
        var chooseDoms = $api.domAll('.choose-area');
        for (var j = 0; j < chooseDoms.length; j++) {
          if (chooseAll) {
            (chooseDoms[j].childNodes)[0].src = '../../image/alarm/icon-selected.png';
            var msg_id = $api.attr((chooseDoms[j].childNodes)[0], 'data-id');
            selectedHandleList.push(msg_id);
          }else {
            (chooseDoms[j].childNodes)[0].src = '../../image/alarm/icon-unselected.png';
          }
       }
     }


    function handleRead() {
      api.showProgress({
          style: 'default',
          animationType: 'fade',
          title: '操作中...',
          text: '',
          modal: true
      });

      api.ajax({
          url: HOST + '/iot_api/v1/app/batch_resolve_protect',
          method: 'post',
          headers: {
            'Content-Type': 'application/json;charset=utf-8',
            'token': token
          },
          data: {
            body: {
              user_id: userId,
              list: selectedHandleList
            }
          }
      }, function(ret, err) {
        api.hideProgress();
        if (ret.code == 0) {
          api.sendEvent({
              name: 'closeProtectFrame'
          });
          api.sendEvent({
              name: 'change_device'
          });
          api.toast({
              msg: '操作成功',
              duration: 2000,
              location: 'bottom'
          });

        }
      });
    }

  </script>
  </html>