Ver Fonte

更改乐团

wolyshaw há 4 anos atrás
pai
commit
8f2b764bbc
2 ficheiros alterados com 69 adições e 23 exclusões
  1. 2 2
      src/api/buildTeam.js
  2. 67 21
      src/views/teamBuild/modals/change-voice.vue

+ 2 - 2
src/api/buildTeam.js

@@ -1281,9 +1281,9 @@ export function batchPracticeGroupTeacherAdjust (data) {
 }
 
 // 获取报名缴费详情
-export function getApplyDetail(data) {
+export function getStudentOriginal(data) {
   return request({
-    url: api + '/subjectChange/getApplyDetail',
+    url: api + '/subjectChange/getStudentOriginal',
     method: 'get',
     params: data
   })

+ 67 - 21
src/views/teamBuild/modals/change-voice.vue

@@ -2,12 +2,12 @@
   <div>
     <el-form :model="form" :rules="rules" ref="form" label-width="100px">
       <el-form-item label="原乐器" prop="name">
-        <span v-if="detail">{{detail.subjectName}}</span>
+        <span>{{originalMusicalGoods}}</span>
       </el-form-item>
       <el-form-item label="原教辅" prop="name">
-        <el-input v-model="form.name"></el-input>
+        <span>{{originalAccessoriesGoods}}</span>
       </el-form-item>
-      <el-form-item label="缴费时间" prop="name">
+      <!-- <el-form-item label="缴费时间" prop="name">
         <el-date-picker
           style="width: 100%"
           v-model="form.time"
@@ -16,7 +16,7 @@
           start-placeholder="开始日期"
           end-placeholder="结束日期">
         </el-date-picker>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="更改声部" prop="name">
         <el-select
           style="width: 100%"
@@ -34,22 +34,22 @@
         </el-select>
       </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.musicalGoods" clearable placeholder="请选择乐器">
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
+            v-for="item in musicalGoods"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id">
           </el-option>
         </el-select>
       </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.accessories" clearable placeholder="请选择教辅">
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
+            v-for="item in accessories"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id">
           </el-option>
         </el-select>
       </el-form-item>
@@ -77,7 +77,7 @@
   </div>
 </template>
 <script>
-import { getApplyDetail, getSubjectGoodsAndInfo } from '@/api/buildTeam'
+import { getStudentOriginal, getSubjectGoodsAndInfo } from '@/api/buildTeam'
 
 const formatCourseScheduleInfo = courseScheduleInfo => {
   let tempCheck = {},
@@ -236,16 +236,51 @@ const formatGoods = data => {
   console.log(formatMusicGroupSubjectGoodsGroupList(musicGroupSubjectGoodsGroupList))
 }
 
+const formatAllGoods = (data, kitGroupPurchaseType) => {
+  const { musicGroupSubjectGoodsGroupList } = data
+  const accessories = []
+  const accessoriesById = {}
+  const musicalGoods = []
+  const musicalGoodsById = {}
+
+  for (const item of musicGroupSubjectGoodsGroupList) {
+    if (item.type === 'INSTRUMENT') {
+      let json = {}
+      try {
+        json = JSON.parse(item.kitGroupPurchaseTypeJson)
+      } catch (error) {}
+      const _item = {
+        ...item,
+        kitGroupPurchaseTypePrice: json[kitGroupPurchaseType]
+      }
+      musicalGoods.push(item)
+      musicalGoodsById[item.id] = item
+    }
+  }
+
+  return {
+    accessories,
+    musicalGoods
+  }
+}
+
 export default {
   props: ['detail', 'musicGroupId', 'voiceList'],
   data() {
     return {
-      options: [],
-      options2: [],
+      accessories: [],
+      accessoriesByid: {},
+      musicalGoods: [],
+      musicalGoodsById: {},
       form: {
-        subjectId: ''
+        subjectId: '',
+        accessories: '',
+        musicalGoods: '',
       },
       rules: {},
+      item: {},
+      originalMusicalGoods: '',
+      originalAccessoriesGoods: '',
     }
   },
   watch: {
@@ -264,18 +299,29 @@ export default {
   },
   methods: {
     fetchDetail() {
-      getApplyDetail({
+      getStudentOriginal({
         musicGroupId: this.musicGroupId,
         studentId: this.detail.studentId,
       })
-      .then(res => console.log(res))
+      .then(res => {
+        const { data } = res
+        this.item = data
+        this.originalMusicalGoods = data.originalMusicalGoods.name
+        this.originalAccessoriesGoods = (data.originalAccessoriesGoods || []).map(item => item.name).join()
+      })
     },
     subjectChange(id) {
       getSubjectGoodsAndInfo({
         musicGroupId: this.musicGroupId,
         subjectId: id,
       })
-      .then(res => formatGoods(res.data))
+      .then(res => {
+        const { accessories, musicalGoods, accessoriesById, musicalGoodsById } = formatAllGoods(res.data, this.item.kitGroupPurchaseType)
+        this.accessories = [...accessories]
+        this.accessoriesById = {...accessoriesById}
+        this.musicalGoods = [...musicalGoods]
+        this.musicalGoodsById = {...musicalGoodsById}
+      })
     },
     submit() {
       this.$listeners.close()