protect_action_frm.html 11.6 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">
      <meta name="referrer" content="no-referrer">
      <title>保护动作_frm</title>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/api.css"/>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/aui.css"/>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/aui-flex.css" />
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/style.css"/>
      <style>
          html,
          body{
            background-color: #F4F6F9;
          }
      </style>
  </head>
  <body>
    <div class="store01001-protect-protect-panel" id="protect_panel">
    </div>
    <div style="margin-top:50px;"></div>
  </body>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/api.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/common.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/jquery-3.3.1.min.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;
      var isEdit;
      apiready = function(){
        api.parseTapmode();
        defaultImei = api.pageParam.imei
        token = api.getPrefs({sync: true,key: 'userToken'});
        userId = api.getPrefs({sync: true,key: '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('.store01001-protect-protect-list');
          for (var i = 0; i < allDom.length; i++) {
            $api.remove(allDom[i]);
          }
          //-----
          api.sendEvent({
              name: 'reloadProtectList'
          });

          api.sendEvent({
              name: 'reflashPortect',
          });


          getProtectList();

          api.refreshHeaderLoadDone();
        });

        api.addEventListener({
            name: 'handleAllProtectMsgBegin'
        }, function(ret, err){
            if( ret ){
              isEdit = ret.value.isEdit;
              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: 'http://iot.uccc.cc:9090/app_html/store01001/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 = 'http://iot.uccc.cc:9090/product/01001/icon_unselected_sm.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('.store01001-protect-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('.store01001-protect-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;
        }
        $.ajax({
            url: HOST + '/iot_api/v2/app/get_action_list',
            type: 'GET',
            headers: {
                'Content-Type': 'application/json;charset=utf-8',
                'token': token
            },
            data: params,
            success: function(ret) {
              
              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);
                  }

                  if ((actionType || selectedDate) && 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');
                    }
                  }
                }
                hasNext = ret.data.next;
              }else {
                api.toast({msg: '网络错误',duration: 2000,location: 'bottom'});
              }
            },
            error: function() {
              api.toast({msg: ERR_MSG,duration: 2000,location: 'bottom'});
            }
        });

      }

      function chooseToHandle(dom,msg_id) { //val是序号
        if (dom.src.indexOf("unselected") != -1) { //选中操作
          dom.src = 'http://iot.uccc.cc:9090/product/01001/icon_selected_sm.png';
          if ( selectedHandleList.indexOf(msg_id) == -1 ) {  //防止list数据重复
            selectedHandleList.push(msg_id);
          }
        }else {  //取消选中按钮
          dom.src = 'http://iot.uccc.cc:9090/product/01001/icon_unselected_sm.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 = 'http://iot.uccc.cc:9090/product/01001/icon_selected_sm.png';
            var msg_id = $api.attr((chooseDoms[j].childNodes)[0], 'data-id');
            selectedHandleList.push(msg_id);
          }else {
            (chooseDoms[j].childNodes)[0].src = 'http://iot.uccc.cc:9090/product/01001/icon_unselected_sm.png';
          }
       }
     }


    function handleRead() {
      $.ajax({
          url: HOST + '/iot_api/v2/app/batch_resolve_protect',
          type: 'POST',
          dataType: 'json',
          headers:{
              'Content-Type':'application/json;charset=utf-8',
              'token': token
          },
          data: JSON.stringify({
            user_id: userId,
            list: selectedHandleList
          }),
          success: function(ret) {
            if (ret.code == 0) {
              api.sendEvent({
                  name: 'closeProtectFrame'
              });
              api.sendEvent({
                  name: 'reloadIndex'
              });
              api.toast({
                  msg: '操作成功',
                  duration: 2000,
                  location: 'bottom'
              });

            }
          },
          error: function() {
            api.toast({msg: ERR_MSG,duration: 2000,location: 'bottom'});
          }
      });

    }

  </script>
</html>