Browse Source

乐团学校缴费提交

1
mo 2 years ago
parent
commit
6dfb58e4d8

File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.612ee71f.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-20841b8e.d034ed3c.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-54daf316.529e154b.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-7791b9a2.f067c86d.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-80642148.c41e1af5.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-80f30f36.8fd7d3ca.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-86c79eee.1fd917cd.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-bfced2fa.8f673410.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-cf34dd02.ae719a1c.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-e007daee.ea4f1956.js


+ 12 - 0
src/api/buildTeam.js

@@ -1643,3 +1643,15 @@ export function getGradeList (data) {
     params: data
   })
 }
+
+
+// 提交审核  草稿->审核中
+//     requestType: "json"
+export function musicGroupAuditing(data) {
+  return request2({
+    url: api + `/musicGroup/audit`,
+    method: "post",
+    data: data,
+    requestType: "form"
+  });
+}

+ 2 - 2
src/constant/index.js

@@ -240,12 +240,12 @@ export const packageStatus = {
   1: "可用",
   2: "已使用"
 };
-
+//   DRAFT: "创建缴费中",
 export const musicGroupType = {
   DRAFT: "编辑中",
   AUDIT: "审核中",
   PRE_APPLY: "预报名中",
-  PRE_BUILD_FEE: "创建缴费中",
+
   FEE_AUDIT: "费用审核中",
   APPLY: "报名中",
   PAY: "缴费中",

+ 1 - 1
src/utils/searchArray.js

@@ -808,7 +808,7 @@ export const stockType = [
 //   { value: 'DRAFT', text: '编辑中' },
 //   { value: 'AUDIT', text: '审核中' },
 //   { value: 'PRE_APPLY', text: '预报名中' },
-//   { value: 'PRE_BUILD_FEE', text: '创建缴费中' },
+//   { value: 'DRAFT', text: '创建缴费中' },
 //   { value: 'APPLY', text: '报名中' },
 //   { value: 'PAY', text: '缴费中' },
 //   { value: 'PREPARE', text: '筹备中' },

+ 1 - 1
src/utils/vueFilter.js

@@ -364,7 +364,7 @@ Vue.filter("paymentStatus", value => {
 //     PAY: "缴费中",
 //     PREPARE: "筹备中",
 //     PROGRESS: "进行中",
-//     PRE_BUILD_FEE: '创建缴费中',
+//     DRAFT: '创建缴费中',
 //     CANCELED: '取消',
 //     PAUSE: '暂停',
 //     AUDIT: '乐团审核中',

+ 0 - 0
src/views/branchPayManager/payList.vue


+ 146 - 55
src/views/resetTeaming/components/payInfoDetail.vue

@@ -32,6 +32,9 @@
                         form.eclass = [];
                         form.eclass.push({});
                       }
+                      if (!teamCourse) {
+                        form.calenderFeeType = 'STUDENT';
+                      }
                     }
                   "
                 >
@@ -174,11 +177,31 @@
                 @create="addActive"
                 @remove="removeActive"
               />
-              <paySchoolInfo :form="form" :courseUnitPriceSettingsByType="
+              <paySchoolInfo
+                :form="form"
+                :courseUnitPriceSettingsByType="
                   organizationCourseUnitPriceSettingsByType
-                "/>
+                "
+                :teamCourse="teamCourse"
+                :member="member"
+                :teamActive="teamActive"
+                :leBao="leBao"
+                @setAllTotal="setAllTotal"
+
+                v-if="$route.query.payUserType == 'SCHOOL'"
+              />
+              <backMoney
+                v-if="
+                  $route.query.payUserType == 'SCHOOL' &&
+                  form.currentTotalAmount > 0
+                "
+                :form="form"
+              />
             </div>
-            <div class="teamCourseList coreList">
+            <div
+              class="teamCourseList coreList"
+              v-if="$route.query.payUserType == 'STUDENT'"
+            >
               <div class="coreTitle">
                 <p>基础信息设置</p>
               </div>
@@ -366,7 +389,8 @@ import payTeamCourse from "../modals/payTeamCourse";
 import payMember from "../modals/payMember";
 import payLeBao from "../modals/payLeBao";
 import payTeamActive from "../modals/payTeamActive";
-import paySchoolInfo from '../modals/paySchoolInfo'
+import paySchoolInfo from "../modals/paySchoolInfo";
+import backMoney from "../modals/backMoney";
 import numeral from "numeral";
 import dayjs from "dayjs";
 import subjectPreview from "@/views/resetTeaming/modals/subject-preview";
@@ -396,7 +420,8 @@ export default {
     payLeBao,
     payTeamActive,
     subjectPreview,
-    paySchoolInfo
+    paySchoolInfo,
+    backMoney,
   },
   data() {
     return {
@@ -417,20 +442,29 @@ export default {
         ],
         leBaoList: [{}],
         activeList: [{}],
+        teacherFeeList: [],
         isShowMemberForPay: true,
         isShowMusicInsuranceForPay: true,
         isShowVipCourseForPay: true,
         isShowMusicCourseForPay: true,
         leixing: "1",
         isShowSalePrice: true,
+        calenderFeeJson: {
+          discountTotal: "",
+          allTotal: "",
+          sutdentNumber: "",
+        },
+        calenderFeeType: "STUDENT",
+        musicGroupCalenderRefundPeriods: [{ refundDate: "", refundAmount: "" }],
+        currentTotalAmount:0
       },
       teamCourse: false,
-      teamCourseDisabled: false,
       member: false,
-      memberDisabled: false,
       teamActive: false,
-      teamActiveDisabled: false,
       leBao: false,
+      memberDisabled: false,
+      teamCourseDisabled: false,
+      teamActiveDisabled: false,
       leBaoDisabled: false,
       organizationCourseUnitPriceSettings: null,
       baseInfo: null,
@@ -486,7 +520,7 @@ export default {
       this.courseViewType = this.baseInfo?.musicGroup?.courseViewType;
       if (
         this.courseViewType != 2 &&
-        this.$route.query.team_status == "PRE_BUILD_FEE"
+        this.$route.query.team_status == "DRAFT"
       ) {
         // 课程团的创建缴费
         this.teamCourse = true;
@@ -495,7 +529,7 @@ export default {
         this.form.paymentType = "MUSIC_APPLY";
       } else if (
         this.courseViewType == 2 &&
-        this.$route.query.team_status == "PRE_BUILD_FEE"
+        this.$route.query.team_status == "DRAFT"
       ) {
         // 会员团的创建缴费
         this.member = true;
@@ -505,12 +539,12 @@ export default {
         this.leBaoDisabled = true;
       }
       if (this.$route.query.payUserType == "SCHOOL") {
-        this.member = false;
-        this.memberDisabled = true;
+        // this.member = false;
+        // this.memberDisabled = true;
         this.leBao = false;
-        this.teamActive = false;
         this.leBaoDisabled = true;
-        this.teamActiveDisabled = true;
+        // this.teamActive = false;
+        // this.teamActiveDisabled = true;
       } else {
       }
       await this.getCharges(); // 续费的选择缴费类型
@@ -709,7 +743,7 @@ export default {
           path: "/business/resetTeaming",
           query,
         });
-      } else if (query.type == "PRE_BUILD_FEE" || query.type == "feeAudit") {
+      } else if (query.type == "teamDraft" || query.type == "feeAudit") {
         this.$store.dispatch("delVisitedViews", this.$route);
         this.$router.push({
           path: "/business/resetTeaming",
@@ -811,6 +845,10 @@ export default {
           if (res.code == 200) {
             this.dialogSubjectList = res.data.musicGroupSubjectPlans;
             // 默认预览第一个
+            if (this.dialogSubjectList.length <= 0) {
+              this.$message.error("请先设置声部信息");
+              return;
+            }
             this.activeName = this.dialogSubjectList[0].subjectId.toString();
             this.dialogSubjectVisible = true;
           } else {
@@ -978,34 +1016,73 @@ export default {
       };
     },
     fommatDate() {
-      return {
-        payUserType: this.$route.query.payUserType,
-        musicGroupOrganizationCourseSettingId:
-          this.form.musicGroupOrganizationCourseSettingId || null,
-        memo: this.form.memo,
-        startPaymentDate: this.form.paymentDate[0],
-        deadlinePaymentDate: this.form.paymentDate[1],
-        calenderActivityList:
-          this.form.activeList?.length > 0 ? this.form.activeList : null,
-        musicRepair:
-          this.form.leBaoList?.length > 0
-            ? { ...this.form.leBaoList[0] }
-            : null,
-        calenderMember:
-          this.form.memberList?.length > 0 &&
-          this.form.memberList[0]?.memberRankSettingId
-            ? { ...this.form.memberList[0] }
-            : null,
-        musicGroupPaymentCalenderCourseSettingsList:
-          this.form.eclass?.length > 0 ? this.form.eclass : null,
-        musicGroupId: this.$route.query.id,
-        paymentItemShowState: JSON.stringify({
-          isShowMemberForPay: this.form.isShowMemberForPay,
-          isShowMusicInsuranceForPay: this.form.isShowMusicInsuranceForPay,
-          isShowVipCourseForPay: this.form.isShowVipCourseForPay,
-          isShowMusicCourseForPay: this.form.isShowMusicCourseForPay,
-        }),
-      };
+      if (this.$route.query.payUserType == "STUDENT") {
+        return {
+          payUserType: this.$route.query.payUserType,
+          musicGroupOrganizationCourseSettingId:
+            this.form.musicGroupOrganizationCourseSettingId || null,
+          memo: this.form.memo,
+          startPaymentDate: this.form.paymentDate[0],
+          deadlinePaymentDate: this.form.paymentDate[1],
+          calenderActivityList:
+            this.form.activeList?.length > 0 ? this.form.activeList : null,
+          musicRepair:
+            this.form.leBaoList?.length > 0
+              ? { ...this.form.leBaoList[0] }
+              : null,
+          calenderMember:
+            this.form.memberList?.length > 0 &&
+            this.form.memberList[0]?.memberRankSettingId
+              ? { ...this.form.memberList[0] }
+              : null,
+          musicGroupPaymentCalenderCourseSettingsList:
+            this.form.eclass?.length > 0 ? this.form.eclass : null,
+          musicGroupId: this.$route.query.id,
+          paymentItemShowState: JSON.stringify({
+            isShowMemberForPay: this.form.isShowMemberForPay,
+            isShowMusicInsuranceForPay: this.form.isShowMusicInsuranceForPay,
+            isShowVipCourseForPay: this.form.isShowVipCourseForPay,
+            isShowMusicCourseForPay: this.form.isShowMusicCourseForPay,
+          }),
+        };
+      } else {
+        let calenderFeeJson = this.form.calenderFeeJson;
+        if (this.form.calenderFeeType == "TEACHER") {
+          calenderFeeJson.teacherFeeList = this.form.teacherFeeList;
+        }
+
+        return {
+          payUserType: this.$route.query.payUserType,
+          musicGroupOrganizationCourseSettingId:
+            this.form.musicGroupOrganizationCourseSettingId || null,
+          memo: this.form.memo,
+          calenderActivityList:
+            this.form.activeList?.length > 0 ? this.form.activeList : null,
+          musicRepair:
+            this.form.leBaoList?.length > 0
+              ? { ...this.form.leBaoList[0] }
+              : null,
+          calenderMember:
+            this.form.memberList?.length > 0 &&
+            this.form.memberList[0]?.memberRankSettingId
+              ? { ...this.form.memberList[0] }
+              : null,
+          musicGroupPaymentCalenderCourseSettingsList:
+            this.form.eclass?.length > 0 ? this.form.eclass : null,
+          musicGroupId: this.$route.query.id,
+          paymentItemShowState: JSON.stringify({
+            isShowMemberForPay: this.form.isShowMemberForPay,
+            isShowMusicInsuranceForPay: this.form.isShowMusicInsuranceForPay,
+            isShowVipCourseForPay: this.form.isShowVipCourseForPay,
+            isShowMusicCourseForPay: this.form.isShowMusicCourseForPay,
+          }),
+          calenderFeeType: this.form.calenderFeeType,
+          calenderFeeJson: JSON.stringify(calenderFeeJson),
+          musicGroupCalenderRefundPeriods:
+            this.form.musicGroupCalenderRefundPeriods,
+          currentTotalAmount: this.form.currentTotalAmount,
+        };
+      }
     },
     getScroll() {
       this.scrollTop =
@@ -1018,6 +1095,16 @@ export default {
         this.isField = false;
       }
     },
+    setAllTotal(val) {
+      this.form.calenderFeeJson.allTotal = val;
+      this.form.currentTotalAmount =
+        this.form.calenderFeeJson.allTotal -
+        this.form.calenderFeeJson.discountTotal;
+      this.$set(this.form, "currentTotalAmount", this.form.currentTotalAmount);
+    },
+    currentTotalAmount(val) {
+      this.$set(this.form, "currentTotalAmount", val);
+    },
   },
   watch: {
     teamCourse(val) {
@@ -1042,21 +1129,25 @@ export default {
         this.$set(this.form, "leBaoList", [{}]);
       }
     },
-    'form.eclass':{
+    "form.eclass": {
       handler(newValue, oldValue) {
-        console.log(newValue,'form.eclass')
-        let arr = []
-        newValue.forEach(item=>{
+        console.log(newValue, "form.eclass");
+        let arr = [];
+        newValue.forEach((item) => {
           arr.push({
-            courseType:item.courseType,
-            teacherNumber:0,
-            courseNumber:0,
-            courseCurrentPrice:0
-          })
-        })
-        this.$set(this.form,'teacherFeeList',arr)
+            courseType: item.courseType,
+            teacherNumber: 0,
+            courseNumber: 0,
+            courseCurrentPrice: 0,
+          });
+        });
+        this.$set(this.form, "teacherFeeList", arr);
       },
-      deep: true
+      deep: true,
+    },
+    "form.currentTotalAmount"(val) {
+      // console.log(val,'form.currentTotalAmount');
+      // this.$forceUpdate()
     },
     async "form.musicGroupOrganizationCourseSettingId"(val) {
       // && !this.rowDetail !this.$route.query.calenderId

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

@@ -7,8 +7,7 @@
       @submit="getList"
       :model="searchForm"
     >
-
-    <el-form-item>
+      <el-form-item>
         <el-select
           placeholder="缴费种类"
           v-model="searchForm.payUserType"
@@ -540,6 +539,23 @@
         <el-button @click="dialogSubjectVisible = false">取 消</el-button>
       </div> -->
     </el-dialog>
+    <el-button type="primary" @click="submitAudit" v-if="team_status == 'DRAFT'"
+      >提交审核</el-button
+    >
+    <el-button
+      type="primary"
+      @click="approval"
+      v-if="team_status == 'AUDIT'"
+      v-permission="'musicGroup/auditSuccess'"
+      >审核通过</el-button
+    >
+    <el-button
+      type="danger"
+      @click="refuse"
+      v-if="team_status == 'AUDIT'"
+      v-permission="'musicGroup/auditFailed'"
+      >驳回</el-button
+    >
   </div>
 </template>
 <script>
@@ -547,7 +563,13 @@ import pagination from "@/components/Pagination/index";
 import dayjs from "dayjs";
 import QrCode from "@/components/QrCode/index";
 import { vaildStudentUrl } from "@/utils/validate";
-import { getTeamBaseInfo } from "@/api/buildTeam";
+import {
+  getTeamBaseInfo,
+  auditSuccess,
+  auditFailed,
+  musicGroupAuditing,
+} from "@/api/buildTeam";
+// import { auditSuccess, auditFailed } from "@/api/buildTeam";
 import {
   resetMusicGroupPaymentCalender,
   delMusicGroupPaymentCalender,
@@ -571,7 +593,7 @@ import reviewDetail from "../modals/review-detail";
 import subjectPreview from "@/views/resetTeaming/modals/subject-preview";
 import { userPaymentType } from "@/constant";
 import { objectToOptions } from "@/utils";
-import { payOrderTypeList,payUserTypeList } from "@/utils/searchArray";
+import { payOrderTypeList, payUserTypeList } from "@/utils/searchArray";
 export default {
   props: ["isNewGropu"],
   components: {
@@ -588,7 +610,7 @@ export default {
   },
   data() {
     return {
-      paymentType: this.team_status == "PRE_BUILD_FEE" ? 0 : 1,
+      paymentType: this.team_status == "DRAFT" ? 0 : 1,
       musicGroupStu: [],
       payFormType: "user",
       userVisible: false,
@@ -598,7 +620,7 @@ export default {
       organizationCourseUnitPriceSettings: [],
       searchForm: {
         paymentType: null,
-        payUserType:null
+        payUserType: null,
       },
       viewDetail: null,
       tableList: [],
@@ -644,14 +666,15 @@ export default {
       dialogCalenderId: null, // 选择编号
       baseInfo: null,
       memberVisible: false, // 会员缴费,
-      payUserTypeList:payUserTypeList
+      payUserTypeList: payUserTypeList,
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   async mounted() {
-    this.paymentType = this.team_status == "PRE_BUILD_FEE" ? 0 : 1;
+    this.teamid = this.$route.query.id;
+    this.paymentType = this.team_status == "DRAFT" ? 0 : 1;
     // 获取分部
     try {
       const res = await getOrganizationCourseUnitPriceSettings({
@@ -685,9 +708,7 @@ export default {
     },
     teamStatus() {
       // let type = this.$route.query.type;
-      return (
-        this.team_status == "PRE_BUILD_FEE" || this.team_status == "PROGRESS"
-      );
+      return this.team_status == "DRAFT" || this.team_status == "PROGRESS";
     },
     team_status() {
       return this.$route.query.team_status;
@@ -732,7 +753,7 @@ export default {
       // 判断一下乐团是课程缴费 还是会员缴费 且乐团状态为创建缴费中
       // if (
       //   this.baseInfo?.musicGroup?.courseViewType == 2 &&
-      //   this.team_status == "PRE_BUILD_FEE"
+      //   this.team_status == "DRAFT"
       // ) {
       //   this.payFormType = "user";
       //   this.isNew = true;
@@ -763,7 +784,7 @@ export default {
         page: this.rules.page,
         rows: this.rules.limit,
         musicGroupId: musicGroupId,
-        payUserType:this.searchForm.payUserType,
+        payUserType: this.searchForm.payUserType,
         paymentType: this.searchForm.paymentType,
       }).then((res) => {
         if (res.code == 200) {
@@ -890,6 +911,23 @@ export default {
         // this.$router.push({ path: "/teamPayInfo/strudentPayInfo", query });
       }
     },
+    async submitAudit() {
+      try {
+        await this.$confirm("确定提交审核?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        });
+        const res = await musicGroupAuditing({ musicGroupId: this.teamid });
+        this.$message.success("提交成功");
+        this.$store.dispatch("delVisitedViews", this.$route);
+        this.$router.push({
+          path: "/teamList",
+        });
+      } catch (e) {
+        console.log(e);
+      }
+    },
     // setStudentPay () {
     //   let query = this.$route.query;
     //   this.$router.push({ path: "/business/studentPayBase", query });
@@ -1023,11 +1061,17 @@ export default {
       // 开始预览
       this.dialogCalenderId = row.id;
       const musicGroupId = this.$route.query.id;
-      await findMusicGroupSubjectInfo({ musicGroupId: musicGroupId }).then(
+       findMusicGroupSubjectInfo({ musicGroupId: musicGroupId }).then(
         (res) => {
           if (res.code == 200) {
+
             this.dialogSubjectList = res.data.musicGroupSubjectPlans;
+
             // 默认预览第一个
+            if(this.dialogSubjectList.length<=0){
+              this.$message.error('请先设置声部信息')
+              return
+            }
             this.activeName = this.dialogSubjectList[0].subjectId.toString();
             this.dialogSubjectVisible = true;
           } else {
@@ -1036,6 +1080,55 @@ export default {
         }
       );
     },
+    approval() {
+      // 审核通过 验证商品
+      //  let flag = this.$refs.soundSetCore.checkSubmit()
+      // if (!flag) return;
+      this.$confirm(`是否审核通过?`, "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          auditSuccess({ musicGroupId: this.teamid }).then((res) => {
+            if (res.code == 200) {
+              this.$message.success("审核通过");
+              this.$store.dispatch("delVisitedViews", this.$route);
+              this.$router.push({
+                path: "/teamList",
+                query: { search: this.Fsearch, rules: this.Frules },
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    refuse() {
+      // auditFailed
+      this.$prompt("请输入拒绝原因", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+      }).then(({ value }) => {
+        //   点击确认  值是value
+        if (!value) {
+          this.$message.error("请输入驳回原因");
+          return;
+        } else {
+          auditFailed({ musicGroupId: this.teamid, memo: value }).then(
+            (res) => {
+              if (res.code == 200) {
+                this.$message.success("已拒绝");
+                this.$store.dispatch("delVisitedViews", this.$route);
+                this.$router.push({
+                  path: "/teamList",
+                  query: { search: this.Fsearch, rules: this.Frules },
+                });
+              }
+            }
+          );
+        }
+      });
+    },
   },
   watch: {
     chioseStudentVisible() {

+ 3 - 3
src/views/resetTeaming/components/resetPayListSchool.vue

@@ -581,7 +581,7 @@ export default {
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   async mounted() {
-    this.paymentType = this.team_status == "PRE_BUILD_FEE" ? 0 : 1;
+    this.paymentType = this.team_status == "DRAFT" ? 0 : 1;
     // 获取分部
     try {
       const res = await getOrganizationCourseUnitPriceSettings({
@@ -609,7 +609,7 @@ export default {
     teamStatus() {
       // let type = this.$route.query.type;
       let team_status = this.team_status;
-      return team_status == "PRE_BUILD_FEE" || team_status == "PROGRESS";
+      return team_status == "DRAFT" || team_status == "PROGRESS";
     },
     team_status() {
       return this.$route.query.team_status;
@@ -650,7 +650,7 @@ export default {
     newSchoolPay() {
       if (
         this.baseInfo?.musicGroup?.courseViewType == 2 &&
-        this.team_status == "PRE_BUILD_FEE"
+        this.team_status == "DRAFT"
       ) {
         this.$message.error("会员缴费乐团无法创建学校缴费");
         return;

+ 1 - 1
src/views/resetTeaming/components/strudentPayInfo.vue

@@ -762,7 +762,7 @@ export default {
           path: "/business/resetTeaming",
           query: { ...this.$route.query },
         });
-      } else if (query.type == "PRE_BUILD_FEE" || query.type == "feeAudit") {
+      } else if (query.type == "teamDraft" || query.type == "teamAudit") {
         this.$store.dispatch("delVisitedViews", this.$route);
         this.$router.push({
           path: "/business/resetTeaming",

+ 3 - 3
src/views/resetTeaming/index.vue

@@ -97,7 +97,7 @@
           name="2"
           :disabled="!teamid"
         >
-          <resetSound v-if="activeIndex == '2'" />
+          <resetSound v-if="activeIndex == '2'"    @handleClick="handleClick"/>
         </el-tab-pane>
         <el-tab-pane
           label="缴费设置"
@@ -121,7 +121,7 @@
         >
           <!--         v-if="
             team_status == 'PRE_APPLY' ||
-            team_status == 'PRE_BUILD_FEE' ||
+            team_status == 'DRAFT' ||
             team_status == 'FEE_AUDIT' ||
             team_status == 'APPLY'
           " -->
@@ -311,7 +311,7 @@ export default {
         DRAFT: require("./images/2.png"),
         AUDIT: require("./images/1.png"),
         PRE_APPLY: require("./images/3.png"),
-        PRE_BUILD_FEE: require("./images/5.png"),
+        DRAFT: require("./images/5.png"),
         FEE_AUDIT: require("./images/6.png"),
         APPLY: require("./images/4.png"),
         PAY: require("./images/12.png"),

+ 141 - 0
src/views/resetTeaming/modals/backMoney.vue

@@ -0,0 +1,141 @@
+<template>
+  <div class="teamCourseList">
+    <p class="coreTitle">回款设置</p>
+    <div class="infoWrap">
+      <div class="payList">
+        <div
+          class="payRow"
+          v-for="(item, index) in form.musicGroupCalenderRefundPeriods"
+          :key="index"
+        >
+          <p class="subTitle">回款周期{{ index + 1 }}</p>
+          <el-form-item
+            label="回款金额"
+            :prop="'musicGroupCalenderRefundPeriods.' + index + '.refundAmount'"
+            :rules="[
+              { required: true, message: '请输入回款金额', trigger: 'blur' },
+            ]"
+          >
+            <el-input
+              v-model.trim="item.refundAmount"
+              type="number"
+              autocomplete="off"
+              placeholder="请输入回款金额"
+            >
+              <i slot="suffix" class="el-input__icon" style="padding-right: 5px"
+                >元</i
+              >
+            </el-input>
+          </el-form-item>
+
+          <el-form-item
+            label="回款时间"
+            :prop="'musicGroupCalenderRefundPeriods.' + index + '.refundDate'"
+            :rules="[
+              {
+                required: true,
+                trigger: 'blur',
+                message: '请选择回款金额',
+              },
+            ]"
+          >
+            <el-date-picker
+              v-model="item.refundDate"
+              type="date"
+              placeholder="回款时间"
+              format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd"
+            >
+            </el-date-picker>
+          </el-form-item>
+
+          <i
+            class="el-icon-delete delete"
+            v-if="!(form.musicGroupCalenderRefundPeriods.length <= 1)"
+            @click="deteleRow(item, index)"
+          ></i>
+        </div>
+        <el-row>
+          <el-button class="addBackBtn" @click="addBack">+添加</el-button>
+        </el-row>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import { courseType, boolOptions } from "@/constant";
+export default {
+  props: ["form"],
+  data() {
+    return {
+      charges: [],
+      clearable: false,
+      isDisabled: false,
+      boolOptionsOptions: [],
+      courseType,
+    };
+  },
+  methods: {
+    deteleRow(item, index) {
+      this.form.musicGroupCalenderRefundPeriods.splice(index,1)
+    },
+    addBack() {
+      this.form.musicGroupCalenderRefundPeriods.push({
+        refundDate: "",
+        refundAmount: "",
+      });
+    },
+  },
+  computed: {},
+};
+</script>
+<style lang="scss" scoped>
+@import "~@/views/resetTeaming/modals/pay.scss";
+::v-deep .infoWrap {
+  padding: 0 20px 20px;
+  .el-form-item {
+    margin: 0 0 20px;
+  }
+  .el-form-item__label {
+    display: block !important;
+    text-align: left;
+    padding-left: 10px;
+  }
+  .el-input-number {
+    width: 180px;
+    .el-input__inner {
+      text-align: left;
+    }
+  }
+}
+.memoWrap {
+  // width: calc(100% - 860px);
+  width: 860px;
+  .memoWrapItem {
+    display: block;
+    ::v-deep .el-form-item__content {
+      display: inline-block;
+      width: calc(100% - 140px);
+    }
+  }
+}
+.subTitle {
+  margin: 10px 0;
+  padding-left: 10px;
+  font-size: 15px;
+  font-weight: bold;
+  color: #606266;
+}
+.addBackBtn {
+  width: 440px;
+}
+.payRow {
+  position: relative;
+}
+.delete {
+  position: relative;
+  top: 45px;
+  margin-left: 10px;
+  cursor: pointer;
+}
+</style>

+ 1 - 1
src/views/resetTeaming/modals/member-pay-form.vue

@@ -172,7 +172,7 @@ export default {
         if (!this.rowDetail?.batchNo) {
           try {
             const res = await musicGroupPaymentCalenderAdd(reset);
-            if (this.$route.query.team_status == "PRE_BUILD_FEE") {
+            if (this.$route.query.team_status == "DRAFT") {
               this.$message.success("创建成功");
               this.$store.dispatch("delVisitedViews", this.$route);
               this.$router.push({

+ 112 - 57
src/views/resetTeaming/modals/paySchoolInfo.vue

@@ -26,66 +26,33 @@
         class="vertical"
         prop="isShowMusicInsuranceForPay"
       >
-        <el-select
-          v-model="form.calenderFeeType"
-          placeholder="请选择计价标准"
-        >
+        <el-select v-model="form.calenderFeeType" placeholder="请选择计价标准">
           <el-option label="按学生" value="STUDENT"> </el-option>
-          <el-option label="按老师" value="TEACHER" :disabled="form.eclass.length<=0"> </el-option>
+          <el-option
+            label="按老师"
+            value="TEACHER"
+            :disabled="!teamCourse"
+          >
+          </el-option>
         </el-select>
       </el-form-item>
 
       <el-form-item
+        v-if="form.calenderFeeType == 'STUDENT'"
         class="vertical"
         label="学生人数"
         prop="isShowMusicInsuranceForPay"
       >
         <el-input-number
+          v-model="form.calenderFeeJson.sutdentNumber"
           :controls="false"
           :min="0"
-          :precision="2"
           type="number"
         >
         </el-input-number>
       </el-form-item>
 
-      <div>
-        <el-form-item
-          class="vertical"
-          label="总金额"
-          prop="isShowMusicInsuranceForPay"
-        >
-          <el-input-number
-            :controls="false"
-            :min="0"
-            :precision="2"
-            type="number"
-          >
-          </el-input-number>
-        </el-form-item>
-        <el-form-item
-          class="vertical"
-          label="优惠金额"
-          prop="isShowMusicInsuranceForPay"
-        >
-          <el-input-number
-            :controls="false"
-            :min="0"
-            :precision="2"
-            type="number"
-          >
-          </el-input-number>
-        </el-form-item>
-        <el-form-item
-          class="vertical"
-          label="付款金额"
-          prop="isShowMusicInsuranceForPay"
-        >
-          <el-input-number :controls="false" :min="0" :precision="2">
-          </el-input-number>
-        </el-form-item>
-      </div>
-      <div>
+      <div v-if="form.calenderFeeType == 'TEACHER'">
         <el-table
           class="courseTable"
           :data="form.teacherFeeList"
@@ -147,7 +114,7 @@
                   v-model="form.teacherFeeList[scope.$index].teacherNumber"
                   :controls="false"
                   :precision="0"
-                  :min="0"
+                  :min="1"
                   :disabled="isDisabled"
                   placeholder="老师人数"
                 />
@@ -179,7 +146,7 @@
                   v-model="form.teacherFeeList[scope.$index].courseNumber"
                   :controls="false"
                   :precision="0"
-                  :min="0"
+                  :min="1"
                   placeholder="请输入课时数"
                 />
               </el-form-item>
@@ -205,8 +172,8 @@
                   class="number-input"
                   v-model="form.teacherFeeList[scope.$index].courseCurrentPrice"
                   :controls="false"
-                  :precision="0"
-                  :min="0"
+                  :precision="2"
+                  :min="1"
                   placeholder="单课时售价(元)"
                 />
               </el-form-item>
@@ -215,6 +182,54 @@
           <el-table-column> </el-table-column>
         </el-table>
       </div>
+
+      <div>
+        <el-form-item
+          class="vertical"
+          label="总金额"
+          prop="isShowMusicInsuranceForPay"
+        >
+          <el-input-number
+            :value="allTotal"
+            :controls="false"
+            :min="0"
+            :precision="2"
+            :disabled="true"
+            type="number"
+          >
+          </el-input-number>
+        </el-form-item>
+        <el-form-item
+          class="vertical"
+          label="优惠金额"
+          prop="isShowMusicInsuranceForPay"
+        >
+          <el-input-number
+            v-model="form.calenderFeeJson.discountTotal"
+            :controls="false"
+            :min="0"
+            :max="allTotal"
+            :precision="2"
+            type="number"
+          >
+          </el-input-number>
+        </el-form-item>
+        <el-form-item
+          class="vertical"
+          label="付款金额"
+
+          prop="isShowMusicInsuranceForPay"
+        >
+          <el-input-number
+          v-model="form.currentTotalAmount"
+            :controls="false"
+            :min="0"
+            :precision="2"
+            :disabled="true"
+          >
+          </el-input-number>
+        </el-form-item>
+      </div>
       <el-row>
         <el-col class="memoWrap">
           <el-form-item
@@ -265,7 +280,15 @@
 <script>
 import { courseType, boolOptions } from "@/constant";
 export default {
-  props: ["form", "leBaoInfo", "courseUnitPriceSettingsByType"],
+  props: [
+    "form",
+    "leBaoInfo",
+    "courseUnitPriceSettingsByType",
+    "teamCourse",
+    "member",
+    "teamActive",
+    "leBao",
+  ],
   data() {
     return {
       charges: [],
@@ -276,22 +299,54 @@ export default {
     };
   },
   methods: {},
-  computed: {},
+  computed: {
+    allTotal() {
+      console.log(this.form)
+      let num = 0;
+      if (this.form.calenderFeeType == "STUDENT") {
+
+        if (this.teamCourse) {
+          this.form.eclass.forEach((element) => {
+            num += element.courseCurrentPrice;
+          });
+        }
+        if (this.member) {
+          this.form.memberList.forEach((element) => {
+            num += element.actualAmount * element.num;
+          });
+        }
+        if (this.teamActive) {
+          this.form.activeList.forEach((element) => {
+            num += element.actualAmount * 1;
+          });
+        }
+
+        num *= this.form.calenderFeeJson.sutdentNumber;
+      } else {
+        this.form.teacherFeeList.forEach((element) => {
+            num += (element.courseCurrentPrice*element.courseNumber*element.teacherNumber);
+          });
+      }
+      this.$emit('setAllTotal',num)
+      return num;
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>
 @import "~@/views/resetTeaming/modals/pay.scss";
-::v-deep .infoWrap  {
+::v-deep .infoWrap {
   padding: 10px;
-.el-form-item__label{
-  display: block!important;
-  text-align: left;
-}
+  .el-form-item__label {
+    display: block !important;
+    text-align: left;
+    padding-left: 10px;
+  }
   .el-input-number {
     width: 180px;
-  }
-  ::v-deep .el-input-number .el-input__inner {
-    text-align: left;
+    .el-input__inner {
+      text-align: left;
+    }
   }
 }
 .memoWrap {

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

@@ -954,7 +954,7 @@ export default {
           if (!this.rowDetail?.batchNo) {
             try {
               const res = await musicGroupPaymentCalenderAdd(data);
-              if (this.$route.query.team_status == "PRE_BUILD_FEE") {
+              if (this.$route.query.team_status == "DRAFT") {
                 this.$message.success("创建成功");
                 this.$store.dispatch("delVisitedViews", this.$route);
                 this.$router.push({

+ 11 - 1
src/views/teamBuild/components/teamSoundSet.vue

@@ -23,7 +23,7 @@
         }"
         >提交</el-button
       >
-      <el-button
+      <!-- <el-button
         type="primary"
         @click="submitAudit(1)"
         v-if="teamStatus == 'teamDraft'"
@@ -42,6 +42,13 @@
         v-if="teamStatus == 'teamAudit'"
         v-permission="'musicGroup/auditFailed'"
         >驳回</el-button
+      > -->
+      <el-button
+        type="primary"
+        @click="gotoNext"
+        v-if="teamStatus == 'teamAudit'"
+        v-permission="'musicGroup/auditSuccess'"
+        >下一步</el-button
       >
       <el-button
            type="primary"
@@ -190,6 +197,9 @@ export default {
         }
       });
     },
+    gotoNext(){
+      this.$emit("handleClick", { name: "3" });
+    }
   },
 
   computed: {},

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

@@ -9,7 +9,7 @@
         </p> -->
 
     <div class="btnList">
-      <auth :auths="['musicGroup/sendParentMeetingNotice']" v-if="isedit || $route.query.team_status=='PRE_BUILD_FEE'">
+      <auth :auths="['musicGroup/sendParentMeetingNotice']" v-if="isedit || $route.query.team_status=='DRAFT'">
         <el-button type="primary" @click="extendPaymentStatus = true"
           >预报名家长会通知</el-button
         >

+ 3 - 3
src/views/teamDetail/teamInfo.vue

@@ -29,7 +29,7 @@
         >
         <!--         v-if="
             team_status == 'PRE_APPLY' ||
-            team_status == 'PRE_BUILD_FEE' ||
+            team_status == 'DRAFT' ||
             team_status == 'FEE_AUDIT' ||
             team_status == 'APPLY'
           " -->
@@ -63,7 +63,7 @@
         >
           <resetPayList
             v-if="activeIndex == '3'"
-            :isNewGropu="team_status == 'PRE_BUILD_FEE' ? true : false"
+            :isNewGropu="team_status == 'DRAFT' ? true : false"
           />
         </el-tab-pane>
         <el-tab-pane
@@ -74,7 +74,7 @@
         >
           <resetPayListSchool
             v-if="activeIndex == '4'"
-            :isNewGropu="team_status == 'PRE_BUILD_FEE' ? true : false"
+            :isNewGropu="team_status == 'DRAFT' ? true : false"
           />
         </el-tab-pane>
       </tab-router>

+ 5 - 5
src/views/teamDetail/teamList.vue

@@ -347,7 +347,7 @@
                   v-if="
                     (scope.row.status == 'PRE_APPLY' ||
                       scope.row.status == 'PAUSE' ||
-                      scope.row.status == 'PRE_BUILD_FEE' ||
+                      scope.row.status == 'DRAFT' ||
                       scope.row.status == 'PROGRESS' ||
                       scope.row.status == 'CANCELED' ||
                       scope.row.status == 'APPLY' ||
@@ -395,7 +395,7 @@
                       scope.row.status == 'APPLY' ||
                       scope.row.status == 'PAY' ||
                       scope.row.status == 'PRE_APPLY' ||
-                      scope.row.status == 'PRE_BUILD_FEE') &&
+                      scope.row.status == 'DRAFT') &&
                     permission('musicGroup/cancelMusicGroup')
                   "
                   @click="stopTeam(scope.row)"
@@ -819,11 +819,11 @@ export default {
           );
           break;
         }
-        case "PRE_BUILD_FEE": {
+        case "DRAFT": {
           // 创建缴费中
           // this.$router.push({
           //   path: "/business/createPayment",
-          //   query: { type: "PRE_BUILD_FEE", id: row.id, name: row.name },
+          //   query: { type: "DRAFT", id: row.id, name: row.name },
           // });
           this.$router.push(
             {
@@ -832,7 +832,7 @@ export default {
                 type: "look",
                 id: row.id,
                 name: row.name,
-                team_status: "PRE_BUILD_FEE",
+                team_status: "DRAFT",
                 tabrouter: 3,
               },
             },

Some files were not shown because too many files changed in this diff