瀏覽代碼

05/19 新增网络云课堂

mo 5 年之前
父節點
當前提交
c8aabaf01f

+ 28 - 0
src/api/buildTeam.js

@@ -1177,4 +1177,32 @@ export function openMusicGroupPaymentCalenderDetailPayment (data) {
     method: 'get',
     params: data
   })
+}
+
+// 修改学员缴费金额
+export function resetMusicGroupPaymentCalenderDetail (data) {
+  return request({
+    url: api + '/musicGroupPaymentCalenderDetail/updateExpectAmount',
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}
+
+
+// 学员基础信息列表
+export function getMusicGroupStudentFee (data) {
+  return request({
+    url: api + '/musicGroupStudentFee/queryPage',
+    method: 'get',
+    params: data
+  })
+}
+
+// 修改学员费用
+export function resetMusicGroupStudentFee (data) {
+  return request({
+    url: api + '/musicGroupStudentFee/batchUpdateCourseFee',
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }

+ 22 - 8
src/views/resetTeaming/components/strudentPayInfo.vue

@@ -55,7 +55,7 @@
                      clearable
                      filterable
                      placeholder="请选择状态">
-            <el-option label="未开始"
+            <el-option label="未缴费"
                        value="0"></el-option>
             <el-option label="缴费中"
                        value="1"></el-option>
@@ -98,8 +98,13 @@
             </template>
           </el-table-column>
           <el-table-column align="center"
-                           prop="studentId"
-                           label="学员声部"></el-table-column>
+                           label="学员声部">
+            <template slot-scope="scope">
+              <div v-if="scope.row.studentRegistration">
+                {{scope.row.studentRegistration.subjectName}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="expectAmount"
                            label="预计缴费金额"></el-table-column>
@@ -186,7 +191,7 @@
            class="dialog-footer">
         <el-button @click="resetPayVisible = false">取 消</el-button>
         <el-button type="primary"
-                   @click="">确 定</el-button>
+                   @click="submitReset">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -197,7 +202,7 @@ import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
-import { findSound, getmusicGroupPaymentCalenderDetail, openMusicGroupPaymentCalenderDetailPayment } from "@/api/buildTeam";
+import { findSound, getmusicGroupPaymentCalenderDetail, openMusicGroupPaymentCalenderDetailPayment, resetMusicGroupPaymentCalenderDetail } from "@/api/buildTeam";
 
 export default {
   components: { pagination },
@@ -248,10 +253,7 @@ export default {
       }
     });
     // 获取分部
-
     this.init();
-
-
   },
   activated () {
     this.init();
@@ -324,6 +326,18 @@ export default {
           this.getList();
         }
       })
+    },
+    submitReset () {
+      let obj = {};
+      obj.expectAmount = this.resetPayForm.momey;
+      obj.ids = this.ids;
+      resetMusicGroupPaymentCalenderDetail(obj).then(res => {
+        if (res.code == 200) {
+          this.$message.success('修改成功')
+          this.resetPayVisible = false;
+          this.getList();
+        }
+      })
     }
   }, watch: {
     payVisible (val) {

+ 82 - 20
src/views/resetTeaming/components/studentPayBase.vue

@@ -5,9 +5,7 @@
                     content="学员缴费记录">
     </el-page-header>
     <div class="m-core">
-      <div class="newBand"
-           @click="resetTime">修改缴费时间</div>
-      <!-- <el-form :inline="true"
+      <el-form :inline="true"
                :model="searchForm">
         <el-form-item>
           <el-input v-model.trim="searchForm.search"
@@ -15,12 +13,26 @@
                     placeholder='学生编号'></el-input>
         </el-form-item>
         <el-form-item>
+          <el-select v-model.trim="searchForm.subjectId"
+                     style="width:180px"
+                     clearable
+                     filterable
+                     placeholder="请选择声部">
+            <el-option v-for="(item,index) in soundList"
+                       :key="index"
+                       :label="item.name"
+                       :value="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
           <el-button @click="search"
                      type="danger">搜索</el-button>
           <el-button @click="onReSet"
                      type="primary">重置</el-button>
         </el-form-item>
-      </el-form> -->
+      </el-form>
+      <div class="newBand"
+           @click="resetPays">修改缴费金额</div>
       <div class="tableWrap">
         <el-table style="width: 100%"
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}"
@@ -30,16 +42,28 @@
                            width="55">
           </el-table-column>
           <el-table-column align="center"
-                           prop="studentId"
+                           prop="userId"
                            label="学员编号"></el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="学员姓名"></el-table-column>
+                           label="学员姓名">
+            <template slot-scope="scope">
+              <div v-if="scope.row.sysUser">
+                {{scope.row.sysUser.username}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
                            prop="studentId"
-                           label="联系电话"></el-table-column>
+                           label="联系电话">
+            <template slot-scope="scope">
+              <div v-if="scope.row.sysUser">
+                {{scope.row.sysUser.phone}}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column align="center"
-                           prop="studentId"
+                           prop="courseFee"
                            label="缴费金额"></el-table-column>
           <el-table-column align="center"
                            label="操作">
@@ -82,7 +106,11 @@
            class="dialog-footer">
         <el-button @click="resetPayVisible = false">取 消</el-button>
         <el-button type="primary"
-                   @click="">确 定</el-button>
+                   v-if="isSigan"
+                   @click="submitSigan(true)">确 定</el-button>
+        <el-button type="primary"
+                   v-if="!isSigan"
+                   @click="submitSigan(false)">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -93,7 +121,7 @@ import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import load from "@/utils/loading";
-import { findSound, } from "@/api/buildTeam";
+import { findSound, getMusicGroupStudentFee, resetMusicGroupStudentFee } from "@/api/buildTeam";
 
 export default {
   components: { pagination },
@@ -101,8 +129,7 @@ export default {
     return {
       searchForm: {
         search: null,
-        sound: null,
-        status: null
+        subjectId: null,
       },
       teacherList: [],
       soundList: [],
@@ -128,6 +155,7 @@ export default {
         momey: null
       },
       activeChiose: [],
+      isSigan: false,
 
     };
   },
@@ -153,10 +181,19 @@ export default {
   },
   methods: {
     init () {
-      this.isInit = true;
-      this.isInit = false;
+      this.getList()
+    },
+    getList () {
+      this.searchForm.page = this.rules.page;
+      this.searchForm.rows = this.rules.limit;
+      this.searchForm.musicGroupId = this.teamid;
+      getMusicGroupStudentFee(this.searchForm).then(res => {
+        if (res.code == 200) {
+          this.rules.total = res.data.total;
+          this.tableList = res.data.rows;
+        }
+      })
     },
-    getList () { },
     search () {
       this.rules.page = 1;
       this.getList()
@@ -165,8 +202,15 @@ export default {
     startPay (row) { },
     resetPay (row) {
       this.activeRow = row;
+      this.resetPayForm.momey = row.courseFee;
+      this.isSigan = true
       this.resetPayVisible = true
     },
+    resetPays () {
+      this.isSigan = false
+      this.resetPayVisible = true
+
+    },
     resetTime () {
       this.payVisible = true;
     },
@@ -177,14 +221,32 @@ export default {
     },
     handleSelectionChange (val) {
       this.activeChiose = val;
+    },
+    submitSigan (sigan) {
+      let obj = {}
+      if (sigan) {
+        obj.ids = this.activeRow.id
+      } else {
+        obj.ids = this.activeChiose.map(item => {
+          return item.id
+        }).join(',')
+      }
+      obj.courseFee = this.resetPayForm.momey;
+      resetMusicGroupStudentFee(obj).then(res => {
+        if (res.code == 200) {
+          this.$message.success('修改成功')
+          this.resetPayVisible = false
+          this.getList()
+        }
+      })
     }
   }, watch: {
-    payVisible (val) {
+    resetPayVisible (val) {
       if (!val) {
-        this.payForm = {
-          startDate: null
-        }
-        this.$refs['payForm'].resetFields()
+        this.resetPayForm = {
+          momey: null
+        },
+          this.$refs['resetPayForm'].resetFields()
       }
     }
   }

+ 46 - 1
src/views/teamBuild/components/teamBaseInfo.vue

@@ -245,6 +245,17 @@
           </div>
         </div>
         <div class="checkRow">
+          <el-checkbox label="乐团网络课堂"
+                       v-model.trim="checkList.networkInfo.ischeck"></el-checkbox>
+          <div class="inputWrap">
+            单价:
+            <input type="number"
+                   @mousewheel.native.prevent
+                   placeholder="请输入"
+                   v-model.trim="checkList.networkInfo.value" />
+          </div>
+        </div>
+        <div class="checkRow">
           <el-checkbox label="课程提示"
                        class="classCheckBox"
                        v-model.trim="checkList.submit.ischeck"></el-checkbox>
@@ -442,6 +453,10 @@ export default {
           ischeck: false,
           value: ""
         },
+        networkInfo: {
+          ischeck: false,
+          value: ""
+        },
         submit: {
           ischeck: false,
           value:
@@ -490,7 +505,25 @@ export default {
   },
   created () { },
   activated () {
-
+    this.payList = {
+      school: {
+        ischeck: false,
+        value: "",
+        price: "",
+        chiose: ""
+      },
+      company: {
+        ischeck: false,
+        value: "",
+        price: "",
+        chiose: ""
+      },
+      student: {
+        ischeck: true,
+        chiose: "loop"
+      },
+      chioseMonth: [] // 选中的月份
+    }
     this.init();
 
 
@@ -501,6 +534,9 @@ export default {
 
     // 获取分部下的员工
   },
+  beforeDestroy () {
+
+  },
   methods: {
     init () {
       this.isInit = true;
@@ -543,6 +579,15 @@ export default {
             this.topFrom.repairUserId = res.data.musicGroup.repairUserId ? res.data.musicGroup.repairUserId : null;
             // 课程组成形式
             this.checkList = JSON.parse(res.data.musicGroup.courseForm);
+            if (this.checkList.networkInfo) {
+
+            } else {
+              this.checkList.networkInfo = {
+                ischeck: false,
+                value: ""
+              }
+            }
+
             // 付费方式和周期
             for (let i in res.data.musicGroupPaymentEntities) {
               if (res.data.musicGroupPaymentEntities[i].name == "学校") {

+ 13 - 0
src/views/teamBuild/components/teamSoundMoney.vue

@@ -323,6 +323,14 @@
               <div class="o_bd">假期集中训练</div>
               <span class="o_ft">现价:¥{{ courseScheduleInfo.holidayInfo.value ? courseScheduleInfo.holidayInfo.value : 0 }}</span>
             </div>
+            <div class="option"
+                 v-if="courseScheduleInfo.networkInfo.ischeck">
+              <div class="0_hd">
+                <i class="check_default check_active"></i>
+              </div>
+              <div class="o_bd">乐团网络课堂</div>
+              <span class="o_ft">现价:¥{{ courseScheduleInfo.networkInfo.value ? courseScheduleInfo.networkInfo.value : 0 }}</span>
+            </div>
           </div>
           <div class="options sale"
                v-if="lookPreviewRow&&lookPreviewRow.yuji"
@@ -1523,6 +1531,11 @@ export default {
             csi.soundInfo.value ? csi.soundInfo.value : 0
           );
         }
+        if (csi.networkInfo.ischeck) {
+          marketPrice += parseFloat(
+            csi.networkInfo.value ? csi.networkInfo.value : 0
+          );
+        }
       }
       // 乐器
 

+ 3 - 3
src/views/teamDetail/components/courseList.vue

@@ -23,10 +23,10 @@
                      value="TRAINING_SINGLE"></el-option>
           <el-option label="单技课"
                      value="SINGLE"></el-option>
-          <el-option label="线上基础技能课"
+          <!-- <el-option label="线上基础技能课"
                      value="HIGH_ONLINE"></el-option>
           <el-option label="乐团网管课"
-                     value="MUSIC_NETWORK"></el-option>
+                     value="MUSIC_NETWORK"></el-option> -->
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -178,7 +178,7 @@
               <!-- v-if="scope.row.courseScheduleStatus == 'NOT_START' && permission('courseSchedule/batchDelete')"  teamDetail/resetTpye-->
               <el-button type="text"
                          @click="resetType(scope.row)"
-                         v-if="permission('teamDetail/resetTpye')">类型调整</el-button>
+                         v-if="permission('teamDetail/resetTpye')&&scope.row.courseScheduleType!='HIGH_ONLINE'&&scope.row.courseScheduleType!='MUSIC_NETWORK'">类型调整</el-button>
               <el-button type="text"
                          v-if="permission('courseSchedule/cleanAttendance')"
                          @click="clearAttend(scope.row)">清除考勤</el-button>