diff --git a/src/main/resources/templates/apph5/askforleave.html b/src/main/resources/templates/apph5/askforleave.html
index 0cd70e1..3478818 100644
--- a/src/main/resources/templates/apph5/askforleave.html
+++ b/src/main/resources/templates/apph5/askforleave.html
@@ -117,7 +117,7 @@
             userId: '',
             pickerOptions0: {
                 disabledDate: function (time) {
-                    return time.getTime() > Date.now();
+                    return time.getTime();
                 }
             },pickerOptions1: {
                 disabledDate:function(time) {
@@ -220,7 +220,7 @@
         var custid=that.tempform.custid;
         $.ajax({
             type: "post",
-            url: encodeURI("[[@{/app/savetempcust?startdate=}]]"+startdate+"&enddate="+enddate+"&rtype="+rtype+"&remark="+remark+"&custid="+custid),
+            url: encodeURI("[[@{/app/atte/savetempcust?startdate=}]]"+startdate+"&enddate="+enddate+"&rtype="+rtype+"&remark="+remark+"&custid="+custid),
             dataType: "json",
             contentType: "application/json",
             headers: {
diff --git a/src/main/resources/templates/apph5/leavehistory.html b/src/main/resources/templates/apph5/leavehistory.html
index 3221759..be829b9 100644
--- a/src/main/resources/templates/apph5/leavehistory.html
+++ b/src/main/resources/templates/apph5/leavehistory.html
@@ -28,6 +28,8 @@
 <body>
 
 <div id="app">
+    <div class="page-title" style="text-align:center; font-size: 24px;color: #FF8247;margin-top:7%">假单审核</div><br>
+
     <el-button type="primary" @click="showdiv()" style="float: right">筛 选</el-button>
 
 
@@ -47,7 +49,7 @@
                                     prop="custid"
                                     align="center"
                                     v-show="false">
-                                <template scope="scope" >
+                                <template scope="scope">
                                     <div class="weui-panel__bd">
                                         <div class="weui-media-box weui-media-box_text">
                                             <h4 class="weui-media-box__title" style="display: flex">
@@ -65,15 +67,20 @@
                                                 </div>
                                                 <div style="font-size:14px;color:#999;margin-left:10px">
                                                     <span v-if="scope.row.status== '0'"><el-button
-                                                            type="warning"@click="editDtl(scope.row)">未审核</el-button></span>
+                                                            type="warning"
+                                                            @click="editDtl(scope.row)">未审核</el-button></span>
                                                     <span v-if="scope.row.status== '1'"><el-button
-                                                            type="success"@click="editDtl(scope.row)">已通过</el-button></span>
+                                                            type="success"
+                                                            @click="editDtl(scope.row)">已通过</el-button></span>
                                                     <span v-if="scope.row.status== '2'"><el-button
-                                                            type="success"@click="editDtl(scope.row)">未通过</el-button></span>
+                                                            type="success"
+                                                            @click="editDtl(scope.row)">未通过</el-button></span>
                                                     <span v-if="scope.row.status== '3'"><el-button
-                                                            type="success"@click="editDtl(scope.row)">取消</el-button></span>
+                                                            type="success"
+                                                            @click="editDtl(scope.row)">取消</el-button></span>
                                                     <span v-if="scope.row.status== '4'"><el-button
-                                                            type="warning"@click="editDtl(scope.row)">删除</el-button></span>
+                                                            type="warning"
+                                                            @click="editDtl(scope.row)">删除</el-button></span>
                                                 </div>
 
                                             </div>
@@ -180,7 +187,8 @@
             </el-form-item>
             <el-form-item label="备注:" prop="remark">
                 <el-col :span="18">
-                    <el-input type="textarea" style="width: 90%;"  v-model="historyform.remark" placeholder="填写备注" readonly>
+                    <el-input type="textarea" style="width: 90%;" v-model="historyform.remark" placeholder="填写备注"
+                              readonly>
                     </el-input>
                 </el-col>
             </el-form-item>
@@ -189,15 +197,16 @@
         </el-form>
         <div slot="footer" class="dialog-footer">
             <el-button @click="resetForm('historyform') ">取 消</el-button>
-            <el-button type="primary" @click="saveState('historyform')">确 定</el-button>
-            <el-button type="primary" @click="showdiv()" style="float: right">筛 选</el-button>
+            <el-button type="primary" v-if="historyform.status== '0'" @click="review('historyform')">通过</el-button>
+            <el-button type="primary" v-if="historyform.status== '0'" @click="unreview('historyform')">不通过</el-button>
+
 
         </div>
     </el-dialog>
-    <el-dialog :title="updatetitle" :visible.sync="dialogFormVisible" style="width: 100%"  :modal-append-to-body='false'
-               @close="closeDialog('tempform')" size="large" >
-        <el-form  ref="tempform" :model="tempform" data-parsley-validate
-                 class="el-form-item" style="width: 100%" >
+    <el-dialog :title="updatetitle" :visible.sync="dialogFormVisible" style="width: 100%" :modal-append-to-body='false'
+               @close="closeDialog('tempform')" size="large">
+        <el-form ref="tempform" :model="tempform" data-parsley-validate
+                 class="el-form-item" style="width: 100%">
             <el-form-item label="人员类型:" prop="custtype">
                 <div class="el-col el-col-18">
                     <div class="el-input" style="width: 90%;">
@@ -250,7 +259,6 @@
 </div>
 
 
-
 </body>
 
 <script>
@@ -287,6 +295,7 @@
                 rtype: '',
                 status: '',
                 custtype: '',
+                id: ''
             },
             sexlist: [],
             rtypelist: [],
@@ -326,7 +335,26 @@
                 var _that = this;
                 this.pagesize = 10;
                 this.currPage = 1;
-                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.custid, this.currPage, this.pageSize);
+                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
+            },
+            review: function (formName) {
+                this.dialogFormVisible2 = false;
+
+                var _that = this;
+                this.pagesize = 10;
+                this.currPage = 1;
+                reviewupdate(this, 1, this.historyform.id);
+                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
+
+            },unreview: function (formName) {
+                this.dialogFormVisible2 = false;
+
+                var _that = this;
+                this.pagesize = 10;
+                this.currPage = 1;
+                reviewupdate(this, 2, this.historyform.id);
+                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
+
             },
             showdiv: function (row) {
                 this.dialogFormVisible = true;
@@ -353,13 +381,13 @@
             setSize: function () {
                 // 通过浏览器宽度(图片宽度)计算高度
                 this.bannerHeight = this.screenWidth;
-            },handleSizeChange:function(val) {
-                this.pageSize=val;
-                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.custid, this.currPage, this.pageSize);
+            }, handleSizeChange: function (val) {
+                this.pageSize = val;
+                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
                 //console.log('每页条'+val);
-            },currPageChange:function(val) {
-                this.currPage=val;
-                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.custid, this.currPage, this.pageSize);
+            }, currPageChange: function (val) {
+                this.currPage = val;
+                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
                 //console.log('当前页:'+val);
             }
 
@@ -380,13 +408,16 @@
             sexl.push({
                 value: '11',
                 label: '事假'
-            });sexl.push({
+            });
+            sexl.push({
                 value: '12',
                 label: '病假'
-            });sexl.push({
+            });
+            sexl.push({
                 value: '13',
                 label: '年假'
-            });sexl.push({
+            });
+            sexl.push({
                 value: '14',
                 label: '调休'
             });
@@ -403,16 +434,20 @@
             statl.push({
                 value: '0',
                 label: '未审核'
-            });statl.push({
+            });
+            statl.push({
                 value: '1',
                 label: '已通过'
-            });statl.push({
+            });
+            statl.push({
                 value: '2',
                 label: '未通过'
-            });statl.push({
+            });
+            statl.push({
                 value: '3',
                 label: '取消'
-            });statl.push({
+            });
+            statl.push({
                 value: '4',
                 label: '删除'
             });
@@ -421,7 +456,7 @@
             $.ajax({
                 type: "get",
                 dataType: "json",
-                url: encodeURI("[[@{/app/getcusttypelist}]]"),
+                url: encodeURI("[[@{/app/atte/getcusttypelist}]]"),
                 success: function (ret) {
                     var dlist = [];
                     dlist.push({
@@ -438,7 +473,7 @@
                         }
                     }
 
-                     _self.custtypelist= dlist;
+                    _self.custtypelist = dlist;
 
                 }
             })
@@ -465,27 +500,28 @@
         _self.historyform.custtype = row.custtype;
         _self.historyform.custtypename = row.custtypename;
         _self.historyform.status = row.status;
-        if(row.status=="0"){
-            _self.historyform.statusname ="未审核"
-        }else if(row.status=="1"){
-            _self.historyform.statusname ="已通过"
-        }else if(row.status=="2"){
-            _self.historyform.statusname ="未通过"
-        }else if(row.status=="3"){
-            _self.historyform.statusname ="取消"
-        }else{
-            _self.historyform.statusname ="删除"
+        _self.historyform.id = row.id;
+        if (row.status == "0") {
+            _self.historyform.statusname = "未审核"
+        } else if (row.status == "1") {
+            _self.historyform.statusname = "已通过"
+        } else if (row.status == "2") {
+            _self.historyform.statusname = "未通过"
+        } else if (row.status == "3") {
+            _self.historyform.statusname = "取消"
+        } else {
+            _self.historyform.statusname = "删除"
         }
-        if(row.rtype=="11"){
-            _self.historyform.rtypename ="事假"
-        }else if(row.rtype=="12"){
-            _self.historyform.rtypename ="病假"
-        }else if(row.rtype=="13"){
-            _self.historyform.rtypename ="年假"
-        }else if(row.rtype=="14"){
-            _self.historyform.rtypename ="调休"
-        }else if(row.rtype=="15"){
-            _self.historyform.rtypename ="其他"
+        if (row.rtype == "11") {
+            _self.historyform.rtypename = "事假"
+        } else if (row.rtype == "12") {
+            _self.historyform.rtypename = "病假"
+        } else if (row.rtype == "13") {
+            _self.historyform.rtypename = "年假"
+        } else if (row.rtype == "14") {
+            _self.historyform.rtypename = "调休"
+        } else if (row.rtype == "15") {
+            _self.historyform.rtypename = "其他"
         }
         _self.historyform.remark = row.remark;
     }
@@ -494,7 +530,7 @@
         var token = $("meta[name='_csrf_token']").attr("value");
         $.ajax({
             type: "post",
-            url: encodeURI("[[@{/app/getreviewlist}]]"),
+            url: encodeURI("[[@{/app/atte/getreviewlist}]]"),
             dataType: "json",
             contentType: "application/json",
             headers: {
@@ -515,16 +551,29 @@
         });
     }
 
-    function commonQuery(_self, rtype, custtype, custid, pageno, pagesize) {
+    function commonQuery(_self, rtype, custtype, status, custid, pageno, pagesize) {
         $.ajax({
             type: "get",
             dataType: "json",
-            url: "[[@{/app/getreviewlist?rtype=}]]" + rtype + "&custtype=" + custtype + "&custid=" + custid + "&pageNo=" + pageno + "&pageSize=" + pagesize,
+            url: "[[@{/app/atte/getreviewlist?rtype=}]]" + rtype + "&custtype=" + custtype + "&status=" + status + "&custid=" + custid + "&pageNo=" + pageno + "&pageSize=" + pagesize,
             success: function (info) {
                 console.log(info)
 
                 _self.tableData = info.page.list;
-                _self.totSize=info.page.totalCount;            }
+                _self.totSize = info.page.totalCount;
+            }
+        })
+    }
+
+    function reviewupdate(_self, status, id) {
+        $.ajax({
+            type: "get",
+            dataType: "json",
+            url: "[[@{/app/atte/getreviewlist?id=}]]" + id + "&status=" + status,
+            success: function (info) {
+                console.log(info)
+
+            }
         })
     }
 
diff --git a/src/main/resources/templates/apph5/myleave.html b/src/main/resources/templates/apph5/myleave.html
new file mode 100644
index 0000000..f501076
--- /dev/null
+++ b/src/main/resources/templates/apph5/myleave.html
@@ -0,0 +1,592 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+    <title>首页</title>
+    <!--<meta name="_csrf_header" th:content="${_csrf.headerName}" />
+    <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}" />-->
+    <meta charset="utf-8"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="/static/libs/layui/css/layui.css" th:href="@{/static/libs/layui/css/layui.css}"/>
+
+    <link rel="stylesheet" href="/static/res/assets/plugins/element-ui/theme-default/index.css"
+          th:href="@{/static/res/assets/plugins/element-ui/theme-default/index.css}"/>
+    <link rel="stylesheet" href="/static/res/assets/css/wxpage.css"
+          th:href="@{/static/res/assets/css/wxpage.css}"/>
+    <!--<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>-->
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.min.js}"></script>
+    <!--<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>-->
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.form.js}"></script>
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/layer/layer.js}"></script>
+    <script type="text/javascript" th:src="@{/static/res/assets/js/vue.min.js}"></script>
+    <script type="text/javascript" th:src="@{/static/res/assets/plugins/element-ui/index.js}"></script>
+
+
+</head>
+
+<body>
+
+<div id="app">
+    <div class="page-title" style="text-align:center; font-size: 24px;color: #FF8247;margin-top:7%">我的假单</div><br>
+
+    <el-button type="primary" @click="showdiv()" style="float: right">筛 选</el-button>
+
+
+
+    <div class="row">
+        <div class="col-md-12" style="padding-left: 0px;padding-right: 0px">
+            <div class="box box-primary" style="margin-bottom: 15px">
+                <div class="box-body box-profile">
+                    <template>
+                        <el-table
+                                ref="singleTable"
+                                :data="tableData"
+                                highlight-current-row
+                                @current-change="currRowChange"
+                                stripe
+                                border>
+                            <el-table-column
+                                    prop="custid"
+                                    align="center"
+                                    v-show="false">
+                                <template scope="scope">
+                                    <div class="weui-panel__bd">
+                                        <div class="weui-media-box weui-media-box_text">
+                                            <h4 class="weui-media-box__title" style="display: flex">
+                                                <div style="flex: 1">{{scope.row.custname}}</div>
+                                                <div>{{scope.row.deptname}}</div>
+                                            </h4>
+                                            <p class="weui-media-box__desc">
+                                            <div class="weui-cell__bd">
+                                                <span style="font-size:14px;color:#999; "></span>
+                                            </div>
+                                            <div style="display: flex;">
+
+                                                <div style="font-size:14px;color:#999;flex: 1">
+                                                    请假时间{{scope.row.startdate}}--{{scope.row.enddate}}
+                                                </div>
+                                                <div style="font-size:14px;color:#999;margin-left:10px">
+                                                    <span v-if="scope.row.status== '0'"><el-button
+                                                            type="warning"
+                                                            @click="editDtl(scope.row)">未审核</el-button></span>
+                                                    <span v-if="scope.row.status== '1'"><el-button
+                                                            type="success"
+                                                            @click="editDtl(scope.row)">已通过</el-button></span>
+                                                    <span v-if="scope.row.status== '2'"><el-button
+                                                            type="success"
+                                                            @click="editDtl(scope.row)">未通过</el-button></span>
+                                                    <span v-if="scope.row.status== '3'"><el-button
+                                                            type="success"
+                                                            @click="editDtl(scope.row)">取消</el-button></span>
+                                                    <span v-if="scope.row.status== '4'"><el-button
+                                                            type="warning"
+                                                            @click="editDtl(scope.row)">删除</el-button></span>
+                                                </div>
+
+                                            </div>
+                                            </p>
+                                        </div>
+                                    </div>
+
+                                </template>
+                            </el-table-column>
+
+                            <!--<el-table-column
+                                    prop="custname"
+                                    label="名称"
+                                    align="center">
+                            </el-table-column>
+                            <el-table-column
+                                    prop="remark"
+                                    label="描述"
+                                    align="center">
+                            </el-table-column>
+                            <el-table-column
+                                    prop="startdate"
+                                    label="开始日期"
+
+                                    align="center">
+                            </el-table-column>
+                            <el-table-column
+                                    prop="enddate"
+                                    label="结束日期"
+
+                                    align="center">
+                            </el-table-column>
+
+<el-table-column
+                                    prop="status"
+                                    label="状态"
+
+                                    align="center">
+                                <template scope="scope">
+                                    <span v-if="scope.row.status=== '1'"><el-tag
+                                            type="success">已批准</el-tag></span>
+                                    <span v-if="scope.row.status=== '2'"><el-tag
+                                            type="warning">未批准</el-tag></span>
+                                </template>
+
+                            </el-table-column>
+
+                            <el-table-column
+                                    label="操作"
+                                    fixed="right"
+                                    align="center"
+                            >
+                                <template scope="scope">
+                                    <button v-if="scope.row.status=== '2'" type="button" class="btn btn-danger btn-xs"
+                                            title="批准"
+                                            @click="delUser(scope.row.ids)">批准
+                                    </button>
+                                </template>
+                            </el-table-column>-->
+                        </el-table>
+                        <div class="clearfix"></div>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="currPageChange"
+                                :current-page="currPage"
+                                :page-sizes="[10, 20, 50, 100]"
+                                :page-size="pageSize"
+                                layout="prev, pager, next,sizes, jumper,total"
+                                :total="totSize">
+                        </el-pagination>
+
+                    </template>
+                </div>
+            </div>
+        </div>
+    </div>
+    <el-dialog :title="updatetitle2" :visible.sync="dialogFormVisible2" size="large"
+               :modal-append-to-body='false' @close="closeDialog('historyform')">
+        <el-form ref="historyform" class="el-form-item " :model="historyform"
+                 :rules="rules" label-width="36%">
+            <el-form-item label="姓名:" prop="custname">
+                <el-col :span="18">
+                    <el-input v-model="historyform.custname" readonly style="width: 90%;" maxlength="20">
+                    </el-input>
+                </el-col>
+            </el-form-item>
+            <el-form-item label="人员类别:" prop="custtypename">
+                <el-col :span="18">
+                    <el-input v-model="historyform.custtypename" readonly style="width: 90%;" maxlength="20">
+                    </el-input>
+                </el-col>
+            </el-form-item>
+            <el-form-item label="请假类型:" prop="rtypename">
+                <el-col :span="18">
+                    <el-input v-model="historyform.rtypename" readonly style="width: 90%;" maxlength="20">
+                    </el-input>
+                </el-col>
+            </el-form-item>
+            <el-form-item label="状态:" prop="statusname">
+                <el-col :span="18">
+                    <el-input v-model="historyform.statusname" readonly style="width: 90%;" maxlength="20">
+                    </el-input>
+                </el-col>
+            </el-form-item>
+            <el-form-item label="备注:" prop="remark">
+                <el-col :span="18">
+                    <el-input type="textarea" style="width: 90%;" v-model="historyform.remark" placeholder="填写备注"
+                              readonly>
+                    </el-input>
+                </el-col>
+            </el-form-item>
+
+
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="resetForm('historyform') ">取 消</el-button>
+            <el-button type="primary" v-if="historyform.status== '0'" @click="review('historyform')">取消申请</el-button>
+
+
+        </div>
+    </el-dialog>
+    <el-dialog :title="updatetitle" :visible.sync="dialogFormVisible" style="width: 100%" :modal-append-to-body='false'
+               @close="closeDialog('tempform')" size="large">
+        <el-form ref="tempform" :model="tempform" data-parsley-validate
+                 class="el-form-item" style="width: 100%">
+            <el-form-item label="请假类型:" prop="rtype">
+                <div class="el-col el-col-18">
+                    <div class="el-input" style="width: 90%;">
+                        <el-select v-model="tempform.rtype" id="rtype">
+                            <el-option
+                                    v-for="status in rtypelist"
+                                    :key="status.value"
+                                    :label="status.label"
+                                    :value="status.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </div>
+            </el-form-item>
+            <el-form-item label="状  态:" prop="status">
+                <div class="el-col el-col-18">
+                    <div class="el-input" style="width: 90%;">
+                        <el-select v-model="tempform.status" id="status">
+                            <el-option
+                                    v-for="status in statuslist"
+                                    :key="status.value"
+                                    :label="status.label"
+                                    :value="status.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </div>
+            </el-form-item>
+
+        </el-form>
+        <div slot="footer" style="text-align:center; ">
+            <el-button type="primary" @click="saveTemp('tempform')">查 询</el-button>
+            <el-button type="primary" @click="closediv()">取 消</el-button>
+        </div>
+    </el-dialog>
+</div>
+
+
+</body>
+
+<script>
+    var validatePhone = function (rule, value, callback) {
+        if (value == "") {
+            callback(new Error("请输入手机号"));
+        } else if (!isCellPhone(value)) {//引入methods中封装的检查手机格式的方法
+            callback(new Error("请输入正确的手机号!"));
+        } else {
+            callback();
+        }
+    }
+
+    var app_vue = new Vue({
+        el: '#app',
+        data: {
+            tableData: [],
+            confName: '1234',
+            currPage: 1,
+            pageSize: 20,
+            totSize: 0,
+            currentRow: null,
+            tempform: {
+                rtype: '',
+                custtype: '',
+                status: '',
+            },
+            historyform: {
+                custid: '',
+                custname: '',
+                startdate: '',
+                enddate: '',
+                remark: '',
+                rtype: '',
+                status: '',
+                custtype: '',
+                id: ''
+            },
+            sexlist: [],
+            rtypelist: [],
+            custtypelist: [],
+            statuslist: [],
+            bannerHeight: 1000,
+            screenWidth: 0,
+            userId: '',
+            dialogFormVisible: false,
+            dialogFormVisible2: false,
+            dlgAllotDevVisible: false,
+            updatetitle: '筛选',
+            updatetitle2: '详情',
+            rules: {
+                /*visitorname: [
+                    {required: true, message: '请输入访客姓名', trigger: 'blur'},
+                ],
+                idno: [
+                    {required: true, message: '请输入访客身份证号', trigger: 'blur'}
+                ],
+                sex: [
+                    {required: true, message: '请输入访客性别', trigger: 'blur'}
+                ],
+                remarks: [
+                    {required: true, message: '请输入备注', trigger: 'blur'}
+                ],
+                phone: [
+                    {required: true, validator: validatePhone, trigger: 'blur'}
+                ]*/
+            },
+        },
+
+        methods: {
+            saveTemp: function (formName) {
+                this.dialogFormVisible = false;
+
+                var _that = this;
+                this.pagesize = 10;
+                this.currPage = 1;
+                commonQuery(this, this.tempform.rtype,  this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
+            },
+            review: function (formName) {
+                this.dialogFormVisible2 = false;
+
+                var _that = this;
+                this.pagesize = 10;
+                this.currPage = 1;
+                reviewupdate(this, this.historyform.status, this.historyform.id);
+            },
+            showdiv: function (row) {
+                this.dialogFormVisible = true;
+                this.updatetitle = "筛选"
+            },
+            editDtl: function (row) {
+                dtl_getFillData(this, row);
+                this.dialogFormVisible2 = true;
+                this.updatetitle2 = "详情"
+            },
+            closediv: function () {
+                closesearchform();
+            },
+            currRowChange: function (val) {
+                this.currentRow = val;
+            },
+            indexChange: function (pre, next) {
+                var _self = this;
+                var devIdListTmp = _self.devIdList;
+                _self.selectDevId = devIdListTmp[pre];
+                // console.log(_self.selectDevId)
+
+            },
+            setSize: function () {
+                // 通过浏览器宽度(图片宽度)计算高度
+                this.bannerHeight = this.screenWidth;
+            }, handleSizeChange: function (val) {
+                this.pageSize = val;
+                commonQuery(this, this.tempform.rtype ,this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
+                //console.log('每页条'+val);
+            }, currPageChange: function (val) {
+                this.currPage = val;
+                commonQuery(this, this.tempform.rtype, this.tempform.status, this.tempform.custid, this.currPage, this.pageSize);
+                //console.log('当前页:'+val);
+            }
+
+        },
+        created: function () {
+            var _self = this;
+            // 首次加载时,需要调用一次
+            _self.screenWidth = window.innerWidth;
+            _self.setSize();
+            var confid = '[[${custid}]]';
+            console.log(confid);
+            _self.tempform.custid = confid;
+            var sexl = [];
+            sexl.push({
+                value: '',
+                label: '请选择'
+            });
+            sexl.push({
+                value: '11',
+                label: '事假'
+            });
+            sexl.push({
+                value: '12',
+                label: '病假'
+            });
+            sexl.push({
+                value: '13',
+                label: '年假'
+            });
+            sexl.push({
+                value: '14',
+                label: '调休'
+            });
+            sexl.push({
+                value: '15',
+                label: '其他'
+            });
+            _self.rtypelist = sexl;
+            var statl = [];
+            statl.push({
+                value: '',
+                label: '请选择'
+            });
+            statl.push({
+                value: '0',
+                label: '未审核'
+            });
+            statl.push({
+                value: '1',
+                label: '已通过'
+            });
+            statl.push({
+                value: '2',
+                label: '未通过'
+            });
+            statl.push({
+                value: '3',
+                label: '取消'
+            });
+            statl.push({
+                value: '4',
+                label: '删除'
+            });
+
+            _self.statuslist = statl;
+            $.ajax({
+                type: "get",
+                dataType: "json",
+                url: encodeURI("[[@{/app/atte/getcusttypelist}]]"),
+                success: function (ret) {
+                    var dlist = [];
+                    dlist.push({
+                        value: '',
+                        label: '请选择'
+                    });
+                    var rB = ret.custtypelist;
+                    if (rB != null) {
+                        for (var j = 0; j < rB.length; j++) {
+                            dlist.push({
+                                value: rB[j]["custtype"],
+                                label: rB[j]["custtypename"]
+                            });
+                        }
+                    }
+
+                    _self.custtypelist = dlist;
+
+                }
+            })
+
+        }
+    })
+
+    // 窗口大小发生改变时,调用一次
+    window.onresize = function () {
+        app_vue.screenWidth = window.innerWidth;
+        app_vue.setSize();
+    }
+
+    function showsearchform() {
+        $("#sear").show();
+    }
+
+    function closesearchform() {
+        $("#sear").hide();
+    }
+
+    function dtl_getFillData(_self, row) {
+        _self.historyform.custname = row.custname;
+        _self.historyform.custtype = row.custtype;
+        _self.historyform.custtypename = row.custtypename;
+        _self.historyform.status = row.status;
+        _self.historyform.id = row.id;
+        if (row.status == "0") {
+            _self.historyform.statusname = "未审核"
+        } else if (row.status == "1") {
+            _self.historyform.statusname = "已通过"
+        } else if (row.status == "2") {
+            _self.historyform.statusname = "未通过"
+        } else if (row.status == "3") {
+            _self.historyform.statusname = "取消"
+        } else {
+            _self.historyform.statusname = "删除"
+        }
+        if (row.rtype == "11") {
+            _self.historyform.rtypename = "事假"
+        } else if (row.rtype == "12") {
+            _self.historyform.rtypename = "病假"
+        } else if (row.rtype == "13") {
+            _self.historyform.rtypename = "年假"
+        } else if (row.rtype == "14") {
+            _self.historyform.rtypename = "调休"
+        } else if (row.rtype == "15") {
+            _self.historyform.rtypename = "其他"
+        }
+        _self.historyform.remark = row.remark;
+    }
+
+    function saveTempCustomer(_that, formdata, formName) {
+        var token = $("meta[name='_csrf_token']").attr("value");
+        $.ajax({
+            type: "post",
+            url: encodeURI("[[@{/app/atte/getreviewlist}]]"),
+            dataType: "json",
+            contentType: "application/json",
+            headers: {
+                'Accept': 'application/json',
+                'Content-Type': 'application/json',
+                'X-CSRF-TOKEN': token,
+            },
+            data: JSON.stringify(formdata),
+            success: function (data) {
+
+                if (data.retcode != "0") {
+                    layer.msg(data.retmsg, {icon: 2, time: 2000});
+                    window.location = "[[@{/app/getapplyqrcode?visitorid=}]]" + data.visitorid;
+                } else {
+                    layer.msg('登记成功!', {icon: 1, time: 1000});
+                }
+            }
+        });
+    }
+
+    function commonQuery(_self, rtype,  status, custid, pageno, pagesize) {
+        $.ajax({
+            type: "get",
+            dataType: "json",
+            url: "[[@{/app/atte/getrestlist?rtype=}]]" + rtype +  "&status=" + status + "&custid=" + custid + "&pageNo=" + pageno + "&pageSize=" + pagesize,
+            success: function (info) {
+                console.log(info)
+
+                _self.tableData = info.page.list;
+                _self.totSize = info.page.totalCount;
+            }
+        })
+    }
+
+    function reviewupdate(_self, status, id) {
+        $.ajax({
+            type: "get",
+            dataType: "json",
+            url: "[[@{/app/atte/getreviewlist?id=}]]" + id + "&status=" + status,
+            success: function (info) {
+                console.log(info)
+
+            }
+        })
+    }
+
+    function isCellPhone(val) {
+        if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {
+            return false;
+        } else {
+            return true;
+        }
+    }
+
+
+</script>
+
+<style>
+
+    .el-carousel__item h3 {
+        color: #ff3366;
+        font-size: 14px;
+        opacity: 0.75;
+        line-height: 300px;
+        margin: 0;
+        /*background-color:#66cccc;
+        border: 0px solid #e5e5e5;
+        width: 50%;
+        left: 10%;
+        height: 100%;*/
+    }
+
+    .el-carousel__item:nth-child(2n) {
+        background-color: #ffffff;
+    }
+
+    .el-carousel__item:nth-child(2n+1) {
+        background-color: #ffffff;
+    }
+
+    .el-carousel__item .Carousel {
+        border-bottom: 1px solid #f1f4f8;
+    }
+</style>
\ No newline at end of file
