Browse Source

乐团改造

1
mo 4 years ago
parent
commit
3aed034955

+ 1 - 1
src/App.vue

@@ -139,7 +139,7 @@ input[type="number"] {
 }
 .newBand {
   min-width: 100px;
-  max-width: 130px;
+  max-width: 150px;
   padding: 0 10px;
   height: 36px;
   line-height: 36px;

+ 0 - 1
src/store/modules/buildTeam.js

@@ -9,7 +9,6 @@ const state = {
 
 const mutations = {
   SET_TOPINFO (state, topinfo) {
-    console.log(topinfo)
     state.topinfo = topinfo
   },
   SET_CHRCK (state, checkinfo) {

+ 28 - 0
src/views/resetTeaming/index.vue

@@ -27,6 +27,28 @@
         >
           <resetSound v-if="activeIndex == 2" />
         </el-tab-pane>
+               <el-tab-pane
+          lazy
+          label="预报名信息"
+          name="9"
+
+        >
+        <!--         v-if="
+            team_status == 'PRE_APPLY' ||
+            team_status == 'PRE_BUILD_FEE' ||
+            team_status == 'FEE_AUDIT' ||
+            team_status == 'APPLY'
+          " -->
+          <forecastName
+            v-if="activeIndex == '9'"
+            :isedit="team_status == 'PRE_APPLY'"
+          />
+        </el-tab-pane>
+        <el-tab-pane  lazy
+          label="乐器清单"
+          name="10">
+          <musicOrder />
+        </el-tab-pane>
         <el-tab-pane
           label="老师列表"
           v-if="permission('/teamDetails/teacherList')"
@@ -115,6 +137,8 @@ import studentPayBase from "@/views/resetTeaming/components/studentPayBase";
 import studentList from "@/views/teamDetail/components/studentList";
 import teacherList from "@/views/teamDetail/components/teacherList";
 import courseList from "@/views/teamDetail/components/courseList";
+import forecastName from "@/views/teamBuild/forecastName";
+import musicOrder from "@/views/teamDetail/teamDetailedList"
 import { permission } from "@/utils/directivePage";
 import { getTeamBaseInfo } from "@/api/buildTeam";
 export default {
@@ -128,6 +152,8 @@ export default {
     studentList,
     teacherList,
     courseList,
+    forecastName,
+    musicOrder
   },
   name: "resetTeaming",
   data() {
@@ -145,6 +171,7 @@ export default {
       name: null,
       teamName: "乐团修改",
       musicGroupInfo: null,
+      team_status:''
     };
   },
   created() {
@@ -171,6 +198,7 @@ export default {
     __init() {
       // this.activeIndex = sessionStorage.getItem('resetCode') || '1';
       this.teamid = this.$route.query.id;
+      this.team_status = this.$route.query.team_status
       if (this.$route.query.tabrouter != 1) {
         getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
           if (res.code == 200) {

+ 577 - 127
src/views/teamBuild/components/teamBaseInfo.vue

@@ -1,5 +1,124 @@
 <template>
   <div class="base-container">
+    <div class="topFunction">
+      <div
+        style="
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+        "
+        v-if="
+          team_status == 'PAY' ||
+          team_status == 'APPLY' ||
+          team_status == 'PROGRESS' ||
+          team_status == 'PREPARE'
+        "
+      >
+        <!-- <h2> -->
+        <!-- + '报名详情' -->
+        <!-- <el-page-header @back="onCancel" :content="teamName">
+              </el-page-header> -->
+        <!-- </h2> -->
+
+        <div class="btnList">
+          <!-- <div class='newBand close'
+               v-permission="'musicGroup/cancelMusicGroup'"
+               @click="onClose">停止乐团</div>   v-show="status == 'APPLY'"-->
+          <div
+            class="newBand"
+            @click="payStart"
+            v-permission="'musicGroup/openPay'"
+            v-if="team_status == 'APPLY'"
+          >
+            开始缴费
+          </div>
+          <!-- v-show="status=='PAY'" -->
+          <div
+            class="newBand"
+            v-permission="'musicGroup/found'"
+            @click="onGoHome"
+            v-if="team_status == 'APPLY' || team_status == 'PAY'"
+          >
+            确认开团
+          </div>
+          <div
+            class="newBand"
+            v-permission="'musicGroup/extensionPayment'"
+            @click="extendTime(true)"
+            v-show="
+              team_status == 'PAY' ||
+              team_status == 'PROGRESS' ||
+              team_status == 'PREPARE'
+            "
+          >
+            延长缴费
+          </div>
+          <div
+              class="newBand"
+              v-permission="'musicGroup/extensionApplyExpireDate'"
+              @click="extendTime(false)"
+              v-show="
+                team_status == 'PAY' ||
+                team_status == 'APPLY' ||
+                team_status == 'PROGRESS' ||
+                team_status == 'PREPARE'
+              "
+            >
+              延长报名
+            </div>
+          <div class="newBand" @click="onCreateQRCode('payment')">报名链接</div>
+          <div class="newBand" @click="onCreateQRCode('rePayment')">
+            报名链接(无乐器)
+          </div>
+          <div class="newBand" @click="onCreateQRCode('detail')">缴费详情</div>
+          <!-- <div
+              class="newBand"
+              v-show="rightList.length > 0"
+              v-permission="
+                getFullPermission(
+                  'studentRegistration/queryStudentApplyDetailExport'
+                )
+              "
+              @click="onDownLoadExecl"
+            >
+              报表导出
+            </div> -->
+          <!-- <auth
+              :auths="
+                'studentRegistration/queryPreApplyList'
+              "
+            >
+              <div
+                class="newBand"
+                style="margin-right: 0"
+                @click="forecastVisible = true"
+              >
+                预报名名单
+              </div>
+            </auth> -->
+          <!--    v-permission="getFullPermission('musicGroup/addMusicGroupRegs')" -->
+          <div
+            class="newBand"
+            v-permission="'musicGroup/addMusicGroupRegs'"
+            @click="mergeVisible = true"
+            v-show="team_status == 'PAY' || team_status == 'APPLY'"
+          >
+            合并学员
+          </div>
+        </div>
+        <p
+          style="margin-bottom: 15px; font-size: 18px; font-weight: 400"
+          v-if="
+            team_status == 'PAY' ||
+            team_status == 'PROGRESS' ||
+            team_status == 'PREPARE'
+          "
+        >
+          <!-- 报名截止时间:{{ applyExpireDate | formatTimer }} -->
+          缴费截止时间:{{ paymentExpireDate | formatTimer }}
+        </p>
+      </div>
+    </div>
     <div class="banseLeft">
       <div class="head">乐团基本信息:</div>
       <!-- <div class="num">乐团编号:dywh01</div> -->
@@ -327,51 +446,139 @@
           修改
         </div>
         <!-- 审批或者草稿的下一步 -->
-        <div
+        <div class="nextBtn" @click="gotoNext(1)" v-if="!basdisabled">保存</div>
+        <!-- <div
           class="nextBtn"
-          @click="gotoNext(1)"
-          v-if="showNext"
-        >
-          下一步
-        </div>
-          <div
-          class="nextBtn"
-          @click="()=>{$emit('chiosetab', 1)}"
+          @click="
+            () => {
+                           this.$router.push({
+        query: merge(this.$route.query, { tabrouter: 2 }),
+      });
+            }
+          "
           v-if="teamStatus == 'teamCanceled'"
         >
           下一步
-        </div>
+        </div> -->
       </div>
     </div>
+    <el-dialog title="选择合并乐团" :visible.sync="mergeVisible" width="950px">
+      <mergeMusic
+        v-if="mergeVisible"
+        style="padding: 0 20px"
+        :organId="organId"
+        @close="mergeVisible = false"
+        @submited="gotoStudentList"
+      />
+    </el-dialog>
+    <el-dialog
+      title="开始缴费"
+      :visible.sync="paymentStatus"
+      width="400px"
+      destroy-on-close
+    >
+      <el-form
+        ref="paymentForm"
+        class="paymentForm"
+        :model="paymentForm"
+        :rules="paymentRules"
+      >
+        <el-form-item label="请设置缴费截止日期" prop="paymentExpireDate">
+          <el-date-picker
+            v-model.trim="paymentForm.paymentExpireDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            :picker-options="payDate()"
+            style="width: 100%"
+            placeholder="选择日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="paymentStatus = false">取 消</el-button>
+        <el-button type="primary" @click="onStartPayment('paymentForm')"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+    <el-dialog
+      :title="!isPay ? '延长报名' : '延长缴费'"
+      :visible.sync="extendPaymentStatus"
+      destroy-on-close
+      width="400px"
+    >
+      <el-form :model="extendForm" ref="extendForm" :rules="extendRule">
+        <el-form-item v-if="isPay" label="延长缴费时间" prop="expireDate">
+          <el-date-picker
+            v-model.trim="extendForm.expireDate"
+            value-format="yyyy-MM-dd"
+            type="date"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+            placeholder="选择日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="延长报名时间" v-else prop="expireDate">
+          <el-date-picker
+            v-model.trim="extendForm.expireDate"
+            value-format="yyyy-MM-dd"
+            type="date"
+            :picker-options="applyDate"
+            placeholder="选择日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="extendPaymentStatus = false">取 消</el-button>
+        <el-button
+          type="primary"
+          v-if="isPay"
+          @click="onExtendPayment('extendForm', isPay)"
+          >确 定</el-button
+        >
+        <el-button
+          v-else
+          type="primary"
+          @click="onExtendPayment('extendForm', isPay)"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+    <qr-code v-model="codeStatus" :title="codeTitle" :codeUrl="qrCodeUrl" />
   </div>
 </template>
 <script>
 import {
-  getSection,
   getType,
-  getCooperation,
-  getTeacher,
-  getAddress,
-  getPayMaster,
-  getPayStatus,
   getTeamBaseInfo,
   resetTeamBaseInfo,
   getEmployeeOrgan,
+  getStudentList,
+  musicGroupOpenPay,
+  extensionPayment,
+   extensionApplyExpire,
 } from "@/api/buildTeam";
 import { findTechnician } from "@/api/repairManager";
 import dayjs from "dayjs";
+import merge from "webpack-merge";
 import {
   queryEmployByOrganId,
   queryByOrganId,
   getSchool,
 } from "@/api/systemManage";
+import qrCode from "@/components/QrCode/index";
 import { classStatus } from "@/utils/searchArray";
-import store from "@/store";
-import numeral from "numeral";
-import { formatData } from "@/utils/utils";
-import qs from "qs";
-import MusicStore from "@/views/resetTeaming/store";
+import { vaildStudentUrl, vaildTeacherUrl } from "@/utils/validate";
+import mergeMusic from "../components/merge-music";
 export default {
+  components: {
+    mergeMusic,
+    qrCode,
+  },
   name: "teamBaseInfo",
   props: ["getTeamList"],
   data() {
@@ -419,6 +626,34 @@ export default {
       isInit: false,
       technician: [],
       basdisabled: false,
+      // 整合报名中
+      paymentExpireDate: "",
+      mergeVisible: false,
+      team_status: "",
+      paymentNum: 0,
+      paymentStatus: false,
+      paymentForm: {
+        paymentExpireDate: null,
+        // feeType: null
+      },
+      paymentRules: {
+        paymentExpireDate: [
+          { required: true, message: "请设置缴费截止日期", trigger: "blur" },
+        ],
+      },
+      extendForm: {
+        expireDate: null,
+      },
+      extendRule: {
+        expireDate: [
+          { required: true, message: "请选择延长时间", trigger: "change" },
+        ],
+      },
+      isPay: false,
+      extendPaymentStatus: false, // 延长缴费
+      codeStatus: false,
+      qrCodeUrl: null,
+      codeTitle: null,
     };
   },
   created() {},
@@ -427,6 +662,8 @@ export default {
       this.teamid = this.$route.query.id;
     }
     this.teamStatus = this.$route.query.type;
+    this.team_status = this.$route.query.team_status;
+    console.log(this.team_status);
     if (this.$route.query.type == "newTeam") {
       this.onReset();
     }
@@ -456,22 +693,21 @@ export default {
     if (
       this.teamStatus == "look" ||
       this.teamStatus == "teamAudit" ||
-      this.teamStatus == "feeAudit"
+      this.teamStatus == "feeAudit" ||
+      this.teamStatus == "APPLY" ||
+      this.teamStatus == "PAY"
     ) {
       this.basdisabled = true;
     } else {
       this.basdisabled = false;
     }
   },
-  deactivated() {
-
-  },
-  beforeDestroy(){
-
-    sessionStorage.setItem(`${this.teamid}base`,JSON.stringify(this.topFrom));
+  deactivated() {},
+  beforeDestroy() {
+    this.topFrom.paymentExpireDate = this.paymentExpireDate;
+    sessionStorage.setItem(`${this.teamid}base`, JSON.stringify(this.topFrom));
   },
 
-
   methods: {
     //|| this.teamStatus === 'teamAudit'
     isNotEditing: function () {
@@ -522,8 +758,7 @@ export default {
         this.teamStatus == "look" ||
         this.teamStatus == "teamAudit" ||
         this.teamStatus == "feeAudit" ||
-         this.teamStatus == "teamCanceled"
-
+        this.teamStatus == "teamCanceled"
       ) {
         this.basdisabled = true;
       } else {
@@ -532,63 +767,27 @@ export default {
       if (this.$route.query.id) {
         // 单团修改
         this.teamid = this.$route.query.id;
-        let sotrage = JSON.parse(sessionStorage.getItem(`${this.$route.query.id}base`));
-        console.log(sotrage)
-        if (!sotrage?.section) {
+        let sotrage = JSON.parse(
+          sessionStorage.getItem(`${this.$route.query.id}base`)
+        );
 
+        if (!sotrage?.section) {
           getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
             if (res.code == 200) {
               // if (this.$listeners.getBaseInfo) {
               //   this.$listeners.getBaseInfo(res.data);
               // }
 
-            // 头部
-            this.topFrom.name = res.data.musicGroup.name;
-            this.$emit("getName", this.topFrom.name);
-            this.topFrom.time = res.data.musicGroup.applyExpireDate;
-            this.topFrom.type = res.data.musicGroup.chargeTypeId;
-            this.topFrom.startClass = res.data.musicGroup.enrollClasses.split(
-              ","
-            );
-            this.topFrom.paymentPattern = res.data.musicGroup.paymentPattern;
-            this.topFrom.paymentValidStartDate =
-              res.data.musicGroup.paymentValidStartDate;
-            this.topFrom.paymentValidEndDate =
-              res.data.musicGroup.paymentValidEndDate;
-            this.topFrom.section = res.data.musicGroup.organId;
-            this.topFrom.courseViewType = res.data.musicGroup.courseViewType;
-            this.topFrom.school = res.data.musicGroup.cooperationOrganId;
-            this.topFrom.teacher = res.data.musicGroup.educationalTeacherId;
-            this.topFrom.boss = res.data.musicGroup.teamTeacherId;
-            this.topFrom.address = res.data.musicGroup.schoolId;
-            this.topFrom.salary = res.data.musicGroup.settlementType;
-            this.topFrom.head = res.data.musicGroup.directorUserId
-              ? res.data.musicGroup.directorUserId
-              : null;
-            this.topFrom.isClass = res.data.musicGroup.isClassroomLessons;
-            this.topFrom.startTime = res.data.musicGroup.expectStartGroupDate;
-            this.topFrom.ownershipType = res.data.musicGroup.ownershipType;
-            this.topFrom.repairUserId = res.data.musicGroup.repairUserId
-              ? res.data.musicGroup.repairUserId
-              : null;
-            this.topFrom.feeType = res.data.musicGroup.feeType
-              ? res.data.musicGroup.feeType
-              : null;
-            // // 循环缴费月
-            // this.payList.chioseMonth = res.data.months;
-            if (res.data.musicGroup.organId) {
-              // 获取员工
-              queryEmployByOrganId({
-                organId: res.data.musicGroup.organId,
-                rows: 1000,
-              }).then((res) => {
-                if (res.code == 200) {
-                  this.orgianList = res.data.rows;
-                }
-              });
-              // 获取合作单位
-              queryByOrganId({ organId: res.data.musicGroup.organId }).then(
-                (res) => {
+              // 头部
+             this.setBase(res)
+              // // 循环缴费月
+              // this.payList.chioseMonth = res.data.months;
+              if (res.data.musicGroup.organId) {
+                // 获取员工
+                queryEmployByOrganId({
+                  organId: res.data.musicGroup.organId,
+                  rows: 1000,
+                }).then((res) => {
                   if (res.code == 200) {
                     this.orgianList = res.data.rows;
                   }
@@ -597,45 +796,12 @@ export default {
                 queryByOrganId({ organId: res.data.musicGroup.organId }).then(
                   (res) => {
                     if (res.code == 200) {
-                      this.cooperationList = res.data;
-                    }
-                  }
-                );
-                // 获取教学点
-                getSchool({ organId: res.data.musicGroup.organId }).then(
-                  (res) => {
-                    if (res.code == 200) {
-                      this.addList = res.data;
-                      this.isInit = false;
+                      this.orgianList = res.data.rows;
                     }
                   }
                 );
-
-                // 获取维修技师
-                findTechnician().then((res) => {
-                  if (res.code == 200) {
-                    this.technician = res.data;
-                  }
-                });
-              }
-              this.$emit("getBaseInfo", res.data);
-
-            }
-          });
-        }else{
-          this.topFrom = sotrage
-             if ( this.topFrom.section) {
-                // 获取员工
-                queryEmployByOrganId({
-                  organId: this.topFrom.section,
-                  rows: 1000,
-                }).then((res) => {
-                  if (res.code == 200) {
-                    this.orgianList = res.data.rows;
-                  }
-                });
                 // 获取合作单位
-                queryByOrganId({ organId: this.topFrom.section }).then(
+                queryByOrganId({ organId: res.data.musicGroup.organId }).then(
                   (res) => {
                     if (res.code == 200) {
                       this.cooperationList = res.data;
@@ -643,7 +809,7 @@ export default {
                   }
                 );
                 // 获取教学点
-                getSchool({ organId: this.topFrom.section }).then(
+                getSchool({ organId: res.data.musicGroup.organId }).then(
                   (res) => {
                     if (res.code == 200) {
                       this.addList = res.data;
@@ -658,10 +824,48 @@ export default {
                     this.technician = res.data;
                   }
                 });
-             }
+              }
+              this.$emit("getBaseInfo", res.data);
+            }
+          });
+        } else {
+          this.topFrom = sotrage;
+          console.log(sotrage);
+          this.paymentExpireDate = this.topFrom.paymentExpireDate;
+          if (this.topFrom.section) {
+            // 获取员工
+            queryEmployByOrganId({
+              organId: this.topFrom.section,
+              rows: 1000,
+            }).then((res) => {
+              if (res.code == 200) {
+                this.orgianList = res.data.rows;
+              }
+            });
+            // 获取合作单位
+            queryByOrganId({ organId: this.topFrom.section }).then((res) => {
+              if (res.code == 200) {
+                this.cooperationList = res.data;
+              }
+            });
+            // 获取教学点
+            getSchool({ organId: this.topFrom.section }).then((res) => {
+              if (res.code == 200) {
+                this.addList = res.data;
+                this.isInit = false;
+              }
+            });
 
-             }
+            // 获取维修技师
+            findTechnician().then((res) => {
+              if (res.code == 200) {
+                this.technician = res.data;
+              }
+            });
+          }
+        }
       }
+      this.getStudentStatus();
       this.$emit("getName", this.topFrom.name);
       getEmployeeOrgan().then((res) => {
         if (res.code == 200) {
@@ -717,14 +921,16 @@ export default {
           // 判断一下是否勾选了课程类型而没有输入金额
           // 验证通过
           this.$store.dispatch("topinfo", this.topFrom);
-          if (this.teamStatus == "teamDraft") {
-            // 获取数据提交
-
-            this.resetSubmit();
-          } else {
-            // this.resetSubmit();
-            this.$emit("chiosetab", num);
-          }
+          // if (this.teamStatus == "teamDraft") {
+          //   // 获取数据提交
+          // } else {
+          //   // this.resetSubmit();
+          //   console.log("来了");
+          //   this.$router.push({
+          //     query: merge(this.$route.query, { tabrouter: 2 }),
+          //   });
+          // }
+          this.resetSubmit();
         }
       });
     },
@@ -838,6 +1044,239 @@ export default {
       };
       this.$refs["topinfo"].resetFields();
     },
+    onGoHome() {
+      if (this.paymentNum <= 0) {
+        this.$message.error("当前缴费人数为0,无法开团");
+        return;
+      }
+      this.$confirm(`是否确认开团?`, "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          musicGroupFound({
+            musicGroupId: this.$route.query.id,
+          }).then((res) => {
+            if (res.code == 200) {
+              // let query = this.$route.query;
+              // this.$message.success("开启成功");
+              // this.$router.push({
+              //   path: "/business/teamDetail",
+              //   query: {
+              //     ...query,
+              //   },
+              // });
+              this.onCancel();
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    payStart() {
+      this.paymentStatus = true;
+    },
+    getStudentStatus() {
+      let obj = {
+        musicGroupId: this.teamid,
+        page: 1,
+        rows: 9999,
+      };
+      getStudentList(obj).then((res) => {
+        if (res.code == 200) {
+          res.data.rows.forEach((item) => {
+            // '未开启缴费', '开启缴费', '已缴费'
+            if (item.paymentStatus == 2) {
+              this.paymentNum += 1;
+            }
+          });
+          // this.rightList = res.data.rows;
+          // this.rules.total = res.data.total;
+          // return res;
+        }
+      });
+    },
+    payDate() {
+      let self = this;
+      return {
+        firstDayOfWeek: 1,
+        disabledDate(time) {
+          if (self.applyExpireDate) {
+            return (
+              time.getTime() <=
+              new Date(self.applyExpireDate.replace(/-/g, "/")).getTime()
+            );
+          } else {
+            return false;
+          }
+        },
+      };
+    },
+    onStartPayment(formName) {
+      // 开启缴费
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          musicGroupOpenPay({
+            musicGroupId: this.teamid,
+            expireDate: this.paymentForm.paymentExpireDate,
+            // feeType: this.paymentForm.feeType
+          }).then((res) => {
+            if (res.code == 200) {
+              this.$message.success("开启成功");
+              this.paymentStatus = false;
+              this.$store.dispatch("delVisitedViews", this.$route);
+              this.$router.push({ path: "/business/teamDetail" });
+              // this.$router.push({
+              //   path: "/business/resetTeaming",
+              //   query: {
+              //     status: "PAY",
+              //     id: this.$route.query.id,
+              //     name: this.$route.query.name,
+              //   },
+              // });
+              // this.team_status = "PAY";
+              // this.paymentExpireDate = this.paymentForm.paymentExpireDate;
+              // this.getList();
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    applyDate() {
+      let self = this;
+      return {
+        firstDayOfWeek: 1,
+        disabledDate(time) {
+          if (self.paymentExpireDate) {
+            return (
+              time.getTime() >
+              new Date(self.paymentExpireDate.replace(/-/g, "/")).getTime()
+            );
+          } else {
+            return false;
+          }
+        },
+      };
+    },
+    extendTime(isPay) {
+      this.isPay = isPay;
+
+      if (isPay) {
+        // 点击的延长缴费
+        this.extendForm.expireDate = this.paymentExpireDate;
+      } else {
+        // 点击的延长报名
+        this.extendForm.expireDate = this.applyExpireDate;
+      }
+      this.extendPaymentStatus = true;
+    },
+    onExtendPayment(formName, isPay) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          if (!isPay) {
+            extensionApplyExpire({
+              musicGroupId: this.teamid,
+              expireDate: this.extendForm.expireDate,
+            }).then((res) => {
+              if (res.code == 200) {
+                this.$message.success("延长报名成功");
+                this.extendPaymentStatus = false;
+                getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
+                  if (res.code == 200) {
+                    this.applyExpireDate = res.data.musicGroup.applyExpireDate;
+                     this.setBase(res)
+                  }
+                });
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
+          } else {
+            extensionPayment({
+              musicGroupId: this.teamid,
+              expireDate: this.extendForm.expireDate,
+            }).then((res) => {
+              if (res.code == 200) {
+                this.$message.success("延长缴费成功");
+                this.extendPaymentStatus = false;
+                getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
+                  if (res.code == 200) {
+                    this.paymentExpireDate =
+                      res.data.musicGroup.paymentExpireDate;
+                  }
+                });
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    onCreateQRCode(type) {
+      // 生成报名二维码
+      let id = this.teamid;
+      this.codeStatus = true;
+      if (type == "payment") {
+        this.codeTitle = "学员报名连接";
+        this.qrCodeUrl = vaildStudentUrl() + "/#/login?musicGroupId=" + id;
+      } else if (type == "detail") {
+        let teamName = this.$route.query.name;
+        this.codeTitle = "报名缴费详情";
+        this.qrCodeUrl =
+          vaildTeacherUrl() +
+          "/#/order?musicGroupId=" +
+          id +
+          "&musicGroupName=" +
+          teamName;
+      } else if (type == "rePayment") {
+        this.codeTitle = "学生报名链接(无乐器)";
+        this.qrCodeUrl =
+          vaildStudentUrl() + "/#/login?musicGroupId=" + id + "&instrument=1";
+      }
+    },
+    gotoStudentList() {
+      this.$router.push({
+        query: merge(this.$route.query, { tabrouter: 7 }),
+      });
+      //  this.$router.replace({query:{...this.$route.query,tabrouter:7}})
+    },
+    setBase(res){
+       this.topFrom.name = res.data.musicGroup.name;
+              this.$emit("getName", this.topFrom.name);
+              this.topFrom.time = res.data.musicGroup.applyExpireDate;
+              this.topFrom.type = res.data.musicGroup.chargeTypeId;
+              this.topFrom.startClass = res.data.musicGroup.enrollClasses.split(
+                ","
+              );
+              this.topFrom.paymentPattern = res.data.musicGroup.paymentPattern;
+              this.topFrom.paymentValidStartDate =
+                res.data.musicGroup.paymentValidStartDate;
+              this.topFrom.paymentValidEndDate =
+                res.data.musicGroup.paymentValidEndDate;
+              this.topFrom.section = res.data.musicGroup.organId;
+              this.topFrom.courseViewType = res.data.musicGroup.courseViewType;
+              this.topFrom.school = res.data.musicGroup.cooperationOrganId;
+              this.topFrom.teacher = res.data.musicGroup.educationalTeacherId;
+              this.topFrom.boss = res.data.musicGroup.teamTeacherId;
+              this.topFrom.address = res.data.musicGroup.schoolId;
+              this.topFrom.salary = res.data.musicGroup.settlementType;
+              this.topFrom.head = res.data.musicGroup.directorUserId
+                ? res.data.musicGroup.directorUserId
+                : null;
+              this.topFrom.isClass = res.data.musicGroup.isClassroomLessons;
+              this.topFrom.startTime = res.data.musicGroup.expectStartGroupDate;
+              this.topFrom.ownershipType = res.data.musicGroup.ownershipType;
+              this.topFrom.repairUserId = res.data.musicGroup.repairUserId
+                ? res.data.musicGroup.repairUserId
+                : null;
+              this.topFrom.feeType = res.data.musicGroup.feeType
+                ? res.data.musicGroup.feeType
+                : null;
+              this.paymentExpireDate = res.data.musicGroup.paymentExpireDate;
+    }
   },
   computed: {
     startClassString() {
@@ -1011,6 +1450,17 @@ export default {
 }
 </style>
 <style lang="scss" scoped>
+.btnList {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+  flex-wrap: wrap;
+  & > div {
+    margin-right: 15px;
+    margin-bottom: 10px;
+  }
+}
 /deep/.el-date-editor {
   width: 180px !important;
 }

+ 74 - 45
src/views/teamBuild/signupList.vue

@@ -61,9 +61,16 @@
           </div>
           <div
             class="newBand"
-            v-permission="getFullPermission('musicGroup/extensionApplyExpireDate')"
+            v-permission="
+              getFullPermission('musicGroup/extensionApplyExpireDate')
+            "
             @click="extendTime(false)"
-            v-show="status == 'PAY' || status == 'APPLY' || status == 'PROGRESS' || status == 'PREPARE'"
+            v-show="
+              status == 'PAY' ||
+              status == 'APPLY' ||
+              status == 'PROGRESS' ||
+              status == 'PREPARE'
+            "
           >
             延长报名
           </div>
@@ -75,14 +82,17 @@
           <div
             class="newBand"
             v-show="rightList.length > 0"
-            v-permission="getFullPermission('studentRegistration/queryStudentApplyDetailExport')"
+            v-permission="
+              getFullPermission(
+                'studentRegistration/queryStudentApplyDetailExport'
+              )
+            "
             @click="onDownLoadExecl"
           >
             报表导出
           </div>
           <auth
             :auths="getFullPermission('studentRegistration/queryPreApplyList')"
-
           >
             <div
               class="newBand"
@@ -92,9 +102,10 @@
               预报名名单
             </div>
           </auth>
+          <!--    v-permission="getFullPermission('musicGroup/addMusicGroupRegs')" -->
           <div
             class="newBand"
-            v-permission="getFullPermission('musicGroup/addMusicGroupRegs')"
+            v-permission="'musicGroup/addMusicGroupRegs'"
             @click="mergeVisible = true"
             v-show="status == 'PAY' || status == 'APPLY'"
           >
@@ -197,7 +208,9 @@
         </el-table>
         <div
           class="btnWrap"
-          v-permission="getFullPermission('musicGroup/updateExpectedStudentNum')"
+          v-permission="
+            getFullPermission('musicGroup/updateExpectedStudentNum')
+          "
           style="margin-right: 20px; margin-top: 20px"
         >
           <el-button v-show="!isEdit" @click="isEdit = true">编辑</el-button>
@@ -211,7 +224,12 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           @selection-change="handleSelectionChange"
         >
-          <el-table-column type="selection" width="55" :selectable='checkboxSelect'> </el-table-column>
+          <el-table-column
+            type="selection"
+            width="55"
+            :selectable="checkboxSelect"
+          >
+          </el-table-column>
           <el-table-column label="学员姓名" prop="studentName" align="center">
           </el-table-column>
           <el-table-column label="家长姓名" prop="parentsName" align="center">
@@ -268,7 +286,11 @@
           >
             <template slot-scope="scope">
               <div>
-                <auth :auths='getFullPermission("studentRegistration/batchUpdateSubject")'>
+                <auth
+                  :auths="
+                    getFullPermission('studentRegistration/batchUpdateSubject')
+                  "
+                >
                   <el-button
                     type="text"
                     v-show="scope.row.paymentStatus != 2"
@@ -290,27 +312,33 @@
                 </el-popover>
                 <!-- PAY -->
                 <!-- &&  status == "PAY"-->
-                <auth :auths='getFullPermission("studentRegistration/queryFeeDetail")'   v-show="scope.row.paymentStatus == 2">
-                  <el-button
-                    type="text"
-
-                    @click="lookdetail(scope.row)"
+                <auth
+                  :auths="
+                    getFullPermission('studentRegistration/queryFeeDetail')
+                  "
+                  v-show="scope.row.paymentStatus == 2"
+                >
+                  <el-button type="text" @click="lookdetail(scope.row)"
                     >查看</el-button
                   >
                 </auth>
-                <auth :auths='getFullPermission("musicGroupQuit/directQuitMusicGroup2")'  v-show="scope.row.paymentStatus == 2">
-                  <el-button
-                    type="text"
-
-                    @click="quitTeam(scope.row)"
+                <auth
+                  :auths="
+                    getFullPermission('musicGroupQuit/directQuitMusicGroup2')
+                  "
+                  v-show="scope.row.paymentStatus == 2"
+                >
+                  <el-button type="text" @click="quitTeam(scope.row)"
                     >退团退费</el-button
                   >
                 </auth>
-                <auth :auths='getFullPermission("musicGroupQuit/directQuitMusicGroup3")'  v-show="scope.row.paymentStatus == 2">
-                  <el-button
-                    type="text"
-
-                    @click="quieTeams(scope.row)"
+                <auth
+                  :auths="
+                    getFullPermission('musicGroupQuit/directQuitMusicGroup3')
+                  "
+                  v-show="scope.row.paymentStatus == 2"
+                >
+                  <el-button type="text" @click="quieTeams(scope.row)"
                     >退团</el-button
                   >
                 </auth>
@@ -319,11 +347,11 @@
                     >新增回访</el-button
                   >
                 </auth>
-                <auth :auths="getFullPermission('subjectChange/getStudentOriginal')"   v-show="scope.row.paymentStatus == 2">
-                  <el-button
-                    type="text"
-
-                    @click="openChangeVoice(scope.row)"
+                <auth
+                  :auths="getFullPermission('subjectChange/getStudentOriginal')"
+                  v-show="scope.row.paymentStatus == 2"
+                >
+                  <el-button type="text" @click="openChangeVoice(scope.row)"
                     >更改声部</el-button
                   >
                 </auth>
@@ -333,16 +361,18 @@
         </el-table>
         <div
           style="margin-top: 10px; margin-bottom: 10px"
-          v-show="status == 'APPLY'|| status == 'PROGRESS' || status == 'PREPARE'"
+          v-show="
+            status == 'APPLY' || status == 'PROGRESS' || status == 'PREPARE'
+          "
         >
           <el-button @click="onSelectAll">全选/取消</el-button>
           <auth :auths="getFullPermission('studentRegistration/openPayment')">
-          <el-button
-            style="background-color: #14928a; border: 1px solid #14928a"
-            @click="onPartPayment"
-            type="primary"
-            >开启缴费</el-button
-          >
+            <el-button
+              style="background-color: #14928a; border: 1px solid #14928a"
+              @click="onPartPayment"
+              type="primary"
+              >开启缴费</el-button
+            >
           </auth>
           <!-- <div class='newBand' v-show="status=='APPLY'">允许缴费</div> -->
         </div>
@@ -975,7 +1005,6 @@ export default {
           return false;
         }
       });
-      // this.id
     },
     onSelectAll() {
       // 选中全部
@@ -1158,7 +1187,7 @@ export default {
               //     ...query,
               //   },
               // });
-              this.onCancel()
+              this.onCancel();
             }
           });
         })
@@ -1478,9 +1507,9 @@ export default {
         },
       };
     },
-    checkboxSelect(row){
-      return row.paymentStatus == 0
-    }
+    checkboxSelect(row) {
+      return row.paymentStatus == 0;
+    },
   },
   watch: {
     orderVisible(val) {
@@ -1536,12 +1565,12 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
- .auth {
-    display: inline-block;
-    & + .auth {
-      margin-left: 0px;
-    }
+.auth {
+  display: inline-block;
+  & + .auth {
+    margin-left: 0px;
   }
+}
 .dialog-footer.question {
   display: flex;
   flex-direction: row;

+ 1 - 0
src/views/teamDetail/components/resetClass.vue

@@ -27,6 +27,7 @@
       </div>
       <div
         class="newBand"
+        style="width:120px"
         v-permission="'courseSchedule/coursePostpone'"
         @click="postpone"
       >

+ 4 - 3
src/views/teamDetail/teamDetailedList.vue

@@ -1,9 +1,10 @@
 <template>
-  <div class="m-container">
-    <h2>
+  <div class="">
+    <!-- m-container -->
+    <!-- <h2>
       <el-page-header @back="onCancel"
                       content="发放清单"></el-page-header>
-    </h2>
+    </h2> -->
     <!-- <div class="headWrap">
       <div class="left">
         <div class="headItem">

+ 6 - 5
src/views/teamDetail/teamInfo.vue

@@ -25,26 +25,27 @@
           lazy
           label="预报名信息"
           name="5"
-          v-if="
+
+        >
+        <!--         v-if="
             team_status == 'PRE_APPLY' ||
             team_status == 'PRE_BUILD_FEE' ||
             team_status == 'FEE_AUDIT' ||
             team_status == 'APPLY'
-          "
-        >
+          " -->
           <forecastName
             v-if="activeIndex == '5'"
             :isedit="team_status == 'PRE_APPLY'"
           />
         </el-tab-pane>
-        <el-tab-pane
+        <!-- <el-tab-pane
           lazy
           label="报名列表"
           name="6"
           v-if="team_status == 'APPLY' || team_status == 'PAY'||team_status == 'PREPARE'"
         >
           <signupList v-if="activeIndex == '6'" :teamid="teamid" />
-        </el-tab-pane>
+        </el-tab-pane> -->
            <el-tab-pane
           lazy
           label="班级列表"

+ 116 - 72
src/views/teamDetail/teamList.vue

@@ -201,7 +201,7 @@
                 <!-- <el-button type="text"
                            v-if="scope.row.status == 'PREPARE' && permission('/setImprovement')"
                            @click="gotoImprovement(scope.row)">基础技能班</el-button> -->
-                <el-button
+                <!-- <el-button
                   type="text"
                   v-if="
                     scope.row.status == 'PREPARE' &&
@@ -209,14 +209,14 @@
                   "
                   @click="gotodetailList(scope.row)"
                   >发放清单</el-button
-                >
+                > -->
 
                 <!-- <el-button type="text"
                            v-if="scope.row.status == 'PREPARE'"
                            @click="lookTeamCourse(scope.row)">查看课表</el-button> -->
 
                 <!-- 报名中&缴费中 查看 -->
-                <el-button
+                <!-- <el-button
                   type="text"
                   v-if="
                     (scope.row.status == 'APPLY' ||
@@ -225,14 +225,15 @@
                   "
                   @click="lookTeamDetail(scope.row)"
                   >查看</el-button
-                >
+                > -->
 
-                        <el-button
+                <el-button
                   type="text"
                   v-if="
                     (scope.row.status == 'PREPARE' ||
                       scope.row.status == 'PROGRESS') &&
-                    permission('/remedy')&&scope.row.isRemedy
+                    permission('/remedy') &&
+                    scope.row.isRemedy
                   "
                   @click="gotoSigin(scope.row)"
                   >乐团补招</el-button
@@ -247,7 +248,7 @@
                       scope.row.status == 'FEE_AUDIT') &&
                     permission('/teamLookBase')
                   "
-                  @click="lookTeamInfo(scope.row)"
+                  @click="lookTeamDetail(scope.row)"
                   >详情</el-button
                 >
                 <el-button
@@ -329,7 +330,7 @@
                   @click="lookTeamDetail(scope.row)"
                   >审核</el-button
                 >
-                    <el-button
+                <el-button
                   type="text"
                   v-if="
                     scope.row.status == 'CANCELED' &&
@@ -511,8 +512,8 @@ export default {
     if (query.organId) {
       this.topForm.orgin = query.organId;
     }
-    if(query.search){
-      this.topForm.teamName = query.search
+    if (query.search) {
+      this.topForm.teamName = query.search;
     }
     this.init();
   },
@@ -572,7 +573,10 @@ export default {
       this.$store.dispatch("delVisitedViews", { path: "/business/teamBuild" });
 
       this.$router.push(
-        { path: "/business/teamBuild", query: { type: "newTeam",clear:'true'} },
+        {
+          path: "/business/teamBuild",
+          query: { type: "newTeam", clear: "true" },
+        },
         (router) => {
           router.meta.title = "新建乐团";
         }
@@ -592,16 +596,14 @@ export default {
     },
     resetTeaming(row) {
       // 修改进行中的乐团
-      console.log(row.id)
       sessionStorage.removeItem(`${row.id}base`);
       sessionStorage.removeItem(`${row.id}sound`);
-      this.$nextTick(res=>{
-           this.$router.push({
-        path: "/business/resetTeaming",
-        query: { type: "resetTeam", id: row.id },
+      this.$nextTick((res) => {
+        this.$router.push({
+          path: "/business/resetTeaming",
+          query: { type: "resetTeam", id: row.id },
+        });
       });
-      })
-
     },
     setSearchList(obj) {
       //
@@ -722,15 +724,23 @@ export default {
           // 编辑中
           this.$store.dispatch("draftIndex", 0);
           // teamBaseInfo
-          this.$router.push(
-            {
-              path: "/business/teamDraft",
-              query: { type: "teamDraft", id: row.id ,clear:'true'},
-            },
+          // this.$router.push(
+          //   {
+          //     path: "/business/teamDraft",
+          //     query: { type: "teamDraft", id: row.id ,clear:'true'},
+          //   },
+          //   (router) => {
+          //     router.meta.title = "编辑乐团";
+          //   }
+          // );
+          this.$router.push({
+            path: "/business/resetTeaming",
+              query: { type: "teamDraft", id: row.id,team_status:row.status }},
             (router) => {
-              router.meta.title = "编辑乐团";
+              router.meta.title = "乐团编辑中";
             }
           );
+
           break;
         }
         case "AUDIT": {
@@ -738,11 +748,11 @@ export default {
           this.$store.dispatch("draftIndex", 0);
           this.$router.push(
             {
-              path: "/business/teamAudit",
-              query: { type: "teamAudit", id: row.id,clear:'true' },
+              path: "/business/resetTeaming",
+              query: { type: "teamAudit", id: row.id, clear: "true",team_status:row.status },
             },
             (router) => {
-              router.meta.title = "审核乐团";
+              router.meta.title = "乐团审核中";
             }
           );
           break;
@@ -753,10 +763,18 @@ export default {
           //   path: "/business/createPayment",
           //   query: { type: "PRE_BUILD_FEE", id: row.id, name: row.name },
           // });
-            this.$router.push({
-            path: "/business/teamLookBase",
-            query: { type: "look", id: row.id, name: row.name,team_status:'PRE_BUILD_FEE' },
-          });
+          this.$router.push({
+            path: "/business/resetTeaming",
+            query: {
+              type: "look",
+              id: row.id,
+              name: row.name,
+              team_status: "PRE_BUILD_FEE",
+            },
+
+          }, (router) => {
+              router.meta.title = "创建缴费中";
+            });
           break;
         }
         case "FEE_AUDIT": {
@@ -764,8 +782,8 @@ export default {
           this.$store.dispatch("draftIndex", 0);
           this.$router.push(
             {
-              path: "/business/feeAudit",
-              query: { type: "feeAudit", id: row.id,clear:'true' },
+              path: "/business/resetTeaming",
+              query: { type: "feeAudit", id: row.id, clear: "true",team_status:row.status },
             },
             (router) => {
               router.meta.title = "乐团费用审核中";
@@ -778,11 +796,11 @@ export default {
           this.$store.dispatch("draftIndex", 0);
           this.$router.push(
             {
-              path: "/business/auditFailed",
-              query: { type: "teamDraft", id: row.id,clear:'true' },
+              path: "/business/resetTeaming",
+              query: { type: "teamDraft", id: row.id, clear: "true",team_status:row.status },
             },
             (router) => {
-              router.meta.title = "乐团审核失败编辑";
+              router.meta.title = "乐团审核失败";
             }
           );
           break;
@@ -791,9 +809,16 @@ export default {
           // 预报名
 
           this.$router.push({
-            path: "/business/teamLookBase",
-            query: { type: "look", id: row.id, name: row.name,team_status:'PRE_APPLY' },
-          });
+            path: "/business/resetTeaming",
+            query: {
+              type: "look",
+              id: row.id,
+              name: row.name,
+              team_status: "PRE_APPLY",
+            },
+          },  (router) => {
+              router.meta.title = "乐团预报名";
+            });
           // this.$router.push({
           //   path: "/business/forecastName",
           //   query: { id: row.id, name: row.name },
@@ -804,11 +829,17 @@ export default {
           // 报名中
           this.$router.push(
             {
-              path: `/business/signupList`,
-              query: { status: row.status, id: row.id, name: row.name,team_status:'APPLY' },
+              path: `/business/resetTeaming`,
+              query: {
+                status: row.status,
+                id: row.id,
+                name: row.name,
+                team_status: "APPLY",
+                type:'look'
+              },
             },
             (router) => {
-              router.meta.title = "报名详情";
+              router.meta.title = "乐团报名中";
             }
           );
           break;
@@ -817,11 +848,17 @@ export default {
           // 缴费中
           this.$router.push(
             {
-              path: `/business/signupList`,
-              query: { status: row.status, id: row.id, name: row.name,team_status:'PAY' },
+              path: `/business/resetTeaming`,
+              query: {
+                status: row.status,
+                id: row.id,
+                name: row.name,
+                team_status: "PAY",
+                type:'look'
+              },
             },
             (router) => {
-              router.meta.title = "缴费详情";
+              router.meta.title = "乐团缴费中";
             }
           );
           break;
@@ -829,39 +866,42 @@ export default {
         case "PREPARE": {
           // 筹备中 跳转到乐团设置界面
           this.$router.push({
-            path: `/business/teamSeting`,
-            query: { status: row.status, id: row.id, name: row.name },
-          });
+            path: `/business/resetTeaming`,
+            query: { status: row.status, id: row.id, name: row.name,team_status:row.status },
+          },
+           (router) => {
+              router.meta.title = "乐团筹备中";
+            });
           break;
         }
         case "PROGRESS": {
           // 进行中
           // 调到乐团详情 teamDetails
           this.$router.push({
-            path: `/business/teamDetails`,
+            path: `/business/resetTeaming`,
             query: {
               status: row.status,
               id: row.id,
               name: row.name,
               organId: row.organId,
               type: "look",
+              team_status:row.status
             },
           });
           break;
         }
         case "CANCELED": {
           // 取消
-           this.$router.push(
+          this.$router.push(
             {
-              path: "/business/teamDraft",
-              query: { type: "teamCanceled", id: row.id },
+              path: "/business/resetTeaming",
+              query: { type: "teamCanceled", id: row.id ,team_status:row.status},
             },
             (router) => {
               router.meta.title = "取消乐团";
             }
           );
           break;
-          break;
         }
         case "PAUSE": {
           // 暂停
@@ -869,10 +909,10 @@ export default {
           //   path: `/business/teamDetails`,
           //   query: { status: row.status, id: row.id, name: row.name },
           // });
-              this.$router.push({
-        path: "/business/resetTeaming",
-        query: { type: "resetTeam", id: row.id },
-      });
+          this.$router.push({
+            path: "/business/resetTeaming",
+            query: { type: "resetTeam", id: row.id,team_status:row.status },
+          });
           break;
         }
       }
@@ -890,7 +930,6 @@ export default {
       }
     },
     gotodetailList(row) {
-
       this.$router.push({
         path: "/business/teamDetailedList",
         query: { id: row.id },
@@ -902,7 +941,12 @@ export default {
       sessionStorage.removeItem(`${row.id}sound`);
       this.$router.push({
         path: "/business/teamLookBase",
-        query: { type: "look", id: row.id, name: row.name,team_status:row.status },
+        query: {
+          type: "look",
+          id: row.id,
+          name: row.name,
+          team_status: row.status,
+        },
       });
     },
     // setImprovement 设置基础技能班
@@ -972,17 +1016,17 @@ export default {
       this.activeId = row.id;
       this.showSteam = true;
     },
-    gotoSigin(row){
-       this.$router.push(
-            {
-              path: `/business/remedy`,
-              query: { status: row.status, id: row.id, name: row.name },
-            },
-            (router) => {
-              router.meta.title = "报名详情";
-            }
-          );
-    }
+    gotoSigin(row) {
+      this.$router.push(
+        {
+          path: `/business/remedy`,
+          query: { status: row.status, id: row.id, name: row.name },
+        },
+        (router) => {
+          router.meta.title = "报名详情";
+        }
+      );
+    },
   },
   watch: {
     showSteam(val) {
@@ -994,8 +1038,8 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-/deep/.el-button+.el-button {
-     margin-left: 0px;
+/deep/.el-button + .el-button {
+  margin-left: 0px;
 }
 .select {
   font-size: 14px;