Ver Fonte

针对ipad的适配

Changpeng Duan há 4 anos atrás
pai
commit
7c2023972a

+ 2 - 1
.vscode/settings.json

@@ -1,4 +1,5 @@
 {
     "editor.fontSize": 16,
-    "files.autoSave": "onFocusChange"
+    "files.autoSave": "onFocusChange",
+    "volar.tsPluginStatus": false
 }

+ 11 - 2
pc/src/assets/css/panel.css

@@ -411,11 +411,20 @@ table .el-radio {
     }
     .panel .panel_control em {
         font-size: 12px;
-        width: 60px;
+        width: 55px;
+        margin-right: 3px;
+        text-align: right;
+    }
+    .panel /deep/ .el-input {
+        width: 110px;
+    }
+
+    .panel /deep/ .el-select {
+        width: 110px;
     }
 
     .panel /deep/ .el-input__inner {
-        /*width: 130px;*/
+        width: 110px;
     }
 
     .panel /deep/ .el-date-editor--daterange {

+ 60 - 8
pc/src/components/Headside.vue

@@ -1,8 +1,10 @@
 <template>
     <div id="headside">
         <nav class="navbar user-info-navbar" role="navigation">
-            <!--            <i :class="[{'el-icon-s-unfold left_hide_icon':left_panel_state},{'el-icon-s-fold left_show_icon':!left_panel_state}] "-->
-            <!--               @click="left_hide"></i>-->
+            <i
+                :class="[{ 'el-icon-s-unfold left_hide_icon': left_panel_state }, { 'el-icon-s-fold left_show_icon': !left_panel_state }]"
+                @click="left_hide"
+            ></i>
             <span class="title">
                 场馆管理系统
                 <em>{{ current }}</em>
@@ -18,6 +20,10 @@
             <ul class="user-info-menu right-links list-inline list-unstyled">
                 <li class="dropdown user-profile">
                     <!--                        <img class="lteHead" src="../assets/img/header/lteHead.png" height="26" width="26"/>-->
+                    <span class="el-dropdown-link customer_serve shopinfo">
+                        <span>{{ ShopName }}</span>
+                        <span>{{ userLevelText }}</span>
+                    </span>
                     <span class="el-dropdown-link customer_serve">{{ user.name }}</span>
                     <span @click="logoutClick">退出</span>
                 </li>
@@ -29,7 +35,7 @@
 
 import axios from 'axios';
 import Global from '../Global.js'
-import { SignOut, ManagerSelfQuery } from '../api/getApiRes.js'
+import { SignOut, ManagerSelfQuery, ShopListQuery } from '../api/getApiRes.js'
 let qs = require('qs');
 export default {
     data() {
@@ -43,7 +49,9 @@ export default {
             qq: '0000079000',
             newnum: '',
             newnumState: false,
-            left_panel_state: false,
+            left_panel_state: true,
+            ShopName: '',
+            userLevelText: '',
             current: globalcurrentWeek()
         }
     },
@@ -86,6 +94,26 @@ export default {
                     localStorage.userLevel = json.Rs.Role.Id;
                     localStorage.ServiceId = json.Rs.Shop.ServiceId;
                     localStorage.ServiceKey = json.Rs.Shop.ServiceKey;
+
+                    that.userLevelText = json.Rs.Role.Name;
+                    // 1 会员 2 系统 3 店铺 4 教练
+                    switch (parseInt(json.Rs.Role.Id)) {
+                        case 1:
+                            that.userLevel = 1;
+                            break;
+                        case 2:
+                            that.userLevel = 2;
+                            break;
+                        case 3:
+                            that.userLevel = 3;
+                            break;
+                        case 4:
+                            that.userLevel = 4;
+                            break;
+                    }
+                    localStorage.shopId = json.Rs.ShopId;
+                    this.panelSelect(json.Rs.ShopId);
+
                 } else {
                     if (json.Code == 1010) {
                         that.$message.error(json.Memo + ' 错误码:' + json.Code);
@@ -97,6 +125,26 @@ export default {
                 }
             })
         },
+        // 获取所属店铺
+        panelSelect(ShopId) {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            ShopListQuery(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    json.Rs.map(function(item) {
+                        if (item.ShopID == ShopId) {
+                            that.ShopName = item.ShopName;
+                        }
+                    })
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
         //            打开消息提示
         checkNews: function() {
             let that = this;
@@ -541,7 +589,7 @@ footer.main-footer {
 .left_hide_icon {
     width: 20px;
     height: 20px;
-    margin-top: 25px;
+    margin-top: 8px;
     float: left;
     margin-left: 15px;
     cursor: pointer;
@@ -558,7 +606,7 @@ footer.main-footer {
 .left_show_icon {
     width: 20px;
     height: 20px;
-    margin-top: 25px;
+    margin-top: 8px;
     float: left;
     margin-left: 15px;
     cursor: pointer;
@@ -611,6 +659,9 @@ footer.main-footer {
     font-size: 14px;
     line-height: 72px;
 }
+.shopinfo span {
+    padding-left: 10px;
+}
 
 @media (min-width: 960px) and (max-width: 1024px) {
     #headside {
@@ -621,9 +672,10 @@ footer.main-footer {
         height: 40px;
     }
     .title {
-    line-height: 40px;}
+        line-height: 40px;
+    }
     .user-profile span {
-     line-height: 40px;
+        line-height: 40px;
     }
 }
 </style>

+ 14 - 13
pc/src/components/Navside.vue

@@ -5,8 +5,8 @@
         </div>
         <div class="userContainer">
             <img src="../assets/img/nav/head.png" height="51" width="51" />
-            <span>{{ ShopName }}</span>
-            <em>{{ userLevelText }}</em>
+            <!-- <span>{{ ShopName }}</span>
+            <em>{{ userLevelText }}</em>-->
         </div>
         <el-row :class="[{ 'shortnav': isCollapse }, { 'longNav': !isCollapse }]">
             <el-col :span="24">
@@ -16,6 +16,7 @@
                     @open="handleOpen"
                     @close="handleClose"
                     @select="handleSelect"
+                    :collapse="isCollapse"
                     background-color="#ffffff"
                     text-color="#777777"
                     active-text-color="#fff"
@@ -320,10 +321,10 @@ export default {
 }
 
 /deep/ .el-menu-item i {
-    position: relative;
+    position: inherit;
     float: left;
-    line-height: 55px;
-    left: 60px;
+    line-height: 25px;
+    left: 0px;
 }
 
 /*ipad only*/
@@ -389,14 +390,6 @@ export default {
         height: 30px;
         line-height: 30px;
     }
-    .el-menu-item i {
-        /*left: 20px;*/
-        /*padding: 0;*/
-        /*margin: 0;*/
-        /*float: left;*/
-        /*line-height: 20px;*/
-        display: none;
-    }
     .userContainer em {
         width: 100%;
         overflow: hidden;
@@ -422,5 +415,13 @@ export default {
         height: 30px;
         line-height: 30px;
     }
+    .userContainer img {
+        display: none;
+    }
+    /deep/ .el-tooltip i {
+        float: left;
+        left: 10px;
+        line-height: 30px;
+    }
 }
 </style>

+ 697 - 689
pc/src/views/EditLessonManage.vue

@@ -7,26 +7,38 @@
             <div class="panel_control">
                 <el-row :gutter="20">
                     <el-col :span="5">
-                        <em><span style="color: red">*</span> 课程表名称:</em>
-                        <el-input v-model="panel.name" placeholder="请输入课程表名称" :disabled="panel.inputState"></el-input>
+                        <em>
+                            <span style="color: red">*</span> 课程表名称:
+                        </em>
+                        <el-input
+                            v-model="panel.name"
+                            placeholder="请输入课程表名称"
+                            :disabled="panel.inputState"
+                        ></el-input>
                     </el-col>
                     <el-col :span="5" v-if="!panel.inputState">
-                        <em><span style="color: red">*</span> 课程表时间:</em>
+                        <em>
+                            <span style="color: red">*</span> 课程表时间:
+                        </em>
                         <el-date-picker
-                                v-model="panel.week"
-                                type="week"
-                                :picker-options="{'firstDayOfWeek': 1}"
-                                format="yyyy 第 WW 周"
-                                placeholder="选择周">
-                        </el-date-picker>
+                            v-model="panel.week"
+                            type="week"
+                            :picker-options="{ 'firstDayOfWeek': 1 }"
+                            format="yyyy 第 WW 周"
+                            placeholder="选择周"
+                        ></el-date-picker>
                     </el-col>
                     <!--        todo-->
                     <!--        <el-button class="seeTemp">预览课程表</el-button>-->
-                    <el-button type="default" class="seeTemp" @click="$router.push('/lessonManage')">返回课程表</el-button>
+                    <el-button
+                        type="default"
+                        class="seeTemp"
+                        @click="$router.push('/lessonManage')"
+                    >返回课程表</el-button>
                 </el-row>
             </div>
         </div>
-        <br>
+        <br />
         <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
             <el-tab-pane label="星期一" name="1"></el-tab-pane>
             <el-tab-pane label="星期二" name="2"></el-tab-pane>
@@ -37,143 +49,131 @@
             <el-tab-pane label="星期天" name="7"></el-tab-pane>
         </el-tabs>
 
-
         <!--        todo 读取后台保存状态,新保存后不跳走-->
         <div class="table">
             <el-table
-                    v-for="tab in tabs"
-                    :data="tab.tableData"
-                    v-if="tab.days == activeName"
-                    border
-                    is-horizontal-resize
-                    :default-sort="{prop: 'date', order: 'descending'}"
-                    element-loading-background="rgba(0, 0, 0, 0.8)"
-                    class=""
-                    @selection-change="handleSelectionChange"
+                v-for="tab in tabs"
+                :data="tab.tableData"
+                v-if="tab.days == activeName"
+                border
+                is-horizontal-resize
+                :default-sort="{ prop: 'date', order: 'descending' }"
+                element-loading-background="rgba(0, 0, 0, 0.8)"
+                class
+                @selection-change="handleSelectionChange"
             >
                 >
-                <el-table-column
-                        prop="timeScope"
-                        label="时间"
-                        width="260px"
-                        align="center"
-                >
+                <el-table-column prop="timeScope" label="时间" width="230px" align="center">
                     <template slot-scope="scope">
                         <el-time-picker
-                                is-range
-                                v-model="scope.row.timeLong"
-                                range-separator="至"
-                                start-placeholder="开始时间"
-                                end-placeholder="结束时间"
-                                placeholder="选择时间范围"
-                                :readonly="scope.row.Locking == 1"
-                        >
-                        </el-time-picker>
+                            is-range
+                            v-model="scope.row.timeLong"
+                            range-separator="至"
+                            start-placeholder="开始时间"
+                            end-placeholder="结束时间"
+                            placeholder="选择时间范围"
+                            :readonly="scope.row.Locking == 1"
+                        ></el-time-picker>
                     </template>
                 </el-table-column>
-                <el-table-column
-                        prop="ClassId"
-                        label="课程"
-                        align="center"
-                >
+                <el-table-column prop="ClassId" label="课程" align="center">
                     <!--                    locking是1的不可编辑课程和时间-->
                     <template slot-scope="scope">
-                        <el-select v-model="scope.row.ClassId" @change="getRowTop(scope.row)"
-                                   :disabled="scope.row.Locking == 1">
+                        <el-select
+                            v-model="scope.row.ClassId"
+                            @change="getRowTop(scope.row)"
+                            :disabled="scope.row.Locking == 1"
+                        >
                             <el-option
-                                    v-for="item in panel.options"
-                                    :key="item.value"
-                                    :label="item.label"
-                                    :value="item.value">
-                            </el-option>
+                                v-for="item in panel.options"
+                                :key="item.value"
+                                :label="item.label"
+                                :value="item.value"
+                            ></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
-                <el-table-column
-                        prop="OrderToplimit"
-                        label="预约名额"
-                        align="center"
-                >
+                <el-table-column prop="OrderToplimit" label="预约名额" align="center">
                     <template slot-scope="scope">
-                        <el-input-number v-model="scope.row.OrderToplimit" :min="1" :max="9999"
-                                         label=""></el-input-number>
+                        <el-input-number
+                            v-model="scope.row.OrderToplimit"
+                            :min="1"
+                            :max="9999"
+                            label
+                        ></el-input-number>
                     </template>
                 </el-table-column>
-                <el-table-column
-                        prop="ConsumeHour"
-                        label="消耗课时"
-                        align="center"
-                >
+                <el-table-column prop="ConsumeHour" label="消耗课时" align="center">
                     <template slot-scope="scope">
-                        <el-input-number v-model="scope.row.ConsumeHour" :min="0" :max="9999"
-                                         label=""></el-input-number>
+                        <el-input-number v-model="scope.row.ConsumeHour" :min="0" :max="9999" label></el-input-number>
                     </template>
                 </el-table-column>
-                <el-table-column
-                        prop="WxVisible"
-                        label="微信可见"
-                >
+                <el-table-column prop="WxVisible" label="微信可见" width="80px">
                     <template slot-scope="scope">
                         <el-switch
-                                v-model="scope.row.WxVisible"
-                                :active-value="1"
-                                :inactive-value="0"
-                                active-color="#409EFF"
-                                inactive-color="#D9D9D9"
-                                @change=changeWechat($event,scope.row)
-                        >
-                        </el-switch>
+                            v-model="scope.row.WxVisible"
+                            :active-value="1"
+                            :inactive-value="0"
+                            active-color="#409EFF"
+                            inactive-color="#D9D9D9"
+                            @change="changeWechat($event, scope.row)"
+                        ></el-switch>
                     </template>
                 </el-table-column>
-                <el-table-column
-                        prop="WxOrder"
-                        label="微信可预约"
-                >
+                <el-table-column prop="WxOrder" label="微信预约" width="80px">
                     <template slot-scope="scope">
                         <el-switch
-                                v-model="scope.row.WxOrder"
-                                :active-value="1"
-                                :inactive-value="0"
-                                active-color="#409EFF"
-                                inactive-color="#D9D9D9"
-                                @change=changeWechatOrder($event,scope.row.ClassSelf)
-                        >
-                        </el-switch>
+                            v-model="scope.row.WxOrder"
+                            :active-value="1"
+                            :inactive-value="0"
+                            active-color="#409EFF"
+                            inactive-color="#D9D9D9"
+                            @change="changeWechatOrder($event, scope.row.ClassSelf)"
+                        ></el-switch>
                     </template>
                 </el-table-column>
-                <el-table-column
-                        prop="Status"
-                        label="操作"
-                        width="100px"
-                        align="center"
-                >
+                <el-table-column prop="Status" label="操作" width="70px" align="center">
                     <template slot-scope="scope">
-                        <el-button type="text" class="red" @click="delRow(scope)" v-if="scope.row.Locking != 1">删除
-                        </el-button>
-                        <el-button type="text" class="gary" @click="delRow(scope)" v-if="scope.row.Locking == 1">删除
-                        </el-button>
+                        <el-button
+                            type="text"
+                            class="red"
+                            @click="delRow(scope)"
+                            v-if="scope.row.Locking != 1"
+                        >删除</el-button>
+                        <el-button
+                            type="text"
+                            class="gary"
+                            @click="delRow(scope)"
+                            v-if="scope.row.Locking == 1"
+                        >删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
             <div class="rowBottom">
                 <el-button type="default" @click="$router.push('/lessonManage')">返回课程表</el-button>
                 <!--                ID为0是新建,不为0是修改-->
-                <el-button type="primary" class="pull-right" @click="confirmLessonTable"
-                           v-if="this.$route.query.id == 0" :disabled="serachBtnStatus">提交
-                </el-button>
-                <el-button type="primary" class="pull-right" @click="confirmEditLessonTable"
-                           v-if="this.$route.query.id != 0" :disabled="serachBtnStatus">提交
-                </el-button>
+                <el-button
+                    type="primary"
+                    class="pull-right"
+                    @click="confirmLessonTable"
+                    v-if="this.$route.query.id == 0"
+                    :disabled="serachBtnStatus"
+                >提交</el-button>
+                <el-button
+                    type="primary"
+                    class="pull-right"
+                    @click="confirmEditLessonTable"
+                    v-if="this.$route.query.id != 0"
+                    :disabled="serachBtnStatus"
+                >提交</el-button>
                 <el-button type="primary" class="pull-right" @click="addRow">新增课表</el-button>
             </div>
             <div>
-                <br>
-                <em class="red wrning">
-                    *所有操作提交后生效
-                </em>
+                <br />
+                <em class="red wrning">*所有操作提交后生效</em>
             </div>
         </div>
-        <br>
+        <br />
         <el-dialog title="增删课程会员" :visible.sync="dialogVisible">
             <div class="dialogTitle">
                 <span>基础功能</span>
@@ -190,619 +190,627 @@
 </template>
 
 <script>
-    import Global from '../Global.js'
-    import {
-        SttPlanBasicAdd,
-        SttPlanDetailListQuery,
-        SttPlanDetailBatchSave,
-        STTBasicAdd,
-        SttPlanBasicEdit,
-        STTDetailListQuery,
-        STTDetailBatchSave,
-        STTBasicEdit,
-        testTable,
-        testTableLong,
-        testSelect,
-        ClassListQuery,
-        STTDetailAllowDelCheck,
-        ClassDetailOne
-    } from "../api/getApiRes";
-
-    let qs = require('qs');
-    export default {
-        data() {
-            return {
-                pageTitle: '新增课程表',
-                dialogVisible: false,
-                dialogdata: [],
-                dialogValue: [],
-                temId: '',
-                activeName: '1',
+import Global from '../Global.js'
+import {
+    SttPlanBasicAdd,
+    SttPlanDetailListQuery,
+    SttPlanDetailBatchSave,
+    STTBasicAdd,
+    SttPlanBasicEdit,
+    STTDetailListQuery,
+    STTDetailBatchSave,
+    STTBasicEdit,
+    testTable,
+    testTableLong,
+    testSelect,
+    ClassListQuery,
+    STTDetailAllowDelCheck,
+    ClassDetailOne
+} from "../api/getApiRes";
+
+let qs = require('qs');
+export default {
+    data() {
+        return {
+            pageTitle: '新增课程表',
+            dialogVisible: false,
+            dialogdata: [],
+            dialogValue: [],
+            temId: '',
+            activeName: '1',
+            tableData: [],
+            // panel 配置项目
+            panel: {
+                inputState: false,
+                name: '',
+                usercode: '',
+                username: '',
+                compname: '',
+                keyword: '',
+                USERCODE: '',
+                week: '',
+                taskstatus: 99,
+                draw: 1,
+                start: 0,
+                recordsTotal: 0,
                 tableData: [],
-                // panel 配置项目
-                panel: {
-                    inputState: false,
-                    name: '',
-                    usercode: '',
-                    username: '',
-                    compname: '',
-                    keyword: '',
-                    USERCODE: '',
-                    week: '',
-                    taskstatus: 99,
-                    draw: 1,
-                    start: 0,
-                    recordsTotal: 0,
-                    tableData: [],
-                    allTableData: [],
-                    limit: '10',
-                    multipleSort: false,
-                    loading: false,
-                    fileList: [],
-                    multipleSelection: [],
-                    detectedmac: '',
-                    options: [],
-                    time1: globalBt(),
-                },
+                allTableData: [],
+                limit: '10',
+                multipleSort: false,
+                loading: false,
+                fileList: [],
                 multipleSelection: [],
-                pageination: {
-                    pageItem: 100,
-                    pageoptions: pageOptions(),
-                    total: 100,
-                    pageIndex: 1,
+                detectedmac: '',
+                options: [],
+                time1: globalBt(),
+            },
+            multipleSelection: [],
+            pageination: {
+                pageItem: 100,
+                pageoptions: pageOptions(),
+                total: 100,
+                pageIndex: 1,
+            },
+            testRow: {
+                timeLong: [new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 23, 59)],
+                BeginStr: '08:30',
+                EndStr: '23:59',
+                ClassId: '',
+                OrderToplimit: 1,
+                ConsumeHour: 1,
+                WxOrder: 1,
+                WxVisible: 0,
+            },
+            tabs: [
+                {
+                    tableData: [], days: '1'
                 },
-                testRow: {
-                    timeLong: [new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 23, 59)],
-                    BeginStr: '08:30',
-                    EndStr: '23:59',
-                    ClassId: '',
-                    OrderToplimit: 1,
-                    ConsumeHour: 1,
-                    WxOrder: 1,
-                    WxVisible: 0,
+                {
+                    tableData: [], days: '2'
                 },
-                tabs: [
-                    {
-                        tableData: [], days: '1'
-                    },
-                    {
-                        tableData: [], days: '2'
-                    },
-                    {
-                        tableData: [], days: '3'
-                    },
-                    {
-                        tableData: [], days: '4'
-                    },
-                    {
-                        tableData: [], days: '5'
-                    },
-                    {
-                        tableData: [], days: '6'
-                    },
-                    {
-                        tableData: [], days: '7'
-                    },
-                ],
-                serachBtnStatus: false,
-            }
+                {
+                    tableData: [], days: '3'
+                },
+                {
+                    tableData: [], days: '4'
+                },
+                {
+                    tableData: [], days: '5'
+                },
+                {
+                    tableData: [], days: '6'
+                },
+                {
+                    tableData: [], days: '7'
+                },
+            ],
+            serachBtnStatus: false,
+        }
+    },
+    mounted() {
+        // 加载课程选项
+        this.panelSelect();
+        if (parseInt(this.$route.query.id) == 0) {
+            //  深拷贝赋初始值
+            this.pageTitle = '新增课程表'
+            this.deepValue();
+            this.panel.name = '';
+            this.panel.week = '';
+            this.panel.inputState = false
+        } else {
+            // 读取赋值
+            this.pageTitle = '编辑课程表'
+            this.getTableQuery();
+            this.panel.inputState = true
+        }
+    },
+    methods: {
+        // 加载选项
+        panelSelect() {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+                vipType: '',
+                start: 1,
+                expDay: 0,
+                tableMax: 9999,
+            };
+            let postdata = qs.stringify(param);
+            ClassListQuery(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    // that.dialogdata = json.Rs;
+                    if (json.Rs == null) return false
+                    that.panel.options = turnClassResToOption(json.Rs)
+                    console.log(that.panel.options);
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        // 选择课程后,获取当前课程的建议上课人数和课时消耗
+        getRowTop(row) {
+            let that = this;
+            console.log(row);
+            let param = {
+                token: localStorage.token,
+                classId: row.ClassId,
+            };
+            let postdata = qs.stringify(param);
+            ClassDetailOne(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    row.OrderToplimit = json.Rs.TopLimit;
+                    row.ConsumeHour = json.Rs.ConsumeHour;
+                    // row.WxOrder = json.Rs.WxOrder; //不支持联动
+                    row.WxVisible = json.Rs.WxVisible;
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        confirmEditLessonTable() {
+            let id = this.$route.query.id
+            // 提交课程内容,不再修改课程名称和时间的信息
+            this.EditLessonTable(id);
         },
-        mounted() {
-            // 加载课程选项
-            this.panelSelect();
-            if (parseInt(this.$route.query.id) == 0) {
-                //  深拷贝赋初始值
-                this.pageTitle = '新增课程表'
-                this.deepValue();
-                this.panel.name = '';
-                this.panel.week = '';
-                this.panel.inputState = false
+        // 删除
+        delRow(scope) {
+            if (!scope.row.StdId) {
+                let delIndex = parseInt(scope.$index)
+                let curIndex = parseInt(this.activeName) - 1;
+                this.tabs[curIndex].tableData.splice(delIndex, 1)
             } else {
-                // 读取赋值
-                this.pageTitle = '编辑课程表'
-                this.getTableQuery();
-                this.panel.inputState = true
+                this.checkCannotDel(scope)
             }
         },
-        methods: {
-            // 加载选项
-            panelSelect() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    vipType: '',
-                    start: 1,
-                    expDay: 0,
-                    tableMax: 9999,
-                };
-                let postdata = qs.stringify(param);
-                ClassListQuery(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        // that.dialogdata = json.Rs;
-                        if (json.Rs == null) return false
-                        that.panel.options = turnClassResToOption(json.Rs)
-                        console.log(that.panel.options);
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            // 选择课程后,获取当前课程的建议上课人数和课时消耗
-            getRowTop(row) {
-                let that = this;
-                console.log(row);
-                let param = {
-                    token: localStorage.token,
-                    classId: row.ClassId,
-                };
-                let postdata = qs.stringify(param);
-                ClassDetailOne(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        row.OrderToplimit = json.Rs.TopLimit;
-                        row.ConsumeHour = json.Rs.ConsumeHour;
-                        // row.WxOrder = json.Rs.WxOrder; //不支持联动
-                        row.WxVisible = json.Rs.WxVisible;
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            confirmEditLessonTable() {
-                let id = this.$route.query.id
-                // 提交课程内容,不再修改课程名称和时间的信息
-                this.EditLessonTable(id);
-            },
-            // 删除
-            delRow(scope) {
-                if (!scope.row.StdId) {
+        // 检测课表中课程可否删除
+        checkCannotDel(scope) {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+                stdId: scope.row.StdId,
+            };
+            let postdata = qs.stringify(param);
+            STTDetailAllowDelCheck(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
                     let delIndex = parseInt(scope.$index)
                     let curIndex = parseInt(this.activeName) - 1;
                     this.tabs[curIndex].tableData.splice(delIndex, 1)
                 } else {
-                    this.checkCannotDel(scope)
-                }
-            },
-            // 检测课表中课程可否删除
-            checkCannotDel(scope) {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    stdId: scope.row.StdId,
-                };
-                let postdata = qs.stringify(param);
-                STTDetailAllowDelCheck(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        let delIndex = parseInt(scope.$index)
-                        let curIndex = parseInt(this.activeName) - 1;
-                        this.tabs[curIndex].tableData.splice(delIndex, 1)
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            // 提交课程
-            confirmLessonTable() {
-                if (!this.panel.name) {
-                    this.$message.error('名称不能为空');
-                    return false
-                }
-                if (this.panel.name.length < 3) {
-                    this.$message.error('名称不能小于3个字符');
-                    return false
-                }
-                if (this.panel.name.length > 20) {
-                    this.$message.error('名称不能大于20个字符');
-                    return false
-                }
-                if (!this.checkData()) {
-                    return false
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
                 }
+            })
+        },
+        // 提交课程
+        confirmLessonTable() {
+            if (!this.panel.name) {
+                this.$message.error('名称不能为空');
+                return false
+            }
+            if (this.panel.name.length < 3) {
+                this.$message.error('名称不能小于3个字符');
+                return false
+            }
+            if (this.panel.name.length > 20) {
+                this.$message.error('名称不能大于20个字符');
+                return false
+            }
+            if (!this.checkData()) {
+                return false
+            }
 
-                let that = this;
+            let that = this;
 
-                that.serachBtnStatus = true;
-                let totalTime = 2
-                let clock = window.setInterval(() => {
-                    totalTime--
-                    if (totalTime < 0) {
-                        totalTime = 2;
-                        that.serachBtnStatus = false;
-                    }
-                }, 1000)
-
-
-                let param = {
-                    token: localStorage.token,
-                    name: this.panel.name,
-                    incomingDate: nonTfmtDatetoLength(this.panel.week, 10),//对应日期 字符串 年-月-日 格式,
-                };
-                let postdata = qs.stringify(param);
-                STTBasicAdd(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.panel.tabId = json.Id;
-                        // 提交课程内容
-                        that.EditLessonTable(json.Id);
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            // 保存课程
-            EditLessonTable(planId) {
-                let that = this;
-                // 校验提交的数据
-                if (!this.checkData()) {
-                    return false
+            that.serachBtnStatus = true;
+            let totalTime = 2
+            let clock = window.setInterval(() => {
+                totalTime--
+                if (totalTime < 0) {
+                    totalTime = 2;
+                    that.serachBtnStatus = false;
                 }
-                // 提交数据
-                let planRs = [];
-                let thisRow = {};
-                for (let i = 0; i < this.tabs.length; i++) {
-                    for (let j = 0; j < this.tabs[i].tableData.length; j++) {
-                        thisRow = this.tabs[i].tableData[j];
-                        thisRow.LessonIndex = parseInt(j + 1);
-                        if (planId) {
-                            thisRow.StbId = parseInt(planId);
-                        } else {
-                            thisRow.StbId = parseInt(this.$route.query.id);
-                        }
-                        thisRow.WeekDay = parseInt(i + 1);
-                        thisRow.BeginStr = getHoursAndMin(thisRow.timeLong[0]);
-                        thisRow.EndStr = getHoursAndMin(thisRow.timeLong[1]);
-                        thisRow.StdId = thisRow.StdId ? thisRow.StdId : 0;
-                        this.$delete(thisRow, 'Base');
-                        this.$delete(thisRow, 'SpdId');
-                        planRs.push(thisRow);
-                    }
+            }, 1000)
+
+
+            let param = {
+                token: localStorage.token,
+                name: this.panel.name,
+                incomingDate: nonTfmtDatetoLength(this.panel.week, 10),//对应日期 字符串 年-月-日 格式,
+            };
+            let postdata = qs.stringify(param);
+            STTBasicAdd(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.panel.tabId = json.Id;
+                    // 提交课程内容
+                    that.EditLessonTable(json.Id);
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
                 }
-
-                let res = JSON.stringify(planRs);
-                // 如果传入0就用url里的,如果非0就用传入的
-                // let uploadPlanId = planId == 0 ? this.$route.query.id : planId;
-                let param = {
-                    token: localStorage.token,
-                    stbId: planId,
-                    stbRs: res,
-                };
-                let postdata = qs.stringify(param);
-                STTDetailBatchSave(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.$message({
-                            showClose: true,
-                            message: '课程已上传成功!',
-                            type: 'success'
-                        });
-                        this.$router.push({
-                            path: '/lessonManage'
-                        });
-                        // 提交后清掉内存里的课表
-                        this.clearTableRAM();
-                        // this.getTableQuery();
+            })
+        },
+        // 保存课程
+        EditLessonTable(planId) {
+            let that = this;
+            // 校验提交的数据
+            if (!this.checkData()) {
+                return false
+            }
+            // 提交数据
+            let planRs = [];
+            let thisRow = {};
+            for (let i = 0; i < this.tabs.length; i++) {
+                for (let j = 0; j < this.tabs[i].tableData.length; j++) {
+                    thisRow = this.tabs[i].tableData[j];
+                    thisRow.LessonIndex = parseInt(j + 1);
+                    if (planId) {
+                        thisRow.StbId = parseInt(planId);
                     } else {
-                        this.$router.push({
-                            path: '/lessonManage'
-                        });
-                        // 提交后清掉内存里的课表
-                        this.clearTableRAM();
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                        thisRow.StbId = parseInt(this.$route.query.id);
                     }
-                })
-            },
-            clearTableRAM() {
-                this.tabs = [
-                    {
-                        tableData: [], days: '1'
-                    },
-                    {
-                        tableData: [], days: '2'
-                    },
-                    {
-                        tableData: [], days: '3'
-                    },
-                    {
-                        tableData: [], days: '4'
-                    },
-                    {
-                        tableData: [], days: '5'
-                    },
-                    {
-                        tableData: [], days: '6'
-                    },
-                    {
-                        tableData: [], days: '7'
-                    },
-                ];
+                    thisRow.WeekDay = parseInt(i + 1);
+                    thisRow.BeginStr = getHoursAndMin(thisRow.timeLong[0]);
+                    thisRow.EndStr = getHoursAndMin(thisRow.timeLong[1]);
+                    thisRow.StdId = thisRow.StdId ? thisRow.StdId : 0;
+                    this.$delete(thisRow, 'Base');
+                    this.$delete(thisRow, 'SpdId');
+                    planRs.push(thisRow);
+                }
+            }
 
-            },
-            checkData() {
-                let res = true
-                for (let i = 0; i < this.tabs.length; i++) {
-                    for (let j = 0; j < this.tabs[i].tableData.length; j++) {
-                        if (!this.tabs[i].tableData[j].ClassId) {
-                            let days = numberToWeekdays(i + 1);
-                            let lessonIndex = j + 1;
-                            this.$message.error(days + '第' + lessonIndex + '节课有课程未选择,请选择后再提交')
-                            res = false
-                            break;
-                        }
+            let res = JSON.stringify(planRs);
+            // 如果传入0就用url里的,如果非0就用传入的
+            // let uploadPlanId = planId == 0 ? this.$route.query.id : planId;
+            let param = {
+                token: localStorage.token,
+                stbId: planId,
+                stbRs: res,
+            };
+            let postdata = qs.stringify(param);
+            STTDetailBatchSave(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.$message({
+                        showClose: true,
+                        message: '课程已上传成功!',
+                        type: 'success'
+                    });
+                    this.$router.push({
+                        path: '/lessonManage'
+                    });
+                    // 提交后清掉内存里的课表
+                    this.clearTableRAM();
+                    // this.getTableQuery();
+                } else {
+                    this.$router.push({
+                        path: '/lessonManage'
+                    });
+                    // 提交后清掉内存里的课表
+                    this.clearTableRAM();
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        clearTableRAM() {
+            this.tabs = [
+                {
+                    tableData: [], days: '1'
+                },
+                {
+                    tableData: [], days: '2'
+                },
+                {
+                    tableData: [], days: '3'
+                },
+                {
+                    tableData: [], days: '4'
+                },
+                {
+                    tableData: [], days: '5'
+                },
+                {
+                    tableData: [], days: '6'
+                },
+                {
+                    tableData: [], days: '7'
+                },
+            ];
+
+        },
+        checkData() {
+            let res = true
+            for (let i = 0; i < this.tabs.length; i++) {
+                for (let j = 0; j < this.tabs[i].tableData.length; j++) {
+                    if (!this.tabs[i].tableData[j].ClassId) {
+                        let days = numberToWeekdays(i + 1);
+                        let lessonIndex = j + 1;
+                        this.$message.error(days + '第' + lessonIndex + '节课有课程未选择,请选择后再提交')
+                        res = false
+                        break;
                     }
                 }
-                return res
-            },
-            // 检查数据
-            checkData2() {
-                // todo
-                let tableDate = this.tabs;
-                tableDate.map(function (item) {
-                    console.log(item);
-                })
-            },
-            // 新增一行
-            addRow() {
-                // 读取当前周几
-                let index = parseInt(this.activeName) - 1;
-                let rows = this.testRow;
-                let res = this.deepClone(rows);
-                this.tabs[index].tableData.push(res);
-            },
-            //  深拷贝赋初始值
-            deepValue() {
-                let that = this;
-                let valus = [
-                    this.testRow
-                ];
-                this.tabs.map(function (item) {
-                    let res = that.deepClone(valus);
-                    item.tableData = res;
-                })
-            },
-            deepClone(obj) {
-                let _obj = JSON.stringify(obj),
-                    objClone = JSON.parse(_obj);
-                return objClone
-            },
-            handleClick() {
-            },
-            changeWechat(e, row) {
-                // if(parseInt(e) == 0){
-                //     this.$message.success('当前课程微信已不可见');
-                // }else{
-                //     this.$message.success('当前课程微信不可见');
-                // }
-            },
-            changeWechatOrder(e, row) {
-                // if(parseInt(e) == 0){
-                //     this.$message.success('当前课程微信已不可预约');
-                // }else{
-                //     this.$message.success('当前课程微信可预约');
-                // }
-            },
-            // 增删会员课程
-            lessonStudenChange() {
-                this.dialogVisible = true
-            },
-            handleSelectionChange(val) {
-                this.multipleSelection = val;
-            },
-            // 页面数据查询
-            getTableQuery() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                    stbId: this.$route.query.id,//
-                };
-                // 只能读取,不能修改
-                this.panel.name = this.$route.query.name;
-
-
-                let postdata = qs.stringify(param);
-                STTDetailListQuery(postdata).then(res => {
-                    let json = res;
-                    let Rs = json.Rs
-                    let bt = '';
-                    let et = '';
-                    if (json.Code == 0) {
-                        that.loading = false;
-                        // 清掉上次的记录
-                        for (let i = 0; i < that.tabs.length; i++) {
-                            that.tabs[i].tableData = []
-                        }
-                        if (Rs) {
-                            // 遍历分配
-                            Rs.map(function (item) {
-                                for (let i = 0; i < 7; i++) {
-                                    if (item.WeekDay == i + 1) {
-                                        bt = new Date(2016, 9, 10, item.BeginStr.substr(0, 2), item.BeginStr.substr(3, 2));
-                                        et = new Date(2016, 9, 10, item.EndStr.substr(0, 2), item.EndStr.substr(3, 2));
-                                        item.timeLong = [bt, et];
-                                        that.tabs[i].tableData.push(item);
-
-                                    }
+            }
+            return res
+        },
+        // 检查数据
+        checkData2() {
+            // todo
+            let tableDate = this.tabs;
+            tableDate.map(function(item) {
+                console.log(item);
+            })
+        },
+        // 新增一行
+        addRow() {
+            // 读取当前周几
+            let index = parseInt(this.activeName) - 1;
+            let rows = this.testRow;
+            let res = this.deepClone(rows);
+            this.tabs[index].tableData.push(res);
+        },
+        //  深拷贝赋初始值
+        deepValue() {
+            let that = this;
+            let valus = [
+                this.testRow
+            ];
+            this.tabs.map(function(item) {
+                let res = that.deepClone(valus);
+                item.tableData = res;
+            })
+        },
+        deepClone(obj) {
+            let _obj = JSON.stringify(obj),
+                objClone = JSON.parse(_obj);
+            return objClone
+        },
+        handleClick() {
+        },
+        changeWechat(e, row) {
+            // if(parseInt(e) == 0){
+            //     this.$message.success('当前课程微信已不可见');
+            // }else{
+            //     this.$message.success('当前课程微信不可见');
+            // }
+        },
+        changeWechatOrder(e, row) {
+            // if(parseInt(e) == 0){
+            //     this.$message.success('当前课程微信已不可预约');
+            // }else{
+            //     this.$message.success('当前课程微信可预约');
+            // }
+        },
+        // 增删会员课程
+        lessonStudenChange() {
+            this.dialogVisible = true
+        },
+        handleSelectionChange(val) {
+            this.multipleSelection = val;
+        },
+        // 页面数据查询
+        getTableQuery() {
+            let that = this;
+            that.loading = true;
+            let param = {
+                token: localStorage.token,
+                stbId: this.$route.query.id,//
+            };
+            // 只能读取,不能修改
+            this.panel.name = this.$route.query.name;
+
+
+            let postdata = qs.stringify(param);
+            STTDetailListQuery(postdata).then(res => {
+                let json = res;
+                let Rs = json.Rs
+                let bt = '';
+                let et = '';
+                if (json.Code == 0) {
+                    that.loading = false;
+                    // 清掉上次的记录
+                    for (let i = 0; i < that.tabs.length; i++) {
+                        that.tabs[i].tableData = []
+                    }
+                    if (Rs) {
+                        // 遍历分配
+                        Rs.map(function(item) {
+                            for (let i = 0; i < 7; i++) {
+                                if (item.WeekDay == i + 1) {
+                                    bt = new Date(2016, 9, 10, item.BeginStr.substr(0, 2), item.BeginStr.substr(3, 2));
+                                    et = new Date(2016, 9, 10, item.EndStr.substr(0, 2), item.EndStr.substr(3, 2));
+                                    item.timeLong = [bt, et];
+                                    that.tabs[i].tableData.push(item);
+
                                 }
-                            })
-                        } else {
-                            that.allTableData = [];
-                            that.recordsTotal = 0;
-                        }
+                            }
+                        })
                     } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                        that.allTableData = [];
+                        that.recordsTotal = 0;
                     }
-                })
-            },
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
         },
-        watch: {
-            $route(to) {
-                if (to.name == 'EditLessonManage') {
-                    this.temId = this.$route.query.id;
-                    this.panelSelect();
-                    if (parseInt(this.temId) == 0) {
-                        this.pageTitle = '新增课程表'
-                        this.deepValue();
-                        this.panel.name = '';
-                        this.panel.week = '';
-                        this.panel.inputState = false
-                    } else {
-                        this.pageTitle = '编辑课程表'
-                        this.getTableQuery();
-                        this.panel.inputState = true
-                    }
+    },
+    watch: {
+        $route(to) {
+            if (to.name == 'EditLessonManage') {
+                this.temId = this.$route.query.id;
+                this.panelSelect();
+                if (parseInt(this.temId) == 0) {
+                    this.pageTitle = '新增课程表'
+                    this.deepValue();
+                    this.panel.name = '';
+                    this.panel.week = '';
+                    this.panel.inputState = false
+                } else {
+                    this.pageTitle = '编辑课程表'
+                    this.getTableQuery();
+                    this.panel.inputState = true
                 }
-            },
+            }
         },
-    }
+    },
+}
 </script>
 
 <style scoped>
-    @import "../assets/css/panel.css";
-
-    em {
-        font-style: normal;
-    }
-
-    .context {
-        overflow: hidden;
-        height: 770px;
-
-        overflow-y: scroll;
-        display: block;
-        margin: 0 auto;
-        background-color: #fff !important;
-        min-height: 100%;
-        padding: 30px;
-        padding-bottom: 10px;
-    }
-
-    .panel-body {
-        padding: 20px;
-        background: #F0F2F5;
+@import "../assets/css/panel.css";
+
+em {
+    font-style: normal;
+}
+
+.context {
+    overflow: hidden;
+    height: 770px;
+
+    overflow-y: scroll;
+    display: block;
+    margin: 0 auto;
+    background-color: #fff !important;
+    min-height: 100%;
+    padding: 30px;
+    padding-bottom: 10px;
+}
+
+.panel-body {
+    padding: 20px;
+    background: #f0f2f5;
+}
+
+.change {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-top: 10px;
+    padding-bottom: 10px;
+}
+
+.change button {
+    float: left;
+}
+
+.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 span {
+    width: 169px;
+    height: 40px;
+    line-height: 40px;
+    text-align: center;
+    color: #fff;
+    background: #3799ff;
+    border-radius: 250px;
+    font-size: 18px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-bottom: 30px;
+}
+
+.dialogTitle em {
+    float: none;
+    font-style: normal;
+    color: #3799ff;
+    margin: 0;
+}
+
+/deep/ .el-transfer-panel__item .el-checkbox__input {
+    left: 40px;
+}
+
+.dialogFooter {
+    width: 90%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-top: 10px;
+}
+
+.dialogFooter button {
+    float: right;
+    margin-left: 10px;
+}
+
+/deep/ .panel_control .el-input {
+    width: 200px;
+    float: left;
+}
+
+.panel_control em {
+    float: left;
+    font-size: 14px;
+    color: #545454;
+    line-height: 45px;
+    margin-right: 10px;
+}
+
+.seeTemp {
+    /*position: relative;*/
+    float: right;
+    bottom: 0px;
+    z-index: 222;
+}
+
+.table {
+    position: relative;
+    /*top: -50px;*/
+    top: 0px;
+}
+
+.el-range-editor.el-input__inner {
+    width: 220px;
+    padding: 3px 6px;
+}
+
+.rowBottom {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-top: 10px;
+}
+
+.rowBottom button {
+    float: left;
+    margin-right: 10px;
+}
+
+.wrning {
+    float: right;
+    font-size: 12px;
+}
+
+.rowBottom button.pull-right {
+    float: right;
+}
+
+.gary {
+    color: #8c939d;
+}
+@media (min-width: 320px) and (max-width: 1366px) {
+    /deep/ .el-range-editor.el-input__inner {
+        width: 180px;
     }
-
-    .change {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 10px;
-        padding-bottom: 10px;
-    }
-
-    .change button {
-        float: left;
-    }
-
-    .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 span {
-        width: 169px;
-        height: 40px;
-        line-height: 40px;
-        text-align: center;
-        color: #fff;
-        background: #3799FF;
-        border-radius: 250px;
-        font-size: 18px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-bottom: 30px;
-    }
-
-    .dialogTitle em {
-        float: none;
-        font-style: normal;
-        color: #3799FF;
-        margin: 0;
-    }
-
-    /deep/ .el-transfer-panel__item .el-checkbox__input {
-        left: 40px;
-    }
-
-    .dialogFooter {
-        width: 90%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 10px;
-    }
-
-    .dialogFooter button {
-        float: right;
-        margin-left: 10px;
-    }
-
-    /deep/ .panel_control .el-input {
-        width: 200px;
-        float: left;
-    }
-
-    .panel_control em {
-        float: left;
-        font-size: 14px;
-        color: #545454;
-        line-height: 45px;
-        margin-right: 10px;
-    }
-
-    .seeTemp {
-        /*position: relative;*/
-        float: right;
-        bottom: 0px;
-        z-index: 222;
-    }
-
-    .table {
-        position: relative;
-        /*top: -50px;*/
-        top: 0px;
-    }
-
-    .el-range-editor.el-input__inner {
-        width: 220px;
-        padding: 3px 6px;
-    }
-
-    .rowBottom {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 10px;
-    }
-
-    .rowBottom button {
-        float: left;
-        margin-right: 10px;
-    }
-
-    .wrning {
-        float: right;
-        font-size: 12px;
-    }
-
-    .rowBottom button.pull-right {
-        float: right;
-    }
-
-    .gary {
-        color: #8c939d;
+    /deep/ .el-input-number {
+        width: 140px;
     }
+}
 </style>

+ 6 - 2
pc/src/views/Index.vue

@@ -140,7 +140,7 @@ export default {
     }
 
     .lognElaside {
-        width: 70px !important;
+        width: 170px !important;
     }
 
     .logoContainer img {
@@ -245,7 +245,7 @@ export default {
     }
 
     .lognElaside {
-        width: 70px !important;
+        width: 100px !important;
     }
 
     .logoContainer img {
@@ -276,7 +276,11 @@ export default {
     .el-dialog {
         max-width: 960px;
     }
+    /deep/ .el-footer {
+        display: none;
+    }
     .footer {
+        display: none;
         height: 14px;
         padding: 3px;
     }

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

@@ -4,10 +4,10 @@
             <h5>课目管理</h5>
         </div>
         <div class="change">
-            <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" :disabled="serachBtnStatus">刷新</el-button>
+            <el-button type="primary" @click="addLesson" v-if="userLevel != 4" size="mini">新增课程</el-button>
+            <el-button @click="lessonStudenChange" v-if="userLevel != 4" size="mini">增删课程会员</el-button>
+            <el-button type="danger" @click="delList" v-if="userLevel != 4" size="mini">删除</el-button>
+            <el-button type="success" @click="query" :disabled="serachBtnStatus" size="mini">刷新</el-button>
         </div>
         <div class="table">
             <el-table
@@ -120,6 +120,7 @@
                 <el-table-column
                         prop="ClassSelf.ClassId"
                         label="操作"
+                          width="120px"
                 >
                     <template slot-scope="scope">
                         <el-button type="text" @click="editLesson(scope.row.ClassSelf)" v-if="userLevel != 4">编辑

+ 4 - 3
pc/src/views/LessonTable.vue

@@ -4,9 +4,9 @@
             <h5>课程表模板</h5>
         </div>
         <div class="change">
-            <el-button type="primary" @click="addLessonTable">新增课程表模板</el-button>
-            <el-button type="" @click="copyDialog">复制</el-button>
-            <el-button type="" @click="delList">删除</el-button>
+            <el-button type="primary" @click="addLessonTable" size="mini">新增课程表模板</el-button>
+            <el-button type="" @click="copyDialog" size="mini">复制</el-button>
+            <el-button type="danger" @click="delList" size="mini">删除</el-button>
         </div>
         <div class="table">
             <el-table
@@ -82,6 +82,7 @@
                 <el-table-column
                         prop="Status"
                         label="操作"
+                        width=220px
                 >
                     <template slot-scope="scope">
                         <el-button type="text" @click="goEdit(scope.row)">编辑</el-button>

+ 972 - 938
pc/src/views/Main.vue

@@ -4,7 +4,7 @@
             <div class="top">
                 <ul>
                     <li @click="goPage('member')">
-                        <img src="../assets/img/main/member.png" height="54" width="54"/>
+                        <img src="../assets/img/main/member.png" height="54" width="54" />
                         <div class="liRight">
                             <h5>会员人数</h5>
                             <span>{{ AllCount }}</span>
@@ -21,7 +21,7 @@
                         </div>
                     </li>
                     <li @click="goPage('record')">
-                        <img src="../assets/img/main/appoint.png" height="54" width="54"/>
+                        <img src="../assets/img/main/appoint.png" height="54" width="54" />
                         <div class="liRight">
                             <h5>今日预约人数</h5>
                             <span>{{ TodayOrderNum }}</span>
@@ -38,11 +38,10 @@
                         </div>
                     </li>
                     <li @click="goPage('lesson')" v-if="userLevel != 3">
-                        <img src="../assets/img/main/lesson.png" height="54" width="54"/>
+                        <img src="../assets/img/main/lesson.png" height="54" width="54" />
                         <div class="liRight">
                             <h5>课程数量</h5>
-                            <span>{{ ClassNum }}
-                            </span>
+                            <span>{{ ClassNum }}</span>
                         </div>
                         <div class="btLine">
                             <em class="emlt">
@@ -52,11 +51,10 @@
                         </div>
                     </li>
                     <li @click="goPage('lesson')" v-if="userLevel == 3">
-                        <img src="../assets/img/main/lesson.png" height="54" width="54"/>
+                        <img src="../assets/img/main/lesson.png" height="54" width="54" />
                         <div class="liRight">
                             <h5>剩余课时</h5>
-                            <span>{{ TotalRemainNormalhour +  TotalRemainGifthour}}
-                            </span>
+                            <span>{{ TotalRemainNormalhour + TotalRemainGifthour }}</span>
                         </div>
                         <div class="btLine">
                             <em class="emlt">
@@ -79,33 +77,41 @@
                 </div>
                 <ul>
                     <li v-for="c in PreFinishList">
-                        <div class="finListTitle" :style="{ background:c.ClassColor }">
-                            <em> {{ c.ClassName }}</em>
-                            <s>{{ c.BeginTime|parseDate }}</s>
+                        <div class="finListTitle" :style="{ background: c.ClassColor }">
+                            <em>{{ c.ClassName }}</em>
+                            <s>{{ c.BeginTime | parseDate }}</s>
                         </div>
                         <div class="context">
                             <div class="ctl">
                                 <span>上课时间:{{ c.BeginStr }} - {{ c.EndStr }}</span>
                                 <span>预约人数:{{ c.OrderNum }} 人</span>
                             </div>
-                            <em>
-
-                            </em>
-                            <el-button type="primary" plain @click="goFinish(c)" v-if="c.FinishClass == 0">上课
-                            </el-button>
+                            <em></em>
+                            <el-button
+                                type="primary"
+                                plain
+                                @click="goFinish(c)"
+                                v-if="c.FinishClass == 0"
+                            >上课</el-button>
                             <!--<el-button type="danger" plain @click="goFinish(c)" v-if="c.FinishClass == 0">关课-->
                             <!--</el-button>-->
-                            <el-button type="primary" plain @click="checkClassOverPrepare(c)" v-if="c.FinishClass == 2">
-                                管理
-                            </el-button>
-                            <el-button type="primary" plain @click="goFinish(c)" v-if="c.FinishClass == 3">编辑
-                            </el-button>
+                            <el-button
+                                type="primary"
+                                plain
+                                @click="checkClassOverPrepare(c)"
+                                v-if="c.FinishClass == 2"
+                            >管理</el-button>
+                            <el-button
+                                type="primary"
+                                plain
+                                @click="goFinish(c)"
+                                v-if="c.FinishClass == 3"
+                            >编辑</el-button>
                         </div>
                     </li>
                     <span class="tips" v-if="PreFinishList == 0">
-                           <img src="../assets/img/main/empty.jpg" height="116" width="92"/>
-                        <br>
-                        暂无下课课程
+                        <img src="../assets/img/main/empty.jpg" height="116" width="92" />
+                        <br />暂无下课课程
                     </span>
                 </ul>
             </div>
@@ -116,24 +122,26 @@
                 </div>
                 <div class="appointCard">
                     <el-card class="box-card" v-for="c in classList" @click.native="goLesson">
-                        <div class="cardTitle ">
-                            {{ c.ClassName }}
-                        </div>
-                        <span>
-                           {{ c.BeginStr }}
-                        </span>
-                        <em>最大预约人数 <i>{{ c.OrderToplimit }}</i></em>
-                        <em>已预约人数 <i>{{ c.OrderNum }}</i></em>
-                        <em>预约状态
+                        <div class="cardTitle">{{ c.ClassName }}</div>
+                        <span>{{ c.BeginStr }}</span>
+                        <em>
+                            最大预约人数
+                            <i>{{ c.OrderToplimit }}</i>
+                        </em>
+                        <em>
+                            已预约人数
+                            <i>{{ c.OrderNum }}</i>
+                        </em>
+                        <em>
+                            预约状态
                             <s class="blue" v-if="c.WxOrder > 0">可预约</s>
                             <s class="red" v-if="c.WxOrder == 0">不可预约</s>
                         </em>
                     </el-card>
                     <span class="tips" v-if="classList == 0">
-                           <img src="../assets/img/main/empty.jpg" height="116" width="92"/>
-                        <br>
-                        暂无预约课程,请先添加
-                      <router-link to="/lessonManage">课程表</router-link>
+                        <img src="../assets/img/main/empty.jpg" height="116" width="92" />
+                        <br />暂无预约课程,请先添加
+                        <router-link to="/lessonManage">课程表</router-link>
                     </span>
                 </div>
             </div>
@@ -142,41 +150,60 @@
             <div class="rtContext">
                 <div class="rtTitle">
                     <h5>最新预约</h5>
-                    <span @click="goPage('appoint','second')">查看全部</span>
+                    <span @click="goPage('appoint', 'second')">查看全部</span>
                 </div>
                 <ul>
                     <!--                    TodayVipOrder-->
                     <li v-for="as in appointList" @click="goAppointDetail(as.UserName)">
                         <div class="asTitle">
                             <span>
-                                  <img :src="as.Head" alt="" v-if="as.Head" width="25px" height="25px">
-                            <img src="../assets/img/nav/head.png" alt="" v-else width="25px" height="25px">
-                                <div>
-                                       {{ as.UserName }} {{ as.Phone }}
-                                </div>
-                          </span>
+                                <img :src="as.Head" alt v-if="as.Head" width="25px" height="25px" />
+                                <img
+                                    src="../assets/img/nav/head.png"
+                                    alt
+                                    v-else
+                                    width="25px"
+                                    height="25px"
+                                />
+                                <div>{{ as.UserName }} {{ as.Phone }}</div>
+                            </span>
                             <span>
-                                 <div>预约时间:</div>{{ as.Base.CreatedAt |parseDate }}
+                                <div>预约时间:</div>
+                                {{ as.Base.CreatedAt | parseDate }}
                             </span>
                         </div>
                         <div class="asContent">
-                            <span><div>上课时间:</div><em>{{ as.CurrentDate.substr(5, 6) }} {{ as.BeginStr }}</em></span>
-                            <span><div>预约状态:</div>
+                            <span>
+                                <div>上课时间:</div>
+                                <em>{{ as.CurrentDate.substr(5, 6) }} {{ as.BeginStr }}</em>
+                            </span>
+                            <span>
+                                <div>预约状态:</div>
                                 <em v-if="as.Status == 1" class="green">已预约</em>
                                 <em v-if="as.Status == 2" class="red">已取消</em>
                                 <em v-if="as.Status == 3" class="yellow">预约未到</em>
                                 <em v-if="as.Status == 4">已完成</em>
                             </span>
-                            <span><div>预约课程:</div><s class="blue"
-                                                     :style="{ background:as.ClassColor }"> {{ as.ClassName }}</s></span>
-                            <span v-if=" as.RemainHour != ''"><div>剩余课时:</div><em :class="[{'red':as.RemainHour == 0}]">{{ as.RemainHour }}课时</em></span>
-                            <span v-else><div>用户类型:</div><em>跨店用户</em></span>
+                            <span>
+                                <div>预约课程:</div>
+                                <s
+                                    class="blue"
+                                    :style="{ background: as.ClassColor }"
+                                >{{ as.ClassName }}</s>
+                            </span>
+                            <span v-if="as.RemainHour != ''">
+                                <div>剩余课时:</div>
+                                <em :class="[{ 'red': as.RemainHour == 0 }]">{{ as.RemainHour }}课时</em>
+                            </span>
+                            <span v-else>
+                                <div>用户类型:</div>
+                                <em>跨店用户</em>
+                            </span>
                         </div>
                     </li>
                     <span class="tips middleTips" v-if="appointList == 0">
-                           <img src="../assets/img/main/empty.jpg" height="116" width="92"/>
-                        <br>
-                        暂无预约,可进入
+                        <img src="../assets/img/main/empty.jpg" height="116" width="92" />
+                        <br />暂无预约,可进入
                         <router-link to="/appoint">预约管理</router-link>
                     </span>
                 </ul>
@@ -186,994 +213,1001 @@
 </template>
 
 <script>
-    import {
-        ClassPreFinishListQuery,
-        WaitingBeginClassList,
-        ClassOngoingList,
-        OrderStatistics,
-        VipUserStatistics,
-        ClassStatistics,
-        ClassOverPrepare,
-        VipUserOrderQuery,
-        ClassHourStatistics,
-        LastOrderQuery,
-    } from "../api/getApiRes";
-
-    let qs = require('qs');
-    export default {
-        data() {
-            return {
-                editableTabsValue: '1',
-                getNowDate: getNowDate(),
-                classList: [],
-                PreFinishList: [],
-                appointList: [],
-                TodayClassOrder: [],
-                TodayVipOrder: [],
-                AllCount: 0,
-                YesterdayCount: 0,
-                YestodayOrderNum: 0,
-                NowCount: 0,
-                CountAdd: 0,
-                TodayIncreaseNum: 0,
-                TodayOrderNum: 0,
-                ClassNum: 0,
-                TodayOrderSttNum: 0,
-                TotalRemainNormalhour: 0,
-                TotalRemainGifthour: 0,
-                userLevel: localStorage.userLevel,
-            }
-        },
-        mounted() {
-            let that = this;
-            // 下课管理
+import {
+    ClassPreFinishListQuery,
+    WaitingBeginClassList,
+    ClassOngoingList,
+    OrderStatistics,
+    VipUserStatistics,
+    ClassStatistics,
+    ClassOverPrepare,
+    VipUserOrderQuery,
+    ClassHourStatistics,
+    LastOrderQuery,
+} from "../api/getApiRes";
+
+let qs = require('qs');
+export default {
+    data() {
+        return {
+            editableTabsValue: '1',
+            getNowDate: getNowDate(),
+            classList: [],
+            PreFinishList: [],
+            appointList: [],
+            TodayClassOrder: [],
+            TodayVipOrder: [],
+            AllCount: 0,
+            YesterdayCount: 0,
+            YestodayOrderNum: 0,
+            NowCount: 0,
+            CountAdd: 0,
+            TodayIncreaseNum: 0,
+            TodayOrderNum: 0,
+            ClassNum: 0,
+            TodayOrderSttNum: 0,
+            TotalRemainNormalhour: 0,
+            TotalRemainGifthour: 0,
+            userLevel: localStorage.userLevel,
+            isCollapse: document.body.clientWidth < 1366,
+        }
+    },
+    mounted() {
+        let that = this;
+        // 下课管理
+        this.getVipUserStatistics();
+        this.getClassStatistics();
+        this.ClassQuery();
+        this.getClassHourStatistics();
+        this.getVipUserOrderQuery();
+        // 预约统计
+        this.getOrderStatistics();
+        this.getWaitingBeginClassList();
+        this.timer = setInterval(() => {
+            that.getVipUserOrderQuery();
             this.getVipUserStatistics();
             this.getClassStatistics();
             this.ClassQuery();
-            this.getClassHourStatistics();
-            this.getVipUserOrderQuery();
-            // 预约统计
             this.getOrderStatistics();
             this.getWaitingBeginClassList();
-            this.timer = setInterval(() => {
-                that.getVipUserOrderQuery();
+        }, 10000);
+    },
+    watch: {
+        $route(to) {
+            if (to.name == 'Main') {
                 this.getVipUserStatistics();
                 this.getClassStatistics();
                 this.ClassQuery();
+                this.getClassHourStatistics();
+                this.getVipUserOrderQuery();
                 this.getOrderStatistics();
                 this.getWaitingBeginClassList();
-            }, 10000);
+            } else {
+                clearInterval(this.timer);//页面销毁时清除定时器
+            }
         },
-        watch: {
-            $route(to) {
-                if (to.name == 'Main') {
-                    this.getVipUserStatistics();
-                    this.getClassStatistics();
-                    this.ClassQuery();
-                    this.getClassHourStatistics();
-                    this.getVipUserOrderQuery();
-                    this.getOrderStatistics();
-                    this.getWaitingBeginClassList();
-                } else {
-                    clearInterval(this.timer);//页面销毁时清除定时器
+    },
+    destroyed() {
+        clearInterval(this.timer);//页面销毁时清除定时器
+    },
+    methods: {
+        goLesson() {
+            this.$router.push({
+                path: '/appoint',
+            })
+        },
+        goAppointDetail(name) {
+            this.$router.push({
+                path: '/appoint',
+                query: {
+                    page: 'second',
+                    name: name
                 }
-            },
+            })
         },
-        destroyed() {
-            clearInterval(this.timer);//页面销毁时清除定时器
+        goPage(url, page) {
+            this.$router.push({
+                path: '/' + url,
+                query: {
+                    page: page
+                }
+            })
         },
-        methods: {
-            goLesson() {
-                this.$router.push({
-                    path: '/appoint',
-                })
-            },
-            goAppointDetail(name) {
-                this.$router.push({
-                    path: '/appoint',
-                    query: {
-                        page: 'second',
-                        name: name
-                    }
-                })
-            },
-            goPage(url, page) {
-                this.$router.push({
-                    path: '/' + url,
-                    query: {
-                        page: page
-                    }
-                })
-            },
-            // 会员统计
-            getVipUserStatistics() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                };
-                let postdata = qs.stringify(param);
-                VipUserStatistics(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.AllCount = json.Rs.AllCount;
-                        that.YesterdayCount = json.Rs.YesterdayCount;
-                        that.NowCount = json.Rs.NowCount;
-                        that.CountAdd = json.Rs.CountAdd;
-                    } else {
-                        if (json.Code == 1010) {
-                            that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                            that.$router.push({path: '/login', query: {status: 1}});
-                            return false
-                        } else {
-                            that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                        }
-                    }
-                })
-            },
-            // 课程统计
-            getClassStatistics() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                };
-                let postdata = qs.stringify(param);
-                ClassStatistics(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.ClassNum = json.Rs.ClassNum;
-                        that.TodayOrderSttNum = json.Rs.TodayOrderSttNum;
-                    } else {
+        // 会员统计
+        getVipUserStatistics() {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            VipUserStatistics(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.AllCount = json.Rs.AllCount;
+                    that.YesterdayCount = json.Rs.YesterdayCount;
+                    that.NowCount = json.Rs.NowCount;
+                    that.CountAdd = json.Rs.CountAdd;
+                } else {
+                    if (json.Code == 1010) {
                         that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            getOrderStatistics() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                };
-                let postdata = qs.stringify(param);
-                OrderStatistics(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.loading = false;
-                        if (json.Rs) {
-                            that.TodayIncreaseNum = json.Rs.TodayIncreaseNum;
-                            that.TodayOrderNum = json.Rs.TodayOrderNum;
-                            that.YestodayOrderNum = json.Rs.YestodayOrderNum;
-                        }
+                        that.$router.push({ path: '/login', query: { status: 1 } });
+                        return false
                     } else {
                         that.$message.error(json.Memo + ' 错误码:' + json.Code);
                     }
-                })
-            },
-            checkClassOverPrepare(row) {
-                let that = this;
-                // courseEdit
-                this.$router.push({
-                    path: '/courseEdit', query: {
-                        StdId: row.StdId,
-                        ClassName: row.ClassName,
-                        BeginStr: row.BeginStr,
-                        EndStr: row.EndStr,
-                        FinishClass: row.FinishClass,
-                    }
-                });
-            },
-            goFinish(row) {
-                this.$router.push({
-                    path: '/courses', query: {
-                        // id: row.StdId,
-                        // classId: row.ClassId,
-                        // ClassName: row.ClassName,
-                        // BeginTime: row.BeginTime,
-                    }
-                });
-            },
-            getWaitingBeginClassList() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                };
-                let postdata = qs.stringify(param);
-                WaitingBeginClassList(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.loading = false;
-                        that.classList = json.Rs;
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        // 课程统计
+        getClassStatistics() {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            ClassStatistics(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.ClassNum = json.Rs.ClassNum;
+                    that.TodayOrderSttNum = json.Rs.TodayOrderSttNum;
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        getOrderStatistics() {
+            let that = this;
+            that.loading = true;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            OrderStatistics(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.loading = false;
+                    if (json.Rs) {
+                        that.TodayIncreaseNum = json.Rs.TodayIncreaseNum;
+                        that.TodayOrderNum = json.Rs.TodayOrderNum;
+                        that.YestodayOrderNum = json.Rs.YestodayOrderNum;
                     }
-                })
-            },
-            // 下课管理
-            ClassQuery() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                };
-                let postdata = qs.stringify(param);
-                ClassOngoingList(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.loading = false;
-                        if (json.Rs) {
-                            that.PreFinishList = json.Rs;
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        checkClassOverPrepare(row) {
+            let that = this;
+            // courseEdit
+            this.$router.push({
+                path: '/courseEdit', query: {
+                    StdId: row.StdId,
+                    ClassName: row.ClassName,
+                    BeginStr: row.BeginStr,
+                    EndStr: row.EndStr,
+                    FinishClass: row.FinishClass,
+                }
+            });
+        },
+        goFinish(row) {
+            this.$router.push({
+                path: '/courses', query: {
+                    // id: row.StdId,
+                    // classId: row.ClassId,
+                    // ClassName: row.ClassName,
+                    // BeginTime: row.BeginTime,
+                }
+            });
+        },
+        getWaitingBeginClassList() {
+            let that = this;
+            that.loading = true;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            WaitingBeginClassList(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.loading = false;
+                    that.classList = json.Rs;
+                    //ipad显示内容减少 
+                    if (that.isCollapse) {
+                        that.classList = [];
+                        for (var i = 0; i < 3; i++) {
+                            that.classList.push(json.Rs[i]);
                         }
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            getClassHourStatistics() {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                };
-                let postdata = qs.stringify(param);
-                ClassHourStatistics(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.TotalRemainNormalhour = json.Rs.TotalRemainNormalhour;
-                        that.TotalRemainGifthour = json.Rs.TotalRemainGifthour;
-                    } else {
-                        that.$message.error(json.Memo);
                     }
-                })
-            },
-            // 最新预约
-            getVipUserOrderQuery() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                    classId: 0,
-                    orderDate: globalcurrent(),
-                    stdId: 0,
-                };
-                let postdata = qs.stringify(param);
-                // VipUserOrderQuery(postdata).then(res => {
-                LastOrderQuery(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        that.loading = false;
-                        if (json.Rs) {
-                            that.appointList = json.Rs;
-                        }
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        // 下课管理
+        ClassQuery() {
+            let that = this;
+            that.loading = true;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            ClassOngoingList(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.loading = false;
+                    if (json.Rs) {
+                        that.PreFinishList = json.Rs;
                     }
-                })
-            }
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
         },
-        filters: {
-            parseDate: function (value) {
-                if (!value) {
-                    return false
+        getClassHourStatistics() {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+            };
+            let postdata = qs.stringify(param);
+            ClassHourStatistics(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.TotalRemainNormalhour = json.Rs.TotalRemainNormalhour;
+                    that.TotalRemainGifthour = json.Rs.TotalRemainGifthour;
                 } else {
-                    let res = nonTfmtDatetoLength(value, 10).substr(5, 10);
-                    return res;
+                    that.$message.error(json.Memo);
                 }
-            },
+            })
         },
-    }
+        // 最新预约
+        getVipUserOrderQuery() {
+            let that = this;
+            that.loading = true;
+            let param = {
+                token: localStorage.token,
+                classId: 0,
+                orderDate: globalcurrent(),
+                stdId: 0,
+            };
+            let postdata = qs.stringify(param);
+            // VipUserOrderQuery(postdata).then(res => {
+            LastOrderQuery(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.loading = false;
+                    if (json.Rs) {
+                        that.appointList = json.Rs;
+                    }
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        }
+    },
+    filters: {
+        parseDate: function(value) {
+            if (!value) {
+                return false
+            } else {
+                let res = nonTfmtDatetoLength(value, 10).substr(5, 10);
+                return res;
+            }
+        },
+    },
+}
 </script>
 
 <style scoped>
-
-    ul, li {
-        list-style: none;
-        margin: 0;
-        padding: 0;
-
+ul,
+li {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+em {
+    font-style: normal;
+}
+
+.container {
+    width: 100%;
+    height: 760px;
+    overflow: hidden;
+    overflow-y: scroll;
+    display: block;
+    margin: 0 auto;
+    padding-bottom: 60px;
+}
+
+.container > .lt {
+    width: 1173px;
+    float: left;
+    margin-top: 0px;
+}
+
+.container > .rt {
+    /*width: 436px;*/
+    width: 26%;
+    height: 100%;
+    float: right;
+}
+
+.lt .top {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+}
+
+.lt .top li {
+    width: 377px;
+    height: 140px;
+    float: left;
+    background: #fff;
+    border-radius: 12px;
+    margin-right: 20px;
+    cursor: pointer;
+}
+
+.lt .top li:nth-child(3) {
+    margin-right: 0;
+}
+
+.top li img {
+    float: left;
+    margin-top: 17px;
+    margin-left: 30px;
+    margin-right: 24px;
+}
+
+.top li .liRight {
+    width: 200px;
+    float: left;
+    margin-top: 17px;
+}
+
+.top .liRight h5 {
+    margin: 0;
+    padding: 0;
+    text-align: left;
+}
+
+.top .liRight span {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    text-align: left;
+    font-size: 26px;
+    font-family: Arial;
+    margin-top: 7px;
+    margin-bottom: 20px;
+}
+
+.liRight em {
+    font-size: 14px;
+    text-align: right;
+}
+
+.btLine {
+    width: 84%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    border-top: 1px solid #f0f2f5;
+    padding-top: 17px;
+}
+
+.btLine em {
+    font-size: 14px;
+}
+
+.btLine .emlt {
+    width: 50%;
+    float: left;
+    text-align: left;
+}
+
+.btLine i {
+    font-size: 18px;
+    color: #bdbdbd;
+}
+
+.emlt i {
+    float: left;
+}
+
+.finish {
+    width: 100%;
+    min-height: 358px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    background: #fff;
+    margin-top: 15px;
+    border-radius: 12px;
+    padding-top: 15px;
+    padding-bottom: 0px;
+}
+
+.finish .title {
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-left: 30px;
+}
+
+.finish .title h5 {
+    margin: 0;
+    float: left;
+    font-size: 18px;
+}
+
+.finish .title span {
+    float: right;
+    margin-right: 43px;
+    font-size: 14px;
+    color: #717171;
+}
+
+.finish ul {
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-left: 30px;
+    padding-right: 30px;
+    margin: 0 auto;
+    margin-top: 10px;
+}
+
+.finish ul li {
+    width: 347px;
+    height: 149px;
+    overflow: hidden;
+    float: left;
+    margin-bottom: 14px;
+}
+
+.finish ul li:nth-child(2) {
+    margin-left: 24px;
+    margin-right: 24px;
+}
+
+.finish ul li:nth-child(5) {
+    margin-left: 24px;
+    margin-right: 24px;
+}
+
+.finish li .finListTitle {
+    width: 100%;
+    height: 35px;
+    line-height: 35px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    background-color: #3799ff;
+    border-top-left-radius: 7px;
+    border-top-right-radius: 7px;
+    color: #000;
+}
+
+li .finListTitle em {
+    float: left;
+    color: #fff;
+    padding-left: 5%;
+}
+
+li .finListTitle s {
+    float: right;
+    text-decoration: none;
+    color: #fff;
+    padding-right: 5%;
+}
+
+.finish li .context {
+    width: 344px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    border: 1px solid #e8e8e8;
+    border-top: none;
+    padding-top: 16px;
+    padding-bottom: 16px;
+    border-bottom-left-radius: 7px;
+    border-bottom-right-radius: 7px;
+}
+
+.finish .context em {
+    width: 85px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    height: 40px;
+    line-height: 30px;
+    color: #bdbdbd;
+}
+
+.context button {
+    height: 30px;
+    line-height: 30px;
+    padding-top: 0;
+}
+
+.context .ctl {
+    width: 211px;
+    float: left;
+    padding-left: 16px;
+    margin-right: 20px;
+}
+
+.ctl span {
+    width: 100%;
+    height: 30px;
+    line-height: 30px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    background-color: #f8f8f8;
+    color: #404040;
+    font-size: 14px;
+    text-align: left;
+    padding-left: 20px;
+    margin-bottom: 15px;
+}
+
+.ctl span:nth-child(2) {
+    margin-bottom: 0px;
+}
+
+/deep/ .el-button--primary.is-plain {
+    background-color: #fff;
+}
+
+/deep/ .el-button--primary.is-plain:hover {
+    color: #005ea2 !important;
+}
+
+.blue {
+    color: #3799ff;
+}
+
+.appoint {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    background: #fff;
+    margin-top: 15px;
+    border-radius: 12px;
+    padding-top: 15px;
+    padding-bottom: 1px;
+}
+
+.appoint .title {
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-left: 30px;
+}
+
+.appoint .title h5 {
+    margin: 0;
+    float: left;
+    font-size: 18px;
+}
+
+.appoint .title span {
+    float: right;
+    margin-right: 43px;
+    font-size: 14px;
+    color: #717171;
+}
+
+.appoint .appointCard {
+    min-height: 195px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-top: 25px;
+    padding-bottom: 25px;
+    padding-left: 30px;
+    padding-right: 30px;
+}
+
+/deep/ .el-card {
+    width: 150px;
+    float: left;
+    margin-right: 31px;
+    padding: 0;
+    border-radius: 12px;
+}
+
+/deep/ .el-card:nth-child(last) {
+    margin-right: 0;
+}
+
+/deep/ .el-card__body {
+    padding: 0;
+}
+
+.cardTitle {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    height: 40px;
+    line-height: 40px;
+    background: #f0f2f5;
+}
+
+.appointCard span {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    color: #777777;
+    font-family: Arial;
+    margin-top: 10px;
+    margin-bottom: 10px;
+    font-size: 16px;
+}
+
+.appointCard em {
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    font-size: 12px;
+    margin-bottom: 14px;
+    text-align: left;
+    padding-left: 16px;
+    padding-right: 16px;
+}
+
+.appointCard em i {
+    float: right;
+    color: #000000;
+    padding-right: 3px;
+}
+
+.appointCard em s {
+    /*width: 47px;*/
+    height: 20px;
+    line-height: 20px;
+    text-align: center;
+    font-style: normal;
+    text-decoration: none;
+    float: right;
+    border-radius: 3px;
+    padding: 0 3px;
+}
+
+.appointCard em s.blue {
+    background-color: #e5f2ff;
+    color: #3799ff;
+}
+
+.appointCard em s.red {
+    background-color: #e5f2ff;
+    color: rgb(204, 2, 2);
+}
+
+.rtContext {
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    overflow-y: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-top: 0px;
+    background: #fff;
+    padding: 0;
+    border-radius: 12px;
+    min-height: 826px;
+    background: #fff;
+}
+
+.rtContext .rtTitle {
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding: 10px 30px;
+}
+
+.rtTitle h5 {
+    margin: 0;
+    float: left;
+    font-size: 18px;
+}
+
+.rtTitle span {
+    float: right;
+    font-size: 14px;
+    color: #bdbdbd;
+    cursor: pointer;
+}
+
+.rtContext ul {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    height: 100%;
+    overflow: hidden;
+    overflow-y: scroll;
+    margin: 0 auto;
+    padding-left: 30px;
+    padding-right: 30px;
+}
+
+.rtContext li {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    border-bottom: 1px solid #f0f2f5;
+    padding-top: 30px;
+    padding-bottom: 10px;
+    cursor: pointer;
+}
+
+.asTitle {
+    height: 30px;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    text-align: left;
+    line-height: 20px;
+    color: #000000;
+    font-size: 14px;
+}
+
+.asTitle span div {
+    margin-left: 8px;
+}
+
+.asTitle img {
+    float: left;
+    margin-right: 5px;
+}
+
+.asTitle span {
+    width: 50%;
+    height: 30px;
+    line-height: 26px;
+    float: left;
+    margin-right: 0px;
+}
+
+.asTitle em {
+    width: 50%;
+    float: left;
+    text-align: right;
+}
+.asTitle span div {
+    float: left;
+}
+
+.asContent {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+}
+
+.asContent span {
+    width: 50%;
+    float: left;
+    font-size: 14px;
+    color: #bdbdbd;
+    margin-bottom: 10px;
+    text-align: left;
+    text-indent: 8px;
+}
+
+.asContent span em {
+    color: #000;
+    text-align: left;
+    float: left;
+}
+
+.asContent span s {
+    text-decoration: none;
+    color: #000;
+    border-radius: 250px;
+    padding: 3px 5px;
+    text-align: center;
+}
+
+.asContent span div {
+    float: left;
+}
+
+.asContent span s.blue {
+    background-color: #e5f2ff;
+}
+
+.box-card {
+    cursor: pointer;
+}
+
+.box-card em {
+    font-style: normal;
+}
+
+i {
+    font-style: normal;
+}
+
+.asContent .green {
+    color: #25cc42;
+}
+
+.asContent .red {
+    color: red;
+}
+
+.asContent .yellow {
+    color: #ffdd00;
+}
+
+/deep/ a {
+    color: #03b1ff;
+}
+
+.tips {
+    color: #333;
+    font-size: 14px !important;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-top: 10px;
+    line-height: 30px;
+}
+
+.middleTips {
+    margin-top: 180px;
+}
+
+.esmall {
+    float: right;
+    font-size: 14px;
+    text-align: right;
+}
+
+/*ipad only*/
+@media only screen and (max-width: 1366px) {
+    .container {
+        /*height: 600px;*/
+        padding-top: 6px;
     }
 
-    em {
-        font-style: normal;
+    .container .lt {
+        width: 80%;
     }
 
-    .container {
-        width: 100%;
-        height: 760px;
-        overflow: hidden;
-        overflow-y: scroll;
-        display: block;
-        margin: 0 auto;
-        padding-bottom: 60px;
+    .asTitle {
+        height: 60px;
     }
 
-    .container > .lt {
-        width: 1173px;
-        float: left;
-        margin-top: 0px;
+    .asTitle img {
+        display: none;
     }
 
-    .container > .rt {
-        /*width: 436px;*/
-        width: 26%;
-        height: 100%;
-        float: right;
+    .asTitle span {
+        width: 100%;
     }
 
     .lt .top {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
+        width: 96%;
     }
 
     .lt .top li {
-        width: 377px;
-        height: 140px;
-        float: left;
-        background: #fff;
-        border-radius: 12px;
-        margin-right: 20px;
-        cursor: pointer;
-    }
-
-    .lt .top li:nth-child(3) {
-        margin-right: 0;
-    }
-
-    .top li img {
-        float: left;
-        margin-top: 17px;
-        margin-left: 30px;
-        margin-right: 24px;
+        width: 32%;
+        margin-right: 2%;
     }
 
     .top li .liRight {
-        width: 200px;
-        float: left;
-        margin-top: 17px;
-    }
-
-    .top .liRight h5 {
-        margin: 0;
-        padding: 0;
-        text-align: left;
-    }
-
-    .top .liRight span {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        text-align: left;
-        font-size: 26px;
-        font-family: Arial;
-        margin-top: 7px;
-        margin-bottom: 20px;
-    }
-
-    .liRight em {
-        font-size: 14px;
-        text-align: right;
+        width: 40%;
     }
 
     .btLine {
-        width: 84%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        border-top: 1px solid #F0F2F5;
-        padding-top: 17px;
+        width: 96%;
     }
 
     .btLine em {
-        font-size: 14px;
-    }
-
-    .btLine .emlt {
-        width: 50%;
-        float: left;
-        text-align: left;
-    }
-
-    .btLine i {
-        font-size: 18px;
-        color: #BDBDBD;
-    }
-
-    .emlt i {
-        float: left;
-    }
-
-    .finish {
-        width: 100%;
-        min-height: 358px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background: #fff;
-        margin-top: 15px;
-        border-radius: 12px;
-        padding-top: 15px;
-        padding-bottom: 0px;
-    }
-
-    .finish .title {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-left: 30px;
-    }
-
-    .finish .title h5 {
-        margin: 0;
+        font-size: 12px;
         float: left;
-        font-size: 18px;
-    }
-
-    .finish .title span {
-        float: right;
-        margin-right: 43px;
-        font-size: 14px;
-        color: #717171;
-    }
-
-    .finish ul {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-left: 30px;
-        padding-right: 30px;
-        margin: 0 auto;
-        margin-top: 10px;
+        line-height: 22px;
     }
 
     .finish ul li {
-        width: 347px;
-        height: 149px;
-        overflow: hidden;
-        float: left;
-        margin-bottom: 14px;
-    }
-
-    .finish ul li:nth-child(2) {
-        margin-left: 24px;
-        margin-right: 24px;
-    }
-
-    .finish ul li:nth-child(5) {
-        margin-left: 24px;
-        margin-right: 24px;
-    }
-
-    .finish li .finListTitle {
-        width: 100%;
-        height: 35px;
-        line-height: 35px;
+        width: 30%;
+        /*height: 159px;*/
         overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        background-color: #3799FF;
-        border-top-left-radius: 7px;
-        border-top-right-radius: 7px;
-        color: #000;
-    }
-
-    li .finListTitle em {
-        float: left;
-        color: #fff;
-        padding-left: 5%;
-    }
-
-    li .finListTitle s {
-        float: right;
-        text-decoration: none;
-        color: #fff;
-        padding-right: 5%;
+        padding-bottom: 20px;
     }
 
     .finish li .context {
-        width: 344px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        border: 1px solid #E8E8E8;
-        border-top: none;
-        padding-top: 16px;
-        padding-bottom: 16px;
-        border-bottom-left-radius: 7px;
-        border-bottom-right-radius: 7px;
-    }
-
-    .finish .context em {
-        width: 85px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        height: 40px;
-        line-height: 30px;
-        color: #BDBDBD;
-    }
-
-    .context button {
-        height: 30px;
-        line-height: 30px;
-        padding-top: 0;
-    }
-
-    .context .ctl {
-        width: 211px;
-        float: left;
-        padding-left: 16px;
-        margin-right: 20px;
-    }
-
-    .ctl span {
-        width: 100%;
-        height: 30px;
-        line-height: 30px;
+        width: 99%;
         overflow: hidden;
         display: block;
-        margin: 0 auto;
-        background-color: #F8F8F8;
-        color: #404040;
-        font-size: 14px;
-        text-align: left;
-        padding-left: 20px;
-        margin-bottom: 15px;
-    }
-
-    .ctl span:nth-child(2) {
-        margin-bottom: 0px;
-    }
-
-    /deep/ .el-button--primary.is-plain {
-        background-color: #fff;
-    }
-
-    /deep/ .el-button--primary.is-plain:hover {
-        color: #005EA2 !important;
-    }
-
-    .blue {
-        color: #3799FF;
+        margin: 0;
+        padding: 0px;
+        height: auto !important;
+        padding-bottom: 5px;
+        border-top-left-radius: 0;
+        border-top-right-radius: 0;
     }
 
-    .appoint {
+    .finish li .context .ctl {
         width: 100%;
         overflow: hidden;
         display: block;
-        margin: 0 auto;
-        background: #fff;
-        margin-top: 15px;
-        border-radius: 12px;
-        padding-top: 15px;
-        padding-bottom: 1px;
-    }
-
-    .appoint .title {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-left: 30px;
-    }
-
-    .appoint .title h5 {
         margin: 0;
-        float: left;
-        font-size: 18px;
-    }
-
-    .appoint .title span {
-        float: right;
-        margin-right: 43px;
-        font-size: 14px;
-        color: #717171;
-    }
-
-    .appoint .appointCard {
-        min-height: 195px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 25px;
-        padding-bottom: 25px;
-        padding-left: 30px;
-        padding-right: 30px;
-    }
-
-    /deep/ .el-card {
-        width: 150px;
-        float: left;
-        margin-right: 31px;
         padding: 0;
-        border-radius: 12px;
-    }
-
-    /deep/ .el-card:nth-child(last) {
-        margin-right: 0;
+        padding-top: 6px;
+        margin-bottom: 3px;
     }
 
-    /deep/ .el-card__body {
+    .ctl span {
+        width: 80%;
         padding: 0;
-    }
-
-    .cardTitle {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        height: 40px;
-        line-height: 40px;
-        background: #F0F2F5;
-    }
-
-    .appointCard span {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        color: #777777;
-        font-family: Arial;
-        margin-top: 10px;
-        margin-bottom: 10px;
-        font-size: 16px;
-    }
-
-    .appointCard em {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
         font-size: 12px;
-        margin-bottom: 14px;
-        text-align: left;
-        padding-left: 16px;
-        padding-right: 16px;
-    }
-
-    .appointCard em i {
-        float: right;
-        color: #000000;
-        padding-right: 3px;
+        text-align: center;
     }
 
-    .appointCard em s {
-        /*width: 47px;*/
-        height: 20px;
-        line-height: 20px;
-        text-align: center;
-        font-style: normal;
-        text-decoration: none;
-        float: right;
-        border-radius: 3px;
-        padding: 0 3px;
+    .finish {
+        width: 97%;
     }
 
-    .appointCard em s.blue {
-        background-color: #E5F2FF;
-        color: #3799FF;
+    .appoint {
+        width: 97%;
     }
 
-    .appointCard em s.red {
-        background-color: #E5F2FF;
-        color: rgb(204, 2, 2);
+    .finish .context em {
+        height: 30px;
+        line-height: 40px;
+        font-size: 12px;
+        float: left;
     }
 
-    .rtContext {
-        width: 100%;
-        height: 100%;
-        overflow: hidden;
-        overflow-y: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 0px;
-        background: #fff;
-        padding: 0;
-        border-radius: 12px;
-        min-height: 826px;
-        background: #fff;
+    .finish .context {
+        height: auto !important;
+        padding-bottom: 5px;
     }
 
-    .rtContext .rtTitle {
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding: 10px 30px;
+    .el-main > .container {
+        /*height: 772px;*/
     }
 
-    .rtTitle h5 {
-        margin: 0;
-        float: left;
-        font-size: 18px;
+    .container .rt {
+        width: 20%;
     }
 
     .rtTitle span {
-        float: right;
-        font-size: 14px;
-        color: #BDBDBD;
-        cursor: pointer;
+        font-size: 12px;
+        line-height: 30px;
     }
 
     .rtContext ul {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        height: 100%;
-        overflow: hidden;
-        overflow-y: scroll;
-        margin: 0 auto;
-        padding-left: 30px;
-        padding-right: 30px;
-    }
-
-    .rtContext li {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        border-bottom: 1px solid #F0F2F5;
-        padding-top: 30px;
-        padding-bottom: 10px;
-        cursor: pointer;
+        padding: 2px !important;
+        font-size: 12px;
     }
 
     .asTitle {
-        height: 30px;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        text-align: left;
-        line-height: 20px;
-        color: #000000;
-        font-size: 14px;
-    }
-
-    .asTitle span div {
-        margin-left: 8px;
-    }
-
-    .asTitle img {
-        float: left;
-        margin-right: 5px;
-    }
-
-    .asTitle span {
-        width: 50%;
-        height: 30px;
-        line-height: 26px;
-        float: left;
-        margin-right: 0px;
-    }
-
-    .asTitle em {
-        width: 50%;
-        float: left;
-        text-align: right;
-    }
-    .asTitle span div {
         float: left;
     }
 
     .asContent {
         width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
     }
 
     .asContent span {
-        width: 50%;
-        float: left;
-        font-size: 14px;
-        color: #BDBDBD;
-        margin-bottom: 10px;
-        text-align: left;
-        text-indent: 8px;
-    }
-
-    .asContent span em {
-        color: #000;
-        text-align: left;
-        float: left;
-    }
-
-    .asContent span s {
-        text-decoration: none;
-        color: #000;
-        border-radius: 250px;
-        padding: 3px 5px;
-        text-align: center;
-    }
-
-    .asContent span div {
-        float: left;
-    }
-
-    .asContent span s.blue {
-        background-color: #E5F2FF;
-    }
-
-    .box-card {
-        cursor: pointer;
-    }
-
-    .box-card em {
-        font-style: normal;
-    }
-
-    i {
-        font-style: normal;
-    }
-
-    .asContent .green {
-        color: #25CC42;
-    }
-
-    .asContent .red {
-        color: red;
-    }
-
-    .asContent .yellow {
-        color: #FFDD00;
-    }
-
-    /deep/ a {
-        color: #03B1FF;
-    }
-
-    .tips {
-        color: #333;
-        font-size: 14px !important;
+        width: 100%;
         overflow: hidden;
         display: block;
         margin: 0 auto;
-        margin-top: 10px;
-        line-height: 30px;
-    }
-
-    .middleTips {
-        margin-top: 180px;
-    }
-
-    .esmall {
-        float: right;
-        font-size: 14px;
-        text-align: right;
-    }
-
-    /*ipad only*/
-    @media only screen and (max-width: 1366px) {
-        .container {
-            /*height: 600px;*/
-            padding-top: 6px;
-        }
-
-        .container .lt {
-            width: 80%;
-        }
-
-        .asTitle {
-            height: 60px;
-        }
-
-        .asTitle img {
-            display: none;
-        }
-
-        .asTitle span {
-            width: 100%;
-        }
-
-        .lt .top {
-            width: 96%;
-        }
-
-        .lt .top li {
-            width: 32%;
-            margin-right: 2%;
-        }
-
-        .top li .liRight {
-            width: 40%;
-        }
-
-        .btLine {
-            width: 96%;
-        }
-
-        .btLine em {
-            font-size: 12px;
-            float: left;
-            line-height: 22px;
-        }
-
-        .finish ul li {
-            width: 30%;
-            /*height: 159px;*/
-            overflow: hidden;
-            padding-bottom: 20px;
-        }
-
-        .finish li .context {
-            width: 99%;
-            overflow: hidden;
-            display: block;
-            margin: 0;
-            padding: 0px;
-            height: auto !important;
-            padding-bottom: 5px;
-            border-top-left-radius: 0;
-            border-top-right-radius: 0;
-        }
-
-        .finish li .context .ctl {
-            width: 100%;
-            overflow: hidden;
-            display: block;
-            margin: 0;
-            padding: 0;
-            padding-top: 6px;
-            margin-bottom: 3px;
-        }
-
-        .ctl span {
-            width: 80%;
-            padding: 0;
-            font-size: 12px;
-            text-align: center;
-        }
-
-        .finish {
-            width: 97%;
-        }
-
-        .appoint {
-            width: 97%;
-        }
-
-        .finish .context em {
-            height: 30px;
-            line-height: 40px;
-            font-size: 12px;
-            float: left;
-        }
-
-        .finish .context {
-            height: auto !important;
-            padding-bottom: 5px;
-        }
-
-        .el-main > .container {
-            /*height: 772px;*/
-        }
-
-        .container .rt {
-            width: 20%;
-        }
-
-        .rtTitle span {
-            font-size: 12px;
-            line-height: 30px;
-        }
-
-        .rtContext ul {
-            padding: 2px !important;
-            font-size: 12px;
-        }
-
-        .asTitle {
-            float: left;
-        }
-
-        .asContent {
-            width: 100%;
-        }
-
-        .asContent span {
-            width: 100%;
-            overflow: hidden;
-            display: block;
-            margin: 0 auto;
-            font-size: 12px;
-            height: 20px;
-        }
+        font-size: 12px;
+        height: 20px;
     }
+}
 </style>

+ 13 - 13
pc/src/views/Member.vue

@@ -5,15 +5,15 @@
             <div class="panel-body">
                 <div class="panel_control">
                     <el-row :gutter="20">
-                        <el-col :span="4">
+                        <el-col :span="5">
                             <em>姓名:</em>
                             <el-input v-model="panel.name" placeholder="请输入姓名"></el-input>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="5">
                             <em>手机号:</em>
                             <el-input v-model="panel.phone" placeholder="请输入手机号" type="number"></el-input>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="5">
                             <em>会员类型:</em>
                             <el-select v-model="panel.vipType">
                                 <el-option
@@ -24,7 +24,7 @@
                                 </el-option>
                             </el-select>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="5">
                             <em>到期日:</em>
                             <el-select v-model="panel.expDay">
                                 <el-option
@@ -35,7 +35,7 @@
                                 </el-option>
                             </el-select>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="2">
                             <el-button size="" type="primary" @click="query" plain :disabled="serachBtnStatus">查询
                             </el-button>
                         </el-col>
@@ -44,12 +44,12 @@
             </div>
         </div>
         <div class="change">
-            <el-button @click="addMember" v-if="userLevel != 4" type="primary">新增会员</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 @click="addMember" v-if="userLevel != 4" type="primary" size="mini">新增会员</el-button>
+            <el-button @click="delList" v-if="userLevel != 4" size="mini">删除会员</el-button>
+            <el-button @click="lessonChange" v-if="userLevel != 4" size="mini">课时调整</el-button>
+            <el-button @click="giftChange" v-if="userLevel != 4" size="mini">赠送课时调整</el-button>
+            <el-button @click="ExpTimeChange" v-if="userLevel != 4" size="mini">有效期调整</el-button>
+            <el-button @click="lessonStudenChange" v-if="userLevel != 4" size="mini">增删会员可预约课程</el-button>
             <!--            <el-button class="pull-right" icon="el-icon-position">导出</el-button>-->
         </div>
         <div class="table">
@@ -323,8 +323,8 @@
                     </el-form>
                 </div>
                 <div class="pull-right" v-if="form.btnType == 0 && pullRight">
-                    <el-form ref="form" :model="form" label-width="100px">
-                        <el-form-item label="会员课程">
+                    <el-form ref="form" :model="form" label-width="10px">
+                        <el-form-item label="">
                             <el-transfer filterable v-model="form.classlist" :data="form.dialogdata"
                                          :titles="['全部课程','已选课程']"></el-transfer>
                         </el-form-item>

+ 8 - 8
pc/src/views/appoint.vue

@@ -18,15 +18,15 @@
                     <div class="panel-body">
                         <div class="panel_control">
                             <el-row :gutter="20">
-                                <el-col :span="5">
+                                <el-col :span="6">
                                     <em>会员名:</em>
                                     <el-input v-model="panel.name" placeholder="请输入会员名"></el-input>
                                 </el-col>
-                                <el-col :span="5">
+                                <el-col :span="6">
                                     <em>手机号:</em>
                                     <el-input v-model="panel.phone" placeholder="请输入手机号" type="number"></el-input>
                                 </el-col>
-                                <el-col :span="5">
+                                <el-col :span="6">
                                     <em>预约课程:</em>
                                     <el-select v-model="panel.classId">
                                         <el-option
@@ -37,12 +37,12 @@
                                         </el-option>
                                     </el-select>
                                 </el-col>
-                                <el-col :span="4">
+                                <el-col :span="3">
                                     <el-button size="" type="primary" @click="query" plain :disabled="serachBtnStatus">
                                         查询
                                     </el-button>
                                 </el-col>
-                                <el-col :span="4">
+                                <el-col :span="3">
                                     <el-button class="pull-right" type="warning" @click="addMember">增加预约</el-button>
                                 </el-col>
                             </el-row>
@@ -185,7 +185,7 @@
                             <el-table-column
                                     prop="Recovered"
                                     label="预约比例"
-                                    width="220px"
+                                    width="210px"
                                     sortable
                             >
                                 <template slot-scope="scope">
@@ -208,12 +208,11 @@
                             <el-table-column
                                     prop="ConsumeHour"
                                     label="消耗课时"
-                                    sortable
                             >
                             </el-table-column>
                             <el-table-column
                                     prop="WxOrder"
-                                    label="微信可约"
+                                    label="微信可约"
                             >
                                 <template slot-scope="scope">
                                     <!--                                    0:不可预约 1:可预约-->
@@ -231,6 +230,7 @@
                             <el-table-column
                                     prop="StdId"
                                     label="操作"
+                                    width=70px
                             >
                                 <template slot-scope="scope">
                                     <el-button type="text" @click="seeDetail(scope.row)">详情</el-button>

+ 12 - 10
pc/src/views/courseEdit.vue

@@ -11,11 +11,11 @@
         <br />
         <div class="panel_control">
           <el-row :gutter="20">
-            <el-col :span="4">
+            <el-col :span="6">
               <em>会员名:</em>
               <el-input v-model="panel.name" placeholder="请输入会员名"></el-input>
             </el-col>
-            <el-col :span="4">
+            <el-col :span="6">
               <em>手机号:</em>
               <el-input v-model="panel.phone" placeholder="请输入手机号" type="number"></el-input>
             </el-col>
@@ -39,12 +39,13 @@
           :disabled="BeginState"
           :loading="BeginState"
           v-if="FinishClass == 3"
+          size="mini"
         >确认上课</el-button>
-        <el-button @click="confirmClose" type="danger" :disabled="!BeginState">关闭课程</el-button>
-        <el-button @click="addFinish" type="primary" v-if="FinishClass == 2">确认下课</el-button>
-        <el-button @click="addFinishMember">添加上课会员</el-button>
-        <el-button @click="addTempMember" type="warning">添加临时会员</el-button>
-        <el-button @click="addCrossMember" type="primary">添加跨店会员</el-button>
+        <el-button @click="confirmClose" type="danger" :disabled="!BeginState" size="mini">关闭课程</el-button>
+        <el-button @click="addFinish" type="primary" v-if="FinishClass == 2" size="mini">确认下课</el-button>
+        <el-button @click="addFinishMember" size="mini">添加上课会员</el-button>
+        <el-button @click="addTempMember" type="warning" size="mini">添加临时会员</el-button>
+        <el-button @click="addCrossMember" type="primary" size="mini">添加跨店会员</el-button>
         <!--<el-button @click="allSetOnline" type="warning">全部网课</el-button>-->
       </div>
     </div>
@@ -77,8 +78,8 @@
           </template>
         </el-table-column>
         <el-table-column prop="Name" label="会员名" width="90" sortable></el-table-column>
-        <el-table-column prop="Phone" label="手机号" width="120" sortable></el-table-column>
-        <el-table-column prop="ClassName" label="课程" width="110" sortable>
+        <el-table-column prop="Phone" label="手机号" width="120" sortable v-if="!isCollapse"></el-table-column>
+        <el-table-column prop="ClassName" label="课程" width="110" sortable v-if="!isCollapse">
           <template slot-scope="scope">
             <span
               class="lessons"
@@ -86,7 +87,7 @@
             >{{ scope.row.ClassName }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="OrderTime" label="预约时间" :formatter="filterFmtDate" sortable></el-table-column>
+        <el-table-column prop="OrderTime" label="预约时间" :formatter="filterFmtDate" sortable v-if="!isCollapse"></el-table-column>
         <el-table-column prop="IsOnline" label="是否网课" width="140">
           <template slot="header" slot-scope="scope">
             <el-checkbox @change="(val) => handleSelectAll(val)" label="是否网课" />
@@ -525,6 +526,7 @@ export default {
         total: 100,
         pageIndex: 1,
       },
+      isCollapse: document.body.clientWidth < 1366,
     };
   },
   mounted() {

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

@@ -4,8 +4,8 @@
             <h5>课程管理
             </h5>
             <div class="likeTab">
-                <el-button type="primary" @click="goType('courses')">当前课程</el-button>
-                <el-button type="" @click="goType('coursesHistory')">历史记录</el-button>
+                <el-button type="primary" @click="goType('courses')" size="mini">当前课程</el-button>
+                <el-button type="" @click="goType('coursesHistory')" size="mini">历史记录</el-button>
             </div>
             <div class="panel-body">
                 <div class="panel_control">

+ 768 - 760
pc/src/views/heartEquip.vue

@@ -3,13 +3,13 @@
         <div class="panel">
             <h5>心率设备</h5>
             <div class="likeTab">
-                <el-button type="primary" @click="goType('heartEquip')">场馆心率设备</el-button>
-                <el-button type="" @click="goType('heartEquipPerson')">私有心率设备</el-button>
+                <el-button type="primary" @click="goType('heartEquip')" size="mini">场馆心率设备</el-button>
+                <el-button type @click="goType('heartEquipPerson')" size="mini">私有心率设备</el-button>
             </div>
             <div class="panel-body">
                 <div class="panel_control">
                     <el-row :gutter="20">
-                        <el-col :span="4">
+                        <el-col :span="6">
                             <em>心率设备:</em>
                             <el-input v-model="panel.str" placeholder="请输入编号" type="number"></el-input>
                         </el-col>
@@ -26,32 +26,40 @@
                         <!--</el-select>-->
                         <!--</el-col>-->
                         <el-col :span="4">
-                            <el-button size="" type="primary" @click="query" plain>查询</el-button>
+                            <el-button size type="primary" @click="query" plain>查询</el-button>
                         </el-col>
                     </el-row>
                 </div>
             </div>
         </div>
         <div class="change">
-            <el-button @click="addMember" type="primary">新增心率设备</el-button>
-            <el-button @click="editList">编辑心率设备</el-button>
-            <el-button type="success" @click="getAllPower" :loading="BtnGetAllPower">全部设备电量</el-button>
+            <el-button @click="addMember" type="primary" size="mini">新增心率设备</el-button>
+            <el-button @click="editList" size="mini">编辑心率设备</el-button>
+            <el-button
+                type="success"
+                @click="getAllPower"
+                :loading="BtnGetAllPower"
+                size="mini"
+            >全部设备电量</el-button>
             <!--<el-button @click="delList" type="danger">删除心率设备</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"
+                :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>
+                        <el-radio v-model="tableRadio" :label="scope.row">
+                            <i></i>
+                        </el-radio>
                     </template>
                 </el-table-column>
                 <!--<el-table-column-->
@@ -68,22 +76,10 @@
                 <!--width="90"-->
                 <!--&gt;-->
                 <!--</el-table-column>-->
-                <el-table-column
-                        prop="Sn"
-                        label="序列号"
-                        align="InVenueNo"
-                        sortable
-                >
-                </el-table-column>
-                <el-table-column
-                        prop="UserName"
-                        label="用户"
-                        align="center"
-                        sortable
-                >
-
+                <el-table-column prop="Sn" label="序列号" align="InVenueNo" width="80px" sortable></el-table-column>
+                <el-table-column prop="UserName" label="用户" align="center" sortable>
                     <template slot-scope="scope">
-                        {{scope.row.UserName}}
+                        {{ scope.row.UserName }}
                         <!--<el-select v-model="scope.row.BindUserId" @change="getRowTop(scope.row)" filterable v-if="scope.row.BindUserId">-->
                         <!--<el-option-->
                         <!--v-for="item in panel.options"-->
@@ -97,24 +93,34 @@
                     </template>
                 </el-table-column>
                 <el-table-column
-                        prop="PowerPercent"
-                        label="电量"
-                        align="center"
-                        sortable
+                    prop="PowerPercent"
+                    label="电量"
+                    align="center"
+                    width="80px"
+                    sortable
                 >
                     <template slot-scope="scope">
-                        <span style="color: red" v-if="parseInt(scope.row.PowerPercent) <= 20">{{scope.row.PowerPercent}}</span>
-                        <span style="color: gold" v-if="parseInt(scope.row.PowerPercent) > 20 && parseInt(scope.row.PowerPercent) < 80">{{scope.row.PowerPercent}}</span>
-                        <span style="color: #67C23A" v-if="parseInt(scope.row.PowerPercent) >= 80">{{scope.row.PowerPercent}}</span>
+                        <span
+                            style="color: red"
+                            v-if="parseInt(scope.row.PowerPercent) <= 20"
+                        >{{ scope.row.PowerPercent }}</span>
+                        <span
+                            style="color: gold"
+                            v-if="parseInt(scope.row.PowerPercent) > 20 && parseInt(scope.row.PowerPercent) < 80"
+                        >{{ scope.row.PowerPercent }}</span>
+                        <span
+                            style="color: #67C23A"
+                            v-if="parseInt(scope.row.PowerPercent) >= 80"
+                        >{{ scope.row.PowerPercent }}</span>
                     </template>
                 </el-table-column>
                 <el-table-column
-                        prop="PowerUpdateAt"
-                        label="电量更新时间"
-                        align="center"
-                        :formatter="filterFmtDate"
-                >
-                </el-table-column>
+                    prop="PowerUpdateAt"
+                    label="电量更新时间"
+                    align="center"
+                    width="150px"
+                    :formatter="filterFmtDate"
+                ></el-table-column>
 
                 <!--<el-table-column-->
                 <!--prop="Status"-->
@@ -129,12 +135,8 @@
                 <!--<span v-if="scope.row.Status == 9" style="color: red">已删除</span>-->
                 <!--</template>-->
                 <!--</el-table-column>-->
-                <el-table-column
-                        prop="id"
-                        label="操作"
-                >
+                <el-table-column prop="id" label="操作">
                     <template slot-scope="scope">
-
                         <!--<el-button type="success" v-if="scope.row.Status == 8" size="mini"-->
                         <!--@click="pauseRow(scope.row,1)">-->
                         <!--启用-->
@@ -144,27 +146,24 @@
                         <!--禁用-->
                         <!--</el-button>-->
 
-                        <el-button type="danger" size="mini"
-                                   @click="pauseRowDel(scope.row)">
-                            删除
-                        </el-button>
+                        <el-button type="danger" size="mini" @click="pauseRowDel(scope.row)">删除</el-button>
 
                         <el-button type="primary" size="mini" @click="goPage(scope.row)">记录</el-button>
                         <el-button type="success" size="mini" @click="getPower(scope.row)">获取电量</el-button>
                     </template>
                 </el-table-column>
             </el-table>
-            <br>
+            <br />
             <el-pagination
-                    background
-                    :total="pageination.total"
-                    :page-size="pageination.pageItem"
-                    @current-change="pageChange"
+                background
+                :total="pageination.total"
+                :page-size="pageination.pageItem"
+                @current-change="pageChange"
             ></el-pagination>
         </div>
         <el-dialog :title="dialogTitle" :visible.sync="dialogMemberVisible" width="650px">
             <div class="dialogContent">
-                <div class="">
+                <div class>
                     <el-form ref="form" :model="form" label-width="160px">
                         <!--<el-form-item label="馆内编号" :required="true">-->
                         <!--<el-input v-model="form.venueNo"></el-input>-->
@@ -176,9 +175,18 @@
                 </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
+                    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>
@@ -186,234 +194,141 @@
 </template>
 
 <script>
-    import Global from '../Global.js'
-    import {
-        testTable,
-        testSelect,
-        ShopManagerStatusEdit,
-        ClassDetailOne,
-        QueryHrSensors,
-        AddHrSensors,
-        HrSensorsStatusEdit,
-        EditHrSensors,
-        UnBindHrSensorsToUser,
-        GetHrSensorsPowerPercent,
-        ShopVenueEquipEditStatus,
-    } from "../api/getApiRes";
-
-    let qs = require('qs');
-    export default {
-        data() {
-            return {
-                activeName: 'comm',
-                dialogVisible: false,//其他dialog
-                BtnGetAllPower: false,//
-                dialogMemberVisible: false,//新增心率设备dialog
-                dialogLesson: false,//课时调整
-                dialogGift: false,//赠送课时调整
-                dialogExpTime: false,//有效期调整
-                dialogLessonTable: false,//心率设备课程
-                dialogTitle: '新增心率设备',
-                dialogValue: [],
-                tableRadio: [],
-                // panel 配置项目
-                panel: {
-                    str: '',
-                    phone: '',
-                    compname: '',
-                    keyword: '',
-                    USERCODE: '',
-                    endType: '',
-                    taskstatus: 99,
-                    status: "",
-                    draw: 1,
-                    start: 0,
-                    recordsTotal: 0,
-                    tableData: [],
-                    allTableData: [],
-                    limit: '10',
-                    multipleSort: false,
-                    loading: false,
-                    fileList: [],
-                    multipleSelection: [],
-                    detectedmac: '',
-                    statusOptions: [
-                        {value: "", label: '全部'},
-                        {value: 1, label: '启用'},
-                        {value: 8, label: '暂停'},
-                        {value: 9, label: '删除'},
-                    ], options: [
-                        {value: 99, label: '全部'},
-                        {value: 1, label: '进行中'},
-                        {value: 2, label: '已完成'},
-                    ],
-                    endTypeOptions: [
-                        {value: 99, label: '全部'},
-                        {value: 30, label: '近一个月'},
-                        {value: 7, label: '近一周'},
-                        {value: 1, label: '当日'},
-                    ],
-                    time1: globalBt(),
-                },
+import Global from '../Global.js'
+import {
+    testTable,
+    testSelect,
+    ShopManagerStatusEdit,
+    ClassDetailOne,
+    QueryHrSensors,
+    AddHrSensors,
+    HrSensorsStatusEdit,
+    EditHrSensors,
+    UnBindHrSensorsToUser,
+    GetHrSensorsPowerPercent,
+    ShopVenueEquipEditStatus,
+} from "../api/getApiRes";
+
+let qs = require('qs');
+export default {
+    data() {
+        return {
+            activeName: 'comm',
+            dialogVisible: false,//其他dialog
+            BtnGetAllPower: false,//
+            dialogMemberVisible: false,//新增心率设备dialog
+            dialogLesson: false,//课时调整
+            dialogGift: false,//赠送课时调整
+            dialogExpTime: false,//有效期调整
+            dialogLessonTable: false,//心率设备课程
+            dialogTitle: '新增心率设备',
+            dialogValue: [],
+            tableRadio: [],
+            // panel 配置项目
+            panel: {
+                str: '',
+                phone: '',
+                compname: '',
+                keyword: '',
+                USERCODE: '',
+                endType: '',
+                taskstatus: 99,
+                status: "",
+                draw: 1,
+                start: 0,
+                recordsTotal: 0,
+                tableData: [],
+                allTableData: [],
+                limit: '10',
+                multipleSort: false,
+                loading: false,
+                fileList: [],
                 multipleSelection: [],
-                pageination: {
-                    pageItem: 100,
-                    pageoptions: pageOptions(),
-                    total: 100,
-                    pageIndex: 1,
-                },
-                form: {
-                    name: '',
-                    userCode: '',
-                    sn: '',
-                    venueNo: '',
-                    shopId: '',
-                    teacherId: 0,
-                    memberType: 1,
-                    lesson: 1,
-                    gift: 1,
-                    btnType: 0,//0新建,1编辑编辑
-                    memo: '',
-                    phone: '',
-                    expTime: '',
-                    dialogdata: [],//穿梭待选
-                    dialogValue: [],//穿梭已选
-                },
-                memberTypes: [
-                    {value: 1, label: '年心率设备'},
-                    {value: 2, label: '充值心率设备'},
+                detectedmac: '',
+                statusOptions: [
+                    { value: "", label: '全部' },
+                    { value: 1, label: '启用' },
+                    { value: 8, label: '暂停' },
+                    { value: 9, label: '删除' },
+                ], options: [
+                    { value: 99, label: '全部' },
+                    { value: 1, label: '进行中' },
+                    { value: 2, label: '已完成' },
                 ],
-                tableData: []
-            }
-        },
-        mounted() {
-            this.getTableQuery();
-        },
-        methods: {
-            handleClick(tab, event) {
-                let that = this;
-
-                if (tab.name == "personal") {
-                    // 私有
-                    that.$router.push({path: '/heartEquipPerson'});
-                } else {
-                    // 公共
-                    that.$router.push({path: '/heartEquip'});
-                }
-            },
-            // 设备回收
-            takeBack(row) {
-                let that = this;
-                this.$confirm('是否回收用户' + row.name + '的心率设备?', '回收操作', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    let param = {
-                        token: localStorage.token,
-                        Id: row.Id,
-                        status: 0,
-                    };
-                    let postdata = qs.stringify(param);
-                    UnBindHrSensorsToUser(postdata).then(res => {
-                        let json = res;
-                        if (json.Code == 0) {
-                            that.$message({
-                                showClose: true,
-                                message: row.name + '回收成功!',
-                                type: 'success'
-                            });
-                            // table 重载
-                            that.getTableQuery();
-                        } else {
-                            that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                        }
-                    })
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消回收'
-                    });
-                });
-            },
-            goPage(row) {
-                // 查看绑定记录
-                this.$router.push({path: '/bindRecord', query: {hrId: row.HrId}});
-            },
-            goType(url) {
-                this.$router.push({path: '/' + url});
-            },
-            // 编辑
-            editList() {
-                let that = this;
-                this.clearForm();
-                console.log(this.tableRadio);
-                if (this.tableRadio.length == 0) {
-                    this.$message.error("请先选中一条记录");
-                    return false
-                }
-                let row = this.tableRadio;
-                this.form.shopid = row.ShopId;
-                this.form.userId = row.Id;
-                this.form.name = row.Name;
-                this.form.userCode = row.Usercode;
-                this.form.password = '';
-                this.form.hrId = row.HrId;
-                this.form.sn = row.Sn;
-                this.form.venueNo = row.InVenueNo;
-                this.dialogVisible = true;
-                this.dialogTitle = '编辑心率设备';
-                this.form.btnType = 1;
-                this.dialogMemberVisible = true
-            },
-            clickChange(item) {
-                this.tableRadio = item
+                endTypeOptions: [
+                    { value: 99, label: '全部' },
+                    { value: 30, label: '近一个月' },
+                    { value: 7, label: '近一周' },
+                    { value: 1, label: '当日' },
+                ],
+                time1: globalBt(),
             },
-            // 选择课程后,获取当前课程的建议上课人数和课时消耗
-            getRowTop(row) {
-                let that = this;
-                console.log(row);
-                let param = {
-                    token: localStorage.token,
-                    classId: row.ClassId,
-                };
-                let postdata = qs.stringify(param);
-                ClassDetailOne(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
-                        row.TopLimit = json.Rs.TopLimit;
-                        row.ConsumeHour = json.Rs.ConsumeHour;
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
+            multipleSelection: [],
+            pageination: {
+                pageItem: 100,
+                pageoptions: pageOptions(),
+                total: 100,
+                pageIndex: 1,
             },
-            // 编辑
-            editMember(row) {
-                this.clearForm();
-                this.form.name = row.Name;
-                this.form.phone = row.Phone;
-                this.form.shopId = row.ShopId;
-                this.form.teacherId = row.TeacherId;
-                this.form.btnType = 1;
-                this.dialogMemberVisible = true
-                this.dialogTitle = '编辑心率设备'
+            form: {
+                name: '',
+                userCode: '',
+                sn: '',
+                venueNo: '',
+                shopId: '',
+                teacherId: 0,
+                memberType: 1,
+                lesson: 1,
+                gift: 1,
+                btnType: 0,//0新建,1编辑编辑
+                memo: '',
+                phone: '',
+                expTime: '',
+                dialogdata: [],//穿梭待选
+                dialogValue: [],//穿梭已选
             },
-            // 禁用
-            pauseRow(row, status) {
-                let that = this;
+            memberTypes: [
+                { value: 1, label: '年心率设备' },
+                { value: 2, label: '充值心率设备' },
+            ],
+            tableData: []
+        }
+    },
+    mounted() {
+        this.getTableQuery();
+    },
+    methods: {
+        handleClick(tab, event) {
+            let that = this;
+
+            if (tab.name == "personal") {
+                // 私有
+                that.$router.push({ path: '/heartEquipPerson' });
+            } else {
+                // 公共
+                that.$router.push({ path: '/heartEquip' });
+            }
+        },
+        // 设备回收
+        takeBack(row) {
+            let that = this;
+            this.$confirm('是否回收用户' + row.name + '的心率设备?', '回收操作', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
                 let param = {
                     token: localStorage.token,
-                    hrId: row.HrId,
-                    status: status,//1:启用 8:暂停 9:删除
+                    Id: row.Id,
+                    status: 0,
                 };
                 let postdata = qs.stringify(param);
-                HrSensorsStatusEdit(postdata).then(res => {
+                UnBindHrSensorsToUser(postdata).then(res => {
                     let json = res;
                     if (json.Code == 0) {
                         that.$message({
                             showClose: true,
-                            message: '执行成功!',
+                            message: row.name + '回收成功!',
                             type: 'success'
                         });
                         // table 重载
@@ -422,539 +337,632 @@
                         that.$message.error(json.Memo + ' 错误码:' + json.Code);
                     }
                 })
-            },
-            // pauseRow(row) {
-            //     let that = this;
-            //     this.$confirm('是否禁用心率设备' + row.Sn + '?', '禁用操作', {
-            //         confirmButtonText: '确定',
-            //         cancelButtonText: '取消',
-            //         type: 'warning'
-            //     }).then(() => {
-            //         let param = {
-            //             token: localStorage.token,
-            //             shopId : localStorage.token,
-            //             status: 8,
-            //         };
-            //         let postdata = qs.stringify(param);
-            //         ShopVenueEquipEditStatus(postdata).then(res => {
-            //             let json = res;
-            //             if (json.Code == 0) {
-            //                 that.$message({
-            //                     showClose: true,
-            //                     message: row.name + '禁用成功!',
-            //                     type: 'success'
-            //                 });
-            //                 // table 重载
-            //                 that.getTableQuery();
-            //             } else {
-            //                 that.$message.error(json.Memo + ' 错误码:' + json.Code);
-            //             }
-            //         })
-            //     }).catch(() => {
-            //         this.$message({
-            //             type: 'info',
-            //             message: '已取消禁用'
-            //         });
-            //     });
-            // },
-            // 启用
-            runRow(row) {
-                let that = this;
-                this.$confirm('是否启用心率设备' + row.Sn + '?', '启用操作', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    let param = {
-                        token: localStorage.token,
-                        Id: row.Id,
-                        status: 1,
-                    };
-                    let postdata = qs.stringify(param);
-                    testTable(postdata).then(res => {
-                        let json = res;
-                        if (json.Code == 0) {
-                            that.$message({
-                                showClose: true,
-                                message: row.name + '启用成功!',
-                                type: 'success'
-                            });
-                            // table 重载
-                            that.getTableQuery();
-                        } else {
-                            that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                        }
-                    })
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消启用'
-                    });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消回收'
                 });
-            },
-            // 获取电量
-            getPower(row) {
-                let that = this;
+            });
+        },
+        goPage(row) {
+            // 查看绑定记录
+            this.$router.push({ path: '/bindRecord', query: { hrId: row.HrId } });
+        },
+        goType(url) {
+            this.$router.push({ path: '/' + url });
+        },
+        // 编辑
+        editList() {
+            let that = this;
+            this.clearForm();
+            console.log(this.tableRadio);
+            if (this.tableRadio.length == 0) {
+                this.$message.error("请先选中一条记录");
+                return false
+            }
+            let row = this.tableRadio;
+            this.form.shopid = row.ShopId;
+            this.form.userId = row.Id;
+            this.form.name = row.Name;
+            this.form.userCode = row.Usercode;
+            this.form.password = '';
+            this.form.hrId = row.HrId;
+            this.form.sn = row.Sn;
+            this.form.venueNo = row.InVenueNo;
+            this.dialogVisible = true;
+            this.dialogTitle = '编辑心率设备';
+            this.form.btnType = 1;
+            this.dialogMemberVisible = true
+        },
+        clickChange(item) {
+            this.tableRadio = item
+        },
+        // 选择课程后,获取当前课程的建议上课人数和课时消耗
+        getRowTop(row) {
+            let that = this;
+            console.log(row);
+            let param = {
+                token: localStorage.token,
+                classId: row.ClassId,
+            };
+            let postdata = qs.stringify(param);
+            ClassDetailOne(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    row.TopLimit = json.Rs.TopLimit;
+                    row.ConsumeHour = json.Rs.ConsumeHour;
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        // 编辑
+        editMember(row) {
+            this.clearForm();
+            this.form.name = row.Name;
+            this.form.phone = row.Phone;
+            this.form.shopId = row.ShopId;
+            this.form.teacherId = row.TeacherId;
+            this.form.btnType = 1;
+            this.dialogMemberVisible = true
+            this.dialogTitle = '编辑心率设备'
+        },
+        // 禁用
+        pauseRow(row, status) {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+                hrId: row.HrId,
+                status: status,//1:启用 8:暂停 9:删除
+            };
+            let postdata = qs.stringify(param);
+            HrSensorsStatusEdit(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    that.$message({
+                        showClose: true,
+                        message: '执行成功!',
+                        type: 'success'
+                    });
+                    // table 重载
+                    that.getTableQuery();
+                } else {
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        // pauseRow(row) {
+        //     let that = this;
+        //     this.$confirm('是否禁用心率设备' + row.Sn + '?', '禁用操作', {
+        //         confirmButtonText: '确定',
+        //         cancelButtonText: '取消',
+        //         type: 'warning'
+        //     }).then(() => {
+        //         let param = {
+        //             token: localStorage.token,
+        //             shopId : localStorage.token,
+        //             status: 8,
+        //         };
+        //         let postdata = qs.stringify(param);
+        //         ShopVenueEquipEditStatus(postdata).then(res => {
+        //             let json = res;
+        //             if (json.Code == 0) {
+        //                 that.$message({
+        //                     showClose: true,
+        //                     message: row.name + '禁用成功!',
+        //                     type: 'success'
+        //                 });
+        //                 // table 重载
+        //                 that.getTableQuery();
+        //             } else {
+        //                 that.$message.error(json.Memo + ' 错误码:' + json.Code);
+        //             }
+        //         })
+        //     }).catch(() => {
+        //         this.$message({
+        //             type: 'info',
+        //             message: '已取消禁用'
+        //         });
+        //     });
+        // },
+        // 启用
+        runRow(row) {
+            let that = this;
+            this.$confirm('是否启用心率设备' + row.Sn + '?', '启用操作', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
                 let param = {
                     token: localStorage.token,
-                    shopId: row.ShopId,
-                    hrId: row.HrId,
+                    Id: row.Id,
+                    status: 1,
                 };
                 let postdata = qs.stringify(param);
-                GetHrSensorsPowerPercent(postdata).then(res => {
+                testTable(postdata).then(res => {
                     let json = res;
                     if (json.Code == 0) {
-                        console.log(json);
                         that.$message({
                             showClose: true,
-                            message: '电量获取成功!',
+                            message: row.name + '启用成功!',
                             type: 'success'
                         });
-                    } else {
-                        that.$message.error(json.Memo);
-                    }
-                })
-            },
-            getAllPower() {
-                let that = this;
-                that.BtnGetAllPower = true;
-                let param = {
-                    token: localStorage.token,
-                    shopId: localStorage.ShopId,
-                };
-                let postdata = qs.stringify(param);
-                GetHrSensorsPowerPercent(postdata).then(res => {
-                    let json = res;
-                    if (json.Code == 0) {
                         // table 重载
                         that.getTableQuery();
-                        that.$message({
-                            showClose: true,
-                            message: '电量获取成功!',
-                            type: 'success'
-                        });
                     } else {
-                        that.$message.error(json.Memo);
+                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
                     }
-                    that.BtnGetAllPower = false;
                 })
-            },
-            // 删除
-            pauseRowDel(row) {
-                let that = this;
-                let param = {
-                    token: localStorage.token,
-                    hrId: row.HrId,
-                    status: 9,//1:启用,8:暂停,9:删除
-                };
-                let postdata = qs.stringify(param);
-                this.$confirm('此操作将永久删除该心率设备, 是否继续?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    HrSensorsStatusEdit(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 + ' 错误码:' + json.Code);
-                        }
-                    });
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消删除'
-                    });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消启用'
                 });
-            },
-            // 关闭所有
-            allDialogClose() {
-                this.dialogVisible = false;
-                this.dialogGift = false;
-                this.dialogLesson = false;
-                this.dialogExpTime = false;
-                this.dialogLessonTable = false;
-            },
-            // 确认提交新增心率设备
-            confirmMember() {
-                let that = this;
-                // checkNum
-                if (!that.form.sn) {
-                    this.$message.error('错了哦,编号不能为空');
-                    return false
+            });
+        },
+        // 获取电量
+        getPower(row) {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+                shopId: row.ShopId,
+                hrId: row.HrId,
+            };
+            let postdata = qs.stringify(param);
+            GetHrSensorsPowerPercent(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    console.log(json);
+                    that.$message({
+                        showClose: true,
+                        message: '电量获取成功!',
+                        type: 'success'
+                    });
+                } else {
+                    that.$message.error(json.Memo);
                 }
-                if (that.form.sn.length > 20) {
-                    this.$message.error('错了哦,编号不能超过20个字符');
-                    return false
+            })
+        },
+        getAllPower() {
+            let that = this;
+            that.BtnGetAllPower = true;
+            let param = {
+                token: localStorage.token,
+                shopId: localStorage.ShopId,
+            };
+            let postdata = qs.stringify(param);
+            GetHrSensorsPowerPercent(postdata).then(res => {
+                let json = res;
+                if (json.Code == 0) {
+                    // table 重载
+                    that.getTableQuery();
+                    that.$message({
+                        showClose: true,
+                        message: '电量获取成功!',
+                        type: 'success'
+                    });
+                } else {
+                    that.$message.error(json.Memo);
                 }
-                // if (!that.form.venueNo) {
-                //     this.$message.error('错了哦,实体序列号不能为空');
-                //     return false
-                // }
-                // if (that.form.venueNo.length > 30) {
-                //     this.$message.error('错了哦,实体序列号不能超过30个字符');
-                //     return false
-                // }
-
-                let param = {
-                    token: localStorage.token,
-                    shopId: localStorage.shopId,
-                    sn: that.form.sn,
-                    venueNo: that.form.venueNo,
-                };
-                let postdata = qs.stringify(param);
-                AddHrSensors(postdata).then(res => {
+                that.BtnGetAllPower = false;
+            })
+        },
+        // 删除
+        pauseRowDel(row) {
+            let that = this;
+            let param = {
+                token: localStorage.token,
+                hrId: row.HrId,
+                status: 9,//1:启用,8:暂停,9:删除
+            };
+            let postdata = qs.stringify(param);
+            this.$confirm('此操作将永久删除该心率设备, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                HrSensorsStatusEdit(postdata).then(res => {
                     let json = res;
                     if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogMemberVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
                         that.$message({
                             showClose: true,
-                            message: '心率设备添加成功!',
+                            message: '选中的心率设备已删除!',
                             type: 'success'
                         });
+                        // 重载列表
+                        that.getTableQuery();
                     } else {
                         that.$message.error(json.Memo + ' 错误码:' + json.Code);
                     }
-                })
-            },
-            confirmEditMember() {
-                let that = this;
-                // checkNum
-                if (!that.form.sn) {
-                    this.$message.error('错了哦,编号不能为空');
-                    return false
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });
+            });
+        },
+        // 关闭所有
+        allDialogClose() {
+            this.dialogVisible = false;
+            this.dialogGift = false;
+            this.dialogLesson = false;
+            this.dialogExpTime = false;
+            this.dialogLessonTable = false;
+        },
+        // 确认提交新增心率设备
+        confirmMember() {
+            let that = this;
+            // checkNum
+            if (!that.form.sn) {
+                this.$message.error('错了哦,编号不能为空');
+                return false
+            }
+            if (that.form.sn.length > 20) {
+                this.$message.error('错了哦,编号不能超过20个字符');
+                return false
+            }
+            // if (!that.form.venueNo) {
+            //     this.$message.error('错了哦,实体序列号不能为空');
+            //     return false
+            // }
+            // if (that.form.venueNo.length > 30) {
+            //     this.$message.error('错了哦,实体序列号不能超过30个字符');
+            //     return false
+            // }
+
+            let param = {
+                token: localStorage.token,
+                shopId: localStorage.shopId,
+                sn: that.form.sn,
+                venueNo: that.form.venueNo,
+            };
+            let postdata = qs.stringify(param);
+            AddHrSensors(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 + ' 错误码:' + json.Code);
                 }
-                if (that.form.sn.length > 20) {
-                    this.$message.error('错了哦,编号不能超过20个字符');
-                    return false
+            })
+        },
+        confirmEditMember() {
+            let that = this;
+            // checkNum
+            if (!that.form.sn) {
+                this.$message.error('错了哦,编号不能为空');
+                return false
+            }
+            if (that.form.sn.length > 20) {
+                this.$message.error('错了哦,编号不能超过20个字符');
+                return false
+            }
+            // if (!that.form.venueNo) {
+            //     this.$message.error('错了哦,实体序列号不能为空');
+            //     return false
+            // }
+            // if (that.form.venueNo.length > 30) {
+            //     this.$message.error('错了哦,实体序列号不能超过30个字符');
+            //     return false
+            // }
+
+            let param = {
+                token: localStorage.token,
+                shopId: localStorage.shopId,
+                hrId: that.form.hrId,
+                sn: that.form.sn,
+                venueNo: that.form.venueNo,
+            };
+            let postdata = qs.stringify(param);
+            EditHrSensors(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 + ' 错误码:' + json.Code);
                 }
-                // if (!that.form.venueNo) {
-                //     this.$message.error('错了哦,实体序列号不能为空');
-                //     return false
-                // }
-                // if (that.form.venueNo.length > 30) {
-                //     this.$message.error('错了哦,实体序列号不能超过30个字符');
-                //     return false
-                // }
-
-                let param = {
-                    token: localStorage.token,
-                    shopId: localStorage.shopId,
-                    hrId: that.form.hrId,
-                    sn: that.form.sn,
-                    venueNo: that.form.venueNo,
-                };
-                let postdata = qs.stringify(param);
-                EditHrSensors(postdata).then(res => {
+            })
+        },
+        // 确认提交课时
+        confirmLesson() {
+            let that = this;
+            // checkNum
+
+            let param = {
+                token: localStorage.token,
+                userCode: that.form.userCode,
+                lesson: that.form.lesson,
+            };
+            let postdata = qs.stringify(param);
+            testSelect(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 + ' 错误码:' + json.Code);
+                }
+            })
+        },
+        // 新增心率设备
+        addMember() {
+            this.clearForm();
+            this.dialogMemberVisible = true;
+            this.form.btnType = 0;
+            this.dialogTitle = '新增心率设备'
+        },
+        // 删除
+        delList() {
+            let that = this;
+            if (this.tableRadio.length == 0) {
+                this.$message.error("请先选中一条记录");
+                return false
+            }
+            let hrId = this.tableRadio.HrId;
+
+            let param = {
+                token: localStorage.token,
+                hrId: hrId,
+                status: 9,//1:启用,8:暂停,9:删除
+            };
+            let postdata = qs.stringify(param);
+
+            this.$confirm('此操作将永久删除该心率设备, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                HrSensorsStatusEdit(postdata).then(res => {
                     let json = res;
                     if (json.Code == 0) {
-                        // 关闭弹窗
-                        that.dialogMemberVisible = false;
-                        // 重载列表
-                        that.getTableQuery();
                         that.$message({
                             showClose: true,
-                            message: '心率设备信息编辑成功!',
+                            message: '选中的心率设备已删除!',
                             type: 'success'
                         });
-                    } else {
-                        that.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            // 确认提交课时
-            confirmLesson() {
-                let that = this;
-                // checkNum
-
-                let param = {
-                    token: localStorage.token,
-                    userCode: that.form.userCode,
-                    lesson: that.form.lesson,
-                };
-                let postdata = qs.stringify(param);
-                testSelect(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 + ' 错误码:' + json.Code);
                     }
-                })
-            },
-            // 新增心率设备
-            addMember() {
-                this.clearForm();
-                this.dialogMemberVisible = true;
-                this.form.btnType = 0;
-                this.dialogTitle = '新增心率设备'
-            },
-            // 删除
-            delList() {
-                let that = this;
-                if (this.tableRadio.length == 0) {
-                    this.$message.error("请先选中一条记录");
-                    return false
-                }
-                let hrId = this.tableRadio.HrId;
-
-                let param = {
-                    token: localStorage.token,
-                    hrId: hrId,
-                    status: 9,//1:启用,8:暂停,9:删除
-                };
-                let postdata = qs.stringify(param);
-
-                this.$confirm('此操作将永久删除该心率设备, 是否继续?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    HrSensorsStatusEdit(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 + ' 错误码:' + json.Code);
-                        }
-                    });
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消删除'
-                    });
                 });
-            },
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '已取消删除'
+                });
+            });
+        },
 
-            handleSelectionChange(val) {
-                this.multipleSelection = val;
-            },
-            // 查询按钮
-            query() {
-                this.getTableQuery();
-                this.$message.success('查询完毕');
-            },
-            clearForm() {
-                // clear
-                this.form.name = '';
-                this.form.sn = '';
-                this.form.venueNo = '';
-                this.form.phone = '';
-                this.form.userCode = '';
-                this.form.shopId = '';
-            },
-            // 页面数据查询
-            getTableQuery() {
-                let that = this;
-                that.loading = true;
-                let param = {
-                    token: localStorage.token,
-                    str: this.panel.str,//
-                    status: this.panel.status,//
-                    shopId: localStorage.shopId,//
-                };
-                let postdata = qs.stringify(param);
-                QueryHrSensors(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.setPaginations();
+        handleSelectionChange(val) {
+            this.multipleSelection = val;
+        },
+        // 查询按钮
+        query() {
+            this.getTableQuery();
+            this.$message.success('查询完毕');
+        },
+        clearForm() {
+            // clear
+            this.form.name = '';
+            this.form.sn = '';
+            this.form.venueNo = '';
+            this.form.phone = '';
+            this.form.userCode = '';
+            this.form.shopId = '';
+        },
+        // 页面数据查询
+        getTableQuery() {
+            let that = this;
+            that.loading = true;
+            let param = {
+                token: localStorage.token,
+                str: this.panel.str,//
+                status: this.panel.status,//
+                shopId: localStorage.shopId,//
+            };
+            let postdata = qs.stringify(param);
+            QueryHrSensors(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.$message.error(json.Memo + ' 错误码:' + json.Code);
-                    }
-                })
-            },
-            // 设置分页数据
-            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])
+                        that.allTableData = [];
+                        that.recordsTotal = 0;
                     }
-                    this.tableData = tables;
-                }
-                that.start = index * that.draw;
-                // that.getTableQuery();
-            },
-            // 自动排序
-            sortChange(params) {
-                console.log(params)
-            },
-            //            过滤时间
-            filterFmtDate(value, row, column) {
-                let that = this;
-                if (column == 0) {
-                    return '未获得'
+
+                    // 设置分页数据
+                    that.setPaginations();
                 } else {
-                    return nonTfmtDatetoLength(new Date(column * 1000), 16);
+                    that.$message.error(json.Memo + ' 错误码:' + json.Code);
                 }
-            },
+            })
+        },
+        // 设置分页数据
+        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();
+        },
+        // 自动排序
+        sortChange(params) {
+            console.log(params)
+        },
+        //            过滤时间
+        filterFmtDate(value, row, column) {
+            let that = this;
+            if (column == 0) {
+                return '未获得'
+            } else {
+                return nonTfmtDatetoLength(new Date(column * 1000), 16);
+            }
         },
-    }
+    },
+}
 </script>
 
 <style scoped>
-    @import "../assets/css/panel.css";
-
-    .context {
-        height: 770px;
-        overflow-y: scroll;
-
-        display: block;
-        margin: 0 auto;
-        background-color: #fff !important;
-        padding: 30px;
-    }
-
-    .panel-body {
-        padding: 20px;
-        background: #F0F2F5;
-    }
-
-    .change {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 10px;
-        padding-bottom: 10px;
-    }
-
-    .change button {
-        float: left;
-    }
-
-    .change button.pull-right {
-        float: right;
-    }
-
-    .likeTab {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        padding-top: 10px;
-        padding-bottom: 0;
-        border-bottom: 1px solid #ccc;
-        margin-bottom: 10px;
-    }
-
-    .likeTab button {
-        float: left;
-        border-radius: 0;
-    }
-
-    .likeTab button.pull-right {
-        float: right;
-    }
-
-    .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;
-    }
-
-    /deep/ .el-transfer-panel__item .el-checkbox__input {
-        left: 40px;
-    }
-
-    .dialogFooter {
-        width: 90%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-        margin-top: 10px;
-    }
-
-    .dialogFooter button {
-        float: right;
-        margin-left: 10px;
-    }
-
-    .dialogContent {
-        width: 100%;
-        overflow: hidden;
-        display: block;
-        margin: 0 auto;
-    }
-
-    .dialogContent .pull-left {
-        width: 30%;
-        float: left;
-    }
-
-    .dialogContent .pull-right {
-        width: 70%;
-        float: right;
-    }
+@import "../assets/css/panel.css";
+
+.context {
+    height: 770px;
+    overflow-y: scroll;
+
+    display: block;
+    margin: 0 auto;
+    background-color: #fff !important;
+    padding: 30px;
+}
+
+.panel-body {
+    padding: 20px;
+    background: #f0f2f5;
+}
+
+.change {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-top: 10px;
+    padding-bottom: 10px;
+}
+
+.change button {
+    float: left;
+}
+
+.change button.pull-right {
+    float: right;
+}
+
+.likeTab {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    padding-top: 10px;
+    padding-bottom: 0;
+    border-bottom: 1px solid #ccc;
+    margin-bottom: 10px;
+}
+
+.likeTab button {
+    float: left;
+    border-radius: 0;
+}
+
+.likeTab button.pull-right {
+    float: right;
+}
+
+.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;
+}
+
+/deep/ .el-transfer-panel__item .el-checkbox__input {
+    left: 40px;
+}
+
+.dialogFooter {
+    width: 90%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+    margin-top: 10px;
+}
+
+.dialogFooter button {
+    float: right;
+    margin-left: 10px;
+}
+
+.dialogContent {
+    width: 100%;
+    overflow: hidden;
+    display: block;
+    margin: 0 auto;
+}
+
+.dialogContent .pull-left {
+    width: 30%;
+    float: left;
+}
+
+.dialogContent .pull-right {
+    width: 70%;
+    float: right;
+}
 </style>

+ 9 - 6
pc/src/views/heartEquipPerson.vue

@@ -3,13 +3,13 @@
         <div class="panel">
             <h5>心率设备</h5>
             <div class="likeTab">
-                <el-button type="" @click="goType('heartEquip')">场馆心率设备</el-button>
-                <el-button type="primary" @click="goType('heartEquipPerson')">私有心率设备</el-button>
+                <el-button type="" @click="goType('heartEquip')" size="mini">场馆心率设备</el-button>
+                <el-button type="primary" @click="goType('heartEquipPerson')"  size="mini">私有心率设备</el-button>
             </div>
             <div class="panel-body">
                 <div class="panel_control">
                     <el-row :gutter="20">
-                        <el-col :span="4">
+                        <el-col :span="6">
                             <em>心率设备:</em>
                             <el-input v-model="panel.str" placeholder="请输入编号" type="number"></el-input>
                         </el-col>
@@ -33,9 +33,9 @@
             </div>
         </div>
         <div class="change">
-            <el-button @click="addMember" type="primary">新增心率设备</el-button>
-            <el-button @click="editList">编辑心率设备</el-button>
-            <el-button type="success" @click="getAllPower" :loading="BtnGetAllPower">全部设备电量</el-button>
+            <el-button @click="addMember" type="primary"  size="mini">新增心率设备</el-button>
+            <el-button @click="editList"  size="mini">编辑心率设备</el-button>
+            <el-button type="success" @click="getAllPower" :loading="BtnGetAllPower"  size="mini">全部设备电量</el-button>
             <!--<el-button @click="delList" type="danger">删除心率设备</el-button>-->
         </div>
         <div class="table">
@@ -65,6 +65,7 @@
                         prop="Sn"
                         label="序列号"
                         align="InVenueNo"
+                         width="80px"
                         sortable
                 >
                 </el-table-column>
@@ -93,6 +94,7 @@
                         prop="PowerPercent"
                         label="电量"
                         align="center"
+                         width="80px"
                         sortable
                 >
                     <template slot-scope="scope">
@@ -105,6 +107,7 @@
                         prop="PowerUpdateAt"
                         label="电量更新时间"
                         align="center"
+                         width="140px"
                         :formatter="filterFmtDate"
                 >
                 </el-table-column>

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

@@ -6,8 +6,8 @@
             <h5> {{regionName}}</h5>
         </div>
         <div class="change">
-            <el-button @click="addMember" type="primary">新增区域设备</el-button>
-            <el-button @click="editList">编辑区域设备</el-button>
+            <el-button @click="addMember" type="primary" size="mini">新增区域设备</el-button>
+            <el-button @click="editList" size="mini">编辑区域设备</el-button>
             <!--<el-button @click="delList" type="danger">删除区域设备</el-button>-->
         </div>
         <div class="table">

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

@@ -4,10 +4,10 @@
       <h5>课程表管理</h5>
     </div>
     <div class="change">
-      <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" :disabled="serachBtnStatus">刷新</el-button>
+      <el-button type="primary" @click="addLessonTable" v-if="userLevel != 4" size="mini">新增课程表</el-button>
+      <el-button type="" @click="copy" v-if="userLevel != 4" size="mini">复制</el-button>
+      <el-button type="" @click="delList" v-if="userLevel != 4" size="mini">删除</el-button>
+      <el-button type="" @click="query" :disabled="serachBtnStatus" size="mini">刷新</el-button>
     </div>
     <div class="table">
       <el-table
@@ -70,6 +70,7 @@
         <el-table-column
             prop="Online"
             label="是否上线"
+            width=120px
             sortable
             v-if="userLevel != 4"
         >

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

@@ -4,8 +4,8 @@
             <h5>区域管理</h5>
         </div>
         <div class="change">
-            <el-button @click="addMember" type="primary">新增区域</el-button>
-            <el-button @click="editList">编辑区域</el-button>
+            <el-button @click="addMember" type="primary" size="mini">新增区域</el-button>
+            <el-button @click="editList" size="mini">编辑区域</el-button>
             <!--<el-button @click="delList" type="danger">删除区域</el-button>-->
         </div>
         <div class="table">

+ 5 - 5
pc/src/views/tempUser.vue

@@ -5,15 +5,15 @@
             <div class="panel-body">
                 <div class="panel_control">
                     <el-row :gutter="20">
-                        <el-col :span="4">
+                        <el-col :span="5">
                             <em>姓名:</em>
                             <el-input v-model="panel.name" placeholder="请输入姓名"></el-input>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="5">
                             <em>手机号:</em>
                             <el-input v-model="panel.phone" placeholder="请输入手机号" type="number"></el-input>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="3">
                             <el-button size="" type="primary" @click="query" plain :disabled="serachBtnStatus">查询
                             </el-button>
                         </el-col>
@@ -22,8 +22,8 @@
             </div>
         </div>
         <div class="change">
-            <el-button @click="addMember"  type="primary">新增临时会员</el-button>
-            <el-button @click="delList" >删除临时会员</el-button>
+            <el-button @click="addMember"  type="primary" size="mini">新增临时会员</el-button>
+            <el-button @click="delList" size="mini">删除临时会员</el-button>
         </div>
         <div class="table">
             <el-table