|
@@ -13,18 +13,18 @@
|
|
|
</template>
|
|
|
</van-search>
|
|
|
</van-sticky> -->
|
|
|
- <m-search @onSearch="onSearch" />
|
|
|
+ <m-search @onSearch="onSearch" placeholder="请输入学生名或手机号" />
|
|
|
<div class="paddingB80">
|
|
|
- <!-- <van-list
|
|
|
- v-model="loading"
|
|
|
- class="studentContainer"
|
|
|
- v-if="dataShow"
|
|
|
- key="data"
|
|
|
- :finished="finished"
|
|
|
- finished-text=""
|
|
|
- @load="getStudent"
|
|
|
- > -->
|
|
|
- <div class="studentContainer" v-if="dataShow" key="data">
|
|
|
+ <van-list
|
|
|
+ v-model="loading"
|
|
|
+ class="studentContainer"
|
|
|
+ v-if="dataShow"
|
|
|
+ key="data"
|
|
|
+ :finished="finished"
|
|
|
+ finished-text="没有更多学生~"
|
|
|
+ @load="getStudent"
|
|
|
+ >
|
|
|
+ <!-- <div class="studentContainer" v-if="dataShow" key="data"> -->
|
|
|
<van-checkbox-group v-model="checkboxSelect">
|
|
|
<van-cell-group :border="false">
|
|
|
<van-cell
|
|
@@ -50,7 +50,7 @@
|
|
|
/>
|
|
|
</template>
|
|
|
<template slot="title">
|
|
|
- {{ item.username }}({{item.userId}})
|
|
|
+ {{ item.username }}({{ item.userId }})
|
|
|
</template>
|
|
|
<template slot="default">
|
|
|
<span style="font-size: 0.16rem; color: #1a1a1a"
|
|
@@ -75,25 +75,26 @@
|
|
|
</van-cell>
|
|
|
</van-cell-group>
|
|
|
</van-checkbox-group>
|
|
|
- </div>
|
|
|
- <!-- </van-list> -->
|
|
|
+ <!-- </div> -->
|
|
|
+ </van-list>
|
|
|
<m-empty class="empty" msg="暂无学生" v-else key="data" />
|
|
|
</div>
|
|
|
<div class="button-group-popup">
|
|
|
<span class="btn" @click="onPopupCancel">取消</span>
|
|
|
<span class="btn primary" @click="onPopupSubmit">确定</span>
|
|
|
</div>
|
|
|
+ <div class="wall"></div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import MEmpty from "@/components/MEmpty";
|
|
|
-import MSearch from '@/components/MSearch'
|
|
|
+import MSearch from "@/components/MSearch";
|
|
|
import { getActivityStudentCanCourseNum } from "../api";
|
|
|
export default {
|
|
|
components: {
|
|
|
MEmpty,
|
|
|
- MSearch
|
|
|
+ MSearch,
|
|
|
},
|
|
|
// courseTypeIsVip 当前排课的类型,可能是赠送课程
|
|
|
props: [
|
|
@@ -109,10 +110,14 @@ export default {
|
|
|
params: {
|
|
|
search: null,
|
|
|
activityId: this.activityId,
|
|
|
+ page: 1,
|
|
|
+ rows: 20,
|
|
|
},
|
|
|
dataShow: true, // 是否有数据
|
|
|
dataList: [],
|
|
|
checkboxSelect: [],
|
|
|
+ loading: false, // 下拉刷新状态
|
|
|
+ finished: false, // 数据是否加载完成
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
@@ -132,42 +137,65 @@ export default {
|
|
|
methods: {
|
|
|
// 搜索
|
|
|
onSearch(val) {
|
|
|
+ this.params.page = 1;
|
|
|
+ this.dataShow = true;
|
|
|
+ this.loading = true;
|
|
|
this.params.search = val ? val : null;
|
|
|
this.dataList = [];
|
|
|
+ this.finished = false;
|
|
|
this.getStudent();
|
|
|
},
|
|
|
- async getStudent() {
|
|
|
+ getStudent() {
|
|
|
let params = this.params;
|
|
|
- try {
|
|
|
- const res = await getActivityStudentCanCourseNum(params);
|
|
|
- let result = res.data || [];
|
|
|
- let showResult = [];
|
|
|
- result.forEach((item) => {
|
|
|
- let showStudentNum = 0;
|
|
|
- if (this.typeStatus) {
|
|
|
- showStudentNum = this.courseTypeIsVip
|
|
|
- ? item.vipNum
|
|
|
- : item.practiceNum;
|
|
|
+ params.giveFlag = this.typeStatus ? 0 : 1;
|
|
|
+
|
|
|
+ getActivityStudentCanCourseNum(params).then((ress) => {
|
|
|
+
|
|
|
+ let res = ress.data
|
|
|
+ console.log(res)
|
|
|
+ if (res.code == 200) {
|
|
|
+ let result = res.data.rows || [];
|
|
|
+ let showResult = [];
|
|
|
+ this.isLoading = false;
|
|
|
+ params.page = res.data.pageNo;
|
|
|
+ result.forEach((item) => {
|
|
|
+ let showStudentNum = 0;
|
|
|
+
|
|
|
+ if (this.typeStatus) {
|
|
|
+ showStudentNum = this.courseTypeIsVip
|
|
|
+ ? item.vipNum
|
|
|
+ : item.practiceNum;
|
|
|
+ } else {
|
|
|
+ showStudentNum = this.courseTypeIsVip
|
|
|
+ ? item.giveVipNum
|
|
|
+ : item.givePracticeNum;
|
|
|
+ }
|
|
|
+ item.showStudentNum = showStudentNum;
|
|
|
+ // 判断次数大于0的学生展示
|
|
|
+ if (showStudentNum > 0) {
|
|
|
+ showResult.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(res.data.pageNo == 1){
|
|
|
+ this.dataList =showResult;
|
|
|
+ }else{
|
|
|
+ this.dataList = this.dataList.concat(showResult);
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(this.dataList.length);
|
|
|
+ if (this.dataList.length > 0) {
|
|
|
+ this.dataShow = true;
|
|
|
} else {
|
|
|
- showStudentNum = this.courseTypeIsVip
|
|
|
- ? item.giveVipNum
|
|
|
- : item.givePracticeNum;
|
|
|
+ this.dataShow = false;
|
|
|
}
|
|
|
- item.showStudentNum = showStudentNum;
|
|
|
- // 判断次数大于0的学生展示
|
|
|
- if (showStudentNum > 0) {
|
|
|
- showResult.push(item);
|
|
|
+ if (params.page >= res.data.totalPage) {
|
|
|
+ this.finished = true;
|
|
|
}
|
|
|
- });
|
|
|
- this.dataList = showResult;
|
|
|
- if (showResult.length > 0) {
|
|
|
- this.dataShow = true;
|
|
|
- } else {
|
|
|
- this.dataShow = false;
|
|
|
+ this.params.page++;
|
|
|
+ }else {
|
|
|
+ this.finished = true;
|
|
|
}
|
|
|
- } catch {
|
|
|
- //
|
|
|
- }
|
|
|
+ });
|
|
|
},
|
|
|
onCheckboxSelect(value) {
|
|
|
if (this.checkboxSelect.includes(value.userId)) {
|
|
@@ -220,6 +248,8 @@ export default {
|
|
|
<style lang="less" scoped>
|
|
|
@import url("../../../assets/commonLess/variable.less");
|
|
|
.studentContainer {
|
|
|
+ height: 4rem;
|
|
|
+ overflow-y: scroll;
|
|
|
padding-top: 0.1rem;
|
|
|
background-color: #fff;
|
|
|
/deep/.van-cell__title {
|
|
@@ -266,10 +296,15 @@ export default {
|
|
|
.paddingB80 {
|
|
|
padding-bottom: 0.8rem;
|
|
|
}
|
|
|
+.wall {
|
|
|
+ content: "";
|
|
|
+ height: 0.62rem;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
.button-group-popup {
|
|
|
position: fixed;
|
|
|
bottom: 0;
|
|
|
- padding: 0.2rem 0;
|
|
|
+ padding: 0.1rem 0;
|
|
|
width: 100%;
|
|
|
text-align: center;
|
|
|
background-color: #ffffff;
|