diff --git a/www/bindcard.html b/www/bindcard.html
index 8d2ee2f..ec64898 100644
--- a/www/bindcard.html
+++ b/www/bindcard.html
@@ -11,14 +11,14 @@
     <link rel="stylesheet" type="text/css" href="css/aui.css">
     <link rel="stylesheet" type="text/css" href="css/weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
-    <title>绑定银行卡</title>
+    <title>绑定市民卡</title>
 </head>
 <body>
     <header class="aui-bar aui-bar-nav" style="padding-top:25px;">
         <a class="aui-pull-left" href="main.html">
             <span class="aui-iconfont aui-icon-left"></span>
         </a>
-        <div class="aui-title">绑定银行卡</div>
+        <div class="aui-title">绑定市民卡</div>
     </header>
     <div>
         <div class="weui-cells__title">市民卡信息</div>
diff --git a/www/cardinfor.html b/www/cardinfor.html
index dc20345..dfaf4b2 100644
--- a/www/cardinfor.html
+++ b/www/cardinfor.html
@@ -11,14 +11,14 @@
     <link rel="stylesheet" type="text/css" href="css/aui.css">
     <link rel="stylesheet" type="text/css" href="css/weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
-    <title>银行卡</title>
+    <title>市民卡</title>
 </head>
 <body>
     <header class="aui-bar aui-bar-nav" style="padding-top:25px;">
         <a class="aui-pull-left" href="main.html">
             <span class="aui-iconfont aui-icon-left"></span>
         </a>
-        <div class="aui-title">银行卡</div>
+        <div class="aui-title">市民卡</div>
     </header>
     <div>
         <div class="weui-cells">
diff --git a/www/dobind.html b/www/dobind.html
index 6d377b9..4c40050 100644
--- a/www/dobind.html
+++ b/www/dobind.html
@@ -11,14 +11,14 @@
     <link rel="stylesheet" type="text/css" href="css/aui.css">
     <link rel="stylesheet" type="text/css" href="css/weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
-    <title>绑定银行卡</title>
+    <title>绑定市民卡</title>
 </head>
 <body>
     <header class="aui-bar aui-bar-nav" style="padding-top:25px;">
         <a class="aui-pull-left" href="bindcard.html">
             <span class="aui-iconfont aui-icon-left"></span>
         </a>
-        <div class="aui-title">绑定银行卡</div>
+        <div class="aui-title">绑定市民卡</div>
     </header>
     <div>
         <div class="weui-cells__title">验证市民卡预留的手机号</div>
diff --git a/www/img/icon_meeting.png b/www/img/icon_meeting.png
new file mode 100644
index 0000000..904d918
--- /dev/null
+++ b/www/img/icon_meeting.png
Binary files differ
diff --git a/www/img/icon_qj.png b/www/img/icon_qj.png
new file mode 100644
index 0000000..896b13a
--- /dev/null
+++ b/www/img/icon_qj.png
Binary files differ
diff --git a/www/js/index.js b/www/js/index.js
index 5f48d1e..82aa5bb 100644
--- a/www/js/index.js
+++ b/www/js/index.js
@@ -25,16 +25,15 @@
     },
 
     onDeviceReady: function() {
-        debugger;
         var firstload = window.localStorage.getItem("firstload");
-       if(isEmpty(firstload)||firstload!='yes'){
+       /*if(isEmpty(firstload)||firstload!='yes'){
          app.toPage("startload.html")
          return;
-       }
+       }*/
         var uid = window.localStorage.getItem("token");
         if (isEmpty(uid)) {
             //window.location = "login.html";
-            toPage("login.html")
+            this.toPage("login.html")
         } else {
             //尝试登陆
             V1Infor(function(ok, ret) {
@@ -69,7 +68,7 @@
         setTimeout(function() {
            //window.location=page; 
             window.location=page; 
-        },2000)
+        },1000)
     }
 };
 app.initialize();
\ No newline at end of file
diff --git a/www/js/lib/aui-slide.js b/www/js/lib/aui-slide.js
index 2f44157..f2b79b3 100644
--- a/www/js/lib/aui-slide.js
+++ b/www/js/lib/aui-slide.js
@@ -8,7 +8,7 @@
  */
 (function(window) {
 	"use strict";
-
+    var autoInderval;
 	var translateVal,
 		firstTouchX,
 		firstTouchY,
@@ -87,7 +87,7 @@
 				this.createPagination(0);
 				this.setPageDotPosition();
 			}
-			if(this.options.autoPlay > 500 && this.loop){
+			if(this.options.autoPlay > 500){
 				this.autoPlay(0);
 			}
 			this.slideWrap.addEventListener('touchstart', this.touchStart.bind(this), false);
@@ -104,13 +104,18 @@
 	// 自动播放
 	auiSlide.prototype.autoPlay = function (index) {
 		var self = this;
-		setInterval(function(){
+		autoInderval = setInterval(function(){
 			self.slideTo(self.getCircle(self.index-1), -self.slideWrapWidth, 0);
 	        self.slideTo(self.getCircle(self.index+2), self.slideWrapWidth, 0);
 	        self.slideTo(self.index, -self.slideWrapWidth, self.options.speed);
 	        self.slideTo(self.getCircle(self.index+1), 0, self.options.speed);
 	        self.index = self.getCircle(self.index+1);
 	        self.setPaginationActive(self.index);
+	        if((self.index+1)==self.pageCount()){
+	        	if(!self.options.loop){
+	        		clearInterval(autoInderval);
+	        	}
+	        }
 		}, self.options.autoPlay)
 	};
 	// 设置当前分页
diff --git a/www/js/mainmenu.js b/www/js/mainmenu.js
index a0e4fca..eacec44 100644
--- a/www/js/mainmenu.js
+++ b/www/js/mainmenu.js
@@ -74,12 +74,17 @@
                 })
             })
         });
+        var userid = window.localStorage.getItem("userid");
         $('#qrcodeBtn1').click(function() {
-            app.checkBefore(function() {
-                app.checkOther(function() {
-                    window.location = "qrcode.html";
-                })
-            })
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappvisitor?custid="+userid);
+        });
+        
+        $('#qingjiaBtn').click(function() {
+            
+            //window.location = "https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid;
+        });
+        $('#accessBtn').click(function() {
+            //window.location = "https://yy.dlsmk.cn/wisdompolice/app/doorappvisitor?custid="+userid;
         });
         /*$('#cardBtn').click(function() {
             app.checkBefore(function() {
@@ -114,6 +119,7 @@
         })*/
         $("#moreFuncBtn").click(function(){
             window.location = "more.html";
+            //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
         })
         $('#usersec').click(function() {
             app.checkBefore(function() {
@@ -191,7 +197,7 @@
             "pageShow":true,
             "autoPlay":3000,
             "pageStyle":'dot',
-            "loop":false,
+            "loop":true,
             'dotPosition':'center',
             currentPage:currentFun
         });
@@ -207,12 +213,16 @@
         //$("#nodata").hide();
         var param = {
             "pageno": 1,
+            "type":"police",
             "platform":device.platform
         }
         V1Bills(param, function(ok, ret) {
             if (ok) {
-                console.log(ret)
                 if (ret.code == 200) {
+                    console.log(ret)
+                    //ret.version='1.3.9';
+                    //ret.versionmsg='新版本';
+                    //ret.versionurl='https://yy.dlsmk.cn/app/download/wisdompolice.apk';
                     app.checkVersion(ret.version,ret.minversion,ret.versionmsg,ret.versionurl);
                     //app.checkVersion("1.3.9","1","new func","https://shouji.baidu.com/software/26706357.html");
                     //$("#maingt").text(ret.t + "！")
@@ -256,6 +266,7 @@
             //alert(version);
             //alert(version);
             if(ver>version){
+                $("#versioncheck").html('<div class="aui-dot" style="position:relative;top:0; right:0;display:inline-block;"></div>新版本'+ver);
                 var cum = new auiDialog({});
                 var confirm = cum.alert({
                     title: "有新的版本",
@@ -263,9 +274,12 @@
                     buttons: ['取消', '去更新']
                 }, function(ret) {
                     if (ret.buttonIndex == 2) {
-                       cordova.InAppBrowser.open(url, '_system', 'location=no,toolbar=yes,toolbarposition=top,closebuttoncaption=关闭');
+                       //cordova.InAppBrowser.open(url, '_system', 'location=no,toolbar=yes,toolbarposition=top,closebuttoncaption=关闭');
+                       window.open(url,"_system",'');
                     }
                 })  
+            }else{
+                $("#versioncheck").html('已是最新版'+version);
             }
         });
     },
@@ -396,6 +410,26 @@
     logout:function(){
         window.localStorage.removeItem("token");
         window.location = "login.html";
+    },
+    verisonCheck:function(){
+        var param = {
+            "pageno": 1,
+            "type":"police",
+            "platform":device.platform
+        }
+        V1Bills(param, function(ok, ret) {
+            if (ok) {
+                if (ret.code == 200) {
+                    console.log(ret)
+                    //ret.version='1.3.9';
+                    //ret.versionmsg='新版本';
+                    //ret.versionurl='https://yy.dlsmk.cn/app/download/wisdompolice.apk';
+                    app.checkVersion(ret.version,ret.minversion,ret.versionmsg,ret.versionurl);
+                } else {
+                }
+            } else {
+            }
+        })
     }
 };
 app.initialize();
@@ -426,20 +460,17 @@
                 showPageTitle: true
             },
             backButton: {
-                image: 'back.png',
-                imagePressed: 'back.png',
+                wwwImage: 'img/back.png',
+                wwwImagePressed: 'img/back.png',
                 align: 'left',
                 event: 'backPressed'
             },
-            closeButton: {
-                image: 'close.png',
-                imagePressed: 'close.png',
-                align: 'left',
-                event: 'closePressed'
-            },
             backButtonCanClose: true
-        }).addEventListener('closePressed', function(params){
+        }).addEventListener('backPressed', function(e) {
+            //alert('back pressed');
+        }).addEventListener('closePressed', function(e) {
+            //alert('closePressed pressed');
             inAppBrowserRef.close();
-            //window.location = "main.html"
-         });
+            window.location = "main.html"
+        });
     }
diff --git a/www/js/more.js b/www/js/more.js
new file mode 100644
index 0000000..26b18f2
--- /dev/null
+++ b/www/js/more.js
@@ -0,0 +1,66 @@
+var app = {
+
+    // Application Constructor
+    initialize: function() {
+        document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
+    },
+    
+    onDeviceReady: function() {
+        var userid = window.localStorage.getItem("userid");
+        $('#moreBtn3').click(function() {
+            window.location = "bill.html";
+        });
+        $("#moreBtn1").click(function(){
+            //window.location = "more.html";
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+        })
+        $("#moreBtn2").click(function(){
+            //window.location = "more.html";
+            //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            alert("暂未开通");
+        })
+    },
+   
+};
+app.initialize();
+
+function showRet(url) {
+        if(isEmpty(url)){
+            return;
+        }
+        var userid = window.localStorage.getItem("userid"); 
+        //if (url.indexOf("yy.dlsmk.cn")>=0) {
+            if(url.indexOf("?")>0){
+                url=url+'&userid='+userid;
+            }else{
+                url=url+'?userid='+userid;
+            }
+        //}
+        console.log(url)
+        var inAppBrowserRef = cordova.ThemeableBrowser.open(url, '_blank', {
+            statusbar: {
+                color: '#03a9f4ff'
+            },
+            toolbar: {
+                height: 44,
+                color: '#03a9f4ff'
+            },
+            title: {
+                color: '#ffffffff',
+                showPageTitle: true
+            },
+            backButton: {
+                wwwImage: 'img/back.png',
+                wwwImagePressed: 'img/back.png',
+                align: 'left',
+                event: 'backPressed'
+            },
+            backButtonCanClose: true
+        }).addEventListener('backPressed', function(e) {
+            //alert('back pressed');
+        }).addEventListener('closePressed', function(e) {
+            //alert('closePressed pressed');
+            inAppBrowserRef.close();
+            window.location = "main.html"
+        });
+    }
diff --git a/www/js/server.js b/www/js/server.js
index 5854db6..c3dc21c 100644
--- a/www/js/server.js
+++ b/www/js/server.js
@@ -2,10 +2,11 @@
 var SERVER = "https://yy.dlsmk.cn/payapi/mobileapi";
 var DOOR_URl = "https://yy.dlsmk.cn/door/app/appMintUIindex";//门禁服务地址
 var GLOBAL_TODAY="";
+var BASE_URL="https://yy.dlsmk.cn";
 var GLOBAL_YESTERDAY="";
 var CURRENT_INDEX=1;
 if (dev) {
-    SERVER = "http://yy.dlsmk.cn:8080/payapi/mobileapi";
+    SERVER = "http://172.28.43.7:8099/payapi/mobileapi";
 }
 function V1Bindcardcode(param,callback) {
     ajaxPost("/v1/bindcardcode", param, callback)
diff --git a/www/main.html b/www/main.html
index b18c386..6a35e73 100644
--- a/www/main.html
+++ b/www/main.html
@@ -125,7 +125,7 @@
                     <!--</div>-->
                 <!--</li>-->
             </ul>
-            <ul class="aui-list aui-list-in">
+            <ul class="aui-list aui-list-in aui-margin-b-15">
                 <li class="aui-list-item" id="usersec">
                     <div class="aui-list-item-label-icon">
                         <i class="aui-iconfont aui-icon-lock aui-text-info"></i>
@@ -135,6 +135,18 @@
                     </div>
                 </li>
             </ul>
+             <ul class="aui-list aui-list-in">
+                <li class="aui-list-item" id="usersec"  onclick="app.verisonCheck()">
+                    <div class="aui-list-item-label-icon">
+                        <i class="aui-iconfont aui-icon-info aui-text-info"></i>
+                    </div>
+                    <div class="aui-list-item-inner aui-list-item-arrow">
+                        <div class="aui-list-item-title">版本检测</div>
+                        <div class="aui-list-item-right" id="versioncheck">
+                        </div>
+                    </div>
+                </li>
+            </ul>
             <div style="padding: 20px;margin-top: 40px;">
                 <a href="javascript:app.logout();" class="weui-btn weui-btn_warn">退出登录</a>
             </div>
diff --git a/www/more.html b/www/more.html
index f9aef06..daecace 100644
--- a/www/more.html
+++ b/www/more.html
@@ -11,24 +11,44 @@
     <link rel="stylesheet" type="text/css" href="css/aui.css">
     <link rel="stylesheet" type="text/css" href="css/weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
-    <title>更多功能</title>
+    <title>更多</title>
 </head>
-<body style="background: #fff"  >
+
+<body >
     <header class="aui-bar aui-bar-nav" style="padding-top:25px;">
-        <a class="aui-pull-left" href="javascript:window.history.back();">
+        <a class="aui-pull-left" href="main.html">
             <span class="aui-iconfont aui-icon-left"></span>
         </a>
-        <div class="aui-title">更多功能</div>
+        <div class="aui-title">更多</div>
     </header>
-    <section class="aui-content">
-         <div class="weui-loadmore weui-loadmore_line"   >
-            <span class="weui-loadmore__tips" style="background: transparent;" >敬请期待</span>
+    <section class="aui-grid aui-margin-b-15">
+        <p style="padding:10px;color:#000;font-size: 0.8rem">办公</p>
+        <div class="aui-row">
+            <div class="aui-col-xs-4" id="moreBtn1">
+               <div class="center-in"><img src="img/icon_qj.png" style="width:28px;height: 28px"></div>
+               <div class="aui-grid-label" style="margin-top:10px;">请假</div>
+            </div>
+            <div class="aui-col-xs-4" id="moreBtn2">
+               <div class="center-in"><img src="img/icon_meeting.png" style="width:28px;height: 28px"></div>
+               <div class="aui-grid-label" style="margin-top:10px;">会议</div>
+            </div>
+        </div>
+    </section>
+    <section class="aui-grid">
+        <p style="padding:10px;color:#000;font-size: 0.8rem">查询</p>
+        <div class="aui-row">
+            <div class="aui-col-xs-4" id="moreBtn3">
+               <div class="center-in"><img src="img/icon_bill.png" style="width:28px;height: 28px"></div>
+               <div class="aui-grid-label" style="margin-top:10px;">账单</div>
+            </div>
         </div>
     </section>
 </body>
+
 </html>
 <script type="text/javascript" src="cordova.js"></script>
 <script type="text/javascript" src="js/lib/jquery-2.1.4.js"></script>
 <script type="text/javascript" src="js/lib/jquery-weui.js"></script>
 <script type="text/javascript" src="js/lib/qrcode.min.js"></script>
 <script type="text/javascript" src="js/server.js"></script>
+<script type="text/javascript" src="js/more.js"></script>
\ No newline at end of file
diff --git a/www/startload.html b/www/startload.html
index 925feff..7e7b87a 100644
--- a/www/startload.html
+++ b/www/startload.html
@@ -56,7 +56,7 @@
             "pageShow":true,
             "autoPlay":3000,
             "pageStyle":'dot',
-            "loop":true,
+            "loop":false,
             'dotPosition':'center',
             currentPage:currentFun
         })
