You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
4.8 KiB
Vue

<template>
<div>
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="充值" name="充值">
<div class="memberRanking-main-title">
充值排行榜
</div>
<el-table :data="recList" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}" max-height="600">
<el-table-column align="center" prop="memberName" label="会员名字"></el-table-column>
<el-table-column align="center" prop="memberRechargeMoney" label="充值金额"></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="疗程" name="疗程">
<div class="memberRanking-main-title">
疗程排行榜
</div>
<el-table :data="courseList" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}" max-height="600">
<el-table-column align="center" prop="memberName" label="会员名字"></el-table-column>
<el-table-column align="center" prop="memberCourseMoney" label="疗程金额"></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="服务" name="服务">
<div class="memberRanking-main-title">
<div class="block">
<span class="demonstration">服务排行榜(月)</span>
<el-date-picker style="width: 180px;" v-model="month" type="month" :picker-options="pickerOptions" format="yyyy-MM" placeholder="选择月" @change="changeMonth">
</el-date-picker>
</div>
</div>
<el-table :data="cashList" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}" max-height="600">
<el-table-column align="center" prop="memberName" label="会员名字"></el-table-column>
<el-table-column align="center" prop="cashStatisticMoney" label="服务金额"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {
storeStatisticMemberList,
memberRecharge,
memberCourse,
} from "../../../api/statistics.js";
export default {
data() {
return {
recList: [],
courseList: [],
cashList: [],
queryForm: [],
dateStr: null,
activeName: "充值",
month: null,
pickerOptions: {
//大于当前月分的日期不可选
disabledDate: (time) => {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
if (month >= 1 && month <= 9) {
month = "0" + month;
}
var currentdate = year.toString() + month.toString();
var timeyear = time.getFullYear();
var timemonth = time.getMonth() + 1;
if (timemonth >= 1 && timemonth <= 9) {
timemonth = "0" + timemonth;
}
var timedate = timeyear.toString() + timemonth.toString();
return currentdate < timedate;
},
},
};
},
methods: {
change(res) {
this.queryForm.startDates = res[0];
this.queryForm.stopDates = res[1];
},
changeMonth(res) {
if(!res){
this.dateStr = this.formatTime(new Date(), "YYYY-MM");
this.storeStatisticMemberList();
return
}
this.dateStr = this.formatTime(res, "YYYY-MM");
this.storeStatisticMemberList();
},
handleClick() {
this.storeStatisticMemberList();
},
storeStatisticMemberList() {
let params = {
dateStr:this.dateStr
}
memberRecharge().then((res) => {
console.log(res);
if (res.code == "000000") {
this.recList = res.rows;
} else {
this.$message.warning({
message: "查询数据失败",
});
}
});
memberCourse().then((res) => {
console.log(res);
if (res.code == "000000") {
this.courseList = res.rows;
} else {
this.$message.warning({
message: "查询数据失败",
});
}
});
storeStatisticMemberList(params).then((res) => {
if (res.code == "000000") {
this.cashList = res.rows;
} else {
this.$message.warning({
message: "查询数据失败",
});
}
});
},
},
created() {
this.dateStr = this.formatTime(new Date(), "YYYY-MM");
this.storeStatisticMemberList();
this.month = this.formatTime(new Date(), "YYYY-MM");
},
};
</script>
<style>
.memberRanking-main {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
.memberRanking-main-table {
width: 300px;
margin: 20px;
}
.memberRanking-main-title {
width: 100%;
text-align: center;
font-weight: 700;
padding-bottom: 20px;
height: 40px;
line-height: 40px;
}
</style>