Kaynağa Gözat

到课表列表 结束

1
mo 4 yıl önce
ebeveyn
işleme
13ca6fb090

+ 1 - 5
src/views/attendanceManager/attendanceList/index.vue

@@ -129,7 +129,7 @@
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
-                <auth auths='studentManage/findStudentCourseHomeworks'>
+                <auth auths='/attenddanceDetail'>
                   <el-button
                   type="text"
                   @click="lookDetail(scope.row)"
@@ -160,12 +160,8 @@
 </template>
 
 <script>
-import axios from "axios";
-import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
-import load from "@/utils/loading";
 import { courseListType } from "@/utils/searchArray";
-import { getEmployeeOrgan } from "@/api/buildTeam";
 import studentWork from "@/views/teamDetail/componentCourse/studentWork";
 import { getHomePageList } from "./api.js";
 import { getTimes } from "@/utils";

+ 1 - 1
src/views/teamDetail/componentCourse/infoMsg.vue

@@ -28,7 +28,7 @@
   </div>
 </template>
 <script>
-import { diffTimerFormMinute, addTimerFormMinute } from '@/utils/date'
+import { diffTimerFormMinute } from '@/utils/date'
 import dayjs from 'dayjs';
 import {
   queryCourseAdjustDetail,

+ 243 - 194
src/views/teamDetail/componentCourse/teacherList.vue

@@ -1,65 +1,68 @@
 <template>
   <div class="tableWrap">
-    <el-table :data='tableList'
-              :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-      <el-table-column align='center'
-                       prop="teacherName"
-                       width="150px"
-                       label="老师姓名">
+    <el-table
+      :data="tableList"
+      :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+    >
+      <el-table-column
+        align="center"
+        prop="teacherName"
+        width="150px"
+        label="老师姓名"
+      >
         <template slot-scope="scope">
           <div>
-            <span>{{scope.row.teacherName}}</span><br/>
-             <span style="color: #f56c6c">(<copy-text>{{scope.row.teacherId}}</copy-text>)</span>
+            <span>{{ scope.row.teacherName }}</span
+            ><br />
+            <span style="color: #f56c6c"
+              >(<copy-text>{{ scope.row.teacherId }}</copy-text
+              >)</span
+            >
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="teacherRole"
-                       label="老师类型">
+      <el-table-column align="center" prop="teacherRole" label="老师类型">
         <template slot-scope="scope">
           <div>
-            {{ scope.row.teacherRole|workType}}
+            {{ scope.row.teacherRole | workType }}
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="teacherPhone"
-                       label="签到时间">
+      <el-table-column align="center" prop="teacherPhone" label="签到时间">
         <template slot-scope="scope">
           <div>
-            {{scope.row.signInTime | dayjsFormatMinute}}
+            {{ scope.row.signInTime | dayjsFormatMinute }}
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="teacherPhone"
-                       label="签退时间">
+      <el-table-column align="center" prop="teacherPhone" label="签退时间">
         <template slot-scope="scope">
           <div>
-            {{scope.row.signOutTime | dayjsFormatMinute}}
+            {{ scope.row.signOutTime | dayjsFormatMinute }}
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="teacherPhone"
-                       label="签到状态">
+      <el-table-column align="center" prop="teacherPhone" label="签到状态">
         <template slot-scope="scope">
-          <div>{{ scope.row.signInStatus | attendanceType}}</div>
+          <div>{{ scope.row.signInStatus | attendanceType }}</div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="teacherPhone"
-                       label="签退状态">
+      <el-table-column align="center" prop="teacherPhone" label="签退状态">
         <template slot-scope="scope">
-          <div>{{ scope.row.signOutStatus | attendanceOutType}}</div>
+          <div>{{ scope.row.signOutStatus | attendanceOutType }}</div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="signOutAttachments"
-                       label="签退照片">
+      <el-table-column
+        align="center"
+        prop="signOutAttachments"
+        label="签退照片"
+      >
         <template slot-scope="scope">
           <el-image
-            v-if="scope.row.teacherAttendance && scope.row.teacherAttendance.signOutAttachments"
+            v-if="
+              scope.row.teacherAttendance &&
+              scope.row.teacherAttendance.signOutAttachments
+            "
             style="width: 60px; height: 60px"
             fit="cover"
             :src="scope.row.teacherAttendance.signOutAttachments"
@@ -68,81 +71,120 @@
           </el-image>
         </template>
       </el-table-column>
-        <el-table-column align='center'
-                       prop="complaintsContent"
-                       width="120"
-                       label="考勤申诉内容">
+      <el-table-column
+        align="center"
+        prop="complaintsContent"
+        width="120"
+        label="考勤申诉内容"
+      >
         <template slot-scope="scope">
           <div v-if="scope.row.teacherAttendance">
-            <overflow-text :text="scope.row.teacherAttendance.complaintsContent" width="100%">
-              {{ scope.row.teacherAttendance.complaintsContent}}
+            <overflow-text
+              :text="scope.row.teacherAttendance.complaintsContent"
+              width="100%"
+            >
+              {{ scope.row.teacherAttendance.complaintsContent }}
             </overflow-text>
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="complaintsTime"
-                       width="160"
-                       label="考勤申诉时间">
+      <el-table-column
+        align="center"
+        prop="complaintsTime"
+        width="160"
+        label="考勤申诉时间"
+      >
         <template slot-scope="scope">
           <div>
-            {{ scope.row.teacherAttendance && scope.row.teacherAttendance.complaintsTime}}
+            {{
+              scope.row.teacherAttendance &&
+              scope.row.teacherAttendance.complaintsTime
+            }}
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="complaintsStatus"
-                       width="140"
-                       label="考勤申诉状态">
+      <el-table-column
+        align="center"
+        prop="complaintsStatus"
+        width="140"
+        label="考勤申诉状态"
+      >
         <template slot-scope="scope">
           <div v-if="scope.row.teacherAttendance">
-            {{scope.row.teacherAttendance.complaintsStatus | complaintsStatusEnum}}
+            {{
+              scope.row.teacherAttendance.complaintsStatus
+                | complaintsStatusEnum
+            }}
           </div>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       prop="disposeContent"
-                       label="处理意见">
+      <el-table-column align="center" prop="disposeContent" label="处理意见">
         <template slot-scope="scope">
-          <overflow-text width="100%" :text="scope.row.teacherAttendance && scope.row.teacherAttendance.disposeContent"></overflow-text>
+          <overflow-text
+            width="100%"
+            :text="
+              scope.row.teacherAttendance &&
+              scope.row.teacherAttendance.disposeContent
+            "
+          ></overflow-text>
         </template>
       </el-table-column>
-      <el-table-column align='center'
-                       width="200px"
-                       fixed="right"
-                       label="操作">
+      <el-table-column align="center" width="200px" fixed="right" label="操作">
         <template slot-scope="scope">
           <div>
-            <el-button type="text"
-                       size="small"
-                       v-permission="'teacherAttendance/updateTeacherAttendance'"
-                       @click="mackAttendance(scope.row)">补考勤</el-button>
-            <el-button type="text"
-                       v-if="teachMode == 'OFFLINE'"
-                       size="small"
-                       @click="lookGPS(scope.row)">GPS定位</el-button>
-            <el-button type="text"
-                       size="small"
-                       v-permission="'courseSchedule/queryTeacherSalary'"
-                       @click="setCourseInfo(scope.row)">课酬调整</el-button>
+            <auth auths="teacherAttendance/updateTeacherAttendance">
               <el-button
+                type="text"
+                size="small"
+                @click="mackAttendance(scope.row)"
+                >补考勤</el-button
+              >
+            </auth>
+
+            <el-button
+              type="text"
+              v-if="teachMode == 'OFFLINE'"
               size="small"
+              @click="lookGPS(scope.row)"
+              >GPS定位</el-button
+            >
+            <auth auths="courseSchedule/queryTeacherSalary">
+              <el-button
+                type="text"
+                size="small"
+                @click="setCourseInfo(scope.row)"
+                >课酬调整</el-button
+              >
+            </auth>
+            <auth auths="teacherAttendance/update?page=teamCourseList">
+              <el-button
+                size="small"
                 type="text"
-                v-permission="'teacherAttendance/update?page=teamCourseList'"
                 @click="hand(scope.row)"
-                v-if="scope.row.signInStatus!=1||scope.row.signOutStatus!=1"
-              >处理意见</el-button>
+                v-if="
+                  scope.row.signInStatus != 1 || scope.row.signOutStatus != 1
+                "
+                >处理意见</el-button
+              >
+            </auth>
           </div>
         </template>
       </el-table-column>
     </el-table>
-    <el-dialog width="1000px" title="GPS定位"
-               :visible.sync="gpsVisible"
-               append-to-body>
-      <gpsLoction v-if="gpsVisible"
-                  :activeRow='activeRow' />
+    <el-dialog
+      width="1000px"
+      title="GPS定位"
+      :visible.sync="gpsVisible"
+      append-to-body
+    >
+      <gpsLoction v-if="gpsVisible" :activeRow="activeRow" />
     </el-dialog>
-    <el-dialog title="处理意见" width="400px" :visible.sync="handVisible" append-to-body>
+    <el-dialog
+      title="处理意见"
+      width="400px"
+      :visible.sync="handVisible"
+      append-to-body
+    >
       <hand
         v-if="handVisible && detail"
         :detail="detail"
@@ -167,9 +209,9 @@
         </el-table-column>
         <el-table-column label="课程课酬"
                          prop="expectSalary"></el-table-column> -->
-        <!-- <el-table-column label="课时补贴"
+    <!-- <el-table-column label="课时补贴"
                          prop="subsidy"></el-table-column> -->
-        <!-- <el-table-column label="操作">
+    <!-- <el-table-column label="操作">
           <template slot-scope="scope">
             <div>
               <el-button type='text'
@@ -179,51 +221,55 @@
           </template>
         </el-table-column>
       </el-table> -->
-      <el-dialog width="500px"
-                 :title="activeTeacher&&(activeTeacher.teacherName + ` (${activeTeacher.teacherId})`)"
-                 :visible.sync="innerVisible"
-                 append-to-body>
-        <!-- 修改代码 -->
-        <el-form :model="teacherMask"
-                 :rules="teacherRules"
-                 ref='teacherMask'>
-          <el-form-item label="原课程课酬"
-                        prop="expectSalary">
-            <span>{{activeTeacher && activeTeacher.expectSalary | moneyFormat}}</span>
-          </el-form-item>
-          <el-form-item label="调整范围"
-                        prop="radio">
-            <el-radio v-model.trim="teacherMask.radio"
-                      label="all">之后剩余课次</el-radio>
-            <el-radio v-model.trim="teacherMask.radio"
-                      label="one">仅限本次</el-radio>
-          </el-form-item>
-          <el-form-item label="课程课酬"
-                        prop="salary">
-            <el-input style="width:180px"
-                      v-model.trim="teacherMask.salary"></el-input>
-          </el-form-item>
-        </el-form>
-        <div slot="footer"
-             class="dialog-footer">
-          <el-button @click="innerVisible = false">取 消</el-button>
-          <el-button type="primary"
-                     @click="resetSalary">确 定</el-button>
-        </div>
-      </el-dialog>
+    <el-dialog
+      width="500px"
+      :title="
+        activeTeacher &&
+        activeTeacher.teacherName + ` (${activeTeacher.teacherId})`
+      "
+      :visible.sync="innerVisible"
+      append-to-body
+    >
+      <!-- 修改代码 -->
+      <el-form :model="teacherMask" :rules="teacherRules" ref="teacherMask">
+        <el-form-item label="原课程课酬" prop="expectSalary">
+          <span>{{
+            activeTeacher && activeTeacher.expectSalary | moneyFormat
+          }}</span>
+        </el-form-item>
+        <el-form-item label="调整范围" prop="radio">
+          <el-radio v-model.trim="teacherMask.radio" label="all"
+            >之后剩余课次</el-radio
+          >
+          <el-radio v-model.trim="teacherMask.radio" label="one"
+            >仅限本次</el-radio
+          >
+        </el-form-item>
+        <el-form-item label="课程课酬" prop="salary">
+          <el-input
+            style="width: 180px"
+            v-model.trim="teacherMask.salary"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="innerVisible = false">取 消</el-button>
+        <el-button type="primary" @click="resetSalary">确 定</el-button>
+      </div>
+    </el-dialog>
     <!-- </el-dialog> -->
   </div>
 </template>
 <script>
-import { updateTeacherAttendance, getCourseList, getTeacherSalary } from "@/api/buildTeam";
-import { updateTeacherCoursesSalary } from '@/api/teacherManager'
+import { updateTeacherAttendance, getTeacherSalary } from "@/api/buildTeam";
+import { updateTeacherCoursesSalary } from "@/api/teacherManager";
 import { getCourseTeachers } from "@/api/teacherManager";
 import gpsLoction from "../componentCourse/gpsLocation";
-import hand from '@/views/recodeManager/modals/hand'
+import hand from "@/views/recodeManager/modals/hand";
 export default {
   components: { gpsLoction, hand },
-  props: ['courseScheduleId', 'teachMode'],
-  data () {
+  props: ["courseScheduleId", "teachMode"],
+  data() {
     return {
       tableList: [],
       gpsVisible: false,
@@ -235,118 +281,121 @@ export default {
       handVisible: null,
       detail: null,
       teacherMask: {
-        salary: '',
-        subsidy: '',
-        radio: ''
+        salary: "",
+        subsidy: "",
+        radio: "",
       },
       teacherRules: {
-        salary: [{ required: true, message: '请输入课程课酬', trigger: 'blur' }],
-        subsidy: [{ required: true, message: '请输入课时补贴', trigger: 'blur' }],
-        radio: [{ required: true, message: '请选择调整范围', trigger: 'blur' }]
+        salary: [
+          { required: true, message: "请输入课程课酬", trigger: "blur" },
+        ],
+        subsidy: [
+          { required: true, message: "请输入课时补贴", trigger: "blur" },
+        ],
+        radio: [{ required: true, message: "请选择调整范围", trigger: "blur" }],
       },
-    }
+    };
   },
-  mounted () {
-    this.init()
-    console.log(this.teachMode)
+  mounted() {
+    this.init();
+    console.log(this.teachMode);
   },
-  activated () { },
+  activated() {},
   methods: {
-    getList () {
-
-      getCourseTeachers({ courseScheduleId: this.courseScheduleId }).then(res => {
-        if (res.code == 200) {
-          this.tableList = res.data
+    getList() {
+      getCourseTeachers({ courseScheduleId: this.courseScheduleId }).then(
+        (res) => {
+          if (res.code == 200) {
+            this.tableList = res.data;
+          }
         }
-      })
+      );
     },
-    init () {
-      this.getList()
+    init() {
+      this.getList();
     },
-    lookGPS (row) {
+    lookGPS(row) {
       this.activeRow = row;
-      this.gpsVisible = true
+      this.gpsVisible = true;
     },
     hand(row) {
-      this.handVisible = true
-      this.detail = row
+      this.handVisible = true;
+      this.detail = row;
     },
-    mackAttendance (row) {
-
-      this.$confirm('确定补考勤', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        let params = {
-          teacherId: row.teacherId,
-          courseScheduleId: this.courseScheduleId,
-          signInStatus: 1,
-          signOutStatus: 1
-        };
-        updateTeacherAttendance(params).then(res => {
-          if (res.code == 200) {
-            this.$message.success("补卡成功");
-            this.getList();
-          } else {
-            this.$message.error(res.msg);
-          }
-        });
-
-      }).catch(() => { })
-
+    mackAttendance(row) {
+      this.$confirm("确定补考勤", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          let params = {
+            teacherId: row.teacherId,
+            courseScheduleId: this.courseScheduleId,
+            signInStatus: 1,
+            signOutStatus: 1,
+          };
+          updateTeacherAttendance(params).then((res) => {
+            if (res.code == 200) {
+              this.$message.success("补卡成功");
+              this.getList();
+            } else {
+              this.$message.error(res.msg);
+            }
+          });
+        })
+        .catch(() => {});
     },
-    setCourseInfo (row) {
+    setCourseInfo(row) {
       // this.tempSelectRow = row
-      getTeacherSalary({ courseScheduleId: this.courseScheduleId }).then(res => {
-        if (res.code == 200) {
-          this.innerVisible = true;
-          for (const item of res.data) {
-            if (row.teacherId == item.teacherId) {
-              this.activeTeacher = item
-              break
+      getTeacherSalary({ courseScheduleId: this.courseScheduleId }).then(
+        (res) => {
+          if (res.code == 200) {
+            this.innerVisible = true;
+            for (const item of res.data) {
+              if (row.teacherId == item.teacherId) {
+                this.activeTeacher = item;
+                break;
+              }
             }
+            // this.courseScheduleId = row.courseScheduleId;
+            // row.teachingTeachers
+            // this.activeTeacherList = res.data;
           }
-          // this.courseScheduleId = row.courseScheduleId;
-          // row.teachingTeachers
-          // this.activeTeacherList = res.data;
         }
-      })
-
+      );
     },
-    resetTeacher (row) {
+    resetTeacher(row) {
       this.innerVisible = true;
       this.activeTeacher = row;
     },
-    resetSalary () {
-      let that = this
-      this.$refs['teacherMask'].validate(res => {
+    resetSalary() {
+      let that = this;
+      this.$refs["teacherMask"].validate((res) => {
         if (res) {
           updateTeacherCoursesSalary({
             courseScheduleId: this.courseScheduleId,
             salary: this.teacherMask.salary,
             teacherId: this.activeTeacher.teacherId,
-            scope: this.teacherMask.radio
-
-          }).then(res => {
+            scope: this.teacherMask.radio,
+          }).then((res) => {
             if (res.code == 200) {
-              this.$message.success('修改成功')
+              this.$message.success("修改成功");
               this.teacherMask = {
-                salary: '',
-                subsidy: '',
-                radio: ''
-              }
+                salary: "",
+                subsidy: "",
+                radio: "",
+              };
               // this.dialogTableVisible = false;
               this.innerVisible = false;
               // that.setCourseInfo(this.tempSelectRow)
             }
-          })
+          });
         } else {
-          this.$message.error('请填写必要参数')
+          this.$message.error("请填写必要参数");
         }
-      })
-
-    }
+      });
+    },
   },
-}
+};
 </script>

+ 118 - 93
src/views/teamDetail/teamCourseList.vue

@@ -2,7 +2,13 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      课表列表 <filter-search ref='filterSearch' @reload="reloadSearch" :keys="['searchType']" :moreKeys="['start', 'end', 'organId']"/>
+      课表列表
+      <filter-search
+        ref="filterSearch"
+        @reload="reloadSearch"
+        :keys="['searchType']"
+        :moreKeys="['start', 'end', 'organId']"
+      />
     </h2>
     <div class="m-core">
       <!-- 搜索类型 -->
@@ -75,7 +81,7 @@
             placeholder="课程组类型"
           >
             <el-option
-              v-for="(item) in courseListType"
+              v-for="item in courseListType"
               :key="item.value"
               :value="item.value"
               :label="item.label"
@@ -191,20 +197,19 @@
           <el-col>
             <el-button native-type="submit" type="primary">搜索</el-button>
             <el-button native-type="reset" type="danger">重置</el-button>
-            <el-button
-              v-permission="'export/superFindCourseSchedules'"
-              @click="onCourseExport"
-              type="primary"
-              >导出课表</el-button
-            >
-                <el-button
-              v-permission=" 'courseSchedule/batchDelete?page=teamCourseList'"
-             @click="removeCourse"
-             :disabled='!deleteList.length>0'
-              type="primary"
-              >批量删除</el-button
-            >
-
+            <auth auths="export/superFindCourseSchedules">
+              <el-button @click="onCourseExport" type="primary"
+                >导出课表</el-button
+              >
+            </auth>
+            <auth auths="courseSchedule/batchDelete?page=teamCourseList">
+              <el-button
+                @click="removeCourse"
+                :disabled="!deleteList.length > 0"
+                type="primary"
+                >批量删除</el-button
+              >
+            </auth>
           </el-col>
         </el-row>
       </save-form>
@@ -213,12 +218,14 @@
         <el-table
           :data="tableList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-          @selection-change="handleSelectionChange">
+          @selection-change="handleSelectionChange"
         >
-         <el-table-column
-          v-permission="'courseSchedule/batchDelete?page=teamCourseList'"
-      type="selection"
-      width="55"></el-table-column>
+          >
+          <el-table-column
+            v-permission="'courseSchedule/batchDelete?page=teamCourseList'"
+            type="selection"
+            width="55"
+          ></el-table-column>
           <el-table-column
             align="center"
             prop="organName"
@@ -226,15 +233,14 @@
           ></el-table-column>
           <el-table-column
             align="center"
-            width="130px"
+            width="150px"
             prop="musicGroupId"
             label="乐团/课程组编号"
           >
             <template slot-scope="scope">
-                 <el-button type="text" @click="gotoCourse(scope.row)">
-              <copy-text>{{ scope.row.musicGroupId }}</copy-text>
-            </el-button>
-
+              <el-button type="text" @click="gotoCourse(scope.row)">
+                <copy-text>{{ scope.row.musicGroupId }}</copy-text>
+              </el-button>
             </template>
           </el-table-column>
           <el-table-column
@@ -360,12 +366,12 @@
                   "
                   >删除</el-button
                 > -->
-                <el-button
-                  type="text"
-                  v-if="permission('teamCourseList/details')"
-                  @click="lookDetail(scope.row)"
-                  >详情</el-button
-                >
+                <auth auths="/teamCourseListDetail">
+                  <!--    v-if="permission('teamCourseList/details')" -->
+                  <el-button type="text" @click="lookDetail(scope.row)"
+                    >详情</el-button
+                  >
+                </auth>
                 <el-button
                   type="text"
                   v-if="
@@ -393,7 +399,7 @@
                     !isAddCom(scope.row) &&
                     permission('courseSchedule/courseMerge') &&
                     scope.row.newCourseId <= 0 &&
-                    !scope.row.beMerged&&
+                    !scope.row.beMerged &&
                     !scope.row.isLock // 李焕辜临轩要求冻结课程不能合并
                   "
                   >添加合课</el-button
@@ -410,8 +416,9 @@
                 <el-button
                   type="text"
                   v-if="
-                    scope.row.newCourseId== scope.row.id&&
-                    permission('courseSchedule/mergeCourseSplit')&&scope.row.status!='OVER'
+                    scope.row.newCourseId == scope.row.id &&
+                    permission('courseSchedule/mergeCourseSplit') &&
+                    scope.row.status != 'OVER'
                   "
                   @click="resetCompound(scope.row)"
                   >取消合并</el-button
@@ -525,10 +532,17 @@
       </el-form>
       <!--  v-if="maskForm.status != 'NOT_START'" -->
       <el-tabs v-model.trim="activeName" type="card" @tab-click="handleClick">
-        <el-tab-pane label="学员列表" name="first">
+        <el-tab-pane
+          label="学员列表"
+          name="first"
+          v-if="permission('/teamCourseListDetailStudnetList')"
+        >
           <div v-if="activeName == 'first'">
             <!-- studentRollCall  -->
-            <studentRollCall :courseScheduleId="maskForm.id" :isMainGo='isMainGo'></studentRollCall>
+            <studentRollCall
+              :courseScheduleId="maskForm.id"
+              :isMainGo="isMainGo"
+            ></studentRollCall>
           </div>
         </el-tab-pane>
         <!-- <el-tab-pane label="GPS定位"
@@ -538,7 +552,11 @@
             <gpsLoction :courseScheduleId="maskForm.id"></gpsLoction>
           </div>
         </el-tab-pane> -->
-        <el-tab-pane label="老师列表" name="second">
+        <el-tab-pane
+          label="老师列表"
+          name="second"
+          v-if="permission('/teamCourseListDetailTeacherList')"
+        >
           <div v-if="activeName == 'second'">
             <teacherList
               :courseScheduleId="maskForm.id"
@@ -547,20 +565,28 @@
           </div>
         </el-tab-pane>
         <!--      v-if="maskForm.teachMode != 'OFFLINE'" -->
-        <el-tab-pane label="作业" name="third">
+        <el-tab-pane
+          label="作业"
+          name="third"
+          v-if="permission('/teamCourseListDetailWorkList')"
+        >
           <div v-if="activeName == 'third'">
             <studentWork :courseScheduleId="maskForm.id"></studentWork>
           </div>
         </el-tab-pane>
         <!--    v-if="maskForm.type == 'VIP' || maskForm.type == 'PRACTICE'" -->
-        <el-tab-pane label="评论" name="four">
+        <el-tab-pane
+          label="评论"
+          name="four"
+          v-if="permission('/teamCourseListDetailCommentList')"
+        >
           <div v-if="activeName == 'four'">
             <courseEvaluate :courseScheduleId="maskForm.id"></courseEvaluate>
           </div>
         </el-tab-pane>
         <el-tab-pane
           label="调整记录"
-          v-if="permission('courseSchedule/queryCourseAdjustDetail')"
+          v-if="permission('/teamCourseListDetailAdjust')"
           name="five"
         >
           <div v-if="activeName == 'five'">
@@ -598,10 +624,7 @@
 <script>
 import pagination from "@/components/Pagination/index";
 import {
-  getTeacher,
-  getMusicGroupAllClass,
   superFindCourseSchedules,
-  getEmployeeOrgan,
   cleanAttendance,
   cancelCourseMerge,
 } from "@/api/buildTeam";
@@ -637,7 +660,7 @@ const initSearch = {
   organIdList: null,
   courseStatus: null,
   courseType: null,
-  timer: [nowTime,nowTime], // 时间
+  timer: [nowTime, nowTime], // 时间
   class: null,
   teachType: null,
   mergeCourseType: null,
@@ -675,8 +698,8 @@ export default {
       id: null,
       show: false,
       compoundList: [],
-      deleteList:[],
-      isMainGo:false
+      deleteList: [],
+      isMainGo: false,
     };
   },
   components: {
@@ -691,9 +714,8 @@ export default {
     infoMsg,
     SchoolLocation,
   },
-  created(){
-      this.searchForm.timer = [nowTime, nowTime]
-
+  created() {
+    this.searchForm.timer = [nowTime, nowTime];
   },
   computed: {
     workTypeOptions() {
@@ -702,33 +724,32 @@ export default {
     mergeCourseTypeOptions() {
       return objectToOptions(mergeCourseType);
     },
-
   },
   mounted() {
-    const { query } = this.$route
+    const { query } = this.$route;
     if (query.start || query.end) {
-      this.searchForm.timer = [query.start, query.end]
+      this.searchForm.timer = [query.start, query.end];
     } else {
-      let flag = false
-      for(let item in this.searchForm){
-        if(typeof this.searchForm[item] == 'object'){
+      let flag = false;
+      for (let item in this.searchForm) {
+        if (typeof this.searchForm[item] == "object") {
           // 对象或者数组
-          if(this.searchForm[item]?.length >0){
-            flag = true
+          if (this.searchForm[item]?.length > 0) {
+            flag = true;
           }
-        }else{
-          if (this.searchForm[item]){
-            flag = true
+        } else {
+          if (this.searchForm[item]) {
+            flag = true;
           }
         }
       }
-      if(!flag){
-        this.searchForm.timer = [nowTime, nowTime]
+      if (!flag) {
+        this.searchForm.timer = [nowTime, nowTime];
       }
     }
 
     if (query.organId) {
-      this.searchForm.organIdList = Number(query.organId)
+      this.searchForm.organIdList = Number(query.organId);
     }
     this.$store.dispatch("setBranchs");
     this.$store.dispatch("setTeachers");
@@ -744,19 +765,19 @@ export default {
       return permission(str, parent);
     },
     reloadSearch() {
-      this.searchForm.timer = [nowTime, nowTime]
-      this.getList()
+      this.searchForm.timer = [nowTime, nowTime];
+      this.getList();
     },
     async removeCourse() {
-      if(this.deleteList.length < 1){
-        this.$message.error('请自少选择一个班级')
-        return
+      if (this.deleteList.length < 1) {
+        this.$message.error("请自少选择一个班级");
+        return;
       }
 
-      let arr = this.deleteList.map(course=>{
-        return course.id
-      })
-      let courseScheduleIds = arr.join(',')
+      let arr = this.deleteList.map((course) => {
+        return course.id;
+      });
+      let courseScheduleIds = arr.join(",");
       try {
         await this.$confirm("是否确认删除此数据?", "提示", {
           type: "warning",
@@ -826,8 +847,8 @@ export default {
     },
     onCourseExport() {
       // 课表导出
-        if(!this.getSearchForm()){
-        return
+      if (!this.getSearchForm()) {
+        return;
       }
       let url = "/api-web/export/superFindCourseSchedules";
 
@@ -880,8 +901,8 @@ export default {
         .catch(() => {});
     },
     getList() {
-      if(!this.getSearchForm()){
-        return
+      if (!this.getSearchForm()) {
+        return;
       }
       superFindCourseSchedules(this.getSearchForm()).then((res) => {
         if (res.code == 200) {
@@ -903,8 +924,8 @@ export default {
             this.maskForm.id = row.id;
             this.activeName = "first";
             this.classVisible = true;
-            this.isMainGo = this.$refs.filterSearch?.show
-            console.log(this.isMainGo)
+            this.isMainGo = this.$refs.filterSearch?.show;
+            console.log(this.isMainGo);
           }
         }
       );
@@ -981,23 +1002,27 @@ export default {
         })
         .catch(() => {});
     },
-    handleSelectionChange(arr){
+    handleSelectionChange(arr) {
       this.deleteList = arr;
     },
-    gotoCourse(row){
-      if(row.groupType == 'MUSIC'){
-        this.$router.push({path:'/business/teamDetail',query:{search:row.musicGroupId}})
-      }else if(row.groupType == 'VIP'){
-         this.$router.push({path:'/business/vipList',query:{search:row.musicGroupId}})
-      }else if(
-        row.groupType == 'PRACTICE'
-      ){
-         this.$router.push({
-        path: "/business/accompany",
-        query: { search: row.musicGroupId },
-      });
+    gotoCourse(row) {
+      if (row.groupType == "MUSIC") {
+        this.$router.push({
+          path: "/business/teamDetail",
+          query: { search: row.musicGroupId },
+        });
+      } else if (row.groupType == "VIP") {
+        this.$router.push({
+          path: "/business/vipList",
+          query: { search: row.musicGroupId },
+        });
+      } else if (row.groupType == "PRACTICE") {
+        this.$router.push({
+          path: "/business/accompany",
+          query: { search: row.musicGroupId },
+        });
       }
-    }
+    },
   },
   filters: {
     isCall(val) {