|
@@ -3,7 +3,7 @@
|
|
|
<div class="visit-tips" v-show="activeType == 'visited'">
|
|
|
<span>学员上周训练时间不足80分钟或训练次数小于4次则需要回访</span>
|
|
|
</div>
|
|
|
- <search @onSearch="search" placeholder="学生姓名或手机号">
|
|
|
+ <search @onSearch="onSearch" placeholder="学生姓名或手机号">
|
|
|
<template #left>
|
|
|
<van-dropdown-menu style="padding-right: .1rem" :close-on-click-outside="false" active-color="#01C1B5">
|
|
|
<van-dropdown-item title="筛选" ref="item" class="visitTime">
|
|
@@ -13,32 +13,32 @@
|
|
|
</template>
|
|
|
</search>
|
|
|
<van-row class="searchArray">
|
|
|
- <van-col span="6" class="title-style">
|
|
|
+ <van-col span="6" class="title-style" @click="onSort(0)">
|
|
|
训练时长
|
|
|
<div>
|
|
|
- <i class="box box-up active" style="margin-bottom: .02rem;"></i>
|
|
|
- <i class="box box-down"></i>
|
|
|
+ <i class="box box-up" :class="{'active': searchArray[0] == 'ASC'}" style="margin-bottom: .02rem;"></i>
|
|
|
+ <i class="box box-down" :class="{'active': searchArray[0] == 'DESC'}"></i>
|
|
|
</div>
|
|
|
</van-col>
|
|
|
- <van-col span="6" class="title-style">
|
|
|
+ <van-col span="6" class="title-style" @click="onSort(1)">
|
|
|
训练次数
|
|
|
<div>
|
|
|
- <i class="box box-up active" style="margin-bottom: .02rem;"></i>
|
|
|
- <i class="box box-down"></i>
|
|
|
+ <i class="box box-up" :class="{'active': searchArray[1] == 'ASC'}" style="margin-bottom: .02rem;"></i>
|
|
|
+ <i class="box box-down" :class="{'active': searchArray[1] == 'DESC'}"></i>
|
|
|
</div>
|
|
|
</van-col>
|
|
|
- <van-col span="6" class="title-style">
|
|
|
+ <van-col span="6" class="title-style" @click="onSort(2)">
|
|
|
训练天数
|
|
|
<div>
|
|
|
- <i class="box box-up active" style="margin-bottom: .02rem;"></i>
|
|
|
- <i class="box box-down"></i>
|
|
|
+ <i class="box box-up" :class="{'active': searchArray[2] == 'ASC'}" style="margin-bottom: .02rem;"></i>
|
|
|
+ <i class="box box-down" :class="{'active': searchArray[2] == 'DESC'}"></i>
|
|
|
</div>
|
|
|
</van-col>
|
|
|
- <van-col span="6" class="title-style">
|
|
|
+ <van-col span="6" class="title-style" @click="onSort(3)">
|
|
|
评测次数
|
|
|
<div>
|
|
|
- <i class="box box-up active" style="margin-bottom: .02rem;"></i>
|
|
|
- <i class="box box-down"></i>
|
|
|
+ <i class="box box-up" :class="{'active': searchArray[3] == 'ASC'}" style="margin-bottom: .02rem;"></i>
|
|
|
+ <i class="box box-down" :class="{'active': searchArray[3] == 'DESC'}"></i>
|
|
|
</div>
|
|
|
</van-col>
|
|
|
</van-row>
|
|
@@ -61,55 +61,7 @@
|
|
|
<script>
|
|
|
import Search from '@/components/Search';
|
|
|
import dayjs from "dayjs";
|
|
|
-export function getNowDateAndMonday(time) {
|
|
|
- let timestamp = new Date(time.replace(/-/g, "/")).getTime();
|
|
|
- let serverDate = new Date(time);
|
|
|
- if (serverDate.getDay() == 0) {
|
|
|
- timestamp -= 7 * 24 * 60 * 60 * 1000;
|
|
|
- }
|
|
|
- let mondayTime = timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000;
|
|
|
-
|
|
|
- let mondayData = new Date(mondayTime);
|
|
|
- //年
|
|
|
- let mondayY = mondayData.getFullYear();
|
|
|
- //月
|
|
|
- let mondayM =
|
|
|
- mondayData.getMonth() + 1 < 10
|
|
|
- ? "0" + (mondayData.getMonth() + 1)
|
|
|
- : mondayData.getMonth() + 1;
|
|
|
- //日
|
|
|
- let mondayD =
|
|
|
- mondayData.getDate() < 10
|
|
|
- ? "0" + mondayData.getDate()
|
|
|
- : mondayData.getDate();
|
|
|
-
|
|
|
- let str = mondayY + "-" + mondayM + "-" + mondayD;
|
|
|
- return str;
|
|
|
-}
|
|
|
-export function getNowDateAndSunday(time) {
|
|
|
- let timestamp = new Date(time.replace(/-/g, "/")).getTime();
|
|
|
- let serverDate = new Date(time);
|
|
|
-
|
|
|
- let num = 7 - serverDate.getDay();
|
|
|
- if (num == 7) {
|
|
|
- num = 0;
|
|
|
- }
|
|
|
- let sundayTiem = timestamp + num * 24 * 60 * 60 * 1000;
|
|
|
- let SundayData = new Date(sundayTiem);
|
|
|
- //年
|
|
|
- let tomorrowY = SundayData.getFullYear(); //月
|
|
|
- let tomorrowM =
|
|
|
- SundayData.getMonth() + 1 < 10
|
|
|
- ? "0" + (SundayData.getMonth() + 1)
|
|
|
- : SundayData.getMonth() + 1;
|
|
|
- //日
|
|
|
- let tomorrowD =
|
|
|
- SundayData.getDate() < 10
|
|
|
- ? "0" + SundayData.getDate()
|
|
|
- : SundayData.getDate();
|
|
|
- let str = tomorrowY + "-" + tomorrowM + "-" + tomorrowD;
|
|
|
- return str;
|
|
|
-}
|
|
|
+import { getNowDateAndMonday, getNowDateAndSunday } from '@/common/common'
|
|
|
export default {
|
|
|
props: {
|
|
|
active: {
|
|
@@ -130,9 +82,16 @@ export default {
|
|
|
// 类型为全部时
|
|
|
startDay: null,
|
|
|
endDay: null,
|
|
|
+ search: null,
|
|
|
+ searchArray: [null, null, null, null],
|
|
|
searchType: {
|
|
|
-
|
|
|
- }
|
|
|
+ // ASC DESC
|
|
|
+ totalPlayTime: null,
|
|
|
+ trainNum: null,
|
|
|
+ trainDay: null,
|
|
|
+ recordNum: null,
|
|
|
+ },
|
|
|
+
|
|
|
}
|
|
|
},
|
|
|
async mounted() {
|
|
@@ -149,9 +108,8 @@ export default {
|
|
|
this.defaultDate = [new Date(startTime), new Date(endTime)]
|
|
|
this.startDay = startTime
|
|
|
this.endDay = endTime
|
|
|
- // let startTime = getNowDateAndMonday(dayjs)
|
|
|
- // let startTime = getNowDateAndMonday(dayjs().format("YYYY-MM-DD"));
|
|
|
- // let endTime = getNowDateAndSunday(dayjs().format("YYYY-MM-DD"));
|
|
|
+
|
|
|
+ this.onSort()
|
|
|
},
|
|
|
computed: {
|
|
|
calendarValue() {
|
|
@@ -162,9 +120,48 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
- search(val) {
|
|
|
- this.params.search = val
|
|
|
- // this.onResetList()
|
|
|
+ onSort(type) {
|
|
|
+ let searchArray = this.searchArray
|
|
|
+ searchArray.forEach((item, index) => {
|
|
|
+ if(index != type) {
|
|
|
+ searchArray[index] = null
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(searchArray[type] == 'ASC') {
|
|
|
+ searchArray[type] = 'DESC'
|
|
|
+ } else if(searchArray[type] == 'DESC') {
|
|
|
+ searchArray[type] = null
|
|
|
+ } else {
|
|
|
+ searchArray[type] = 'ASC'
|
|
|
+ }
|
|
|
+ this.$forceUpdate()
|
|
|
+ // console.log(searchArray)
|
|
|
+ this.onAllFilter()
|
|
|
+ },
|
|
|
+ onSearch(val) {
|
|
|
+ this.search = val
|
|
|
+ this.onAllFilter()
|
|
|
+ },
|
|
|
+ onAllFilter() {
|
|
|
+ const searchArray = this.searchArray
|
|
|
+ let currentIndex = null
|
|
|
+ let currentType = null
|
|
|
+ searchArray.forEach((item, index) => {
|
|
|
+ if(item) {
|
|
|
+ currentIndex = index
|
|
|
+ currentType = item
|
|
|
+ }
|
|
|
+ })
|
|
|
+ const searchType = ['totalPlayTime', 'trainNum', 'trainDay', 'recordNum']
|
|
|
+ let params = {
|
|
|
+ search: this.search,
|
|
|
+ startTime: this.startDay,
|
|
|
+ endTime: this.endDay,
|
|
|
+ page: 1,
|
|
|
+ sort: searchType[currentIndex],
|
|
|
+ order: currentType
|
|
|
+ }
|
|
|
+ this.$listeners.onLoad(params)
|
|
|
},
|
|
|
changeDropDownItemStatus() {
|
|
|
this.$refs.item.toggle(false)
|
|
@@ -206,6 +203,9 @@ export default {
|
|
|
}
|
|
|
this.startDay = dayjs(start).format("YYYY-MM-DD");
|
|
|
this.endDay = dayjs(end).format("YYYY-MM-DD");
|
|
|
+ //
|
|
|
+ this.changeDropDownItemStatus()
|
|
|
+ this.onAllFilter()
|
|
|
},
|
|
|
onClose() {
|
|
|
// 关闭弹窗时初始化默认日期
|