diff --git a/www/css/aui-slide.css b/www/css/aui-slide.css
new file mode 100644
index 0000000..7c1170e
--- /dev/null
+++ b/www/css/aui-slide.css
@@ -0,0 +1,113 @@
+/**
+ * aui-slide.css 轮播样式
+ * verson 0.0.2
+ * @author 流浪男
+ * http://www.auicss.com
+ * @todo more things to abstract, e.g. Loading css etc.
+ * Licensed under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+.aui-slide-wrap {
+    display: block;
+    position: relative;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    height: 100%;
+    width: 100%;
+    overflow: hidden;
+}
+.aui-slide-wrap .aui-slide-node {
+    position: absolute;
+    top: 0;
+    left: 0;
+    margin: 0;
+    padding: 0;
+    width: 100%;
+    height: 100%;
+    list-style: none;
+    overflow: hidden;
+    background: #ffffff;
+}
+.aui-slide-node-center {
+	display: -moz-box;
+    display: -webkit-box;
+    display: box;
+    -moz-box-pack: center;
+    -webkit-box-pack: center;
+    box-pack: center;
+}
+.aui-slide-node-middle {
+	display: -moz-box;
+    display: -webkit-box;
+    display: box;
+	-moz-box-align: center;
+    -webkit-box-align: center;
+    box-align: center;
+}
+.aui-slide-node img {
+    width: 100%;
+    height: 100%;
+}
+.aui-slide-page-wrap {
+    width: 100%;
+    height: 30px;
+    line-height: 30px;
+    position: absolute;
+    padding: 0;
+    left: 0;
+    right: 0;
+    bottom: 5px;
+    z-index: 9999;
+    text-align: center;
+}
+.aui-slide-page-dot {
+    position: relative;
+    display: inline-block;
+    width: 6px;
+    height: 6px;
+    border-radius: 50%;
+    list-style: none;
+    margin: 5px 3px 0 3px;
+    background: #c7c7c7;
+    -webkit-transition: all 0.5s;
+            transition: all 0.5s;
+}
+.aui-slide-page-line {
+	position: absolute;
+	bottom: -14px;
+	height: 1px !important;
+	position: relative;
+    display: inline-block;
+    background: #eeeeee;
+    -webkit-transition: all 0.5s;
+            transition: all 0.5s;
+}
+.aui-slide-page-active {
+    background: #1abc9c;
+    from { opacity: 0.3; }
+    to { opacity: 1 }
+}
+.aui-slide-prev-btn,
+.aui-slide-next-btn {
+    display: inline-block;
+    width: 50px;
+    height: 30px;
+    line-height: 30px;
+    font-size: 1.2em;
+    color: #1abc9c;
+    background: rgba(249,249,249,0.6);
+    position: relative;
+}
+.aui-slide-prev-btn {
+    border-top-left-radius: 15px;
+    border-bottom-left-radius: 15px;
+}
+.aui-slide-next-btn {
+    border-top-right-radius: 15px;
+    border-bottom-right-radius: 15px;
+}
+.aui-slide-prev-btn:active,
+.aui-slide-next-btn:active {
+    color: #f1c40f;
+}
\ No newline at end of file
diff --git a/www/css/index.css b/www/css/index.css
index b23e33c..fb20796 100644
--- a/www/css/index.css
+++ b/www/css/index.css
@@ -38,6 +38,12 @@
     position: absolute;
     animation: myfirst 2s linear infinite alternate;
 }
+.mainmeun-div{
+    height: 100%;
+    flex-direction: row;justify-content: center;
+    align-items: center;display: flex!important;
+   font-size: 20px;
+}
 
 @keyframes myfirst {
     0% {
diff --git a/www/img/s1.jpg b/www/img/s1.jpg
new file mode 100644
index 0000000..d664916
--- /dev/null
+++ b/www/img/s1.jpg
Binary files differ
diff --git a/www/img/s2.jpg b/www/img/s2.jpg
new file mode 100644
index 0000000..6f8e3d3
--- /dev/null
+++ b/www/img/s2.jpg
Binary files differ
diff --git a/www/img/s3.jpg b/www/img/s3.jpg
new file mode 100644
index 0000000..4fd46a4
--- /dev/null
+++ b/www/img/s3.jpg
Binary files differ
diff --git a/www/img/splashscreen.png b/www/img/splashscreen.png
new file mode 100644
index 0000000..a93b845
--- /dev/null
+++ b/www/img/splashscreen.png
Binary files differ
diff --git a/www/index.html b/www/index.html
index 576b5e9..005362a 100644
--- a/www/index.html
+++ b/www/index.html
@@ -1,6 +1,5 @@
 <!DOCTYPE html>
 <html>
-
 <head>
     <meta name="format-detection" content="telephone=no">
     <meta charset="utf-8">
@@ -9,15 +8,10 @@
     <link rel="stylesheet" type="text/css" href="css/weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/index.css">
-    <title>大理市民卡</title>
+    <title>大理公安在线</title>
 </head>
 <body class="mainbg">
-    <div class="weui-footer weui-footer_fixed-bottom">
-        <p class="weui-footer__links">
-            <a href="#" class="weui-footer__link" style="color: white">大理市民卡</a>
-        </p>
-        <p class="weui-footer__text" style="color: white">© 2019 上海树维</p>
-    </div>
+   <img src="img/splashscreen.png" style="width: 100%;height: 100%" />
 </body>
 </html>
 <script type="text/javascript" src="cordova.js"></script>
diff --git a/www/js/index.js b/www/js/index.js
index db3d7ce..9e660c1 100644
--- a/www/js/index.js
+++ b/www/js/index.js
@@ -25,9 +25,16 @@
     },
 
     onDeviceReady: function() {
+        debugger;
+        var firstload = window.localStorage.getItem("firstload");
+       if(isEmpty(firstload)){
+         app.toPage("startload.html")
+         return;
+       }
         var uid = window.localStorage.getItem("token");
         if (isEmpty(uid)) {
-            window.location = "login.html";
+            //window.location = "login.html";
+            toPage("login.html")
         } else {
             //尝试登陆
             V1Infor(function(ok, ret) {
@@ -37,23 +44,32 @@
                         if(!isEmpty(ret.token)){
                              window.localStorage.setItem("token",ret.token); 
                         }
-                        window.location = "main.html";
+                        //window.location = "main.html";
+                        app.toPage("main.html")
                     }else{
-                        window.location = "login.html";
+                        //window.location = "login.html";
+                        app.toPage("login.html")
                     }
                 } else {
                     //alert('无法请求到服务器，请检查网络并稍后再试');
                     if (ret.status == 401) {
                         //need login
-                        window.location = "login.html";
+                        //window.location = "login.html";
+                        app.toPage("login.html")
                     } else {
                         //TODO ,没有网络
-                        
-                        window.location = "main.html";
+                        app.toPage("main.html")
+                        //window.location = "main.html";
                     }
                 }
             })
         }
+    },
+    toPage:function(page){
+        setTimeout(function() {
+           //window.location=page; 
+            window.location=page; 
+        },2000)
     }
 };
 app.initialize();
\ No newline at end of file
diff --git a/www/js/mainmenu.js b/www/js/mainmenu.js
new file mode 100644
index 0000000..226091a
--- /dev/null
+++ b/www/js/mainmenu.js
@@ -0,0 +1,445 @@
+var app = {
+
+    // Application Constructor
+    initialize: function() {
+        this.initTab();
+        document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
+        document.addEventListener('jpush.receiveRegistrationId', function(event) {
+             console.log(event.registrationId)
+        }, false)
+        document.addEventListener("jpush.openNotification", function (event) {
+          var refno
+          console.log("openNotify:"+event);
+          if(device.platform == "Android") {
+            refno = event.extras.refno
+          } else {
+            refno = event.refno
+            window.JPush.setApplicationIconBadgeNumber(0);
+          }
+          app.openBill(refno);
+          console.log("openNotify:"+refno);
+        }, false)
+    },
+    openBill:function(billno){
+        window.localStorage.setItem("currentrefno",billno);
+        window.location='billdetail.html';
+    },
+    initJpush: function() {
+        if(device.platform == "Android") {
+        } else {
+         window.JPush.setApplicationIconBadgeNumber(0);
+        }
+        window.JPush.init();
+        window.JPush.setDebugMode(true);
+        window.JPush.isPushStopped(function(result) {
+            if (result == 0) {
+                //window.JPush.resumePush();
+            } else {
+                window.JPush.resumePush();
+            }
+        });
+        window.JPush.getUserNotificationSettings(function(result) {
+          if(result == 0) {
+          } else if(result > 0) {
+          }
+         });
+        var uid = window.localStorage.getItem("uid");
+        window.JPush.setAlias({ sequence: 1, alias: uid },
+          (result) => {
+            var sequence = result.sequence
+            var alias = result.alias
+            //alert(JSON.stringify(result))
+          }, (error) => {
+            var sequence = error.sequence
+            var errorCode = error.code
+            //alert(JSON.stringify(error))
+          })
+    },
+
+    onDeviceReady: function() {
+        var uid = window.localStorage.getItem("token");
+        this.initJpush();
+        $('#scanBtn').click(function() {
+            //window.location = "scan.html";
+            app.checkBefore(function() {
+                app.checkOther(function() {
+                    window.location = "scan.html";
+                })
+            })
+        });
+        $('#qrcodeBtn').click(function() {
+            app.checkBefore(function() {
+                app.checkOther(function() {
+                    window.location = "qrcode.html";
+                })
+            })
+        });
+        $('#qrcodeBtn1').click(function() {
+            app.checkBefore(function() {
+                app.checkOther(function() {
+                    window.location = "qrcode.html";
+                })
+            })
+        });
+        /*$('#cardBtn').click(function() {
+            app.checkBefore(function() {
+                app.checkOther(function() {
+                    window.location = "card.html";
+                })
+            })
+        });
+        $('#billBtn').click(function() {
+            app.checkBefore(function() {
+                window.location = "bill.html";
+            })
+        });
+        $('#moreBtn').click(function() {
+            app.checkBefore(function() {
+                window.location = "bill.html";
+            })
+        });
+        $('#secBtn').click(function() {
+            //window.location = "security.html";
+            app.checkBefore(function() {
+                app.checkOther(function() {
+                    window.location = "security.html";
+                })
+            })
+        });
+        
+        $("#doorBtn").click(function(){
+            app.checkBefore(function() {
+                showRet(DOOR_URl);
+            })
+        })*/
+        $("#moreFuncBtn").click(function(){
+            window.location = "more.html";
+        })
+        $('#usersec').click(function() {
+            app.checkBefore(function() {
+                app.checkOther(function() {
+                    window.location = "security.html";
+                })
+            })
+        });
+        $('#accsignbtn').click(function() {
+            app.checkBefore(function() {
+                var signed = window.localStorage.getItem("signed");
+                var cum = new auiDialog({});
+                 if (isEmpty(signed) || signed != 'yes') {
+                    var confirm = cum.alert({
+                        title: "提示",
+                        msg: '您尚未签约市民卡免密代扣签约协议，无法使用该功能',
+                        buttons: ['取消', '去签约']
+                    }, function(ret) {
+                        if (ret.buttonIndex == 2) {
+                           app.toSignCode();
+                        }
+                    })
+                }else{
+                    window.location = 'signxycheck.html'
+                }
+            })
+        });
+        this.initSlider();
+        this.initData();
+        this.backBtn();
+    },
+    backBtn: function(){
+        document.addEventListener("backbutton", function(e){
+               e.preventDefault();
+               navigator.app.exitApp();
+            }, false);
+    },
+    initTab: function() {
+        //$("#maincontent").css("top", $("#maintop").height())
+        var tab = new auiTab({
+            element: document.getElementById("footer"),
+        }, function(ret) {
+            window.localStorage.setItem("tabindex", ret.index);
+
+            changeTab(ret.index);
+        });
+        var tabindex = window.localStorage.getItem("tabindex");
+        if (!tabindex || tabindex == 0) {
+            tabindex = 1
+        }
+        changeTab(tabindex);
+        tab.setActive(tabindex)
+
+        function changeTab(index) {
+            if (index == 1) {
+                $("#main1").show();
+                $("#main2").hide();
+                $("#main3").hide();
+            } else if (index == 2) {
+                $("#main1").hide();
+                $("#main2").show();
+                $("#main3").hide();
+            } else if (index == 3) {
+                $("#main1").hide();
+                $("#main2").hide();
+                $("#main3").show();
+            }
+        }
+    },
+    initSlider:function(){
+        var slide = new auiSlide({
+            container:document.getElementById("startslider"),
+            "height":260,
+            "speed":500,
+            "pageShow":true,
+            "autoPlay":3000,
+            "pageStyle":'dot',
+            "loop":true,
+            'dotPosition':'center',
+            currentPage:currentFun
+        });
+        function currentFun(index){
+            //console.log(index)
+        }
+    },
+    initData: function() {
+        this.loadBill()
+    },
+    loadBill: function() {
+        //$("#loaddata").show()
+        //$("#nodata").hide();
+        var param = {
+            "pageno": 1,
+            "platform":device.platform
+        }
+        V1Bills(param, function(ok, ret) {
+            if (ok) {
+                console.log(ret)
+                if (ret.code == 200) {
+                    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 + "！")
+                    $("#user-amount").text(ret.amount)
+                    $("#user-point").text(ret.point)
+                    if (ret.needrebind) {
+                        window.localStorage.removeItem("userid");
+                    } else {
+                        window.localStorage.setItem("userid", ret.userid);
+                    }
+                    window.localStorage.setItem("signed", ret.signed);
+                    window.localStorage.setItem("paypwdset", ret.paypwdset);
+                    window.localStorage.setItem("name", ret.name);
+                    if (ret.page && ret.page.count > 0) {
+                        GLOBAL_TODAY = ret.today;
+                        GLOBAL_YESTERDAY = ret.yesterday;
+                        //app.initBillView(ret.page)
+                        app.initView();
+                    } else {
+                        //$("#loaddata").hide()
+                        //$("#nodatahint").text("暂无数据")
+                        //$("#nodata").show();
+                        app.initView();
+                    }
+                } else {
+                    //$("#loaddata").hide()
+                    //$("#nodatahint").text("数据加载异常")
+                    //$("#nodata").show();
+                    app.initView();
+                }
+            } else {
+                //$("#loaddata").hide()
+                //$("#nodatahint").text("请求数据失败")
+                //$("#nodata").show();
+                app.initView();
+            }
+        })
+    },
+    checkVersion:function(ver,minver,m,url){
+        cordova.getAppVersion.getVersionNumber(function (version) {
+            //alert(version);
+            //alert(version);
+            if(ver>version){
+                var cum = new auiDialog({});
+                var confirm = cum.alert({
+                    title: "有新的版本",
+                    msg: m,
+                    buttons: ['取消', '去更新']
+                }, function(ret) {
+                    if (ret.buttonIndex == 2) {
+                       cordova.InAppBrowser.open(url, '_system', 'location=no,toolbar=yes,toolbarposition=top,closebuttoncaption=关闭');
+                    }
+                })  
+            }
+        });
+    },
+    initBillView: function(page) {
+        var html = '';
+        for (var i = 0; i < page.data.length; i++) {
+            var bean = page.data[i]
+            html += '<div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail(\'' + bean.refno + '\')">';
+            html += '<div class="aui-card-list-user-avatar"><img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />';
+            html += '</div><div class="aui-card-list-user-name">';
+            html += '<div>' + bean.transdesc + '</div>';
+            if (bean.tradeflag == 'in') {
+                html += '<div class="aui-list-item-right">+' + bean.amount + '</div>';
+            } else {
+                html += '<div class="aui-list-item-right">' + bean.amount + '</div>';
+            }
+            html += '</div><div class="aui-card-list-user-info">' + formatDateNoYear(bean.transdate, bean.transtime) + '</div></div>';
+        }
+        $("#billcontent").html(html);
+        $("#loaddata").hide()
+        $("#nodata").hide();
+        $("#billcontent").show();
+
+    },
+    initView: function() {
+        var userid = window.localStorage.getItem("userid");
+        var signed = window.localStorage.getItem("signed");
+        if (isEmpty(userid)) {
+            $("#userbank").text("未绑定");
+            $("#userbank").css("color", "red")
+        } else {
+            $("#userbank").text("已绑定");
+            $("userbank").css("color", "#757575");
+        }
+        if (isEmpty(signed) || signed != 'yes') {
+            $("#usersign").text("未签约");
+            $("#usersign").css("color", "red")
+        } else {
+            $("#usersign").text("已签约");
+            $("usersign").css("color", "#757575");
+        }
+        var phone = window.localStorage.getItem("phoneX");
+        if (!isEmpty(phone)) {
+            $("#userphone").text(phone)
+        }
+        var name = window.localStorage.getItem("name");
+        if (isEmpty(name)) {
+            $("#username").text("匿名")
+        } else {
+            $("#username").text(name)
+            $("#homename").text(name)
+        }
+    },
+    checkBefore: function(callback) {
+        var uid = window.localStorage.getItem("token");
+        if (isEmpty(uid)) {
+            window.location = "login.html";
+        } else {
+            var userid = window.localStorage.getItem("userid");
+            if (isEmpty(userid)) {
+                var cum = new auiDialog({});
+                var confirm = cum.alert({
+                    title: "提示",
+                    msg: '为了不影响您正常使用相关功能，请先绑定银行卡',
+                    buttons: ['取消', '去绑卡']
+                }, function(ret) {
+                    if (ret.buttonIndex == 2) {
+                        window.location = 'bindcard.html'
+                    }
+                })
+            } else {
+                if (callback) {
+                    callback()
+                }
+            }
+        }
+    },
+    checkOther: function(callback) {
+        var signed = window.localStorage.getItem("signed");
+        var cum = new auiDialog({});
+
+        if (isEmpty(signed) || signed != 'yes') {
+            var confirm = cum.alert({
+                title: "提示",
+                msg: '您尚未签约市民卡免密代扣签约协议，无法使用该功能',
+                buttons: ['取消', '去签约']
+            }, function(ret) {
+                if (ret.buttonIndex == 2) {
+                   app.toSignCode();
+                }
+            })
+        } else {
+            if (callback) {
+                callback()
+            }
+        }
+    },
+    toSignCode: function(){
+        var param = {
+        }
+        V1Bindcardcode(param, function(ok, ret) {
+            if (ok) {
+                if (ret.code == 200) {
+                    window.location = 'bindcheck.html'
+                } else {
+                    $.alert(ret.msg, "错误");
+                }
+            } else {
+                $.alert("请求失败了 " + ret.status + "，请稍后再试", "错误");
+            }
+        })
+    },
+    toSign: function() {
+        window.location = 'signxycheck.html'
+    },
+    toBillDetail: function(refno) {
+        window.localStorage.setItem("currentrefno", refno);
+        window.location = 'billdetail.html';
+    },
+    toCard: function() {
+        var userid = window.localStorage.getItem("userid");
+        if (isEmpty(userid)) {
+            window.location = 'bindcard.html'
+        } else {
+            window.location = 'cardinfor.html'
+        }
+    },
+    logout:function(){
+        window.localStorage.removeItem("token");
+        window.location = "login.html";
+    }
+};
+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: {
+                image: 'back.png',
+                imagePressed: 'back.png',
+                align: 'left',
+                event: 'backPressed'
+            },
+            closeButton: {
+                image: 'close.png',
+                imagePressed: 'close.png',
+                align: 'left',
+                event: 'closePressed'
+            },
+            backButtonCanClose: true
+        }).addEventListener('closePressed', function(params){
+            inAppBrowserRef.close();
+            //window.location = "main.html"
+         });
+    }
diff --git a/www/js/startload.js b/www/js/startload.js
new file mode 100644
index 0000000..2ac0b7d
--- /dev/null
+++ b/www/js/startload.js
@@ -0,0 +1,20 @@
+var app = {
+    initialize: function() {
+        document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
+    },
+
+    onDeviceReady: function() {
+        
+    },
+    toMain:function(){
+         window.localStorage.setItem("firstload",'no'); 
+         var uid = window.localStorage.getItem("token");
+        if (isEmpty(uid)) {
+            window.location = "login.html";
+            //toPage("login.html")
+        } else {
+            window.location = "main.html"; 
+        }
+    }
+};
+app.initialize();
\ No newline at end of file
diff --git a/www/login.html b/www/login.html
index 60827f3..bce7fd5 100644
--- a/www/login.html
+++ b/www/login.html
@@ -12,7 +12,7 @@
 </head>
 <body>
     <div class="login-top">
-        大理市民卡
+        大理公安在线
     </div>
     <section class="aui-content" >
        <ul class="aui-list aui-form-list">
diff --git a/www/main.html b/www/main.html
index c8bb590..0d18b69 100644
--- a/www/main.html
+++ b/www/main.html
@@ -9,171 +9,73 @@
     <link rel="stylesheet" type="text/css" href="css/weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/jquery-weui.min.css">
     <link rel="stylesheet" type="text/css" href="css/index.css" />
+    <link rel="stylesheet" type="text/css" href="css/aui-slide.css">
 </head>
 
 <body>
     <div id="main1">
         <div id="maintop">
-            <section class="aui-content " style="background-color: #03a9f4 !important;">
-                <h1 class="text-white align-left" style="font-size: 26px;color: #fff;padding: 30px 20px 0 20px;"><span id="maingt">您好！</span><span id="homename"></span></h1>
-                <div class="aui-grid aui-bg-info">
-                    <div class="aui-row" id="classify">
-                        <div class="aui-col-xs-6 top-btn" id="scanBtn">
-                            <div class="center-in"><img src="img/icon_scan.png" style="width:56px;"></div>
-                            <div class="aui-grid-label top-title">扫一扫</div>
-                        </div>
-                        <div class="aui-col-xs-6 top-btn" id="qrcodeBtn">
-                            <div class="center-in"><img src="img/icon_qrcode.png" style="width:56px;"></div>
-                            <div class="aui-grid-label top-title">我的码</div>
-                        </div>
+            <div id="startslider" class="main" style="height: 260px;display: block;">
+                <div class="aui-slide-wrap" >
+                    <div class="aui-slide-node bg-dark">
+                        <img  src="img/s1.jpg" />
+                    </div>
+                    <div class="aui-slide-node bg-dark">
+                        <img src="img/s2.jpg"  />
+                    </div>
+                    <div class="aui-slide-node bg-dark">
+                        <img src="img/s3.jpg"  />
                     </div>
                 </div>
-            </section>
-            <section class="aui-content aui-margin-b-10">
-                <div class="aui-grid">
-                    <div class="aui-row">
-                        <div class="aui-col-xs-4" id="cardBtn">
-                            <div class="center-in"><img src="img/icon_card.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="billBtn">
-                            <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 class="aui-col-xs-4" id="secBtn">
-                            <div class="center-in"><img src="img/icon_securty.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="doorBtn">
-                            <div class="center-in"><img src="img/icon_door.png" style="width:28px;height: 28px"></div>
-                            <div class="aui-grid-label" style="margin-top:10px;">远程开门</div>
-                        </div>
-                    </div>
-                </div>
-            </section>
-            <div class="aui-card-list">
-                <div class="aui-card-list-header" style="border-bottom: 1px solid #f2f2f2">
-                    <div class="aui-font-size-14">近期交易</div>
-                    <div class="aui-list-item-right" style="font-size: 16px;color:#49bce9" id="moreBtn">更多></div>
-                </div>
+                <div class="aui-slide-page-wrap"><!--分页容器--></div>
             </div>
         </div>
-        <div style="position: absolute;top:320px;bottom:52px;width: 100%;overflow: auto;" id="maincontent">
-            <section class="aui-content">
-                <div class="weui-loadmore" id="loaddata">
-                    <i class="weui-loading"></i>
-                    <span class="weui-loadmore__tips">正在加载</span>
-                </div>
-                <div class="weui-loadmore weui-loadmore_line" id="nodata" style="display: none" onclick="app.loadBill()">
-                    <span class="weui-loadmore__tips" style="background: transparent;" id="nodatahint">暂无数据</span>
-                </div>
-                <div class="aui-card-list" id="billcontent" style="display: none">
-                    <div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail()">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />
+        <div style="position: absolute;bottom:50px;width: 100%;top:260px" id="maincontent">
+            <section class="aui-content " style="height: 100%">
+                <div class="aui-grid" style="height: 100%">
+                    <div class="aui-row" style="height: 50%">
+                        <div class="aui-col-xs-6  mainmeun-div" id="qrcodeBtn" style="background: #BBE6EC;">
+                            <div>
+                                <div class="center-in"><img src="img/icon_qrcode.png" style="width:100px;height: 100px"></div>
+                                <div class="aui-grid-label" style="margin-top:20px;font-size: 22px;">读码</div>
+                            </div>
                         </div>
-                        <div class="aui-card-list-user-name">
-                            <div>食堂就餐</div>
-                            <div class="aui-list-item-right">+100</div>
+                        <div class="aui-col-xs-6 mainmeun-div" id="scanBtn" style="background: #91DDEA;">
+                            <div>
+                                <div class="center-in"><img src="img/icon_scan.png" style="width:100px;height: 100px"></div>
+                                <div class="aui-grid-label" style="margin-top:20px;font-size: 22px;">扫码</div>
+                            </div>
                         </div>
-                        <div class="aui-card-list-user-info">2019-08-09 11:05</div>
                     </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_water.png" class="aui-margin-r-10 aui-img-round" />
+                    <div class="aui-row" style="height: 50%">
+                        <div class="aui-col-xs-6 mainmeun-div" id="qrcodeBtn1" style="background: #fff;">
+                            <div>
+                                <div class="center-in"><img src="img/icon_securty.png" style="width:100px;height: 100px"></div>
+                                <div class="aui-grid-label" style="margin-top:20px;font-size: 22px;">访码</div>
+                            </div>
                         </div>
-                        <div class="aui-card-list-user-name">
-                            <div>生活用水</div>
-                            <div class="aui-list-item-right">+100</div>
+                        <div class="aui-col-xs-6 mainmeun-div" id="moreFuncBtn"  style="background: #FDD479;">
+                            <div>
+                                <div class="center-in"><img src="img/icon_door.png" style="width:100px;height: 100px"></div>
+                                <div class="aui-grid-label" style="margin-top:20px;font-size: 22px;">更多</div>
+                            </div>
                         </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
                     </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>交通出行</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail()">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>食堂就餐</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">2019-08-09 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_water.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>生活用水</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>交通出行</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail()">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>食堂就餐</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">2019-08-09 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_water.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>生活用水</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>交通出行</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
-                    </div>
-                    <div class="aui-card-list-header aui-card-list-user">
-                        <div class="aui-card-list-user-avatar">
-                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
-                        </div>
-                        <div class="aui-card-list-user-name">
-                            <div>交通出行</div>
-                            <div class="aui-list-item-right">+100</div>
-                        </div>
-                        <div class="aui-card-list-user-info">今天 11:05</div>
-                    </div>
-                   
                 </div>
             </section>
         </div>
     </div>
-    <div id="main2" style="display: none;">
+    <div id="main2" style="display: none">
+        <header class="aui-bar aui-bar-nav" style="padding-top:25px;font-size: 22px">
+            消息
+        </header>
+        <section class="aui-content">
+             <div class="weui-loadmore weui-loadmore_line"   >
+                <span class="weui-loadmore__tips" style="background: transparent;" id="nodatahint">暂无消息</span>
+            </div>
+        </section>
+    </div>
+    <div id="main3" style="display: none;">
         <header class="aui-bar aui-bar-nav" style="padding-top:25px;font-size: 22px">
             我的
         </header>
@@ -194,22 +96,6 @@
                     </div>
                 </div>
             </div>
-            <!--<section class="aui-content aui-grid ">
-                  <div class="aui-row aui-margin-t-10">
-                      <div class="aui-col-xs-4 aui-border-r">
-                          <big class="aui-text-warning" id="user-amount">0.00</big>
-                          <div class="aui-gird-lable aui-font-size-12">余额</div>
-                      </div>
-                      <div class="aui-col-xs-4 aui-border-r">
-                          <big class="aui-text-success" id="user-point">0</big>
-                          <div class="aui-gird-lable aui-font-size-12">积分</div>
-                      </div>
-                      <div class="aui-col-xs-4 ">
-                          <big class="aui-text-danger" id="user-coupon">0</big>
-                          <div class="aui-gird-lable aui-font-size-12">优惠券</div>
-                      </div>
-                  </div>
-              </section>-->
         </section>
         <section class="aui-content">
             <ul class="aui-list aui-list-in aui-margin-b-15">
@@ -253,6 +139,10 @@
             <div class="aui-bar-tab-label">首页</div>
         </div>
         <div class="aui-bar-tab-item" tapmode onclick="switchTo(2)" id="tab2">
+            <i class="aui-iconfont aui-icon-comment"></i>
+            <div class="aui-bar-tab-label">消息</div>
+        </div>
+        <div class="aui-bar-tab-item" tapmode onclick="switchTo(3)" id="tab3">
             <i class="aui-iconfont aui-icon-my"></i>
             <div class="aui-bar-tab-label">我的</div>
         </div>
@@ -262,8 +152,9 @@
 <script type="text/javascript" src="js/lib/jquery-2.1.4.js"></script>
 <script type="text/javascript" src="js/lib/aui-tab.js"></script>
 <script type="text/javascript" src="js/lib/aui-dialog.js"></script>
+<script type="text/javascript" src="js/lib/aui-slide.js"></script>
 <script type="text/javascript" src="js/server.js"></script>
-<script type="text/javascript" src="js/main.js"></script>
+<script type="text/javascript" src="js/mainmenu.js"></script>
 <script type="text/javascript">
 
 </script>
diff --git a/www/main2.html b/www/main2.html
new file mode 100644
index 0000000..c8bb590
--- /dev/null
+++ b/www/main2.html
@@ -0,0 +1,270 @@
+<!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">
+    <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">
+    <link rel="stylesheet" type="text/css" href="css/index.css" />
+</head>
+
+<body>
+    <div id="main1">
+        <div id="maintop">
+            <section class="aui-content " style="background-color: #03a9f4 !important;">
+                <h1 class="text-white align-left" style="font-size: 26px;color: #fff;padding: 30px 20px 0 20px;"><span id="maingt">您好！</span><span id="homename"></span></h1>
+                <div class="aui-grid aui-bg-info">
+                    <div class="aui-row" id="classify">
+                        <div class="aui-col-xs-6 top-btn" id="scanBtn">
+                            <div class="center-in"><img src="img/icon_scan.png" style="width:56px;"></div>
+                            <div class="aui-grid-label top-title">扫一扫</div>
+                        </div>
+                        <div class="aui-col-xs-6 top-btn" id="qrcodeBtn">
+                            <div class="center-in"><img src="img/icon_qrcode.png" style="width:56px;"></div>
+                            <div class="aui-grid-label top-title">我的码</div>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <section class="aui-content aui-margin-b-10">
+                <div class="aui-grid">
+                    <div class="aui-row">
+                        <div class="aui-col-xs-4" id="cardBtn">
+                            <div class="center-in"><img src="img/icon_card.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="billBtn">
+                            <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 class="aui-col-xs-4" id="secBtn">
+                            <div class="center-in"><img src="img/icon_securty.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="doorBtn">
+                            <div class="center-in"><img src="img/icon_door.png" style="width:28px;height: 28px"></div>
+                            <div class="aui-grid-label" style="margin-top:10px;">远程开门</div>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <div class="aui-card-list">
+                <div class="aui-card-list-header" style="border-bottom: 1px solid #f2f2f2">
+                    <div class="aui-font-size-14">近期交易</div>
+                    <div class="aui-list-item-right" style="font-size: 16px;color:#49bce9" id="moreBtn">更多></div>
+                </div>
+            </div>
+        </div>
+        <div style="position: absolute;top:320px;bottom:52px;width: 100%;overflow: auto;" id="maincontent">
+            <section class="aui-content">
+                <div class="weui-loadmore" id="loaddata">
+                    <i class="weui-loading"></i>
+                    <span class="weui-loadmore__tips">正在加载</span>
+                </div>
+                <div class="weui-loadmore weui-loadmore_line" id="nodata" style="display: none" onclick="app.loadBill()">
+                    <span class="weui-loadmore__tips" style="background: transparent;" id="nodatahint">暂无数据</span>
+                </div>
+                <div class="aui-card-list" id="billcontent" style="display: none">
+                    <div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail()">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>食堂就餐</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">2019-08-09 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_water.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>生活用水</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>交通出行</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail()">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>食堂就餐</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">2019-08-09 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_water.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>生活用水</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>交通出行</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user" onclick="app.toBillDetail()">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_meal.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>食堂就餐</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">2019-08-09 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_water.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>生活用水</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>交通出行</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                    <div class="aui-card-list-header aui-card-list-user">
+                        <div class="aui-card-list-user-avatar">
+                            <img src="img/icon_car.png" class="aui-margin-r-10 aui-img-round" />
+                        </div>
+                        <div class="aui-card-list-user-name">
+                            <div>交通出行</div>
+                            <div class="aui-list-item-right">+100</div>
+                        </div>
+                        <div class="aui-card-list-user-info">今天 11:05</div>
+                    </div>
+                   
+                </div>
+            </section>
+        </div>
+    </div>
+    <div id="main2" style="display: none;">
+        <header class="aui-bar aui-bar-nav" style="padding-top:25px;font-size: 22px">
+            我的
+        </header>
+        <!-- bg-white -->
+        <section class="aui-content aui-margin-b-15" style=" margin-top: -2px;">
+            <div class="aui-list aui-media-list aui-list-noborder aui-bg-info user-info">
+                <div class="aui-list-item aui-list-item-middle top-btn">
+                    <div class="aui-media-list-item-inner ">
+                        <div class="aui-list-item-media" style="width:3rem;">
+                            <img src="img/icon_header.png" class="aui-img-round" id="userlogo">
+                        </div>
+                        <div class="aui-list-item-inner">
+                            <div class="aui-list-item-text text-white aui-font-size-18" id="username">匿名</div>
+                            <div class="aui-list-item-text text-white">
+                                <div><i class="aui-iconfont aui-icon-mobile aui-font-size-14"></i><span id="userphone"></span></div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!--<section class="aui-content aui-grid ">
+                  <div class="aui-row aui-margin-t-10">
+                      <div class="aui-col-xs-4 aui-border-r">
+                          <big class="aui-text-warning" id="user-amount">0.00</big>
+                          <div class="aui-gird-lable aui-font-size-12">余额</div>
+                      </div>
+                      <div class="aui-col-xs-4 aui-border-r">
+                          <big class="aui-text-success" id="user-point">0</big>
+                          <div class="aui-gird-lable aui-font-size-12">积分</div>
+                      </div>
+                      <div class="aui-col-xs-4 ">
+                          <big class="aui-text-danger" id="user-coupon">0</big>
+                          <div class="aui-gird-lable aui-font-size-12">优惠券</div>
+                      </div>
+                  </div>
+              </section>-->
+        </section>
+        <section class="aui-content">
+            <ul class="aui-list aui-list-in aui-margin-b-15">
+                <li class="aui-list-item" onclick="app.toCard()">
+                    <div class="aui-list-item-label-icon">
+                        <i class="aui-iconfont aui-icon-cert 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="userbank"></div>
+                    </div>
+                </li>
+                <li class="aui-list-item" id="accsignbtn">
+                    <div class="aui-list-item-label-icon">
+                        <i class="aui-iconfont aui-icon-pencil aui-text-danger"></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="usersign"></div>
+                    </div>
+                </li>
+            </ul>
+            <ul class="aui-list aui-list-in">
+                <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>
+                    </div>
+                    <div class="aui-list-item-inner aui-list-item-arrow">
+                        <div class="aui-list-item-title">账户安全</div>
+                    </div>
+                </li>
+            </ul>
+            <div style="padding: 20px;margin-top: 40px;">
+                <a href="javascript:app.logout();" class="weui-btn weui-btn_warn">退出登录</a>
+            </div>  
+        </section>
+    </div>
+    <footer class="aui-bar aui-bar-tab aui-border-t" id="footer">
+        <div class="aui-bar-tab-item aui-active" tapmode onclick="switchTo(1)" id="tab1">
+            <i class="aui-iconfont aui-icon-home"></i>
+            <div class="aui-bar-tab-label">首页</div>
+        </div>
+        <div class="aui-bar-tab-item" tapmode onclick="switchTo(2)" id="tab2">
+            <i class="aui-iconfont aui-icon-my"></i>
+            <div class="aui-bar-tab-label">我的</div>
+        </div>
+    </footer>
+</body>
+<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/aui-tab.js"></script>
+<script type="text/javascript" src="js/lib/aui-dialog.js"></script>
+<script type="text/javascript" src="js/server.js"></script>
+<script type="text/javascript" src="js/main.js"></script>
+<script type="text/javascript">
+
+</script>
+</html>
\ No newline at end of file
diff --git a/www/more.html b/www/more.html
new file mode 100644
index 0000000..f9aef06
--- /dev/null
+++ b/www/more.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <link rel="stylesheet" type="text/css" href="mobileui/style.css">
+    <meta name="format-detection" content="telephone=no">
+    <meta charset="utf-8">
+    <meta name="msapplication-tap-highlight" content="no">
+    <meta name="viewport" content="viewport-fit=cover, initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width" />
+    <link rel="stylesheet" type="text/css" href="css/index.css">
+    <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>
+</head>
+<body style="background: #fff"  >
+    <header class="aui-bar aui-bar-nav" style="padding-top:25px;">
+        <a class="aui-pull-left" href="javascript:window.history.back();">
+            <span class="aui-iconfont aui-icon-left"></span>
+        </a>
+        <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>
+        </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>
diff --git a/www/startload.html b/www/startload.html
new file mode 100644
index 0000000..93c1cc1
--- /dev/null
+++ b/www/startload.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta name="format-detection" content="telephone=no">
+    <meta charset="utf-8">
+    <meta name="msapplication-tap-highlight" content="no">
+    <meta name="viewport" content="viewport-fit=cover, initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width" />
+    <link rel="stylesheet" type="text/css" href="css/aui.css">
+    <link rel="stylesheet" type="text/css" href="css/aui-slide.css">
+    <link rel="stylesheet" type="text/css" href="css/index.css">
+    <title>大理公安在线</title>
+    <style type="text/css">
+        .main{
+          position: absolute!important;
+          height: 100%;
+          width: 100%;
+        }
+        body{
+            background: #fff!important;
+        }
+        .aui-slide-node img {
+            width: 100%;
+            height: 100%;
+        }
+    </style>
+</head>
+<body class="mainbg">
+    <div id="startslider" class="main">
+        <div class="aui-slide-wrap" >
+            <div class="aui-slide-node bg-dark">
+                <img  src="img/s1.jpg" />
+            </div>
+            <div class="aui-slide-node bg-dark">
+                <img src="img/s2.jpg"  />
+            </div>
+            <div class="aui-slide-node bg-dark">
+                <img src="img/s3.jpg"  />
+                <div style="position: absolute;bottom: 35px;left: 0;right: 0;display: flex;flex-direction: row;justify-content: center;align-items: center;"> <div class="aui-btn aui-btn-primary aui-btn-block aui-btn-outlined aui-btn-sm" style="width: 40%" onclick="app.toMain()">开始使用</div> </div>
+            </div>
+        </div>
+        <div class="aui-slide-page-wrap"><!--分页容器--></div>
+    </div>
+</body>
+</html>
+<script type="text/javascript" src="cordova.js"></script>
+<script type="text/javascript" src="js/startload.js"></script>
+<script type="text/javascript" src="js/lib/jquery-2.1.4.js"></script>
+<script type="text/javascript" src="js/lib/jquery-weui.min.js"></script>
+<script type="text/javascript" src="js/lib/aui-slide.js"></script>
+<script type="text/javascript" src="js/server.js"></script>
+<script type="text/javascript">
+     window.localStorage.setItem("tabindex",1); 
+     var slide = new auiSlide({
+            container:document.getElementById("startslider"),
+            "pageShow":true,
+            "autoPlay":0,
+            "pageStyle":'dot',
+            "loop":false,
+            'dotPosition':'center',
+            currentPage:currentFun
+        })
+       function currentFun(index){
+            console.log(index)
+       }
+</script>
\ No newline at end of file
