lex-xin 9 月之前
父節點
當前提交
2e6abe4eb9

+ 37 - 32
src/views/resetTeaming/components/payInfoDetail.vue

@@ -100,12 +100,7 @@
                   :style="{ opacity: memberDisabled ? '0.5' : '1' }"
                   @click.prevent="
                     () => {
-                      if (memberDisabled) return;
-                      member = !member;
-                      if (member && form.memberList.length < 0) {
-                        form.memberList = [];
-                        form.memberList.push({});
-                      }
+                      addShowMember()
                     }
                   "
                 >
@@ -456,6 +451,16 @@ import {
   findMusicGroupSubjectInfo,
   getAgreement
 } from "@/api/buildTeam";
+import deepClone from "@/helpers/deep-clone";
+const __memberList = {
+    period: "",
+    num: "",
+    name: "",
+    actualAmount: "",
+    memberRankSettingId: "",
+    optionalFlag: null,
+    autoActivationFlag: false
+  }
 import { vipGroupActivity } from "@/api/vipSeting";
 export default {
   components: {
@@ -473,17 +478,7 @@ export default {
         paymentType: "",
         memo: "",
         eclass: [{}],
-        memberList: [
-          {
-            period: "",
-            num: "",
-            name: "",
-            actualAmount: "",
-            memberRankSettingId: "",
-            optionalFlag: null,
-            autoActivationFlag: false
-          }
-        ],
+        memberList: [deepClone(__memberList)],
         leBaoList: [{}],
         activeList: [{}],
         teacherFeeList: [],
@@ -796,6 +791,13 @@ export default {
         console.log(e);
       }
     },
+    addShowMember() {
+      if (this.memberDisabled) return;
+      this.member = !this.member;
+      if (this.member && this.form.memberList.length < 0) {
+        this.form.memberList = [deepClone(__memberList)];
+      }
+    },
     formatParentId(id, list, ids = []) {
       for (const item of list) {
         if (item.children) {
@@ -977,15 +979,7 @@ export default {
       this.form.activeList.push({});
     },
     addPayMember() {
-      this.form.memberList.push({
-        period: "",
-        num: "",
-        name: "",
-        actualAmount: "",
-        memberRankSettingId: "",
-        optionalFlag: null,
-        autoActivationFlag: false
-      })
+      this.form.memberList.push(deepClone(__memberList))
     },
     removeActive(index) {
       this.form.activeList[index] = null;
@@ -1144,7 +1138,19 @@ export default {
         break; // 跳出循环了
       }
     },
-
+    findMemberItem(id) {
+      let temp = {}
+      this.memberRankList.forEach((item) => {
+        if(Array.isArray(item.children)) {
+          item.children.forEach(child => {
+            if(child.id === id) {
+              temp = child
+            }
+          })
+        }
+      })
+      return temp
+    },
     formatPreviewData() {
       // 格式化预览数据
       const form = this.form;
@@ -1164,10 +1170,10 @@ export default {
       if (memberObj && memberObj.length > 0) {
         memberObj.forEach(item => {
           item.memberRankSettingId = item.memberRankSettingId.length > 0 ? item.memberRankSettingId[item.memberRankSettingId.length - 1] : null
-          const n = this.memberRankList.find(c => c.id = item.memberRankSettingId)
+          const n = this.findMemberItem(item.memberRankSettingId) // this.memberRankList.find(c => c.id = item.memberRankSettingId)
           if(n) {
             item.name = n.name;
-          item.intro = n.intro
+            item.intro = n.intro
           }
         })
       }
@@ -1334,7 +1340,7 @@ export default {
     },
     member(val) {
       if (!val) {
-        this.$set(this.form, "memberList", [{}]);
+        this.$set(this.form, "memberList", [deepClone(__memberList)]);
       }
     },
     teamActive(val) {
@@ -1460,8 +1466,7 @@ export default {
             this.member = true;
             this.memberDisabled = true;
             if (this.member && this.form.memberList.length < 0) {
-              this.form.memberList = [];
-              this.form.memberList.push({});
+              this.form.memberList = [deepClone(__memberList)];
             }
           }
         }

+ 9 - 11
src/views/resetTeaming/modals/payMember.vue

@@ -326,7 +326,6 @@ export default {
     };
   },
   async mounted() {
-    console.log(this.form.memberList, 'this.form.memberList')
     this.form.memberList.forEach(async (item, index) => {
       await this.changeMember(item.memberRankSettingId, index)
     })
@@ -342,8 +341,8 @@ export default {
           ids.push(itemId)
         }
       })
-      console.log(ids, 'ids')
-      console.log(value, id, 'teachList', this.memberRankList)
+      // console.log(ids, 'ids')
+      // console.log(value, id, 'teachList', this.memberRankList)
       this.memberRankList.forEach((item) => {
         if(ids.includes(item.id)) {
           item.disabled = true;
@@ -364,7 +363,7 @@ export default {
       this.$forceUpdate();
     },
     changeMemberperiodEnum(val, index) {
-      console.log(this.memberPriceList, val, index);
+      // console.log(this.memberPriceList, val, index, "changeMemberperiodEnum");
       if (val == "DAY") {
         this.$set(
           this.form.memberList[index],
@@ -470,12 +469,12 @@ export default {
           max =
             Number(this.rulesForm.maxQuarterlyFee) *
             this.form.memberList[0].num;
-          console.log(
-            this.form.memberList[0]?.period,
-            min,
-            max,
-            this.rulesForm
-          );
+          // console.log(
+          //   this.form.memberList[0]?.period,
+          //   min,
+          //   max,
+          //   this.rulesForm
+          // );
           break;
         }
         case "YEAR_HALF": {
@@ -498,7 +497,6 @@ export default {
       return callback(new Error(`定价应在${min}-${max}之间`));
     },
     onRemove(index) {
-      console.log(index, '1212')
       this.memberPriceList.splice(index, 1)
       this.$forceUpdate();
       this.$listeners.remove && this.$listeners.remove(index)

+ 6 - 0
src/views/resetTeaming/modals/signUpPayment.less

@@ -397,5 +397,11 @@
   ::v-deep .el-dialog__body {
     padding: 0;
     font-size: 0;
+
+    .video-js {
+      height: 324px;
+    }
   }
 }
+
+

+ 5 - 25
src/views/resetTeaming/modals/subject-preview.vue

@@ -97,7 +97,6 @@
             ></i>
             <div class="paymentPrice">
               <span>优惠价:¥{{ item.actualAmount | moneyFormat }}</span>
-              <!-- <del>原价:¥ {{ onCalcSinglePrice(item) }}</del> -->
             </div>
           </div>
         </div>
@@ -223,7 +222,7 @@
       :modal-append-to-body="false"
       :append-to-body="true"
       class="videoDialog"
-      width="30%"
+      width="576px"
     >
       <videoTcplayer
         v-if="videoStatus"
@@ -237,6 +236,7 @@
   </div>
 </template>
 <script>
+import videoTcplayer from "@/components/video-tcplayer";
 import { permission } from "@/utils/directivePage";
 import { getSubjectGoodsAndInfoPreview, getType } from "@/api/buildTeam";
 import dayjs from "dayjs";
@@ -260,7 +260,8 @@ export default {
     InstrumentModel,
     accessories,
     activity,
-    member
+    member,
+    videoTcplayer
   },
   data() {
     const query = this.$route.query;
@@ -392,6 +393,7 @@ export default {
               isShowVipCourseForPay: true,
               isShowMusicCourseForPay: true
             };
+      console.log(this.preViewData)
       this.courseViewType = tempResult.musicGroup.courseViewType || 0;
       this.isGiveAccessories =
         (tempResult.musicGroup && tempResult.musicGroup.isGiveAccessories) ||
@@ -938,28 +940,6 @@ export default {
     },
     permission(str) {
       return permission(str);
-    },
-    onCalcSinglePrice(item) {
-      const tempNum = {
-        YEAR: 12,
-        MONTH: 1,
-        QUARTERLY: 3,
-        YEAR_HALF: 6
-      };
-      const num = (tempNum[item.period] || 1) * item.num;
-      let price = 0;
-      if (num % 6 === 0) {
-        const halfYearNum = Number(num / 6);
-        this.formatList.forEach(format => {
-          price += Number(format.halfYearPrice * halfYearNum);
-        });
-      } else {
-        this.formatList.forEach(format => {
-          price += Number(format.monthPrice * num);
-        });
-      }
-
-      return numeral(Number(price)).format("0,0.00");
     }
   },
   filters: {