浏览代码

01/28 退课建班优化

1
mo 4 年之前
父节点
当前提交
d20d21ea1f

+ 16 - 1
src/views/operateManager/serverIndexList.vue

@@ -2,8 +2,12 @@
 <template>
   <div class="m-container">
     <h2>
+      <div class="titleWrap">
       <div class="squrt"></div>
       服务指标
+      </div>
+
+      <el-button type="text" icon="el-icon-question"  @click="lookServerDetail" style="color:red">服务指标规则</el-button>
     </h2>
     <div class="m-core">
       <save-form
@@ -144,7 +148,7 @@
           >
         </el-form-item>
       </save-form>
-      <div class="newBand" @click="lookServerDetail">服务指标说明</div>
+
       <div class="tableWrap">
         <el-table
           style="width: 100%"
@@ -707,4 +711,15 @@ export default {
      font-weight: normal;
   }
 }
+.titleWrap {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+}
+.m-container{
+  h2{
+    justify-content: space-between;
+  }
+}
 </style>

+ 53 - 28
src/views/teamBuild/signupList.vue

@@ -56,10 +56,13 @@
           >
             报表导出
           </div>
-          <auth auths="studentRegistration/queryPreApplyList" :router="['/business/signupList']">
+          <auth
+            auths="studentRegistration/queryPreApplyList"
+            :router="['/business/signupList']"
+          >
             <div
               class="newBand"
-              style="margin-right: 0;"
+              style="margin-right: 0"
               @click="forecastVisible = true"
             >
               预报名名单
@@ -72,33 +75,28 @@
           >
             合并学员
           </div>
-                 <el-popover placement="right" width="500" trigger="click">
-          <div class="popoverWrap">
-            <p>乐团退团退费规则:</p>
-            <p>退还课程费用:缴费总额-已结束课时单价之和</p>
-            <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
-            <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
-          </div>
-          <div class="newBand" slot="reference">退团说明</div>
-
-        </el-popover>
         </div>
       </div>
-      <el-dialog title="选择合并乐团" :visible.sync="mergeVisible" width="950px">
+      <el-dialog
+        title="选择合并乐团"
+        :visible.sync="mergeVisible"
+        width="950px"
+      >
         <mergeMusic
           v-if="mergeVisible"
-          style="padding: 0 20px;"
+          style="padding: 0 20px"
           :organId="organId"
           @close="mergeVisible = false"
           @submited="getList"
         />
       </el-dialog>
 
-      <el-dialog title="预报名名单" :visible.sync="forecastVisible" width="950px">
-        <forecastList
-          v-if="forecastVisible"
-          @close="forecastVisible = false"
-        />
+      <el-dialog
+        title="预报名名单"
+        :visible.sync="forecastVisible"
+        width="950px"
+      >
+        <forecastList v-if="forecastVisible" @close="forecastVisible = false" />
       </el-dialog>
       <!--  stepImgs: {
         APPLY: require('@/assets/images/base/clock.png'),
@@ -543,9 +541,29 @@
           <el-input type="textarea" v-model.trim="quitForm.reason"></el-input>
         </el-form-item>
       </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="quitVisible = false">取 消</el-button>
+      <span slot="footer" class="dialog-footer question">
+        <div>
+                 <el-popover placement="right" width="500" trigger="click">
+            <div class="popoverWrap">
+              <p>乐团退团退费规则:</p>
+              <p>退还课程费用:缴费总额-已结束课时单价之和</p>
+              <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
+              <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
+            </div>
+            <el-button
+              type="text"
+              icon="el-icon-question"
+              slot="reference"
+              style="color: red"
+              >退团退费说明</el-button
+            >
+          </el-popover>
+        </div>
+        <div>
+           <el-button @click="quitVisible = false">取 消</el-button>
         <el-button type="primary" @click="chioseType">确 定</el-button>
+        </div>
+
       </span>
     </el-dialog>
     <!-- 回访记录 -->
@@ -649,8 +667,8 @@ import {
   studentApplyDetailExport,
   StudentQuit,
 } from "@/api/buildTeam";
-import mergeMusic from './components/merge-music'
-import forecastList from './components/forecast-list'
+import mergeMusic from "./components/merge-music";
+import forecastList from "./components/forecast-list";
 import { resetStudentSubject, getStudentFeeDetail } from "@/api/studentManager";
 import { vaildStudentUrl, vaildTeacherUrl } from "@/utils/validate";
 import { addVisit } from "@/views/returnVisitManager/api.js";
@@ -669,7 +687,7 @@ export default {
     pagination,
     changeVoice,
     mergeMusic,
-    forecastList
+    forecastList,
   },
   data() {
     return {
@@ -744,7 +762,7 @@ export default {
       qrcodes2: true,
       qrcode2: null,
       codeUrl2: null,
-      organId: '',
+      organId: "",
       extendPaymentStatus: false,
       extendForm: {
         expireDate: null,
@@ -813,7 +831,7 @@ export default {
       this.pickerOptions = this.beginDate(new Date());
       getTeamBaseInfo({ musicGroupId: this.id }).then((res) => {
         if (res.code == 200) {
-          this.organId = res.data.musicGroup.organId
+          this.organId = res.data.musicGroup.organId;
           this.applyExpireDate = res.data.musicGroup.applyExpireDate;
           this.paymentExpireDate = res.data.musicGroup.paymentExpireDate;
         }
@@ -1052,7 +1070,7 @@ export default {
                     nowTime.getHours() +
                     "" +
                     nowTime.getMinutes();
-                  let fname = this.$route.query.id + "-" + ymd + '.xls';  //下载文件的名字
+                  let fname = this.$route.query.id + "-" + ymd + ".xls"; //下载文件的名字
                   link.href = objectUrl;
                   link.setAttribute("download", fname);
                   document.body.appendChild(link);
@@ -1464,6 +1482,11 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+.dialog-footer.question{
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
 .sigup-container {
   margin-left: 12px;
   .topWrap {
@@ -1608,6 +1631,8 @@ export default {
   }
 }
 .popoverWrap {
-  p{line-height: 25px;}
+  p {
+    line-height: 25px;
+  }
 }
 </style>

+ 38 - 20
src/views/teamBuild/teamSeting/components/setClassV2.vue

@@ -29,24 +29,7 @@
           新建班级
         </div>
       </div>
-      <div class="right">
-        <el-popover placement="left" width="500" trigger="click">
-          <div class="popoverWrap">
-            <p>线上基础技能班规则:</p>
-            <p>班级数量:</p>
-            <p>
-              乐团可创建的线上基础技能班数量为各声部人数/6向上取整之和(上低音号与长号合并计算)
-            </p>
-            <p>
-              例:乐团有长笛13人、上低音号8人、长号7人,则该乐团可创建线上基础技能班数量为
-            </p>
-            <p>13/6向上取整+(8+7)/6向上取整=3+3=6个线上基础技能班</p>
-            <p>班级人数:</p>
-            <p>线上基础技能班人数为3至6人</p>
-          </div>
-          <div class="newBand" slot="reference">建班规则</div>
-        </el-popover>
-      </div>
+
     </div>
     <div class="tableWrap">
       <el-table
@@ -304,9 +287,36 @@
             ></el-option>
           </el-select>
         </el-form-item>
+                <br />
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="newClassVisible = false">取 消</el-button>
+
+      <div slot="footer" class="dialog-footer question">
+        <div>
+                 <el-popover placement="right" width="500" trigger="click">
+            <div class="popoverWrap">
+              <p>线上基础技能班规则:</p>
+              <p>班级数量:</p>
+              <p>
+                乐团可创建的线上基础技能班数量为各声部人数/6向上取整之和(上低音号与长号合并计算)
+              </p>
+              <p>
+                例:乐团有长笛13人、上低音号8人、长号7人,则该乐团可创建线上基础技能班数量为
+              </p>
+              <p>13/6向上取整+(8+7)/6向上取整=3+3=6个线上基础技能班</p>
+              <p>班级人数:</p>
+              <p>线上基础技能班人数为3至6人</p>
+            </div>
+            <el-button
+              type="text"
+              icon="el-icon-question"
+              slot="reference"
+              style="color: red"
+              >线上基础技能班规则</el-button
+            >
+          </el-popover>
+        </div>
+        <div>
+             <el-button @click="newClassVisible = false">取 消</el-button>
         <!-- 乐团课 -->
         <el-button
           type="primary"
@@ -320,6 +330,8 @@
         <el-button type="primary" v-else @click="newClassSecond"
           >确 定</el-button
         >
+        </div>
+
       </div>
     </el-dialog>
     <el-dialog
@@ -1902,4 +1914,10 @@ export default {
 /deep/.el-date-editor.el-input__inner {
   width: 100px !important;
 }
+
+.dialog-footer.question{
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
 </style>

+ 36 - 18
src/views/teamDetail/components/resetClass.vue

@@ -24,22 +24,6 @@
             </el-select>
           </el-form-item>
         </el-form>
-        <el-popover placement="left" width="500" trigger="click">
-          <div class="popoverWrap">
-            <p>线上基础技能班规则:</p>
-            <p>班级数量:</p>
-            <p>
-              乐团可创建的线上基础技能班数量为各声部人数/6向上取整之和(上低音号与长号合并计算)
-            </p>
-            <p>
-              例:乐团有长笛13人、上低音号8人、长号7人,则该乐团可创建线上基础技能班数量为
-            </p>
-            <p>13/6向上取整+(8+7)/6向上取整=3+3=6个线上基础技能班</p>
-            <p>班级人数:</p>
-            <p>线上基础技能班人数为3至6人</p>
-          </div>
-          <div class="newBand" slot="reference">建班规则</div>
-        </el-popover>
       </div>
 
       <div class="tableWrap" style>
@@ -489,10 +473,39 @@
             ></el-option>
           </el-select>
         </el-form-item>
+
+
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="newClassVisible = false">取 消</el-button>
+      <div slot="footer" class="dialog-footer question">
+        <div>
+           <el-popover placement="right" width="500" trigger="click">
+            <div class="popoverWrap">
+              <p>线上基础技能班规则:</p>
+              <p>班级数量:</p>
+              <p>
+                乐团可创建的线上基础技能班数量为各声部人数/6向上取整之和(上低音号与长号合并计算)
+              </p>
+              <p>
+                例:乐团有长笛13人、上低音号8人、长号7人,则该乐团可创建线上基础技能班数量为
+              </p>
+              <p>13/6向上取整+(8+7)/6向上取整=3+3=6个线上基础技能班</p>
+              <p>班级人数:</p>
+              <p>线上基础技能班人数为3至6人</p>
+            </div>
+            <el-button
+              type="text"
+              icon="el-icon-question"
+              slot="reference"
+              style="color: red"
+              >线上基础技能班规则</el-button
+            >
+          </el-popover>
+        </div>
+        <div>
+          <el-button @click="newClassVisible = false">取 消</el-button>
         <el-button type="primary" @click="newClassHight">确 定</el-button>
+        </div>
+
       </div>
     </el-dialog>
     <el-dialog
@@ -1591,6 +1604,11 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+.dialog-footer.question{
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
 .topWrap {
   display: flex;
   flex-direction: row;

+ 31 - 11
src/views/teamDetail/components/studentList.vue

@@ -50,15 +50,7 @@
               @click="gotoSignin">点名总览</el-button> -->
       <el-button type="primary" v-permission="'studentManage/queryStudentSubTotalCourseTimes'"
               @click="viewTimer" style="margin-right: 15px;">剩余时长明细</el-button>
-          <el-popover placement="right" width="500" trigger="click">
-          <div class="popoverWrap">
-            <p>乐团退团退费规则:</p>
-            <p>退还课程费用:缴费总额-已结束课时单价之和</p>
-            <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
-            <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
-          </div>
-          <el-button type="primary" slot="reference">退团说明</el-button>
-        </el-popover>
+
     </div>
     <!-- 搜索类型 -->
     <save-form
@@ -479,10 +471,33 @@
         <el-form-item label="退团原因" prop="reason">
           <el-input type="textarea" v-model.trim="quitForm.reason"></el-input>
         </el-form-item>
+
+
+
       </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="quitVisible = false">取 消</el-button>
+      <span slot="footer" class="dialog-footer question">
+        <div>
+               <el-popover placement="right" width="500" trigger="click">
+            <div class="popoverWrap">
+              <p>乐团退团退费规则:</p>
+              <p>退还课程费用:缴费总额-已结束课时单价之和</p>
+              <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
+              <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
+            </div>
+            <el-button
+              type="text"
+              icon="el-icon-question"
+              slot="reference"
+              style="color: red"
+              >退团退费说明</el-button
+            >
+          </el-popover>
+        </div>
+        <div>
+             <el-button @click="quitVisible = false">取 消</el-button>
         <el-button type="primary" @click="chioseType">确 定</el-button>
+        </div>
+
       </span>
     </el-dialog>
 
@@ -1495,6 +1510,11 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+.dialog-footer.question{
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
 // .moreInput {
 //   width: 100%;
 //   display: flex;

+ 58 - 51
src/views/vipClass/vipDetail/components/vipStudentList.vue

@@ -1,30 +1,31 @@
 <template>
   <div>
     <div class="btnWrap">
-      <el-button
-        v-permission="'vipGroupManage/addVipGroupStudents'"
-        @click="addStudentList"
-        type="primary"
-      >
-        新增学员
-      </el-button>
-      <el-button
-      style="margin-right:15px"
-        v-permission="'vipGroupManage/update'"
-        @click="expireVisible = true"
-        type="primary"
-      >
-        有效期调整
-      </el-button>
-                <el-popover placement="right" width="500" trigger="click">
-          <div class="popoverWrap">
-            <p>VIP退费规则:</p>
-            <p>预计课程单价*课时数-课程标准单价*已完成课时数)*0.8</p>
-          </div>
-            <el-button  type="primary" slot="reference">退学说明</el-button>
-
-        </el-popover>
+      <div>
+        <el-button
+          v-permission="'vipGroupManage/addVipGroupStudents'"
+          @click="addStudentList"
+          type="primary"
+        >
+          新增学员
+        </el-button>
+        <el-button
+          style="margin-right: 15px"
+          v-permission="'vipGroupManage/update'"
+          @click="expireVisible = true"
+          type="primary"
+        >
+          有效期调整
+        </el-button>
+      </div>
 
+      <el-popover placement="left" width="500" trigger="click">
+        <div class="popoverWrap">
+          <p>VIP退费规则:</p>
+          <p>预计课程单价*课时数-课程标准单价*已完成课时数)*0.8</p>
+        </div>
+        <el-button type="text" style="color: red"  icon="el-icon-question" slot="reference">退学说明</el-button>
+      </el-popover>
     </div>
 
     <div class="tableWrap">
@@ -163,7 +164,7 @@
               style="width: 90% !important"
               class="number-input"
               v-model="scope.row.onlineClassesUnitPrice"
-              :disabled='!vipDetail.musicTheory'
+              :disabled="!vipDetail.musicTheory"
               :controls="false"
               :min="0"
               placeholder="线上课单价"
@@ -178,7 +179,7 @@
               style="width: 90% !important"
               class="number-input"
               v-model="scope.row.offlineClassesUnitPrice"
-              :disabled='!vipDetail.musicTheory'
+              :disabled="!vipDetail.musicTheory"
               :controls="false"
               :min="0"
               placeholder="线下课单价"
@@ -364,7 +365,7 @@ import {
   recoverForStudent,
   findTeacherWithVipGroupOrganAndSubject,
   vipGroupManageUpdate,
-  getVipGroupDetail
+  getVipGroupDetail,
 } from "@/api/vipSeting";
 import { permission } from "@/utils/directivePage";
 export default {
@@ -440,7 +441,7 @@ export default {
         },
       },
       teacherList: [],
-      vipDetail:{}
+      vipDetail: {},
     };
   },
   mounted() {
@@ -466,11 +467,11 @@ export default {
           }
         }
       );
-        getVipGroupDetail({ vipGroupId: id }).then((res) => {
-          if (res.code == 200) {
-            this.vipDetail = res.data
-          }
-        })
+      getVipGroupDetail({ vipGroupId: id }).then((res) => {
+        if (res.code == 200) {
+          this.vipDetail = res.data;
+        }
+      });
     },
     search() {
       this.rules.page = 1;
@@ -566,10 +567,10 @@ export default {
       }
     },
     getList() {
-      console.log(this.id)
+      console.log(this.id);
       let search = this.maskForm.search || null;
       getHaveCourseBalanceStudents({
-        vipGroupId:this.id,
+        vipGroupId: this.id,
         organId: null,
         page: this.rules.page,
         rows: this.rules.limit,
@@ -578,10 +579,14 @@ export default {
         if (res.code == 200) {
           this.rules.total = res.data.total;
           this.maskStudentList = res.data.rows;
-          this.maskStudentList.forEach(stu=>{
-            stu.offlineClassesUnitPrice?stu.offlineClassesUnitPrice:stu.offlineClassesUnitPrice = this.vipDetail?.offlineClassesUnitPrice
-            stu.onlineClassesUnitPrice?stu.onlineClassesUnitPrice:stu.onlineClassesUnitPrice =this.vipDetail?.onlineClassesUnitPrice
-          })
+          this.maskStudentList.forEach((stu) => {
+            stu.offlineClassesUnitPrice
+              ? stu.offlineClassesUnitPrice
+              : (stu.offlineClassesUnitPrice = this.vipDetail?.offlineClassesUnitPrice);
+            stu.onlineClassesUnitPrice
+              ? stu.onlineClassesUnitPrice
+              : (stu.onlineClassesUnitPrice = this.vipDetail?.onlineClassesUnitPrice);
+          });
           this.maskVisible = true;
         }
       });
@@ -594,23 +599,25 @@ export default {
         this.$message.error("请选择一名学生");
         return;
       }
-      let offlineClassesUnitPrice,onlineClassesUnitPrice;
-      this.maskStudentList.forEach(stu=>{
-        if(stu.id == this.activeStudent){
-          offlineClassesUnitPrice = stu.offlineClassesUnitPrice
-          onlineClassesUnitPrice = stu.onlineClassesUnitPrice
+      let offlineClassesUnitPrice, onlineClassesUnitPrice;
+      this.maskStudentList.forEach((stu) => {
+        if (stu.id == this.activeStudent) {
+          offlineClassesUnitPrice = stu.offlineClassesUnitPrice;
+          onlineClassesUnitPrice = stu.onlineClassesUnitPrice;
         }
-      })
+      });
       // if(!offlineClassesUnitPrice || !onlineClassesUnitPrice){
       //     this.$message.error("请填写线上课单价或线下课单价");
       //   return
       // }
-      addVipGroupStudents([{
-        vipGroupId: this.id,
-        studentId: this.activeStudent,
-        onlineClassesUnitPrice,
-        offlineClassesUnitPrice
-      }]).then((res) => {
+      addVipGroupStudents([
+        {
+          vipGroupId: this.id,
+          studentId: this.activeStudent,
+          onlineClassesUnitPrice,
+          offlineClassesUnitPrice,
+        },
+      ]).then((res) => {
         if (res.code == 200) {
           this.$message.success("添加成功");
           this.getStudents();
@@ -771,7 +778,7 @@ export default {
 .btnWrap {
   display: flex;
   flex-direction: row;
-  justify-content: flex-start;
+  justify-content: space-between;
   margin-bottom: 15px;
 }
 </style>