Преглед на файлове

Signed-off-by: Changpeng Duan <838560574@qq.com>

Changpeng Duan преди 5 години
родител
ревизия
6c87b60bd0

+ 2 - 2
app/src/api/getApiRes.js

@@ -114,8 +114,8 @@ export function OrderShopQuery(postdata) {
     return getApiBasic(url,postdata);
 }
 // 可预约课程列表查询(未完成)
-export function SchoolTimeTableListQuery(postdata) {
-    let url = headapi + 'v1/Weixin/SchoolTimeTableListQuery';
+export function CanOrderSchoolTimeTableListQuery(postdata) {
+    let url = headapi + 'v1/Weixin/CanOrderSchoolTimeTableListQuery';
     return getApiBasic(url,postdata);
 }
 // 消费记录查询

+ 7 - 6
app/src/page/appoint.vue

@@ -13,10 +13,11 @@
                 </span>
             <ul class="list">
                 <li v-for="l in list"
+                    v-show="l.WxVisible == 1"
                     :class="[{'greenLi':l.remain > 0},{'redLi':l.Status == 1},{'yellowLi':l.remain == 0},{'whiteLi':l.WxOrder == 0}]">
                     <div class="dotContainer">
                         <!--                        正常-->
-                        <i class="dot" v-if="l.remain>0"></i>
+                        <i class="dot" v-if="l.remain>0 && l.WxOrder != 0"></i>
 
                         <i class="cubes" v-if="l.Status==1"></i>
                         <!--                        已满-->
@@ -35,11 +36,10 @@
                             人</h5>
                         <span>总名额 {{l.OrderToplimit}} 人</span>
                     </div>
-                    <mu-button class="appointBtn greenBtn" v-if="l.remain > 0 && l.OrderId == 0" @click="appointNow(l)">
+                    <mu-button class="appointBtn greenBtn" v-if="l.remain > 0 && l.OrderId == 0 && l.WxOrder != 0" @click="appointNow(l)">
                         预约
                     </mu-button>
-                    <mu-button class="appointBtn redBtn" v-if="l.remain == 0 && l.OrderId == 0" @click="isFulled">已满
-                    </mu-button>
+                    <mu-button class="appointBtn redBtn" v-if="l.remain == 0 && l.OrderId == 0" @click="isFulled">已满</mu-button>
                     <mu-button class="appointBtn yellowBtn" v-if="l.OrderId != 0" @click="isAppointed(l)">已约</mu-button>
                     <mu-button class="appointBtn disableBtn" v-if="l.WxOrder == 0" @click="isDisable">不可约</mu-button>
                 </li>
@@ -72,7 +72,7 @@
     import axios from 'axios';
     import bottomTab from '../components/bottomTab'
     import {
-        SchoolTimeTableListQuery,
+        CanOrderSchoolTimeTableListQuery,
         OderAddByVipUser,
         OderCancelByVipUser,
         testSelect,
@@ -224,9 +224,10 @@
                 let param = {
                     token: localStorage.token,
                     orderDate: curDay,
+                    shopId: this.$route.query.shopId,
                 };
                 let postdata = qs.stringify(param);
-                SchoolTimeTableListQuery(postdata).then(res => {
+                CanOrderSchoolTimeTableListQuery(postdata).then(res => {
                     let json = res;
                     if (json.Code == 0) {
                         that.list = json.Rs;

+ 3 - 1
app/src/page/lesson.vue

@@ -11,7 +11,9 @@
         <bottomTab :curTab="thisTab"></bottomTab>
         <div class="context">
             <ul class="list">
-                <li  v-for="(l,index) in previewDate" :style="{background:l.ClassColor}">
+                <li  v-for="(l,index) in previewDate"
+                     :style="{background:l.ClassColor}"
+                >
                     <em>
                         {{l.BeginStr}} - {{l.EndStr}}
                     </em>

+ 7 - 3
app/src/page/mainpage.vue

@@ -2,10 +2,10 @@
     <div id="mainPage">
         <img src="../static/images/main/banner.png" height="121" width="414"/>
         <span class="shopNum">
-            俱乐部场馆共 1
+            俱乐部场馆共 {{list.length}}
         </span>
         <ul class="list">
-            <li v-for="l in list" @click="goAppoint(l)" v-if="l.Status == 1 && l.ShopID == currShopId">
+            <li v-for="l in list" @click="goAppoint(l)" v-if="l.Status == 1 ">
                 <img src="../static/images/main/771.png" height="133" width="130"/>
                 <div class="rt">
                     <h5>{{l.ShopName}}</h5>
@@ -14,7 +14,7 @@
                         <i v-if="l.RemainOrdernum == 0" class="red">{{l.RemainOrdernum}}</i>
                         人</span>
                     <span>地址:{{l.Addr}}</span>
-                    <em class="green" v-if="l.WxStatus == 1">点击预约</em>
+                    <em class="green" v-if="l.WxStatus == 1 && l.IsJoin ==1">点击预约</em>
                     <em class="red" v-else>不可预约</em>
                 </div>
             </li>
@@ -107,6 +107,10 @@
             },
             goAppoint(row) {
                 let that = this;
+                if(row.IsJoin == 0){
+                    that.Toast('您不是该店会员,不可预约');
+                    return false
+                }
                 if (row.Status == 2) {
                     that.Toast(row.name + '不可预约');
                     return false

+ 508 - 458
app/src/page/mine.vue

@@ -1,473 +1,523 @@
 <template>
-    <div class="pages">
-        <img src="../static/images/main/banner.png" height="121" width="414"/>
-        <div class="context">
+  <div class="pages">
+    <img src="../static/images/main/banner.png" height="121" width="414"/>
+    <div class="context">
               <span class="num">
                 会员卡信息
             </span>
-            <div class="user">
-                <img src="../static/images/mine/User.png" height="53" width="53"/>
-                <span>{{user.Name}}</span>
-                <em>{{user.Phone}}</em>
-            </div>
-            <div class="value">
-                <div class="vTitle year" v-if="user.VipType == 0"><i></i>年会员</div>
-                <div class="vTitle price" v-if="user.VipType == 1"><i></i>充值会员</div>
-                <div class="vNum">
-                    <div class="center">
-                        总{{user.kick}}课时
-                    </div>
-                    <em v-if="user.VipType == 0">(有效期至{{user.ExpTime |fmtTime}})</em>
-                </div>
-                <mu-flex class="linear-progress">
-                    <mu-linear-progress mode="determinate" :value="user.ClassRemain / user.ClassTotal *100" :size="10"
-                                        color="secondary"></mu-linear-progress>
-                </mu-flex>
-                <div class="limit">
-                    <em>剩余 {{user.ClassRemain}} 课时</em>
-                    <span>完成 {{user.ClassFinish}} 课时</span>
-                </div>
-            </div>
-            <div class="dataSum">
-                <div class="row">
-                    <em>卡路里(月度)</em>
-                    <span>{{user.CalorieMonth}}</span>
-                </div>
-            </div>
-            <div class="dataSum">
-                <div class="row">
-                    <em>总卡路里</em>
-                    <span>{{user.CalorieTotal}}</span>
-                </div>
-            </div>
-            <div class="dataSum">
-                <div class="row">
-                    <em>CK(月度)</em>
-                    <span>{{user.CKMonth}}</span>
-                </div>
-            </div>
-                <div class="dataSum">
-                    <div class="row">
-                        <em>总CK</em>
-                        <span>{{user.CKTotal}}</span>
-                    </div>
-                </div>
-            <div class="btn_center">
-                <span class="btn btn-md login_btn" @click="logoutBtn">退出</span>
-            </div>
+      <div class="user">
+        <img src="../static/images/mine/User.png" height="53" width="53"/>
+        <span>{{ user.Name }}</span>
+        <em>{{ user.Phone }}</em>
+      </div>
+      <div class="value" v-for="s in schools" v-if="s.IsJoin == 1">
+        <div class="vTitle year" v-if="s.VipType == 1"><i></i>年会员</div>
+        <div class="vTitle price" v-if="s.VipType == 2"><i></i>充值会员</div>
+        <div class="vNum">
+          <span> {{ s.ShopName }}</span>
+          <div class="center">
+            总计{{ s.ClassHourToatal }}课时
+          </div>
+          <em v-if="s.VipType == 1">(有效期至{{ s.ExpTime |fmtTime }})</em>
         </div>
-        <bottomTab :curTab="thisTab"></bottomTab>
+        <mu-flex class="linear-progress">
+          <mu-linear-progress mode="determinate" :value="s.ClassHourRemain / s.ClassHourToatal *100" :size="10"
+                              color="secondary"></mu-linear-progress>
+        </mu-flex>
+        <div class="limit">
+          <em>剩余 {{ s.ClassHourRemain }} 课时</em>
+          <span>完成 {{ s.ClassHourConsume }} 课时</span>
+        </div>
+      </div>
+      <div class="dataSum">
+        <div class="row">
+          <em>卡路里(月度)</em>
+          <span>{{ user.CalorieMonth }}</span>
+        </div>
+      </div>
+      <div class="dataSum">
+        <div class="row">
+          <em>总卡路里</em>
+          <span>{{ user.CalorieTotal }}</span>
+        </div>
+      </div>
+      <div class="dataSum">
+        <div class="row">
+          <em>CK(月度)</em>
+          <span>{{ user.CKMonth }}</span>
+        </div>
+      </div>
+      <div class="dataSum">
+        <div class="row">
+          <em>总CK</em>
+          <span>{{ user.CKTotal }}</span>
+        </div>
+      </div>
+      <div class="btn_center">
+        <span class="btn btn-md login_btn" @click="logoutBtn">退出</span>
+      </div>
     </div>
+    <bottomTab :curTab="thisTab"></bottomTab>
+  </div>
 </template>
 
 <script>
-    import axios from 'axios';
-    import bottomTab from '../components/bottomTab'
-    import {
-        VipUserSelfQuery,
-        testSelect,
-        testTable,
-    } from '../api/getApiRes.js'
-
-    let qs = require('qs');
-    import Global from '../Global.js'
-
-    export default {
-        data() {
-            return {
-                num: 0,
-                thisTab: '我的',
-                active: 0,
-                sum: 0,
-                openAlert: false,
-                list: [],
-                dialog: {
-                    id: '',
-                    name: '',
-                    timeLong: '',
-                },
-                user: {
-                    CKMonth: 0,
-                    CKTotal: 0,
-                    CalorieMonth: 0,
-                    CalorieTotal: 0,
-                    ClassFinish: 0,
-                    ClassRemain: 0,
-                    ClassTotal: 0,
-                    ExpTime: 0,
-                    Name: '',
-                    Phone: '',
-                    VipType: 0,
-                }
-            }
-        },
-        mounted() {
-            this.getInfo();
-        },
-        methods: {
-            logoutBtn() {
-                let that = this;
-                this.$confirm('是否退出账号?', '提示', {
-                    type: 'warning'
-                }).then(({result}) => {
-                    if (result) {
-                        localStorage.token = '';
-                        that.$router.push({path: '/login'});
-                    } else {
-                        that.$toast.message('点击了取消');
-                    }
-                });
-            },
-            getInfo() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    active: this.active
-                };
-                let postdata = qs.stringify(param);
-                VipUserSelfQuery(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.user = json.Rs;
-                    } else {
-                      that.$toast.message(json.Memo);
-                    }
-                })
-            },
-        },
-        filters: {
-            fmtTime: function (value) {
-                if (!value) {
-                    return 0
-                } else {
-                    let date = new Date(value);
-                    let y = date.getFullYear();
-                    let MM = date.getMonth() + 1;
-                    MM = MM < 10 ? ('0' + MM) : MM;
-                    let d = date.getDate();
-                    d = d < 10 ? ('0' + d) : d;
-                    let h = date.getHours();
-                    h = h < 10 ? ('0' + h) : h;
-                    let m = date.getMinutes();
-                    m = m < 10 ? ('0' + m) : m;
-                    let s = date.getSeconds();
-                    s = s < 10 ? ('0' + s) : s;
-                    return y + '-' + MM + '-' + d;
-                }
-            },
-        },
-        beforeRouteEnter(to, from, next) {
-            next(vm => {
-                //因为当钩子执行前,组件实例还没被创建
-                // vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
-                if (to.name == 'mine') {
-                    vm.getInfo();
-                }
-            });
-        },
-        watch: {
-            'active'() {
-                console.log(123);
-                this.getList();
-            }
-        },
-        components: {
-            bottomTab
+import axios from 'axios';
+import bottomTab from '../components/bottomTab'
+import {
+  VipUserSelfQuery,
+  OrderShopQuery,
+  testSelect,
+  testTable,
+} from '../api/getApiRes.js'
+
+let qs = require('qs');
+import Global from '../Global.js'
+
+export default {
+  data() {
+    return {
+      num: 0,
+      thisTab: '我的',
+      active: 0,
+      sum: 0,
+      openAlert: false,
+      list: [],
+      dialog: {
+        id: '',
+        name: '',
+        timeLong: '',
+      },
+      user: {
+        CKMonth: 0,
+        CKTotal: 0,
+        CalorieMonth: 0,
+        CalorieTotal: 0,
+        ClassFinish: 0,
+        ClassRemain: 0,
+        ClassTotal: 0,
+        ExpTime: 0,
+        Name: '',
+        Phone: '',
+        VipType: 0,
+      },
+      schools: [],
+    }
+  },
+  mounted() {
+    this.getInfo();
+    this.getOrderShopQuery();
+    this.getCalorie()
+  },
+  methods: {
+    // 获得卡路里
+    getCalorie() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        active: 1
+      };
+      let postdata = qs.stringify(param);
+      VipUserSelfQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.user = json.Rs;
+        } else {
+          that.$toast.message(json.Memo);
         }
-    }
-</script>
-
-<style scoped>
-    .pages {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background: #F2F2F2;
-    }
-
-    .num {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        font-family: "PingFang SC";
-        font-weight: 300;
-        font-size: 14px;
-        text-align: center;
-        color: #909090;
-        padding: 13px 0;
-    }
-
-    .user {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        height: 58px;
-        background: #fff;
-        padding: 17px 3%;
-        margin-bottom: 10px;
-    }
-
-    .user img {
-        width: 26.29px;
-        height: 26.29px;
-        float: left;
-        margin-right: 11px;
-    }
-
-    .user span {
-        font-family: "PingFang SC";
-        font-weight: 500;
-        font-size: 18px;
-        text-align: left;
-        color: #3b3b3b;
-    }
-
-    .user em {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 18px;
-        text-align: left;
-        color: #3b3b3b;
-        float: right;
-    }
-
-    .user p {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 14px;
-        text-align: left;
-        color: #ffb43c;
-        float: right;
-        padding: 0;
-        margin: 0;
-        margin-left: 3px;
-        line-height: 26px;
-    }
-
-    .value {
-        width: 100%;
-        height: 131px;
-        background: #fff;
-        padding: 13px 0;
-    }
-
-    .value .vTitle {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        text-align: center;
-
-        font-family: "PingFang SC";
-        font-weight: 300;
-        font-size: 15px;
-    }
-
-    .vTitle i {
-        width: 8px;
-        height: 8px;
-        display: inline-block;
-        border-radius: 250px;
-        margin-right: 3px;
-    }
-
-    .vTitle.year {
-        color: #E75296;
-    }
-
-    .vTitle.year i {
-        background: #e75296;
-    }
-
-    .vTitle.price {
-        color: #FFB43C;
-    }
-
-    .vTitle.price i {
-        background: #FFB43C;
-    }
-
-    .vNum {
-        width: 100%;
-        height: 25px;
-        overflow: hidden;
-        display: block;
-        margin: 5px auto;
-    }
-
-    .center {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        text-align: center;
-    }
-
-    .vNum em {
-        position: relative;
-        float: right;
-        bottom: 20px;
-        font-family: "PingFang SC";
-        font-weight: 500;
-        font-size: 12px;
-        color: #c9c9c9;
-        padding-right: 3%;
-    }
-
-    /deep/ .linear-progress {
-        width: 90%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        border-radius: 250px;
-    }
-
-    .limit {
-        width: 90%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 8px;
-    }
-
-    .limit em {
-        font-family: "PingFang SC";
-        font-weight: 300;
-        font-size: 12px;
-        text-align: right;
-        color: #e75296;
-        padding-left: 10px;
-    }
-
-    .limit span {
-        font-family: "PingFang SC";
-        font-weight: 300;
-        font-size: 12px;
-        text-align: right;
-        color: #909090;
-        float: right;
-        text-align: right;
-        padding-right: 10px;
-    }
-
-    .dataSum {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background: #fff;
-        margin-top: 10px;
-    }
-
-    .dataSum .row {
-        width: 90%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding: 2% 0;
-    }
-
-    .dataSum .row em {
-        float: left;
-        font-family: "PingFang SC";
-        font-weight: 300;
-        font-size: 18px;
-        text-align: right;
-        color: #3b3b3b;
-    }
-
-    .dataSum .row span {
-        font-family: "PingFang SC";
-        font-weight: 500;
-        font-size: 18px;
-        text-align: right;
-        color: #3b3b3b;
-        float: right;
-    }
-
-    .row .mid {
-        width: 66%;
-        height: 0px;
-        background: transparent;
-        border: 1px dotted #e0e0e0;
-        float: left;
-        margin-top: 11px;
-        margin-right: 5px;
-        margin-left: 10px;
-    }
-
-    .row .midl {
-        width: 54%;
-        height: 0px;
-    }
-
-    .login_btn {
-        width: 96%;
-        height: 50px;
-        line-height: 50px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 10px;
-        margin-bottom: 30px;
-        padding-left: 3%;
-        padding-right: 3%;
-        background: #E75296;
-        color: #fff;
-        font-size: 14px;
-        text-align: center;
-        border: none;
-        padding: 0;
-        font-size: 24px;
-    }
-    /deep/ .mu-warning-text-color {
-        float: left;
-    }
-    @media only screen and (max-width: 640px) {
-
-    }
-
-    @media only screen and (max-width: 480px) {
-
-    }
-
-    @media only screen and (max-width: 375px) {
-        .vNum em {
-            padding-right: 0 !important;
-        }
-
-        .row .mid {
-            width: 49%;
-        }
-
-        .row .midl {
-            width: 44%;
-            height: 0px;
-        }
-    }
-
-    @media only screen and (max-width: 360px) {
-        .vNum em {
-            padding-right: 0 !important;
+      })
+    },
+    getOrderShopQuery() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+      };
+      let postdata = qs.stringify(param);
+      OrderShopQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.schools = json.Rs;
+        } else {
+         that.$toast.message(json.Memo);
         }
-
-        .row .mid {
-            width: 49%;
+      })
+    },
+    logoutBtn() {
+      let that = this;
+      this.$confirm('是否退出账号?', '提示', {
+        type: 'warning'
+      }).then(({result}) => {
+        if (result) {
+          localStorage.token = '';
+          that.$router.push({path: '/login'});
+        } else {
+          that.$toast.message('点击了取消');
         }
-
-        .row .midl {
-            width: 44%;
-            height: 0px;
+      });
+    },
+    getInfo() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        active: this.active
+      };
+      let postdata = qs.stringify(param);
+      VipUserSelfQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.user = json.Rs;
+        } else {
+          that.$toast.message(json.Memo);
         }
-    }
-
-    @media only screen and (max-width: 320px) {
-
-    }
-
-    @media only screen and (min-width: 641px) {
+      })
+    },
+  },
+  filters: {
+    fmtTime: function (value) {
+      if (!value) {
+        return 0
+      } else {
+        // js默认使用毫秒
+        value = value * 1000
+        let date = new Date(value);
+        let y = date.getFullYear();
+        let MM = date.getMonth() + 1;
+        MM = MM < 10 ? ('0' + MM) : MM;
+        let d = date.getDate();
+        d = d < 10 ? ('0' + d) : d;
+        let h = date.getHours();
+        h = h < 10 ? ('0' + h) : h;
+        let m = date.getMinutes();
+        m = m < 10 ? ('0' + m) : m;
+        let s = date.getSeconds();
+        s = s < 10 ? ('0' + s) : s;
+        return y + '-' + MM + '-' + d;
+      }
+    },
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm => {
+      //因为当钩子执行前,组件实例还没被创建
+      // vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
+      if (to.name == 'mine') {
+        vm.getInfo();
+      }
+    });
+  },
+  watch: {
+    'active'() {
+      console.log(123);
+      this.getList();
+    }
+  },
+  components: {
+    bottomTab
+  }
+}
+</script>
 
-    }
+<style scoped>
+.pages {
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  background: #F2F2F2;
+}
+
+.num {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  font-family: "PingFang SC";
+  font-weight: 300;
+  font-size: 14px;
+  text-align: center;
+  color: #909090;
+  padding: 13px 0;
+}
+
+.user {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  height: 58px;
+  background: #fff;
+  padding: 17px 3%;
+  margin-bottom: 10px;
+}
+
+.user img {
+  width: 26.29px;
+  height: 26.29px;
+  float: left;
+  margin-right: 11px;
+}
+
+.user span {
+  font-family: "PingFang SC";
+  font-weight: 500;
+  font-size: 18px;
+  text-align: left;
+  color: #3b3b3b;
+}
+
+.user em {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 18px;
+  text-align: left;
+  color: #3b3b3b;
+  float: right;
+}
+
+.user p {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 14px;
+  text-align: left;
+  color: #ffb43c;
+  float: right;
+  padding: 0;
+  margin: 0;
+  margin-left: 3px;
+  line-height: 26px;
+}
+
+.value {
+  width: 100%;
+  /*height: 131px;*/
+  background: #fff;
+  padding: 13px 0;
+}
+
+.value .vTitle {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  text-align: center;
+
+  font-family: "PingFang SC";
+  font-weight: 300;
+  font-size: 15px;
+}
+
+.vTitle i {
+  width: 8px;
+  height: 8px;
+  display: inline-block;
+  border-radius: 250px;
+  margin-right: 3px;
+}
+
+.vTitle.year {
+  color: #E75296;
+}
+
+.vTitle.year i {
+  background: #e75296;
+}
+
+.vTitle.price {
+  color: #FFB43C;
+}
+
+.vTitle.price i {
+  background: #FFB43C;
+}
+
+.vNum {
+  width: 100%;
+  /*height: 25px;*/
+  overflow: hidden;
+  display: block;
+  margin: 5px auto;
+  margin-bottom: 0;
+}
+
+.center {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  text-align: center;
+}
+
+.vNum em {
+  position: relative;
+  float: right;
+  bottom: 20px;
+  font-family: "PingFang SC";
+  font-weight: 500;
+  font-size: 12px;
+  color: #c9c9c9;
+  padding-right: 3%;
+}
+
+/deep/ .linear-progress {
+  width: 90%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  border-radius: 250px;
+}
+
+.limit {
+  width: 90%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  margin-top: 8px;
+}
+
+.limit em {
+  font-family: "PingFang SC";
+  font-weight: 300;
+  font-size: 12px;
+  text-align: right;
+  color: #e75296;
+  padding-left: 10px;
+}
+
+.limit span {
+  font-family: "PingFang SC";
+  font-weight: 300;
+  font-size: 12px;
+  text-align: right;
+  color: #909090;
+  float: right;
+  text-align: right;
+  padding-right: 10px;
+}
+
+.dataSum {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  background: #fff;
+  margin-top: 10px;
+}
+
+.dataSum .row {
+  width: 90%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding: 2% 0;
+}
+
+.dataSum .row em {
+  float: left;
+  font-family: "PingFang SC";
+  font-weight: 300;
+  font-size: 18px;
+  text-align: right;
+  color: #3b3b3b;
+}
+
+.dataSum .row span {
+  font-family: "PingFang SC";
+  font-weight: 500;
+  font-size: 18px;
+  text-align: right;
+  color: #3b3b3b;
+  float: right;
+}
+
+.row .mid {
+  width: 66%;
+  height: 0px;
+  background: transparent;
+  border: 1px dotted #e0e0e0;
+  float: left;
+  margin-top: 11px;
+  margin-right: 5px;
+  margin-left: 10px;
+}
+
+.row .midl {
+  width: 54%;
+  height: 0px;
+}
+
+.login_btn {
+  width: 96%;
+  height: 50px;
+  line-height: 50px;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  margin-top: 10px;
+  margin-bottom: 30px;
+  padding-left: 3%;
+  padding-right: 3%;
+  background: #E75296;
+  color: #fff;
+  font-size: 14px;
+  text-align: center;
+  border: none;
+  padding: 0;
+  font-size: 24px;
+}
+
+/deep/ .mu-warning-text-color {
+  float: left;
+}
+
+.vNum span {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  text-align: center;
+}
+
+@media only screen and (max-width: 640px) {
+
+}
+
+@media only screen and (max-width: 480px) {
+
+}
+
+@media only screen and (max-width: 375px) {
+  .vNum em {
+    padding-right: 0 !important;
+  }
+
+  .row .mid {
+    width: 49%;
+  }
+
+  .row .midl {
+    width: 44%;
+    height: 0px;
+  }
+}
+
+@media only screen and (max-width: 360px) {
+  .vNum em {
+    padding-right: 0 !important;
+  }
+
+  .row .mid {
+    width: 49%;
+  }
+
+  .row .midl {
+    width: 44%;
+    height: 0px;
+  }
+}
+
+@media only screen and (max-width: 320px) {
+
+}
+
+@media only screen and (min-width: 641px) {
+
+}
 </style>

+ 500 - 486
app/src/page/record.vue

@@ -1,516 +1,530 @@
 <template>
-    <div class="pages">
-        <img src="../static/images/main/banner.png" height="121" width="414"/>
-        <div class="context">
+  <div class="pages">
+    <img src="../static/images/main/banner.png" height="121" width="414"/>
+    <div class="context">
             <span class="num">
-                记录共 {{num}} 条
+                记录共 {{ num }} 条
             </span>
-            <mu-tabs :value.sync="active" color="#F2F2F2" indicator-color="#E75296" center>
-                <mu-tab>已预约</mu-tab>
-                <mu-tab>预约记录</mu-tab>
-                <mu-tab>消费记录</mu-tab>
-            </mu-tabs>
-            <div class="whiteCube"></div>
-                <ul class="list">
-                    <mu-load-more @refresh="refresh" :refreshing="refreshing" :loading="loading" @load="load">
-                    <li v-for="l in list">
-                        <div class="lt" v-if="active != 2">
-                            <h5>{{l.CurrentDate}}</h5>
-                            <span>{{l.BeginStr}}-{{l.EndStr}}</span>
-                        </div>
-                        <div class="lt" v-if="active == 2">
-                            <h5>{{l.CreatedAt|filterTime}}</h5>
-                            <span>剩余课时 {{l.AfterNormalhour}}</span>
-                        </div>
-                        <div class="md">
-                            <em>
-                                <span  class="lessons"  :style="{ background:l.ClassColor }">
-                                     {{l.ClassName}}
+      <mu-tabs :value.sync="active" color="#F2F2F2" indicator-color="#E75296" center>
+        <mu-tab>已预约</mu-tab>
+        <mu-tab>预约记录</mu-tab>
+        <mu-tab>消费记录</mu-tab>
+      </mu-tabs>
+      <div class="whiteCube"></div>
+      <ul class="list">
+        <mu-load-more @refresh="refresh" :refreshing="refreshing" :loading="loading" @load="load">
+          <li v-for="l in list">
+            <div class="lt" v-if="active != 2">
+              <h5>{{ l.CurrentDate }}</h5>
+              <span>{{ l.BeginStr }}-{{ l.EndStr }}</span>
+            </div>
+            <div class="lt" v-if="active == 2">
+              <h5>{{ l.CreatedAt|filterTime }}</h5>
+              <span>剩余课时 {{ l.AfterNormalhour }}</span>
+            </div>
+            <div class="md">
+              <em>
+                                <span class="lessons" :style="{ background:l.ClassColor }">
+                                     {{ l.ClassName }}
                                 </span>
-                            </em>
-                            <span class="green" v-if="l.Status == 0">
+              </em>
+              <span class="green" v-if="l.Status == 0">
                             预约上课
                         </span>
-                            <span class="green" v-if="l.Status == 1 && active == 0">
+              <span class="green" v-if="l.Status == 1 && active == 0">
                             已预约
                         </span>
-                        </div>
-                        <div class="rt">
-                            <mu-button color="error" v-if="l.Status == 0" round @click="cancleAppoint(l)">取消</mu-button>
-                            <span v-if="l.Status == 1" class="isFinish">
+            </div>
+            <div class="rt">
+              <mu-button color="error" v-if="l.Status == 0" round @click="cancleAppoint(l)">取消</mu-button>
+              <span v-if="l.Status == 1" class="isFinish">
 <!--                            已预约-->
                              <mu-button color="error" round @click="cancleAppoint(l)">取消</mu-button>
                         </span>
-                            <span class="red" v-if="l.Status == 2">
+              <span class="red" v-if="l.Status == 2">
                             已取消
                         </span>
-                            <span class="red" v-if="l.Status == 3">
+              <span class="red" v-if="l.Status == 3">
                             预约未到
                         </span>
-                            <span class="green" v-if="l.Status == 4">
+              <span class="green" v-if="l.Status == 4">
                             已完成
                         </span>
-                            <em v-if="active == 2">
-                                - {{l.NormalHour}}课时
-                            </em>
-                        </div>
-                    </li>
-                    </mu-load-more>
-                    <div class="tips">
-                        <p v-if="active == 0 && list == ''">
-                            暂无已预约
-                        </p>
-                        <p v-if="active == 1 && list == null">
-                            暂无预约记录
-                        </p>
-                        <p v-if="active == 2 && list == ''">
-                            暂无消费记录
-                        </p>
-                    </div>
-                </ul>
+              <em v-if="active == 2">
+                - {{ l.NormalHour }}课时
+              </em>
             </div>
-        <bottomTab :curTab="thisTab"></bottomTab>
-        <!--        <span v-if="scope.row.Status == 1">已预约</span>-->
-        <!--        <span v-if="scope.row.Status == 2">已取消</span>-->
-        <!--        <span v-if="scope.row.Status == 3">预约未到</span>-->
-        <!--        <span v-if="scope.row.Status == 4">已完成</span>-->
+          </li>
+        </mu-load-more>
+        <div class="tips">
+          <p v-if="active == 0 && list == null">
+            暂无已预约
+          </p>
+          <p v-if="active == 1 && list == null">
+            暂无预约记录
+          </p>
+          <p v-if="active == 2 && list == ''">
+            暂无消费记录
+          </p>
+        </div>
+      </ul>
     </div>
+    <bottomTab :curTab="thisTab"></bottomTab>
+    <!--        <span v-if="scope.row.Status == 1">已预约</span>-->
+    <!--        <span v-if="scope.row.Status == 2">已取消</span>-->
+    <!--        <span v-if="scope.row.Status == 3">预约未到</span>-->
+    <!--        <span v-if="scope.row.Status == 4">已完成</span>-->
+  </div>
 </template>
 
 <script>
-    import axios from 'axios';
-    import bottomTab from '../components/bottomTab'
-    import {
-        OrderListQuery,
-        VipUserConsumeListQuery,
-        OderCancelByVipUser,
-        testSelect,
-        testTable,
-    } from '../api/getApiRes.js'
-
-    let qs = require('qs');
-    import Global from '../Global.js'
-
-    export default {
-        data() {
-            return {
-                num: 0,
-                thisTab: '预约记录',
-                active: 0,
-                sum: 0,
-                openAlert: false,
-                list: [],
-                dialog: {
-                    id: '',
-                    name: '',
-                    timeLong: '',
-                },
-                refreshing: false,
-                loading: false,
-                start: 1,
-                tableMax: 6,
+import axios from 'axios';
+import bottomTab from '../components/bottomTab'
+import {
+  OrderListQuery,
+  VipUserConsumeListQuery,
+  OderCancelByVipUser,
+  testSelect,
+  testTable,
+} from '../api/getApiRes.js'
+
+let qs = require('qs');
+import Global from '../Global.js'
+
+export default {
+  data() {
+    return {
+      num: 0,
+      thisTab: '预约记录',
+      active: 0,
+      sum: 0,
+      openAlert: false,
+      list: [],
+      dialog: {
+        id: '',
+        name: '',
+        timeLong: '',
+      },
+      refreshing: false,
+      loading: false,
+      start: 1,
+      tableMax: 6,
+    }
+  },
+  mounted() {
+    this.getList();
+  },
+  methods: {
+    refresh() {
+    },
+    load() {
+      if (this.active != 2) {
+        return false
+      }
+      this.loading = true;
+      setTimeout(() => {
+        this.loading = false;
+        this.start = this.start + 6;
+        this.getVipUserConsumeListQuery();
+      }, 2000);
+    },
+    cancleAppoint(row) {
+      let that = this;
+      this.$confirm('是否取消' + row.ClassName + '课程预约?', '提示', {
+        type: 'warning'
+      }).then(({result}) => {
+        if (result) {
+          let param = {
+            token: localStorage.token,
+            orderId: row.OrderId,
+          };
+          let postdata = qs.stringify(param);
+          OderCancelByVipUser(postdata).then(res => {
+            let json = res;
+            if (json.Code == 0) {
+              that.Toast('当前课程已取消预约', 'success');
+              that.getList();
+            } else {
+              that.Toast(json.Memo + ',错误码:' + json.Code);
             }
-        },
-        mounted() {
-            this.getList();
-        },
-        methods: {
-            refresh () {
-            },
-            load () {
-                if(this.active != 2){
-                    return false
-                }
-                this.loading = true;
-                setTimeout(() => {
-                    this.loading = false;
-                    this.start =  this.start + 6;
-                    this.getVipUserConsumeListQuery();
-                }, 2000);
-            },
-            cancleAppoint(row) {
-                let that = this;
-                this.$confirm('是否取消' + row.ClassName + '课程预约?', '提示', {
-                    type: 'warning'
-                }).then(({result}) => {
-                    if (result) {
-                        let param = {
-                            token: localStorage.token,
-                            orderId: row.OrderId,
-                        };
-                        let postdata = qs.stringify(param);
-                        OderCancelByVipUser(postdata).then(res => {
-                            let json = res;
-                            if (json.Code == 0) {
-                                that.Toast('当前课程已取消预约', 'success');
-                                that.getList();
-                            } else {
-                                that.Toast(json.Memo + ',错误码:' + json.Code);
-                            }
-                        })
-                    } else {
-                        this.$toast.message('点击了取消');
-                    }
-                });
-            },
-            getOrderListQuery(statusList) {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    statusList: statusList,
-                    start: 1,
-                    tableMax: 299,
-                };
-                let postdata = qs.stringify(param);
-                if (parseInt(this.active) == 0 || parseInt(this.active) == 1) {
-                    OrderListQuery(postdata).then(res => {
-                        let json = res;
-                        if (json.Code == 0) {
-                            that.list = json.Rs;
-                            if (that.list) {
-                                that.num = json.Rs.length;
-                            }else{
-                                that.num = 0
-                            }
-                        } else {
-                            that.Toast(json.Memo + ',错误码:' + json.Code);
-                        }
-                    });
-                }
-            },
-            getVipUserConsumeListQuery() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    start: this.start,
-                    tableMax: this.tableMax,
-                };
-                let postdata = qs.stringify(param);
-                VipUserConsumeListQuery(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // that.list = json.Rs;
-                        that.list =  that.list.concat(json.Rs);
-                        if (that.list) {
-                            that.num = json.Rs.length;
-                        }
-                    } else {
-                        that.$toast.message(json.Memo);
-                    }
-                })
-            },
-            getList() {
-                let statusList = '';
-                this.list = [];
-                switch (parseInt(this.active)) {
-                    // 已预约
-                    case 0:
-                        statusList = 1;
-                        this.getOrderListQuery(statusList);
-                        break;
-                    // 预约记录
-                    case 1:
-                        statusList = '2,3,4';
-                        this.getOrderListQuery(statusList);
-                        break;
-                    // 消费记录
-                    case 2:
-                        statusList = 1;
-                        this.getVipUserConsumeListQuery(statusList);
-                        break;
-                }
-            },
-        },
-        beforeRouteEnter(to, from, next) {
-            next(vm => {
-                //因为当钩子执行前,组件实例还没被创建
-                // vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
-                if (to.name == 'record') {
-                    vm.getList();
-                }
-            });
-        },
-        filters: {
-            filterTime: function (value) {
-                if (!value) {
-                    return 0
-                } else {
-                    return globalfmtDate(value);
-                }
-            },
-        },
-        watch: {
-            '$route'(to) {
-                if (to.name == 'record') {
-                    this.getList();
-                }
-            },
-            'active'() {
-                this.start = 1;
-                this.getList();
+          })
+        } else {
+          this.$toast.message('点击了取消');
+        }
+      });
+    },
+    getOrderListQuery(statusList) {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        statusList: statusList,
+        start: 1,
+        tableMax: 299,
+      };
+      let postdata = qs.stringify(param);
+      if (parseInt(this.active) == 0 || parseInt(this.active) == 1) {
+        OrderListQuery(postdata).then(res => {
+          let json = res;
+          if (json.Code == 0) {
+            that.list = json.Rs;
+            if (that.list) {
+              that.num = json.Rs.length;
+            } else {
+              that.num = 0
             }
-        },
-        components: {
-            bottomTab
+          } else {
+            that.Toast(json.Memo + ',错误码:' + json.Code);
+          }
+        });
+      }
+    },
+    getVipUserConsumeListQuery() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        start: this.start,
+        tableMax: this.tableMax,
+      };
+      let postdata = qs.stringify(param);
+      VipUserConsumeListQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // that.list = json.Rs;
+          that.list = that.list.concat(json.Rs);
+          if (that.list) {
+            that.num = json.Rs.length;
+          }
+        } else {
+          that.$toast.message(json.Memo);
         }
+      })
+    },
+    getList() {
+      let statusList = '';
+      this.list = [];
+      switch (parseInt(this.active)) {
+          // 已预约
+        case 0:
+          statusList = 1;
+          this.getOrderListQuery(statusList);
+          break;
+          // 预约记录
+        case 1:
+          statusList = '2,3,4';
+          this.getOrderListQuery(statusList);
+          break;
+          // 消费记录
+        case 2:
+          statusList = 1;
+          this.getVipUserConsumeListQuery(statusList);
+          break;
+      }
+    },
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm => {
+      //因为当钩子执行前,组件实例还没被创建
+      // vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
+      if (to.name == 'record') {
+        vm.getList();
+      }
+    });
+  },
+  filters: {
+    filterTime: function (value) {
+      if (!value) {
+        return 0
+      } else {
+        return globalfmtDate(value);
+      }
+    },
+  },
+  watch: {
+    '$route'(to) {
+      if (to.name == 'record') {
+        this.getList();
+      }
+    },
+    'active'() {
+      this.start = 1;
+      this.getList();
     }
+  },
+  components: {
+    bottomTab
+  }
+}
 </script>
 
 <style scoped>
-    .pages {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background: #F2F2F2;
-    }
-
-    .num {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        font-family: "PingFang SC";
-        font-weight: 300;
-        font-size: 14px;
-        text-align: center;
-        color: #909090;
-        padding: 13px 0;
-    }
-
-    /deep/ .mu-appbar-title {
-        text-align: center;
-    }
-
-    /deep/ .mu-tab {
-        width: 115px;
-        height: 35px;
-        margin-right: 6px;
-    }
-
-    /deep/ .mu-tab-wrapper {
-        height: 35px;
-        line-height: 25px;
-        background: #fff;
-        color: #363636;
-        box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.16);
-        border-radius: 8px 8px 0px 0px;
-        font-size: 16px;
-        padding-top: 5px;
-    }
-
-    /deep/ .mu-tab-active .mu-tab-wrapper {
-        height: 35px;
-        line-height: 25px;
-        border-radius: 8px 8px 0px 0px;
-        background: #E75296;
-        box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.16);
-        color: #fff;
-    }
-
-    /deep/ .mu-tab-wrapper em {
-        font-size: 12px;
-    }
-
-    .list {
-        width: 100%;
-        height: 100%;
-        min-height: 410px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 6px;
-        padding-bottom: 30px;
-        background: #f2f2f2;
-    }
-
-    .list li {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background: #fff;
-        padding: 20px 3%;
-        margin-bottom: 10px;
-    }
-
-    .whiteCube {
-        width: 100%;
-        height: 6px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background: #fff;
-        border-bottom: 1px solid #ccc;
-    }
-
-    .list .lt {
-        width: 100px;
-        float: left;
-        overflow: visible;
-    }
-
-    .list .lt h5 {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 14px;
-        text-align: left;
-        color: #4e4e4e;
-        margin: 0;
-    }
-
-    .list .lt span {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 12px;
-        text-align: left;
-        color: #909090;
-    }
-
-    .list .md {
-        max-width: 200px;
-        /*width: 220px;*/
-        float: left;
-        padding-top: 5px;
-    }
-
-    .list .rt {
-        float: right;
-        margin-right: 2%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 4px;
-    }
-
-    .md em {
-        float: left;
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 18px;
-        text-align: left;
-        color: #3b3b3b;
-        margin-right: 20px;
-    }
-
-    .md span {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 14px;
-        text-align: left;
-        /*color: #37cb00;*/
-        line-height: 30px;
-    }
-
-    span.green {
-        color: #37cb00;
-    }
-
-    span.red {
-        color: #FF453C;
-    }
-
-    .rt span {
-        float: right;
-        line-height: 35px;
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 14px;
-        text-align: left;
-        color: #909090;
-        overflow: hidden;
-        padding-bottom: 6px;
-    }
-
-    .rt .red {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 14px;
-        text-align: left;
-        color: #f8847f;
-    }
-
-    .rt .cancleBtn {
-        width: 55px;
-        height: 24px;
-        border-radius: 12px;
-        background: #ff453c;
-        padding: 0;
-        overflow: hidden;
-        text-align: center;
-        color: #fff;
-        line-height: 24px;
-        margin-top: 6px;
-    }
-
-    .rt em {
-        font-family: "PingFang SC";
-        font-weight: normal;
-        font-size: 14px;
-        text-align: left;
-        color: #909090;
-        margin-top: 6px;
-    }
-
-    .tips {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-    }
-
-    .tips p {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        text-align: center;
-        font-size: 14px;
-        line-height: 35px;
-    }
-
-    .green {
-        color: #37cb00;
-    }
-
-    /deep/ .mu-raised-button.mu-button-small {
-        width: 54px;
-        min-width: 40px;
-        float: right;
-        padding-left: 3px;
-        padding-right: 3px;
-    }
-    .lessons {
-        width: auto;
-        padding: 1px 11px;
-        border-radius: 250px;
-        float: left;
-        text-align: center;
-        color: #333;
-    }
-    @media only screen and (max-width: 640px) {
-
-        }
-        @media only screen and (max-width: 480px) {
-
-        }
-        @media only screen and (max-width: 375px) {
-
-        }
-        @media only screen and (max-width: 360px) {
-
-        }
-        @media only screen and (max-width: 320px) {
-            .list .lt {
-                width: 80px;
-            }
-            .list .lt h5 {
-                font-size: 12px;
-            }
-            .md em {
-                margin-right: 3px;
-            }
-        }
-        @media only screen and (min-width: 641px) {
-
-        }
+.pages {
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  background: #F2F2F2;
+}
+
+.num {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  font-family: "PingFang SC";
+  font-weight: 300;
+  font-size: 14px;
+  text-align: center;
+  color: #909090;
+  padding: 13px 0;
+}
+
+/deep/ .mu-appbar-title {
+  text-align: center;
+}
+
+/deep/ .mu-tab {
+  width: 115px;
+  height: 35px;
+  margin-right: 6px;
+}
+
+/deep/ .mu-tab-wrapper {
+  height: 35px;
+  line-height: 25px;
+  background: #fff;
+  color: #363636;
+  box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.16);
+  border-radius: 8px 8px 0px 0px;
+  font-size: 16px;
+  padding-top: 5px;
+}
+
+/deep/ .mu-tab-active .mu-tab-wrapper {
+  height: 35px;
+  line-height: 25px;
+  border-radius: 8px 8px 0px 0px;
+  background: #E75296;
+  box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.16);
+  color: #fff;
+}
+
+/deep/ .mu-tab-wrapper em {
+  font-size: 12px;
+}
+
+.list {
+  position: relative;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  width: 100%;
+  height: 100%;
+  min-height: 410px;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding-top: 6px;
+  padding-bottom: 30px;
+  background: #f2f2f2;
+}
+
+.list li {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  background: #fff;
+  padding: 20px 3%;
+  margin-bottom: 10px;
+}
+
+.whiteCube {
+  width: 100%;
+  height: 6px;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  background: #fff;
+  border-bottom: 1px solid #ccc;
+}
+
+.list .lt {
+  width: 100px;
+  float: left;
+  overflow: visible;
+}
+
+.list .lt h5 {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 14px;
+  text-align: left;
+  color: #4e4e4e;
+  margin: 0;
+}
+
+.list .lt span {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 12px;
+  text-align: left;
+  color: #909090;
+}
+
+.list .md {
+  max-width: 200px;
+  /*width: 220px;*/
+  float: left;
+  padding-top: 5px;
+}
+
+.list .rt {
+  float: right;
+  margin-right: 2%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding-top: 4px;
+}
+
+.md em {
+  float: left;
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 18px;
+  text-align: left;
+  color: #3b3b3b;
+  margin-right: 20px;
+}
+
+.md span {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 14px;
+  text-align: left;
+  /*color: #37cb00;*/
+  line-height: 30px;
+}
+
+span.green {
+  color: #37cb00;
+}
+
+span.red {
+  color: #FF453C;
+}
+
+.rt span {
+  float: right;
+  line-height: 35px;
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 14px;
+  text-align: left;
+  color: #909090;
+  overflow: hidden;
+  padding-bottom: 6px;
+}
+
+.rt .red {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 14px;
+  text-align: left;
+  color: #f8847f;
+}
+
+.rt .cancleBtn {
+  width: 55px;
+  height: 24px;
+  border-radius: 12px;
+  background: #ff453c;
+  padding: 0;
+  overflow: hidden;
+  text-align: center;
+  color: #fff;
+  line-height: 24px;
+  margin-top: 6px;
+}
+
+.rt em {
+  font-family: "PingFang SC";
+  font-weight: normal;
+  font-size: 14px;
+  text-align: left;
+  color: #909090;
+  margin-top: 6px;
+}
+
+.tips {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+}
+
+.tips p {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  text-align: center;
+  font-size: 14px;
+  line-height: 35px;
+}
+
+.green {
+  color: #37cb00;
+}
+
+/deep/ .mu-raised-button.mu-button-small {
+  width: 54px;
+  min-width: 40px;
+  float: right;
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+.lessons {
+  width: auto;
+  padding: 1px 11px;
+  border-radius: 250px;
+  float: left;
+  text-align: center;
+  color: #333;
+}
+
+@media only screen and (max-width: 640px) {
+
+}
+
+@media only screen and (max-width: 480px) {
+
+}
+
+@media only screen and (max-width: 375px) {
+
+}
+
+@media only screen and (max-width: 360px) {
+
+}
+
+@media only screen and (max-width: 320px) {
+  .list .lt {
+    width: 80px;
+  }
+
+  .list .lt h5 {
+    font-size: 12px;
+  }
+
+  .md em {
+    margin-right: 3px;
+  }
+}
+
+@media only screen and (min-width: 641px) {
+
+}
 </style>

+ 5 - 0
pc/.idea/codeStyles/codeStyleConfig.xml

@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
+  </state>
+</component>

+ 6 - 0
pc/README.md

@@ -171,3 +171,9 @@ order
    
    99.添加课程表/课程表模板的单条时,选择课程后预填入课时上限。√
    100.添加单条时,默认值问题√
+
+
+========
+常用键值
+
+wxVisible 0不可见1可见

+ 1 - 1
pc/public/index.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">

+ 10 - 1
pc/src/api/Navs.js

@@ -153,7 +153,16 @@ let navs = [
         "show": 4,
         "grouplist": "2,5",
         "icon": "el-icon-user",
-    }, {
+    },{
+        "clmid": "3",
+        "clmcode": "lesson",
+        "clmname": "课程管理",
+        "clmurl": "/lesson",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-collection",
+    },  {
         "clmid": "5",
         "clmcode": "lessonManage",
         "clmname": "课程表管理",

+ 12 - 0
pc/src/api/getApiRes.js

@@ -520,6 +520,18 @@ export function VipUserStatusEdit(postdata) {
     return getApiBasic(url, postdata);
 }
 
+// 通过Name查询Take用户信息
+export function QueryTakeCustomerByName(postdata) {
+    let url = headapi + 'v1/Take/QueryTakeCustomerByName ';
+    return getApiBasic(url, postdata);
+}
+//
+// 绑定Take用户
+export function BindTakeCustomer(postdata) {
+    let url = headapi + 'v1/Take/BindTakeCustomer ';
+    return getApiBasic(url, postdata);
+}
+
 
 
 

+ 24 - 20
pc/src/views/Lesson.vue

@@ -4,9 +4,9 @@
             <h5>课程管理</h5>
         </div>
         <div class="change">
-            <el-button type="primary" @click="addLesson">新增课程</el-button>
-            <el-button @click="lessonStudenChange">增删课程会员</el-button>
-            <el-button @click="delList">删除</el-button>
+            <el-button type="primary" @click="addLesson" v-if="userLevel != 4">新增课程</el-button>
+            <el-button @click="lessonStudenChange" v-if="userLevel != 4">增删课程会员</el-button>
+            <el-button @click="delList" v-if="userLevel != 4">删除</el-button>
             <el-button @click="query">刷新</el-button>
         </div>
         <div class="table">
@@ -16,7 +16,8 @@
                     is-horizontal-resize
                     :default-sort="{prop: 'date', order: 'descending'}"
                     element-loading-background="rgba(0, 0, 0, 0.8)"
-                    @selection-change="handleSelectionChange" @current-change="clickChange"
+                    @selection-change="handleSelectionChange"
+                    @current-change="clickChange"
             >
                 >
                 <el-table-column label="选择" width="55">
@@ -56,8 +57,8 @@
                         sortable
                 >
                     <template slot-scope="scope">
-                        <span v-if="scope.row.ClassSelf.ShopId != 0">占用课时</span>
-                        <span v-if="scope.row.ClassSelf.ShopId == 0">不占课时</span>
+                        <span v-if="scope.row.ClassSelf.ClassType != 0">占用课时</span>
+                        <span v-if="scope.row.ClassSelf.ClassType == 0">不占课时</span>
                     </template>
                 </el-table-column>
                 <el-table-column
@@ -75,6 +76,7 @@
                 <el-table-column
                         prop="ClassSelf.WxVisible"
                         label="微信可见"
+                        v-if="userLevel != 4"
                 >
                     <template slot-scope="scope">
                         <el-switch
@@ -92,6 +94,7 @@
                         prop="ClassSelf.ClassColor"
                         label="课程颜色"
                         width="110"
+                        v-if="userLevel != 4"
                 >
                     <template slot-scope="scope">
                         <el-color-picker :predefine="predefineColors"  v-model="scope.row.ClassSelf.ClassColor"
@@ -119,7 +122,7 @@
                         label="操作"
                 >
                     <template slot-scope="scope">
-                        <el-button type="text" @click="editLesson(scope.row.ClassSelf)">编辑</el-button>
+                        <el-button type="text" @click="editLesson(scope.row.ClassSelf)" v-if="userLevel != 4">编辑</el-button>
                         <el-button type="text" @click="Lessonmember(scope.row.Userlist)">课程会员</el-button>
                     </template>
                 </el-table-column>
@@ -149,7 +152,7 @@
                             <el-input-number v-model="form.TopLimit" :min="0" :max="99999"
                                              label="(天)"></el-input-number>
                         </el-form-item>
-                        <el-form-item label="微信可见">
+                        <el-form-item label="微信可见" >
                             <el-switch
                                     v-model="form.wxVisible"
                                     :active-value="1"
@@ -167,17 +170,17 @@
                                     inactive-color="#D9D9D9">
                             </el-switch>
                         </el-form-item>
-                        <el-form-item label="是否跨店">
-                            <el-switch
-                                    v-model="form.allUse"
-                                    :active-value="0"
-                                    :inactive-value="1"
-                                    active-color="#409EFF"
-                                    inactive-color="#D9D9D9"
-                                    :disabled="true"
-                            >
-                            </el-switch>
-                        </el-form-item>
+                        <!--<el-form-item label="是否跨店">-->
+                            <!--<el-switch-->
+                                    <!--v-model="form.allUse"-->
+                                    <!--:active-value="0"-->
+                                    <!--:inactive-value="1"-->
+                                    <!--active-color="#409EFF"-->
+                                    <!--inactive-color="#D9D9D9"-->
+                                    <!--:disabled="true"-->
+                            <!--&gt;-->
+                            <!--</el-switch>-->
+                        <!--</el-form-item>-->
                         <el-form-item label="课程颜色">
                             <el-color-picker :predefine="predefineColors"  v-model="form.ClassColor" ></el-color-picker>
                         </el-form-item>
@@ -310,6 +313,7 @@
                 },
                 tableData: [],
                 tableRadio: [],
+                userLevel:localStorage.userLevel,
                 predefineColors: [
                     '#8ABFF7',
                     '#73C1BC',
@@ -361,7 +365,7 @@
                             message: '接口修改成功!',
                             type: 'success'
                         });
-                        that.dialogVisible = false
+                        that.dialogVisible = false;
                         that.getTableQuery();
                     } else {
                         that.$message.error(json.Memo);

+ 16 - 16
pc/src/views/LessonTable.vue

@@ -49,22 +49,22 @@
                         sortable
                 >
                 </el-table-column>
-                <el-table-column
-                        prop="ShopId"
-                        label="是否通用"
-                >
-                    <template slot-scope="scope">
-                        <el-switch
-                                v-model="scope.row.allUse"
-                                :active-value="1"
-                                :inactive-value="0"
-                                active-color="#409EFF"
-                                inactive-color="#D9D9D9"
-                                @change=changeShopId($event,scope.row)
-                        >
-                        </el-switch>
-                    </template>
-                </el-table-column>
+                <!--<el-table-column-->
+                        <!--prop="ShopId"-->
+                        <!--label="是否通用"-->
+                <!--&gt;-->
+                    <!--<template slot-scope="scope">-->
+                        <!--<el-switch-->
+                                <!--v-model="scope.row.allUse"-->
+                                <!--:active-value="1"-->
+                                <!--:inactive-value="0"-->
+                                <!--active-color="#409EFF"-->
+                                <!--inactive-color="#D9D9D9"-->
+                                <!--@change=changeShopId($event,scope.row)-->
+                        <!--&gt;-->
+                        <!--</el-switch>-->
+                    <!--</template>-->
+                <!--</el-table-column>-->
                 <el-table-column
                         prop="Status"
                         label="状态"

+ 3 - 3
pc/src/views/Main.vue

@@ -16,7 +16,7 @@
                             </em>
                             <em class="emrt">
                                 <i class="el-icon-caret-top"></i>
-                                昨日新增 {{CountAdd}}
+                                昨日新增 {{YesterdayCount}}
                             </em>
                         </div>
                     </li>
@@ -87,7 +87,7 @@
                 </div>
                 <div class="appointCard">
                     <el-card class="box-card" v-for="c in classList" @click.native="goLesson">
-                        <div class="cardTitle blue" :style="{ color:c.ClassColor }">
+                        <div class="cardTitle ">
                             {{c.ClassName}}
                         </div>
                         <span>
@@ -388,7 +388,7 @@
                 if (!value) {
                     return false
                 } else {
-                    let res = nonTfmtDatetoLength(value, 10).substr(5, 10)
+                    let res = nonTfmtDatetoLength(value, 10).substr(5, 10);
                     return res;
                 }
             },

+ 1126 - 1027
pc/src/views/Member.vue

@@ -1,1069 +1,1168 @@
 <template>
-    <div class="context">
-        <div class="panel">
-            <h5>会员管理</h5>
-            <div class="panel-body">
-                <div class="panel_control">
-                    <el-row :gutter="20">
-                        <el-col :span="4">
-                            <em>姓名:</em>
-                            <el-input v-model="panel.name" placeholder="请输入姓名"></el-input>
-                        </el-col>
-                        <el-col :span="4">
-                            <em>手机号:</em>
-                            <el-input v-model="panel.phone" placeholder="请输入手机号"></el-input>
-                        </el-col>
-                        <el-col :span="4">
-                            <em>会员类型:</em>
-                            <el-select v-model="panel.vipType">
-                                <el-option
-                                        v-for="item in panel.vipOptions"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-col>
-                        <el-col :span="4">
-                            <em>到期日:</em>
-                            <el-select v-model="panel.expDay">
-                                <el-option
-                                        v-for="item in panel.endTypeOptions"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-col>
-                        <el-col :span="4">
-                            <el-button size="" type="primary" @click="query" plain>查询</el-button>
-                        </el-col>
-                    </el-row>
-                </div>
-            </div>
+  <div class="context">
+    <div class="panel">
+      <h5>会员管理</h5>
+      <div class="panel-body">
+        <div class="panel_control">
+          <el-row :gutter="20">
+            <el-col :span="4">
+              <em>姓名:</em>
+              <el-input v-model="panel.name" placeholder="请输入姓名"></el-input>
+            </el-col>
+            <el-col :span="4">
+              <em>手机号:</em>
+              <el-input v-model="panel.phone" placeholder="请输入手机号"></el-input>
+            </el-col>
+            <el-col :span="4">
+              <em>会员类型:</em>
+              <el-select v-model="panel.vipType">
+                <el-option
+                    v-for="item in panel.vipOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value">
+                </el-option>
+              </el-select>
+            </el-col>
+            <el-col :span="4">
+              <em>到期日:</em>
+              <el-select v-model="panel.expDay">
+                <el-option
+                    v-for="item in panel.endTypeOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value">
+                </el-option>
+              </el-select>
+            </el-col>
+            <el-col :span="4">
+              <el-button size="" type="primary" @click="query" plain>查询</el-button>
+            </el-col>
+          </el-row>
         </div>
-        <div class="change">
-            <el-button @click="addMember" v-if="userLevel != 4">新增会员</el-button>
-            <el-button @click="delList" v-if="userLevel != 4">删除会员</el-button>
-            <el-button @click="lessonChange" v-if="userLevel != 4">课时调整</el-button>
-            <el-button @click="giftChange" v-if="userLevel != 4">赠送课时调整</el-button>
-            <el-button @click="ExpTimeChange" v-if="userLevel != 4">有效期调整</el-button>
-            <el-button @click="lessonStudenChange" v-if="userLevel != 4">增删会员可预约课程</el-button>
-            <!--            <el-button class="pull-right" icon="el-icon-position">导出</el-button>-->
-        </div>
-        <div class="table">
-            <el-table
-                    :data="tableData"
-                    border
-                    is-horizontal-resize
-                    :default-sort="{prop: 'date', order: 'descending'}"
-                    element-loading-background="rgba(0, 0, 0, 0.8)"
-                    class=""
-                    @selection-change="handleSelectionChange"                                   @current-change="clickChange"
->
-            >
-                <el-table-column label="选择" width="55">
-    <template slot-scope="scope">
-        <el-radio  v-model="tableRadio" :label="scope.row"><i></i></el-radio>
-    </template>
-</el-table-column>
-                <el-table-column
-                        type="index"
-                        label="序号"
-                        align="center"
-                        width="50"
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.Name"
-                        label="会员名"
-                        width="140"
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.Phone"
-                        label="手机号"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.VipType"
-                        label="类型"
-                        align="center"
-                        width="80px"
-                        sortable
-                >
-                    <template slot-scope="scope">
-                        <span v-if="scope.row.UserInfo.VipType == 1">年费</span>
-                        <span v-if="scope.row.UserInfo.VipType == 2">充值</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.ExpTime"
-                        label="会员有效期"
-                        width="180"
-                        :formatter="filterFmtDate"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.RemainNormalhour"
-                        label="剩余课时"
-                        width="110"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.RemainGifthour"
-                        label="剩余赠送"
-                        width="110"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.ConsumeNormalhour"
-                        label="消费课时"
-                        width="110"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.ConsumeGifthour"
-                        label="消费赠送"
-                        width="110"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="ClassInfo"
-                        label="会员课程"
-                        width="220px"
-                >
-                    <template slot-scope="scope">
+      </div>
+    </div>
+    <div class="change">
+      <el-button @click="addMember" v-if="userLevel != 4">新增会员</el-button>
+      <el-button @click="delList" v-if="userLevel != 4">删除会员</el-button>
+      <el-button @click="lessonChange" v-if="userLevel != 4">课时调整</el-button>
+      <el-button @click="giftChange" v-if="userLevel != 4">赠送课时调整</el-button>
+      <el-button @click="ExpTimeChange" v-if="userLevel != 4">有效期调整</el-button>
+      <el-button @click="lessonStudenChange" v-if="userLevel != 4">增删会员可预约课程</el-button>
+      <!--            <el-button class="pull-right" icon="el-icon-position">导出</el-button>-->
+    </div>
+    <div class="table">
+      <el-table
+          :data="tableData"
+          border
+          is-horizontal-resize
+          :default-sort="{prop: 'date', order: 'descending'}"
+          element-loading-background="rgba(0, 0, 0, 0.8)"
+          class=""
+          @selection-change="handleSelectionChange" @current-change="clickChange"
+      >
+        >
+        <el-table-column label="选择" width="55">
+          <template slot-scope="scope">
+            <el-radio v-model="tableRadio" :label="scope.row"><i></i></el-radio>
+          </template>
+        </el-table-column>
+        <el-table-column
+            type="index"
+            label="序号"
+            align="center"
+            width="50"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.Name"
+            label="会员名"
+            width="90"
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.Phone"
+            label="手机号"
+            width="110"
+            sortable
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.VipType"
+            label="类型"
+            align="center"
+            width="80px"
+            sortable
+        >
+          <template slot-scope="scope">
+            <span v-if="scope.row.UserInfo.VipType == 1">年费</span>
+            <span v-if="scope.row.UserInfo.VipType == 2">充值</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.ExpTime"
+            label="会员有效期"
+            width="155"
+            :formatter="filterFmtDate"
+            sortable
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.RemainNormalhour"
+            label="剩余课时"
+            width="105"
+            sortable
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.RemainGifthour"
+            label="剩余赠送"
+            width="105"
+            sortable
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.ConsumeNormalhour"
+            label="消费课时"
+            width="105"
+            sortable
+        >
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.ConsumeGifthour"
+            label="消费赠送"
+            width="105"
+            sortable
+        >
+        </el-table-column>
+        <el-table-column
+            prop="ClassInfo"
+            label="会员课程"
+            width="220px"
+        >
+          <template slot-scope="scope">
                         <span class="lessonSpan" :style="{background:lesson.ClassColor}"
-                              v-for="lesson in scope.row.ClassInfo">{{lesson.ClassName}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.Memo"
-                        label="备注">
-                    <template slot-scope="scope">
-                        <el-popover
-                                placement="top"
-                                title=""
-                                width="200"
-                                trigger="hover"
-                                :content="scope.row.UserInfo.Memo">
+                              v-for="lesson in scope.row.ClassInfo">{{ lesson.ClassName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="TakeId"
+            label="Take绑定"
+            width="105"
+            sortable
+        >
+          <template slot-scope="scope">
+            <span v-if="scope.row.UserInfo.TakeId == 0" class="red">未绑定</span>
+            <span v-else>已绑定</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.Memo"
+            label="备注">
+          <template slot-scope="scope">
+            <el-popover
+                placement="top"
+                title=""
+                width="200"
+                trigger="hover"
+                :content="scope.row.UserInfo.Memo">
                             <span slot="reference"
-                                  v-if="scope.row.UserInfo.Memo.length > 6">{{scope.row.UserInfo.Memo.substr(0,6)}} ....</span>
-                        </el-popover>
-                        <span v-if="scope.row.UserInfo.Memo.length <= 6">{{scope.row.UserInfo.Memo}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                        prop="UserInfo.Status"
-                        label="操作"
-                        width="160px"
-                >
-                    <template slot-scope="scope">
-                        <el-button class="btn" type="default" size="mini" @click="editMember(scope.row)">编辑</el-button>
-                        <el-button class="btn" type="danger" v-if="scope.row.UserInfo.Status == 1" size="mini"
-                                   @click="pauseRow(scope.row)">
-                            禁用
-                        </el-button>
-                        <el-button class="btn" type="success" v-if="scope.row.UserInfo.Status == 8" size="mini"
-                                   @click="runRow(scope.row)">
-                            启用
-                        </el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <br>
-            <el-pagination
-                    background
-                    :total="pageination.total"
-                    :page-size="pageination.pageItem"
-                    @current-change="pageChange"
-            ></el-pagination>
+                                  v-if="scope.row.UserInfo.Memo.length > 6">{{ scope.row.UserInfo.Memo.substr(0, 6) }} ....</span>
+            </el-popover>
+            <span v-if="scope.row.UserInfo.Memo.length <= 6">{{ scope.row.UserInfo.Memo }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+            prop="UserInfo.Status"
+            label="操作"
+            width="160px"
+        >
+          <template slot-scope="scope">
+            <el-button class="btn" type="default" size="mini" @click="editMember(scope.row)">编辑</el-button>
+            <el-button class="btn" type="danger" v-if="scope.row.UserInfo.Status == 1" size="mini"
+                       @click="pauseRow(scope.row)">
+              禁用
+            </el-button>
+            <el-button class="btn" type="success" v-if="scope.row.UserInfo.Status == 8" size="mini"
+                       @click="runRow(scope.row)">
+              启用
+            </el-button>
+            <el-button class="btn" type="primary" size="mini"
+                       @click="addTake(scope.row)">Take绑定
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <br>
+      <el-pagination
+          background
+          :total="pageination.total"
+          :page-size="pageination.pageItem"
+          @current-change="pageChange"
+      ></el-pagination>
+    </div>
+
+    <el-dialog :title="dialogTitle" :visible.sync="dialogMemberVisible" :width="form.btnType == 1 ?'650px':'1200px'">
+      <div class="dialogContent">
+        <div :class="['pull-left',{'tabwild':form.btnType == 1},]">
+          <el-form ref="form" :model="form" label-width="160px">
+            <el-form-item label="手机号" :required="true">
+              <el-input v-model="form.phone"></el-input>
+            </el-form-item>
+            <el-form-item label="会员名" :required="true">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+            <el-form-item label="会员类型" v-if="form.btnType == 0">
+              <el-select v-model="form.vipType" placeholder="请选择所属门店">
+                <el-option
+                    v-for="item in memberTypes"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="课时" v-if="form.btnType == 0">
+              <el-input-number v-model="form.normalhour " :min="0" :max="99999"
+                               label="(天)"></el-input-number>
+            </el-form-item>
+            <el-form-item label="赠送课时" v-if="form.btnType == 0">
+              <el-input-number v-model="form.gifthour " :min="0" :max="99999"
+                               label="(天)"></el-input-number>
+            </el-form-item>
+            <el-form-item label="备注">
+              <el-input v-model="form.memo"></el-input>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="pull-right" v-if="form.btnType == 0">
+          <el-form ref="form" :model="form" label-width="160px">
+            <el-form-item label="会员课程">
+              <el-transfer filterable v-model="form.classlist" :data="form.dialogdata"
+                           :titles="['全部课程','已选课程']"></el-transfer>
+            </el-form-item>
+          </el-form>
         </div>
+      </div>
+      <div class="dialogFooter">
+        <el-button type="primary" size="small" v-if="form.btnType == 0" @click="confirmMember">确定</el-button>
+        <el-button type="primary" size="small" v-if="form.btnType == 1" @click="confirmEditMember">确定
+        </el-button>
+        <el-button size="small" @click="dialogMemberVisible = false">取消</el-button>
+      </div>
+    </el-dialog>
 
-        <el-dialog :title="dialogTitle" :visible.sync="dialogMemberVisible" :width="form.btnType == 1 ?'650px':'1200px'">
-            <div class="dialogContent">
-                <div :class="['pull-left',{'tabwild':form.btnType == 1},]">
-                    <el-form ref="form" :model="form" label-width="160px">
-                        <el-form-item label="手机号"  :required="true">
-                            <el-input v-model="form.phone"></el-input>
-                        </el-form-item>
-                        <el-form-item label="会员名" :required="true">
-                            <el-input v-model="form.name"></el-input>
-                        </el-form-item>
-                        <el-form-item label="会员类型" v-if="form.btnType == 0">
-                            <el-select v-model="form.vipType" placeholder="请选择所属门店">
-                                <el-option
-                                        v-for="item in memberTypes"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                ></el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="课时" v-if="form.btnType == 0">
-                            <el-input-number v-model="form.normalhour " :min="0" :max="99999"
-                                             label="(天)"></el-input-number>
-                        </el-form-item>
-                        <el-form-item label="赠送课时" v-if="form.btnType == 0">
-                            <el-input-number v-model="form.gifthour " :min="0" :max="99999"
-                                             label="(天)"></el-input-number>
-                        </el-form-item>
-                        <el-form-item label="备注">
-                            <el-input v-model="form.memo"></el-input>
-                        </el-form-item>
-                    </el-form>
-                </div>
-                <div class="pull-right" v-if="form.btnType == 0">
-                    <el-form ref="form" :model="form" label-width="160px">
-                        <el-form-item label="会员课程">
-                            <el-transfer filterable v-model="form.classlist" :data="form.dialogdata"
-                                         :titles="['全部课程','已选课程']"></el-transfer>
-                        </el-form-item>
-                    </el-form>
-                </div>
-            </div>
-            <div class="dialogFooter">
-                <el-button type="primary" size="small" v-if="form.btnType == 0" @click="confirmMember">确定</el-button>
-                <el-button type="primary" size="small" v-if="form.btnType == 1" @click="confirmEditMember">确定
-                </el-button>
-                <el-button size="small" @click="dialogMemberVisible = false">取消</el-button>
-            </div>
-        </el-dialog>
+    <el-dialog :visible.sync="dialogVisible" width="650px">
+      <div class="dialogTitle">
+        <h5>
+          用户:
+          <em class="blue">【 {{ form.rowName }}】</em>
+          <br>
+          <br>
+          <span v-if="dialogLesson">当前课时 {{ form.normalhour }}</span>
+          <span v-if="dialogGift">赠送课时 {{ form.gifthour }}</span>
+          <span v-if="dialogExpTime">当前到期时间</span>
+          <span v-if="dialogLessonTable">增删会员可预约课程</span>
+        </h5>
+      </div>
+      <div v-if="dialogLesson">
+        <el-input-number v-model="form.newnormalhour" :min="-9999" :max="9999" label="课时调整"></el-input-number>
+      </div>
+      <div v-if="dialogGift">
+        <el-input-number v-model="form.newgifthour" :min="-9999" :max="9999" label="赠送课时调整"></el-input-number>
+      </div>
+      <div v-if="dialogExpTime">
+        <el-date-picker
+            v-model="form.expTime"
+            type="date"
+            placeholder="选择日期">
+        </el-date-picker>
+      </div>
+      <div v-if="dialogLessonTable">
+        <el-transfer filterable v-model="form.dialogValue" :data="form.dialogdata"
+                     :titles="['全部课程','已选课程']"></el-transfer>
+      </div>
+      <div class="dialogFooter">
+        <!--课时调整-->
+        <el-button type="primary" size="small" @click="confirmLesson" v-if="dialogLesson">确定</el-button>
+        <!--赠送课时调整-->
+        <el-button type="primary" size="small" @click="confirmGift" v-if="dialogGift">确定</el-button>
+        <!--                有效期调整-->
+        <el-button type="primary" size="small" @click="confirmExpTime" v-if="dialogExpTime">确定</el-button>
+        <!--                课程增删-->
+        <el-button type="primary" size="small" @click="confirmLessonTable" v-if="dialogLessonTable">确定
+        </el-button>
+        <el-button size="small" @click="dialogVisible = false">取消</el-button>
+      </div>
+    </el-dialog>
 
-        <el-dialog :visible.sync="dialogVisible"  width="650px">
-            <div class="dialogTitle">
-                <h5>
-                    用户:
-                    <em class="blue">【 {{form.rowName}}】</em>
-                    <br>
-                    <br>
-                    <span v-if="dialogLesson">当前课时 {{form.normalhour}}</span>
-                    <span v-if="dialogGift">赠送课时 {{form.gifthour}}</span>
-                    <span v-if="dialogExpTime">当前到期时间</span>
-                    <span v-if="dialogLessonTable">增删会员可预约课程</span>
-                </h5>
-            </div>
-            <div v-if="dialogLesson">
-                <el-input-number v-model="form.newnormalhour" :min="-9999" :max="9999" label="课时调整"></el-input-number>
-            </div>
-            <div v-if="dialogGift">
-                <el-input-number v-model="form.newgifthour" :min="-9999" :max="9999" label="赠送课时调整"></el-input-number>
-            </div>
-            <div v-if="dialogExpTime">
-                <el-date-picker
-                        v-model="form.expTime"
-                        type="date"
-                        placeholder="选择日期">
-                </el-date-picker>
-            </div>
-            <div v-if="dialogLessonTable">
-                <el-transfer filterable v-model="form.dialogValue" :data="form.dialogdata"
-                             :titles="['全部课程','已选课程']"></el-transfer>
-            </div>
-            <div class="dialogFooter">
-                <!--课时调整-->
-                <el-button type="primary" size="small" @click="confirmLesson" v-if="dialogLesson">确定</el-button>
-                <!--赠送课时调整-->
-                <el-button type="primary" size="small" @click="confirmGift" v-if="dialogGift">确定</el-button>
-                <!--                有效期调整-->
-                <el-button type="primary" size="small" @click="confirmExpTime" v-if="dialogExpTime">确定</el-button>
-                <!--                课程增删-->
-                <el-button type="primary" size="small" @click="confirmLessonTable" v-if="dialogLessonTable">确定
-                </el-button>
-                <el-button size="small" @click="dialogVisible = false">取消</el-button>
-            </div>
-        </el-dialog>
-    </div>
+    <el-dialog title="Take绑定" :visible.sync="TakeVisible" width="650px">
+      <div>
+        <el-select v-model="Takevalue" placeholder="请选择">
+          <el-option
+              v-for="item in Takeoptions"
+              :key="item.Id"
+              :label="item.Name + item.PhoneNo"
+              :value="item.Id">
+          </el-option>
+        </el-select>
+      </div>
+      <div class="dialogFooter">
+        <!--take绑定调整-->
+        <el-button type="primary" size="small" @click="confirmTake">确定</el-button>
+        <el-button size="small" @click="TakeVisible = false">取消</el-button>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-    import Global from '../Global.js'
-    import {
-        VipUserListQuery,
-        ClassListQuery,
-        VipUserAdd,
-        VipUserStatusEdit,
-        VipUserEdit,
-        VipUserHourEdit,
-        VipUserExpEdit,
-        VipUserClassEdit,
-        testTable,
-        testSelect
-    } from "../api/getApiRes";
+import Global from '../Global.js'
+import {
+  VipUserListQuery,
+  ClassListQuery,
+  VipUserAdd,
+  VipUserStatusEdit,
+  VipUserEdit,
+  VipUserHourEdit,
+  VipUserExpEdit,
+  VipUserClassEdit,
+  QueryTakeCustomerByName,
+  BindTakeCustomer,
+  testTable,
+  testSelect
+} from "../api/getApiRes";
 
-    let qs = require('qs');
-    export default {
-        data() {
-            return {
-                dialogVisible: false,//其他dialog
-                dialogMemberVisible: false,//新增会员dialog
-                dialogLesson: false,//课时调整
-                dialogGift: false,//赠送课时调整
-                dialogExpTime: false,//有效期调整
-                dialogLessonTable: false,//会员课程
-                dialogTitle: '新增会员',
-                dialogValue: [],
-                // panel 配置项目
-                panel: {
-                    usercode: '',
-                    username: '',
-                    compname: '',
-                    keyword: '',
-                    USERCODE: '',
-                    endType: '',
-                    taskstatus: 99,
-                    draw: 1,
-                    start: 0,
-                    recordsTotal: 0,
-                    tableData: [],
-                    allTableData: [],
-                    limit: '10',
-                    multipleSort: false,
-                    loading: false,
-                    fileList: [],
-                    multipleSelection: [],
-                    detectedmac: '',
-                    vipType: '',
-                    expDay: '',
-                    vipOptions: vipOptions(0),
-                    endTypeOptions: endTypeOptions(),
-                    time1: globalBt(),
-                },
-                multipleSelection: [],
-                pageination: {
-                    pageItem: 100,
-                    pageoptions: pageOptions(),
-                    total: 100,
-                    pageIndex: 1,
-                },
-                form: {
-                    phone: '',
-                    name: '',
-                    userCode: '',
-                    shopId: '',
-                    Id: '',
-                    userId: '',
-                    vipType: 1,
-                    normalhour: 0,
-                    newnormalhour: 0,
-                    gifthour: 0,
-                    newgifthour: 0,
-                    btnType: 0,//0新建,1编辑编辑
-                    memo: '',
-                    expTime: '',
-                    classlist: [],
-                    dialogdata: [],//穿梭待选
-                    dialogValue: [],//穿梭已选
-                },
-                memberTypes: vipOptions(1),
-                tableData: [],
-                tableRadio: [],
-                userLevel:localStorage.userLevel
-            }
-        },
-        mounted() {
-            // 加载课程选项
-            this.panelSelect();
-            // 读取列表
-            this.getTableQuery();
-        },
-        methods: {
-            clickChange (item) {
-                this.tableRadio = item
-            },
-            // 编辑
-            editMember(row) {
-                let that = this;
-                this.clearForm();
-                this.form.phone = row.UserInfo.Phone;
-                this.form.name = row.UserInfo.Name;
-                this.form.memo = row.UserInfo.Memo;
-                this.form.btnType = 1;
+let qs = require('qs');
+export default {
+  data() {
+    return {
+      dialogVisible: false,//其他dialog
+      TakeVisible: false,//take dialog
+      dialogMemberVisible: false,//新增会员dialog
+      dialogLesson: false,//课时调整
+      dialogGift: false,//赠送课时调整
+      dialogExpTime: false,//有效期调整
+      dialogLessonTable: false,//会员课程
+      dialogTitle: '新增会员',
+      dialogValue: [],
+      Takevalue: 0,
+      Takeoptions: [],
+      TakeHid: 0,
+      // panel 配置项目
+      panel: {
+        usercode: '',
+        username: '',
+        compname: '',
+        keyword: '',
+        USERCODE: '',
+        endType: '',
+        taskstatus: 99,
+        draw: 1,
+        start: 0,
+        recordsTotal: 0,
+        tableData: [],
+        allTableData: [],
+        limit: '10',
+        multipleSort: false,
+        loading: false,
+        fileList: [],
+        multipleSelection: [],
+        detectedmac: '',
+        vipType: '',
+        expDay: '',
+        vipOptions: vipOptions(0),
+        endTypeOptions: endTypeOptions(),
+        time1: globalBt(),
+      },
+      multipleSelection: [],
+      pageination: {
+        pageItem: 100,
+        pageoptions: pageOptions(),
+        total: 100,
+        pageIndex: 1,
+      },
+      form: {
+        phone: '',
+        name: '',
+        userCode: '',
+        shopId: '',
+        Id: '',
+        userId: '',
+        vipType: 1,
+        normalhour: 0,
+        newnormalhour: 0,
+        gifthour: 0,
+        newgifthour: 0,
+        btnType: 0,//0新建,1编辑编辑
+        memo: '',
+        expTime: '',
+        classlist: [],
+        dialogdata: [],//穿梭待选
+        dialogValue: [],//穿梭已选
+      },
+      memberTypes: vipOptions(1),
+      tableData: [],
+      tableRadio: [],
+      userLevel: localStorage.userLevel
+    }
+  },
+  mounted() {
+    // 加载课程选项
+    this.panelSelect();
+    // 读取列表
+    this.getTableQuery();
+  },
+  methods: {
+    // 打开take绑定和拉取take数据
+    addTake(row) {
+      this.TakeVisible = true;
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        userId: row.UserInfo.Id,
+      };
+      this.TakeHid = row.UserInfo.HId;
+      let postdata = qs.stringify(param);
+      QueryTakeCustomerByName(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          if (json.Rs != '') {
+            that.Takeoptions = json.Rs;
+            that.Takevalue = json.Rs[0].Id;
+          } else {
+            that.$message.error('当前用户没有可用的Take账号');
+            this.TakeVisible = false;
+            console.log('null');
+          }
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 绑定take
+    confirmTake() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        hId: this.TakeHid,
+        customerId: this.Takevalue,
+        memo: '后台管理手动绑定',
+      };
+      let postdata = qs.stringify(param);
+      BindTakeCustomer(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.$message({
+            showClose: true,
+            message: 'Take绑定成功!',
+            type: 'success'
+          });
+          this.TakeVisible = false;
+          // 读取列表
+          this.getTableQuery();
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
 
-                this.form.shopId = row.UserInfo.ShopId;
-                this.form.Id = row.UserInfo.Id;
-                this.dialogMemberVisible = true
-                this.dialogTitle = '编辑会员'
+    clickChange(item) {
+      this.tableRadio = item
+    },
+    // 编辑
+    editMember(row) {
+      let that = this;
+      this.clearForm();
+      this.form.phone = row.UserInfo.Phone;
+      this.form.name = row.UserInfo.Name;
+      this.form.memo = row.UserInfo.Memo;
+      this.form.btnType = 1;
 
-            },
-            // 禁用
-            pauseRow(row) {
-                let that = this;
-                this.$confirm('是否禁用用户' + row.UserInfo.Name + '?', '禁用操作', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    let param = {
-                        token: localStorage.token,
-                        userId: row.UserInfo.Id,
-                        status: 8,//状态 8:禁用 1:启用 9:删除
-                    };
-                    let postdata = qs.stringify(param);
-                    VipUserStatusEdit(postdata).then(res => {
-                        let json = res;
-                        if (json.Code == 0) {
-                            that.$message({
-                                showClose: true,
-                                message: row.UserInfo.Name + '禁用成功!',
-                                type: 'success'
-                            });
-                            // table 重载
-                            that.getTableQuery();
-                        } else {
-                            that.$message.error(json.Memo);
-                        }
-                    })
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消禁用'
-                    });
-                });
-            },
-            // 启用
-            runRow(row) {
-                let that = this;
-                this.$confirm('是否启用用户' + row.UserInfo.Name + '?', '启用操作', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    let param = {
-                        token: localStorage.token,
-                        userId: row.UserInfo.Id,
-                        status: 1,//状态 8:禁用 1:启用 9:删除
-                    };
-                    let postdata = qs.stringify(param);
-                    VipUserStatusEdit(postdata).then(res => {
-                        let json = res;
-                        if (json.Code == 0) {
-                            that.$message({
-                                showClose: true,
-                                message: row.UserInfo.Name + '启用成功!',
-                                type: 'success'
-                            });
-                            // table 重载
-                            that.getTableQuery();
-                        } else {
-                            that.$message.error(json.Memo);
-                        }
-                    })
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消启用'
-                    });
-                });
-            },
-            // 关闭所有
-            allDialogClose() {
-                this.dialogVisible = false;
-                this.dialogGift = false;
-                this.dialogLesson = false;
-                this.dialogExpTime = false;
-                this.dialogLessonTable = false;
-            },
-            // 有效期调整
-            ExpTimeChange() {
-                // 仅针对年费用户,使用日期格式
-                this.allDialogClose();
-                if(this.tableRadio.length == 0){
-                    this.$message.error("请先选中一条记录");
-                    return false
-                }
-                let row = this.tableRadio;
-                if (parseInt(row.UserInfo.VipType) == 2) {
-                    this.$message({
-                        showClose: true,
-                        message: '错了哦,充值会员不能调整有效期',
-                        type: 'error'
-                    });
-                    return false
-                }
-                this.form.rowName = row.UserInfo.Name;
-                this.form.userId = row.UserInfo.Id;
-                this.form.expTime = row.UserInfo.ExpTime
-                this.dialogVisible = true;
-                this.dialogExpTime = true;
-            },
-            // 课时调整
-            lessonChange() {
-                this.allDialogClose();
-                if(this.tableRadio.length == 0){
-                    this.$message.error("请先选中一条记录");
-                    return false
-                }
-                let row =  this.tableRadio;
-                this.form.normalhour = row.UserInfo.RemainNormalhour;
-                this.form.newnormalhour = 0;
-                this.form.rowName = row.UserInfo.Name;
-                this.form.userId = row.UserInfo.Id;
-                this.dialogVisible = true;
-                this.dialogLesson = true;
+      this.form.shopId = row.UserInfo.ShopId;
+      this.form.Id = row.UserInfo.Id;
+      this.dialogMemberVisible = true
+      this.dialogTitle = '编辑会员'
 
-            },
-            // 赠送调整
-            giftChange() {
-                this.allDialogClose();
-                if(this.tableRadio.length == 0){
-                    this.$message.error("请先选中一条记录");
-                    return false
-                }
-                let row =  this.tableRadio;
-                this.form.gifthour = row.UserInfo.RemainGifthour;
-                this.form.newgifthour = 0;
-                this.form.rowName = row.UserInfo.Name;
-                this.form.userId = row.UserInfo.Id;
-                this.dialogVisible = true;
-                this.dialogGift = true;
+    },
+    // 禁用
+    pauseRow(row) {
+      let that = this;
+      this.$confirm('是否禁用用户' + row.UserInfo.Name + '?', '禁用操作', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let param = {
+          token: localStorage.token,
+          userId: row.UserInfo.Id,
+          status: 8,//状态 8:禁用 1:启用 9:删除
+        };
+        let postdata = qs.stringify(param);
+        VipUserStatusEdit(postdata).then(res => {
+          let json = res;
+          if (json.Code == 0) {
+            that.$message({
+              showClose: true,
+              message: row.UserInfo.Name + '禁用成功!',
+              type: 'success'
+            });
+            // table 重载
+            that.getTableQuery();
+          } else {
+            that.$message.error(json.Memo);
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消禁用'
+        });
+      });
+    },
+    // 启用
+    runRow(row) {
+      let that = this;
+      this.$confirm('是否启用用户' + row.UserInfo.Name + '?', '启用操作', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let param = {
+          token: localStorage.token,
+          userId: row.UserInfo.Id,
+          status: 1,//状态 8:禁用 1:启用 9:删除
+        };
+        let postdata = qs.stringify(param);
+        VipUserStatusEdit(postdata).then(res => {
+          let json = res;
+          if (json.Code == 0) {
+            that.$message({
+              showClose: true,
+              message: row.UserInfo.Name + '启用成功!',
+              type: 'success'
+            });
+            // table 重载
+            that.getTableQuery();
+          } else {
+            that.$message.error(json.Memo);
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消启用'
+        });
+      });
+    },
+    // 关闭所有
+    allDialogClose() {
+      this.dialogVisible = false;
+      this.dialogGift = false;
+      this.dialogLesson = false;
+      this.dialogExpTime = false;
+      this.dialogLessonTable = false;
+    },
+    // 有效期调整
+    ExpTimeChange() {
+      // 仅针对年费用户,使用日期格式
+      this.allDialogClose();
+      if (this.tableRadio.length == 0) {
+        this.$message.error("请先选中一条记录");
+        return false
+      }
+      let row = this.tableRadio;
+      if (parseInt(row.UserInfo.VipType) == 2) {
+        this.$message({
+          showClose: true,
+          message: '错了哦,充值会员不能调整有效期',
+          type: 'error'
+        });
+        return false
+      }
+      this.form.rowName = row.UserInfo.Name;
+      this.form.userId = row.UserInfo.Id;
+      this.form.expTime = row.UserInfo.ExpTime
+      this.dialogVisible = true;
+      this.dialogExpTime = true;
+    },
+    // 课时调整
+    lessonChange() {
+      this.allDialogClose();
+      if (this.tableRadio.length == 0) {
+        this.$message.error("请先选中一条记录");
+        return false
+      }
+      let row = this.tableRadio;
+      this.form.normalhour = row.UserInfo.RemainNormalhour;
+      this.form.newnormalhour = 0;
+      this.form.rowName = row.UserInfo.Name;
+      this.form.userId = row.UserInfo.Id;
+      this.dialogVisible = true;
+      this.dialogLesson = true;
 
-            },
-            // 增删会员课程
-            lessonStudenChange() {
-                let that = this;
-                this.allDialogClose();
-                // 重载课程列表选项
-                this.panelSelect();
-                if(this.tableRadio.length == 0){
-                    that.$message.error("请先选中一条记录");
-                    return false
-                }
-                let row = this.tableRadio;
-                this.form.rowName = row.UserInfo.Name;
-                this.form.userId = row.UserInfo.Id;
-                if (row.ClassInfo) {
-                    row.ClassInfo.map(function (item) {
-                        that.form.dialogValue.push(item.ClassId)
-                    })
-                }
-                console.log(that.form.classlist);
-                this.dialogVisible = true;
-                this.dialogLessonTable = true;
-            },
-            // 确认提交新增会员
-            confirmMember() {
-                let that = this;
-                // checkNum
-                if (!that.form.phone) {
-                    this.$message.error('错了哦,手机号不能为空');
-                    return false
-                }
-                if (!globalCheckPhone(that.form.phone)) {
-                    this.$message.error('错了哦,手机号格式不正确');
-                    return false
-                }
-                if (!that.form.name) {
-                    this.$message.error('错了哦,会员名不能为空');
-                    return false
-                }
-                if (that.form.name.length > 8) {
-                    this.$message.error('错了哦,会员名字数超过8个字');
-                    return false
-                }
-                if (that.form.memo) {
-                    if (that.form.memo.length > 200) {
-                        this.$message.error('错了哦,备注字数超过200个字');
-                        return false
-                    }
-                }
-                // 课程添加使用字符串形式
-                let curClasslist = '';
-                if (that.form.classlist) {
-                    curClasslist = that.form.classlist.toString();
-                }
+    },
+    // 赠送调整
+    giftChange() {
+      this.allDialogClose();
+      if (this.tableRadio.length == 0) {
+        this.$message.error("请先选中一条记录");
+        return false
+      }
+      let row = this.tableRadio;
+      this.form.gifthour = row.UserInfo.RemainGifthour;
+      this.form.newgifthour = 0;
+      this.form.rowName = row.UserInfo.Name;
+      this.form.userId = row.UserInfo.Id;
+      this.dialogVisible = true;
+      this.dialogGift = true;
 
-                let param = {
-                    token: localStorage.token,
-                    shopId: localStorage.shopId,
-                    phone: that.form.phone,
-                    name: that.form.name,
-                    vipType: that.form.vipType,
-                    normalhour: that.form.normalhour,
-                    gifthour: that.form.gifthour,
-                    classlist: curClasslist,
-                    memo: that.form.memo,
-                };
-                let postdata = qs.stringify(param);
-                VipUserAdd(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogMemberVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '会员添加成功!',
-                            type: 'success'
-                        });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            confirmEditMember() {
-                let that = this;
-                // checkNum
-                if (!that.form.phone) {
-                    this.$message.error('错了哦,手机号不能为空');
-                    return false
-                }
-                if (!globalCheckPhone(that.form.phone)) {
-                    this.$message.error('错了哦,手机号格式不正确');
-                    return false
-                }
-                if (!that.form.name) {
-                    this.$message.error('错了哦,会员名不能为空');
-                    return false
-                }
-                if (that.form.name.length > 8) {
-                    this.$message.error('错了哦,会员名字数超过8个字');
-                    return false
-                }
-                if (that.form.memo) {
-                    if (that.form.memo.length > 200) {
-                        this.$message.error('错了哦,备注字数超过200个字');
-                        return false
-                    }
-                }
-                let param = {
-                    token: localStorage.token,
-                    userId: that.form.Id,
-                    phone: that.form.phone,
-                    name: that.form.name,
-                    memo: that.form.memo,
-                };
-                let postdata = qs.stringify(param);
-                VipUserEdit(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogMemberVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '会员信息编辑成功!',
-                            type: 'success'
-                        });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 确认提交课时
-            confirmLesson() {
-                let that = this;
-                // checkNum
-                let param = {
-                    token: localStorage.token,
-                    userId: that.form.userId,
-                    chgHour: that.form.newnormalhour,
-                    chgType: 1,//课时类型 1:普通课时 2:赠送课时
-                };
-                let postdata = qs.stringify(param);
-                VipUserHourEdit(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '课时调整成功!',
-                            type: 'success'
-                        });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 确认提交赠送
-            confirmGift() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    userId: that.form.userId,
-                    chgHour: that.form.newgifthour,
-                    chgType: 2,//课时类型 1:普通课时 2:赠送课时
-                };
-                let postdata = qs.stringify(param);
-                VipUserHourEdit(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '赠送课时调整成功!',
-                            type: 'success'
-                        });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 确认提交有效期
-            confirmExpTime() {
-                let that = this;
-                // checkNum
+    },
+    // 增删会员课程
+    lessonStudenChange() {
+      let that = this;
+      this.allDialogClose();
+      // 重载课程列表选项
+      this.panelSelect();
+      if (this.tableRadio.length == 0) {
+        that.$message.error("请先选中一条记录");
+        return false
+      }
+      let row = this.tableRadio;
+      this.form.rowName = row.UserInfo.Name;
+      this.form.userId = row.UserInfo.Id;
+      if (row.ClassInfo) {
+        row.ClassInfo.map(function (item) {
+          that.form.dialogValue.push(item.ClassId)
+        })
+      }
+      console.log(that.form.classlist);
+      this.dialogVisible = true;
+      this.dialogLessonTable = true;
+    },
+    // 确认提交新增会员
+    confirmMember() {
+      let that = this;
+      // checkNum
+      if (!that.form.phone) {
+        this.$message.error('错了哦,手机号不能为空');
+        return false
+      }
+      if (!globalCheckPhone(that.form.phone)) {
+        this.$message.error('错了哦,手机号格式不正确');
+        return false
+      }
+      if (!that.form.name) {
+        this.$message.error('错了哦,会员名不能为空');
+        return false
+      }
+      if (that.form.name.length > 8) {
+        this.$message.error('错了哦,会员名字数超过8个字');
+        return false
+      }
+      if (that.form.memo) {
+        if (that.form.memo.length > 200) {
+          this.$message.error('错了哦,备注字数超过200个字');
+          return false
+        }
+      }
+      // 课程添加使用字符串形式
+      let curClasslist = '';
+      if (that.form.classlist) {
+        curClasslist = that.form.classlist.toString();
+      }
 
-                let param = {
-                    token: localStorage.token,
-                    userId: that.form.userId,
-                    expTime: nonTfmtDate(that.form.expTime, 16),
-                };
-                let postdata = qs.stringify(param);
-                VipUserExpEdit(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '赠送课时调整成功!',
-                            type: 'success'
-                        });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 确认提交会员课程
-            confirmLessonTable() {
-                let that = this;
-                // checkNum
-                let classList = that.form.dialogValue ? that.form.dialogValue.toString() : '';
+      let param = {
+        token: localStorage.token,
+        shopId: localStorage.shopId,
+        phone: that.form.phone,
+        name: that.form.name,
+        vipType: that.form.vipType,
+        normalhour: that.form.normalhour,
+        gifthour: that.form.gifthour,
+        classlist: curClasslist,
+        memo: that.form.memo,
+      };
+      let postdata = qs.stringify(param);
+      VipUserAdd(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // 关闭弹窗
+          that.dialogMemberVisible = false;
+          // 重载列表
+          that.getTableQuery();
+          that.$message({
+            showClose: true,
+            message: '会员添加成功!',
+            type: 'success'
+          });
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    confirmEditMember() {
+      let that = this;
+      // checkNum
+      if (!that.form.phone) {
+        this.$message.error('错了哦,手机号不能为空');
+        return false
+      }
+      if (!globalCheckPhone(that.form.phone)) {
+        this.$message.error('错了哦,手机号格式不正确');
+        return false
+      }
+      if (!that.form.name) {
+        this.$message.error('错了哦,会员名不能为空');
+        return false
+      }
+      if (that.form.name.length > 8) {
+        this.$message.error('错了哦,会员名字数超过8个字');
+        return false
+      }
+      if (that.form.memo) {
+        if (that.form.memo.length > 200) {
+          this.$message.error('错了哦,备注字数超过200个字');
+          return false
+        }
+      }
+      let param = {
+        token: localStorage.token,
+        userId: that.form.Id,
+        phone: that.form.phone,
+        name: that.form.name,
+        memo: that.form.memo,
+      };
+      let postdata = qs.stringify(param);
+      VipUserEdit(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // 关闭弹窗
+          that.dialogMemberVisible = false;
+          // 重载列表
+          that.getTableQuery();
+          that.$message({
+            showClose: true,
+            message: '会员信息编辑成功!',
+            type: 'success'
+          });
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 确认提交课时
+    confirmLesson() {
+      let that = this;
+      // checkNum
+      let param = {
+        token: localStorage.token,
+        userId: that.form.userId,
+        chgHour: that.form.newnormalhour,
+        chgType: 1,//课时类型 1:普通课时 2:赠送课时
+      };
+      let postdata = qs.stringify(param);
+      VipUserHourEdit(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // 关闭弹窗
+          that.dialogVisible = false;
+          // 重载列表
+          that.getTableQuery();
+          that.$message({
+            showClose: true,
+            message: '课时调整成功!',
+            type: 'success'
+          });
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 确认提交赠送
+    confirmGift() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        userId: that.form.userId,
+        chgHour: that.form.newgifthour,
+        chgType: 2,//课时类型 1:普通课时 2:赠送课时
+      };
+      let postdata = qs.stringify(param);
+      VipUserHourEdit(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // 关闭弹窗
+          that.dialogVisible = false;
+          // 重载列表
+          that.getTableQuery();
+          that.$message({
+            showClose: true,
+            message: '赠送课时调整成功!',
+            type: 'success'
+          });
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 确认提交有效期
+    confirmExpTime() {
+      let that = this;
+      // checkNum
 
-                let param = {
-                    token: localStorage.token,
-                    userId: that.form.userId,
-                    classList: classList,
-                };
-                let postdata = qs.stringify(param);
-                VipUserClassEdit(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '会员课程调整成功!',
-                            type: 'success'
-                        });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 加载课程列表选项
-            panelSelect() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    vipType: '',
-                    classType: 1,//不显示 午饭类 课程
-                    start: 1,
-                    expDay: 0,
-                    tableMax: 9999,
-                };
-                let postdata = qs.stringify(param);
-                ClassListQuery(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.form.dialogdata = turnClassResToOption(json.Rs);
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 新增会员
-            addMember() {
-                this.clearForm();
-                this.panelSelect();
-                this.dialogMemberVisible = true
-                this.btnType = 0;
-                this.form.btnType = 0;
-                this.dialogTitle = '新增会员'
-            },
-            // 删除
-            delList() {
-                let that = this;
-                if(this.tableRadio.length == 0){
-                    that.$message.error("请先选中一条记录");
-                    return false
-                }
-                let detectorid =  this.tableRadio.UserInfo.Id;
+      let param = {
+        token: localStorage.token,
+        userId: that.form.userId,
+        expTime: nonTfmtDate(that.form.expTime, 16),
+      };
+      let postdata = qs.stringify(param);
+      VipUserExpEdit(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // 关闭弹窗
+          that.dialogVisible = false;
+          // 重载列表
+          that.getTableQuery();
+          that.$message({
+            showClose: true,
+            message: '赠送课时调整成功!',
+            type: 'success'
+          });
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 确认提交会员课程
+    confirmLessonTable() {
+      let that = this;
+      // checkNum
+      let classList = that.form.dialogValue ? that.form.dialogValue.toString() : '';
 
-                let param = {
-                    token: localStorage.token,
-                    userId: detectorid,
-                    status: 9,//0禁用1启用9删除
-                };
-                let postdata = qs.stringify(param);
+      let param = {
+        token: localStorage.token,
+        userId: that.form.userId,
+        classList: classList,
+      };
+      let postdata = qs.stringify(param);
+      VipUserClassEdit(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          // 关闭弹窗
+          that.dialogVisible = false;
+          // 重载列表
+          that.getTableQuery();
+          that.$message({
+            showClose: true,
+            message: '会员课程调整成功!',
+            type: 'success'
+          });
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 加载课程列表选项
+    panelSelect() {
+      let that = this;
+      let param = {
+        token: localStorage.token,
+        vipType: '',
+        classType: 1,//不显示 午饭类 课程
+        start: 1,
+        expDay: 0,
+        tableMax: 9999,
+      };
+      let postdata = qs.stringify(param);
+      ClassListQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.form.dialogdata = turnClassResToOption(json.Rs);
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 新增会员
+    addMember() {
+      this.clearForm();
+      this.panelSelect();
+      this.dialogMemberVisible = true
+      this.btnType = 0;
+      this.form.btnType = 0;
+      this.dialogTitle = '新增会员'
+    },
+    // 删除
+    delList() {
+      let that = this;
+      if (this.tableRadio.length == 0) {
+        that.$message.error("请先选中一条记录");
+        return false
+      }
+      let detectorid = this.tableRadio.UserInfo.Id;
 
-                this.$confirm('此操作将永久删除该会员, 是否继续?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    VipUserStatusEdit(postdata).then(res => {
-                        let json = res;
-                        if (json.Code == 0) {
-                            that.$message({
-                                showClose: true,
-                                message: '选中的会员已删除!',
-                                type: 'success'
-                            });
-                            // 重载列表
-                            that.getTableQuery();
-                        } else {
-                            that.$message.error(json.Memo);
-                        }
-                    });
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消删除'
-                    });
-                });
-            },
-            handleSelectionChange(val) {
-                this.multipleSelection = val;
-            },
-            // 查询按钮
-            query() {
-                this.getTableQuery();
-                this.$message.success('查询完毕');
-            },
-            clearForm() {
-                // clear
-                this.form.name = '';
-                this.form.phone = '';
-                this.form.memo = '';
-                this.form.normalhour = 0;
-                this.form.gifthour = 0;
-                this.form.userCode = '';
-                this.form.shopId = '';
-                this.form.classlist = [];
-            },
-            // 页面数据查询
-            getTableQuery() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                    vipType: that.panel.vipType,//
-                    phone: that.panel.phone,//
-                    name: that.panel.name,//
-                    expDay: that.panel.expDay,//
-                    start: 1,//
-                    tableMax: 9999,//
-                };
-                let postdata = qs.stringify(param);
-                VipUserListQuery(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.loading = false;
-                        if (json.Rs) {
-                            that.allTableData = json.Rs;
-                            that.recordsTotal = json.Rs.length;
-                        } else {
-                            that.allTableData = [];
-                            that.recordsTotal = 0;
-                        }
+      let param = {
+        token: localStorage.token,
+        userId: detectorid,
+        status: 9,//0禁用1启用9删除
+      };
+      let postdata = qs.stringify(param);
 
-                        // 设置分页数据
-                        that.setPaginations();
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            // 设置分页数据
-            setPaginations() {
-                // 分页属性
-                let that = this;
-                that.pageination.total = that.recordsTotal;
+      this.$confirm('此操作将永久删除该会员, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        VipUserStatusEdit(postdata).then(res => {
+          let json = res;
+          if (json.Code == 0) {
+            that.$message({
+              showClose: true,
+              message: '选中的会员已删除!',
+              type: 'success'
+            });
+            // 重载列表
+            that.getTableQuery();
+          } else {
+            that.$message.error(json.Memo);
+          }
+        });
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    // 查询按钮
+    query() {
+      this.getTableQuery();
+      this.$message.success('查询完毕');
+    },
+    clearForm() {
+      // clear
+      this.form.name = '';
+      this.form.phone = '';
+      this.form.memo = '';
+      this.form.normalhour = 0;
+      this.form.gifthour = 0;
+      this.form.userCode = '';
+      this.form.shopId = '';
+      this.form.classlist = [];
+    },
+    // 页面数据查询
+    getTableQuery() {
+      let that = this;
+      that.loading = true;
+      let param = {
+        token: localStorage.token,
+        vipType: that.panel.vipType,//
+        phone: that.panel.phone,//
+        name: that.panel.name,//
+        expDay: that.panel.expDay,//
+        start: 1,//
+        tableMax: 9999,//
+      };
+      let postdata = qs.stringify(param);
+      VipUserListQuery(postdata).then(res => {
+        let json = res;
+        if (json.Code == 0) {
+          that.loading = false;
+          if (json.Rs) {
+            that.allTableData = json.Rs;
+            that.recordsTotal = json.Rs.length;
+          } else {
+            that.allTableData = [];
+            that.recordsTotal = 0;
+          }
 
-                // 默认分页
-                that.tableData = that.allTableData.filter((item, index) => {
-                    return index < that.pageination.pageItem;
-                });
-            },
-            // 每页显示数量
-            handleSizeChange() {
-                let that = this;
-                that.tableData = that.allTableData.filter((item, index) => {
-                    return index < that.pageination.pageItem;
-                });
-                that.draw = that.pageination.pageItem;
-                that.getTableQuery();
-            },
-            // 翻页
-            pageChange(pageIndex) {
-                let that = this;
-                // 获取当前页
-                let index = that.pageination.pageItem * (pageIndex - 1);
-                // 数据总数
-                let nums = that.pageination.pageItem * pageIndex;
-                // 容器
-                let tables = [];
-                for (var i = index; i < nums; i++) {
-                    if (that.allTableData[i]) {
-                        tables.push(that.allTableData[i])
-                    }
-                    this.tableData = tables;
-                }
-                that.start = index * that.draw;
-                that.getTableQuery();
-            },
-            // 过滤时间
-            filterFmtDate(value, row, column) {
-                let that = this;
-                if (column == "0001-01-01T08:05:43+08:05") {
-                    return '无有效期';
-                } else {
-                    return nonTfmtDate(column, 11);
-                }
-            },
-        },
-        watch: {
-            $route(to) {
-                if (to.name == 'Member') {
-                    // 加载课程选项
-                    this.panelSelect();
-                    // 读取列表
-                    this.getTableQuery();
-                }
-            },
-        },
-    }
+          // 设置分页数据
+          that.setPaginations();
+        } else {
+          that.$message.error(json.Memo);
+        }
+      })
+    },
+    // 设置分页数据
+    setPaginations() {
+      // 分页属性
+      let that = this;
+      that.pageination.total = that.recordsTotal;
+
+      // 默认分页
+      that.tableData = that.allTableData.filter((item, index) => {
+        return index < that.pageination.pageItem;
+      });
+    },
+    // 每页显示数量
+    handleSizeChange() {
+      let that = this;
+      that.tableData = that.allTableData.filter((item, index) => {
+        return index < that.pageination.pageItem;
+      });
+      that.draw = that.pageination.pageItem;
+      that.getTableQuery();
+    },
+    // 翻页
+    pageChange(pageIndex) {
+      let that = this;
+      // 获取当前页
+      let index = that.pageination.pageItem * (pageIndex - 1);
+      // 数据总数
+      let nums = that.pageination.pageItem * pageIndex;
+      // 容器
+      let tables = [];
+      for (var i = index; i < nums; i++) {
+        if (that.allTableData[i]) {
+          tables.push(that.allTableData[i])
+        }
+        this.tableData = tables;
+      }
+      that.start = index * that.draw;
+      that.getTableQuery();
+    },
+    // 过滤时间
+    filterFmtDate(value, row, column) {
+      let that = this;
+      if (column == "0001-01-01T08:05:43+08:05") {
+        return '无有效期';
+      } else {
+        return nonTfmtDate(column, 11);
+      }
+    },
+  },
+  watch: {
+    $route(to) {
+      if (to.name == 'Member') {
+        // 加载课程选项
+        this.panelSelect();
+        // 读取列表
+        this.getTableQuery();
+      }
+    },
+  },
+}
 </script>
 
 <style scoped>
-    @import "../assets/css/panel.css";
+@import "../assets/css/panel.css";
 
-    .context {
-        border-radius: 12px;
-        height: 770px;
-        overflow-y: scroll;
-        display: block;
-        margin: 0 auto;
-        background-color: #fff !important;
-        padding: 30px;
-        padding-bottom: 30px;
-    }
+.context {
+  border-radius: 12px;
+  height: 770px;
+  overflow-y: scroll;
+  display: block;
+  margin: 0 auto;
+  background-color: #fff !important;
+  padding: 30px;
+  padding-bottom: 30px;
+}
 
-    .panel-body {
-        padding: 20px;
-        background: #F0F2F5;
-    }
+.panel-body {
+  padding: 20px;
+  background: #F0F2F5;
+}
 
-    .change {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 10px;
-        padding-bottom: 10px;
-    }
+.change {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
 
-    .change button {
-        float: left;
-    }
+.change button {
+  float: left;
+}
 
-    .change button.pull-right {
-        float: right;
-    }
+.change button.pull-right {
+  float: right;
+}
 
-    .dialogTitle {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        color: #000000;
-        font-size: 18px;
-        text-align: center;
-    }
+.dialogTitle {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  color: #000000;
+  font-size: 18px;
+  text-align: center;
+}
 
-    .dialogTitle em {
-        float: none;
-        font-style: normal;
-        color: #3799FF;
-        margin: 0;
-    }
+.dialogTitle em {
+  float: none;
+  font-style: normal;
+  color: #3799FF;
+  margin: 0;
+}
 
-    /deep/ .el-transfer-panel__item .el-checkbox__input {
-        left: 40px;
-    }
+/deep/ .el-transfer-panel__item .el-checkbox__input {
+  left: 40px;
+}
 
-    .dialogFooter {
-        width: 90%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 10px;
-    }
+.dialogFooter {
+  width: 90%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+  margin-top: 10px;
+}
 
-    .dialogFooter button {
-        float: right;
-        margin-left: 10px;
-    }
+.dialogFooter button {
+  float: right;
+  margin-left: 10px;
+}
 
-    .dialogContent {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-    }
+.dialogContent {
+  width: 100%;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+}
 
-    .dialogContent .pull-left {
-        width: 30%;
-        float: left;
-    }
+.dialogContent .pull-left {
+  width: 30%;
+  float: left;
+}
 
-    .dialogContent .pull-right {
-        width: 70%;
-        float: right;
-    }
+.dialogContent .pull-right {
+  width: 70%;
+  float: right;
+}
 
-    .tabwild {
-        width: 100% !important;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-    }
+.tabwild {
+  width: 100% !important;
+  overflow: hidden;
+  display: block;
+  margin: 0 auto;
+}
 
-    .lessonSpan {
-        width: 78px;
-        height: 22px;
-        border-radius: 11px;
-        margin-right: 5px;
-        float: left;
-        margin-bottom: 3px;
-        text-align: center;
-        color: #000;
-        font-size: 12px;
-    }
+.lessonSpan {
+  width: 78px;
+  height: 22px;
+  border-radius: 11px;
+  margin-right: 5px;
+  float: left;
+  margin-bottom: 3px;
+  text-align: center;
+  color: #000;
+  font-size: 12px;
+}
 
-    .btn {
-        float: left !important;
-        margin-right: 5px;
-    }
+.btn {
+  float: left !important;
+  margin-right: 5px;
+}
+
+/deep/ table .el-button + .el-button {
+  margin-left: 0;
+  margin-right: 3px;
+  /*float: left;*/
+  padding: 7px 6px;
+}
 </style>

+ 0 - 2
pc/src/views/finish.vue

@@ -78,8 +78,6 @@
     import {
         ClassPreFinishListQuery,
         ClassOverPrepare,
-        testTable,
-        testSelect
     } from "../api/getApiRes";
 
     let qs = require('qs');