mo 3 лет назад
Родитель
Сommit
eec2f25246

+ 8 - 2
src/views/activeProgram/api.js

@@ -1,4 +1,6 @@
 import request from '@/helpers/request'
+const axios = require('@/common/axios').default
+const apiPrefix = '/api-teacher'
 
 export const queryWaitCourseActivity = (data) => {
     return request({
@@ -17,13 +19,17 @@ export const getActivityWaitCourseStudentNum = (data) => {
 }
 
 export const getActivityStudentCanCourseNum = (data) => {
-    return request({
-        url: '/vipGroupActivity/getActivityStudentCanCourseNum',
+    return axios({
+        url: apiPrefix + '/vipGroupActivity/getActivityStudentCanCourseNum',
         method: 'get',
         params: data
     })
+    
 }
 
+// 
+
+
 export const createVipGroup = (data) => {
     return request({
         url: '/teacherVipGroup/createVipGroup',

+ 1 - 0
src/views/activeProgram/index.vue

@@ -29,6 +29,7 @@ export default {
     },
     mounted() {
         let params = this.$route.query;
+        console.log(params.Authorization)
         if (params.Authorization) {
             localStorage.setItem("Authorization", decodeURI(params.Authorization));
             localStorage.setItem("userInfo", decodeURI(params.Authorization));

+ 79 - 44
src/views/activeProgram/modal/studentList.vue

@@ -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;

+ 1 - 1
src/views/activeProgram/program.vue

@@ -215,7 +215,7 @@
             v-model="studentStatus"
             :lock-scroll="true"
             position="bottom"
-            :style="{ height: '80%' }"
+            :style="{ height: '80%','overflow': 'hidden' }"
             class="studentChose"
         >
             <student-list