lex 1 år sedan
förälder
incheckning
7d55c05276
24 ändrade filer med 1513 tillägg och 2533 borttagningar
  1. 5 3
      src/constant/index.js
  2. 20 76
      src/views/accompanyManager/accompanyBuys.vue
  3. 55 218
      src/views/accompanyManager/accompanyList.vue
  4. 151 403
      src/views/accompanyManager/accompanys.vue
  5. 293 174
      src/views/teamBuild/signupList.vue
  6. 5 5
      src/views/teamBuild/teamSeting/components/setClassV2.vue
  7. 149 122
      src/views/teamBuild/teamSeting/components/setTeacher.vue
  8. 30 134
      src/views/teamDetail/componentCourse/compoundClass.vue
  9. 13 29
      src/views/teamDetail/componentCourse/modals/resetTeacher.vue
  10. 60 52
      src/views/teamDetail/componentCourse/resetClass.vue
  11. 156 137
      src/views/teamDetail/components/courseList.vue
  12. 20 54
      src/views/teamDetail/components/courseTransModals/startPlanCourse.vue
  13. 12 47
      src/views/teamDetail/components/modals/change-teacher.vue
  14. 29 66
      src/views/teamDetail/components/modals/class-new-info.vue
  15. 16 61
      src/views/teamDetail/components/modals/class-pay-list.vue
  16. 8 31
      src/views/teamDetail/components/modals/classList-group.vue
  17. 85 224
      src/views/teamDetail/components/modals/classroom-setting-item.vue
  18. 23 77
      src/views/teamDetail/components/modals/classroom-setting-merge.vue
  19. 132 66
      src/views/teamDetail/components/modals/select-student.vue
  20. 12 13
      src/views/teamDetail/components/modals/student-reset-view.vue
  21. 163 504
      src/views/teamDetail/components/resetClass.vue
  22. 62 36
      src/views/teamDetail/teamClassList.vue
  23. 14 0
      src/views/teamDetail/teamCourseList.vue
  24. 0 1
      src/views/teamDetail/teamList.vue

+ 5 - 3
src/constant/index.js

@@ -219,6 +219,7 @@ if (tenantId == 1) {
     NORMAL: "声部班",
     MIX: "合奏班",
     HIGH: "基础技能班",
+    HIGH_ONLINE: "线上基础技能班",
     SNAP: "临时班"
   };
 }
@@ -445,9 +446,10 @@ export const coupontypeDetail = {
   MAINTENANCE: "乐保服务",
   TEACHING: "教材",
   PRACTICE: "网管课",
-  SINGLE: "声部课",
-  MIX: "合奏课",
-  VIP: "VIP",
+  // SINGLE: "声部课",
+  // MIX: "合奏课",
+  MUSIC: "乐团课",
+  VIP: "VIP课",
   LIVE: "直播课",
   MEMBER: "云教练"
 };

+ 20 - 76
src/views/accompanyManager/accompanyBuys.vue

@@ -1,47 +1,21 @@
 <!--  -->
 <template>
-  <div class="m-core">
-    <save-form
-      :inline="true"
-      class="searchForm"
-      save-key="accompanyBuys"
-      @submit="search"
-      @reset="onReSet"
-      :model.sync="searchForm"
-    >
+  <div>
+    <save-form :inline="true" class="searchForm" save-key="accompanyBuys" @submit="search" @reset="onReSet"
+      :model.sync="searchForm">
       <!-- 状态 指导老师 活动方案-->
       <el-form-item>
-        <el-input
-          v-model.trim="searchForm.search"
-          clearable
-          placeholder="学员编号/学员名称"
-        ></el-input>
+        <el-input v-model.trim="searchForm.search" clearable placeholder="学员编号/学员名称"></el-input>
       </el-form-item>
       <el-form-item>
-        <el-select
-          class="multiple"
-          v-model.trim="searchForm.organIdList"
-          filterable
-          clearable
-          placeholder="请选择分部"
-        >
-          <el-option
-            v-for="(item, index) in selects.branchs"
-            :key="index"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
+        <el-select class="multiple" v-model.trim="searchForm.organIdList" filterable clearable placeholder="请选择分部">
+          <el-option v-for="(item, index) in selects.branchs" :key="index" :label="item.name"
+            :value="item.id"></el-option>
         </el-select>
       </el-form-item>
       <!-- statusList -->
       <el-form-item prop="buy">
-        <el-select
-          class="multiple"
-          v-model.trim="searchForm.buy"
-          filterable
-          clearable
-          placeholder="购买网管课"
-        >
+        <el-select class="multiple" v-model.trim="searchForm.buy" filterable clearable placeholder="购买网管课">
           <el-option label="是" value="true"></el-option>
           <el-option label="否" value="false"></el-option>
         </el-select>
@@ -52,20 +26,11 @@
       </el-form-item>
       <el-form-item>
         <!-- <div class="newBand" @click="onExport">导出</div> -->
-        <el-button
-          @click="onExport"
-          type="primary"
-          v-permission="'export/studentBuyPractice'"
-          >导出</el-button
-        >
+        <el-button @click="onExport" type="primary" v-permission="'export/studentBuyPractice'">导出</el-button>
       </el-form-item>
     </save-form>
     <div class="tableWrap">
-      <el-table
-        style="width: 100%"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-        :data="tableData"
-      >
+      <el-table style="width: 100%" :header-cell-style="{ background: '#EDEEF0', color: '#444' }" :data="tableData">
         <el-table-column align="center" prop="studentId" label="学员编号">
           <template slot-scope="scope">
             <copy-text>{{ scope.row.studentId }}</copy-text>
@@ -82,11 +47,7 @@
           </template>
         </el-table-column>
         <!-- educationalTeacherId -->
-        <el-table-column
-          align="center"
-          prop="phone"
-          label="手机号"
-        ></el-table-column>
+        <el-table-column align="center" prop="phone" label="手机号"></el-table-column>
         <el-table-column align="center" label="是否购买">
           <template slot-scope="scope">
             <div>
@@ -104,10 +65,7 @@
                       class="micon el-tooltip"
                       style="width:8px height:8px"
                       alt /> -->
-                <i
-                  class="el-icon-question"
-                  style="font-size: 18px; color: #f56c6c"
-                ></i>
+                <i class="el-icon-question" style="font-size: 18px; color: #f56c6c"></i>
               </el-tooltip>
             </p>
           </template>
@@ -127,10 +85,7 @@
                       class="micon el-tooltip"
                       style="width:8px height:8px"
                       alt /> -->
-                <i
-                  class="el-icon-question"
-                  style="font-size: 18px; color: #f56c6c"
-                ></i>
+                <i class="el-icon-question" style="font-size: 18px; color: #f56c6c"></i>
               </el-tooltip>
             </p>
           </template>
@@ -150,10 +105,7 @@
                       class="micon el-tooltip"
                       style="width:8px height:8px"
                       alt /> -->
-                <i
-                  class="el-icon-question"
-                  style="font-size: 18px; color: #f56c6c"
-                ></i>
+                <i class="el-icon-question" style="font-size: 18px; color: #f56c6c"></i>
               </el-tooltip>
             </p>
           </template>
@@ -164,15 +116,8 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        sync
-        :total.sync="rules.total"
-        save-key="accompanyBuys"
-        :page.sync="rules.page"
-        :limit.sync="rules.limit"
-        :page-sizes="rules.page_size"
-        @pagination="getList"
-      />
+      <pagination sync :total.sync="rules.total" save-key="accompanyBuys" :page.sync="rules.page"
+        :limit.sync="rules.limit" :page-sizes="rules.page_size" @pagination="getList" />
     </div>
   </div>
 </template>
@@ -208,7 +153,7 @@ export default {
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created() {},
+  created() { },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
     this.init();
@@ -300,7 +245,7 @@ export default {
                 // 判断是否报错
                 if (res.indexOf("code") != -1) {
                   let json = JSON.parse(res);
-                  if(json.code == 403) {
+                  if (json.code == 403) {
                     this.$message.error(`登录过期,请重新登录!`)
                     setTimeout(() => {
                       this.$store.dispatch('user/resetToken').then(() => {
@@ -327,10 +272,9 @@ export default {
               load.endLoading();
             });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
   },
 };
 </script>
-<style lang='scss' scoped>
-</style>
+<style lang='scss' scoped></style>

+ 55 - 218
src/views/accompanyManager/accompanyList.vue

@@ -4,7 +4,7 @@
       <div class="squrt"></div>网管课列表
     </h2>-->
 
-    <div class="m-core">
+    <div>
       <div class="topWrap">
         <!-- <div
         class="newBand"
@@ -30,120 +30,55 @@
       >
         网管课导出
       </div> -->
-        <el-button
-          v-permission="'/newPractice'"
-          @click="newPractice"
-          type="primary"
-          style="margin-bottom: 20px"
-        >
+        <el-button v-permission="'/newPractice'" @click="newPractice" type="primary" style="margin-bottom: 20px">
           新建网管课
         </el-button>
-        <el-button
-          v-permission="'export/practiceGroup'"
-          @click="onStudentExport"
-          type="primary"
-          style="margin-bottom: 20px"
-        >
+        <el-button v-permission="'export/practiceGroup'" @click="onStudentExport" type="primary"
+          style="margin-bottom: 20px">
           续费提醒导出
         </el-button>
-        <el-button
-          v-permission="'export/practiceGroupList'"
-          @click="onPracticeExport"
-          type="primary"
-          style="margin-bottom: 20px"
-        >
+        <el-button v-permission="'export/practiceGroupList'" @click="onPracticeExport" type="primary"
+          style="margin-bottom: 20px">
           网管课导出
         </el-button>
       </div>
-      <save-form
-        :inline="true"
-        class="searchForm"
-        save-key="accompanyList"
-        @submit="search"
-        @reset="onReSet"
-        :model.sync="searchForm"
-      >
+      <save-form :inline="true" class="searchForm" save-key="accompanyList" @submit="search" @reset="onReSet"
+        :model.sync="searchForm">
         <!-- 状态 指导老师 活动方案-->
         <el-form-item>
-          <el-input
-            v-model.trim="searchForm.search"
-            clearable
-            placeholder="课程组名称"
-          ></el-input>
+          <el-input v-model.trim="searchForm.search" clearable placeholder="课程组名称"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.organIdList"
-            filterable
-            clearable
-            placeholder="请选择分部"
-          >
-            <el-option
-              v-for="(item, index) in selects.branchs"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+          <el-select class="multiple" v-model.trim="searchForm.organIdList" filterable clearable placeholder="请选择分部">
+            <el-option v-for="(item, index) in selects.branchs" :key="index" :label="item.name"
+              :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select
-            v-model.trim="searchForm.practiceGroupType"
-            clearable
-            filterable
-            placeholder="课程组类型"
-          >
-            <el-option
-              v-for="(item, index) in practiceGroupType"
-              :key="index"
-              :value="item.value"
-              :label="item.label"
-            ></el-option>
+          <el-select v-model.trim="searchForm.practiceGroupType" clearable filterable placeholder="课程组类型">
+            <el-option v-for="(item, index) in practiceGroupType" :key="index" :value="item.value"
+              :label="item.label"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="status">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.hasEducationalTeacherId"
-            filterable
-            clearable
-            placeholder="是否有乐团主管"
-          >
+          <el-select class="multiple" v-model.trim="searchForm.hasEducationalTeacherId" filterable clearable
+            placeholder="是否有乐团主管">
             <el-option label="是" value="true"></el-option>
             <el-option label="否" value="false"></el-option>
           </el-select>
         </el-form-item>
 
         <el-form-item>
-          <remote-search
-            :commit="'setTeachers'"
-            v-model="searchForm.teacherId"
-            :isForzenWithQueryCondition="true"
-          />
+          <remote-search :commit="'setTeachers'" v-model="searchForm.teacherId" :isForzenWithQueryCondition="true" />
         </el-form-item>
         <el-form-item>
-          <el-select
-            v-model.trim="searchForm.groupStatus"
-            clearable
-            filterable
-            placeholder="课程组状态"
-          >
-            <el-option
-              v-for="(item, index) in commGroupStatus"
-              :key="index"
-              :value="item.value"
-              :label="item.label"
-            ></el-option>
+          <el-select v-model.trim="searchForm.groupStatus" clearable filterable placeholder="课程组状态">
+            <el-option v-for="(item, index) in commGroupStatus" :key="index" :value="item.value"
+              :label="item.label"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select
-            v-model.trim="searchForm.firstOrRenew"
-            clearable
-            filterable
-            placeholder="是否续费"
-          >
+          <el-select v-model.trim="searchForm.firstOrRenew" clearable filterable placeholder="是否续费">
             <el-option label="首充" value="1"></el-option>
             <el-option label="续费" value="0"></el-option>
             <el-option label="免费" value="2"></el-option>
@@ -156,27 +91,13 @@
       </save-form>
       <!-- tab -->
       <div class="tableWrap">
-        <el-table
-          style="width: 100%"
-          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-          :data="tableData"
-        >
-          <el-table-column
-            align="center"
-            prop="id"
-            label="课程组编号"
-            width="100"
-          >
+        <el-table style="width: 100%" :header-cell-style="{ background: '#EDEEF0', color: '#444' }" :data="tableData">
+          <el-table-column align="center" prop="id" label="课程组编号" width="100">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.id }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="name"
-            label="课程组名称"
-            width="170px"
-          >
+          <el-table-column align="center" prop="name" label="课程组名称" width="170px">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.name }}</copy-text>
             </template>
@@ -188,37 +109,19 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="organName"
-            label="所属分部"
-            width="100px"
-          >
+          <el-table-column align="center" prop="organName" label="所属分部" width="100px">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.organName }}</copy-text>
             </template>
           </el-table-column>
           <!-- educationalTeacherId -->
-          <el-table-column
-            align="center"
-            prop="educationalTeacherName"
-            label="乐团主管"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="teacherName"
-            label="指导老师"
-            width="120px"
-          >
+          <el-table-column align="center" prop="educationalTeacherName" label="乐团主管"></el-table-column>
+          <el-table-column align="center" prop="teacherName" label="指导老师" width="120px">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.teacherName }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentNum"
-            label="班级人数"
-          ></el-table-column>
+          <el-table-column align="center" prop="studentNum" label="班级人数"></el-table-column>
           <!-- <el-table-column align="center" label="课程单价">
             <template slot-scope="scope">
               <div>
@@ -240,36 +143,21 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="coursesStartDate"
-            label="开课时间"
-            width="120"
-          >
+          <el-table-column align="center" prop="coursesStartDate" label="开课时间" width="120">
             <template slot-scope="scope">
               <div>
                 <p>{{ scope.row.coursesStartDate | formatTimer }}</p>
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="coursesExpireDate"
-            label="结束时间"
-            width="120"
-          >
+          <el-table-column align="center" prop="coursesExpireDate" label="结束时间" width="120">
             <template slot-scope="scope">
               <div>
                 <p>{{ scope.row.coursesExpireDate | formatTimer }}</p>
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="groupStatus"
-            label="课程组状态"
-            width="100"
-          >
+          <el-table-column align="center" prop="groupStatus" label="课程组状态" width="100">
             <template slot-scope="scope">
               <div>
                 <p>{{ scope.row.groupStatus | comCourseGroup }}</p>
@@ -279,21 +167,15 @@
           <el-table-column align="center" label="是否续费" fixed="right">
             <template slot-scope="scope">
               <div>
-                <p
-                  v-if="
-                    scope.row.type == 'FREE' ||
-                    scope.row.type == 'CARE_PACKAGE' ||
-                    scope.row.type == 'TRIAL'
-                  "
-                >
+                <p v-if="scope.row.type == 'FREE' ||
+                  scope.row.type == 'CARE_PACKAGE' ||
+                  scope.row.type == 'TRIAL'
+                  ">
                   免费
                 </p>
-                <p
-                  v-if="
-                    scope.row.type == 'CHARGE' ||
-                    scope.row.type == 'COME_ON_PACKAGE'
-                  "
-                >
+                <p v-if="scope.row.type == 'CHARGE' ||
+                  scope.row.type == 'COME_ON_PACKAGE'
+                  ">
                   {{ scope.row.beRenewGroupId > 0 ? "续费" : "首充" }}
                 </p>
               </div>
@@ -301,76 +183,36 @@
           </el-table-column>
           <el-table-column width="150" prop="memo" label="备注" fixed="right">
             <template slot-scope="scope">
-              <overflow-text
-                :text="scope.row.memo"
-                width="150px"
-              ></overflow-text>
+              <overflow-text :text="scope.row.memo" width="150px"></overflow-text>
             </template>
           </el-table-column>
 
-          <el-table-column
-            align="center"
-            width="200"
-            fixed="right"
-            label="操作"
-          >
+          <el-table-column align="center" width="200" fixed="right" label="操作">
             <template slot-scope="scope">
               <div>
                 <!-- v-permission="'courseSchedule/classStartDateAdjust'"  v-if="!scope.row.isSettlement" -->
-                <el-button
-                  type="text"
-                  @click="lookCrouse(scope.row)"
-                  v-if="permission('/accompanys')"
-                  >查看</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="
-                    scope.row.groupStatus == 'NORMAL' &&
-                    permission('practiceGroupManage/cancelGroup')
-                  "
-                  @click="closeCrouse(scope.row)"
-                  >关闭</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="permission('practiceGroupManage/updateMemo')"
-                  @click="resetMemo(scope.row)"
-                  >修改备注</el-button
-                >
+                <el-button type="text" @click="lookCrouse(scope.row)" v-if="permission('/accompanys')">查看</el-button>
+                <el-button type="text" v-if="scope.row.groupStatus == 'NORMAL' &&
+                  permission('practiceGroupManage/cancelGroup')
+                  " @click="closeCrouse(scope.row)">关闭</el-button>
+                <el-button type="text" v-if="permission('practiceGroupManage/updateMemo')"
+                  @click="resetMemo(scope.row)">修改备注</el-button>
               </div>
             </template>
           </el-table-column>
         </el-table>
-        <pagination
-          save-key="accompanyList"
-          sync
-          :total.sync="rules.total"
-          :page.sync="rules.page"
-          :limit.sync="rules.limit"
-          :page-sizes="rules.page_size"
-          @pagination="getList"
-        />
+        <pagination save-key="accompanyList" sync :total.sync="rules.total" :page.sync="rules.page"
+          :limit.sync="rules.limit" :page-sizes="rules.page_size" @pagination="getList" />
       </div>
     </div>
     <el-dialog title="关闭课程组" width="400px" :visible.sync="closeVisible">
-      <el-form
-        :model="closeForm"
-        ref="closeForm"
-        label-position="right"
-        label-width="80px;"
-        :inline="true"
-      >
+      <el-form :model="closeForm" ref="closeForm" label-position="right" label-width="80px;" :inline="true">
         <el-form-item label="是否退费" prop="isBasck">
           <el-radio v-model="closeForm.isBack" :label="true">是</el-radio>
           <el-radio v-model="closeForm.isBack" :label="false">否</el-radio>
         </el-form-item>
         <el-form-item label="退费金额" v-if="closeForm.isBack" prop="money">
-          <el-input
-            type="number"
-            @mousewheel.native.prevent
-            v-model.trim="closeForm.money"
-          ></el-input>
+          <el-input type="number" @mousewheel.native.prevent v-model.trim="closeForm.money"></el-input>
         </el-form-item>
         <p style="color: red" v-if="closeForm.isBack">
           退费金额暂不进入账户余额
@@ -382,13 +224,7 @@
       </div>
     </el-dialog>
     <el-dialog title="备注" width="400px" :visible.sync="memoVisible">
-      <el-input
-        type="textarea"
-        v-model.trim="memoForm.memo"
-        :rows="7"
-        :maxlength="255"
-        show-word-limit
-      ></el-input>
+      <el-input type="textarea" v-model.trim="memoForm.memo" :rows="7" :maxlength="255" show-word-limit></el-input>
       <div slot="footer" class="dialog-footer">
         <el-button @click="memoVisible = false">取 消</el-button>
         <el-button type="primary" @click="subMemo">确 定</el-button>
@@ -554,7 +390,7 @@ export default {
               load.endLoading();
             });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     onPracticeExport() {
       // 导出VIP课
@@ -626,7 +462,7 @@ export default {
               load.endLoading();
             });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     getList() {
       let obj = {
@@ -794,6 +630,7 @@ export default {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   div {
     margin-right: 10px;
   }

+ 151 - 403
src/views/accompanyManager/accompanys.vue

@@ -1,46 +1,34 @@
 <template>
   <div class="m-container">
     <!-- <div class="titlewrap"> -->
-      <h2>
-        <el-page-header @back="goBack" :content="name"></el-page-header>
-      </h2>
-      <!-- <p style="margin-bottom: 10px; margin-left: 30px">
+    <h2>
+      <el-page-header @back="goBack" :content="name"></el-page-header>
+    </h2>
+    <!-- <p style="margin-bottom: 10px; margin-left: 30px">
         课程有效期:{{ timers }}
       </p> -->
     <!-- </div> -->
 
     <!--   v-permission="'vipGroupManage/updateVipBaseInfo'" -->
-    <div class="m-core">
+    <div>
       <div class="wrap">
-      <div
-        class="newBand"
-        @click="resetTeachers"
-        v-if="courseType && courseType != 'TRIAL'"
-        v-permission="'courseSchedule/practiceGroupTeacherAdjust'"
-      >
-        课程组调整
-      </div>
-      <!-- // accompanys/addCourse -->
-      <div
-        v-permission="{
+        <div class="newBand" @click="resetTeachers" v-if="courseType && courseType != 'TRIAL'"
+          v-permission="'courseSchedule/practiceGroupTeacherAdjust'">
+          课程组调整
+        </div>
+        <!-- // accompanys/addCourse -->
+        <div v-permission="{
           child: 'courseSchedule/batchAddCourses',
           parent: '/accompanys',
-        }"
-        class="newBand"
-        @click="addCourse"
-      >
-        网管课加课
-      </div>
-      <div
-        class="newBand"
-        v-if="courseType && courseType != 'TRIAL'"
-        v-permission="'courseSchedule/batchUpdateCourseSchedule'"
-        @click="adjustment"
-      >
-        批量调整
-      </div>
+        }" class="newBand" @click="addCourse">
+          网管课加课
+        </div>
+        <div class="newBand" v-if="courseType && courseType != 'TRIAL'"
+          v-permission="'courseSchedule/batchUpdateCourseSchedule'" @click="adjustment">
+          批量调整
+        </div>
 
-      <!-- <div
+        <!-- <div
         class="newBand"
         v-permission="'courseSchedule/updateCoursesExpireDate'"
         @click="onUpdateCourse(1)"
@@ -54,56 +42,37 @@
       >
         有效期调整
       </div> -->
-    </div>
+      </div>
 
-    <div class="tableWrap">
-      <el-table
-        :data="tableList"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column
-          type="selection"
-          :selectable="isDisabled"
-          width="55"
-        ></el-table-column>
-        <el-table-column
-          label="课程编号"
-          align="center"
-          prop="id"
-        ></el-table-column>
-        <el-table-column
-          label="课程名称"
-          align="center"
-          prop="name"
-        ></el-table-column>
-        <el-table-column
-          label="主教老师"
-          align="center"
-          prop="teacherName"
-        ></el-table-column>
-        <!-- <el-table-column label="主教老师" align="center" >
+      <div class="tableWrap">
+        <el-table :data="tableList" :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          @selection-change="handleSelectionChange">
+          <el-table-column type="selection" :selectable="isDisabled" width="55"></el-table-column>
+          <el-table-column label="课程编号" align="center" prop="id"></el-table-column>
+          <el-table-column label="课程名称" align="center" prop="name"></el-table-column>
+          <el-table-column label="主教老师" align="center" prop="teacherName"></el-table-column>
+          <!-- <el-table-column label="主教老师" align="center" >
           <template slot-scope="scope">
             <div v-show="scope.row.teacher">
               {{scope.row.teacher.realName}}
             </div>
           </template>
         </el-table-column>-->
-        <!-- <el-table-column label="班级id"
+          <!-- <el-table-column label="班级id"
                          align="center"
                          prop="classGroupId">
         </el-table-column>-->
-        <el-table-column label="上课日期" align="center" prop="classDate">
-          <template slot-scope="scope">
-            <div>
-              {{ scope.row.classDate | formatTimer }}
-              {{ scope.row.startClassTimeStr | timerForMinFormat }}~{{
-                scope.row.endClassTimeStr | timerForMinFormat
-              }}
-            </div>
-          </template>
-        </el-table-column>
-        <!-- <el-table-column label="开始时间"
+          <el-table-column label="上课日期" align="center" prop="classDate">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.classDate | formatTimer }}
+                {{ scope.row.startClassTimeStr | timerForMinFormat }}~{{
+                  scope.row.endClassTimeStr | timerForMinFormat
+                }}
+              </div>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column label="开始时间"
                          align="center"
                          prop="startClassTimeStr">
           <template slot-scope="scope">
@@ -117,106 +86,65 @@
             <div>{{ scope.row.endClassTimeStr | timerForMinFormat}}</div>
           </template>
         </el-table-column> -->
-        <el-table-column label="是否点名" align="center" prop="status">
-          <template slot-scope="scope">{{
-            scope.row.isCallNames ? "是" : "否"
-          }}</template>
-        </el-table-column>
-        <el-table-column label="课程状态" align="center" prop="status">
-          <template slot-scope="scope">
-            <div>{{ scope.row.status | coursesStatus }}</div>
-          </template>
-        </el-table-column>
-        <el-table-column label="结算状态" align="center">
-          <template slot-scope="scope">
-            <div>{{ scope.row.isSettlement ? "已结算" : "未结算" }}</div>
-          </template>
-        </el-table-column>
-        <!-- <el-table-column label="教学点" align="center" prop="schoolName">
+          <el-table-column label="是否点名" align="center" prop="status">
+            <template slot-scope="scope">{{
+              scope.row.isCallNames ? "是" : "否"
+            }}</template>
+          </el-table-column>
+          <el-table-column label="课程状态" align="center" prop="status">
+            <template slot-scope="scope">
+              <div>{{ scope.row.status | coursesStatus }}</div>
+            </template>
+          </el-table-column>
+          <el-table-column label="结算状态" align="center">
+            <template slot-scope="scope">
+              <div>{{ scope.row.isSettlement ? "已结算" : "未结算" }}</div>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column label="教学点" align="center" prop="schoolName">
           <template slot-scope="scope">
             <div>{{scope.row.schoolName?scope.row.schoolName:'网络教室'}}</div>
           </template>
         </el-table-column>-->
-        <el-table-column
-          label="操作"
-          width="250px"
-          align="center"
-          fixed="right"
-        >
-          <template slot-scope="scope">
-            <div>
-              <el-button
-                type="text"
-                v-if="
-                  !scope.row.isSettlement &&
+          <el-table-column label="操作" width="250px" align="center" fixed="right">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text" v-if="!scope.row.isSettlement &&
                   permission('courseSchedule/classStartDateAdjust/accompanys')
-                "
-                @click="resetClass(scope.row)"
-                >调整</el-button
-              >
-              <el-button
-                type="text"
-                v-if="
-                  !scope.row.isSettlement &&
+                  " @click="resetClass(scope.row)">调整</el-button>
+                <el-button type="text" v-if="!scope.row.isSettlement &&
                   scope.row.status == 'NOT_START' &&
                   permission('accompanys/remove')
-                "
-                @click="removeClass(scope.row)"
-                >删除</el-button
-              >
-              <el-button
-                type="text"
-                v-if="
-                  scope.row.status == 'NOT_START' &&
+                  " @click="removeClass(scope.row)">删除</el-button>
+                <el-button type="text" v-if="scope.row.status == 'NOT_START' &&
                   courseType != 'TRIAL' &&
                   permission('courseSchedule/practiceCourseTeacherAdjust/3420')
-                "
-                @click="resetTeacher(scope.row)"
-                >更换老师</el-button
-              >
-              <el-button
-                v-if="
-                  scope.row.status == 'OVER' &&
+                  " @click="resetTeacher(scope.row)">更换老师</el-button>
+                <el-button v-if="scope.row.status == 'OVER' &&
                   scope.row.isSettlement == 0 &&
                   permission(
                     '/accompanys/teacherAttendance/updateTeacherAttendance'
                   )
-                "
-                type="text"
-                @click="onMarkAttendance(scope.row)"
-                >补考勤</el-button
-              >
-              <!--  && permission('studentAttendance/updateStudentAttendances', '/accompanys') -->
-              <el-button
-                v-if="
-                  scope.row.status == 'OVER' &&
+                  " type="text" @click="onMarkAttendance(scope.row)">补考勤</el-button>
+                <!--  && permission('studentAttendance/updateStudentAttendances', '/accompanys') -->
+                <el-button v-if="scope.row.status == 'OVER' &&
                   permission(
                     '/accompanys/studentAttendance/updateStudentAttendances'
                   )
-                "
-                type="text"
-                @click="onCallName(scope.row)"
-                >点名表</el-button
-              >
-              <el-button
-                type="text"
-                v-if="
-                  !scope.row.isSettlement &&
+                  " type="text" @click="onCallName(scope.row)">点名表</el-button>
+                <el-button type="text" v-if="!scope.row.isSettlement &&
                   permission('accompanys/cleanAttendance')
-                "
-                @click="clearAttend(scope.row)"
-                >清除考勤</el-button
-              >
-            </div>
-          </template>
-        </el-table-column>
-      </el-table>
-      <!-- <pagination :total="rules.total"
+                  " @click="clearAttend(scope.row)">清除考勤</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- <pagination :total="rules.total"
                   :page.sync="rules.page"
                   :limit.sync="rules.limit"
                   :page-sizes="rules.page_size"
                   @pagination="getList" /> 乔乔说后台没有分页所以一口气都展示-->
-    </div>
+      </div>
     </div>
     <!-- <el-dialog
       :title="updateCourseStatus == 2 ? '有效期调整' : '有效期调整(高权限)'"
@@ -262,11 +190,7 @@
         <el-button type="primary" @click="submitExpireDate">确 定</el-button>
       </div>
     </el-dialog> -->
-    <el-dialog
-      title="补考勤"
-      width="400px"
-      :visible.sync="markAttendance.status"
-    >
+    <el-dialog title="补考勤" width="400px" :visible.sync="markAttendance.status">
       <el-form>
         <el-form-item label="签到状态">{{
           markAttendance.dataInfo.isSignIn | attendanceType
@@ -283,41 +207,19 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="markAttendance.status = false">取 消</el-button>
-        <el-button
-          type="primary"
-          :disabled="
-            markAttendance.dataInfo.isSignIn == 1 &&
+        <el-button type="primary" :disabled="markAttendance.dataInfo.isSignIn == 1 &&
             markAttendance.dataInfo.isSignOut == 1
-              ? true
-              : false
-          "
-          @click="batchAdjustmentTime"
-          >确定补卡</el-button
-        >
+            ? true
+            : false
+          " @click="batchAdjustmentTime">确定补卡</el-button>
       </div>
     </el-dialog>
-    <el-dialog
-      title="课程调整"
-      width="400px"
-      :before-close="handleClose"
-      :visible.sync="courseVisible"
-    >
-      <el-form
-        :model="maskForm"
-        ref="maskForm"
-        :rules="maskRules"
-        label-position="right"
-        label-width="80px"
-        :inline="true"
-      >
+    <el-dialog title="课程调整" width="400px" :before-close="handleClose" :visible.sync="courseVisible">
+      <el-form :model="maskForm" ref="maskForm" :rules="maskRules" label-position="right" label-width="80px"
+        :inline="true">
         <el-form-item label="上课日期" prop="date">
-          <el-date-picker
-            v-model.trim="maskForm.date"
-            type="date"
-            :picker-options="courseOption"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          ></el-date-picker>
+          <el-date-picker v-model.trim="maskForm.date" type="date" :picker-options="courseOption"
+            value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
         </el-form-item>
         <!-- 试听课  v-if="courseType != 'TRIAL'"-->
         <!-- <el-form-item label="上课日期" prop="date" v-else>
@@ -330,32 +232,16 @@
             placeholder="选择日期"
           ></el-date-picker>
         </el-form-item> -->
-        <el-form-item
-          label="开始时间"
-          prop="startTime"
-          :rules="[
-            { required: true, message: '请选择开始时间', trigger: 'change' },
-          ]"
-        >
-          <el-time-picker
-            placeholder="起始时间"
-            v-model="maskForm.startTime"
-            @change="changeStartTime"
-            format="HH:mm"
-            value-format="HH:mm"
-            :picker-options="{
+        <el-form-item label="开始时间" prop="startTime" :rules="[
+          { required: true, message: '请选择开始时间', trigger: 'change' },
+        ]">
+          <el-time-picker placeholder="起始时间" v-model="maskForm.startTime" @change="changeStartTime" format="HH:mm"
+            value-format="HH:mm" :picker-options="{
               selectableRange: `06:00:00 - 23:30:00`,
-            }"
-          ></el-time-picker>
+            }"></el-time-picker>
         </el-form-item>
         <el-form-item label="结束时间" prop="endTime">
-          <el-time-picker
-            placeholder="结束时间"
-            format="HH:mm"
-            value-format="HH:mm"
-            v-model="maskForm.endTime"
-            disabled
-          >
+          <el-time-picker placeholder="结束时间" format="HH:mm" value-format="HH:mm" v-model="maskForm.endTime" disabled>
           </el-time-picker>
         </el-form-item>
         <!--  v-show="maskForm.teachMode=='OFFLINE'"-->
@@ -382,70 +268,34 @@
       </div>
     </el-dialog>
 
-    <el-dialog
-      :title="isMultiple ? '课程组调整' : '更换老师'"
-      width="400px"
-      :before-close="teacherClose"
-      :visible.sync="teacherVisible"
-    >
-      <el-form
-        :model="teacherForm"
-        ref="teacherForm"
-        :rules="teacherRules"
-        label-position="right"
-        label-width="100px"
-        :inline="true"
-      >
+    <el-dialog :title="isMultiple ? '课程组调整' : '更换老师'" width="400px" :before-close="teacherClose"
+      :visible.sync="teacherVisible">
+      <el-form :model="teacherForm" ref="teacherForm" :rules="teacherRules" label-position="right" label-width="100px"
+        :inline="true">
         <el-form-item label="课程班名称" v-show="isMultiple">
           <el-input v-model.trim="teacherForm.name" disabled></el-input>
         </el-form-item>
         <el-form-item label="课程组声部" v-show="isMultiple">
-          <el-select
-            v-model.trim="teacherForm.subjectId"
-            @change="changeSound"
-            filterable
-            clearable
-          >
-            <el-option
-              v-for="(item, index) in subjectList"
-              :key="index"
-              :value="item.id"
-              :label="item.name"
-            ></el-option>
+          <el-select v-model.trim="teacherForm.subjectId" @change="changeSound" filterable clearable>
+            <el-option v-for="(item, index) in subjectList" :key="index" :value="item.id" :label="item.name"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="课程组老师" v-if="isMultiple">
           <el-select v-model.trim="teacherForm.teacher" filterable clearable>
-            <el-option
-              v-for="(item, index) in teacherList"
-              :key="index"
-              :value="item.id"
-              :label="item.realName"
-            ></el-option>
+            <el-option v-for="(item, index) in teacherList" :key="index" :value="item.id"
+              :label="item.realName"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="指导老师" v-else>
           <el-select v-model.trim="teacherForm.teacher" filterable clearable>
-            <el-option
-              v-for="(item, index) in teacherList"
-              :key="index"
-              :value="item.id"
-              :label="item.realName"
-            ></el-option>
+            <el-option v-for="(item, index) in teacherList" :key="index" :value="item.id"
+              :label="item.realName"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="乐团主管" v-show="isMultiple">
-          <el-select
-            v-model.trim="teacherForm.educationalTeacherId"
-            filterable
-            clearable
-          >
-            <el-option
-              v-for="(item, index) in selects.roles.EDUCATION"
-              :key="index"
-              :value="item.value"
-              :label="item.label"
-            ></el-option>
+          <el-select v-model.trim="teacherForm.educationalTeacherId" filterable clearable>
+            <el-option v-for="(item, index) in selects.roles.EDUCATION" :key="index" :value="item.value"
+              :label="item.label"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item v-if="isMultiple">
@@ -459,187 +309,81 @@
         <el-button type="primary" @click="subresetTeacher">确 定</el-button>
       </div>
     </el-dialog>
-    <el-dialog
-      :title="adjustmentName"
-      width="800px"
-      :visible.sync="adjustmentVisible"
-    >
-      <el-form
-        :model="adjustmentForm"
-        label-position="right"
-        label-width="120px"
-        ref="adjustmentForm"
-        :rules="adjustmentRules"
-        :inline="true"
-      >
+    <el-dialog :title="adjustmentName" width="800px" :visible.sync="adjustmentVisible">
+      <el-form :model="adjustmentForm" label-position="right" label-width="120px" ref="adjustmentForm"
+        :rules="adjustmentRules" :inline="true">
         <el-form-item label="已选择课时数" v-if="!isaddCourse">
           <el-input disabled v-model.trim="adjustmentForm.count"></el-input>
         </el-form-item>
         <el-form-item label="添加课时数" prop="addCount" v-if="isaddCourse">
-          <el-input
-            type="number"
-            @mousewheel.native.prevent
-            v-model.trim="adjustmentForm.addCount"
-          ></el-input>
+          <el-input type="number" @mousewheel.native.prevent v-model.trim="adjustmentForm.addCount"></el-input>
         </el-form-item>
         <br />
         <!-- <el-form-item label="单课费用" prop="fee" v-show="isaddCourse">
           <el-input v-model.trim="adjustmentForm.fee"></el-input>
         </el-form-item>-->
         <el-form-item label="排课起始时间" prop="courseTime">
-          <el-date-picker
-            v-model.trim="adjustmentForm.courseTime"
-            :picker-options="pickerOptions"
-            style="width: 200px !important"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          ></el-date-picker>
-          <el-checkbox
-            style="margin-left: 10px"
-            v-model.trim="adjustmentForm.checked"
-            >是否跳过节假日</el-checkbox
-          >
+          <el-date-picker v-model.trim="adjustmentForm.courseTime" :picker-options="pickerOptions"
+            style="width: 200px !important" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
+          <el-checkbox style="margin-left: 10px" v-model.trim="adjustmentForm.checked">是否跳过节假日</el-checkbox>
         </el-form-item>
       </el-form>
       <div class="WeekWrap">
         <h3 style="margin-bottom: 20px">
           循环次数
-          <el-button type="text" style="margin-left: 10px" @click="addWeek"
-            >添加</el-button
-          >
+          <el-button type="text" style="margin-left: 10px" @click="addWeek">添加</el-button>
         </h3>
         <div class="countWrap" style="margin-bottom: 10px">
-          <div
-            class="countItem"
-            style="margin-bottom: 20px"
-            v-for="(item, index) in weekList"
-            :key="index"
-          >
+          <div class="countItem" style="margin-bottom: 20px" v-for="(item, index) in weekList" :key="index">
             <span>循环周期:</span>
             <el-select v-model.trim="item.dayOfWeek" filterable clearable>
-              <el-option
-                v-for="(item, index) in weekDateList"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              ></el-option>
+              <el-option v-for="(item, index) in weekDateList" :key="index" :label="item.label"
+                :value="item.value"></el-option>
             </el-select>
             <span style="margin-left: 10px">开始时间</span>
-            <el-time-picker
-              style="margin-left: 10px"
-              placeholder
-              v-model.trim="item.startClassTime"
-              @change="
-                (val) => {
-                  changeStartTimes(val, item);
-                }
-              "
-              format="HH:mm"
-              value-format="HH:mm"
-              :picker-options="{
-                selectableRange: '06:00:00 - 23:30:00',
-              }"
-            ></el-time-picker>
+            <el-time-picker style="margin-left: 10px" placeholder v-model.trim="item.startClassTime" @change="(val) => {
+                changeStartTimes(val, item);
+              }
+              " format="HH:mm" value-format="HH:mm" :picker-options="{
+    selectableRange: '06:00:00 - 23:30:00',
+  }"></el-time-picker>
             <span style="margin-left: 10px">结束时间</span>
-            <el-time-picker
-              style="margin-left: 10px"
-              placeholder
-              v-model.trim="item.endClassTime"
-              format="HH:mm"
-              value-format="HH:mm"
-              disabled
-              :picker-options="{
+            <el-time-picker style="margin-left: 10px" placeholder v-model.trim="item.endClassTime" format="HH:mm"
+              value-format="HH:mm" disabled :picker-options="{
                 selectableRange: '06:00:00 - 23:30:00',
-              }"
-            ></el-time-picker>
-            <el-button
-              style="margin-left: 10px"
-              type="danger"
-              @click="removeWeek(item)"
-              icon="el-icon-delete"
-              circle
-            ></el-button>
+              }"></el-time-picker>
+            <el-button style="margin-left: 10px" type="danger" @click="removeWeek(item)" icon="el-icon-delete"
+              circle></el-button>
           </div>
         </div>
       </div>
       <div slot="footer" class="dialog-footer">
         <el-button @click="adjustmentVisible = false">取 消</el-button>
-        <el-button
-          type="primary"
-          v-show="!isaddCourse"
-          @click="submitAdjustment"
-          >确 定</el-button
-        >
-        <el-button type="primary" v-show="isaddCourse" @click="addCourseSubmit"
-          >确 定</el-button
-        >
+        <el-button type="primary" v-show="!isaddCourse" @click="submitAdjustment">确 定</el-button>
+        <el-button type="primary" v-show="isaddCourse" @click="addCourseSubmit">确 定</el-button>
       </div>
     </el-dialog>
 
     <el-dialog title="点名表" width="700px" :visible.sync="rollCall.status">
-      <el-table
-        :data="rollCall.gridData"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-      >
-        <el-table-column
-          align="center"
-          property="userName"
-          label="学员姓名"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          property="phone"
-          label="手机号"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          property="subjectName"
-          label="学员声部"
-        ></el-table-column>
+      <el-table :data="rollCall.gridData" :header-cell-style="{ background: '#EDEEF0', color: '#444' }">
+        <el-table-column align="center" property="userName" label="学员姓名"></el-table-column>
+        <el-table-column align="center" property="phone" label="手机号"></el-table-column>
+        <el-table-column align="center" property="subjectName" label="学员声部"></el-table-column>
         <el-table-column align="center" label="到课状态">
           <template slot-scope="scope">
             {{ scope.row.status | studentCallName }}
           </template>
         </el-table-column>
-        <el-table-column
-          align="center"
-          label="操作"
-          v-if="rollCall.selectItem.isSettlement == 0"
-          width="220px"
-        >
+        <el-table-column align="center" label="操作" v-if="rollCall.selectItem.isSettlement == 0" width="220px">
           <template slot-scope="scope">
-            <el-button
-              size="mini"
-              @click="onChangeRollCall('TRUANT', scope.row)"
-              type="primary"
-              round
-              >未到</el-button
-            >
-            <el-button
-              size="mini"
-              @click="onChangeRollCall('LEAVE', scope.row)"
-              type="warning"
-              round
-              >请假</el-button
-            >
-            <el-button
-              size="mini"
-              @click="onChangeRollCall('NORMAL', scope.row)"
-              type="success"
-              round
-              >到课</el-button
-            >
+            <el-button size="mini" @click="onChangeRollCall('TRUANT', scope.row)" type="primary" round>未到</el-button>
+            <el-button size="mini" @click="onChangeRollCall('LEAVE', scope.row)" type="warning" round>请假</el-button>
+            <el-button size="mini" @click="onChangeRollCall('NORMAL', scope.row)" type="success" round>到课</el-button>
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        :total="rollCall.total"
-        :page.sync="rollCall.page"
-        :limit.sync="rollCall.limit"
-        :page-sizes="rollCall.page_size"
-        @pagination="getCallName"
-      />
+      <pagination :total="rollCall.total" :page.sync="rollCall.page" :limit.sync="rollCall.limit"
+        :page-sizes="rollCall.page_size" @pagination="getCallName" />
     </el-dialog>
   </div>
 </template>
@@ -827,7 +571,7 @@ export default {
         this.$route.query.coursesExpireDate;
 
       //   <!-- 状态 指导老师 活动方案-->
-      getTeacher({ organId: this.organId}).then((res) => {
+      getTeacher({ organId: this.organId }).then((res) => {
         if (res.code == 200) {
           this.teacherList = res.data;
         }
@@ -1238,7 +982,7 @@ export default {
           // || time.getTime() > coursesExpireDate
 
 
-            let startTime = nowDate
+          let startTime = nowDate
           return (
             time.getTime() < startTime
           );
@@ -1350,7 +1094,7 @@ export default {
             }
           });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     // 网管课加课弹窗
     addCourse() {
@@ -1446,8 +1190,8 @@ export default {
   watch: {
     adjustmentVisible(val) {
       if (!val) {
-        if( this.$refs.adjustmentForm){
-            this.$refs.adjustmentForm.resetFields();
+        if (this.$refs.adjustmentForm) {
+          this.$refs.adjustmentForm.resetFields();
         }
         this.weekList = [
           {
@@ -1470,16 +1214,20 @@ export default {
   justify-content: flex-start;
   align-items: center;
 }
+
 .wrap {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   div {
     margin-right: 20px;
     max-width: inherit;
   }
 }
+
 .countWrap {
+
   ::v-deep .el-date-editor.el-input,
   ::v-deep .el-date-editor.el-input__inner {
     width: 100px !important;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 293 - 174
src/views/teamBuild/signupList.vue


+ 5 - 5
src/views/teamBuild/teamSeting/components/setClassV2.vue

@@ -107,14 +107,14 @@
                 <p>确定删除?</p>
                 <div style="text-align: right; margin: 0">
                   <el-button
-                    
+
                     type="text"
                     @click="scope._self.$refs[scope.$index].doClose()"
                     >取消</el-button
                   >
                   <el-button
                     type="primary"
-                    
+
                     @click="removeClass(scope)"
                     >确定</el-button
                   >
@@ -215,7 +215,7 @@
           v-if="
             newClassForm.type != 'HIGH_ONLINE' &&
             newClassForm.type != 'HIGH' &&
-            newClassForm.type
+            newClassForm.type && $helpers.permission('is/teacher/findTeachers')
           "
           prop="teaching"
         >
@@ -691,14 +691,14 @@
                 <p>确定删除该学生?</p>
                 <div style="text-align: right; margin-top: 20px">
                   <el-button
-                    
+
                     type="text"
                     @click="scope._self.$refs[scope.$index].doClose()"
                     >取消</el-button
                   >
                   <el-button
                     type="primary"
-                    
+
                     @click="removeStudent(scope)"
                     >确定</el-button
                   >

+ 149 - 122
src/views/teamBuild/teamSeting/components/setTeacher.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class='set-teacher'>
+  <div class="set-teacher">
     <!-- <div class="allClassLis">
       <div class="allClassBtn"
            @click="getAllClassInfo(item.id)"
@@ -10,50 +10,57 @@
       </div>
     </div> -->
     <div class="tableWrap">
-      <el-table :data='singinList'
-                :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-        <el-table-column label="班级名称"
-                         prop='name'
-                         width="160px">
+      <el-table
+        :data="singinList"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+      >
+        <el-table-column label="班级名称" prop="name" width="160px">
         </el-table-column>
-        <el-table-column label="所属合奏班"
-                         prop='mixClassName'
-                         width="160px">
+        <el-table-column label="所属合奏班" prop="mixClassName" width="160px">
         </el-table-column>
-        <el-table-column label="主教老师"
-                         width="200px">
+        <el-table-column label="主教老师" width="200px">
           <template slot-scope="scope">
             <div>
-              <el-select v-model.trim="scope.row.coreTeacher"
-                         :disabled="isSetSalary"
-                         filterable
-                         clearable
-                         @change="setCoreTeacher"
-                         v-if='teacherList'>
-                <el-option v-for='(item,index) in teacherList'
-                           :label="item.username"
-                           :key='index'
-                           :value="item.id"></el-option>
+              <el-select
+                v-model.trim="scope.row.coreTeacher"
+                :disabled="isSetSalary"
+                filterable
+                clearable
+                @change="setCoreTeacher"
+                v-if="teacherList"
+              >
+                <el-option
+                  v-for="(item, index) in teacherList"
+                  :label="item.username"
+                  :key="index"
+                  :value="item.id"
+                ></el-option>
               </el-select>
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="
-                         助教老师">
+        <el-table-column
+          label="助教老师"
+          v-if="$helpers.permission('is/teacher/findTeachers')"
+        >
           <template slot-scope="scope">
             <div>
-              <el-select class='tableClass'
-                         filterable
-                         clearable
-                         @change="chioseAssistant(scope.row)"
-                         v-if='teacherList'
-                         :disabled="!scope.row.coreTeacher || isSetSalary"
-                         multiple
-                         v-model.trim="scope.row.assistant">
-                <el-option v-for='(item,index) in teacherList'
-                           :label="item.username"
-                           :key='index'
-                           :value="item.id"></el-option>
+              <el-select
+                class="tableClass"
+                filterable
+                clearable
+                @change="chioseAssistant(scope.row)"
+                v-if="teacherList"
+                :disabled="!scope.row.coreTeacher || isSetSalary"
+                multiple
+                v-model.trim="scope.row.assistant"
+              >
+                <el-option
+                  v-for="(item, index) in teacherList"
+                  :label="item.username"
+                  :key="index"
+                  :value="item.id"
+                ></el-option>
               </el-select>
             </div>
           </template>
@@ -61,46 +68,54 @@
       </el-table>
     </div>
     <div class="tableWrap">
-      <el-table :data='allList'
-                :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-        <el-table-column label="合奏班名称"
-                         prop='name'
-                         width="160px">
-
+      <el-table
+        :data="allList"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+      >
+        <el-table-column label="合奏班名称" prop="name" width="160px">
         </el-table-column>
-        <el-table-column label="主教老师"
-                         width="200px;">
+        <el-table-column label="主教老师" width="200px;">
           <template slot-scope="scope">
             <div>
-              <el-select v-model.trim="scope.row.coreTeacher"
-                         :disabled="isSetSalary"
-                         clearable
-                         filterable
-                         v-if='teacherList'>
-                <el-option v-for='(item,index) in teacherList'
-                           :label="item.username"
-                           :key='index'
-                           :value="item.id"></el-option>
+              <el-select
+                v-model.trim="scope.row.coreTeacher"
+                :disabled="isSetSalary"
+                clearable
+                filterable
+                v-if="teacherList"
+              >
+                <el-option
+                  v-for="(item, index) in teacherList"
+                  :label="item.username"
+                  :key="index"
+                  :value="item.id"
+                ></el-option>
               </el-select>
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="
-                         助教老师">
+        <el-table-column
+          label="
+                         助教老师"
+        >
           <template slot-scope="scope">
             <div>
               <!-- v-if='scope.row.assistant' -->
-              <el-select class='tableClass'
-                         @change="chioseAssistant(scope.row)"
-                         multiple
-                         filterable
-                         clearable
-                         :disabled="!scope.row.coreTeacher ||  isSetSalary"
-                         v-model.trim="scope.row.assistant">
-                <el-option v-for='(item,index) in teacherList'
-                           :label="item.username"
-                           :key='index'
-                           :value="item.id"></el-option>
+              <el-select
+                class="tableClass"
+                @change="chioseAssistant(scope.row)"
+                multiple
+                filterable
+                clearable
+                :disabled="!scope.row.coreTeacher || isSetSalary"
+                v-model.trim="scope.row.assistant"
+              >
+                <el-option
+                  v-for="(item, index) in teacherList"
+                  :label="item.username"
+                  :key="index"
+                  :value="item.id"
+                ></el-option>
               </el-select>
             </div>
           </template>
@@ -109,15 +124,14 @@
     </div>
     <div class="footer">
       <!-- <div class="reset">返回修改</div> -->
-      <div class="next"
-           @click="gotoNext">下一步</div>
+      <div class="next" @click="gotoNext">下一步</div>
     </div>
   </div>
 </template>
 <script>
-import { getEveryClass, getTeacher, setTeamTeacher } from '@/api/buildTeam'
+import { getEveryClass, getTeacher, setTeamTeacher } from "@/api/buildTeam";
 export default {
-  name: 'setTeacher',
+  name: "setTeacher",
   props: {
     teamid: {
       type: String,
@@ -128,18 +142,18 @@ export default {
       required: true
     }
   },
-  data () {
+  data() {
     return {
       singinList: [],
       allList: [],
       teacherList: [],
       classGroupTeacherMapperList: []
       // activeAllClass: ''
-    }
+    };
   },
-  mounted () {
-    localStorage.setItem('setStep', 1)
-    this.organId = localStorage.getItem('createTeamOrgnId') || null
+  mounted() {
+    localStorage.setItem("setStep", 1);
+    this.organId = localStorage.getItem("createTeamOrgnId") || null;
     // 该乐团里所有的声部班与合奏班
     this.getEveryClass();
     // 获取所有的老师列表
@@ -147,12 +161,11 @@ export default {
       if (res.code == 200) {
         this.teacherList = res.data;
       }
-    })
-
+    });
   },
   methods: {
     // 根据合奏班id获取合奏班信息
-    getEveryClass () {
+    getEveryClass() {
       getEveryClass({ musicGroupId: this.teamid }).then(res => {
         let singinList = [];
         let allList = [];
@@ -161,47 +174,53 @@ export default {
           //   coreTeacher: '',
           //   assistant:[]
           // }
-          item.coreTeacher = ''
-          item.assistant = []
-          if (item.classGroupTeacherMapperList && item.classGroupTeacherMapperList.length > 0) {
+          item.coreTeacher = "";
+          item.assistant = [];
+          if (
+            item.classGroupTeacherMapperList &&
+            item.classGroupTeacherMapperList.length > 0
+          ) {
             //循环老师列表分配到不同的
             for (let i in item.classGroupTeacherMapperList) {
-              if (item.classGroupTeacherMapperList[i].teacherRole == 'BISHOP') {
-                item.coreTeacher = item.classGroupTeacherMapperList[i].userId
-              } else if (item.classGroupTeacherMapperList[i].teacherRole == 'TEACHING') {
-                item.assistant.push(item.classGroupTeacherMapperList[i].userId)
+              if (item.classGroupTeacherMapperList[i].teacherRole == "BISHOP") {
+                item.coreTeacher = item.classGroupTeacherMapperList[i].userId;
+              } else if (
+                item.classGroupTeacherMapperList[i].teacherRole == "TEACHING"
+              ) {
+                item.assistant.push(item.classGroupTeacherMapperList[i].userId);
               }
             }
           }
-          if (item.type == 'NORMAL') {
-            singinList.push(item)
+          if (item.type == "NORMAL") {
+            singinList.push(item);
           }
-          if (item.type == 'MIX') {
-            allList.push(item)
+          if (item.type == "MIX") {
+            allList.push(item);
           }
-        })
+        });
         this.singinList = singinList;
         this.allList = allList;
-      })
+      });
     },
-    gotoNext () {
+    gotoNext() {
       // 点击下一步
       if (this.isSetSalary) {
-        this.$message.error('课酬确认后无法编辑')
+        this.$message.error("课酬确认后无法编辑");
         return;
       }
       let isTeacher = true;
-      let isTeachers = []
-      let singinListTeacher = []
-      let allListTeacher = []
-
+      let isTeachers = [];
+      let singinListTeacher = [];
+      let allListTeacher = [];
 
       // 验证声部班主教老师是否指认
       for (let i in this.singinList) {
         singinListTeacher.push(this.singinList[i].coreTeacher);
-        singinListTeacher = singinListTeacher.concat(this.singinList[i].assistant)
-        if (this.singinList[i].coreTeacher == '') {
-          isTeachers.push(false)
+        singinListTeacher = singinListTeacher.concat(
+          this.singinList[i].assistant
+        );
+        if (this.singinList[i].coreTeacher == "") {
+          isTeachers.push(false);
         }
       }
       // if (singinListTeacher.length != [...new Set(singinListTeacher)].length) {
@@ -211,9 +230,9 @@ export default {
 
       for (let j in this.allList) {
         allListTeacher.push(this.allList[j].coreTeacher);
-        allListTeacher = allListTeacher.concat(this.allList[j].assistant)
-        if (this.allList[j].coreTeacher == '') {
-          isTeachers.push(false)
+        allListTeacher = allListTeacher.concat(this.allList[j].assistant);
+        if (this.allList[j].coreTeacher == "") {
+          isTeachers.push(false);
         }
       }
       // if (allListTeacher.length != [...new Set(allListTeacher)].length) {
@@ -221,10 +240,10 @@ export default {
       //   return
       // }
       isTeachers.filter(item => {
-        isTeacher = isTeacher && item
-      })
+        isTeacher = isTeacher && item;
+      });
       if (!isTeacher) {
-        this.$message.error('请确定每个班级都有主教老师')
+        this.$message.error("请确定每个班级都有主教老师");
         return;
       }
       // 开始拼接数据
@@ -233,42 +252,40 @@ export default {
       setTeamTeacher(this.classGroupTeacherMapperList).then(res => {
         if (res.code == 200) {
           this.classGroupTeacherMapperList = [];
-          this.$emit('gotoNav', 2);
+          this.$emit("gotoNav", 2);
         }
-      })
+      });
     },
-    addDate (arr) {
+    addDate(arr) {
       for (let i in arr) {
-        let obj = {}
+        let obj = {};
         obj.classGroupId = arr[i].id;
         obj.musicGroupId = this.teamid;
-        obj.teacherRole = 'BISHOP';
+        obj.teacherRole = "BISHOP";
         obj.userId = arr[i].coreTeacher;
-        this.classGroupTeacherMapperList.push(obj)
+        this.classGroupTeacherMapperList.push(obj);
         for (let j in arr[i].assistant) {
-          let obj = {}
+          let obj = {};
           obj.classGroupId = arr[i].id;
           obj.musicGroupId = this.teamid;
-          obj.teacherRole = 'TEACHING';
+          obj.teacherRole = "TEACHING";
           obj.userId = arr[i].assistant[j];
-          this.classGroupTeacherMapperList.push(obj)
+          this.classGroupTeacherMapperList.push(obj);
         }
       }
     },
-    setCoreTeacher (val) {
-    },
-    chioseAssistant (row) {
+    setCoreTeacher(val) {},
+    chioseAssistant(row) {
       for (let i in row.assistant) {
         if (row.assistant[i] == row.coreTeacher) {
           row.assistant = [];
-          this.$message.error('同一个班主教助教不能相同')
-          return
+          this.$message.error("同一个班主教助教不能相同");
+          return;
         }
       }
     }
-  },
-
-}
+  }
+};
 </script>
 <style lang="scss" scope>
 .set-teacher {
@@ -276,6 +293,7 @@ export default {
   padding: 30px 42px;
   background-color: #fff;
   min-height: 80vh;
+
   .allClassLis {
     display: inline-block;
     // flex-direction: row;
@@ -285,6 +303,7 @@ export default {
     border-radius: 4px;
     margin-bottom: 24px;
     clear: both;
+
     .allClassBtn {
       width: 91px;
       height: 32px;
@@ -296,6 +315,7 @@ export default {
       float: left;
       cursor: pointer;
     }
+
     .allClassBtn.active {
       width: 91px;
       height: 32px;
@@ -307,17 +327,21 @@ export default {
       float: left;
     }
   }
+
   .tableClass {
     margin-right: 10px;
   }
+
   i {
     cursor: pointer;
   }
+
   .footer {
     margin-top: 50px;
     display: flex;
     flex-direction: row;
     justify-content: flex-end;
+
     > div {
       width: 120px;
       height: 40px;
@@ -327,15 +351,18 @@ export default {
       color: #fff;
       cursor: pointer;
     }
+
     .reset {
       background-color: var(--color-primary);
       margin-right: 20px;
     }
+
     .next {
       background-color: #444;
     }
   }
 }
+
 .tableClass.el-select {
   width: 100% !important;
 }

+ 30 - 134
src/views/teamDetail/componentCourse/compoundClass.vue

@@ -1,30 +1,12 @@
 <template>
   <div>
-    <el-form
-      :model="maskForm"
-      class="maskForm"
-      ref="maskForm"
-      :rules="maskRules"
-      label-position="right"
-      label-width="120px"
-      :inline="true"
-    >
+    <el-form :model="maskForm" class="maskForm" ref="maskForm" :rules="maskRules" label-position="right"
+      label-width="120px" :inline="true">
       <el-row>
         <el-col :span="12">
           <el-form-item label="主课" prop="id">
-            <el-select
-              v-model.trim="maskForm.id"
-              style="width: 220px !important"
-              @change="changeId"
-              clearable
-              filterable
-            >
-              <el-option
-                v-for="(item, index) in dataList"
-                :key="index"
-                :value="item.id"
-                :label="item.name"
-              >
+            <el-select v-model.trim="maskForm.id" style="width: 220px !important" @change="changeId" clearable filterable>
+              <el-option v-for="(item, index) in dataList" :key="index" :value="item.id" :label="item.name">
                 <span style="float: left">{{ item.name }}</span>
                 <span style="float: right; color: #8492a6; font-size: 13px">{{
                   String(item.id)
@@ -37,19 +19,14 @@
       <el-row>
         <el-col :span="12">
           <el-form-item label="课程名称" prop="name">
-            <el-input
-              v-model.trim="maskForm.name"
-              style="width: 220px !important"
-              placeholder="请输入课程名称"
-            ></el-input>
+            <el-input v-model.trim="maskForm.name" style="width: 220px !important" placeholder="请输入课程名称"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item>
             <div style="width: 220px !important">
               <a href="#" class="studentTitle" @click="lookStudentList">
-                学生列表>></a
-              >
+                学生列表>></a>
             </div>
           </el-form-item>
         </el-col>
@@ -76,137 +53,64 @@
                 }}</span>
               </el-option>
             </el-select> -->
-            <remote-search
-              :commit="'setTeachers'"
-              v-model="maskForm.teacher"
-              :width="220"
-            />
+            <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" :width="220" />
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="12" v-if="$helpers.permission('is/teacher/findTeachers')">
           <el-form-item label="助教老师" prop="assistant">
-            <!-- :multiple="true" -->
-            <remote-search
-              :commit="'setTeachers'"
-              v-model="maskForm.assistant"
-              :multiple="true"
-              :width="220"
-            />
-            <!-- <el-select
-              v-model.trim="maskForm.assistant"
-              style="width: 220px !important"
-              clearable
-              filterable
-              multiple
-              collapse-tags
-            >
-              <el-option
-                v-for="(item, index) in teacherList"
-                :key="index"
-                :value="item.id"
-                :label="item.realName"
-              >
-                <span style="float: left">{{ item.realName }}</span>
-                <span style="float: right; color: #8492a6; font-size: 13px">{{
-                  String(item.id)
-                }}</span>
-              </el-option>
-            </el-select> -->
+            <remote-search :commit="'setTeachers'" v-model="maskForm.assistant" :multiple="true" :width="220" />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
           <el-form-item label="上课日期" prop="date">
-            <el-date-picker
-              v-model.trim="maskForm.date"
-              type="date"
-              :picker-options="{
-                firstDayOfWeek: 1,
-              }"
-              value-format="yyyy-MM-dd"
-              placeholder="选择日期"
-            ></el-date-picker>
+            <el-date-picker v-model.trim="maskForm.date" type="date" :picker-options="{
+              firstDayOfWeek: 1,
+            }" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="课程时长(分钟)" prop="timer">
-            <el-input
-              type="number"
-              :disabled="isDisabled"
-              style="width: 220px !important"
-              v-model="maskForm.timer"
-            ></el-input>
+            <el-input type="number" :disabled="isDisabled" style="width: 220px !important"
+              v-model="maskForm.timer"></el-input>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
           <el-form-item label="开始时间" prop="startTime">
-            <el-time-picker
-              placeholder="起始时间"
-              v-model.trim="maskForm.startTime"
-              @change="changeStartTime"
-              format="HH:mm"
-              value-format="HH:mm"
-              :picker-options="{
+            <el-time-picker placeholder="起始时间" v-model.trim="maskForm.startTime" @change="changeStartTime" format="HH:mm"
+              value-format="HH:mm" :picker-options="{
                 selectableRange: '06:00:00 - 23:30:00',
-              }"
-            ></el-time-picker>
+              }"></el-time-picker>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="结束时间" prop="endTime">
-            <el-time-picker
-              placeholder="结束时间"
-              v-model.trim="maskForm.endTime"
-              disabled
-              format="HH:mm"
-              value-format="HH:mm"
-              :picker-options="{
+            <el-time-picker placeholder="结束时间" v-model.trim="maskForm.endTime" disabled format="HH:mm"
+              value-format="HH:mm" :picker-options="{
                 start: '04:30',
                 step: '00:05',
                 end: '23:30',
                 minTime: maskForm.startTime,
-              }"
-            ></el-time-picker>
+              }"></el-time-picker>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item
-            label="课程类型"
-            v-if="maskForm.type == 'VIP'"
-            prop="courseType"
-          >
-            <el-select
-              clearable
-              style="width: 220px !important"
-              v-model.trim="maskForm.teachMode"
-            >
+          <el-form-item label="课程类型" v-if="maskForm.type == 'VIP'" prop="courseType">
+            <el-select clearable style="width: 220px !important" v-model.trim="maskForm.teachMode">
               <el-option label="线上课" value="ONLINE"></el-option>
               <el-option label="线下课" value="OFFLINE"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="教学地点"
-            v-if="maskForm.teachMode == 'OFFLINE' && maskForm.type == 'VIP'"
-          >
-            <el-select
-              v-model.trim="maskForm.address"
-              style="width: 220px !important"
-              filterable
-              clearable
-            >
-              <el-option
-                v-for="(item, index) in schoolList"
-                :key="index"
-                :value="item.id"
-                :label="item.name"
-              ></el-option>
+          <el-form-item label="教学地点" v-if="maskForm.teachMode == 'OFFLINE' && maskForm.type == 'VIP'">
+            <el-select v-model.trim="maskForm.address" style="width: 220px !important" filterable clearable>
+              <el-option v-for="(item, index) in schoolList" :key="index" :value="item.id" :label="item.name"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
@@ -216,18 +120,9 @@
       <el-button @click="cancaleMerge">取 消</el-button>
       <el-button type="primary" @click="submitResetClass">确 定</el-button>
     </div>
-    <el-dialog
-      title="学员列表"
-      width="650px"
-      append-to-body
-      :visible.sync="studentListModalVisible"
-      v-if="studentListModalVisible"
-    >
-      <viewStudentList
-        :list="studentListModal"
-        :showOk="true"
-        @close="studentListModalVisible = false"
-      />
+    <el-dialog title="学员列表" width="650px" append-to-body :visible.sync="studentListModalVisible"
+      v-if="studentListModalVisible">
+      <viewStudentList :list="studentListModal" :showOk="true" @close="studentListModalVisible = false" />
     </el-dialog>
   </div>
 </template>
@@ -352,7 +247,7 @@ export default {
             }
           });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     changeStartTime(val) {
       this.$nextTick((res) => {
@@ -472,6 +367,7 @@ export default {
   flex-direction: row;
   justify-content: flex-end;
 }
+
 .studentTitle {
   width: 120px !important;
   text-align: right;

+ 13 - 29
src/views/teamDetail/componentCourse/modals/resetTeacher.vue

@@ -1,46 +1,30 @@
 <template>
   <div>
-    <el-form
-      :model="maskForm"
-      class="maskForm"
-      ref="maskForm"
-      :rules="maskRules"
-      label-position="right"
-      :inline="true"
-    >
+    <el-form :model="maskForm" class="maskForm" ref="maskForm" :rules="maskRules" label-position="right" :inline="true">
       <!--  label-width="120px" -->
       <el-row>
         <el-col :span="12">
           <el-form-item label="主教老师" prop="teacher">
-            <remote-search
-              :commit="'setTeachers'"
-              v-model="maskForm.teacher"
-              :width="220"
-            />
+            <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" :width="220" />
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="12" v-if="$helpers.permission('is/teacher/findTeachers')">
           <el-form-item label="助教老师" prop="assistant">
             <!-- :multiple="true" -->
-            <remote-search
-              :commit="'setTeachers'"
-              v-model="maskForm.assistant"
-              :multiple="true"
-              :width="220"
-            />
+            <remote-search :commit="'setTeachers'" v-model="maskForm.assistant" :multiple="true" :width="220" />
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
     <div class="buttonWrap">
       <el-button @click="gotoNext" type="primary">下一步</el-button>
-          <el-button @click="()=>{$emit('cancaleMerge')}" >取 消</el-button>
+      <el-button @click="() => { $emit('cancaleMerge') }">取 消</el-button>
     </div>
   </div>
 </template>
 <script>
 export default {
-  props:['idList','dataList'],
+  props: ['idList', 'dataList'],
   data() {
     return {
       maskForm: {
@@ -78,7 +62,7 @@ export default {
             startTime: "",
             pauseDate: "",
             recoveryDate: "",
-            classGroupTeacherMapperList:classGroupTeacherMapperList,
+            classGroupTeacherMapperList: classGroupTeacherMapperList,
             teachMode: null,
             allowZeroSalary: false,
             schoolId: null,
@@ -93,10 +77,10 @@ export default {
 };
 </script>
 <style  lang="scss" scoped>
-  .buttonWrap{
-    width: 100%;
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-end;
-  }
+.buttonWrap {
+  width: 100%;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-end;
+}
 </style>

+ 60 - 52
src/views/teamDetail/componentCourse/resetClass.vue

@@ -1,9 +1,9 @@
 <template>
   <div>
     <el-form
+      ref="maskForm"
       :model="maskForm"
       class="maskForm"
-      ref="maskForm"
       :rules="maskRules"
       label-position="right"
       label-width="120px"
@@ -11,36 +11,40 @@
     >
       <!--    -->
       <el-form-item
-        label="主教老师"
         v-if="maskForm.type == 'VIP'"
+        label="主教老师"
         prop="teacher"
       >
         <remote-search
-          :commit="'setTeachers'"
           v-model="maskForm.teacher"
-          @change="changeTeacher"
+          :commit="'setTeachers'"
           :width="220"
+          @change="changeTeacher"
         />
       </el-form-item>
-      <el-form-item label="主教老师" v-else prop="teacher">
+      <el-form-item v-else label="主教老师" prop="teacher">
         <remote-search
-          :commit="'setTeachers'"
           v-model="maskForm.teacher"
+          :commit="'setTeachers'"
           :width="220"
         />
       </el-form-item>
+      <!--
+      HIGH_ONLINE: "线上基础技能班",
+      MUSIC_NETWORK: "乐团网管课" -->
       <el-form-item
-        label="助教老师"
         v-if="
           maskForm.type != 'MUSIC_NETWORK' &&
             maskForm.type != 'HIGH_ONLINE' &&
-            maskForm.groupType == 'MUSIC'
+            maskForm.groupType == 'MUSIC' &&
+            $helpers.permission('is/teacher/findTeachers')
         "
+        label="助教老师"
         prop="assistant"
       >
         <remote-search
-          :commit="'setTeachers'"
           v-model="maskForm.assistant"
+          :commit="'setTeachers'"
           :width="220"
           :multiple="true"
         />
@@ -53,14 +57,14 @@
           value-format="yyyy-MM-dd"
           placeholder="选择日期"
           clearable
-        ></el-date-picker>
+        />
       </el-form-item>
       <el-form-item label="课程时长" prop="timer">
         <el-select
           v-model="maskForm.timer"
-          @change="changeTime"
           style="width: 220px !important"
           clearable
+          @change="changeTime"
         >
           <el-option
             v-for="(item, index) in typeTimeList"
@@ -68,26 +72,26 @@
             :disabled="item > baseTimer ? true : false"
             :value="parseInt(item)"
             :label="item"
-          ></el-option>
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="开始时间" prop="startTime">
         <el-time-picker
-          placeholder="起始时间"
           v-model.trim="maskForm.startTime"
-          @change="changeStartTime"
+          placeholder="起始时间"
           format="HH:mm"
           value-format="HH:mm"
           :picker-options="{
             selectableRange: `06:00:00 - 23:30:00`
           }"
           clearable
-        ></el-time-picker>
+          @change="changeStartTime"
+        />
       </el-form-item>
       <el-form-item label="结束时间" prop="endTime">
         <el-time-picker
-          placeholder="结束时间"
           v-model.trim="maskForm.endTime"
+          placeholder="结束时间"
           disabled
           format="HH:mm"
           value-format="HH:mm"
@@ -98,39 +102,39 @@
             minTime: maskForm.startTime
           }"
           clearable
-        ></el-time-picker>
+        />
       </el-form-item>
       <el-form-item
-        label="课程类型"
         v-if="maskForm.type == 'VIP'"
+        label="课程类型"
         prop="courseType"
       >
         <el-select
+          v-model.trim="maskForm.teachMode"
           clearable
-          @change="typeChange"
           style="width: 220px !important"
-          v-model.trim="maskForm.teachMode"
+          @change="typeChange"
         >
-          <el-option label="线上课" value="ONLINE"></el-option>
-          <el-option label="线下课" value="OFFLINE"></el-option>
+          <el-option label="线上课" value="ONLINE" />
+          <el-option label="线下课" value="OFFLINE" />
         </el-select>
       </el-form-item>
       <el-form-item
-        label="课程类型"
         v-if="maskForm.type == 'HIGH' || maskForm.type == 'HIGH_ONLINE'"
+        label="课程类型"
         prop="courseType"
       >
         <el-select
+          v-model.trim="maskForm.teachMode"
           clearable
-          @change="typeChangeHight"
           style="width: 220px !important"
-          v-model.trim="maskForm.teachMode"
+          @change="typeChangeHight"
         >
-          <el-option label="线上课" value="ONLINE"></el-option>
-          <el-option label="线下课" value="OFFLINE"></el-option>
+          <el-option label="线上课" value="ONLINE" />
+          <el-option label="线下课" value="OFFLINE" />
         </el-select>
       </el-form-item>
-      <el-form-item label="教学地点" v-if="maskForm.teachMode == 'OFFLINE'">
+      <el-form-item v-if="maskForm.teachMode == 'OFFLINE'" label="教学地点">
         <el-select
           v-model.trim="maskForm.address"
           style="width: 220px !important"
@@ -142,13 +146,17 @@
             :key="index"
             :value="item.id"
             :label="item.name"
-          ></el-option>
+          />
         </el-select>
       </el-form-item>
     </el-form>
     <div slot="footer" class="dialog-footer">
-      <el-button @click="$listeners.closeReset">取 消</el-button>
-      <el-button type="primary" @click="submitResetClass">确 定</el-button>
+      <el-button @click="$listeners.closeReset">
+        取 消
+      </el-button>
+      <el-button type="primary" @click="submitResetClass">
+        确 定
+      </el-button>
     </div>
   </div>
 </template>
@@ -200,6 +208,27 @@ export default {
       bigin: this.beginDate()
     };
   },
+
+  watch: {
+    id(val) {
+      if (val) {
+        this.getDetail(val);
+      }
+    },
+    "maskForm.timer"(val) {
+      this.$nextTick(res => {
+        if (val) {
+          this.$set(
+            this.maskForm,
+            "endTime",
+            addTimerFormMinute(this.maskForm.date, this.maskForm.startTime, val)
+          );
+        } else {
+          this.$set(this.maskForm, "endTime", "");
+        }
+      });
+    }
+  },
   created() {
     that = this;
   },
@@ -409,27 +438,6 @@ export default {
         }
       };
     }
-  },
-
-  watch: {
-    id(val) {
-      if (val) {
-        this.getDetail(val);
-      }
-    },
-    "maskForm.timer"(val) {
-      this.$nextTick(res => {
-        if (val) {
-          this.$set(
-            this.maskForm,
-            "endTime",
-            addTimerFormMinute(this.maskForm.date, this.maskForm.startTime, val)
-          );
-        } else {
-          this.$set(this.maskForm, "endTime", "");
-        }
-      });
-    }
   }
 };
 </script>

+ 156 - 137
src/views/teamDetail/components/courseList.vue

@@ -2,10 +2,10 @@
   <div class="cl-container">
     <!-- 搜索类型 -->
     <save-form
+      ref="searchForm"
       :inline="true"
       save-key="teamDetails-courseList"
       class="searchForm"
-      ref="searchForm"
       :model="searchForm"
       @submit="search"
       @reset="onReSet"
@@ -22,7 +22,7 @@
             :key="index"
             :label="item.label"
             :value="item.value"
-          ></el-option>
+          />
         </el-select>
       </el-form-item>
       <el-form-item prop="classStatus">
@@ -32,9 +32,9 @@
           filterable
           placeholder="课程状态"
         >
-          <el-option label="未开始" value="NOT_START"></el-option>
-          <el-option label="进行中" value="UNDERWAY"></el-option>
-          <el-option label="已结束" value="OVER"></el-option>
+          <el-option label="未开始" value="NOT_START" />
+          <el-option label="进行中" value="UNDERWAY" />
+          <el-option label="已结束" value="OVER" />
         </el-select>
       </el-form-item>
       <el-form-item prop="class">
@@ -50,7 +50,7 @@
             :key="index"
             :value="item.id"
             :label="item.name"
-          ></el-option>
+          />
         </el-select>
       </el-form-item>
       <el-form-item prop="isSettlement">
@@ -60,8 +60,8 @@
           filterable
           clearable
         >
-          <el-option value="0" label="未结算"></el-option>
-          <el-option value="1" label="已结算"></el-option>
+          <el-option value="0" label="未结算" />
+          <el-option value="1" label="已结算" />
         </el-select>
       </el-form-item>
       <el-form-item prop="homeworkFlag">
@@ -71,8 +71,8 @@
           filterable
           clearable
         >
-          <el-option :value="false" label="未布置"></el-option>
-          <el-option :value="true" label="已布置"></el-option>
+          <el-option :value="false" label="未布置" />
+          <el-option :value="true" label="已布置" />
         </el-select>
       </el-form-item>
       <el-form-item prop="serviceFlag">
@@ -82,8 +82,8 @@
           filterable
           clearable
         >
-          <el-option :value="true" label="是"></el-option>
-          <el-option :value="false" label="否"></el-option>
+          <el-option :value="true" label="是" />
+          <el-option :value="false" label="否" />
         </el-select>
       </el-form-item>
       <el-form-item prop="timer">
@@ -98,26 +98,32 @@
           :picker-options="{
             firstDayOfWeek: 1
           }"
-        ></el-date-picker>
+        />
       </el-form-item>
       <el-form-item>
-        <el-button native-type="submit" type="danger">搜索</el-button>
-        <el-button type="primary" native-type="reset">重置</el-button>
+        <el-button native-type="submit" type="danger">
+          搜索
+        </el-button>
+        <el-button type="primary" native-type="reset">
+          重置
+        </el-button>
         <el-button
-          type="primary"
           v-if="permission('export/exportMusicGroupCourseScheduleDetail')"
+          type="primary"
           @click="exportCourse"
-          >导出</el-button
         >
+          导出
+        </el-button>
       </el-form-item>
     </save-form>
     <div class="btnWraps" style="margin-bottom:20px;">
       <el-button
-        type="primary"
         v-if="permission('courseScheduleConvert/action')"
+        type="primary"
         @click="transCourse"
-        >课程转换</el-button
       >
+        课程转换
+      </el-button>
     </div>
 
     <div style="font-size: 14px; padding-bottom: 10px">
@@ -144,30 +150,30 @@
           type="selection"
           width="55"
           :selectable="checkSelectable"
-        ></el-table-column>
+        />
 
         <el-table-column
           align="center"
           prop="courseScheduleId"
           label="课程编号"
-        ></el-table-column>
+        />
         <el-table-column align="center" width="180px" label="时间">
-          <template slot-scope="scope"
-            >{{ scope.row.classDate }}
+          <template slot-scope="scope">
+            {{ scope.row.classDate }}
             {{
               scope.row.startClassTime
                 ? scope.row.startClassTime.substr(0, 5)
                 : ""
             }}-{{
               scope.row.endClassTime ? scope.row.endClassTime.substr(0, 5) : ""
-            }}</template
-          >
+            }}
+          </template>
         </el-table-column>
         <el-table-column
           align="center"
           prop="courseScheduleName"
           label="课程名称"
-        ></el-table-column>
+        />
 
         <el-table-column
           align="center"
@@ -183,7 +189,8 @@
           align="center"
           prop="courseScheduleStatus"
           label="课程状态"
-          >s
+        >
+          s
           <template slot-scope="scope">
             <div>{{ scope.row.courseScheduleStatus | coursesStatus }}</div>
           </template>
@@ -208,7 +215,7 @@
           align="center"
           prop="masterTeacherName"
           label="指导老师"
-        ></el-table-column>
+        />
         <el-table-column
           align="center"
           prop="teachingUserNames"
@@ -219,9 +226,9 @@
           </template>
         </el-table-column>
         <el-table-column align="center" label="结算状态">
-          <template slot-scope="scope">{{
-            scope.row.settlementTime ? "已结算" : "未结算"
-          }}</template>
+          <template slot-scope="scope">
+            {{ scope.row.settlementTime ? "已结算" : "未结算" }}
+          </template>
         </el-table-column>
         <el-table-column align="center" prop="remark" label="是否点名">
           <template slot-scope="scope">
@@ -285,11 +292,7 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column
-          align="center"
-          prop="remark"
-          label="备注"
-        ></el-table-column>
+        <el-table-column align="center" prop="remark" label="备注" />
         <el-table-column
           align="center"
           width="280px"
@@ -309,8 +312,9 @@
                 "
                 type="text"
                 @click="onMarkAttendance(scope.row)"
-                >补考勤</el-button
               >
+                补考勤
+              </el-button>
               <el-button
                 v-if="
                   scope.row.courseScheduleStatus == 'OVER' &&
@@ -320,8 +324,9 @@
                 "
                 type="text"
                 @click="onCallName(scope.row)"
-                >点名表</el-button
               >
+                点名表
+              </el-button>
               <!-- OVER -->
               <!-- <el-button
                 v-if="scope.row.courseScheduleStatus == 'OVER' && permission('courseSchedule/classStartDateAdjust1')"
@@ -337,8 +342,9 @@
                 "
                 type="text"
                 @click="resetClass(scope.row)"
-                >调整</el-button
               >
+                调整
+              </el-button>
               <!-- <el-button v-if="scope.row.courseScheduleStatus == 'NOT_START' && permission('courseSchedule/batchDelete')"
                          type="text"
                          @click="removeSingleClass(scope.row)">删除</el-button> -->
@@ -347,7 +353,6 @@
                          @click="resetType(scope.row)"
                          v-if="permission('teamDetail/resetTpye')&&scope.row.courseScheduleType!='HIGH_ONLINE'&&scope.row.courseScheduleType!='MUSIC_NETWORK'">类型调整</el-button> -->
               <el-button
-                type="text"
                 v-if="
                   scope.row.courseScheduleStatus == 'OVER' &&
                     !scope.row.settlementTime &&
@@ -355,9 +360,11 @@
                       'courseSchedule/cleanAttendancecourseSchedule/classStartDateAdjust/teamCourseListInfo'
                     )
                 "
+                type="text"
                 @click="clearAttend(scope.row)"
-                >清除考勤</el-button
               >
+                清除考勤
+              </el-button>
             </div>
           </template>
         </el-table-column>
@@ -379,10 +386,10 @@
       :visible.sync="courseVisible"
     >
       <el-form
-        :model="maskForm"
         v-if="courseVisible"
-        class="maskForm"
         ref="maskForm"
+        :model="maskForm"
+        class="maskForm"
         :rules="maskRules"
         label-position="right"
         label-width="120px"
@@ -390,23 +397,23 @@
       >
         <el-form-item label="主教老师" prop="teacher">
           <remote-search
-            :commit="'setTeachers'"
             v-model="maskForm.teacher"
+            :commit="'setTeachers'"
             :width="220"
           />
         </el-form-item>
         <el-form-item
-          label="助教老师"
           v-if="
             maskForm.courseScheduleType != 'MUSIC_NETWORK' &&
               maskForm.courseScheduleType != 'HIGH_ONLINE' &&
               $helpers.permission('is/teacher/findTeachers')
           "
+          label="助教老师"
           prop="assistant"
         >
           <remote-search
-            :commit="'setTeachers'"
             v-model="maskForm.assistant"
+            :commit="'setTeachers'"
             :width="220"
             :multiple="true"
           />
@@ -418,9 +425,9 @@
             :picker-options="beginDate()"
             value-format="yyyy-MM-dd"
             placeholder="选择日期"
-          ></el-date-picker>
+          />
         </el-form-item>
-        <el-form-item label="课程时长" v-if="courseVisible" prop="timer">
+        <el-form-item v-if="courseVisible" label="课程时长" prop="timer">
           <el-select v-model="maskForm.timer" @change="changeTime">
             <el-option
               v-for="(item, index) in typeTimeList"
@@ -428,25 +435,25 @@
               :disabled="item > baseTimer ? true : false"
               :value="parseInt(item)"
               :label="item"
-            ></el-option>
+            />
           </el-select>
         </el-form-item>
-        <el-form-item label="开始时间" v-if="courseVisible" prop="startTime">
+        <el-form-item v-if="courseVisible" label="开始时间" prop="startTime">
           <el-time-picker
-            placeholder="起始时间"
             v-model.trim="maskForm.startTime"
-            @change="changeStartTime"
+            placeholder="起始时间"
             format="HH:mm"
             value-format="HH:mm"
             :picker-options="{
               selectableRange: `${nowTime} - 23:30:00`
             }"
-          ></el-time-picker>
+            @change="changeStartTime"
+          />
         </el-form-item>
-        <el-form-item label="结束时间" v-if="courseVisible" prop="endTime">
+        <el-form-item v-if="courseVisible" label="结束时间" prop="endTime">
           <el-time-select
-            placeholder="结束时间"
             v-model.trim="maskForm.endTime"
+            placeholder="结束时间"
             disabled
             :picker-options="{
               start: '04:30',
@@ -454,15 +461,15 @@
               end: '23:30',
               minTime: maskForm.startTime
             }"
-          ></el-time-select>
+          />
         </el-form-item>
         <el-form-item
-          label="教学地点"
-          prop="schoolId"
           v-if="
             maskForm.courseScheduleType != 'HIGH_ONLINE' &&
               maskForm.courseScheduleType != 'MUSIC_NETWORK'
           "
+          label="教学地点"
+          prop="schoolId"
         >
           <el-select
             v-model.trim="maskForm.schoolId"
@@ -475,13 +482,17 @@
               :key="index"
               :value="item.id"
               :label="item.name"
-            ></el-option>
+            />
           </el-select>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="courseVisible = false">取 消</el-button>
-        <el-button type="primary" @click="submitResetClass">确 定</el-button>
+        <el-button @click="courseVisible = false">
+          取 消
+        </el-button>
+        <el-button type="primary" @click="submitResetClass">
+          确 定
+        </el-button>
       </div>
     </el-dialog>
     <el-dialog
@@ -504,12 +515,16 @@
               firstDayOfWeek: 1
             }"
             placeholder="选择日期"
-          ></el-date-picker>
+          />
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="timerVisible = false">取 消</el-button>
-        <el-button type="primary" @click="batchAdjustmentTime">确 定</el-button>
+        <el-button @click="timerVisible = false">
+          取 消
+        </el-button>
+        <el-button type="primary" @click="batchAdjustmentTime">
+          确 定
+        </el-button>
       </div>
     </el-dialog>
 
@@ -519,21 +534,23 @@
       :visible.sync="markAttendance.status"
     >
       <el-form>
-        <el-form-item label="签到状态">{{
-          markAttendance.dataInfo.signInStatus | attendanceType
-        }}</el-form-item>
-        <el-form-item label="签到时间">{{
-          markAttendance.dataInfo.signInTime
-        }}</el-form-item>
-        <el-form-item label="签退状态">{{
-          markAttendance.dataInfo.signOutStatus | attendanceOutType
-        }}</el-form-item>
-        <el-form-item label="签退时间">{{
-          markAttendance.dataInfo.signOutTime
-        }}</el-form-item>
+        <el-form-item label="签到状态">
+          {{ markAttendance.dataInfo.signInStatus | attendanceType }}
+        </el-form-item>
+        <el-form-item label="签到时间">
+          {{ markAttendance.dataInfo.signInTime }}
+        </el-form-item>
+        <el-form-item label="签退状态">
+          {{ markAttendance.dataInfo.signOutStatus | attendanceOutType }}
+        </el-form-item>
+        <el-form-item label="签退时间">
+          {{ markAttendance.dataInfo.signOutTime }}
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="markAttendance.status = false">取 消</el-button>
+        <el-button @click="markAttendance.status = false">
+          取 消
+        </el-button>
         <el-button
           type="primary"
           :disabled="
@@ -543,61 +560,57 @@
               : false
           "
           @click="batchAdjustmentTime"
-          >确定补卡</el-button
         >
+          确定补卡
+        </el-button>
       </div>
     </el-dialog>
 
     <el-dialog title="点名表" width="800px" :visible.sync="rollCall.status">
       <el-table :data="rollCall.gridData">
-        <el-table-column
-          align="center"
-          property="userName"
-          label="学员姓名"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          property="phone"
-          label="手机号"
-        ></el-table-column>
+        <el-table-column align="center" property="userName" label="学员姓名" />
+        <el-table-column align="center" property="phone" label="手机号" />
         <el-table-column
           align="center"
           property="subjectName"
           label="学员声部"
-        ></el-table-column>
+        />
         <el-table-column align="center" label="到课状态">
-          <template slot-scope="scope">{{
-            scope.row.status | studentCallName
-          }}</template>
+          <template slot-scope="scope">
+            {{ scope.row.status | studentCallName }}
+          </template>
         </el-table-column>
         <el-table-column
-          align="center"
           v-if="!rollCall.selectItem.settlementTime"
+          align="center"
           label="操作"
           width="240px"
         >
           <template slot-scope="scope">
             <el-button
               size="mini"
-              @click="onChangeRollCall('TRUANT', scope.row)"
               type="primary"
               round
-              >未到</el-button
+              @click="onChangeRollCall('TRUANT', scope.row)"
             >
+              未到
+            </el-button>
             <el-button
               size="mini"
-              @click="onChangeRollCall('LEAVE', scope.row)"
               type="warning"
               round
-              >请假</el-button
+              @click="onChangeRollCall('LEAVE', scope.row)"
             >
+              请假
+            </el-button>
             <el-button
               size="mini"
-              @click="onChangeRollCall('NORMAL', scope.row)"
               type="success"
               round
-              >到课</el-button
+              @click="onChangeRollCall('NORMAL', scope.row)"
             >
+              到课
+            </el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -612,7 +625,7 @@
     </el-dialog>
     <transStart
       ref="transStart"
-      :activeCourseList="activeCourseList"
+      :active-course-list="activeCourseList"
       @getList="getList"
     />
   </div>
@@ -641,7 +654,24 @@ import { getMusicGroupCourseScheduleStatistics } from "../api";
 import transStart from "./courseTransModals/transStart.vue";
 let that;
 export default {
-  name: "tcourseList",
+  name: "TcourseList",
+  components: {
+    pagination,
+    transStart
+  },
+  filters: {
+    studentCallName: value => {
+      let template = {
+        NORMAL: "到课",
+        TRUANT: "未到",
+        LEAVE: "请假",
+        DROP_OUT: "退学",
+        LATE: "迟到",
+        "": "未到"
+      };
+      return template[value];
+    }
+  },
   data() {
     return {
       baseTimer: 0, // 基础的分钟数
@@ -737,9 +767,25 @@ export default {
       }
     };
   },
-  components: {
-    pagination,
-    transStart
+  computed: {
+    nowTime() {
+      // console.log(that.maskForm.date)
+      let str = "06:00:00";
+      if (that.maskForm.date == dayjs(new Date()).format("YYYY-MM-DD")) {
+        str = dayjs(new Date()).format("HH:mm:ss");
+      }
+
+      return str;
+    }
+  },
+  watch: {
+    "maskForm.timer"(val) {
+      this.maskForm.endTime = addTimerFormMinute(
+        this.maskForm.date,
+        this.maskForm.startTime,
+        val
+      );
+    }
   },
   created() {
     that = this;
@@ -1246,39 +1292,6 @@ export default {
       }
       this.$refs.transStart.openDialog();
     }
-  },
-  filters: {
-    studentCallName: value => {
-      let template = {
-        NORMAL: "到课",
-        TRUANT: "未到",
-        LEAVE: "请假",
-        DROP_OUT: "退学",
-        LATE: "迟到",
-        "": "未到"
-      };
-      return template[value];
-    }
-  },
-  watch: {
-    "maskForm.timer"(val) {
-      this.maskForm.endTime = addTimerFormMinute(
-        this.maskForm.date,
-        this.maskForm.startTime,
-        val
-      );
-    }
-  },
-  computed: {
-    nowTime() {
-      // console.log(that.maskForm.date)
-      let str = "06:00:00";
-      if (that.maskForm.date == dayjs(new Date()).format("YYYY-MM-DD")) {
-        str = dayjs(new Date()).format("HH:mm:ss");
-      }
-
-      return str;
-    }
   }
 };
 </script>
@@ -1286,11 +1299,13 @@ export default {
 .cl-container {
   .topFrom {
     margin: 20px 30px 0;
+
     .classlist {
       display: flex;
       flex-direction: row;
       justify-content: flex-start;
       align-items: center;
+
       ul {
         li {
           list-style: none;
@@ -1298,18 +1313,22 @@ export default {
       }
     }
   }
+
   // .searchForm {
   //   // margin: 0 30px;
   // }
 }
+
 .btnWraps {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   div {
     margin-right: 20px;
   }
 }
+
 .maskForm {
   ::v-deep .el-input {
     width: 220px;

+ 20 - 54
src/views/teamDetail/components/courseTransModals/startPlanCourse.vue

@@ -1,68 +1,35 @@
 <template>
   <div>
-    <el-dialog
-      title="排课"
-      append-to-body
-      width="1050px"
-      :visible.sync="transPlanVisible"
-    >
+    <el-dialog title="排课" append-to-body width="1080px" :visible.sync="transPlanVisible">
       <div v-if="myForm && myForm.classs && myForm.classs['HIGH_ONLINE']">
-        <el-form
-          :model="myForm"
-          :inline="true"
-          ref="planform"
-          label-suffix=": "
-        >
+        <el-form :model="myForm" :inline="true" ref="planform" label-suffix=": ">
           <div v-if="!isMoreClass">
             <p class="title">
               <span style="font-weight: 600">线上基础技能课</span>
               可排课时长:<span style="color: red">{{
                 form.courseConvertSum.courseMinute
-              }}</span
-              >分钟
-              <span style="color: #333"
-                >已排课时长:
-                <span style="color: red"> {{ alltime }}分钟</span></span
-              >
+              }}</span>分钟
+              <span style="color: #333">已排课时长:
+                <span style="color: red"> {{ alltime }}分钟</span></span>
             </p>
 
-            <courseItem
-              :form="myForm.classs['HIGH_ONLINE']"
-              :teacherList="teacherList"
-              :surplustime="form.courseConvertSum.courseMinute"
-              :activeType="'HIGH_ONLINE'"
-              :coreid="myForm.coreTeacher"
-              :type="'HIGH_ONLINE'"
-              :prices="prices"
-              :holidays="holidays"
-              @setUserTime="setUserTime"
-            />
+            <courseItem :form="myForm.classs['HIGH_ONLINE']" :teacherList="teacherList"
+              :surplustime="form.courseConvertSum.courseMinute" :activeType="'HIGH_ONLINE'" :coreid="myForm.coreTeacher"
+              :type="'HIGH_ONLINE'" :prices="prices" :holidays="holidays" @setUserTime="setUserTime" />
           </div>
           <div v-else>
             <p class="title">
               <span style="font-weight: 600">线上基础技能课</span>
               可排课时:<span style="color: red">{{
                 form.courseConvertSum.courseNum
-              }}</span
-              >课时
-              <span style="color: #333"
-                >已排课时:
-                <span style="color: red"> {{ allNum }}课时</span></span
-              >
+              }}</span>课时
+              <span style="color: #333">已排课时:
+                <span style="color: red"> {{ allNum }}课时</span></span>
             </p>
-            <courseItem
-              :form="myForm.classs['HIGH_ONLINE']"
-              :teacherList="teacherList"
-              :surplustime="form.courseConvertSum.courseMinute"
-              :surplusCourseNum="form.courseConvertSum.courseNum"
-              :activeType="'HIGH_ONLINE'"
-              :coreid="myForm.coreTeacher"
-              :type="'HIGH_ONLINE'"
-              :prices="prices"
-              :holidays="holidays"
-              @setUserCourse="setUserCourse"
-              :isCourseNumType="true"
-            />
+            <courseItem :form="myForm.classs['HIGH_ONLINE']" :teacherList="teacherList"
+              :surplustime="form.courseConvertSum.courseMinute" :surplusCourseNum="form.courseConvertSum.courseNum"
+              :activeType="'HIGH_ONLINE'" :coreid="myForm.coreTeacher" :type="'HIGH_ONLINE'" :prices="prices"
+              :holidays="holidays" @setUserCourse="setUserCourse" :isCourseNumType="true" />
             <!-- setUserCourse -->
           </div>
           <!--
@@ -194,7 +161,7 @@ export default {
 
           if (this.alltime != this.form.courseConvertSum.courseMinute) {
             await this.$alert(
-              `<b>该班级剩余  <span style="color:red">${parseInt(this.form.courseConvertSum.courseMinute-this.alltime)}</span> 分钟时长未排课</b><br />所有班级排课完成且确认后,剩余时长将被清除,不可再次排课`,
+              `<b>该班级剩余  <span style="color:red">${parseInt(this.form.courseConvertSum.courseMinute - this.alltime)}</span> 分钟时长未排课</b><br />所有班级排课完成且确认后,剩余时长将被清除,不可再次排课`,
               {
                 confirmButtonText: "确定",
                 dangerouslyUseHTMLString: true,
@@ -207,8 +174,8 @@ export default {
             return;
           }
           if (this.allNum != this.form.courseConvertSum.courseNum) {
-        await  this.$alert(
-              `<b>该班级剩余  <span style="color:red">${parseInt(this.form.courseConvertSum.courseNum-this.allNum)}</span> 课时未排课</b><br />所有班级排课完成且确认后,剩余课时将被清除,不可再次排课`,
+            await this.$alert(
+              `<b>该班级剩余  <span style="color:red">${parseInt(this.form.courseConvertSum.courseNum - this.allNum)}</span> 课时未排课</b><br />所有班级排课完成且确认后,剩余课时将被清除,不可再次排课`,
               {
                 confirmButtonText: "确定",
                 dangerouslyUseHTMLString: true,
@@ -245,7 +212,7 @@ export default {
             ...this.myForm,
             userIds: this.myForm.studentList.join(","),
             type: key,
-            allowZeroSalary:true
+            allowZeroSalary: true
           };
           try {
             let arr = [data];
@@ -338,5 +305,4 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 12 - 47
src/views/teamDetail/components/modals/change-teacher.vue

@@ -1,56 +1,21 @@
 <template>
   <div>
-    <el-form
-      :model="form"
-      ref="form"
-      label-position="right"
-      label-width="80px;"
-      :inline="true"
-    >
-      <el-form-item
-        label="主教老师"
-        prop="coreTeacher"
-        :rules="[{ required: true, message: '请选择主教老师' }]"
-      >
-        <el-select
-          v-model.trim="form.coreTeacher"
-          placeholder="请选择主教老师"
-          clearable
-          filterable
-        >
-          <el-option
-            v-for="(item, index) in teacherList"
-            :key="index"
-            :label="item.realName"
-            :value="String(item.id)"
-          >
-          <span style="float: left">{{ item.realName }}</span>
+    <el-form :model="form" ref="form" label-position="right" label-width="80px;" :inline="true">
+      <el-form-item label="主教老师" prop="coreTeacher" :rules="[{ required: true, message: '请选择主教老师' }]">
+        <el-select v-model.trim="form.coreTeacher" placeholder="请选择主教老师" clearable filterable>
+          <el-option v-for="(item, index) in teacherList" :key="index" :label="item.realName" :value="String(item.id)">
+            <span style="float: left">{{ item.realName }}</span>
             <span style="float: right; color: #8492a6; font-size: 13px">{{
               String(item.id)
             }}</span>
           </el-option>
         </el-select>
       </el-form-item>
-      <el-form-item
-        label="助教老师"
-        prop="assistant"
-        v-if="type!='HIGH'&&type!='HIGH_ONLINE'&&type!='MUSIC_NETWORK'"
-      >
-        <el-select
-          v-model.trim="form.assistant"
-          placeholder="请选择助教老师"
-          filterable
-          clearable
-          collapse-tags
-          multiple
-        >
-          <el-option
-            v-for="(item, index) in cooperationList"
-            :key="index"
-            :label="item.realName"
-            :value="item.id"
-          >
-          <span style="float: left">{{ item.realName }}</span>
+      <el-form-item label="助教老师" prop="assistant"
+        v-if="type != 'HIGH' && type != 'HIGH_ONLINE' && type != 'MUSIC_NETWORK' && $helpers.permission('is/teacher/findTeachers')">
+        <el-select v-model.trim="form.assistant" placeholder="请选择助教老师" filterable clearable collapse-tags multiple>
+          <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.realName" :value="item.id">
+            <span style="float: left">{{ item.realName }}</span>
             <span style="float: right; color: #8492a6; font-size: 13px">{{
               String(item.id)
             }}</span>
@@ -92,10 +57,10 @@ export default {
     }
   },
   methods: {
-    subresetTeacher () {
+    subresetTeacher() {
       this.$refs.form.validate(some => {
         if (some) {
-          this.$emit('submited', {...this.form});
+          this.$emit('submited', { ...this.form });
         } else {
           return;
         }

+ 29 - 66
src/views/teamDetail/components/modals/class-new-info.vue

@@ -1,22 +1,11 @@
 <template>
   <div>
-    <el-form
-      :model="maskForm"
-      class="maskForm"
-      ref="maskForm"
-      :rules="maskRules"
-      label-position="right"
-      label-width="120px"
-      :inline="true"
-    >
+    <el-form :model="maskForm" class="maskForm" ref="maskForm" :rules="maskRules" label-position="right"
+      label-width="120px" :inline="true">
       <el-row>
         <el-col :span="12">
           <el-form-item label="课程名称" prop="name">
-            <el-input
-              v-model.trim="maskForm.name"
-              style="width: 220px !important"
-              placeholder="请输入课程名称"
-            ></el-input>
+            <el-input v-model.trim="maskForm.name" style="width: 220px !important" placeholder="请输入课程名称"></el-input>
           </el-form-item>
         </el-col>
         <!-- <el-col :span="12">
@@ -32,49 +21,24 @@
       <el-row>
         <el-col :span="12">
           <el-form-item label="主教老师" prop="teacher">
-            <el-select
-              v-model.trim="maskForm.teacher"
-              style="width: 220px !important"
-              clearable
-              filterable
-            >
-              <el-option
-                v-for="(item, index) in teacherList"
-                :key="index"
-                :value="item.id"
-                :label="item.realName"
-              ></el-option>
+            <el-select v-model.trim="maskForm.teacher" style="width: 220px !important" clearable filterable>
+              <el-option v-for="(item, index) in teacherList" :key="index" :value="item.id"
+                :label="item.realName"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
-          <el-form-item
-            label="助教老师"
-            prop="assistant"
-          >
-            <el-select
-              v-model.trim="maskForm.assistant"
-              style="width: 220px !important"
-              clearable
-              filterable
-              multiple
-              collapse-tags
-            >
-              <el-option
-                v-for="(item, index) in teacherList"
-                :key="index"
-                :value="item.id"
-                :label="item.realName"
-              ></el-option>
+        <el-col :span="12" v-if="$helpers.permission('is/teacher/findTeachers')">
+          <el-form-item label="助教老师" prop="assistant">
+            <el-select v-model.trim="maskForm.assistant" style="width: 220px !important" clearable filterable multiple
+              collapse-tags>
+              <el-option v-for="(item, index) in teacherList" :key="index" :value="item.id"
+                :label="item.realName"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
       </el-row>
-       <viewStudentList
-        :list="studentList"
-        :isChiose="false"
-        :showOk='false'/>
-  
+      <viewStudentList :list="studentList" :isChiose="false" :showOk='false' />
+
     </el-form>
   </div>
 </template>
@@ -82,8 +46,8 @@
 import selects from '@/store/modules/selects';
 import viewStudentList from "./view-student-list";
 export default {
-  props: ["musicGroupPaymentCalenderDtos",'form'],
-  components:{viewStudentList},
+  props: ["musicGroupPaymentCalenderDtos", 'form'],
+  components: { viewStudentList },
   data() {
     return {
       maskForm: {
@@ -98,26 +62,25 @@ export default {
         ],
 
       },
-      studentList:[],
-      teacherList:[]
+      studentList: [],
+      teacherList: []
     };
   },
-  mounted(){
-      this.$store.dispatch('setTeachers')
-      this.teacherList = this.selects.teachers
-      this.studentList = []
-      this.form.classList.forEach(classes=>{
-          this.studentList = this.studentList.concat(classes.studentList)
-      })
+  mounted() {
+    this.$store.dispatch('setTeachers')
+    this.teacherList = this.selects.teachers
+    this.studentList = []
+    this.form.classList.forEach(classes => {
+      this.studentList = this.studentList.concat(classes.studentList)
+    })
 
 
   },
-  methods:{
-      submitResetClass(){
+  methods: {
+    submitResetClass() {
 
-      }
+    }
   }
 };
 </script>
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 16 - 61
src/views/teamDetail/components/modals/class-pay-list.vue

@@ -1,75 +1,29 @@
 <template>
   <div>
     <el-alert title="课程时长设置" type="info" :closable="false"> </el-alert>
-    <el-form
-      :model="courseTimeForm"
-      ref="courseTimeForms"
-      :inline="true"
-      style="margin-top: 20px"
-    >
-      <el-form-item
-        v-for="(item, index) in courseTimeForm.timeList"
-        :key="index"
-        :label="item.label"
-        :prop="'timeList.' + index + '.value'"
-        :rules="[
+    <el-form :model="courseTimeForm" ref="courseTimeForms" :inline="true" style="margin-top: 20px">
+      <el-form-item v-for="(item, index) in courseTimeForm.timeList" :key="index" :label="item.label"
+        :prop="'timeList.' + index + '.value'" :rules="[
           { required: true, message: '请选择课程时长', trigger: 'blur' },
-        ]"
-        label-width="100px"
-      >
-        <el-select
-          clearable
-          v-model="item.value"
-          placeholder="请选择课程时长"
-          @change="(val) => setCourseTime(item, val)"
-        >
-          <el-option
-            v-for="(time, index) in item.list"
-            :key="index"
-            :value="time"
-            :label="time"
-          ></el-option>
+        ]" label-width="100px">
+        <el-select clearable v-model="item.value" placeholder="请选择课程时长" @change="(val) => setCourseTime(item, val)">
+          <el-option v-for="(time, index) in item.list" :key="index" :value="time" :label="time"></el-option>
         </el-select>
       </el-form-item>
     </el-form>
-    <classPayListItem
-      :payInfo="payInfo"
-      ref="base"
-      :courseTypesByType="courseTypesByType"
-      v-for="(item, index) in form.classList"
-      :key="index"
-      :item="item"
-      :index="index"
-    />
+    <classPayListItem :payInfo="payInfo" ref="base" :courseTypesByType="courseTypesByType"
+      v-for="(item, index) in form.classList" :key="index" :item="item" :index="index" />
     <div slot="footer" class="dialog-footer">
       <el-button @click="close">上一步</el-button>
       <el-button type="primary" @click="gotoLast">下一步</el-button>
     </div>
     <div style="clear: both"></div>
-    <el-dialog
-      :visible.sync="showLastVisable"
-      title="结果确认"
-      append-to-body
-      width="800px"
-    >
-      <classSetting
-        :form="form"
-        ref="classSetting"
-        :musicGroupPaymentCalenderDtos="musicGroupPaymentCalenderDtos"
-        :classType="5"
-        :musicGroupId="teamid"
-        :activeType="activeType"
-        :courseTypeList="courseTypeList"
-        :studentSubmitedData="studentSubmitedData"
-        :classIdList="classIdList"
-        :classGroupStudents="classGroupStudents"
-        :selectPrices="classCourseMinuteMap"
-        :classCouresTimeList="classCouresTimeList"
-        :teacherList="teacherList"
-        :cooperationList="teacherList"
-        @close="showLastVisable = false"
-        v-if="showLastVisable"
-      />
+    <el-dialog :visible.sync="showLastVisable" title="结果确认" append-to-body width="800px">
+      <classSetting :form="form" ref="classSetting" :musicGroupPaymentCalenderDtos="musicGroupPaymentCalenderDtos"
+        :classType="5" :musicGroupId="teamid" :activeType="activeType" :courseTypeList="courseTypeList"
+        :studentSubmitedData="studentSubmitedData" :classIdList="classIdList" :classGroupStudents="classGroupStudents"
+        :selectPrices="classCourseMinuteMap" :classCouresTimeList="classCouresTimeList" :teacherList="teacherList"
+        :cooperationList="teacherList" @close="showLastVisable = false" v-if="showLastVisable" />
       <div slot="footer" class="dialog-footer">
         <el-button @click="showLastVisable = false">上一步</el-button>
         <el-button type="primary" @click="submitResetClass">确 定</el-button>
@@ -136,7 +90,7 @@ export default {
         this.organCourseTime = res.data;
 
         this.setTimeList(res.data);
-      } catch {}
+      } catch { }
     });
   },
   methods: {
@@ -262,6 +216,7 @@ export default {
   display: inline-block;
   color: #409eff;
 }
+
 .dialog-footer {
   text-align: right;
 }

+ 8 - 31
src/views/teamDetail/components/modals/classList-group.vue

@@ -1,16 +1,8 @@
 <template>
   <div>
     <el-form :model="form" ref="form">
-      <classListItem
-        v-for="(item, index) in form.classList"
-        :key="index"
-        :index="index"
-        :item="item"
-        @deteleClass="deteleClass"
-        :form="form"
-        :classList="activeClassList"
-        @filterClassList="filterClassList"
-      />
+      <classListItem v-for="(item, index) in form.classList" :key="index" :index="index" :item="item"
+        @deteleClass="deteleClass" :form="form" :classList="activeClassList" @filterClassList="filterClassList" />
     </el-form>
     <!-- <el-button
       icon="el-icon-circle-plus-outline"
@@ -22,24 +14,10 @@
       :disabled="form.classList.length >= classList.length"
       >添加班级</el-button
     > -->
-    <el-dialog
-      :visible.sync="showSecondVisable"
-      title="缴费信息设置"
-      append-to-body
-      width="800px"
-    >
-      <classPayList
-        :classIdList="classIdList"
-        :addCourseType="addCourseType"
-        :courseTypesByType="courseTypesByType"
-        :classMaxCourseNumMap="classMaxCourseNumMap"
-        :form="form"
-        :teacherList="teacherList"
-        :payInfo.sync="payInfo"
-        @resetPayInfo="resetPayInfo"
-        @close="showSecondVisable = false"
-        v-if="showSecondVisable"
-      />
+    <el-dialog :visible.sync="showSecondVisable" title="缴费信息设置" append-to-body width="800px">
+      <classPayList :classIdList="classIdList" :addCourseType="addCourseType" :courseTypesByType="courseTypesByType"
+        :classMaxCourseNumMap="classMaxCourseNumMap" :form="form" :teacherList="teacherList" :payInfo.sync="payInfo"
+        @resetPayInfo="resetPayInfo" @close="showSecondVisable = false" v-if="showSecondVisable" />
     </el-dialog>
   </div>
 </template>
@@ -109,7 +87,7 @@ export default {
             this.addCourseType = result.data.groupTypeSet;
             this.classMaxCourseNumMap = result.data.classMaxCourseNumMap;
             this.showSecondVisable = true;
-          } catch {}
+          } catch { }
         }
       });
     },
@@ -171,5 +149,4 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 85 - 224
src/views/teamDetail/components/modals/classroom-setting-item.vue

@@ -11,33 +11,15 @@
       </el-radio-group>
     </el-form-item> -->
 
-    <el-table
-      v-if="form && form.cycle && form.cycle.length > 0"
-      :data="form.cycle"
-      :show-header="false"
-    >
+    <el-table v-if="form && form.cycle && form.cycle.length > 0" :data="form.cycle" :show-header="false">
       <el-table-column>
         <template slot-scope="scope">
           <div>
-            <el-form-item
-              :prop="
-                'classs.' + type + '.cycle.' + scope.$index + '.coreTeacher'
-              "
-              label-width="88px"
-              :rules="[{ required: true, message: '请选择主教老师' }]"
-            >
-              <el-select
-                v-model.trim="scope.row.coreTeacher"
-                placeholder="请选择主教老师"
-                clearable
-                filterable
-              >
-                <el-option
-                  v-for="(item, index) in teacherList"
-                  :key="index"
-                  :label="item.realName"
-                  :value="String(item.id)"
-                >
+            <el-form-item :prop="'classs.' + type + '.cycle.' + scope.$index + '.coreTeacher'
+              " label-width="88px" :rules="[{ required: true, message: '请选择主教老师' }]">
+              <el-select v-model.trim="scope.row.coreTeacher" placeholder="请选择主教老师" clearable filterable>
+                <el-option v-for="(item, index) in teacherList" :key="index" :label="item.realName"
+                  :value="String(item.id)">
                   <span style="float: left">{{ item.realName }}</span>
                   <span style="float: right; color: #8492a6; font-size: 13px">{{
                     String(item.id)
@@ -45,31 +27,17 @@
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item
-              prop="assistant"
-              v-if="
-                activeType != 'HIGH' &&
-                activeType != 'HIGH_ONLINE' &&
-                activeType != 'MUSIC_NETWORK' &&
-                type != 'HIGH' &&
-                type != 'HIGH_ONLINE' &&
-                type != 'MUSIC_NETWORK'
-              "
-            >
-              <el-select
-                v-model.trim="scope.row.assistant"
-                placeholder="请选择助教老师"
-                filterable
-                clearable
-                multiple
-                collapse-tags
-              >
-                <el-option
-                  v-for="(item, index) in cooperationList"
-                  :key="index"
-                  :label="item.realName"
-                  :value="item.id"
-                >
+            <el-form-item prop="assistant" v-if="activeType != 'HIGH' &&
+              activeType != 'HIGH_ONLINE' &&
+              activeType != 'MUSIC_NETWORK' &&
+              type != 'HIGH' &&
+              type != 'HIGH_ONLINE' &&
+              type != 'MUSIC_NETWORK' &&
+              $helpers.permission('is/teacher/findTeachers')
+              ">
+              <el-select v-model.trim="scope.row.assistant" placeholder="请选择助教老师" filterable clearable multiple
+                collapse-tags>
+                <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.realName" :value="item.id">
                   <span style="float: left">{{ item.realName }}</span>
                   <span style="float: right; color: #8492a6; font-size: 13px">{{
                     String(item.id)
@@ -77,203 +45,96 @@
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item
-              :prop="'classs.' + type + '.cycle.' + scope.$index + '.time'"
-              :rules="[
-                { required: true, message: '请选择课程时长', trigger: 'blur' },
-              ]"
-              inline-message
-            >
-              <el-select
-                v-model.trim="scope.row.time"
-                style="width: 180px !important"
-                placeholder="请选择课程时长"
-                clearable
-                :disabled="!!selectPrice"
-                @change="
-                  (val) => {
-                    startTimeChange(scope, val);
-                  }
-                "
-                filterable
-              >
-                <el-option
-                  v-for="(item, index) in pricesArray"
-                  :key="index"
-                  :disabled="
-                    surplustime + (parseFloat(scope.row.time) || 0) < item
-                  "
-                  :label="item"
-                  :value="item"
-                >
+            <el-form-item :prop="'classs.' + type + '.cycle.' + scope.$index + '.time'" :rules="[
+              { required: true, message: '请选择课程时长', trigger: 'blur' },
+            ]" inline-message>
+              <el-select v-model.trim="scope.row.time" style="width: 180px !important" placeholder="请选择课程时长" clearable
+                :disabled="!!selectPrice" @change="(val) => {
+                  startTimeChange(scope, val);
+                }
+                  " filterable>
+                <el-option v-for="(item, index) in pricesArray" :key="index" :disabled="surplustime + (parseFloat(scope.row.time) || 0) < item
+                  " :label="item" :value="item">
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item
-              :prop="
-                'classs.' + type + '.cycle.' + scope.$index + '.expectCourseNum'
-              "
-              :rules="[
-                { required: true, message: '请输入预计课时数' },
-                { pattern: /^\+?[1-9]\d*$/, message: '请输入大于0的正整数' },
-                { validator: validateNum },
-              ]"
-              inline-message
-            >
-              <el-input
-                style="width: 180px !important"
-                type="number"
-                v-model.trim="scope.row.expectCourseNum"
-                placeholder="请输入预计课数"
-                @input="
-                  (val) => {
-                    getUseTime(scope.row);
-                  }
-                "
-              >
+            <el-form-item :prop="'classs.' + type + '.cycle.' + scope.$index + '.expectCourseNum'
+              " :rules="[
+    { required: true, message: '请输入预计课时数' },
+    { pattern: /^\+?[1-9]\d*$/, message: '请输入大于0的正整数' },
+    { validator: validateNum },
+  ]" inline-message>
+              <el-input style="width: 180px !important" type="number" v-model.trim="scope.row.expectCourseNum"
+                placeholder="请输入预计课数" @input="(val) => {
+                  getUseTime(scope.row);
+                }
+                  ">
               </el-input>
             </el-form-item>
-            <el-form-item
-              inline-message
-              :rules="[{ required: true, message: '请选择循环周期' }]"
-              :prop="'classs.' + type + '.cycle.' + scope.$index + '.dayOfWeek'"
-            >
-              <el-select
-                v-model.trim="scope.row.dayOfWeek"
-                style="width: 180px !important"
-                placeholder="请选择循环周期"
-                clearable
-                filterable
-                @change="
-                  (val) => {
-                    getUseTime(scope.row);
-                  }
-                "
-              >
-                <el-option
-                  v-for="(item, index) in weekDateList"
-                  :key="index"
-                  :label="item.label"
-                  :value="item.value"
-                >
+            <el-form-item inline-message :rules="[{ required: true, message: '请选择循环周期' }]"
+              :prop="'classs.' + type + '.cycle.' + scope.$index + '.dayOfWeek'">
+              <el-select v-model.trim="scope.row.dayOfWeek" style="width: 180px !important" placeholder="请选择循环周期"
+                clearable filterable @change="(val) => {
+                  getUseTime(scope.row);
+                }
+                  ">
+                <el-option v-for="(item, index) in weekDateList" :key="index" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item
-              :prop="
-                'classs.' + type + '.cycle.' + scope.$index + '.startClassTime'
-              "
-              :rules="[{ required: true, message: '请选择开始时间' }]"
-              inline-message
-            >
-              <el-time-picker
-                style="width: 180px !important"
-                v-model.trim="scope.row.startClassTime"
-                format="HH:mm"
-                value-format="HH:mm"
-                placeholder="请选择开始时间"
-                @change="timeChange(scope.row)"
-                :picker-options="{
+            <el-form-item :prop="'classs.' + type + '.cycle.' + scope.$index + '.startClassTime'
+              " :rules="[{ required: true, message: '请选择开始时间' }]" inline-message>
+              <el-time-picker style="width: 180px !important" v-model.trim="scope.row.startClassTime" format="HH:mm"
+                value-format="HH:mm" placeholder="请选择开始时间" @change="timeChange(scope.row)" :picker-options="{
                   selectableRange: ['06:00:00 - 23:59:59'],
-                }"
-              >
+                }">
               </el-time-picker>
             </el-form-item>
-            <el-form-item
-              :prop="
-                'classs.' + type + '.cycle.' + scope.$index + '.endClassTime'
-              "
-              inline-message
-            >
-              <el-time-picker
-                style="width: 180px !important"
-                v-model.trim="scope.row.endClassTime"
-                format="HH:mm"
-                disabled
-                value-format="HH:mm"
-                placeholder="请选择结束时间"
-                :picker-options="{
+            <el-form-item :prop="'classs.' + type + '.cycle.' + scope.$index + '.endClassTime'
+              " inline-message>
+              <el-time-picker style="width: 180px !important" v-model.trim="scope.row.endClassTime" format="HH:mm"
+                disabled value-format="HH:mm" placeholder="请选择结束时间" :picker-options="{
                   selectableRange: [
                     scope.row.startClassTime + ':00 - 23:59:59',
                   ],
-                }"
-              >
+                }">
               </el-time-picker>
             </el-form-item>
-            <el-form-item
-              :prop="'classs.' + type + '.cycle.' + scope.$index + '.holiday'"
-              :rules="[{ required: true, message: '请选择是否跳过节假日' }]"
-              inline-message
-            >
-              <el-select
-                v-model.trim="scope.row.holiday"
-                style="width: 180px !important"
-                placeholder="是否跳过节假日"
-                filterable
-                @change="holidayChange(scope.row)"
-              >
+            <el-form-item :prop="'classs.' + type + '.cycle.' + scope.$index + '.holiday'"
+              :rules="[{ required: true, message: '请选择是否跳过节假日' }]" inline-message>
+              <el-select v-model.trim="scope.row.holiday" style="width: 180px !important" placeholder="是否跳过节假日" filterable
+                @change="holidayChange(scope.row)">
                 <el-option label="是" :value="true"></el-option>
                 <el-option label="否" :value="false"> </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item
-              inline-message
-              :prop="'classs.' + type + '.cycle.' + scope.$index + '.startDate'"
-              :rules="[{ required: true, message: '请选择排课起始日期' }]"
-            >
-              <el-date-picker
-                v-model.trim="scope.row.startDate"
-                :picker-options="pickerOptions"
-                style="width: 180px !important"
-                type="date"
-                value-format="yyyy-MM-dd"
-                placeholder="排课起始日期"
-                @change="
-                  (val) => {
-                    changeStartDate(val, scope.row);
-                  }
-                "
-              >
+            <el-form-item inline-message :prop="'classs.' + type + '.cycle.' + scope.$index + '.startDate'"
+              :rules="[{ required: true, message: '请选择排课起始日期' }]">
+              <el-date-picker v-model.trim="scope.row.startDate" :picker-options="pickerOptions"
+                style="width: 180px !important" type="date" value-format="yyyy-MM-dd" placeholder="排课起始日期" @change="(val) => {
+                  changeStartDate(val, scope.row);
+                }
+                  ">
               </el-date-picker>
             </el-form-item>
-            <el-form-item
-              inline-message
-              :prop="'classs.' + type + '.cycle.' + scope.$index + '.endDate'"
-              :rules="[
-                { required: true, message: '请选择排课结束日期' },
-                { required: true, trigger: 'change', validator: validatePass },
-              ]"
-            >
-              <el-date-picker
-                v-model.trim="scope.row.endDate"
-                :disabled="true"
-                :picker-options="pickerOptions"
-                style="width: 180px !important"
-                type="date"
-                value-format="yyyy-MM-dd"
-                placeholder="排课结束日期"
-              >
+            <el-form-item inline-message :prop="'classs.' + type + '.cycle.' + scope.$index + '.endDate'" :rules="[
+              { required: true, message: '请选择排课结束日期' },
+              { required: true, trigger: 'change', validator: validatePass },
+            ]">
+              <el-date-picker v-model.trim="scope.row.endDate" :disabled="true" :picker-options="pickerOptions"
+                style="width: 180px !important" type="date" value-format="yyyy-MM-dd" placeholder="排课结束日期">
               </el-date-picker>
             </el-form-item>
 
-            <i
-              @click="remove(scope.$index, scope)"
-              v-if="form.cycle.length > 1"
-              class="close-icon el-icon-circle-close"
-            ></i>
+            <i @click="remove(scope.$index, scope)" v-if="form.cycle.length > 1"
+              class="close-icon el-icon-circle-close"></i>
           </div>
         </template>
       </el-table-column>
     </el-table>
-    <el-button
-      icon="el-icon-circle-plus-outline"
-      type="info"
-      plain
-      :disabled="surplustime < (selectPrice || 0 || Math.min(...pricesArray))"
-      @click="create"
-      style="margin-top: 10px; width: 100%"
-      >添加循环</el-button
-    >
+    <el-button icon="el-icon-circle-plus-outline" type="info" plain
+      :disabled="surplustime < (selectPrice || 0 || Math.min(...pricesArray))" @click="create"
+      style="margin-top: 10px; width: 100%">添加循环</el-button>
   </div>
 </template>
 <script>
@@ -407,7 +268,7 @@ export default {
         this.$set(item.row, "endClassTime", "");
       }
       if (val) {
-        console.log('isCourseNumType',this.isCourseNumType)
+        console.log('isCourseNumType', this.isCourseNumType)
         if (!this.isCourseNumType) {
           let activeTime = val * Math.max(item.row.expectCourseNum || 0, 0);
           if (this.endSchoolTerm) {
@@ -423,14 +284,14 @@ export default {
               parseInt((this.surplustime - this.useTime + activeTime) / val)
             );
           }
-        }else{
+        } else {
           console.log('课时排课')
-          let num =  parseInt((this.surplusCourseNum -  this.useCourseNum))>0? parseInt((this.surplusCourseNum -  this.useCourseNum)):0
+          let num = parseInt((this.surplusCourseNum - this.useCourseNum)) > 0 ? parseInt((this.surplusCourseNum - this.useCourseNum)) : 0
           this.$set(
-              item.row,
-              "expectCourseNum",
-              parseInt(num)
-            );
+            item.row,
+            "expectCourseNum",
+            parseInt(num)
+          );
 
         }
         // this.surplusTime

+ 23 - 77
src/views/teamDetail/components/modals/classroom-setting-merge.vue

@@ -1,45 +1,14 @@
 <template>
   <div>
-    <el-form
-      :model="form"
-      inline
-      ref="form"
-      label-suffix=": "
-      label-width="130px"
-    >
+    <el-form :model="form" inline ref="form" label-suffix=": " label-width="130px">
       <el-row v-if="classType == 5">
-        <el-form-item
-          label="班级名称"
-          prop="className"
-          label-width="88px"
-          :rules="[{ required: true, message: '请填写班级名称' }]"
-        >
-          <el-input
-            v-model.trim="form.className"
-            placeholder="请输入班级名称"
-            style="width: 180px"
-          ></el-input>
+        <el-form-item label="班级名称" prop="className" label-width="88px" :rules="[{ required: true, message: '请填写班级名称' }]">
+          <el-input v-model.trim="form.className" placeholder="请输入班级名称" style="width: 180px"></el-input>
         </el-form-item>
       </el-row>
-      <el-form-item
-        label="主教老师"
-        prop="coreTeacher"
-        label-width="88px"
-        :rules="[{ required: true, message: '请选择主教老师' }]"
-      >
-        <el-select
-          v-model.trim="form.coreTeacher"
-          placeholder="请选择主教老师"
-          clearable
-          filterable
-          @change="changecoreTeacher"
-        >
-          <el-option
-            v-for="(item, index) in teacherList"
-            :key="index"
-            :label="item.realName"
-            :value="String(item.id)"
-          >
+      <el-form-item label="主教老师" prop="coreTeacher" label-width="88px" :rules="[{ required: true, message: '请选择主教老师' }]">
+        <el-select v-model.trim="form.coreTeacher" placeholder="请选择主教老师" clearable filterable @change="changecoreTeacher">
+          <el-option v-for="(item, index) in teacherList" :key="index" :label="item.realName" :value="String(item.id)">
             <span style="float: left">{{ item.realName }}</span>
             <span style="float: right; color: #8492a6; font-size: 13px">{{
               String(item.id)
@@ -48,29 +17,14 @@
         </el-select>
         <!-- <remote-search :commit="'setTeachers'" v-model="form.coreTeacher"  /> -->
       </el-form-item>
-      <el-form-item
-        label="助教老师"
-        prop="assistant"
-        v-if="
-          activeType != 'HIGH' &&
-          activeType != 'HIGH_ONLINE' &&
-          activeType != 'MUSIC_NETWORK'
-        "
-      >
+      <el-form-item label="助教老师" prop="assistant" v-if="activeType != 'HIGH' &&
+        activeType != 'HIGH_ONLINE' &&
+        activeType != 'MUSIC_NETWORK' &&
+        $helpers.permission('is/teacher/findTeachers')
+        ">
         <!-- <remote-search :commit="'setTeachers'" v-model="form.assistant"  :multiple='true'/> -->
-        <el-select
-          v-model.trim="form.assistant"
-          placeholder="请选择助教老师"
-          filterable
-          clearable
-          multiple
-        >
-          <el-option
-            v-for="(item, index) in cooperationList"
-            :key="index"
-            :label="item.realName"
-            :value="item.id"
-          >
+        <el-select v-model.trim="form.assistant" placeholder="请选择助教老师" filterable clearable multiple>
+          <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.realName" :value="item.id">
             <span style="float: left">{{ item.realName }}</span>
             <span style="float: right; color: #8492a6; font-size: 13px">{{
               String(item.id)
@@ -95,32 +49,21 @@
       </el-form-item> -->
       <empty v-if="isEmpty" desc="暂无可排课时长" />
       <el-collapse v-model="collapses" @change="collapseChange">
-        <el-collapse-item
-          v-for="(item, key, index) in form.classs"
-          :name="index"
-          :key="key"
-        >
+        <el-collapse-item v-for="(item, key, index) in form.classs" :name="index" :key="key">
           <template #title>
             <p class="title">
               {{ courseTypeListByName[key] }},
               <span>可排课时长{{ musicCourseSettings[key] }}分钟</span>
             </p>
           </template>
-          <courseItem
-            :surplustime="surplustime[key]"
-            :type="key"
-            :form="item"
-            :prices="prices"
-            :selectPrice="selectPrices ? selectPrices[key] : ''"
-          />
+          <courseItem :surplustime="surplustime[key]" :type="key" :form="item" :prices="prices"
+            :selectPrice="selectPrices ? selectPrices[key] : ''" />
         </el-collapse-item>
       </el-collapse>
     </el-form>
     <div slot="footer" class="dialog-footer" v-if="classType != 5">
       <el-button @click="$listeners.close">取 消</el-button>
-      <el-button type="primary" :disabled="isEmpty" @click="submit"
-        >确 定</el-button
-      >
+      <el-button type="primary" :disabled="isEmpty" @click="submit">确 定</el-button>
     </div>
   </div>
 </template>
@@ -243,7 +186,7 @@ export default {
         this.$bus.$emit("showguide", ["teamCourseTimer"]);
         return;
       }
-    } catch (error) {}
+    } catch (error) { }
     this.setCourseTypeListByName();
     this.formatClasss();
   },
@@ -425,7 +368,7 @@ export default {
     collapseChange(val) {
       this.collapses = val;
     },
-    changecoreTeacher(val) {},
+    changecoreTeacher(val) { },
   },
 };
 </script>
@@ -435,15 +378,18 @@ export default {
   display: block;
   text-align: right;
 }
+
 .title {
   font-size: 16px;
   padding: 10px;
   font-weight: normal;
-  > span {
+
+  >span {
     color: tomato;
     font-size: 14px;
   }
 }
+
 .tag {
   margin-right: 5px;
   cursor: pointer;

+ 132 - 66
src/views/teamDetail/components/modals/select-student.vue

@@ -1,6 +1,12 @@
 <template>
   <div>
-    <el-form :model="form" ref="form" label-suffix=": " inline label-width="90px">
+    <el-form
+      :model="form"
+      ref="form"
+      label-suffix=": "
+      inline
+      label-width="90px"
+    >
       <el-row>
         <el-col :span="12">
           <el-form-item
@@ -22,20 +28,26 @@
                 :value="String(item.id)"
               >
                 <span style="float: left">{{ item.realName }}</span>
-            <span style="float: right; color: #8492a6; font-size: 13px">{{
-              String(item.id)
-            }}</span>
+                <span style="float: right; color: #8492a6; font-size: 13px">{{
+                  String(item.id)
+                }}</span>
               </el-option>
             </el-select>
             <!-- <remote-search :commit="'setTeachers'" v-model="form.coreTeacher"  /> -->
           </el-form-item>
         </el-col>
         <!-- :offset="4" -->
-        <el-col :span="12" >
+        <el-col :span="12">
           <el-form-item
             label="助教老师"
             prop="assistant"
-            v-if="!isOnlyChangeUser && activeType!='HIGH'&&activeType!='HIGH_ONLINE'&&activeType!='MUSIC_NETWORK'"
+            v-if="
+              !isOnlyChangeUser &&
+                activeType != 'HIGH' &&
+                activeType != 'HIGH_ONLINE' &&
+                activeType != 'MUSIC_NETWORK' &&
+                $helpers.permission('is/teacher/findTeachers')
+            "
           >
             <!-- <remote-search :commit="'setTeachers'" v-model="form.assistant"  :multiple='true'/> -->
             <el-select
@@ -53,9 +65,9 @@
                 :value="item.id"
               >
                 <span style="float: left">{{ item.realName }}</span>
-            <span style="float: right; color: #8492a6; font-size: 13px">{{
-              String(item.id)
-            }}</span>
+                <span style="float: right; color: #8492a6; font-size: 13px">{{
+                  String(item.id)
+                }}</span>
               </el-option>
             </el-select>
           </el-form-item>
@@ -67,7 +79,7 @@
             label="班级名称"
             prop="name"
             :rules="[
-              { required: true, message: '请输入班级名称', trigger: 'blur' },
+              { required: true, message: '请输入班级名称', trigger: 'blur' }
             ]"
           >
             <el-input
@@ -78,8 +90,17 @@
           </el-form-item>
         </el-col>
         <!-- :offset="showName ? 4 : 0" -->
-        <el-col :span="12" >
-          <el-form-item :label="isOnlyChangeUser?'声部筛选':'声部'" style="margin-right: 0;" prop="sound"  :rules="(isOnlyChangeUser||activeType == 'MUSIC_NETWORK')?null:[{ required: true, message: '请选择声部',trigger: 'blur' }]">
+        <el-col :span="12">
+          <el-form-item
+            :label="isOnlyChangeUser ? '声部筛选' : '声部'"
+            style="margin-right: 0;"
+            prop="sound"
+            :rules="
+              isOnlyChangeUser || activeType == 'MUSIC_NETWORK'
+                ? null
+                : [{ required: true, message: '请选择声部', trigger: 'blur' }]
+            "
+          >
             <select-all
               v-model="form.sound"
               style="width: 100%"
@@ -100,7 +121,7 @@
         </el-col>
       </el-row>
       <el-transfer
-      v-if="!showName"
+        v-if="!showName"
         filterable
         :titles="['所有学员', '已选学员']"
         filter-placeholder="请输入学生姓名"
@@ -108,7 +129,7 @@
         v-model="seleched"
         :render-content="renderFunc"
         :data="data"
-        :class="{hideReturn: !canDelUser}"
+        :class="{ hideReturn: !canDelUser }"
       >
         <template #left-footer>
           <div class="footer line">
@@ -134,59 +155,77 @@
 </template>
 <script>
 import { genderType } from "@/constant";
-import { updateClassGroupStudents } from '../../api'
-import { uniqBy } from 'lodash'
+import { updateClassGroupStudents } from "../../api";
+import { uniqBy } from "lodash";
 export default {
-  props: ["studentList", "soundList", "activeType", 'activeListStudent', 'isOnlyChangeUser', 'classGroupId', 'type', 'teacherList', 'cooperationList', 'isStudentRemove'],
+  props: [
+    "studentList",
+    "soundList",
+    "activeType",
+    "activeListStudent",
+    "isOnlyChangeUser",
+    "classGroupId",
+    "type",
+    "teacherList",
+    "cooperationList",
+    "isStudentRemove"
+  ],
   computed: {
     data() {
-      return uniqBy([...this.studentList, ...this.activeListStudent], 'userId')
+      return uniqBy([...this.studentList, ...this.activeListStudent], "userId")
         .filter(item => {
           if (this.form.sound.length) {
-            return this.form.sound.includes(item.actualSubjectId) || this.seleched.includes(item.userId)
+            return (
+              this.form.sound.includes(item.actualSubjectId) ||
+              this.seleched.includes(item.userId)
+            );
           }
-          return true
+          return true;
         })
-        .map((item) => ({
-        value: item.userId,
-        key: item.userId,
-        name: item.name,
-        subjectName: item.subjectName,
-        gender: genderType[item.gender],
-      }));
+        .map(item => ({
+          value: item.userId,
+          key: item.userId,
+          name: item.name,
+          subjectName: item.subjectName,
+          gender: genderType[item.gender]
+        }));
     },
     showName() {
-      return !this.isOnlyChangeUser && this.activeType != 'MUSIC_NETWORK'
+      return !this.isOnlyChangeUser && this.activeType != "MUSIC_NETWORK";
     },
     canDelUser() {
       // console.log(this.isStudentRemove)
-      return this.$route.query.type !== 'resetTeam' || !this.isOnlyChangeUser || this.isStudentRemove
+      return (
+        this.$route.query.type !== "resetTeam" ||
+        !this.isOnlyChangeUser ||
+        this.isStudentRemove
+      );
     }
   },
   data() {
     return {
       sound: [],
       form: {
-        name: '',
-        coreTeacher: '',
-        assistant: '',
-         sound: []
+        name: "",
+        coreTeacher: "",
+        assistant: "",
+        sound: []
       },
-      seleched: [],
+      seleched: []
     };
   },
   watch: {
     activeListStudent() {
-      this.setSelectedUser()
-    },
+      this.setSelectedUser();
+    }
   },
   mounted() {
-    this.setSelectedUser()
+    this.setSelectedUser();
   },
   methods: {
     setSelectedUser() {
-      const ids = this.activeListStudent.map(item => item.userId)
-      this.seleched = [...ids]
+      const ids = this.activeListStudent.map(item => item.userId);
+      this.seleched = [...ids];
     },
     filterStudent(query, item) {
       return (
@@ -198,12 +237,22 @@ export default {
     renderFunc(h, option) {
       return (
         <div class="line">
-          <el-tooltip class="item" effect="dark" placement="top" open-delay={300}>
+          <el-tooltip
+            class="item"
+            effect="dark"
+            placement="top"
+            open-delay={300}
+          >
             <span slot="content">{option.name}</span>
             <span class="select-item">{option.name}</span>
           </el-tooltip>
           <span>{option.gender}</span>
-          <el-tooltip class="item" effect="dark" placement="top" open-delay={300}>
+          <el-tooltip
+            class="item"
+            effect="dark"
+            placement="top"
+            open-delay={300}
+          >
             <span slot="content">{option.subjectName}</span>
             <span class="select-item">{option.subjectName}</span>
           </el-tooltip>
@@ -211,90 +260,107 @@ export default {
       );
     },
     change(val) {
-      this.$listeners.changeActiveChioseSound(val)
-      this.$listeners.searchStudent()
+      this.$listeners.changeActiveChioseSound(val);
+      this.$listeners.searchStudent();
     },
     submit() {
-      if (!this.isOnlyChangeUser && this.activeType == 'HIGH_ONLINE' && (this.seleched.length < 3 || this.seleched.length > 5)) {
-        return this.$message.error('线上技能班必须为3-5人')
+      if (
+        !this.isOnlyChangeUser &&
+        this.activeType == "HIGH_ONLINE" &&
+        (this.seleched.length < 3 || this.seleched.length > 5)
+      ) {
+        return this.$message.error("线上技能班必须为3-5人");
       }
-      if (this.activeType == 'MUSIC_NETWORK'&&this.seleched.length < 1 && !this.isStudentRemove) {
-        return this.$message.error('请选择一名学生')
+      if (
+        this.activeType == "MUSIC_NETWORK" &&
+        this.seleched.length < 1 &&
+        !this.isStudentRemove
+      ) {
+        return this.$message.error("请选择一名学生");
       }
-      if (this.activeType == 'MUSIC_NETWORK' && this.seleched.length > 1) {
-        return this.$message.error('乐团网管课仅可添加一名学生')
+      if (this.activeType == "MUSIC_NETWORK" && this.seleched.length > 1) {
+        return this.$message.error("乐团网管课仅可添加一名学生");
       }
       this.$refs.form.validate(async valid => {
         if (valid) {
-          if (this.isOnlyChangeUser && this.type !== 'change') {
+          if (this.isOnlyChangeUser && this.type !== "change") {
             try {
               await updateClassGroupStudents({
                 classGroupId: this.classGroupId,
-                studentIds: this.seleched.join(',')
-              })
-              this.$message.success('提交成功')
+                studentIds: this.seleched.join(",")
+              });
+              this.$message.success("提交成功");
             } catch (error) {}
-            this.$listeners.submited()
-            this.$listeners.close()
+            this.$listeners.submited();
+            this.$listeners.close();
           } else {
             this.$listeners.submited({
               seleched: this.seleched,
               ...this.form,
-              soundList:this.sound
-            })
+              soundList: this.sound
+            });
           }
         }
-      })
+      });
     }
-  },
+  }
 };
 </script>
 <style lang="less" scoped>
-::v-deep  .el-transfer {
+::v-deep .el-transfer {
   display: flex;
   align-items: center;
+
   .el-transfer__buttons {
     display: flex;
     width: 110px;
     flex-direction: column;
+
     > button {
       &:last-child {
         margin-left: 0;
       }
     }
   }
+
   .el-transfer-panel {
     width: 300px;
   }
 }
+
 .footer {
   margin-left: 35px;
   margin-right: auto;
   height: 40px;
   line-height: 40px;
 }
-.hideReturn{
-  ::v-deep  .el-transfer__buttons button:first-child{
+
+.hideReturn {
+  ::v-deep .el-transfer__buttons button:first-child {
     display: none;
   }
 }
-::v-deep  .el-checkbox-group{
+
+::v-deep .el-checkbox-group {
   padding-bottom: 40px;
 }
-::v-deep  .line {
+
+::v-deep .line {
   width: 220px;
   display: flex;
   justify-content: space-around;
   height: 30px;
   line-height: 30px;
-  .select-item{
+
+  .select-item {
     width: 33.33333%;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
   }
 }
-::v-deep  .dialog-footer{
+
+::v-deep .dialog-footer {
   margin-top: 20px;
   display: block;
   text-align: right;

+ 12 - 13
src/views/teamDetail/components/modals/student-reset-view.vue

@@ -1,15 +1,13 @@
 <template>
   <div>
-    <el-alert title="学员班级调整仅支持相同【班级类型】调整,且所选班级的剩余【课程类型】须完全相同若仅选择一个班级,则会为将所选学员从原班级中移除并新建班级"
-              type="warning"
-              :closable='false'
-              class="alert"
-              show-icon>
+    <el-alert title="学员班级调整仅支持相同【班级类型】调整,且所选班级的剩余【课程类型】须完全相同若仅选择一个班级,则会为将所选学员从原班级中移除并新建班级" type="warning"
+      :closable='false' class="alert" show-icon>
     </el-alert>
-    <classListGroup :classList="classList" ref='classListGroup' :courseTypesByType='courseTypesByType' :teacherList='teacherList'/>
-     <div slot="footer" class="dialog-footer">
+    <classListGroup :classList="classList" ref='classListGroup' :courseTypesByType='courseTypesByType'
+      :teacherList='teacherList' />
+    <div slot="footer" class="dialog-footer">
       <el-button @click="close">取 消</el-button>
-      <el-button  type="primary" @click="gotoSecond">下一步</el-button>
+      <el-button type="primary" @click="gotoSecond">下一步</el-button>
     </div>
     <div style="clear:both;"></div>
   </div>
@@ -17,19 +15,19 @@
 <script>
 import classListGroup from './classList-group'
 export default {
-  props: ['classList','courseTypesByType','teacherList'],
+  props: ['classList', 'courseTypesByType', 'teacherList'],
   components: {
     classListGroup
   },
-  data () {
+  data() {
     return {
 
     }
-  },methods:{
-     close(){
+  }, methods: {
+    close() {
       this.$emit('close')
     },
-    gotoSecond(){
+    gotoSecond() {
       this.$refs.classListGroup.gotoSecond()
     }
   }
@@ -39,6 +37,7 @@ export default {
 .alert {
   margin-bottom: 10px;
 }
+
 .dialog-footer {
   float: right;
 

+ 163 - 504
src/views/teamDetail/components/resetClass.vue

@@ -8,34 +8,15 @@
     <!--    @change="changeMixClass" -->
     <div class="m-core">
       <div class="topWrap">
-        <el-form
-          :inline="true"
-          :model="topForm"
-          @submit.stop.native.prevent="submit"
-          @reset.stop.native.prevent="reset"
-        >
+        <el-form :inline="true" :model="topForm" @submit.stop.native.prevent="submit" @reset.stop.native.prevent="reset">
           <el-form-item>
-            <el-select
-              v-model.trim="topForm.type"
-              clearable
-              filterable
-              placeholder="请选择班级类型"
-            >
-              <el-option
-                v-for="(item, index) in musicClassTypeList"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              ></el-option>
+            <el-select v-model.trim="topForm.type" clearable filterable placeholder="请选择班级类型">
+              <el-option v-for="(item, index) in musicClassTypeList" :key="index" :label="item.label"
+                :value="item.value"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item>
-            <el-select
-              v-model.trim="topForm.hasCourse"
-              clearable
-              filterable
-              placeholder="是否有剩余课程"
-            >
+            <el-select v-model.trim="topForm.hasCourse" clearable filterable placeholder="是否有剩余课程">
               <el-option label="是" :value="1"></el-option>
               <el-option label="否" :value="0"></el-option>
             </el-select>
@@ -47,22 +28,11 @@
         </el-form>
       </div>
       <div class="btnList">
-        <el-button
-          type="primary"
-          v-permission="'courseSchedule/coursePostpone'"
-          v-if="team_status == 'PROGRESS'"
-          @click="postpone"
-          style="margin-bottom: 20px"
-          >课程顺延</el-button
-        >
-        <el-button
-          type="primary"
-          v-permission="'/memberClassList'"
-          v-if="courseViewType == 2 && team_status == 'PROGRESS'"
-          @click="gotoMemberCourse"
-          style="margin-bottom: 20px"
-          >会员课程排课</el-button
-        >
+        <el-button type="primary" v-permission="'courseSchedule/coursePostpone'" v-if="team_status == 'PROGRESS'"
+          @click="postpone" style="margin-bottom: 20px">课程顺延</el-button>
+        <el-button type="primary" v-permission="'/memberClassList'"
+          v-if="courseViewType == 2 && team_status == 'PROGRESS'" @click="gotoMemberCourse"
+          style="margin-bottom: 20px">会员课程排课</el-button>
         <!-- <div
           class="newBand"
           style="width: 120px"
@@ -84,36 +54,19 @@
       </div>
 
       <div class="tableWrap" style>
-        <el-table
-          :data="activeSingleList"
-          style
-          ref="multipleTable"
-          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-          tooltip-effect="dark"
-          @selection-change="handleSelectionChange"
-        >
+        <el-table :data="activeSingleList" style ref="multipleTable"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }" tooltip-effect="dark"
+          @selection-change="handleSelectionChange">
           <!-- checkSignPostpone -->
-          <el-table-column
-            :selectable="checkSignPostpone"
-            type="selection"
-            width="55"
-            v-if="team_status == 'PROGRESS'"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="name"
-            label="班级名称"
-          ></el-table-column>
+          <el-table-column :selectable="checkSignPostpone" type="selection" width="55"
+            v-if="team_status == 'PROGRESS'"></el-table-column>
+          <el-table-column align="center" prop="name" label="班级名称"></el-table-column>
           <el-table-column align="center" prop="type" label="班级类型">
             <template slot-scope="scope">
               <div>{{ scope.row.type | classType }}</div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="studentNum"
-            label="当前班级人数"
-          >
+          <el-table-column align="center" prop="studentNum" label="当前班级人数">
             <template slot-scope="scope">
               <div>{{ scope.row.studentNum }}人</div>
             </template>
@@ -121,10 +74,7 @@
           <el-table-column align="center" prop label="主教老师">
             <template slot-scope="scope">
               <div v-if="scope.row.classGroupTeacherMapperList">
-                <p
-                  v-for="(item, index) in scope.row.classGroupTeacherMapperList"
-                  :key="index"
-                >
+                <p v-for="(item, index) in scope.row.classGroupTeacherMapperList" :key="index">
                   <span v-if="item.teacherRole == 'BISHOP'">
                     {{ item.userName }}
                   </span>
@@ -135,10 +85,7 @@
           <el-table-column align="center" label="助教老师">
             <template slot-scope="scope">
               <div v-if="scope.row.classGroupTeacherMapperList">
-                <p
-                  v-for="(item, index) in scope.row.classGroupTeacherMapperList"
-                  :key="index"
-                >
+                <p v-for="(item, index) in scope.row.classGroupTeacherMapperList" :key="index">
                   <span v-if="item.teacherRole == 'TEACHING'">
                     {{ item.userName }}
                   </span>
@@ -161,124 +108,59 @@
               <div>{{ scope.row.lockFlag | yesOrNo }}</div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            width="240px"
-            label="操作"
-            v-if="team_status == 'PREPARE' || team_status == 'PROGRESS'"
-          >
+          <el-table-column align="center" width="240px" label="操作"
+            v-if="team_status == 'PREPARE' || team_status == 'PROGRESS'">
             <template slot-scope="scope" v-if="scope.row.lockFlag != 1">
               <div>
                 <!-- v-if="scope.row.type !='MIX'" -->
-                <el-button
-                  type="text"
-                  @click="resetClass(scope.row)"
+                <el-button type="text" @click="resetClass(scope.row)"
                   v-permission="'classGroupStudent/updateClassGroupStudents'"
-                  v-if="scope.row.type != 'MUSIC_NETWORK'"
-                  >学员调整</el-button
-                >
-                <el-button
-                  type="text"
-                  @click="resetTeacher(scope.row)"
-                  v-permission="'classGroup/classGroupUpdate'"
-                  >老师调整</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="
-                    (permission('classGroup/classGroupUpdate') ||
-                      permission('classGroup/revisionClassGroup') ||
-                      permission('classGroup/revisionAddClassGroup')) &&
-                      scope.row.studentNum > 0 &&
-                      team_status == 'PROGRESS'
-                  "
-                  @click="classAdjustment(scope.row)"
-                  >排课</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="
-                    (scope.row.studentNum == '0' ||
-                      scope.row.totalClassTimes == '0') &&
-                      permission('classGroup/delSingle')
-                  "
-                  @click="removeClass(scope)"
-                  >删除</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="
-                    team_status == 'PROGRESS' &&
-                      permission('courseSchedule/coursePostpone') &&
-                      checkSignPostpone(scope.row)
-                  "
-                  @click="signPostpone(scope.row)"
-                  >顺延课程</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="
-                    team_status == 'PROGRESS' && permission('classGroup/update')
-                  "
-                  @click="resetClassName(scope.row)"
-                  >班级名称调整</el-button
-                >
+                  v-if="scope.row.type != 'MUSIC_NETWORK'">学员调整</el-button>
+                <el-button type="text" @click="resetTeacher(scope.row)"
+                  v-permission="'classGroup/classGroupUpdate'">老师调整</el-button>
+                <el-button type="text" v-if="(permission('classGroup/classGroupUpdate') ||
+                  permission('classGroup/revisionClassGroup') ||
+                  permission('classGroup/revisionAddClassGroup')) &&
+                  scope.row.studentNum > 0 &&
+                  team_status == 'PROGRESS'
+                  " @click="classAdjustment(scope.row)">排课</el-button>
+                <el-button type="text" v-if="(scope.row.studentNum == '0' ||
+                  scope.row.totalClassTimes == '0') &&
+                  permission('classGroup/delSingle')
+                  " @click="removeClass(scope)">删除</el-button>
+                <el-button type="text" v-if="team_status == 'PROGRESS' &&
+                  permission('courseSchedule/coursePostpone') &&
+                  checkSignPostpone(scope.row)
+                  " @click="signPostpone(scope.row)">顺延课程</el-button>
+                <el-button type="text" v-if="team_status == 'PROGRESS' && permission('classGroup/update')
+                  " @click="resetClassName(scope.row)">班级名称调整</el-button>
               </div>
             </template>
           </el-table-column>
         </el-table>
         <div class="floor">
           <div class="left">
-            <div
-              class="add"
-              @click="studentResetVisiable = true"
-              v-if="
-                permission('classGroup/mergeClassSplitClassAffirm') &&
-                  team_status == 'PROGRESS'
-              "
-            >
+            <div class="add" @click="studentResetVisiable = true" v-if="permission('classGroup/mergeClassSplitClassAffirm') &&
+              team_status == 'PROGRESS'
+              ">
               拆分班级
             </div>
           </div>
-          <div
-            class="right"
-            v-if="team_status == 'PREPARE' || team_status == 'PROGRESS'"
-          >
-            <div
-              class="add"
-              v-if="permission('classGroup/create')"
-              @click="temporary"
-            >
+          <div class="right" v-if="team_status == 'PREPARE' || team_status == 'PROGRESS'">
+            <div class="add" v-if="permission('classGroup/create')" @click="temporary">
               新建临时班
             </div>
-            <div
-              class="add"
-              v-if="permission('classGroup/create')"
-              @click="addNewClass('NORMAL')"
-            >
+            <div class="add" v-if="permission('classGroup/create')" @click="addNewClass('NORMAL')">
               新建声部班
             </div>
-            <div
-              class="add"
-              v-if="permission('classGroup/create')"
-              @click="addNewClass('MIX')"
-            >
+            <div class="add" v-if="permission('classGroup/create')" @click="addNewClass('MIX')">
               新建合奏班
             </div>
-            <div
-              class="add"
-              v-if="
-                permission('classGroup/revisionAddClassGroup') && tenantId == 1
-              "
-              @click="addNewClass('MUSIC_NETWORK')"
-            >
+            <div class="add" v-if="permission('classGroup/revisionAddClassGroup') && tenantId == 1
+              " @click="addNewClass('MUSIC_NETWORK')">
               新建乐团网管课
             </div>
-            <div
-              class="add"
-              v-if="permission('classGroup/create')"
-              @click="newClassVisible = true"
-            >
+            <div class="add" v-if="permission('classGroup/create')" @click="newClassVisible = true">
               基础技能班
             </div>
           </div>
@@ -288,147 +170,59 @@
         </div>
       </div>
     </div>
-    <el-dialog
-      title="老师调整"
-      width="750px"
-      :visible.sync="teacherVisible"
-      v-if="teacherVisible"
-    >
-      <changeTeacher
-        v-if="teacherVisible && teacherDetail"
-        :classGroupId="activeClass"
-        :activeType="activeType"
-        :teacherList="teacherList"
-        :cooperationList="cooperationList"
-        :detail="teacherDetail"
-        @submited="teacherSubmited"
-        @close="teacherVisible = false"
-      />
+    <el-dialog title="老师调整" width="750px" :visible.sync="teacherVisible" v-if="teacherVisible">
+      <changeTeacher v-if="teacherVisible && teacherDetail" :classGroupId="activeClass" :activeType="activeType"
+        :teacherList="teacherList" :cooperationList="cooperationList" :detail="teacherDetail" @submited="teacherSubmited"
+        @close="teacherVisible = false" />
     </el-dialog>
     <!-- 修改班级名称 -->
-    <el-dialog
-      title="班级名称调整"
-      width="400px"
-      :visible.sync="classNameVisible"
-      v-if="classNameVisible"
-    >
-      <changeClassName
-        :detail="classDetail"
-        @submited="submitedResetClassName"
-        @close="classNameVisible = false"
-      />
+    <el-dialog title="班级名称调整" width="400px" :visible.sync="classNameVisible" v-if="classNameVisible">
+      <changeClassName :detail="classDetail" @submited="submitedResetClassName" @close="classNameVisible = false" />
     </el-dialog>
     <!-- 学员选择 -->
-    <el-dialog
-      :title="isOnlyChangeUser ? '学员调整' : '新建班级'"
-      width="760px"
-      :visible.sync="studentVisible"
-      v-if="studentVisible"
-    >
-      <selectStudent
-        :activeListStudent="activeListStudent"
-        :studentList="studentList"
-        :soundList="activeSoundList"
-        :classGroupId="activeClass"
-        :teacherList="teacherList"
-        :cooperationList="cooperationList"
-        :isOnlyChangeUser="isOnlyChangeUser"
-        :isStudentRemove="isStudentRemove"
-        :activeType="activeType"
-        @changeActiveChioseSound="changeActiveChioseSound"
-        @searchStudent="searchStudent(activeClass)"
-        @submited="studentSubmited"
-        @close="studentVisible = false"
-      />
+    <el-dialog :title="isOnlyChangeUser ? '学员调整' : '新建班级'" width="760px" :visible.sync="studentVisible"
+      v-if="studentVisible">
+      <selectStudent :activeListStudent="activeListStudent" :studentList="studentList" :soundList="activeSoundList"
+        :classGroupId="activeClass" :teacherList="teacherList" :cooperationList="cooperationList"
+        :isOnlyChangeUser="isOnlyChangeUser" :isStudentRemove="isStudentRemove" :activeType="activeType"
+        @changeActiveChioseSound="changeActiveChioseSound" @searchStudent="searchStudent(activeClass)"
+        @submited="studentSubmited" @close="studentVisible = false" />
     </el-dialog>
     <!-- 老师以及课程设置 -->
-    <el-dialog
-      title="班级排课"
-      width="1200px"
-      :visible.sync="infoVisible"
-      :modal-append-to-body="false"
-    >
-      <classroomSetting
-        v-if="infoVisible"
-        :classType="classType"
-        :teacherList="teacherList"
-        :musicGroupId="teamid"
-        :activeType="activeType"
-        :courseTypeList="courseTypeList"
-        :cooperationList="cooperationList"
-        :detail="infoDetail"
-        :studentSubmitedData="studentSubmitedData"
-        @close="infoVisible = false"
-        @submited="getList"
-      />
+    <el-dialog title="班级排课" width="1200px" :visible.sync="infoVisible" :modal-append-to-body="false">
+      <classroomSetting v-if="infoVisible" :classType="classType" :teacherList="teacherList" :musicGroupId="teamid"
+        :activeType="activeType" :courseTypeList="courseTypeList" :cooperationList="cooperationList" :detail="infoDetail"
+        :studentSubmitedData="studentSubmitedData" @close="infoVisible = false" @submited="getList" />
     </el-dialog>
     <!-- 新增合奏班 -->
-    <el-dialog
-      title="新增合奏班"
-      width="700px"
-      :visible.sync="MixVisible"
-      :modal-append-to-body="false"
-    >
+    <el-dialog title="新增合奏班" width="700px" :visible.sync="MixVisible" :modal-append-to-body="false">
       <div class="studentMask">
         <div class="left">
           <div class="wrap">
             <!-- :disabled="!isNewClass" -->
-            <el-input
-              placeholder="请输入合奏班名称"
-              v-model.trim="className"
-            ></el-input>
+            <el-input placeholder="请输入合奏班名称" v-model.trim="className"></el-input>
           </div>
           <div class="chioseStudentList">
             <h4 style="padding-left: 10px">当前已选学生</h4>
-            <div
-              class="studentItem"
-              v-for="(item, index) in activeListStudent"
-              :key="index"
-            >
+            <div class="studentItem" v-for="(item, index) in activeListStudent" :key="index">
               {{ item.name }}
-              <el-button type="text" @click="removeSiginforMix(item)"
-                >删除班级</el-button
-              >
+              <el-button type="text" @click="removeSiginforMix(item)">删除班级</el-button>
             </div>
           </div>
         </div>
         <div class="right">
           <!--   列表开始  -->
           <div class="tableList">
-            <el-table
-              tooltip-effect="dark"
-              style="width: 100%; margin-top: 10px"
-              :data="singleList"
-              ref="mixList"
-              @selection-change="SelectionMix"
-            >
-              <el-table-column
-                type="selection"
-                align="center"
-                width="55"
-              ></el-table-column>
-              <el-table-column
-                prop="name"
-                align="center"
-                width="120"
-                label="姓名"
-              ></el-table-column>
-              <el-table-column
-                prop="gender"
-                align="center"
-                width="100"
-                label="性别"
-              >
+            <el-table tooltip-effect="dark" style="width: 100%; margin-top: 10px" :data="singleList" ref="mixList"
+              @selection-change="SelectionMix">
+              <el-table-column type="selection" align="center" width="55"></el-table-column>
+              <el-table-column prop="name" align="center" width="120" label="姓名"></el-table-column>
+              <el-table-column prop="gender" align="center" width="100" label="性别">
                 <template slot-scope="scope">
                   <div>{{ scope.row.gender | sex }}</div>
                 </template>
               </el-table-column>
-              <el-table-column
-                prop="subjectName"
-                width="120"
-                align="center"
-                label="学员声部"
-              ></el-table-column>
+              <el-table-column prop="subjectName" width="120" align="center" label="学员声部"></el-table-column>
             </el-table>
           </div>
         </div>
@@ -436,90 +230,37 @@
       <div slot="footer" class="dialog-footer">
         <el-button @click="studentVisible = false">取 消</el-button>
         <!-- 班级学员修改 -->
-        <el-button type="primary" v-if="!isNewClass" @click="addSomeStudent"
-          >确 定</el-button
-        >
+        <el-button type="primary" v-if="!isNewClass" @click="addSomeStudent">确 定</el-button>
         <!-- 临时调整或者新建班级 -->
-        <el-button type="primary" v-if="isNewClass" @click="setInfoMsg"
-          >确 定</el-button
-        >
+        <el-button type="primary" v-if="isNewClass" @click="setInfoMsg">确 定</el-button>
       </div>
     </el-dialog>
     <el-dialog :visible.sync="newClassVisible" width="700px" title="新增班级">
-      <el-form
-        :model="newClassForm"
-        :inline="true"
-        label-width="120px"
-        ref="newClassForm"
-        class="newClassForm"
-      >
-        <el-form-item
-          label="班级名称"
-          :rules="[
-            { required: true, message: '请输入班级姓名', trigger: 'blur' }
-          ]"
-          prop="className"
-        >
-          <el-input
-            style="width: 180px"
-            v-model="newClassForm.className"
-          ></el-input>
+      <el-form :model="newClassForm" :inline="true" label-width="120px" ref="newClassForm" class="newClassForm">
+        <el-form-item label="班级名称" :rules="[
+          { required: true, message: '请输入班级姓名', trigger: 'blur' }
+        ]" prop="className">
+          <el-input style="width: 180px" v-model="newClassForm.className"></el-input>
         </el-form-item>
-        <el-form-item
-          label="班级类型"
-          :rules="[
-            { required: true, message: '请选择班级类型', trigger: 'blur' }
-          ]"
-          prop="type"
-        >
-          <el-select
-            v-if="tenantId == 1"
-            v-model.trim="newClassForm.type"
-            clearable
-            @change="chioseHightype"
-          >
-            <el-option
-              v-for="(item, index) in highTypeList"
-              :key="index"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
+        <el-form-item label="班级类型" :rules="[
+          { required: true, message: '请选择班级类型', trigger: 'blur' }
+        ]" prop="type">
+          <el-select v-if="tenantId == 1" v-model.trim="newClassForm.type" clearable @change="chioseHightype">
+            <el-option v-for="(item, index) in highTypeList" :key="index" :label="item.label"
+              :value="item.value"></el-option>
           </el-select>
-          <el-select
-            v-else
-            v-model.trim="newClassForm.type"
-            clearable
-            @change="chioseHightype"
-          >
-            <el-option
-              v-for="(item, index) in highTypeList1"
-              :key="index"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
+          <el-select v-else v-model.trim="newClassForm.type" clearable @change="chioseHightype">
+            <el-option v-for="(item, index) in highTypeList1" :key="index" :label="item.label"
+              :value="item.value"></el-option>
           </el-select>
 
           <!-- highTypeList1 -->
         </el-form-item>
-        <el-form-item
-          label="主教老师"
-          prop="bishop"
-          :rules="[
-            { required: true, message: '请选择主教老师', trigger: 'blur' }
-          ]"
-        >
-          <el-select
-            v-model.trim="newClassForm.bishop"
-            placeholder="请选择主教老师"
-            clearable
-            filterable
-          >
-            <el-option
-              v-for="(item, index) in teacherList"
-              :key="index"
-              :label="item.realName"
-              :value="String(item.id)"
-            >
+        <el-form-item label="主教老师" prop="bishop" :rules="[
+          { required: true, message: '请选择主教老师', trigger: 'blur' }
+        ]">
+          <el-select v-model.trim="newClassForm.bishop" placeholder="请选择主教老师" clearable filterable>
+            <el-option v-for="(item, index) in teacherList" :key="index" :label="item.realName" :value="String(item.id)">
               <span style="float: left">{{ item.realName }}</span>
               <span style="float: right; color: #8492a6; font-size: 13px">{{
                 String(item.id)
@@ -531,44 +272,19 @@
             v-model="newClassForm.bishop"
           /> -->
         </el-form-item>
-        <el-form-item
-          label="预计招生数"
-          prop="expectStudentNum"
-          type="number"
-          :rules="[
-            { required: true, message: '请输入预计招生数', trigger: 'blur' }
-          ]"
-          @mousewheel.native.prevent
-        >
-          <el-input
-            style="width: 180px"
-            :disabled="newClassForm.type == 'HIGH_ONLINE'"
-            v-model="newClassForm.expectStudentNum"
-          ></el-input>
+        <el-form-item label="预计招生数" prop="expectStudentNum" type="number" :rules="[
+          { required: true, message: '请输入预计招生数', trigger: 'blur' }
+        ]" @mousewheel.native.prevent>
+          <el-input style="width: 180px" :disabled="newClassForm.type == 'HIGH_ONLINE'"
+            v-model="newClassForm.expectStudentNum"></el-input>
         </el-form-item>
-        <el-form-item
-          label="助教老师"
-          v-if="
-            newClassForm.type != 'HIGH_ONLINE' &&
-              newClassForm.type != 'HIGH' &&
-              newClassForm.type
-          "
-          prop="teaching"
-        >
-          <el-select
-            v-model.trim="newClassForm.teaching"
-            placeholder="请选择助教老师"
-            filterable
-            clearable
-            multiple
-            @change="setAssistant1"
-          >
-            <el-option
-              v-for="(item, index) in cooperationList"
-              :key="index"
-              :label="item.realName"
-              :value="item.id"
-            >
+        <el-form-item label="助教老师" v-if="newClassForm.type != 'HIGH_ONLINE' &&
+          newClassForm.type != 'HIGH' &&
+          newClassForm.type && $helpers.permission('is/teacher/findTeachers')
+          " prop="teaching">
+          <el-select v-model.trim="newClassForm.teaching" placeholder="请选择助教老师" filterable clearable multiple
+            @change="setAssistant1">
+            <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.realName" :value="item.id">
               <span style="float: left">{{ item.realName }}</span>
               <span style="float: right; color: #8492a6; font-size: 13px">{{
                 String(item.id)
@@ -582,63 +298,26 @@
             :multiple="true"
           /> -->
         </el-form-item>
-        <el-form-item
-          label="声部"
-          prop="subjectIdList"
-          :rules="[{ required: true, message: '请选择声部', trigger: 'blur' }]"
-          v-if="newClassForm.type == 'NORMAL'"
-          :key="'HIGH'"
-        >
+        <el-form-item label="声部" prop="subjectIdList" :rules="[{ required: true, message: '请选择声部', trigger: 'blur' }]"
+          v-if="newClassForm.type == 'NORMAL'" :key="'HIGH'">
           <el-select v-model="newClassForm.subjectIdList" clearable multiple>
-            <el-option
-              v-for="(item, index) in soundList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+            <el-option v-for="(item, index) in soundList" :key="index" :label="item.name" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <!-- 恢复可报名声部 因为建班和加学生分开所以又要添加可报名声部(焕焕狗乱吠) -->
-        <el-form-item
-          label="可报名声部"
-          prop="memo"
-          :rules="[
-            { required: true, message: '请选择可报名声部', trigger: 'blur' }
-          ]"
-          v-if="newClassForm.type == 'HIGH'"
-        >
-          <select-all
-            v-model.trim="newClassForm.memo"
-            multiple
-            clearable
-            @change="changeMemo"
-          >
-            <el-option
-              :disabled="item.disabled || appoint"
-              v-for="(item, index) in soundList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+        <el-form-item label="可报名声部" prop="memo" :rules="[
+          { required: true, message: '请选择可报名声部', trigger: 'blur' }
+        ]" v-if="newClassForm.type == 'HIGH'">
+          <select-all v-model.trim="newClassForm.memo" multiple clearable @change="changeMemo">
+            <el-option :disabled="item.disabled || appoint" v-for="(item, index) in soundList" :key="index"
+              :label="item.name" :value="item.id"></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item
-          label="网络教室声部"
-          prop="subjectId"
-          :rules="[
-            { required: true, message: '请选择线上声部', trigger: 'blur' }
-          ]"
-          v-if="newClassForm.type == 'HIGH_ONLINE'"
-          class="higheSelect"
-          :key="'HIGH_ONLINE'"
-        >
+        <el-form-item label="网络教室声部" prop="subjectId" :rules="[
+          { required: true, message: '请选择线上声部', trigger: 'blur' }
+        ]" v-if="newClassForm.type == 'HIGH_ONLINE'" class="higheSelect" :key="'HIGH_ONLINE'">
           <el-select v-model="newClassForm.subjectId" clearable>
-            <el-option
-              v-for="(item, index) in soundList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+            <el-option v-for="(item, index) in soundList" :key="index" :label="item.name" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -655,13 +334,7 @@
               <p>班级人数:</p>
               <p>线上基础技能班人数上限为6人</p>
             </div>
-            <el-button
-              type="text"
-              icon="el-icon-question"
-              slot="reference"
-              style="color: red"
-              >线上基础技能班规则</el-button
-            >
+            <el-button type="text" icon="el-icon-question" slot="reference" style="color: red">线上基础技能班规则</el-button>
           </el-popover>
         </div>
         <div>
@@ -670,67 +343,33 @@
         </div>
       </div>
     </el-dialog>
-    <el-dialog
-      title="学员列表"
-      :visible.sync="studentListModalVisible"
-      v-if="studentListModalVisible"
-    >
-      <viewStudentList
-        :list="studentListModal"
-        :showOk="true"
-        @close="studentListModalVisible = false"
-      />
+    <el-dialog title="学员列表" :visible.sync="studentListModalVisible" v-if="studentListModalVisible">
+      <viewStudentList :list="studentListModal" :showOk="true" @close="studentListModalVisible = false" />
     </el-dialog>
 
-    <el-dialog
-      title="学员班级调整"
-      width="800px"
-      :visible.sync="studentResetVisiable"
-    >
-      <studentResetView
-        :teacherList="teacherList"
-        :courseTypesByType="courseTypesByType"
-        v-if="studentResetVisiable"
-        :classList="mergeList"
-        @close="closeStudentReset"
-      />
+    <el-dialog title="学员班级调整" width="800px" :visible.sync="studentResetVisiable">
+      <studentResetView :teacherList="teacherList" :courseTypesByType="courseTypesByType" v-if="studentResetVisiable"
+        :classList="mergeList" @close="closeStudentReset" />
     </el-dialog>
 
-    <el-dialog
-      title="课程顺延"
-      :visible.sync="postponeVisible"
-      width="600px"
-      :before-close="handleClose"
-    >
+    <el-dialog title="课程顺延" :visible.sync="postponeVisible" width="600px" :before-close="handleClose">
       <el-form :model="postponeForm" ref="postponeForm" :rules="postponeRules">
         <el-form-item label="开始日期" prop="stopTime">
-          <el-date-picker
-            v-model.trim="postponeForm.stopTime"
-            type="date"
-            :picker-options="bigin"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          >
+          <el-date-picker v-model.trim="postponeForm.stopTime" type="date" :picker-options="bigin"
+            value-format="yyyy-MM-dd" placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="顺延日期" prop="resetTime">
-          <el-date-picker
-            v-model.trim="postponeForm.resetTime"
-            type="date"
-            :picker-options="options"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          >
+          <el-date-picker v-model.trim="postponeForm.resetTime" type="date" :picker-options="options"
+            value-format="yyyy-MM-dd" placeholder="选择日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="跳过节假日">
           <el-checkbox v-model.trim="postponeForm.holiday"></el-checkbox>
         </el-form-item>
       </el-form>
-      <span style="color: #f56c6c"
-        >注意:将会把所选班级的课表,「开始日期」之后的全部未开始课程;
-        调整到「顺延日期」之后重新排课,可以勾选跳过节假日;</span
-      >
+      <span style="color: #f56c6c">注意:将会把所选班级的课表,「开始日期」之后的全部未开始课程;
+        调整到「顺延日期」之后重新排课,可以勾选跳过节假日;</span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="postponeVisible = false">取 消</el-button>
         <el-button type="primary" @click="submitInfo">确 定</el-button>
@@ -1039,7 +678,7 @@ export default {
             this.courseTypesByType = d;
             console.log(this.courseTypesByType);
           }
-        } catch (error) {}
+        } catch (error) { }
         // 根据乐团id获取乐团所属分部
         getTeacher({ organId: this.organId }).then(res => {
           if (res.code == 200) {
@@ -1338,9 +977,9 @@ export default {
                 this.getList(this.activeMixClass);
               }
             })
-            .catch(res => {});
+            .catch(res => { });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     // 修改班级
     resetClass(row) {
@@ -1688,7 +1327,7 @@ export default {
             }
           });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     toggleSelection(rows) {
       if (rows) {
@@ -1770,7 +1409,7 @@ export default {
     closeStudentReset() {
       this.studentResetVisiable = false;
     },
-    changeMemo(val) {},
+    changeMemo(val) { },
     submitInfo() {
       this.$refs["postponeForm"].validate(res => {
         if (res) {
@@ -1916,20 +1555,24 @@ export default {
   flex-direction: row;
   justify-content: flex-start;
   align-items: center;
+
   .newBand {
     margin-right: 10px;
   }
 }
+
 .dialog-footer.question {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
 }
+
 .topWrap {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
 }
+
 .floor {
   padding-right: 20px;
   display: flex;
@@ -1949,6 +1592,7 @@ export default {
     display: flex;
     flex-direction: row;
     justify-content: flex-start;
+
     .remove {
       width: 98px;
       height: 32px;
@@ -1961,6 +1605,7 @@ export default {
       cursor: pointer;
     }
   }
+
   .add {
     width: auto;
     padding: 0 10px;
@@ -1974,45 +1619,56 @@ export default {
     cursor: pointer;
   }
 }
+
 .studentMask {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   .left {
     width: 200px;
     margin-right: 20px;
+
     .wrap {
       margin-bottom: 20px;
     }
+
     h4 {
       font-size: 16px;
       color: #444;
       line-height: 38px;
     }
+
     .chioseStudentList {
       height: 500px;
       overflow-y: auto;
       border: 1px solid #ccc;
+
       .studentItem {
         padding-left: 10px;
         line-height: 25px;
       }
     }
   }
+
   .right {
     width: calc(100% - 200px);
+
     .tableList {
       max-height: 500px;
       overflow-y: auto;
     }
   }
 }
+
 .resetClassForm {
+
   ::v-deep .el-date-editor.el-input,
   ::v-deep .el-date-editor.el-input__inner {
     width: 180px !important;
   }
 }
+
 // ::v-deep .el-date-editor.el-input,
 // ::v-deep .el-date-editor.el-input__inner {
 //   width: 100px !important;
@@ -2022,14 +1678,17 @@ export default {
     height: 40px !important;
   }
 }
+
 ::v-deep .el-alert__content {
   display: block;
   width: 100%;
 }
+
 .alert-content {
   display: flex;
   justify-content: space-between;
-  > strong {
+
+  >strong {
     cursor: pointer;
   }
 }

+ 62 - 36
src/views/teamDetail/teamClassList.vue

@@ -2,13 +2,13 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>
+      <div class="squrt" />
       班级管理
       <filter-search
         v-if="permission('/teamCLassList/abnormal')"
         :keys="['lessThenThreeHighOnline']"
+        :more-keys="['organId']"
         @reload="reloadSearch"
-        :moreKeys="['organId']"
       />
     </h2>
     <div class="m-core">
@@ -23,6 +23,7 @@
           <el-input
             v-model.trim="searchForm.search"
             clearable
+            placeholder="乐团&班级编号名称"
             @keyup.enter.native="
               e => {
                 e.target.blur();
@@ -30,15 +31,14 @@
                 search();
               }
             "
-            placeholder="乐团&班级编号名称"
-          ></el-input>
+          />
         </el-form-item>
         <el-form-item prop="organIdList">
           <select-all
+            v-model.trim="searchForm.organIdList"
             class="multiple"
             filterable
             multiple
-            v-model.trim="searchForm.organIdList"
             clearable
             placeholder="请选择分部"
           >
@@ -47,17 +47,37 @@
               :key="index"
               :label="item.name"
               :value="item.id"
-            ></el-option>
+            />
           </select-all>
         </el-form-item>
         <el-form-item>
+          <<<<<<< HEAD
           <el-select>
             <el-option
               v-for="(item, index) in courseListType"
               :key="index"
               :value="item.value"
               :label="item.label"
-            ></el-option>
+            />
+            =======
+            <el-select
+              v-model.trim="searchForm.groupType"
+              filterable
+              placeholder="课程组类型"
+              @change="
+                () => {
+                  searchForm.type = '';
+                }
+              "
+            >
+              <el-option
+                v-for="(item, index) in courseListType"
+                :key="index"
+                :value="item.value"
+                :label="item.label"
+              />
+              >>>>>>> parent of 820b56de5 (Revert "更新样式与调整")
+            </el-select>
           </el-select>
         </el-form-item>
         <!-- musicClassTypeList -->
@@ -73,26 +93,31 @@
               :key="index"
               :label="item.label"
               :value="item.value"
-            ></el-option>
+            />
           </el-select>
         </el-form-item>
         <el-form-item prop="mainTeacherUserId">
           <remote-search
-            :commit="'setTeachers'"
             v-model="searchForm.mainTeacherUserId"
-            :demissionFlag="true"
-            :isForzenWithQueryCondition="true"
+            :commit="'setTeachers'"
+            :demission-flag="true"
+            :is-forzen-with-query-condition="true"
           />
         </el-form-item>
         <el-form-item>
-          <el-button native-type="submit" type="primary">搜索</el-button>
-          <el-button native-type="reset" type="danger">重置</el-button>
+          <el-button native-type="submit" type="primary">
+            搜索
+          </el-button>
+          <el-button native-type="reset" type="danger">
+            重置
+          </el-button>
           <el-button
-            type="primary"
             v-permission="'export/classGroup'"
+            type="primary"
             @click="exportClassGroup"
-            >导出</el-button
           >
+            导出
+          </el-button>
         </el-form-item>
       </save-form>
       <div class="tableWrap">
@@ -119,17 +144,13 @@
             align="center"
             prop="musicGroupName"
             label="课程组名称"
-          ></el-table-column>
+          />
           <el-table-column align="center" prop="organName" label="分部名称">
             <template slot-scope="scope">
               <copy-text>{{ scope.row.organName }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="name"
-            label="班级名称"
-          ></el-table-column>
+          <el-table-column align="center" prop="name" label="班级名称" />
           <el-table-column align="center" prop="type" label="班级类型">
             <template slot-scope="scope">
               <div>{{ scope.row.type | classType }}</div>
@@ -188,48 +209,53 @@
           >
             <template slot-scope="scope">
               <el-button
-                type="text"
                 v-if="permission('classGroup/update')"
+                type="text"
                 @click="resetClassName(scope.row, true)"
-                >班级名称调整</el-button
               >
+                班级名称调整
+              </el-button>
               <el-button
-                type="text"
                 v-if="permission('classGroup/update')"
+                type="text"
                 @click="resetClassName(scope.row, false)"
-                >备注</el-button
               >
+                备注
+              </el-button>
               <el-button
-                type="text"
-                @click="addCompound(scope.row)"
                 v-if="
                   scope.row.type != 'MUSIC_NETWORK' &&
                     scope.row.groupType == 'MUSIC' &&
                     !isAddCom(scope.row) &&
                     permission('classGroup/spanGroupMergeClassSplitClassAffirm')
                 "
-                >添加合班</el-button
+                type="text"
+                @click="addCompound(scope.row)"
               >
+                添加合班
+              </el-button>
               <el-button
-                type="text"
                 v-if="
                   isAddCom(scope.row) &&
                     permission('classGroup/spanGroupMergeClassSplitClassAffirm')
                 "
+                type="text"
                 @click="cancleCompound(scope.row)"
-                >取消合班</el-button
               >
+                取消合班
+              </el-button>
               <el-button
-                type="text"
                 v-if="
                   permission('classGroup/delSingle?page=teamCLassList') &&
                     scope.row.groupType === 'MUSIC' &&
                     (scope.row.studentNum == '0' ||
                       scope.row.totalClassTimes == '0')
                 "
+                type="text"
                 @click="removeClass(scope)"
-                >删除</el-button
               >
+                删除
+              </el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -244,11 +270,11 @@
       </div>
     </div>
     <classCompound
-      :compoundList="compoundList"
       v-if="
         permission('classGroup/spanGroupMergeClassSplitClassAffirm') &&
           compoundList.length > 0
       "
+      :compound-list="compoundList"
       @clearCom="clearCom"
       @getList="getList"
       @cancleCompound="cancleCompound"
@@ -256,16 +282,16 @@
     />
     <!-- 修改班级名称 -->
     <el-dialog
+      v-if="classNameVisible"
       :title="!resetName ? '班级名称调整' : '备注'"
       width="500px"
       :visible.sync="classNameVisible"
-      v-if="classNameVisible"
     >
       <changeClassName
-        :classGroupId="activeClass"
+        :class-group-id="activeClass"
         :detail="classDetail"
+        :reset-name="resetName"
         @submited="submitedResetClassName"
-        :resetName="resetName"
         @close="classNameVisible = false"
       />
     </el-dialog>

+ 14 - 0
src/views/teamDetail/teamCourseList.vue

@@ -156,6 +156,11 @@
               </div>
             </template>
           </el-table-column>
+          <el-table-column prop="teachingUserNames" width="150px" label="助教老师">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.teachingUserNames }}</copy-text>
+            </template>
+          </el-table-column>
 
           <el-table-column align="center" prop="schoolName" label="教学模式/教学点">
             <template slot-scope="scope">
@@ -395,6 +400,13 @@
             <el-option label="否" value="0"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="是否有助教" prop="hasTeaching">
+          <el-select style="width: 180px !important" v-model.trim="searchForm.hasTeaching" clearable filterable
+            placeholder="是否有助教">
+            <el-option label="有助教" value="1"></el-option>
+            <el-option label="无助教" value="0"></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="创建日期" prop="creatTimer">
           <el-date-picker v-model.trim="searchForm.creatTimer" type="daterange" value-format="yyyy-MM-dd"
             range-separator="-" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :picker-options="{
@@ -469,6 +481,7 @@ const initSearch = {
   creatTimer: [],
   courseIdSearch: null,
   memberFlag: null,
+  hasTeaching: null,
   courseTime: ["", ""],
 };
 export default {
@@ -540,6 +553,7 @@ export default {
         this.searchForm.teachType ||
         this.searchForm.isCallNames ||
         this.searchForm.memberFlag ||
+        this.searchForm.hasTeaching ||
         this.searchForm.creatTimer?.length > 0 ||
         (this.searchForm.courseTime?.length > 0 && this.searchForm.courseTime[0])
       );

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

@@ -364,7 +364,6 @@ export default {
     },
     getList() {
       let { createTimer, billTimer, ...reset } = this.topForm;
-      console.log(this.topForm, '11212')
       getTeamList({
         rows: this.rules.limit,
         page: this.rules.page,

Vissa filer visades inte eftersom för många filer har ändrats