浏览代码

更改声部

wolyshaw 4 年之前
父节点
当前提交
dcb25c42e2
共有 2 个文件被更改,包括 39 次插入13 次删除
  1. 11 2
      src/views/teamBuild/modals/accessories.vue
  2. 28 11
      src/views/teamBuild/modals/change-voice.vue

+ 11 - 2
src/views/teamBuild/modals/accessories.vue

@@ -53,8 +53,17 @@
             }
           }
         }
-        this.selectMoney = selectMoney
-        this.$listeners.change(vals, selectMoney)
+        let formatids = []
+        if (this.type !== 'list') {
+          for (const item of vals) {
+            const active = this.groupListById[item]
+            if (active) {
+              const { goodsList } = this.groupListById[item]
+              formatids = formatids.concat((goodsList || []).map(goods => goods.id))
+            }
+          }
+        }
+        this.$listeners.change(formatids, selectMoney)
       }
     },
     mounted() {

+ 28 - 11
src/views/teamBuild/modals/change-voice.vue

@@ -12,6 +12,7 @@
           style="width: 100%!important"
           v-model="form.subjectId"
           clearable
+          v-if="!detail.subjectChange"
           @change="subjectChange"
           placeholder="请选择声部"
         >
@@ -22,12 +23,14 @@
             :value="item.subjectId">
           </el-option>
         </el-select>
+        <span v-else>{{detail.subjectName}}</span>
       </el-form-item>
       <el-form-item label="更改乐器" prop="name">
         <el-select
           style="width: 100%!important"
           v-model="form.musicalGoods"
           clearable
+          v-if="!detail.subjectChange"
           @change="musicalGoodsChange"
           placeholder="请选择乐器"
         >
@@ -38,13 +41,16 @@
             :value="item.id">
           </el-option>
         </el-select>
+        <span v-else-if="detail.subjectChange.changeAccessoriesGoods">{{detail.subjectChange.changeAccessoriesGoods.name}}</span>
       </el-form-item>
-      <el-form-item v-if="activeAccessories.length || groupList.length" label="更换教辅" prop="name">
+      <el-form-item v-if="(activeAccessories.length || groupList.length) || detail.subjectChange" label="更换教辅" prop="name">
         <accessories
           :list.sync="activeAccessories"
           :groupList.sync="groupList"
           @change="accessoriesChange"
+          v-if="!detail.subjectChange"
         />
+        <span v-else-if="detail.subjectChange.changeAccessoriesGoods">{{changeAccessoriesGoods}}</span>
         <!-- <el-select style="width: 100%" v-model="form.accessories" clearable placeholder="请选择教辅">
           <el-option
             v-for="item in accessories"
@@ -55,7 +61,8 @@
         </el-select> -->
       </el-form-item>
       <el-form-item label="支付差价" prop="name">
-        <span style="color: red;">{{ spread }}元</span>
+        <span style="color: red;" v-if="!detail.subjectChange">{{ spread }}元</span>
+        <span style="color: red;" v-else>{{ editSpread }}元</span>
       </el-form-item>
     </el-form>
     <div
@@ -73,6 +80,7 @@
       >取消订单</el-button>
       <el-button
         type="primary"
+        v-else
         @click="submit"
       >确 定</el-button>
     </div>
@@ -196,6 +204,21 @@ export default {
       const { musicalGoods } = this.form
       return musicalGoods ? this.accessoriesByGoods[musicalGoods] || [] : []
     },
+    changeAccessoriesGoods() {
+      let names = []
+      const { subjectChange } = this.detail
+      if (subjectChange && subjectChange.changeAccessoriesGoods && subjectChange.changeAccessoriesGoods.goodsList) {
+        for (const item of subjectChange.changeAccessoriesGoods.goodsList) {
+          names.push(item.name)
+        }
+      }
+      return names.join(',')
+    },
+    editSpread() {
+      const data = this.item
+      const payed = (data.originalAccessoriesPrice || 0) + (data.originalCourseFee || 0) + (data.originalMusicalPrice || 0)
+      return (data.changeMusicalPrice || 0) + (data.changeAccessoriesPrice || 0) + (data.changeCourseFee || 0) - payed
+    },
     spread() {
       return (
         this.musicalPrice +
@@ -289,10 +312,7 @@ export default {
       })
         .then(res => {
           this.$listeners.close()
-          this.$message({
-            type: 'success',
-            message: '提交成功!'
-          })
+          this.$message.success('提交成功!')
         })
     },
     cancel() {
@@ -303,13 +323,10 @@ export default {
       })
       .then(() => {
         subjectChangeCancel({
-          id: this.item.id
+          id: this.detail.subjectChange.id
         })
         .then(res => {
-          this.$message({
-            type: 'success',
-            message: '取消成功!'
-          })
+          this.$message.success('取消成功!')
         })
       })
     }