diff --git a/www/img/icon_more5.png b/www/img/icon_more5.png
new file mode 100644
index 0000000..2d13b94
--- /dev/null
+++ b/www/img/icon_more5.png
Binary files differ
diff --git a/www/img/icon_more6.png b/www/img/icon_more6.png
new file mode 100644
index 0000000..04b56f2
--- /dev/null
+++ b/www/img/icon_more6.png
Binary files differ
diff --git a/www/img/icon_more7.png b/www/img/icon_more7.png
new file mode 100644
index 0000000..eb900f0
--- /dev/null
+++ b/www/img/icon_more7.png
Binary files differ
diff --git a/www/img/icon_reauth.png b/www/img/icon_reauth.png
deleted file mode 100644
index 5b18a42..0000000
--- a/www/img/icon_reauth.png
+++ /dev/null
Binary files differ
diff --git a/www/js/main.js b/www/js/main.js
index 78b896f..9009475 100644
--- a/www/js/main.js
+++ b/www/js/main.js
@@ -44,6 +44,7 @@
           }
          });
         var uid = window.localStorage.getItem("uid");
+
         window.JPush.setAlias({ sequence: 1, alias: uid },
           (result) => {
             var sequence = result.sequence
@@ -58,6 +59,7 @@
 
     onDeviceReady: function() {
         var uid = window.localStorage.getItem("token");
+        console.log("1."+window.localStorage.getItem("uid"))
         this.initJpush();
         $('#scanBtn').click(function() {
             //window.location = "scan.html";
diff --git a/www/js/mainmenu.js b/www/js/mainmenu.js
index eacec44..7a98ae0 100644
--- a/www/js/mainmenu.js
+++ b/www/js/mainmenu.js
@@ -58,6 +58,7 @@
 
     onDeviceReady: function() {
         var uid = window.localStorage.getItem("token");
+        console.log("1."+window.localStorage.getItem("uid"))
         this.initJpush();
         $('#scanBtn').click(function() {
             //window.location = "scan.html";
diff --git a/www/js/more.js b/www/js/more.js
index 0251b0d..bd4cc2a 100644
--- a/www/js/more.js
+++ b/www/js/more.js
@@ -12,23 +12,39 @@
         });
         $("#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("暂未开通");
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/atte/addindex?custid="+userid);
         })
         $("#moreBtn4").click(function(){
             //window.location = "more.html";
             //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
-            showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/atte/clockindex?custid="+userid);
         })
         $("#moreBtn5").click(function(){
             //window.location = "more.html";
             //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
-            showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/atte/reviewindex?custid="+userid);
         })
+        $("#moreBtn6").click(function(){
+            //window.location = "more.html";
+            //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/atte/reviewClock?custid="+userid);
+        })
+        $("#moreBtn7").click(function(){
+            //window.location = "more.html";
+            //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/doordtl?custid="+userid);
+        })
+        $("#moreBtn8").click(function(){
+            //window.location = "more.html";
+            //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/doordtl?custid="+userid);
+        })
+        $("#moreBtn2").click(function(){
+            //window.location = "more.html";
+            //showRet("https://yy.dlsmk.cn/wisdompolice/app/doorappindex?custid="+userid);
+            showRet("https://yy.dlsmk.cn/wisdompolice/app/conference/attendconference?custid="+userid);
+        })
+
     },
    
 };
diff --git a/www/more.html b/www/more.html
index a3bf7a7..72f6702 100644
--- a/www/more.html
+++ b/www/more.html
@@ -24,26 +24,38 @@
     <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="aui-col-xs-3" 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="moreBtn4">
-               <div class="center-in"><img src="img/icon_meeting.png" style="width:28px;height: 28px"></div>
+            <div class="aui-col-xs-3" id="moreBtn4">
+               <div class="center-in"><img src="img/icon_redo.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="moreBtn5">
-               <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 class="aui-col-xs-3" id="moreBtn5">
+               <div class="center-in"><img src="img/icon_more5.png" style="width:28px;height: 28px"></div>
+               <div class="aui-grid-label" style="margin-top:10px;">报备审批</div>
+            </div>
+             <div class="aui-col-xs-3" id="moreBtn6">
+               <div class="center-in"><img src="img/icon_more6.png" style="width:28px;height: 28px"></div>
+               <div class="aui-grid-label" style="margin-top:10px;">补签审批</div>
             </div>
         </div>
     </section>
-    <section class="aui-grid">
+    <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="moreBtn3">
+            <div class="aui-col-xs-3" 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 class="aui-grid-label" style="margin-top:10px;">交易记录</div>
+            </div>
+             <div class="aui-col-xs-3" id="moreBtn7">
+               <div class="center-in"><img src="img/icon_more7.png" style="width:28px;height: 28px"></div>
+               <div class="aui-grid-label" style="margin-top:10px;">其他记录</div>
+            </div>
+            <div class="aui-col-xs-3" id="moreBtn8" style="display: none">
+               <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>
@@ -51,8 +63,8 @@
     <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="moreBtn2">
-               <div class="center-in"><img src="img/icon_bill.png" style="width:28px;height: 28px"></div>
+            <div class="aui-col-xs-3" 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>
