AUI tab实现页签滑动切换且下拉刷新(下拉固定title栏及tab栏)

声明:菜鸟一枚,入坑不久,如有欠缺,望大神给予好的建议,完善优化,分享他人。
AUI tab实现页签滑动切换且下拉刷新(下拉固定title栏及tab栏)
1:aui tab分页签,手动侧滑或点击TAB栏可以切换。
2:下拉刷新(上翻页默认第一页,再下拉时更新第一页数据),上拉翻页显示数据列表。

ques_tab_win.html
<!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>问题上报</title>
    <link rel="stylesheet" type="text/css" href="../css/framework7.material.css"/>
    <link rel="stylesheet" type="text/css" href="../css/my-app.css"/>
    <link rel="stylesheet" type="text/css" href="./css/style.css"/>
    <link rel="stylesheet" type="text/css" href="../css/aui.css"/>
    <style>
        .empty{ text-align: center; padding: 120px 0; }
    </style>
</head>
<body>

  <header class="aui-bar aui-bar-nav" id="aui-header">
      <a class="aui-pull-left aui-btn" href="javascript();" onclick="backwin()">
          <img  style="font-size:24px;display: inline-block;
          box-sizing: border-box;vertical-align: middle;width:20px;" src="../image/back.png">
      </a>
      <div class="aui-title">案件上报</div>
      <a class="aui-pull-right aui-btn" href="#" onclick="openNewProblemReport()">
        上报新问题
                  </a>
  </header>



  <div class="aui-tab" id="tab">
        <div id="mytab_1" class="aui-tab-item aui-active" tapmode onclick="randomSwitchBtn(this,0)">待处理</div>
        <div id="mytab_2" class="aui-tab-item" tapmode onclick="randomSwitchBtn(this,1)">处理中</div>
        <div id="mytab_3" class="aui-tab-item" tapmode onclick="randomSwitchBtn(this,2)">已结案</div>
  </div>



</body>
</html>
<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/vue.js"></script>
<script type="text/javascript" src="../script/common.js"></script>
<script type="text/javascript" src="../script/ardo.js"></script>
<script type="text/javascript">

apiready = function(){
      api.parseTapmode();
      var header = $api.byId('aui-header');
      //var footer = $api.byId('footer');
      var mytab = $api.byId('tab')
      //$api.fixStatusBar(header);
      var headerPos = $api.offset(header);
      var body_h = api.winHeight;
      //var footer_h = $api.offset(footer).h;
      var mytab_h = $api.offset(mytab).h;

      api.openFrameGroup ({
          name: 'footer_tab_demo',
          scrollEnabled:true,
          rect:{
              x:0,
              y:headerPos.h + mytab_h,//-23
              w:'auto',
              h:body_h - headerPos.h - mytab_h
          },
          index:0,
          preload:3,
          frames:
              [{
                    name: 'ques_daichuli',
                    url: 'ques_tab_list.html',
                    bounces:false,
                    pageParam:{
                        'state':0
                    }
              },{
                    name: 'ques_chulizhong',
                    url: 'ques_tab_list.html',
                    bounces:false,
                    pageParam:{
                        'state':1
                    }
              },{
                    name: 'ques_yijiean',
                    url: 'ques_tab_list.html',
                    bounces:false,
                    pageParam:{
                        'state':2
                    }
              }]
      }, function(ret, err){

            var mytab = $api.byId('tab');
            var mytabAct = $api.dom(mytab, '.aui-tab-item.aui-active');
            $api.removeCls(mytabAct, 'aui-active');

            var name = ret.name;
            var index = ret.index;
            if(index==0){
                $api.addCls($api.byId('mytab_1'), 'aui-active');
            }else if(index==1){
                $api.addCls($api.byId('mytab_2'), 'aui-active');
            }else if(index==2){
                $api.addCls($api.byId('mytab_3'), 'aui-active');
            }
        })
    }

    function closeWin(){
        api.closeWin();
    }

    function randomSwitchBtn(obj, index) {
        var mytab = $api.byId('tab');
        var mytabAct = $api.dom(mytab, '.aui-tab-item.aui-active');
        $api.removeCls(mytabAct, 'aui-active');
        $api.addCls(obj, 'aui-active');
        api.setFrameGroupIndex({
            name: 'footer_tab_demo',
            index: index,
            scroll:true
        });

    }

    //返回操作
    function backwin(){
      api.closeWin({
          name: '问题上报'
      });

    }

    //打开上报新问题页面
    function openNewProblemReport(){
      api.openWin({
          name: '上报新问题',
          url: '../html/frame31.html',
          pageParam: {
              name: 'test'
          }
      });
    }
</script>
ques_tab_list.html
<!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,aItemress=no">
    <title>案件上报列表-待处理、处理中、已结案</title>

    <link rel="stylesheet" type="text/css" href="../css/framework7.material.css"/>
    <link rel="stylesheet" type="text/css" href="../css/aui.css" />
</head>
<body>
  <div class="tabs-animated-wrap">
    <div class="tabs">
      <div id="tab-1" class="tab">
        <div class="block">
          <div class="list-block" style="margin:0px;">
              <ul id="daichuliDiv">
                  <li v-for="item in list">
                      <a href="#" class="item-link item-content" onclick="openProblemReport({{item.id}})">
                          <i class="icon" style="width: 2rem;"><img src="../image/paper.png" ></i>
                          <div class="item-inner">
                              <div class="item-title" style="color:        #A0522D;">  {{item.remark}}</div>
                          </div>
                      </a>
                  </li>
              </ul>


          </div>

        </div>
      </div>

    </div>
  </div>
</body>
<script type="text/javascript" src="../script/api.js" ></script>
<script type="text/javascript" src="../script/vue.js"></script>
<script type="text/javascript" src="../script/common.js"></script>
<script type="text/javascript" src="../script/ardo.js"></script>
<script type="text/javascript">
  var select = 1;
  var state = 0;
  var ardo = new Vue({
        el: '#daichuliDiv',
        data: {
            p: 1,
            list: []
        }
    });

    apiready = function(){
        var pageParam = api.pageParam;
        state = pageParam.state;

        api.parseTapmode();

        queryList(state);
        api.setRefreshHeaderInfo({
              visible: true,
              loadingImg: 'widget://image/refresh.png',
              bgColor: '#f5f5f5',//#f5f5f5  #FAEBD7
              textColor: '#F08080',
              textDown: '下拉刷新...',
              textUp: '松开刷新...',
              showTime: true
          }, function (ret, err) {
              if(ardo.p != 1){
                  ardo.p = ardo.p - 1;
                  queryList(state);
              }else{
                  queryList(state);
                  ArdoTip("已更新到最新数据!下拉刷新上拉翻页");
              }
              api.refreshHeaderLoadDone();
          });


          api.addEventListener({
              name:'scrolltobottom',
              extra:{
                  threshold:0            //设置距离底部多少距离时触发,默认值为0,数字类型
              }
          }, function(ret, err){
                ardo.p = ardo.p + 1;
                queryList(state);
          });
    }

    //查询数据
    function queryList(state) {
        api.showProgress({
            style: 'default',
            animationType: 'fade',
            title: '加载中...',
            text: '请稍候...',
            modal: false
        });
        var req = {
            uid: $api.getStorage('user_id'),
            token: $api.getStorage('token'),
            page : ardo.p,
            status: state
        }
        ArdoAjax(APP_GETQUELIST, req, calbackfun);
   }

   function calbackfun(ret, err){
       api.hideProgress();
       if(ret.code=='ok'){
           //console.log(ret.list.length);
           if(ret.list.length != 0){
               ardo.list.splice(0);
               if(ret.list.length > 0){
                   for (var i=0;i<ret.list.length; i++){
                       ardo.list.push(ret.list[i]);
                   }
               }
           }else{
                ardo.p = ardo.p - 1;
                ArdoTip("我是有底线的!");
           }
       }else{
           ArdoTip(ret.msg);
       }
   }

   function openProblemReport(id){
       api.openWin({
           name: '案件详情',
           url: '../html/frame31.html',
           pageParam: {
               id: id
           }
       });
   }

</script>
</html>

1506501303.jpg

1086629052.jpg

猜你喜欢

转载自blog.csdn.net/ardo_pass/article/details/79431216