소스 검색

添加筹备中 进行中 报名

1
mo 4 년 전
부모
커밋
fb1f1d46d4
6개의 변경된 파일143개의 추가작업 그리고 88개의 파일을 삭제
  1. 6 1
      src/main.js
  2. 1 0
      src/router/index.js
  3. 1 0
      src/router/notKeepAliveList.js
  4. 2 2
      src/utils/directivePage.js
  5. 108 85
      src/views/teamBuild/signupList.vue
  6. 25 0
      src/views/teamDetail/teamList.vue

+ 6 - 1
src/main.js

@@ -5,7 +5,7 @@ import dayjs from 'dayjs'
 import numeral from 'numeral'
 import lodash from 'lodash'
 import qs from 'qs'
-import { permission } from "@/utils/directivePage";
+import { permission,getFullPermission } from "@/utils/directivePage";
 
 import * as constant from '@/constant'
 
@@ -120,6 +120,7 @@ Vue.mixin({
         lodash,
         qs,
         permission,
+
       }
     },
     $constant() {
@@ -130,6 +131,10 @@ Vue.mixin({
     changeHash(value) {
       const origin = window.location.origin
       history.replaceState("", "", `${origin}/#${this.$route.path}?opt=${value}`)
+    },
+    getFullPermission(str){
+      let routeName = this.$route.path
+      return str+routeName
     }
   }
 })

+ 1 - 0
src/router/index.js

@@ -249,6 +249,7 @@ export const asyncRoutes = {
   teamTeacherRecord: () => import('@/views/teamDetail/components/teamTeacherRecord'),
   // 乐团筹备中 报名中
   signupList: () => import('@/views/teamBuild/signupList'),
+  remedy:() => import('@/views/teamBuild/signupList'),
   // 乐团筹备设置 (班级 老师 小课)
   teamSeting: () => import('@/views/teamBuild/teamSeting/'),
   //乐团详情

+ 1 - 0
src/router/notKeepAliveList.js

@@ -99,5 +99,6 @@ export default [
   '/business/teacherOperationUpdate',
   '/business/ArrearageStudents',
   '/operateManager/serverDetail', // 服务指标明细
+  '/business/remedy', //
   // '/business/feeAudit',
 ]

+ 2 - 2
src/utils/directivePage.js

@@ -23,5 +23,5 @@ export function permission(value, parent) {
     } else {
         return false
     }
-    
-}
+
+}

+ 108 - 85
src/views/teamBuild/signupList.vue

@@ -2,10 +2,11 @@
   <div class="sigup-container">
     <div class="topWrap">
       <div>
-        <div style="display: flex;justify-content: space-between;">
+        <div style="display: flex; justify-content: space-between">
           <div>
             <h2>
-              <el-page-header @back="onCancel" :content="teamName + '报名详情'">
+              <!-- + '报名详情' -->
+              <el-page-header @back="onCancel" :content="teamName">
               </el-page-header>
             </h2>
             <p style="margin-bottom: 15px; font-size: 18px; font-weight: 400">
@@ -14,62 +15,74 @@
               }}
             </p>
           </div>
-          <p class="msg" :class="status == 'PAY' ? 'pay' : ''">
-            <img :src="status == 'APPLY' ? stepImgs.APPLY : stepImgs.PAY" alt="" />
+          <p
+            class="msg"
+            :class="status == 'PAY' ? 'pay' : ''"
+            v-if="status == 'APPLY' || status == 'PAY'"
+          >
+            <img
+              :src="status == 'APPLY' ? stepImgs.APPLY : stepImgs.PAY"
+              alt=""
+            />
             {{ status == "APPLY" ? "报名中" : "缴费中" }}
           </p>
         </div>
 
-
         <div class="btnList">
           <!-- <div class='newBand close'
                v-permission="'musicGroup/cancelMusicGroup'"
-               @click="onClose">停止乐团</div> -->
+               @click="onClose">停止乐团</div>   v-show="status == 'APPLY'"-->
           <div
             class="newBand"
             @click="payStart"
-            v-permission="'musicGroup/openPay'"
-            v-show="status == 'APPLY'"
+            v-permission="getFullPermission('musicGroup/openPay')"
+            v-if="status == 'APPLY' || status == 'PAY'"
           >
             开始缴费
           </div>
           <!-- v-show="status=='PAY'" -->
           <div
             class="newBand"
-            v-permission="'musicGroup/found'"
+            v-permission="getFullPermission('musicGroup/found')"
             @click="onGoHome"
+            v-if="status == 'APPLY' || status == 'PAY'"
           >
             确认开团
           </div>
           <div
             class="newBand"
-            v-permission="'musicGroup/extensionPayment'"
+            v-permission="getFullPermission('musicGroup/extensionPayment')"
             @click="extendTime(true)"
-            v-show="status == 'PAY'"
+            v-show="
+              status == 'PAY' || status == 'PROGRESS' || status == 'PREPARE'
+            "
           >
             延长缴费
           </div>
           <div
             class="newBand"
-            v-permission="'musicGroup/extensionApplyExpireDate'"
+            v-permission="getFullPermission('musicGroup/extensionApplyExpireDate')"
             @click="extendTime(false)"
+            v-show="status == 'PAY' || status == 'APPLY'"
           >
             延长报名
           </div>
           <div class="newBand" @click="onCreateQRCode('payment')">报名链接</div>
-          <div class="newBand" @click="onCreateQRCode('rePayment')">报名链接(无乐器)</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="'studentRegistration/queryStudentApplyDetailExport'"
+            v-permission="getFullPermission('studentRegistration/queryStudentApplyDetailExport')"
             @click="onDownLoadExecl"
           >
             报表导出
           </div>
           <auth
-            auths="studentRegistration/queryPreApplyList"
-            :router="['/business/signupList']"
+            :auths="getFullPermission('studentRegistration/queryPreApplyList')"
+
           >
             <div
               class="newBand"
@@ -81,8 +94,9 @@
           </auth>
           <div
             class="newBand"
-            v-permission="'musicGroup/addMusicGroupRegs'"
+            v-permission="getFullPermission('musicGroup/addMusicGroupRegs')"
             @click="mergeVisible = true"
+            v-show="status == 'PAY' || status == 'APPLY'"
           >
             合并学员
           </div>
@@ -113,7 +127,6 @@
         APPLY: require('@/assets/images/base/clock.png'),
         PAY: require('@/assets/images/base/pay.png')
       }, -->
-      
     </div>
     <div class="searchList">
       <save-form
@@ -155,6 +168,7 @@
     <div class="sigup-core">
       <div class="left">
         <el-table
+          style="width: 100% !important"
           :data="leftList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         >
@@ -254,13 +268,15 @@
           >
             <template slot-scope="scope">
               <div>
-                <el-button
-                  type="text"
-                  v-permission="'studentRegistration/batchUpdateSubject'"
-                  v-show="scope.row.paymentStatus != 2"
-                  @click="resetSubject(scope.row)"
-                  >修改专业</el-button
-                >
+                <auth :auths='getFullPermission("studentRegistration/batchUpdateSubject")'>
+                  <el-button
+                    type="text"
+                    v-show="scope.row.paymentStatus != 2"
+                    @click="resetSubject(scope.row)"
+                    >修改专业</el-button
+                  >
+                </auth>
+
                 <!-- APPLY  status == "APPLY" || s-->
                 <el-popover
                   v-show="scope.row.remark"
@@ -274,42 +290,43 @@
                 </el-popover>
                 <!-- PAY -->
                 <!-- &&  status == "PAY"-->
-                <el-button
-                  type="text"
-                  v-permission="'studentRegistration/queryFeeDetail'"
-                  v-show="scope.row.paymentStatus == 2"
-                  @click="lookdetail(scope.row)"
-                  >查看</el-button
-                >
-                <el-button
-                  type="text"
-                  v-permission="'musicGroupQuit/directQuitMusicGroup2'"
-                  v-show="scope.row.paymentStatus == 2"
-                  @click="quitTeam(scope.row)"
-                  >退团退费</el-button
-                >
-                <el-button
-                  type="text"
-                  v-show="
-                    permission('musicGroupQuit/directQuitMusicGroup3') &&
-                    scope.row.paymentStatus == 2
-                  "
-                  @click="quieTeams(scope.row)"
-                  >退团</el-button
-                >
-                <el-button
-                  type="text"
-                  v-show="permission('visit/add')"
-                  @click="addVisit(scope.row)"
-                  >新增回访</el-button
-                >
-                <el-button
-                  type="text"
-                  v-show="scope.row.paymentStatus == 2"
-                  v-permission="'subjectChange/getStudentOriginal'"
-                  @click="openChangeVoice(scope.row)"
-                  >更改声部</el-button
-                >
+                <auth :auths='getFullPermission("studentRegistration/queryFeeDetail")'>
+                  <el-button
+                    type="text"
+                    v-show="scope.row.paymentStatus == 2"
+                    @click="lookdetail(scope.row)"
+                    >查看</el-button
+                  >
+                </auth>
+                <auth :auths='getFullPermission("musicGroupQuit/directQuitMusicGroup2")'>
+                  <el-button
+                    type="text"
+                    v-show="scope.row.paymentStatus == 2"
+                    @click="quitTeam(scope.row)"
+                    >退团退费</el-button
+                  >
+                </auth>
+                <auth :auths='getFullPermission("musicGroupQuit/directQuitMusicGroup3")'>
+                  <el-button
+                    type="text"
+                    v-show="scope.row.paymentStatus == 2"
+                    @click="quieTeams(scope.row)"
+                    >退团</el-button
+                  >
+                </auth>
+                <auth :auths="getFullPermission('visit/add')">
+                  <el-button type="text" @click="addVisit(scope.row)"
+                    >新增回访</el-button
+                  >
+                </auth>
+                <auth :auths="getFullPermission('subjectChange/getStudentOriginal')">
+                  <el-button
+                    type="text"
+                    v-show="scope.row.paymentStatus == 2"
+                    @click="openChangeVoice(scope.row)"
+                    >更改声部</el-button
+                  >
+                </auth>
               </div>
             </template>
           </el-table-column>
@@ -554,7 +571,7 @@
       </el-form>
       <span slot="footer" class="dialog-footer question">
         <div>
-                 <el-popover placement="right" width="500" trigger="click">
+          <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>乐团退团退费规则:</p>
               <p>退还课程费用:缴费总额-已结束课时单价之和</p>
@@ -571,10 +588,9 @@
           </el-popover>
         </div>
         <div>
-           <el-button @click="quitVisible = false">取 消</el-button>
-        <el-button type="primary" @click="chioseType">确 定</el-button>
+          <el-button @click="quitVisible = false">取 消</el-button>
+          <el-button type="primary" @click="chioseType">确 定</el-button>
         </div>
-
       </span>
     </el-dialog>
     <!-- 回访记录 -->
@@ -669,7 +685,7 @@
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
-import qrCode from '@/components/QrCode/index'
+import qrCode from "@/components/QrCode/index";
 import {
   getintoClass,
   getStudentList,
@@ -699,7 +715,7 @@ import qs from "qs";
 import { permission } from "@/utils/directivePage";
 import cleanDeep from "clean-deep";
 import changeVoice from "./modals/change-voice";
-import visit from '@/views/withdrawal-application/modals/visit'
+import visit from "@/views/withdrawal-application/modals/visit";
 export default {
   name: "signupList",
   components: {
@@ -708,7 +724,7 @@ export default {
     changeVoice,
     mergeMusic,
     forecastList,
-    visit
+    visit,
   },
   data() {
     return {
@@ -833,12 +849,14 @@ export default {
       },
       isPay: false,
       applyDates: this.applyDate(),
-      detail:null
+      detail: null,
     };
   },
-  created() {
+  created() {},
+  mounted() {
     // 通过乐团状态判断显示隐藏的东西
     this.init();
+   console.log(this.getFullPermission('123'))
   },
   activated() {
     this.init();
@@ -886,7 +904,7 @@ export default {
       this.getList();
     },
     onCancel() {
-       this.$store.dispatch('delVisitedViews', this.$route) 
+      this.$store.dispatch("delVisitedViews", this.$route);
       this.$router.push({ path: "/business/teamDetail" });
     },
     payStart() {
@@ -997,19 +1015,24 @@ export default {
     onCreateQRCode(type) {
       // 生成报名二维码
       let id = this.id;
-      this.codeStatus = true
-      if(type == 'payment') {
-        this.codeTitle = '学员报名连接'
+      this.codeStatus = true;
+      if (type == "payment") {
+        this.codeTitle = "学员报名连接";
         this.qrCodeUrl = vaildStudentUrl() + "/#/login?musicGroupId=" + id;
-      } else if(type == 'detail') {
+      } 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";
+        this.codeTitle = "报名缴费详情";
+        this.qrCodeUrl =
+          vaildTeacherUrl() +
+          "/#/order?musicGroupId=" +
+          id +
+          "&musicGroupName=" +
+          teamName;
+      } else if (type == "rePayment") {
+        this.codeTitle = "学生报名链接(无乐器)";
+        this.qrCodeUrl =
+          vaildStudentUrl() + "/#/login?musicGroupId=" + id + "&instrument=1";
       }
-
     },
     onCreateQRCode2() {
       // 生成报名二维码
@@ -1364,9 +1387,9 @@ export default {
       // this.visitForm.studentName = row.studentName;
       // this.visitForm.musicGroupId = this.teamid;
       // this.visitForm.studentId = row.studentId;
-      row.userId = row.studentId
-      this.detail = row
-      this.detail.musicGroupId = this.$route.query.id
+      row.userId = row.studentId;
+      this.detail = row;
+      this.detail.musicGroupId = this.$route.query.id;
       this.visitVisiable = true;
     },
     openChangeVoice(row) {
@@ -1509,7 +1532,7 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-.dialog-footer.question{
+.dialog-footer.question {
   display: flex;
   flex-direction: row;
   justify-content: space-between;

+ 25 - 0
src/views/teamDetail/teamList.vue

@@ -226,6 +226,17 @@
                   @click="lookTeamDetail(scope.row)"
                   >查看</el-button
                 >
+
+                        <el-button
+                  type="text"
+                  v-if="
+                    (scope.row.status == 'PREPARE' ||
+                      scope.row.status == 'PROGRESS') &&
+                    permission('/remedy')&&scope.row.isRemedy
+                  "
+                  @click="gotoSigin(scope.row)"
+                  >乐团补招</el-button
+                >
                 <!-- 报名中缴费中筹备中查看乐团 -->
                 <el-button
                   type="text"
@@ -927,6 +938,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 = "报名详情";
+            }
+          );
+    }
   },
   watch: {
     showSteam(val) {
@@ -938,6 +960,9 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+/deep/.el-button+.el-button {
+     margin-left: 0px;
+}
 .select {
   font-size: 14px;
 }