Procházet zdrojové kódy

Merge branch '0609getMusicFee' into test

mo před 4 roky
rodič
revize
c7c8d809c8

+ 45 - 27
src/layout/components/TagsView.vue

@@ -108,18 +108,17 @@ export default {
       return route.path === this.$route.path;
     },
     syncTagViewAndSaveForm() {
-      const keys = this.$store.state.tagsView.visitedViews.map(
-        (item) => {
-          //  (item)
-          return item.path}
-      );
+      const keys = this.$store.state.tagsView.visitedViews.map((item) => {
+        //  (item)
+        return item.path;
+      });
       const searchs = new Searchs();
       const allSearch = searchs.getSearchs();
 
       const sks = Object.keys(allSearch);
       let route = this.$route;
       for (const item of sks) {
-       if (!(keys.includes(item) || keys.includes(allSearch[item].bind))) {
+        if (!(keys.includes(item) || keys.includes(allSearch[item].bind))) {
           searchs.removeByKey(item);
         }
 
@@ -160,24 +159,44 @@ export default {
         }
       });
     },
-    closeSelectedTag(view) {
-      activeKey = "1";
+    async closeSelectedTag(view) {
 
-      const searchs = new Searchs();
-      searchs.remove(this.$route.path);
-      this.$store
-        .dispatch("delVisitedViews", { ...view, dontNeedSave: true })
-        .then((views) => {
+      activeKey = "1";
+      //
+      if (this.$route.meta.nogo) {
+        try {
+          let views = await this.$store.getters.views;
           if (this.isActive(view)) {
-            const latestView = views.slice(-1)[0];
+
+            const latestView = views[views.length -2];
+            console.log(views)
             if (latestView) {
               this.$router.push(latestView.fullPath);
             } else {
-              let firstMenuUrl = localStorage.getItem('firstMenuUrl')
-              this.$router.push(firstMenuUrl || '/');
+              let firstMenuUrl = localStorage.getItem("firstMenuUrl");
+              this.$router.push(firstMenuUrl || "/");
             }
           }
-        });
+        } catch (e) {
+          console.log(e)
+        }
+      } else {
+        const searchs = new Searchs();
+        searchs.remove(this.$route.path);
+        this.$store
+          .dispatch("delVisitedViews", { ...view, dontNeedSave: true })
+          .then((views) => {
+            if (this.isActive(view)) {
+              const latestView = views.slice(-1)[0];
+              if (latestView) {
+                this.$router.push(latestView.fullPath);
+              } else {
+                let firstMenuUrl = localStorage.getItem("firstMenuUrl");
+                this.$router.push(firstMenuUrl || "/");
+              }
+            }
+          });
+      }
     },
     closeOthersTags() {
       this.$router.push(this.selectedTag.path);
@@ -195,19 +214,19 @@ export default {
       // this.selectedTag = tag;
       // this.left = e.clientX;
       // this.top = e.clientY - 55;
-      const menuMinWidth = 105
-      const offsetLeft = this.$el.getBoundingClientRect().left // container margin left
-      const offsetWidth = this.$el.offsetWidth // container width
-      const maxLeft = offsetWidth - menuMinWidth // left boundary
-      const left = e.clientX - offsetLeft + 15 // 15: margin right
+      const menuMinWidth = 105;
+      const offsetLeft = this.$el.getBoundingClientRect().left; // container margin left
+      const offsetWidth = this.$el.offsetWidth; // container width
+      const maxLeft = offsetWidth - menuMinWidth; // left boundary
+      const left = e.clientX - offsetLeft + 15; // 15: margin right
       if (left > maxLeft) {
-        this.left = maxLeft
+        this.left = maxLeft;
       } else {
-        this.left = left
+        this.left = left;
       }
       this.top = e.clientY - 55;
-      this.visible = true
-      this.selectedTag = tag
+      this.visible = true;
+      this.selectedTag = tag;
     },
     closeMenu() {
       this.visible = false;
@@ -219,7 +238,6 @@ export default {
       const searchs = new Searchs();
       let keyName = "";
 
-
       for (const key in searchs.searchs) {
         if (Object.hasOwnProperty.call(searchs.searchs, key)) {
           const item = searchs.searchs[key];

+ 2 - 1
src/store/getters.js

@@ -15,6 +15,7 @@ const getters = {
   newStudentinfo: state => state.buildTeam.newStudentList,
   reactClassStudentList:state=>state.reactClassStudent.classList ,
   buildIndex:state=>state.buildTeam.buildIndex,
-  draftIndex:state=>state.buildTeam.draftIndex
+  draftIndex:state=>state.buildTeam.draftIndex,
+  views:state=>state.tagsView.visitedViews
 }
 export default getters

+ 14 - 4
src/views/resetTeaming/components/resetPayList.vue

@@ -98,9 +98,8 @@
         </el-table-column>
         <el-table-column
           align="center"
-          width="150px"
           prop="courseCurrentPrice"
-          label="现价"
+          label="课程费用"
         >
           <template slot-scope="scope">
             <div>
@@ -112,6 +111,17 @@
             </div>
           </template>
         </el-table-column>
+        <el-table-column
+          align="center"
+          prop="courseCurrentPrice"
+          label="会员费用"
+        >
+          <template slot-scope="scope">
+            <div>
+              {{ scope.row.memberPaymentAmount | moneyFormat }}
+            </div>
+          </template>
+        </el-table-column>
         <!-- <el-table-column align="center"
                          prop="status"
                          label="缴费状态">
@@ -720,8 +730,8 @@ export default {
         const res = await revokeMusicGroupPaymentCalender({
           batchNo: row.batchNo,
         });
-        this.$message.success('取消审批成功')
-        this.getList()
+        this.$message.success("取消审批成功");
+        this.getList();
       } catch {}
       console.log(row);
     },

+ 47 - 7
src/views/resetTeaming/components/strudentPayInfo.vue

@@ -270,12 +270,30 @@
           <el-table-column
             align="center"
             prop="expectAmount"
-            label="缴费金额"
-          ></el-table-column>
+            label="课程金额"
+          >
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.expectAmount | moneyFormat}}
+            </div>
+          </template>
+          </el-table-column>
+
+               <el-table-column
+            align="center"
+            prop="expectMemberAmount"
+            label="会员金额"
+          >
+             <template slot-scope="scope">
+            <div>
+              {{scope.row.expectMemberAmount | moneyFormat}}
+            </div>
+          </template>
+          </el-table-column>
           <el-table-column align="center" label="缴费开始日期">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.startPaymentDateMgpc | formatTimer }}
+                {{ scope.row.startPaymentDate | formatTimer }}
               </div>
             </template>
           </el-table-column>
@@ -376,7 +394,8 @@
                     value="张三"></el-input>
         </el-form-item> -->
         <el-form-item
-          label="预计缴费金额"
+        v-if="msgList.length>0"
+          label="预计课程金额"
           :rules="[
             { required: true, message: '请输入预计缴费金额', trigger: 'blur' },
             {
@@ -390,6 +409,22 @@
         >
           <el-input v-model="resetPayForm.momey"></el-input>
         </el-form-item>
+        <el-form-item
+        v-if="memberRankSettingId"
+          label="预计会员金额"
+          :rules="[
+            { required: true, message: '请输入预计缴费金额', trigger: 'blur' },
+            {
+              pattern:
+                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
+              message: '请输入正确的金额',
+              trigger: 'blur',
+            },
+          ]"
+          prop="expectMemberAmount"
+        >
+          <el-input v-model="resetPayForm.expectMemberAmount"></el-input>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="resetPayVisible = false">取 消</el-button>
@@ -492,6 +527,7 @@ export default {
       },
       resetPayForm: {
         momey: null,
+        expectMemberAmount: null,
       },
       activeChiose: [],
       id: null,
@@ -506,6 +542,7 @@ export default {
       },
 
       msgList: [],
+      memberRankSettingId: null,
       detailVisible: false,
       titleForm: {
         paymentType: "",
@@ -571,11 +608,13 @@ export default {
             paymentValidEndDate: res.data.calender.paymentValidEndDate,
             calenderSettingsName: res.data.calenderSettingsName,
             memberPaymentAmount: res.data.calender.memberPaymentAmount,
-            memberRankSettingName:res.data.calender.memberRankSettingName,
-            originalMemberPaymentAmount: res.data.calender.originalMemberPaymentAmount,
-            memberValidDate:res.data.calender.memberValidDate,
+            memberRankSettingName: res.data.calender.memberRankSettingName,
+            originalMemberPaymentAmount:
+              res.data.calender.originalMemberPaymentAmount,
+            memberValidDate: res.data.calender.memberValidDate,
           };
           this.msgList = res.data.musicGroupPaymentCalenderCourseSettings;
+          this.memberRankSettingId = res.data?.calender?.memberRankSettingId;
         }
       });
       this.searchForm.id = this.id;
@@ -666,6 +705,7 @@ export default {
     submitReset() {
       let obj = {};
       obj.expectAmount = this.resetPayForm.momey;
+      obj.expectMemberAmount = this.resetPayForm.expectMemberAmount;
       obj.ids = this.ids;
       resetMusicGroupPaymentCalenderDetail(obj).then((res) => {
         if (res.code == 200) {

+ 35 - 10
src/views/resetTeaming/modals/member-setting.vue

@@ -9,18 +9,18 @@
     <el-form-item
       label="是否购买会员"
       prop="paymentDate"
-      v-if="isUserType&&addStudent"
+      v-if="isUserType && addStudent"
       :rules="[{ required: true, message: '请选择缴费时间', trigger: 'blur' }]"
     >
       <el-radio-group v-model="radio">
-        <el-radio :label="true" >购买会员</el-radio>
+        <el-radio :label="true">购买会员</el-radio>
         <el-radio :label="false">不购买会员</el-radio>
       </el-radio-group>
     </el-form-item>
     <el-form-item
       label="会员等级"
       prop="memberRankSettingId"
-      v-if="isUserType&&radio"
+      v-if="isUserType && radio"
       :rules="[{ required: true, message: '请选择会员等级', trigger: 'blur' }]"
     >
       <el-select
@@ -42,7 +42,7 @@
     <el-form-item
       label="会员有效期"
       prop="memberValidDate"
-      v-if="isUserType&&radio"
+      v-if="isUserType && radio"
       :rules="[
         { required: true, message: '请选择会员有效期', trigger: 'blur' },
       ]"
@@ -66,7 +66,7 @@
     <el-form-item
       label="现价"
       prop="memberPaymentAmount"
-      v-if="isUserType&&radio"
+      v-if="isUserType && radio"
       :rules="[
         {
           pattern:
@@ -83,7 +83,7 @@
     <el-form-item
       label="原价"
       prop="originalMemberPaymentAmount"
-      v-if="isUserType&&radio"
+      v-if="isUserType && radio"
       :rules="[{ required: true, message: '请输入原价', trigger: 'blur' }]"
     >
       <el-input
@@ -97,7 +97,7 @@
     <el-form-item
       label="缴费时间"
       prop="paymentDate"
-      v-if="isUserType && !addStudent&&showTime"
+      v-if="isUserType && !addStudent && showTime"
       :rules="[{ required: true, message: '请选择缴费时间', trigger: 'blur' }]"
     >
       <el-date-picker
@@ -118,7 +118,7 @@ import { paymentPatternType } from "@/constant";
 import { objectToOptions } from "@/utils";
 import { getAllmemberRank, getMemberFee } from "../api";
 export default {
-  props: ["form", "isUserType", "organId", "addStudent","showTime"],
+  props: ["form", "isUserType", "organId", "addStudent", "showTime"],
   data() {
     return {
       paymentPatternTypeOptions: objectToOptions(paymentPatternType),
@@ -129,7 +129,7 @@ export default {
         },
       },
       memberRankList: [],
-      radio:true
+      radio: true,
     };
   },
   async mounted() {
@@ -140,6 +140,7 @@ export default {
     } catch (e) {
       console.log(e);
     }
+    this.$set(this.form, "memberValidDate", 6);
   },
   methods: {
     async memberRankSettingIdChange(val) {
@@ -174,7 +175,31 @@ export default {
       }
     },
   },
-  watch: {},
+  watch: {
+    radio(val) {
+      /**
+       *       memberForm: {
+        memberRankSettingId: "",
+        memberValidDate: "",
+        memberPaymentAmount: "",
+        originalMemberPaymentAmount: "",
+        paymentDate: [],
+      },
+       *
+       */
+
+      if (!val) {
+        console.log("来了 重置了");
+        this.$set(this.form, "memberRankSettingId", null);
+        this.$set(this.form, "memberValidDate", null);
+        this.$set(this.form, "memberPaymentAmount", null);
+        this.$set(this.form, "originalMemberPaymentAmount", null);
+        this.$set(this.form, "paymentDate", []);
+      } else {
+        this.$set(this.form, "memberValidDate", 6);
+      }
+    },
+  },
 };
 </script>
 <style lang="less" scoped>

+ 2 - 3
src/views/resetTeaming/modals/user-pay-form.vue

@@ -289,7 +289,7 @@ export default {
       courseViewType: "",
       memberForm: {
         memberRankSettingId: "",
-        memberValidDate: 6,
+        memberValidDate: "",
         memberPaymentAmount: "",
         originalMemberPaymentAmount: "",
         paymentDate: [],
@@ -759,7 +759,7 @@ export default {
         if (info && this.viewDetail?.auditDto.paymentType === "ADD_STUDENT") {
           data.attribute1 = info.attribute1;
         }
-
+        // courseViewType == 1&&paymentType !== undefined
         let hasCourseFee = false;
 
         for (const item of data.musicGroupPaymentCalenderCourseSettingsList) {
@@ -781,7 +781,6 @@ export default {
           );
           return;
         }
-
         if (!this.rowDetail?.batchNo) {
           try {
             const res = await musicGroupPaymentCalenderAdd(data);

+ 9 - 3
src/views/teamDetail/components/memberClassList.vue

@@ -45,6 +45,7 @@
         @expand-change="changeDetail"
         style
         ref="multipleTable"
+        row-key="id"
         :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         tooltip-effect="dark"
         ><el-table-column type="expand">
@@ -294,6 +295,8 @@ export default {
   },
   mounted() {
     this.init();
+     this.$route.meta.nogo = true
+    // console.log()
   },
   methods: {
     async init() {
@@ -375,7 +378,7 @@ export default {
         path: "/business/resetTeaming",
         query: { ...this.$route.query },
       });
-      this.$store.dispatch("delVisitedViews", this.$route);
+
     },
     setStartTime() {
       this.$refs.form.validate(async (res) => {
@@ -480,10 +483,11 @@ export default {
           const res = await getPreCourseList({ classGroupId: row.id });
           this.activeSingleList.forEach((item, index) => {
             if (item.id == row.id) {
-              this.activeSingleList[index].courseData = res.data;
+              // this.activeSingleList[index].courseData = res.data;
+              this.$set( this.activeSingleList[index],'courseData',res.data)
             }
           });
-          console.log(this.activeSingleList);
+
         } catch (e) {
           console.log(e);
         }
@@ -534,11 +538,13 @@ export default {
         type: "warning",
       })
         .then(async () => {
+            this.$store.dispatch("delVisitedViews", this.$route);
           next();
           // musicGroupSchoolTermCourseDetailId
         })
         .catch(() => {});
     } else {
+        this.$store.dispatch("delVisitedViews", this.$route);
       next();
     }
   },

+ 4 - 2
src/views/teamDetail/components/modals/create-user-pay.vue

@@ -251,7 +251,7 @@ export default {
       isUserType: true,
       memberForm: {
         memberRankSettingId: "",
-        memberValidDate: 6,
+        memberValidDate: "",
         memberPaymentAmount: "",
         originalMemberPaymentAmount: "",
         paymentDate: [],
@@ -349,7 +349,7 @@ export default {
       if (this.$refs.cycle) {
         this.$set(this.cycle, "paymentAmount", money);
       }
-      money += parseFloat(this.memberForm.memberPaymentAmount);
+      money += parseFloat(this.memberForm.memberPaymentAmount||0);
       this.money = money;
       return money;
     },
@@ -409,6 +409,7 @@ export default {
           });
           this.eclass = [..._];
           this.syncAllMoney();
+          console.log('更换班级')
         }
       } catch (error) {
         console.log(error);
@@ -459,6 +460,7 @@ export default {
         this.$message.error("请至少选择一个班级");
         return;
       }
+
       if (forms.length === valided.length) {
         const cyclelist =
           this.payment.paymentPattern == 0 ? this.cycles : [this.cycle];