Browse Source

02/04 12:22

11
261568008@qq.com 5 years ago
parent
commit
5a4a6b1c43
3 changed files with 211 additions and 244 deletions
  1. 2 1
      src/utils/searchArray.js
  2. 2 1
      src/utils/vueFilter.js
  3. 207 242
      src/views/teamDetail/teamCourseList.vue

+ 2 - 1
src/utils/searchArray.js

@@ -11,7 +11,8 @@ const courseType = [
   { label: '练习课', value: 'PRACTICE' },
   { label: '启蒙课', value: 'ENLIGHTENMENT' },
   { label: '集训课', value: 'TRAINING' },
-  { label: '课堂课', value: 'CLASSROOM' }
+  { label: '课堂课', value: 'CLASSROOM' },
+  { label: '陪练课', value: 'PRACTICE' }
 ]
 
 // 考勤状态

+ 2 - 1
src/utils/vueFilter.js

@@ -85,7 +85,8 @@ Vue.filter('coursesType', (value) => {
     TRAINING: '集训课',
     TRAINING_SINGLE: '集训单技课',
     TRAINING_MIX: '集训合奏课',
-    CLASSROOM: '课堂课'
+    CLASSROOM: '课堂课',
+    PRACTICE:'陪练课'
   }
   return template[value]
 })

+ 207 - 242
src/views/teamDetail/teamCourseList.vue

@@ -1,286 +1,239 @@
 <template>
-  <div class='m-container'>
+  <div class="m-container">
     <h2>
       <div class="squrt"></div>课表列表
     </h2>
     <div class="m-core">
       <!-- 搜索类型 -->
-      <el-form :inline="true"
-               class="searchForm"
-               v-model="searchForm">
+      <el-form :inline="true" class="searchForm" v-model="searchForm">
         <el-form-item>
-          <el-input v-model="searchForm.search"
-                    @keyup.enter.native='search'
-                    placeholder="乐团名或VIP课名" />
+          <el-input
+            v-model="searchForm.search"
+            @keyup.enter.native="search"
+            placeholder="乐团名或VIP课名"
+          />
         </el-form-item>
         <el-form-item>
-          <el-select v-model="searchForm.schoolId"
-                     clearable
-                     filterable
-                     placeholder="请选择教学点">
-            <el-option v-for="(item, index) in schoolList"
-                       :key="index"
-                       :value="item.id"
-                       :label="item.name"></el-option>
+          <el-select v-model="searchForm.schoolId" clearable filterable placeholder="请选择教学点">
+            <el-option
+              v-for="(item, index) in schoolList"
+              :key="index"
+              :value="item.id"
+              :label="item.name"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select v-model="searchForm.teacherIdList"
-                     clearable
-                     filterable
-                     placeholder="请选择老师">
-            <el-option v-for="(item, index) in teacherList"
-                       :key="index"
-                       :value="item.id"
-                       :label="item.realName"></el-option>
+          <el-select v-model="searchForm.teacherIdList" clearable filterable placeholder="请选择老师">
+            <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>
-          <el-select class='multiple'
-                     v-model="searchForm.organIdList"
-                     filterable
-                     clearable
-                     placeholder="请选择分部">
-            <el-option v-for="(item,index) in organList"
-                       :key="index"
-                       :label="item.name"
-                       :value="item.id"></el-option>
+          <el-select
+            class="multiple"
+            v-model="searchForm.organIdList"
+            filterable
+            clearable
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item,index) in organList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select v-model="searchForm.courseType"
-                     clearable
-                     filterable
-                     placeholder="课程类型">
-            <el-option v-for="(item, index) in courseType"
-                       :key="index"
-                       :value="item.value"
-                       :label="item.label"></el-option>
+          <el-select v-model="searchForm.courseType" clearable filterable placeholder="课程类型">
+            <el-option
+              v-for="(item, index) in courseType"
+              :key="index"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select v-model="searchForm.courseStatus"
-                     clearable
-                     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-select v-model="searchForm.courseStatus" clearable 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-select>
         </el-form-item>
         <el-form-item>
-          <el-date-picker v-model="searchForm.timer"
-                          style="width:420px;"
-                          type="daterange"
-                          value-format="yyyy-MM-dd"
-                          range-separator="至"
-                          start-placeholder="开始日期"
-                          end-placeholder="结束日期">
-          </el-date-picker>
+          <el-date-picker
+            v-model="searchForm.timer"
+            style="width:420px;"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item>
-          <div class='searchBtn'
-               @click="search">搜索</div>
+          <div class="searchBtn" @click="search">搜索</div>
         </el-form-item>
         <el-form-item>
-          <div class='searchBtn exportBtn'
-               v-permission="'export/superFindCourseSchedules'"
-               @click="onCourseExport">导出课表</div>
+          <div
+            class="searchBtn exportBtn"
+            v-permission="'export/superFindCourseSchedules'"
+            @click="onCourseExport"
+          >导出课表</div>
         </el-form-item>
       </el-form>
-      <div class="btnWraps">
-      </div>
+      <div class="btnWraps"></div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           prop="organName"
-                           label="分部名称">
-          </el-table-column>
-          <el-table-column align='center'
-                           prop="id"
-                           label="课程编号">
+        <el-table :data="tableList" :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+          <el-table-column align="center" prop="organName" label="分部名称"></el-table-column>
+          <el-table-column align="center" prop="id" label="课程编号"></el-table-column>
+          <el-table-column align="center" width="200px" label="时间">
+            <template
+              slot-scope="scope"
+            >{{ scope.row.startClassTime ? scope.row.startClassTime.substr(0, 16) : '' }}-{{ scope.row.endClassTime ? scope.row.endClassTime.substr(11,5) : ''}}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           width="200px"
-                           label="时间">
+          <el-table-column align="center" prop="groupName" label="乐团/VIP名"></el-table-column>
+          <el-table-column align="center" prop="classGroupName" label="班级名称"></el-table-column>
+          <el-table-column align="center" prop="name" label="课程名称"></el-table-column>
+          <el-table-column align="center" label="课程类型">
             <template slot-scope="scope">
-              {{ scope.row.startClassTime ? scope.row.startClassTime.substr(0, 16) : '' }}-{{ scope.row.endClassTime ? scope.row.endClassTime.substr(11,5) : ''}}
+              <div>{{ scope.row.type | coursesType}}</div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="groupName"
-                           label="乐团/VIP名">
-          </el-table-column>
-          <el-table-column align='center'
-                           prop="classGroupName"
-                           label="班级名称">
-          </el-table-column>
-          <el-table-column align='center'
-                           prop="name"
-                           label="课程名称">
-          </el-table-column>
-          <el-table-column align='center'
-                           label="课程类型">
+          <el-table-column align="center" label="教学模式">
             <template slot-scope="scope">
-              <div>
-                {{ scope.row.type | coursesType}}
-              </div>
+              <div>{{ scope.row.teachMode | teachMode}}</div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="教学模式">
+          <el-table-column align="center" prop="schoolName" label="教学点">
             <template slot-scope="scope">
-              <div>
-                {{ scope.row.teachMode | teachMode}}
-              </div>
+              <div>{{scope.row.schoolName?scope.row.schoolName:'网络教室'}}</div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="schoolName"
-                           label="教学点">
-          </el-table-column>
-          <el-table-column align='center'
-                           prop="courseScheduleStatus"
-                           label="课程状态">
+          <el-table-column align="center" prop="courseScheduleStatus" label="课程状态">
             <template slot-scope="scope">
-              <div>
-                {{ scope.row.status | coursesStatus }}
-              </div>
+              <div>{{ scope.row.status | coursesStatus }}</div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="是否签到">
+          <el-table-column align="center" label="是否签到">
             <template slot-scope="scope">
-              <div>
-                {{ scope.row.isSignIn | attendanceType}}
-              </div>
+              <div>{{ scope.row.isSignIn | attendanceType}}</div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="是否签退">
+          <el-table-column align="center" label="是否签退">
             <template slot-scope="scope">
-              <div>
-                {{ scope.row.isSignOut | attendanceOutType}}
-              </div>
+              <div>{{ scope.row.isSignOut | attendanceOutType}}</div>
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="isCallNames"
-                           label="是否点名">
-            <template slot-scope="scope">
-              {{ scope.row.isCallNames ? '是' : '否' }}
-            </template>
+          <el-table-column align="center" prop="isCallNames" label="是否点名">
+            <template slot-scope="scope">{{ scope.row.isCallNames ? '是' : '否' }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="teacherName"
-                           label="指导老师">
-          </el-table-column>
-          <el-table-column align='center'
-                           label="详情">
+          <el-table-column align="center" prop="teacherName" label="指导老师"></el-table-column>
+          <el-table-column align="center" label="详情">
             <template slot-scope="scope">
               <div>
-                <el-button type="text"
-                           @click="lookDetail(scope.row)">详情</el-button>
+                <el-button type="text" @click="lookDetail(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" />
+        <pagination
+          :total="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog title="课表详情"
-               :visible.sync="classVisible"
-               :before-close="closeClassVisible">
-      <el-form :model="maskForm"
-               :inline="true">
+    <el-dialog title="课表详情" :visible.sync="classVisible" :before-close="closeClassVisible">
+      <el-form :model="maskForm" :inline="true">
         <el-form-item label="老师姓名">
           <!-- <el-input v-model="maskForm.teacherName"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.teacherName}}</div>
         </el-form-item>
         <el-form-item label="课程模式">
           <!-- <el-input :value="maskForm.teachMode | teachMode"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.teachMode| teachMode}}</div>
           <!-- <span>{{maskForm.teachMode }}</span> -->
         </el-form-item>
         <el-form-item label="课程类型">
           <!-- <el-input :value="maskForm.type |classType"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.type|coursesType}}</div>
         </el-form-item>
         <!-- courseScheduleStatus -->
         <el-form-item label="课程状态">
           <!-- <el-input :value="maskForm.type |classType"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.status | coursesStatus}}</div>
         </el-form-item>
         <el-form-item label="签到时间">
           <!-- <el-input v-model=" maskForm.signInTime"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.signInTime}}</div>
         </el-form-item>
         <el-form-item label="签退时间">
           <!-- <el-input v-model="maskForm.signOutTime"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.signOutTime}}</div>
         </el-form-item>
         <el-form-item label="是否点名">
           <!-- <el-input :value="maskForm.isCallNames | isCall"
-                    disabled></el-input> -->
+          disabled></el-input>-->
           <div class="inputStyle">{{maskForm.isCallNames | isCall}}</div>
         </el-form-item>
         <el-form-item label="签到状态">
           <!-- <el-input :value=" maskForm.isSignIn | attendanceType"
-                    disabled></el-input> -->
-          <div class="inputStyle"
-               :class="maskForm.isSignIn==1?'':'red'">{{ maskForm.isSignIn | attendanceType}}</div>
+          disabled></el-input>-->
+          <div
+            class="inputStyle"
+            :class="maskForm.isSignIn==1?'':'red'"
+          >{{ maskForm.isSignIn | attendanceType}}</div>
         </el-form-item>
         <el-form-item label="签退状态">
           <!-- <el-input :value=" maskForm.isSignOut | attendanceOutType"
-                    disabled></el-input> -->
-          <div class="inputStyle"
-               :class="maskForm.isSignIn==1?'':'red'">{{ maskForm.isSignOut | attendanceOutType}}</div>
+          disabled></el-input>-->
+          <div
+            class="inputStyle"
+            :class="maskForm.isSignIn==1?'':'red'"
+          >{{ maskForm.isSignOut | attendanceOutType}}</div>
         </el-form-item>
         <el-form-item label="备注">
           <!-- <el-input :value=" maskForm.isSignOut | attendanceOutType"
-                    disabled></el-input> -->
-          <div class="inputStyle">{{  maskForm.remark}}</div>
+          disabled></el-input>-->
+          <div class="inputStyle">{{ maskForm.remark}}</div>
         </el-form-item>
       </el-form>
-      <el-tabs v-model="activeName"
-               v-if="maskForm.status != 'NOT_START'"
-               type="card"
-               @tab-click="handleClick">
-        <el-tab-pane label="点名"
-                     name="first">
+      <el-tabs
+        v-model="activeName"
+        v-if="maskForm.status != 'NOT_START'"
+        type="card"
+        @tab-click="handleClick"
+      >
+        <el-tab-pane label="点名" name="first">
           <div v-if="activeName == 'first'">
             <!-- studentRollCall  -->
-            <studentRollCall :courseScheduleId='maskForm.id'>
-            </studentRollCall>
+            <studentRollCall :courseScheduleId="maskForm.id"></studentRollCall>
           </div>
         </el-tab-pane>
-        <el-tab-pane label="GPS定位"
-                     v-if="maskForm.teachMode == 'OFFLINE'"
-                     name="second">
+        <el-tab-pane label="GPS定位" v-if="maskForm.teachMode == 'OFFLINE'" name="second">
           <div v-if="activeName == 'second'">
-            <gpsLoction :courseScheduleId='maskForm.id'></gpsLoction>
+            <gpsLoction :courseScheduleId="maskForm.id"></gpsLoction>
           </div>
         </el-tab-pane>
-        <el-tab-pane label="作业"
-                     v-if="maskForm.type != 'VIP'"
-                     name="third">
+        <el-tab-pane label="作业" v-if="maskForm.type != 'VIP'" name="third">
           <div v-if="activeName == 'third'">
-            <studentWork :courseScheduleId='maskForm.id'></studentWork>
+            <studentWork :courseScheduleId="maskForm.id"></studentWork>
           </div>
         </el-tab-pane>
       </el-tabs>
@@ -288,19 +241,29 @@
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { getTeacher, getMusicGroupAllClass, superFindCourseSchedules, getEmployeeOrgan } from '@/api/buildTeam'
-import { getSchool } from '@/api/systemManage'
-import { courseType } from '@/utils/searchArray'
-import studentRollCall from './componentCourse/studentRollCall'
-import gpsLoction from './componentCourse/gpsLocation'
-import studentWork from './componentCourse/studentWork'
-import axios from 'axios'
-import { getToken } from '@/utils/auth'
-let nowTime = new Date()
-nowTime = nowTime.getFullYear() + '-' + (nowTime.getMonth() + 1) + '-' + nowTime.getDate()
+import pagination from "@/components/Pagination/index";
+import {
+  getTeacher,
+  getMusicGroupAllClass,
+  superFindCourseSchedules,
+  getEmployeeOrgan
+} from "@/api/buildTeam";
+import { getSchool } from "@/api/systemManage";
+import { courseType } from "@/utils/searchArray";
+import studentRollCall from "./componentCourse/studentRollCall";
+import gpsLoction from "./componentCourse/gpsLocation";
+import studentWork from "./componentCourse/studentWork";
+import axios from "axios";
+import { getToken } from "@/utils/auth";
+let nowTime = new Date();
+nowTime =
+  nowTime.getFullYear() +
+  "-" +
+  (nowTime.getMonth() + 1) +
+  "-" +
+  nowTime.getDate();
 export default {
-  data () {
+  data() {
     return {
       classVisible: false,
       timerVisible: false,
@@ -331,53 +294,52 @@ export default {
       maskForm: {},
       activeName: "first"
       // classList: []
-    }
-
+    };
   },
   components: {
     pagination,
     studentRollCall,
     gpsLoction,
     studentWork
-
   },
-  activated () {
+  activated() {
     this.init();
   },
-  mounted () {
+  mounted() {
     this.init();
   },
   methods: {
-    init () {
+    init() {
       this.getList();
       // 获取所有老师
       getTeacher().then(res => {
         if (res.code == 200) {
           this.teacherList = res.data;
         }
-      })
+      });
 
       // 获取教学点
       getSchool().then(res => {
         if (res.code == 200) {
-          this.schoolList = res.data
+          this.schoolList = res.data;
         }
-      })
+      });
 
       getEmployeeOrgan().then(res => {
         if (res.code == 200) {
           this.organList = res.data;
         }
-      })
+      });
     },
-    search () {
+    search() {
       this.rules.page = 1;
       this.getList();
     },
-    onCourseExport() { // 课表导出
-      let searchForm = this.searchForm
+    onCourseExport() {
+      // 课表导出
+      let searchForm = this.searchForm;
       if (!searchForm.timer) {
-        searchForm.timer = []
+        searchForm.timer = [];
       }
       let obj = {
         courseStatus: searchForm.courseStatus || null,
@@ -389,86 +351,89 @@ export default {
         search: searchForm.search || null,
         teacherIdList: searchForm.teacherIdList || null,
         schoolId: searchForm.schoolId || null
-      }
-      let url = '/api-web/export/superFindCourseSchedules'
+      };
+      let url = "/api-web/export/superFindCourseSchedules";
       const options = {
-        method: 'get',
+        method: "get",
         headers: {
-          'Authorization': getToken()
+          Authorization: getToken()
         },
         params: obj,
         url,
-        responseType: 'blob'
-      }
-      this.$confirm('您确定导出报表', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        axios(options).then(res => {
-          let blob = new Blob([res.data], {
-            // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
-            type: 'application/vnd.ms-excel;charset=utf-8'
-            //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
-          })
-          let objectUrl = URL.createObjectURL(blob)
-          let link = document.createElement("a")
-          let fname = '课表列表' + new Date().getTime() //下载文件的名字
-          link.href = objectUrl
-          link.setAttribute("download", fname)
-          document.body.appendChild(link)
-          link.click()
+        responseType: "blob"
+      };
+      this.$confirm("您确定导出报表", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          axios(options).then(res => {
+            let blob = new Blob([res.data], {
+              // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
+              type: "application/vnd.ms-excel;charset=utf-8"
+              //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
+            });
+            let objectUrl = URL.createObjectURL(blob);
+            let link = document.createElement("a");
+            let fname = "课表列表" + new Date().getTime(); //下载文件的名字
+            link.href = objectUrl;
+            link.setAttribute("download", fname);
+            document.body.appendChild(link);
+            link.click();
+          });
         })
-      }).catch(() => {})
+        .catch(() => {});
     },
-    getList () {
-      let searchForm = this.searchForm
+    getList() {
+      let searchForm = this.searchForm;
       if (!searchForm.timer) {
-        searchForm.timer = []
+        searchForm.timer = [];
       }
       let obj = {
         courseStatus: searchForm.courseStatus || null,
         courseType: searchForm.courseType || null,
         startTime: searchForm.timer[0] || null,
         endTime: searchForm.timer[1] || null,
-        page: this.rules.page, rows: this.rules.limit,
+        page: this.rules.page,
+        rows: this.rules.limit,
         classGroupId: searchForm.class || null,
         organIdList: searchForm.organIdList || null,
         search: searchForm.search || null,
         teacherIdList: searchForm.teacherIdList || null,
         schoolId: searchForm.schoolId || null
-      }
+      };
       superFindCourseSchedules(obj).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
         }
-      })
+      });
     },
-    lookDetail (row) {
-      this.maskForm = row
-      this.activeName = 'first'
+    lookDetail(row) {
+      this.maskForm = row;
+      this.activeName = "first";
       // console.log(row)
       this.classVisible = true;
     },
-    handleClick (tab, event) {
+    handleClick(tab, event) {
       // console.log(tab, event);
     },
-    closeClassVisible () {
-      this.activeName = null
+    closeClassVisible() {
+      this.activeName = null;
       this.classVisible = false;
     }
   },
   filters: {
-    isCall (val) {
+    isCall(val) {
       if (val == 0) {
-        return '未点名'
+        return "未点名";
       } else if (val == 1) {
-        return '已点名'
+        return "已点名";
       }
     }
   }
-}
+};
 </script>
 <style lang="scss" scoped>
 .visible {