浏览代码

1225 09:54

11
mo 5 年之前
父节点
当前提交
fd3ed36d1a
共有 4 个文件被更改,包括 91 次插入14 次删除
  1. 27 0
      src/api/vipSeting.js
  2. 6 0
      src/views/buildVip/index.vue
  3. 56 12
      src/views/vipClass/vipDetail/components/vipStudentList.vue
  4. 2 2
      vue.config.js

+ 27 - 0
src/api/vipSeting.js

@@ -322,3 +322,30 @@ export function vipPauseForStudent (data) {
     data: qs.stringify(data)
   })
 }
+
+// 获取学生休学信息
+export function getStudentPauseInfo (data) {
+  return request({
+    url: api + '/vipGroupManage/getStudentPauseInfo',
+    method: 'POST',
+    data: qs.stringify(data)
+  })
+}
+
+// 恢复休学
+export function recoverForStudent (data) {
+  return request({
+    url: api + '/vipGroupManage/recoverForStudent',
+    method: 'POST',
+    data
+  })
+}
+
+// 根据vip课所在部门与声部获取教师
+export function findTeacherWithVipGroupOrganAndSubject (data) {
+  return request({
+    url: api + '/vipGroupManage/findTeacherWithVipGroupOrganAndSubject',
+    method: 'get',
+    params: data
+  })
+}

+ 6 - 0
src/views/buildVip/index.vue

@@ -102,6 +102,7 @@
                         prop="signUpStart">
             <el-date-picker v-model="leftForm.signUpStart"
                             type="date"
+                            :picker-options="pickerOptions"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             placeholder="请选择时间" />
           </el-form-item>
@@ -439,6 +440,11 @@ export default {
           return;
         }
       },
+      pickerOptions: {
+        disabledDate (time) {
+          return time.getTime() + 86400000 <= new Date().getTime()
+        }
+      },
       leftFormRules: {
         /**?
          * teacher: '',

+ 56 - 12
src/views/vipClass/vipDetail/components/vipStudentList.vue

@@ -75,12 +75,12 @@
                          v-permission="'vipGroupManage/applyRefundForStudent'"
                          @click="lookFee(scope)">退学</el-button>
               <!--   v-permission="'vipGroupManage/applyRefundForStudent'" -->
-              <!-- <el-button type="text"
+              <el-button type="text"
                          v-if="scope.row.studentStatus == 0"
                          @click="stopCourse(scope)">休学</el-button>
               <el-button type="text"
                          v-if="scope.row.studentStatus == 3"
-                         @click="recoveryCourse(scope)">恢复</el-button> -->
+                         @click="recoveryCourse(scope)">恢复</el-button>
             </div>
           </template>
         </el-table-column>
@@ -140,7 +140,7 @@
       </div>
     </el-dialog>
 
-    <el-dialog title="学员调整"
+    <el-dialog title="学员复学"
                width="800px"
                :visible.sync="adjustmentVisible">
       <el-form :model='adjustmentForm'
@@ -154,10 +154,12 @@
                     v-model="adjustmentForm.count"></el-input>
         </el-form-item>
         <el-form-item label="任课老师"
-                      prop="addCount">
-          <el-select>
-            <el-option label="李老师"
-                       value="1"></el-option>
+                      prop="teacher">
+          <el-select v-model="adjustmentForm.teacher">
+            <el-option v-for="(item,index) in teacherList"
+                       :key="index"
+                       :label="item.realName"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <!-- <br> -->
@@ -230,14 +232,15 @@
       <div slot="footer"
            class="dialog-footer">
         <el-button @click="adjustmentVisible = false">取 消</el-button>
-        <el-button type="primary">确 定</el-button>
+        <el-button type="primary"
+                   @click="submieRecover">确 定</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
-import { findVipGroupStudents, leaveSchool, getStudentSurplusCourseFee, getHaveCourseBalanceStudents, addVipGroupStudents, vipPauseForStudent } from '@/api/vipSeting'
+import { findVipGroupStudents, leaveSchool, getStudentSurplusCourseFee, getHaveCourseBalanceStudents, addVipGroupStudents, vipPauseForStudent, getStudentPauseInfo, recoverForStudent, findTeacherWithVipGroupOrganAndSubject } from '@/api/vipSeting'
 export default {
   components: { pagination },
   data () {
@@ -264,13 +267,15 @@ export default {
         checked: false,
         addCount: '',
         courseType: '',
-        fee: ''
+        fee: '',
+        teacher: ''
       },
       adjustmentRules: {
         courseTime: [{ required: true, message: '请选择开始时间' }],
         addCount: [{ required: true, message: '请输入加课次数' }],
         courseType: [{ required: true, message: '请选择课程类型' }],
-        fee: [{ required: true, message: '请输入费用' }]
+        fee: [{ required: true, message: '请输入费用' }],
+        teacher: [{ required: true, message: '请选择老师' }]
       },
       weekDateList: [
         { value: '1', label: '星期一' },
@@ -292,12 +297,18 @@ export default {
           return time.getTime() + 86400000 <= new Date().getTime()
         }
       },
+      teacherList: []
     }
   },
   mounted () {
     let id = this.$route.query.id;
     this.id = id;
     this.getStudents()
+    findTeacherWithVipGroupOrganAndSubject({ vipGroupId: this.id }).then(res => {
+      if (res.code == 200) {
+        this.teacherList = res.data;
+      }
+    })
   },
   methods: {
     search () {
@@ -405,7 +416,16 @@ export default {
       });
     },
     recoveryCourse (scope) {
-      this.adjustmentVisible = true;
+      getStudentPauseInfo({ studentId: scope.row.id, vipGroupId: this.id }).then(res => {
+        if (res.code == 200) {
+          this.activeStudent = res.data.studentId
+          this.adjustmentVisible = true;
+          this.adjustmentForm.teacher = res.data.teacherId;
+          this.adjustmentForm.count = `${res.data.totalCourseTimes}+${res.data.giveCourseTimes}`
+        }
+      })
+
+
       // this.$confirm('是否休学?', '提示', {
       //   confirmButtonText: '确定',
       //   cancelButtonText: '取消',
@@ -430,6 +450,30 @@ export default {
         id: new Date()
       })
     },
+    submieRecover () {
+      this.$refs['adjustmentForm'].validate(res => {
+        if (res) {
+          // 发请求
+          let obj = {}
+          obj.courseCreateStartTime = this.adjustmentForm.courseTime;
+          obj.skipHoliday = this.adjustmentForm.checked;
+          obj.teacherId = this.adjustmentForm.teacher;
+          obj.userId = this.activeStudent;
+          obj.courseTimes = [];
+          obj.courseTimes = this.weekList
+          obj.vipGroupId = this.id
+          recoverForStudent(obj).then(res => {
+            if (res.code == 200) {
+              this.adjustmentVisible = false;
+              this.getStudents()
+            }
+          })
+        } else {
+          this.$message.error('请填写必要参数')
+        }
+      })
+      this.activeStudent;
+    }
   },
 }
 </script>

+ 2 - 2
vue.config.js

@@ -18,11 +18,11 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://testadm.dayaedu.com/' //勇哥迁库
-let target = 'http://192.168.3.27:8000' // 箭河
+// let target = 'http://192.168.3.27:8000' // 箭河
 // let target = 'http://192.168.3.28:8000' //邹璇
 // let target = 'http://192.168.3.8:18000' //勇哥
 // let target = 'http://47.99.212.176:8000' // 测试服
-// let target = 'http://192.168.3.48:8080' // 乔
+let target = 'http://192.168.3.48:8080' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
   /**