瀏覽代碼

修复团队排名界面

Changpeng Duan 5 年之前
父節點
當前提交
ffac7a43f6
共有 7 個文件被更改,包括 1206 次插入8 次删除
  1. 1188 0
      pc/src/views/AcrossVip.vue
  2. 1 1
      tv/src/views/2pkRank.vue
  3. 1 1
      tv/src/views/3pkRank.vue
  4. 1 1
      tv/src/views/Main.vue
  5. 13 3
      tv/src/views/Rank.vue
  6. 1 1
      tv/src/views/pk.vue
  7. 1 1
      tv/src/views/threepk.vue

+ 1188 - 0
pc/src/views/AcrossVip.vue

@@ -0,0 +1,1188 @@
+<template>
+    <div class="context">
+        <div class="panel">
+            <h5>跨店会员</h5>
+            <div class="panel-body">
+                <div class="panel_control">
+                    <el-row :gutter="20">
+                        <el-col :span="4">
+                            <em>用户名:</em>
+                            <el-input v-model="panel.usercode" placeholder="请输入用户名"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>姓名:</em>
+                            <el-input v-model="panel.name" placeholder="请输入姓名"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <em>手机号:</em>
+                            <el-input v-model="panel.phone" placeholder="请输入手机号" type="number"></el-input>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-button size="" type="primary" @click="query" plain :disabled="serachBtnStatus">查询
+                            </el-button>
+                        </el-col>
+                    </el-row>
+                </div>
+            </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>
+        </div>
+        <div class="table">
+            <el-table
+                    :data="tableData"
+                    border
+                    is-horizontal-resize
+                    :default-sort="{prop: 'date', order: 'descending'}"
+                    element-loading-background="rgba(0, 0, 0, 0.8)"
+                    class=""
+                    @selection-change="handleSelectionChange" @current-change="clickChange"
+            >
+                >
+                <el-table-column label="选择" width="55">
+                    <template slot-scope="scope">
+                        <el-radio v-model="tableRadio" :label="scope.row"><i></i></el-radio>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        type="index"
+                        label="序号"
+                        align="center"
+                        width="50"
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="Usercode"
+                        label="用户名"
+                        sortable
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="Name"
+                        label="会员名"
+                        width="90"
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="Phone"
+                        label="手机号"
+                        width="110"
+                        sortable
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="LastLoginTime"
+                        label="上次登陆时间"
+                        :formatter="filterFmtDate"
+                        sortable
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="GroupName"
+                        label="分组名称"
+                        sortable
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="SumNormalHour"
+                        label="剩余课时"
+                        width="105"
+                        sortable
+                >
+                </el-table-column>
+                <el-table-column
+                        prop="SumGiftHour"
+                        label="剩余赠送"
+                        sortable
+                >
+                </el-table-column>
+
+            </el-table>
+            <br>
+            <el-pagination
+                    background
+                    :total="pageination.total"
+                    :page-size="pageination.pageItem"
+                    @current-change="pageChange"
+            ></el-pagination>
+        </div>
+
+        <el-dialog :title="dialogTitle" :visible.sync="dialogMemberVisible"
+                   width="650px">
+            <div class="dialogContent">
+                <div>
+
+                    <el-form ref="form" :model="form" label-width="80px">
+                        <el-form-item label="会员账号" v-if="form.btnType == 0">
+                            <el-select v-model="form.userId " placeholder="请选择会员账号">
+                                <el-option
+                                        v-for="item in form.vipList"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="商家分组" v-if="form.btnType == 0">
+                            <el-select v-model="form.vipType" placeholder="请选择商家分组">
+                                <el-option
+                                        v-for="item in memberTypes"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-form>
+                </div>
+            </div>
+            <div class="dialogFooter">
+                <el-button type="primary" size="small" v-if="form.btnType == 0" @click="confirmMember">确定</el-button>
+                <el-button type="primary" size="small" v-if="form.btnType == 1" @click="confirmEditMember">确定
+                </el-button>
+                <el-button size="small" @click="dialogMemberVisible = false">取消</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    import Global from '../Global.js'
+    import {
+        AcrossVipUserQuery,
+        VipUserSimpleQuery,
+        ClassListQuery,
+        VipUserAdd,
+        VipUserStatusEdit,
+        VipUserEdit,
+        VipUserHourEdit,
+        VipUserExpEdit,
+        VipUserClassEdit,
+        QueryTakeCustomerByName,
+        BindTakeCustomer,
+        testTable,
+        testSelect
+    } from "../api/getApiRes";
+
+    let qs = require('qs');
+    export default {
+        data() {
+            return {
+                imageUrl: '',
+                token: {}, // 七牛云的上传地址,根据自己所在地区选择,我这里是华南区
+                domain: 'https://up-z1.qiniup.com', // 这是七牛云空间的外链默认域名
+                qiniuaddr: 'qjzpcd34v.hb-bkt.clouddn.com',
+                dialogVisible: false,//其他dialog
+                TakeVisible: false,//take dialog
+                dialogMemberVisible: false,//新增会员dialog
+                dialogLesson: false,//课时调整
+                dialogGift: false,//赠送课时调整
+                dialogExpTime: false,//有效期调整
+                dialogLessonTable: false,//会员课程
+                dialogTitle: '新增会员',
+                dialogValue: [],
+                Takevalue: 0,
+                Takeoptions: [],
+                TakeHid: 0,
+                sexOptions: [
+                    {value: 1, label: '男'},//性别 1:男, 2:女
+                    {value: 2, label: '女'},
+                ],
+                yearOptions: getyearOptions(15),
+                // panel 配置项目
+                panel: {
+                    usercode: '',
+                    username: '',
+                    compname: '',
+                    keyword: '',
+                    USERCODE: '',
+                    endType: '',
+                    taskstatus: 99,
+                    draw: 1,
+                    start: 0,
+                    recordsTotal: 0,
+                    tableData: [],
+                    allTableData: [],
+                    limit: '10',
+                    multipleSort: false,
+                    loading: false,
+                    fileList: [],
+                    multipleSelection: [],
+                    detectedmac: '',
+                    vipType: '',
+                    expDay: '',
+                    vipOptions: vipOptions(0),
+                    endTypeOptions: endTypeOptions(),
+                    time1: globalBt(),
+                },
+                multipleSelection: [],
+                pageination: {
+                    pageItem: 20,
+                    pageoptions: pageOptions(),
+                    total: 100,
+                    pageIndex: 1,
+                },
+                form: {
+                    phone: '',
+                    name: '',
+                    userCode: '',
+                    shopId: '',
+                    Id: '',
+                    userId: '',
+                    height: '',
+                    weight: '',
+                    staticHr: '',
+                    head: '',
+                    birthday: '',
+                    sex: 1,
+                    vipType: 1,
+                    normalhour: 0,
+                    newnormalhour: 0,
+                    gifthour: 0,
+                    newgifthour: 0,
+                    btnType: 0,//0新建,1编辑编辑
+                    memo: '',
+                    expTime: '',
+                    vipList: [],
+                    classlist: [],
+                    dialogdata: [],//穿梭待选
+                    dialogValue: [],//穿梭已选
+                },
+                memberTypes: vipOptions(1),
+                tableData: [],
+                tableRadio: [],
+                userLevel: localStorage.userLevel,
+                serachBtnStatus: false
+            }
+        },
+        mounted() {
+            // 加载课程选项
+            this.getClassVipuserQuery();
+            // 读取列表
+            this.getTableQuery();
+        },
+        methods: {
+            // 获取本课程下的会员列表
+            getClassVipuserQuery() {
+                let that = this;
+                let param = {
+                    token: localStorage.token,
+                };
+                let postdata = qs.stringify(param);
+                VipUserSimpleQuery(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        console.log(json.Rs);
+                        that.form.vipList = turnResToOptionBySimViper(json.Rs);
+                        console.log(that.form.vipList);
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 关联手机号跳转
+            goRelevance(row) {
+                this.$router.push({path: '/relevancePhone', query: {userId: row.UserInfo.Id}});
+            },
+            // 上传文件到七牛云
+            upqiniu(req) {
+                let that = this;
+                const config = {
+                    headers: {'Content-Type': 'multipart/form-data'}
+                };
+                let filetype = '';
+                if (req.file.type === 'image/png') {
+                    filetype = 'png'
+                } else {
+                    filetype = 'jpg'
+                }
+                // 重命名要上传的文件
+                const keyname = 'GoAllOut' + new Date().valueOf() + Math.floor(Math.random() * 100) + '.' + filetype;
+                // 从后端获取上传凭证token
+                let param = {
+                    token: localStorage.token,
+                };
+                let postdata = qs.stringify(param);
+                this.axios.post(headapi + 'v1/QiNiu/GetSimpleQiNiuToken', postdata).then(res => {
+                    const formdata = new FormData();
+                    formdata.append('file', req.file);
+                    formdata.append('token', res.data.QiNinToken);
+                    formdata.append('key', keyname);
+                    // 获取到凭证之后再将文件上传到七牛云空间
+                    this.axios.post(this.domain, formdata, config).then(res => {
+                        this.imageUrl = 'http://' + this.qiniuaddr + '/' + res.data.key;
+                        this.form.head = 'http://' + this.qiniuaddr + '/' + keyname;
+                    })
+                })
+            },
+            // 验证文件合法性
+            beforeUpload(file) {
+                const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
+                const isLt2M = file.size / 1024 / 1024 < 2;
+                if (!isJPG) {
+                    this.$message.error('上传头像图片只能是 JPG 格式!')
+                }
+                if (!isLt2M) {
+                    this.$message.error('上传头像图片大小不能超过 2MB!')
+                }
+                return isJPG && isLt2M
+            },
+            // 打开take绑定和拉取take数据
+            addTake(row) {
+                let that = this;
+                let param = {
+                    token: localStorage.token,
+                    userId: row.UserInfo.Id,
+                };
+                this.TakeHid = row.UserInfo.HId;
+                let postdata = qs.stringify(param);
+                QueryTakeCustomerByName(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        if (json.Rs != '') {
+                            that.Takeoptions = json.Rs;
+                            that.Takevalue = json.Rs[0].Id;
+                            // 有值才能打开
+                            this.TakeVisible = true;
+                        } else {
+                            that.$message.error('当前用户没有可用的Take账号');
+                            this.TakeVisible = false;
+                            console.log('null');
+                        }
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 绑定take
+            confirmTake() {
+                let that = this;
+                let param = {
+                    token: localStorage.token,
+                    hId: this.TakeHid,
+                    customerId: this.Takevalue,
+                    memo: '后台管理手动绑定',
+                };
+                let postdata = qs.stringify(param);
+                BindTakeCustomer(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        that.$message({
+                            showClose: true,
+                            message: 'Take绑定成功!',
+                            type: 'success'
+                        });
+                        this.TakeVisible = false;
+                        // 读取列表
+                        this.getTableQuery();
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+
+            clickChange(item) {
+                this.tableRadio = item
+            },
+            // 编辑
+            editMember(row) {
+                let that = this;
+                this.clearForm();
+                this.form.phone = row.UserInfo.Phone;
+                this.form.name = row.UserInfo.Name;
+                this.form.memo = row.UserInfo.Memo;
+                this.imageUrl = row.UserInfo.Head;
+                this.form.height = row.UserInfo.Height;
+                this.form.weight = parseInt(row.UserInfo.Weight) / 10;
+                // this.form.staticHr = row.UserInfo.StaticHr;
+                this.form.sex = row.UserInfo.Sex;
+                this.form.birthday = row.UserInfo.Birthday;
+                this.form.ubId = row.UserInfo.UbId;
+                this.form.btnType = 1;
+                this.form.shopId = row.UserInfo.ShopId;
+                this.form.Id = row.UserInfo.Id;
+                this.dialogMemberVisible = true;
+                this.dialogTitle = '编辑会员'
+
+            },
+            // 禁用
+            pauseRow(row) {
+                let that = this;
+                this.$confirm('是否禁用用户' + row.UserInfo.Name + '?', '禁用操作', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    let param = {
+                        token: localStorage.token,
+                        userId: row.UserInfo.Id,
+                        status: 8,//状态 8:禁用 1:启用 9:删除
+                    };
+                    let postdata = qs.stringify(param);
+                    VipUserStatusEdit(postdata).then(res => {
+                        let json = res;
+                        if (json.Code == 0) {
+                            that.$message({
+                                showClose: true,
+                                message: row.UserInfo.Name + '禁用成功!',
+                                type: 'success'
+                            });
+                            // table 重载
+                            that.getTableQuery();
+                        } else {
+                            that.$message.error(json.Memo);
+                        }
+                    })
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消禁用'
+                    });
+                });
+            },
+            // 启用
+            runRow(row) {
+                let that = this;
+                this.$confirm('是否启用用户' + row.UserInfo.Name + '?', '启用操作', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    let param = {
+                        token: localStorage.token,
+                        userId: row.UserInfo.Id,
+                        status: 1,//状态 8:禁用 1:启用 9:删除
+                    };
+                    let postdata = qs.stringify(param);
+                    VipUserStatusEdit(postdata).then(res => {
+                        let json = res;
+                        if (json.Code == 0) {
+                            that.$message({
+                                showClose: true,
+                                message: row.UserInfo.Name + '启用成功!',
+                                type: 'success'
+                            });
+                            // table 重载
+                            that.getTableQuery();
+                        } else {
+                            that.$message.error(json.Memo);
+                        }
+                    })
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消启用'
+                    });
+                });
+            },
+            // 关闭所有
+            allDialogClose() {
+                this.dialogVisible = false;
+                this.dialogGift = false;
+                this.dialogLesson = false;
+                this.dialogExpTime = false;
+                this.dialogLessonTable = false;
+            },
+            // 有效期调整
+            ExpTimeChange() {
+                // 仅针对年费用户,使用日期格式
+                this.allDialogClose();
+                if (this.tableRadio.length == 0) {
+                    this.$message.error("请先选中一条记录");
+                    return false
+                }
+                let row = this.tableRadio;
+                if (parseInt(row.UserInfo.VipType) == 2) {
+                    this.$message({
+                        showClose: true,
+                        message: '错了哦,充值会员不能调整有效期',
+                        type: 'error'
+                    });
+                    return false
+                }
+                this.form.rowName = row.UserInfo.Name;
+                this.form.userId = row.UserInfo.Id;
+                this.form.expTime = row.UserInfo.ExpTime
+                this.dialogVisible = true;
+                this.dialogExpTime = true;
+            },
+            // 课时调整
+            lessonChange() {
+                this.allDialogClose();
+                if (this.tableRadio.length == 0) {
+                    this.$message.error("请先选中一条记录");
+                    return false
+                }
+                let row = this.tableRadio;
+                this.form.normalhour = row.UserInfo.RemainNormalhour;
+                this.form.newnormalhour = 0;
+                this.form.rowName = row.UserInfo.Name;
+                this.form.userId = row.UserInfo.Id;
+                this.dialogVisible = true;
+                this.dialogLesson = true;
+
+            },
+            // 赠送调整
+            giftChange() {
+                this.allDialogClose();
+                if (this.tableRadio.length == 0) {
+                    this.$message.error("请先选中一条记录");
+                    return false
+                }
+                let row = this.tableRadio;
+                this.form.gifthour = row.UserInfo.RemainGifthour;
+                this.form.newgifthour = 0;
+                this.form.rowName = row.UserInfo.Name;
+                this.form.userId = row.UserInfo.Id;
+                this.dialogVisible = true;
+                this.dialogGift = true;
+
+            },
+            // 增删会员课程
+            lessonStudenChange() {
+                let that = this;
+                this.allDialogClose();
+                // 重载课程列表选项
+                if (this.tableRadio.length == 0) {
+                    that.$message.error("请先选中一条记录");
+                    return false
+                }
+                let row = this.tableRadio;
+                this.form.rowName = row.UserInfo.Name;
+                this.form.userId = row.UserInfo.Id;
+                if (row.ClassInfo) {
+                    row.ClassInfo.map(function (item) {
+                        that.form.dialogValue.push(item.ClassId)
+                    })
+                }
+                this.dialogVisible = true;
+                this.dialogLessonTable = true;
+            },
+            // 确认提交新增会员
+            confirmMember() {
+                let that = this;
+                // checkNum
+                if (!that.form.phone) {
+                    this.$message.error('错了哦,手机号不能为空');
+                    return false
+                }
+                if (!globalCheckPhone(that.form.phone)) {
+                    this.$message.error('错了哦,手机号格式不正确');
+                    return false
+                }
+                if (!that.form.name) {
+                    this.$message.error('错了哦,会员名不能为空');
+                    return false
+                }
+                if (that.form.name.length > 8) {
+                    this.$message.error('错了哦,会员名字数超过8个字');
+                    return false
+                }
+                if (that.form.memo) {
+                    if (that.form.memo.length > 200) {
+                        this.$message.error('错了哦,备注字数超过200个字');
+                        return false
+                    }
+                }
+
+                if (!that.form.height) {
+                    this.$message.error('错了哦,身高不能为空');
+                    return false
+                }
+                if (!that.form.weight) {
+                    this.$message.error('错了哦,体重不能为空');
+                    return false
+                }
+                // if (!that.form.staticHr) {
+                //     this.$message.error('错了哦,静态心率不能为空');
+                //     return false
+                // }
+                if (!that.form.birthday) {
+                    this.$message.error('错了哦,出生年份不能为空');
+                    return false
+                }
+
+                // 课程添加使用字符串形式
+                let curClasslist = '';
+                if (that.form.classlist) {
+                    curClasslist = that.form.classlist.toString();
+                }
+
+                let param = {
+                    token: localStorage.token,
+                    shopId: localStorage.shopId,
+                    phone: that.form.phone,
+                    name: that.form.name,
+                    vipType: that.form.vipType,
+                    normalhour: that.form.normalhour,
+                    gifthour: that.form.gifthour,
+                    classlist: curClasslist,
+                    memo: that.form.memo,
+                    height: that.form.height,
+                    weight: that.form.weight,
+                    // staticHr: that.form.staticHr,
+                    sex: that.form.sex,
+                    head: that.form.head,
+                    birthday: nonTfmtDatetoLength(that.form.birthday, 10),
+                };
+                let postdata = qs.stringify(param);
+                VipUserAdd(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // 关闭弹窗
+                        that.dialogMemberVisible = false;
+                        // 重载列表
+                        that.getTableQuery();
+                        that.$message({
+                            showClose: true,
+                            message: '会员添加成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            confirmEditMember() {
+                let that = this;
+                // checkNum
+                if (!that.form.phone) {
+                    this.$message.error('错了哦,手机号不能为空');
+                    return false
+                }
+                if (!globalCheckPhone(that.form.phone)) {
+                    this.$message.error('错了哦,手机号格式不正确');
+                    return false
+                }
+                if (!that.form.name) {
+                    this.$message.error('错了哦,会员名不能为空');
+                    return false
+                }
+                if (that.form.name.length > 8) {
+                    this.$message.error('错了哦,会员名字数超过8个字');
+                    return false
+                }
+                if (that.form.memo) {
+                    if (that.form.memo.length > 200) {
+                        this.$message.error('错了哦,备注字数超过200个字');
+                        return false
+                    }
+                }
+
+                if (!that.form.height) {
+                    this.$message.error('错了哦,身高不能为空');
+                    return false
+                }
+                if (!that.form.weight) {
+                    this.$message.error('错了哦,体重不能为空');
+                    return false
+                }
+                // if (!that.form.staticHr) {
+                //     this.$message.error('错了哦,静态心率不能为空');
+                //     return false
+                // }
+                if (!that.form.birthday) {
+                    this.$message.error('错了哦,出生年份不能为空');
+                    return false
+                }
+                let param = {
+                    token: localStorage.token,
+                    userId: that.form.Id,
+                    phone: that.form.phone,
+                    name: that.form.name,
+                    memo: that.form.memo,
+                    head: that.form.head,
+                    height: that.form.height,
+                    weight: that.form.weight,
+                    // staticHr: that.form.staticHr,
+                    sex: that.form.sex,
+                    birthday: nonTfmtDatetoLength(that.form.birthday, 10),
+                    ubId: that.form.ubId
+                };
+                let postdata = qs.stringify(param);
+                console.log(param);
+                VipUserEdit(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // 关闭弹窗
+                        that.dialogMemberVisible = false;
+                        // 重载列表
+                        that.getTableQuery();
+                        that.$message({
+                            showClose: true,
+                            message: '会员信息编辑成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 确认提交课时
+            confirmLesson() {
+                let that = this;
+                // checkNum
+                let param = {
+                    token: localStorage.token,
+                    userId: that.form.userId,
+                    chgHour: that.form.newnormalhour,
+                    chgType: 1,//课时类型 1:普通课时 2:赠送课时
+                };
+                let postdata = qs.stringify(param);
+                VipUserHourEdit(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // 关闭弹窗
+                        that.dialogVisible = false;
+                        // 重载列表
+                        that.getTableQuery();
+                        that.$message({
+                            showClose: true,
+                            message: '课时调整成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 确认提交赠送
+            confirmGift() {
+                let that = this;
+                let param = {
+                    token: localStorage.token,
+                    userId: that.form.userId,
+                    chgHour: that.form.newgifthour,
+                    chgType: 2,//课时类型 1:普通课时 2:赠送课时
+                };
+                let postdata = qs.stringify(param);
+                VipUserHourEdit(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // 关闭弹窗
+                        that.dialogVisible = false;
+                        // 重载列表
+                        that.getTableQuery();
+                        that.$message({
+                            showClose: true,
+                            message: '赠送课时调整成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 确认提交有效期
+            confirmExpTime() {
+                let that = this;
+                // checkNum
+
+                let param = {
+                    token: localStorage.token,
+                    userId: that.form.userId,
+                    expTime: nonTfmtDate(that.form.expTime, 16),
+                };
+                let postdata = qs.stringify(param);
+                VipUserExpEdit(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // 关闭弹窗
+                        that.dialogVisible = false;
+                        // 重载列表
+                        that.getTableQuery();
+                        that.$message({
+                            showClose: true,
+                            message: '赠送课时调整成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 确认提交会员课程
+            confirmLessonTable() {
+                let that = this;
+                // checkNum
+                let classList = that.form.dialogValue ? that.form.dialogValue.toString() : '';
+
+                let param = {
+                    token: localStorage.token,
+                    userId: that.form.userId,
+                    classList: classList,
+                };
+                let postdata = qs.stringify(param);
+                VipUserClassEdit(postdata).then(res => {
+                    let json = res;
+                    if (json.Code == 0) {
+                        // 关闭弹窗
+                        that.dialogVisible = false;
+                        // 重载列表
+                        that.getTableQuery();
+                        that.$message({
+                            showClose: true,
+                            message: '会员课程调整成功!',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 新增会员
+            addMember() {
+                this.clearForm();
+                this.dialogMemberVisible = true;
+                this.btnType = 0;
+                this.form.btnType = 0;
+                this.dialogTitle = '新增会员'
+            },
+            // 删除
+            delList() {
+                let that = this;
+                if (this.tableRadio.length == 0) {
+                    that.$message.error("请先选中一条记录");
+                    return false
+                }
+                let detectorid = this.tableRadio.UserInfo.Id;
+
+                let param = {
+                    token: localStorage.token,
+                    userId: detectorid,
+                    status: 9,//0禁用1启用9删除
+                };
+                let postdata = qs.stringify(param);
+
+                this.$confirm('此操作将永久删除该会员, 是否继续?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    VipUserStatusEdit(postdata).then(res => {
+                        let json = res;
+                        if (json.Code == 0) {
+                            that.$message({
+                                showClose: true,
+                                message: '选中的会员已删除!',
+                                type: 'success'
+                            });
+                            // 重载列表
+                            that.getTableQuery();
+                        } else {
+                            that.$message.error(json.Memo);
+                        }
+                    });
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消删除'
+                    });
+                });
+            },
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            // 查询按钮
+            query() {
+                let that = this;
+                that.serachBtnStatus = true;
+                that.getTableQuery();
+                that.$message.success('查询完毕');
+                let totalTime = 2
+                let clock = window.setInterval(() => {
+                    totalTime--
+                    if (totalTime < 0) {
+                        totalTime = 2;
+                        that.serachBtnStatus = false;
+                    }
+                }, 1000)
+            },
+            clearForm() {
+                // clear
+                this.form.name = '';
+                this.form.head = '';
+                this.imageUrl = '';
+                this.form.phone = '';
+                this.form.memo = '';
+                this.form.normalhour = 0;
+                this.form.gifthour = 0;
+                this.form.height = '';
+                this.form.weight = '';
+                this.form.staticHr = 0;
+                this.form.sex = 1;
+                this.form.birthday = '';
+                this.form.userCode = '';
+                this.form.shopId = '';
+                this.form.classlist = [];
+            },
+            // 页面数据查询
+            getTableQuery() {
+                let that = this;
+                that.loading = true;
+                let param = {
+                    token: localStorage.token,
+                    vipType: that.panel.vipType,//
+                    phone: that.panel.phone,//
+                    usercode: that.panel.usercode,//
+                    name: that.panel.name,//
+                    expDay: that.panel.expDay,//
+                    start: 1,//
+                    tableMax: 9999,//
+                };
+                let postdata = qs.stringify(param);
+                AcrossVipUserQuery(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();
+                    } else {
+                        that.$message.error(json.Memo);
+                    }
+                })
+            },
+            // 设置分页数据
+            setPaginations() {
+                // 分页属性
+                let that = this;
+                that.pageination.total = that.recordsTotal;
+
+                // 默认分页
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+            },
+            // 每页显示数量
+            handleSizeChange() {
+                let that = this;
+                that.tableData = that.allTableData.filter((item, index) => {
+                    return index < that.pageination.pageItem;
+                });
+                that.draw = that.pageination.pageItem;
+                // that.getTableQuery();
+            },
+            // 翻页
+            pageChange(pageIndex) {
+                let that = this;
+                // 获取当前页
+                let index = that.pageination.pageItem * (pageIndex - 1);
+                // 数据总数
+                let nums = that.pageination.pageItem * pageIndex;
+                // 容器
+                let tables = [];
+                for (var i = index; i < nums; i++) {
+                    if (that.allTableData[i]) {
+                        tables.push(that.allTableData[i])
+                    }
+                    this.tableData = tables;
+                }
+                that.start = index * that.draw;
+                // that.getTableQuery();
+            },
+            // 过滤时间
+            filterFmtDate(value, row, column) {
+                let that = this;
+                if (column == "0001-01-01T08:05:43+08:05" || column == "0001-01-01T00:00:00Z") {
+                    return '无有效期';
+                } else {
+                    return nonTfmtDatetoLength(column, 16);
+                }
+            },
+        }
+        ,
+        watch: {
+            $route(to) {
+                if (to.name == 'AcrossVip') {
+                    // 加载课程选项
+                    this.getClassVipuserQuery();
+                    // 读取列表
+                    this.getTableQuery();
+                }
+            }
+            ,
+        }
+        ,
+    }
+</script>
+
+<style scoped>
+    @import "../assets/css/panel.css";
+
+    .context {
+        border-radius: 12px;
+        height: 770px;
+        overflow-y: scroll;
+        display: block;
+        margin: 0 auto;
+        background-color: #fff !important;
+        padding: 30px;
+        padding-bottom: 30px;
+    }
+
+    .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 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: 40%;
+        float: left;
+    }
+
+    .dialogContent .pull-right {
+        width: 60%;
+        float: right;
+    }
+
+    .tabwild {
+        width: 100% !important;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+
+    .lessonSpan {
+        width: 78px;
+        height: 22px;
+        border-radius: 11px;
+        margin-right: 5px;
+        float: left;
+        margin-bottom: 3px;
+        text-align: center;
+        color: #000;
+        font-size: 12px;
+    }
+
+    .btn {
+        float: left !important;
+        margin-right: 5px;
+    }
+
+    /deep/ table .el-button + .el-button {
+        margin-left: 0;
+        margin-right: 3px;
+        /*float: left;*/
+        padding: 7px 6px;
+    }
+
+    table {
+        width: 100%;
+        display: block;
+        margin: 0 auto;
+        overflow: scroll;
+
+    }
+
+    .pull-left /deep/ .el-form .el-form-item {
+        width: 50%;
+        float: left;
+    }
+
+    .pull-left /deep/ .el-form-item__content {
+        margin-left: 20px;
+    }
+
+    .pull-left .el-input-number {
+        width: 130px;
+    }
+
+    .cell img {
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+
+    .el-date-editor.el-input__inner {
+        width: 156px;
+    }
+
+    .avatar-uploader {
+        border: 1px solid #ccc;
+        cursor: pointer;
+        border-radius: 5px;
+    }
+
+    /deep/ .el-upload {
+        width: 100%;
+        overflow: hidden;
+        display: block;
+        margin: 0 auto;
+    }
+
+    /deep/ .el-upload img {
+        width: 70px;
+        height: 70px;
+        float: left;
+    }
+
+    .relevance {
+        margin-top: 10px;
+    }
+</style>

+ 1 - 1
tv/src/views/2pkRank.vue

@@ -247,7 +247,7 @@
             },
             fmtFloat(val) {
                 if (val == 0) {
-                    return '0'
+                    return '0.0'
                 } else {
                     return parseFloat(val).toFixed(1);
                 }

+ 1 - 1
tv/src/views/3pkRank.vue

@@ -337,7 +337,7 @@
             },
             fmtFloat(val) {
                 if (val == 0) {
-                    return '0'
+                    return '0.0'
                 } else {
                     return parseFloat(val).toFixed(1);
                 }

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

@@ -499,7 +499,7 @@
             },
             fmtFloat(val) {
                 if (val == 0) {
-                    return '0'
+                    return '0.0'
                 } else {
                     return parseFloat(val).toFixed(1);
                 }

+ 13 - 3
tv/src/views/Rank.vue

@@ -144,8 +144,18 @@
                 ClassUserRank(postdata).then(res => {
                     let json = res;
                     if (json.Code == 0) {
-                        this.students.CkSort = json.Rs.CkSort;
-                        this.students.CalSort = json.Rs.CalSort;
+                        this.students.CkSort = json.Rs;
+                        this.students.CalSort = json.Rs;
+                        let Rs = json.Rs;
+                        if(Rs){
+                            // 排序
+                            that.students.CkSort = that.students.CkSort.sort(function (a, b) {
+                                return b.Ck - a.Ck;
+                            });
+                            that.students.CalSort = that.students.CalSort.sort(function (a, b) {
+                                return b.Cle - a.Cle;
+                            });
+                        }
                     } else {
                         this.students.CkSort = [];
                         this.students.CalSort = [];
@@ -170,7 +180,7 @@
             },
             fmtFloat(val) {
                 if (val == 0) {
-                    return '0'
+                    return '0.0'
                 } else {
                     return parseFloat(val).toFixed(1);
                 }

+ 1 - 1
tv/src/views/pk.vue

@@ -447,7 +447,7 @@
             },
             fmtFloat(val) {
                 if (val == 0) {
-                    return '0'
+                    return '0.0'
                 } else {
                     return parseFloat(val).toFixed(1);
                 }

+ 1 - 1
tv/src/views/threepk.vue

@@ -515,7 +515,7 @@
             },
             fmtFloat(val) {
                 if (val == 0) {
-                    return '0'
+                    return '0.0'
                 } else {
                     return parseFloat(val).toFixed(1);
                 }