Selaa lähdekoodia

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

Changpeng Duan 5 vuotta sitten
vanhempi
commit
a3731e8f19

+ 11 - 0
app/src/api/getApiRes.js

@@ -129,10 +129,21 @@ export function VipUserSelfQuery(postdata) {
     return getApiBasic(url,postdata);
 }
 
+// 某日课程表查询
+export function SchoolTimeQueryByDate(postdata) {
+    let url = headapi + 'v1/Weixin/SchoolTimeQueryByDate';
+    return getApiBasic(url,postdata);
+}
+
 // 通过session查询用户自身信息
 export function ManagerSelfQuery(postdata) {
     let url = headapi + 'v1/User/ManagerSelfQuery';
     return getApiBasic(url,postdata);
 }
 
+// 课程表预览
+export function SchoolTimetablePreview(postdata) {
+    let url = headapi + 'v1/SchoolTimeTable/SchoolTimetablePreview';
+    return getApiBasic(url, postdata);
+}
 

+ 15 - 1
app/src/page/appoint.vue

@@ -49,6 +49,9 @@
                     </p>
                 </div>
             </ul>
+            <mu-avatar color="rgb(231, 82, 150)" @click.native="goPage('lesson')">
+                <mu-icon value="reorder"></mu-icon>
+            </mu-avatar>
         </div>
         <bottomTab :curTab="thisTab"></bottomTab>
         <div class="doalog">
@@ -100,6 +103,11 @@
             this.getFurtherDays();
         },
         methods: {
+            goPage(url) {
+                this.$router.push({path: '/' + url, query: {
+                        shopId: this.$route.query.shopId
+                    }});
+            },
             // 获取未来7天的
             getFurtherDays() {
                 let now = new Date();
@@ -230,7 +238,6 @@
                                 that.num = that.num + item.remain
                             })
                         }
-                        console.log(that.num);
                     } else {
                         that.Toast(json.Memo + ',错误码:' + json.Code);
                     }
@@ -543,6 +550,13 @@
         font-size: 14px;
     }
 
+    /deep/ .mu-avatar {
+        position: fixed;
+        bottom: 10%;
+        float: right;
+        right: 10%;
+    }
+
     @media only screen and (max-width: 640px) {
 
     }

+ 508 - 0
app/src/page/lesson.vue

@@ -0,0 +1,508 @@
+<template>
+    <div class="pages">
+        <img src="../static/images/main/banner.png" height="121" width="414"/>
+        <h5 class="lessonName">
+            {{lessonName}}
+        </h5>
+        <mu-tabs :value.sync="active" color="#F2F2F2" indicator-color="#33CAF7">
+            <mu-tab v-for="(day,i) in weeks">{{day.name}} <br> <em>{{day.data}}</em></mu-tab>
+        </mu-tabs>
+
+        <bottomTab :curTab="thisTab"></bottomTab>
+        <div class="context">
+            <ul class="list">
+                <li  v-for="(l,index) in previewDate" :style="{background:l.ClassColor}">
+                    <em>
+                        {{l.BeginStr}} - {{l.EndStr}}
+                    </em>
+                    <span>
+                         {{l.ClassName}}
+                    </span>
+                </li>
+            </ul>
+        </div>
+
+    </div>
+</template>
+
+<script>
+    import axios from 'axios';
+    import bottomTab from '../components/bottomTab'
+    import {
+        SchoolTimeQueryByDate,
+    } from '../api/getApiRes.js'
+
+    let qs = require('qs');
+    import Global from '../Global.js'
+
+    export default {
+        data() {
+            return {
+                lessonName: '本周课程表',
+                num: 0,
+                thisTab: '预约课程',
+                active: 0,
+                sum: 0,
+                openAlert: false,
+                list: [],
+                previewDate: [],
+                weeks: [],
+                dialog: {
+                    id: '',
+                    name: '',
+                    timeLong: '',
+                },
+            }
+        },
+        mounted() {
+            this.getFurtherDays();
+        },
+        methods: {
+            // 获取未来7天的
+            getFurtherDays() {
+                let now = new Date();
+                let nowTime = now.getTime();
+                let oneDayTime = 24 * 60 * 60 * 1000;
+                let days = '';
+                let item = [];
+                let month = 0;
+                let day = 0;
+                for (let i = 0; i < 7; i++) {
+                    days = new Date(nowTime + (i) * oneDayTime);//显示周日
+                    month = days.getMonth() + 1;
+                    day = days.getDate();
+                    month = month < 10 ? '0' + month : month;
+                    day = day < 10 ? '0' + day : day;
+                    item = {
+                        name: this.numberToWeek(days.getDay()),
+                        data: days.getMonth() + 1 + '月' + days.getDate() + '日',
+                        orderDate: new Date().getFullYear() + '-' + month + '-' + day
+                    }
+                    this.weeks.push(item);
+                }
+                this.getList();
+            },
+            numberToWeek(val) {
+                switch (parseInt(val)) {
+                    case 1:
+                        return '星期一'
+                        break;
+                    case 2:
+                        return '星期二'
+                        break;
+                    case 3:
+                        return '星期三'
+                        break;
+                    case 4:
+                        return '星期四'
+                        break;
+                    case 5:
+                        return '星期五'
+                        break;
+                    case 6:
+                        return '星期六'
+                        break;
+                    case 0:
+                        return '星期天'
+                        break;
+                }
+            },
+            getList(){
+                let that = this;
+                let param = {
+                    token: localStorage.token,
+                    shopId : this.$route.query.shopId,
+                    queryDate : that.weeks[that.active].orderDate,//(字符串 年-月-日  格式)
+                };
+                let postdata = qs.stringify(param);
+                SchoolTimeQueryByDate(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // that.BigTitle = row.Name;
+                        // that.smallTitle = row.BeginDate + '至' + row.EndDate;
+                        that.previewDate = json.Rs;
+                        // 前台排序
+                        that.previewDate.sort((a,b)=>a.ClassIndex-b.ClassIndex);//升序
+                        that.previewShow = true;
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+        },
+        beforeRouteEnter(to, from, next) {
+            next(vm => {
+                //因为当钩子执行前,组件实例还没被创建
+                // vm 就是当前组件的实例相当于上面的 this,所以在 next 方法里你就可以把 vm 当 this 来用了。
+                if (to.name == 'appoint') {
+                    vm.getList();
+                }
+            });
+        },
+        watch: {
+            'active'() {
+                this.getList();
+            }
+        },
+        components: {
+            bottomTab
+        }
+    }
+</script>
+
+
+<style scoped>
+    .pages {
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+    .lessonName {
+        width: 100%;
+        height: 40px;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        text-align: center;
+        font-size: 18px;
+    }
+    /*mu-header*/
+    .mu-primary-color {
+        line-height: 60px;
+        height: 60px;
+        background: url("../static/images/comm/headerBg.png") top center no-repeat;
+        background-size: 100%;
+    }
+
+    /deep/ .mu-appbar-left {
+        padding-top: 15px;
+    }
+
+    /deep/ .material-icons {
+        color: #fff;
+    }
+
+    /deep/ .mu-appbar-title {
+        text-align: center;
+    }
+
+    /deep/ .mu-tabs {
+        display: flex;
+        overflow-x: scroll;
+        float: left;
+    }
+
+    /deep/ .mu-tab {
+        width: 85px;
+        min-width: 85px;
+        float: left;
+        height: 51px;
+        margin-right: 6px;
+    }
+
+    /*/deep/ .mu-tab:nth-child(5) {*/
+    /*    margin-right: 0px;*/
+    /*}*/
+
+    /deep/ .mu-tab-wrapper {
+        height: 51px;
+        background: #fff;
+        color: #363636;
+        box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.16);
+        border-radius: 8px 8px 0px 0px;
+        font-size: 14px;
+    }
+
+    /deep/ .mu-tab-active .mu-tab-wrapper {
+        height: 56px;
+        border-radius: 8px 8px 0px 0px;
+        background: #33caf7;
+        box-shadow: 1px 0px 6px rgba(0, 0, 0, 0.16);
+        color: #fff;
+    }
+
+    /deep/ .mu-tab-wrapper em {
+        font-size: 12px;
+    }
+
+    .sum {
+        width: 100%;
+        height: 55px;
+        line-height: 55px;
+        background: #fff;
+        font-family: "PingFang SC";
+        font-weight: 300;
+        font-size: 16px;
+        text-align: center;
+        color: #909090;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+
+    .green {
+        color: #37CB00;
+    }
+
+    .red {
+        color: #F8847F;
+    }
+
+    .list {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        margin-top: 8px;
+        padding-bottom: 30px;
+        border-top: 5px solid #fff;
+    }
+
+    .list li {
+        width: 100%;
+        height: 50px;
+        margin: 0;
+        border-bottom: 1px solid #fff;
+        list-style: none;
+        line-height: 50px;
+        /*padding-top: 16px;*/
+        /*padding-bottom: 16px;*/
+    }
+    li em {
+        width: 50%;
+        float: left;
+        padding-left: 10%;
+        /*height: 40px;*/
+        /*line-height: 40px;*/
+        overflow: hidden;
+        border-right: 1px solid #fff;
+        color: #333;
+    }
+    li span {
+        width: 45%;
+        float: right;
+        padding-left: 3px;
+        /*height: 40px;*/
+        /*line-height: 40px;*/
+        overflow: hidden;
+        text-align: center;
+        color: #333;
+    }
+    .list .dotContainer {
+        width: 50px;
+        float: left;
+        height: 60px;
+        padding-left: 22px;
+        padding-top: 10px;
+    }
+
+    .dotContainer .dot {
+        width: 12px;
+        height: 12px;
+        background: #37cb00;
+        border-radius: 250px;
+        float: left;
+    }
+
+    .cubes {
+        width: 12px;
+        height: 12px;
+        background: #f8847f;
+        float: left;
+    }
+
+    .tri {
+        width: 12px;
+        height: 12px;
+        background: url("../static/images/appoint/tri.png") top center no-repeat;
+        background-size: 100% 100%;
+        float: left;
+    }
+
+    .x {
+        width: 12px;
+        height: 12px;
+        background: url("../static/images/appoint/x.png") top center no-repeat;
+        background-size: 100% 100%;
+        float: left;
+    }
+
+
+    .yellowLi {
+        background: #FFFBED;
+    }
+
+    .redLi {
+        background: #FFF7F7;
+    }
+
+    .greenLi {
+        background: #F7FFF4;
+    }
+
+    .whiteLi {
+        background: #fff;
+    }
+
+    .list li .title {
+        width: 90px;
+        height: 60px;
+        float: left;
+    }
+
+    li .title h5 {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        font-weight: normal;
+        font-size: 14px;
+        text-align: left;
+        color: #3b3b3b;
+    }
+
+    li .title span {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        font-weight: normal;
+        font-size: 12px;
+        text-align: left;
+        color: #909090;
+    }
+
+    .list li .current {
+        width: 120px;
+        height: 60px;
+        float: left;
+    }
+
+    li .current h5 {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+        font-family: "PingFang SC";
+        font-weight: normal;
+        font-size: 14px;
+        text-align: left;
+        color: #3b3b3b;
+    }
+
+    .current h5 em {
+        font-family: "PingFang SC";
+        font-weight: normal;
+        font-size: 14px;
+        text-align: left;
+    }
+
+    .current span {
+        font-family: "PingFang SC";
+        font-weight: normal;
+        font-size: 12px;
+        text-align: left;
+        color: #909090;
+    }
+
+    .appointBtn {
+        width: 79px;
+        height: 37px;
+        border-radius: 18.5px;
+        background: #fff;
+        float: right;
+        font-family: "PingFang SC";
+        font-weight: normal;
+        font-size: 18px;
+        margin-right: 2%;
+    }
+
+    .greenBtn {
+        border: 1px solid #37cb00;
+        color: #37cb00;
+    }
+
+    .redBtn {
+        border: 1px solid #F8847F;
+        color: #F8847F;
+    }
+
+    .yellowBtn {
+        border: 1px solid #FFB43C;
+        color: #fff;
+        background: #FFB43C;
+    }
+
+    .disableBtn {
+        border: 1px solid #C9C9C9;
+        color: #C9C9C9;
+    }
+
+    /deep/ .mu-tabs-center {
+        display: flex;
+        overflow-x: auto;
+        overflow-y: hidden;
+        white-space: nowrap;
+    }
+
+    /deep/ .mu-tabs-center::-webkit-scrollbar {
+        display: none;
+    }
+
+    /deep/ .mu-modal-inner {
+        width: 90%;
+        float: left;
+    }
+
+    /deep/ .mu-tab-link-highlight {
+        display: none !important;
+    }
+
+    li .title span.lessons {
+        width: auto;
+        padding: 1px 11px;
+        border-radius: 250px;
+        float: left;
+        text-align: center;
+        color: #000;
+        font-size: 14px;
+    }
+    /deep/ .mu-avatar {
+        position: fixed;
+        bottom: 10%;
+        float: right;
+        right: 10%;
+    }
+
+
+    @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 .dotContainer {
+            width: 20px;
+            padding-left: 5px;
+        }
+
+        .list li .title {
+            width: 85px;
+        }
+    }
+
+    @media only screen and (min-width: 641px) {
+
+    }
+</style>

+ 1 - 1
app/src/page/login.vue

@@ -19,7 +19,7 @@
                     <img id="imgValidcode" :src="valImgSrc" :title="InvisibilityGiveitatry" @click="getValImgSrc">
                 </div>
                 <div class="rowHeight">
-                    <input type="password" class="login-control login_pwd" placeholder="输入验证码" v-model="login.userpwd"
+                    <input type="number" class="login-control login_pwd" placeholder="输入验证码" v-model="login.userpwd"
                            @keyup.enter="pwdLoginBtn">
                     <mu-button id="getValidSms" :disabled="getValidSmsState" color="success" @click="getValidSmsBtn">
                         {{btnText}}

+ 2 - 2
app/src/page/mainpage.vue

@@ -5,7 +5,7 @@
             俱乐部场馆共 1 处
         </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 && l.ShopID == currShopId">
                 <img src="../static/images/main/771.png" height="133" width="130"/>
                 <div class="rt">
                     <h5>{{l.ShopName}}</h5>
@@ -113,7 +113,7 @@
                 } else {
                     this.$router.push({
                         path: '/appoint', query: {
-                            shopId: row.id
+                            shopId: row.ShopID
                         }
                     });
                 }

+ 8 - 0
app/src/router/index.js

@@ -54,6 +54,14 @@ const routes = [
                     index: 1
                 },
                 component: () => import( '../page/mine.vue')
+            },{
+                path: '/lesson',
+                name: 'lesson',
+                meta: {
+                    title: '课程表',
+                    index: 1
+                },
+                component: () => import( '../page/lesson.vue')
             },
         ]
     },

+ 1 - 1
app2/src/pages/login.vue

@@ -18,7 +18,7 @@
                  title="看不清?刷一下试试!" @click="changeValImg"/>
           </li>
           <li class="form-group item">
-            <input type="password" class="form-control" id="userValid" placeholder="请输入验证码"
+            <input type="text" class="form-control" id="userValid" placeholder="请输入验证码"
                    ref="sms_valid"
                    @keyup.13="smsLoginBtn"
                    style="border: 1px solid rgb(221, 221, 221);">

+ 11 - 10
pc/src/Global.js

@@ -265,38 +265,39 @@ turnResToOption = function (data) {
 }
 
 turnResToOptionByViper = function (data) {
-    if (!data) return false
+    if (!data) return false;
     let ids = data.map(item => {
         return {
             label: item.Name + ' ' + item.Phone,
             key: parseInt(item.Id),
             value: parseInt(item.Id),
         }
-    })
+    });
     return ids
-}
+};
 turnResToOptionBySimViper = function (data) {
-    if (!data) return false
+    if (!data) return false;
     let ids = data.map(item => {
         return {
             label: item.Name + ' ' + item.Usercode,
             key: parseInt(item.Id),
             value: parseInt(item.Id),
+            RemainHour: parseInt(item.RemainHour),
         }
-    })
+    });
     return ids
-}
+};
 turnResToOptionByCoach = function (data) {
-    if (!data) return false
+    if (!data) return false;
     let ids = data.map(item => {
         return {
             label: item.Name + ' ' + item.Phone,
             key: parseInt(item.TeacherId),
             value: parseInt(item.TeacherId),
         }
-    })
+    });
     return ids
-}
+};
 turnResToOptionByUsers = function (data) {
     if (!data) return false
     let ids = data.map(item => {
@@ -371,4 +372,4 @@ numberToWeekdays = function (val) {
             return '星期天'
             break;
     }
-}
+}

+ 77 - 2
pc/src/api/Navs.js

@@ -1,4 +1,5 @@
-let navs = [{
+let navs = [
+{
     "clmid": "1",
     "clmcode": "index",
     "clmname": "系统首页",
@@ -133,7 +134,81 @@ let navs = [{
     "show": 2,
     "grouplist": "2,5",
     "icon": "el-icon-setting",
-}
+},
+    {
+        "clmid": "1",
+        "clmcode": "index",
+        "clmname": "系统首页",
+        "clmurl": "/",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-house",
+    }, {
+        "clmid": "2",
+        "clmcode": "member",
+        "clmname": "会员管理",
+        "clmurl": "/member",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-user",
+    }, {
+        "clmid": "5",
+        "clmcode": "lessonManage",
+        "clmname": "课程表管理",
+        "clmurl": "/lessonManage",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-date",
+    }, {
+        "clmid": "7",
+        "clmcode": "appoint",
+        "clmname": "预约管理",
+        "clmurl": "/appoint",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-time",
+    }, {
+        "clmid": "8",
+        "clmcode": "record",
+        "clmname": "预约记录",
+        "clmurl": "/record",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-document-copy",
+    }, {
+        "clmid": "9",
+        "clmcode": "cost",
+        "clmname": "消费记录",
+        "clmurl": "/cost",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-bank-card",
+    }, {
+        "clmid": "10",
+        "clmcode": "finish",
+        "clmname": "下课管理",
+        "clmurl": "/finish",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-bell",
+    },
+    {
+        "clmid": "15",
+        "clmcode": "setting",
+        "clmname": "系统设置",
+        "clmurl": "/adminSetting",
+        "prname": "",
+        "show": 4,
+        "grouplist": "2,5",
+        "icon": "el-icon-setting",
+    },
 ];
 
 export default navs;

+ 8 - 1
pc/src/assets/css/panel.css

@@ -325,4 +325,11 @@
 .el-tabs__item.is-active {
     color: #fff;
     background: #409EFF;
-}
+}
+/*隐藏调色盘*/
+.el-color-dropdown__main-wrapper {
+    display: none!important;
+}
+/deep/ .el-color-dropdown__main-wrapper {
+    display: none!important;
+}

+ 1 - 1
pc/src/components/Headside.vue

@@ -87,7 +87,7 @@
                     if (json.Code == 0) {
                         that.user.name = json.Rs.Name;
                         localStorage.shopId = json.Rs.ShopId;
-                        localStorage.userLevel = json.Rs.Role.State;
+                        localStorage.userLevel = json.Rs.Role.Id;
                     } else {
                         if(json.Code == 1010){
                             that.$message.error(json.Memo);

+ 1 - 1
pc/src/components/Navside.vue

@@ -87,7 +87,7 @@
                                 that.userLevel = 3;
                                 break;
                             case 4:
-                                that.userLevel = 3;
+                                that.userLevel = 4;
                                 break;
                         }
                         localStorage.shopId = json.Rs.ShopId;

+ 1 - 1
pc/src/main.js

@@ -10,7 +10,7 @@ import axios from 'axios'
 
 Vue.config.productionTip = false;
 import VCharts from 'v-charts'
-Vue.use(VCharts)
+Vue.use(VCharts);
 Vue.use(ElementUI);
 
 // 演示版本数据

+ 5 - 1
pc/src/store/index.js

@@ -1,12 +1,16 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
 
-Vue.use(Vuex)
+Vue.use(Vuex);
 
 export default new Vuex.Store({
   state: {
+      userLevel:0
   },
   mutations: {
+      setUserLevel(userLevel) {
+          console.log(userLevel);
+      }
   },
   actions: {
   },

+ 42 - 11
pc/src/views/Lesson.vue

@@ -16,14 +16,14 @@
                     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">
-    <template slot-scope="scope">
-        <el-radio  v-model="tableRadio" :label="scope.row"><i></i></el-radio>
-    </template>
-</el-table-column>
+                    <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="序号"
@@ -94,7 +94,7 @@
                         width="110"
                 >
                     <template slot-scope="scope">
-                        <el-color-picker v-model="scope.row.ClassSelf.ClassColor"
+                        <el-color-picker :predefine="predefineColors"  v-model="scope.row.ClassSelf.ClassColor"
                                          @change="changeColor(scope.row.ClassSelf.ClassColor,scope.row.ClassSelf)"></el-color-picker>
                     </template>
                 </el-table-column>
@@ -179,7 +179,7 @@
                             </el-switch>
                         </el-form-item>
                         <el-form-item label="课程颜色">
-                            <el-color-picker v-model="form.ClassColor"></el-color-picker>
+                            <el-color-picker :predefine="predefineColors"  v-model="form.ClassColor" ></el-color-picker>
                         </el-form-item>
                         <el-form-item label="备注">
                             <el-input v-model="form.Memo"></el-input>
@@ -310,6 +310,28 @@
                 },
                 tableData: [],
                 tableRadio: [],
+                predefineColors: [
+                    '#8ABFF7',
+                    '#73C1BC',
+                    '#ADE5C7',
+                    '#CBECF0',
+                    '#DCEDC8',
+                    '#EBF2DB',
+                    '#C9D1FD',
+                    '#C6ACF4',
+                    '#E2B5FA',
+                    '#E1BEE7',
+                    '#FFA5D9',
+                    '#F89A9A',
+                    '#F2B1AC',
+                    '#F8BBD0',
+                    '#FFCDD2',
+                    '#FCC66C',
+                    '#D6B9A7',
+                    '#D9D9C4',
+                    '#FCECBE',
+                    '#E9E9E9',
+                ]
             }
         },
         mounted() {
@@ -317,7 +339,7 @@
             this.getTableQuery();
         },
         methods: {
-            clickChange (item) {
+            clickChange(item) {
                 this.tableRadio = item
             },
 
@@ -492,7 +514,7 @@
             // 删除
             delList() {
                 let that = this;
-                if(this.tableRadio.length == 0){
+                if (this.tableRadio.length == 0) {
                     this.$message.error("请先选中一条记录");
                     return false
                 }
@@ -579,7 +601,7 @@
             // 增删会员课程
             lessonStudenChange() {
                 this.panelSelect();
-                if(this.tableRadio.length == 0){
+                if (this.tableRadio.length == 0) {
                     this.$message.error("请先选中一条记录");
                     return false
                 }
@@ -824,7 +846,16 @@
     /deep/ .el-transfer-panel__item .el-checkbox__input {
         left: 15px;
     }
+
     /deep/ .el-dialog .el-input__inner {
         min-width: 180px;
     }
+
+    /*隐藏调色盘*/
+     .el-color-dropdown__main-wrapper {
+        display: none!important;
+    }
+    /deep/ .el-color-dropdown__main-wrapper {
+        display: none!important;
+    }
 </style>

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

@@ -592,7 +592,7 @@
         background-color: #3799FF;
         border-top-left-radius: 7px;
         border-top-right-radius: 7px;
-        color: #fff;
+        color: #000;
     }
 
     .finish li .context {

+ 15 - 14
pc/src/views/Member.vue

@@ -43,12 +43,12 @@
             </div>
         </div>
         <div class="change">
-            <el-button @click="addMember">新增会员</el-button>
-            <el-button @click="delList">删除会员</el-button>
-            <el-button @click="lessonChange">课时调整</el-button>
-            <el-button @click="giftChange">赠送课时调整</el-button>
-            <el-button @click="ExpTimeChange">有效期调整</el-button>
-            <el-button @click="lessonStudenChange">增删会员可预约课程</el-button>
+            <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">
@@ -114,22 +114,22 @@
                 >
                 </el-table-column>
                 <el-table-column
-                        prop="UserInfo.ConsumeNormalhour"
-                        label="累计课时"
+                        prop="UserInfo.RemainGifthour"
+                        label="剩余赠送"
                         width="110"
                         sortable
                 >
                 </el-table-column>
                 <el-table-column
-                        prop="UserInfo.RemainGifthour"
-                        label="赠送"
+                        prop="UserInfo.ConsumeNormalhour"
+                        label="消费课时"
                         width="110"
                         sortable
                 >
                 </el-table-column>
                 <el-table-column
                         prop="UserInfo.ConsumeGifthour"
-                        label="累计赠送"
+                        label="消费赠送"
                         width="110"
                         sortable
                 >
@@ -247,7 +247,7 @@
                     <span v-if="dialogLesson">当前课时 {{form.normalhour}}</span>
                     <span v-if="dialogGift">赠送课时 {{form.gifthour}}</span>
                     <span v-if="dialogExpTime">当前到期时间</span>
-                    <span v-if="dialogLessonTable">当前会员课程</span>
+                    <span v-if="dialogLessonTable">增删会员可预约课程</span>
                 </h5>
             </div>
             <div v-if="dialogLesson">
@@ -364,7 +364,8 @@
                 },
                 memberTypes: vipOptions(1),
                 tableData: [],
-                tableRadio: []
+                tableRadio: [],
+                userLevel:localStorage.userLevel
             }
         },
         mounted() {
@@ -1057,7 +1058,7 @@
         float: left;
         margin-bottom: 3px;
         text-align: center;
-        color: #545454;
+        color: #000;
         font-size: 12px;
     }
 

+ 28 - 10
pc/src/views/appoint.vue

@@ -145,7 +145,7 @@
                         ></el-pagination>
                     </div>
                 </el-tab-pane>
-                <el-tab-pane label="课程预览总览" name="first">
+                <el-tab-pane label="课程预约列表" name="first">
                     <div class="table">
                         <el-table
                                 :data="tableData"
@@ -265,7 +265,8 @@
                         </el-form-item>
                         <!--     课程联动查询userlist by classid-->
                         <el-form-item label="会员" :required="true">
-                            <el-select v-model="form.userId" filterable placeholder="请选择">
+                            <el-select v-model="form.userId" filterable placeholder="请选择"
+                                       @change="reMainSelect(form.userId)" >
                                 <el-option
                                         v-for="item in form.userList"
                                         :key="item.value"
@@ -274,6 +275,10 @@
                                 </el-option>
                             </el-select>
                         </el-form-item>
+                        <el-form-item label="会员剩余课时">
+                            <el-input v-model="form.remain" placeholder="placeholder" :disabled="true"
+                                      style="width: 220px"></el-input>
+                        </el-form-item>
                     </el-form>
                 </div>
             </div>
@@ -392,6 +397,7 @@
                     dialogValue: [],//穿梭已选
                     userList: [],//穿梭已选
                     stdList: [],//穿梭已选
+                    remain: 0,
                 },
                 memberTypes: [
                     {value: 1, label: '年教练'},
@@ -497,6 +503,15 @@
                     }
                 })
             },
+            reMainSelect(userId){
+                 let that = this;
+                this.form.userList.filter((v)=>{
+                        if(v.key == userId){
+                            that.form.remain = v.RemainHour;
+                        }
+                })
+
+            },
             ClassSelect() {
                 let that = this;
                 let param = {
@@ -1295,25 +1310,25 @@
             numberToWeek(val) {
                 switch (parseInt(val)) {
                     case 1:
-                        return '星期一'
+                        return '星期一';
                         break;
                     case 2:
-                        return '星期二'
+                        return '星期二';
                         break;
                     case 3:
-                        return '星期三'
+                        return '星期三';
                         break;
                     case 4:
-                        return '星期四'
+                        return '星期四';
                         break;
                     case 5:
-                        return '星期五'
+                        return '星期五';
                         break;
                     case 6:
-                        return '星期六'
+                        return '星期六';
                         break;
                     case 0:
-                        return '星期天'
+                        return '星期天';
                         break;
                 }
             }
@@ -1322,8 +1337,10 @@
             $route(to) {
                 if (to.name == 'appoint') {
                     if (this.$route.query.page == 'second') {
-                        this.activeName = 'second'
+                        this.activeName = 'second';
                         this.panel.name = this.$route.query.name;
+                        // second
+                        this.getTableQuery2();
                     }
                 }
 
@@ -1532,6 +1549,7 @@
         padding: 1px 7px;
         border-radius: 250px;
         float: left;
+        color: #000;
     }
 
     /deep/ .el-progress__text {

+ 1 - 0
pc/src/views/cost.vue

@@ -1084,5 +1084,6 @@
         padding: 1px 7px;
         border-radius: 250px;
         float: left;
+        color: #000;
     }
 </style>

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

@@ -2,7 +2,7 @@
     <div class="context">
         <div class="panel">
             <h5>下课管理
-                <span class="current">{{current}}</span>
+                <!--<span class="current">{{current}}</span>-->
             </h5>
         </div>
         <div class="table">
@@ -397,7 +397,7 @@
         float: left;
         margin-bottom: 3px;
         text-align: center;
-        color: #545454;
+        color: #000;
         font-size: 12px;
     }
 </style>

+ 1 - 0
pc/src/views/finishDetail.vue

@@ -789,5 +789,6 @@
         padding: 1px 7px;
         border-radius: 250px;
         float: left;
+        color: #000;
     }
 </style>

+ 7 - 5
pc/src/views/lessonManage.vue

@@ -4,9 +4,9 @@
             <h5>课程表管理</h5>
         </div>
         <div class="change">
-            <el-button type="primary" @click="addLessonTable">新增课程表</el-button>
-            <el-button type="" @click="copy">复制</el-button>
-            <el-button type="" @click="delList">删除</el-button>
+            <el-button type="primary" @click="addLessonTable" v-if="userLevel != 4">新增课程表</el-button>
+            <el-button type="" @click="copy" v-if="userLevel != 4">复制</el-button>
+            <el-button type="" @click="delList" v-if="userLevel != 4">删除</el-button>
             <el-button type="" @click="query">刷新</el-button>
         </div>
         <div class="table">
@@ -70,6 +70,7 @@
                 <el-table-column
                         prop="Online"
                         label="是否上线"
+                        v-if="userLevel != 4"
                 >
                     <!--                    上线状态	0:不上线 1:下线-->
                     <template slot-scope="scope">
@@ -89,9 +90,9 @@
                         label="操作"
                 >
                     <template slot-scope="scope">
-                        <el-button type="text" v-if="scope.row.Diffweek >= 0" @click="editName(scope.row)">编辑名称
+                        <el-button type="text" v-if="scope.row.Diffweek >= 0 && userLevel != 4" @click="editName(scope.row)">编辑名称
                         </el-button>
-                        <el-button type="text" v-if="scope.row.Diffweek >= 0" @click="goEdit(scope.row)">修改课程
+                        <el-button type="text" v-if="scope.row.Diffweek >= 0  && userLevel != 4" @click="goEdit(scope.row)">修改课程
                         </el-button>
                         <el-button type="text" @click="seeWeek(scope.row)">预览本周</el-button>
                     </template>
@@ -244,6 +245,7 @@
                 },
                 tableData: [],
                 tableRadio: [],
+                userLevel:localStorage.userLevel
             }
         },
         mounted() {

+ 5 - 4
pc/src/views/record.vue

@@ -122,10 +122,10 @@
                         sortable
                 >
                     <template slot-scope="scope">
-                        <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>
+                        <span v-if="scope.row.Status == 1" style="color:yellowgreen;">已预约</span>
+                        <span v-if="scope.row.Status == 2" style="color: #ccc">已取消</span>
+                        <span v-if="scope.row.Status == 3" style="color: red">预约未到</span>
+                        <span v-if="scope.row.Status == 4" style="color:#000;">已完成</span>
                     </template>
                 </el-table-column>
             </el-table>
@@ -482,5 +482,6 @@
         padding: 1px 7px;
         border-radius: 250px;
         float: left;
+        color: #000;
     }
 </style>