فهرست منبع

Merge branch 'change-voice' into online

wolyshaw 4 سال پیش
والد
کامیت
f7539148f7
3فایلهای تغییر یافته به همراه40 افزوده شده و 8 حذف شده
  1. 8 1
      src/constant/index.js
  2. 31 6
      src/views/teamBuild/modals/change-voice.vue
  3. 1 1
      src/views/teamBuild/signupList.vue

+ 8 - 1
src/constant/index.js

@@ -126,4 +126,11 @@ export const orderAuditType = {
   ING: '审核中',
   REJECT: '审核驳回',
   PASS: '审核通过'
-}
+}
+export const kitGroupPurchaseType = {
+  OWN: '自有',
+  COOPERATION: '合作',
+  LEASE: '租赁',
+  FREE: '赠送',
+  GROUP: '团购'
+}

+ 31 - 6
src/views/teamBuild/modals/change-voice.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-form :model="form" :rules="rules" ref="form" label-width="100px">
+    <el-form :model="form" :rules="rules" ref="form" label-width="110px">
       <el-form-item label="原乐器" prop="name">
         <span>{{originalMusicalGoods}}</span>
       </el-form-item>
@@ -55,6 +55,21 @@
         </el-select>
         <span v-else-if="changeInfo && changeInfo.changeMusicalGoods">{{changeInfo.changeMusicalGoods.name}}</span>
       </el-form-item>
+      <el-form-item
+        v-if="changeInfo || (form.musicalGoods && musicalGoodsById[form.musicalGoods] && musicalGoodsById[form.musicalGoods].kitGroupPurchaseTypeJsonParse)" label="乐器提供方式" prop="type"
+        :rules="[
+          { required: true, message: '请选择乐器提供方式', trigger: 'change' }
+        ]"
+      >
+        <el-radio-group v-if="!changeInfo" v-model="form.type">
+          <el-radio
+            :label="key"
+            v-for="(item, key) in musicalGoodsById[form.musicalGoods].kitGroupPurchaseTypeJsonParse"
+            :key="key"
+          >{{`${kitGroupPurchaseTypeFormater[key]}-${item > 0 ? item + '元' : '免费'}`}}</el-radio>
+        </el-radio-group>
+        <span v-else-if="changeInfo && changeInfo.kitGroupPurchaseType">{{kitGroupPurchaseTypeFormater[changeInfo.kitGroupPurchaseType]}}</span>
+      </el-form-item>
       <el-form-item v-if="(activeAccessories.length || groupList.length) || changeInfo" label="更换教辅" prop="name">
         <accessories
           :list.sync="activeAccessories"
@@ -127,6 +142,7 @@ import numeral from 'numeral'
 import { getStudentOriginal, getSubjectGoodsAndInfo, subjectChangeAdd, subjectChangeCancel, getChangeInfo } from '@/api/buildTeam'
 import { vaildStudentUrl } from '@/utils/validate'
 import accessories from './accessories'
+import { kitGroupPurchaseType } from '@/constant'
 
 const formatAllGoods = (data, kitGroupPurchaseType) => {
 
@@ -164,9 +180,10 @@ const formatAllGoods = (data, kitGroupPurchaseType) => {
           try {
             courseJson = JSON.parse(item.coursePurchaseTypeJson)
           } catch (error) {}
-          if (json[kitGroupPurchaseType] !== undefined) {
+          // if (json[kitGroupPurchaseType] !== undefined) {
             const _item = {
               ...item,
+              kitGroupPurchaseTypeJsonParse: json,
               kitGroupPurchaseTypePrice: json[kitGroupPurchaseType] || 0,
               coursePurchaseTypeJsonTypePrice: courseJson[kitGroupPurchaseType] || 0,
               _calculated_price: (kitGroupPurchaseType === 'FREE' ? 0 : (kitGroupPurchaseType === 'LEASE' ? item.depositFee : item.price))
@@ -183,7 +200,7 @@ const formatAllGoods = (data, kitGroupPurchaseType) => {
                 accessoriesById[goods.id] = goods
               }
             }
-          }
+          // }
         } else if (item.type === 'ACCESSORIES') {
           groupList.push(item)
           groupListById[item.id] = item
@@ -210,6 +227,7 @@ export default {
   },
   data() {
     return {
+      kitGroupPurchaseTypeFormater: kitGroupPurchaseType,
       changeInfo: null,
       oldAllMoney: 0,
       accessories: [],
@@ -227,6 +245,7 @@ export default {
         subjectId: '',
         accessories: '',
         musicalGoods: '',
+        type: '',
       },
       rules: {},
       item: {},
@@ -242,10 +261,13 @@ export default {
   watch: {
     detail() {
       if (this.detail) {
-        console.log(this.detail, this.voiceList)
         this.fetchDetail()
       }
     },
+    'form.type'() {
+      this.musicalGoodsChange(this.form.musicalGoods)
+      console.log(this.form.type)
+    }
   },
   computed: {
     copyLink() {
@@ -327,6 +349,7 @@ export default {
         const { data } = res
         this.item = data || {}
         if (data) {
+          this.$set(this.form, 'type', this.item.kitGroupPurchaseType)
           this.originalAccessoriesPrice = data.originalAccessoriesPrice
           this.originalMusicalPrice = data.originalMusicalPrice
           this.originalCourseFee = data.originalCourseFee
@@ -379,12 +402,14 @@ export default {
       const item = this.musicalGoodsById[val]
       if (item) {
         this.musicalPrice = this.numFormat(item._calculated_price)
-        this.kitGroupPurchaseTypePrice = this.numFormat(item.kitGroupPurchaseTypePrice)
+        this.kitGroupPurchaseTypePrice = this.numFormat(item.kitGroupPurchaseTypeJsonParse[this.form.type] || 0)
         this.coursePurchaseTypeJsonTypePrice = this.numFormat(item.coursePurchaseTypeJsonTypePrice)
+        this.types = item.kitGroupPurchaseTypeJsonParse
       } else {
         this.musicalPrice = 0
         this.kitGroupPurchaseTypePrice = 0
         this.coursePurchaseTypeJsonTypePrice = 0
+        this.$set(this.form, 'type', '')
       }
     },
     accessoriesChange(ids, money) {
@@ -426,7 +451,7 @@ export default {
             originalAccessories: this.item.originalAccessories,
             originalAccessoriesPrice: this.originalAccessoriesPrice,
             cooperationOrganId: this.item.cooperationOrganId,
-            kitGroupPurchaseType: this.item.kitGroupPurchaseType,
+            kitGroupPurchaseType: this.form.type,
             musicGroupId: this.musicGroupId,
             studentId: this.detail.studentId,
             changeMusical: this.form.musicalGoods,

+ 1 - 1
src/views/teamBuild/signupList.vue

@@ -535,7 +535,7 @@
                :visible.sync="changeVoiceVisible"
                @close="closeChangeVoice"
                :destroy-on-close="true"
-               width="500px">
+               width="600px">
       <changeVoice @close="closeChangeVoice"
                    @submited="getList"
                    :detail.sync="rowDetail"