소스 검색

声部修改

wolyshaw 4 년 전
부모
커밋
4e8521a996
3개의 변경된 파일122개의 추가작업 그리고 18개의 파일을 삭제
  1. 25 7
      src/api/buildTeam.js
  2. 88 8
      src/views/teamBuild/modals/change-voice.vue
  3. 9 3
      src/views/teamBuild/signupList.vue

+ 25 - 7
src/api/buildTeam.js

@@ -252,7 +252,7 @@ export function setTeamTeacher (data) {
   })
 }
 
-// // 获取所有的节假日 
+// // 获取所有的节假日
 // export function getHolidays (data) {
 //   return request({
 //     url: '/jiari/',
@@ -723,7 +723,7 @@ export function getEmployeeOrgan (data) {
   })
 }
 
-// 
+//
 export function pushMessage (data) {
   return request({
     url: api + '/musicGroup/pushMessage',
@@ -751,7 +751,7 @@ export function findSubjectPlan (data) {
 }
 
 // 根据部门id获取部门下的员工
-//删除乐团所有未上课时 
+//删除乐团所有未上课时
 export function deteleAllCourse (data) {
   return request({
     url: api + `/courseSchedule/batchDeleteMusicGroupNotStartCourse`,
@@ -786,7 +786,7 @@ export function checkSetSalary (data) {
   })
 }
 
-// 获取节假日 
+// 获取节假日
 export function getHoliday (data) {
   return request({
     url: api + `/classGroupStudent/queryHoliday`,
@@ -1027,7 +1027,7 @@ export function cleanAttendance (data) {
   })
 }
 
-// 批量加网管课  
+// 批量加网管课
 export function batchAddCourses (data) {
   return request({
     url: api + '/courseSchedule/batchAddCourses',
@@ -1089,7 +1089,7 @@ export function getVipGroup (data) {
     params: data
   })
 }
-//  评论详情 
+//  评论详情
 export function getReviewsInfo (data) {
   return request({
     url: api + '/practiceGroupManage/getReviewsInfo',
@@ -1278,4 +1278,22 @@ export function batchPracticeGroupTeacherAdjust (data) {
     method: 'post',
     data: qs.stringify(data)
   })
-}
+}
+
+// 获取报名缴费详情
+export function getApplyDetail(data) {
+  return request({
+    url: api + '/subjectChange/getApplyDetail',
+    method: 'get',
+    params: data
+  })
+}
+
+
+export function getSubjectGoodsAndInfo(data) {
+  return request({
+    url:  api + '/subjectChange/getSubjectGoodsAndInfo',
+    method: 'get',
+    params: data
+  })
+}

+ 88 - 8
src/views/teamBuild/modals/change-voice.vue

@@ -2,7 +2,7 @@
   <div>
     <el-form :model="form" :rules="rules" ref="form" label-width="100px">
       <el-form-item label="原乐器" prop="name">
-        <el-input v-model="form.name"></el-input>
+        <span v-if="detail">{{detail.subjectName}}</span>
       </el-form-item>
       <el-form-item label="原教辅" prop="name">
         <el-input v-model="form.name"></el-input>
@@ -18,12 +18,18 @@
         </el-date-picker>
       </el-form-item>
       <el-form-item label="更改声部" prop="name">
-        <el-select style="width: 100%" v-model="value" clearable placeholder="请选择声部">
+        <el-select
+          style="width: 100%"
+          v-model="form.subjectId"
+          clearable
+          @change="subjectChange"
+          placeholder="请选择声部"
+        >
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
+            v-for="item in voiceList"
+            :key="item.subjectId"
+            :label="item.subjectName"
+            :value="item.subjectId">
           </el-option>
         </el-select>
       </el-form-item>
@@ -71,16 +77,90 @@
   </div>
 </template>
 <script>
+import { getApplyDetail, getSubjectGoodsAndInfo } from '@/api/buildTeam'
+
+const formatCourseScheduleInfo = courseScheduleInfo => {
+  let tempCheck = {},
+    tempCourse = {}
+  if (courseScheduleInfo) {
+    for (const i in courseScheduleInfo) {
+      if (courseScheduleInfo.hasOwnProperty(i)) {
+        const item = courseScheduleInfo[i];
+        if (item.isNew === 1) {
+          item.isStatus = true
+          tempCheck[i] = {...item}
+        } else {
+          tempCourse[i] = {...item}
+        }
+      }
+    }
+  }
+  return {
+    tempCheck,
+    tempCourse,
+  }
+}
+
+const formatMusicGroupSubjectGoodsGroupList = goodsGroupList => {
+  let instrumentInfo = {}
+  for (const item of goodsGroupList) {
+    if (item.type === 'INSTRUMENT') {
+      let KGPTJ = item.kitGroupPurchaseTypeJson ? JSON.parse(item.kitGroupPurchaseTypeJson) : {}
+      for (const key of KGPTJ) {
+        let tempItem = {...item}
+        tempItem.marketPrice = tempItem.goodsList[0].marketPrice
+        tempItem.kitType = key
+        tempItem.coupon = KGPTJ[key]
+      }
+    }
+  }
+}
+
+const formatGoods = data => {
+  const { courseScheduleInfo, musicGroupSubjectGoodsGroupList, musicGroupSubjectPlan, otherGoods, studentGoods } = data
+
+}
+
 export default {
+  props: ['detail', 'musicGroupId', 'voiceList'],
   data() {
     return {
       options: [],
       options2: [],
-      form: {},
-      rules: {}
+      form: {
+        subjectId: ''
+      },
+      rules: {},
+    }
+  },
+  watch: {
+    detail() {
+      if (this.detail) {
+        this.fetchDetail()
+      }
+    },
+
+  },
+  mounted() {
+    console.log(this.detail, this.voiceList)
+    if (this.detail) {
+      this.fetchDetail()
     }
   },
   methods: {
+    fetchDetail() {
+      getApplyDetail({
+        musicGroupId: this.musicGroupId,
+        studentId: this.detail.studentId,
+      })
+      .then(res => console.log(res))
+    },
+    subjectChange(id) {
+      getSubjectGoodsAndInfo({
+        musicGroupId: this.musicGroupId,
+        subjectId: id,
+      })
+    },
     submit() {
       this.$listeners.close()
     },

+ 9 - 3
src/views/teamBuild/signupList.vue

@@ -508,13 +508,19 @@
       </span>
     </el-dialog>
     <el-dialog
-      title="改声部"
+      title="改声部"
       :visible.sync="changeVoiceVisible"
       @close="closeChangeVoice"
-      destroy-on-close
+      :destroy-on-close="true"
       width="500px"
     >
-      <changeVoice @close="closeChangeVoice" @submited="closeChangeVoice" :detail="rowDetail"/>
+      <changeVoice
+        @close="closeChangeVoice"
+        @submited="closeChangeVoice"
+        :detail="rowDetail"
+        :musicGroupId="id"
+        :voiceList="leftList"
+      />
     </el-dialog>
   </div>
 </template>