浏览代码

Merge branch 'LAO_MO' into online

mo 5 年之前
父节点
当前提交
730730f687

+ 11 - 0
src/api/buildTeam.js

@@ -1063,6 +1063,15 @@ export function getGroupReviews (data) {
     params: data
   })
 }
+
+// vip评论
+export function getVipGroup (data) {
+  return request({
+    url: api + '/courseReview/getVipGroup',
+    method: 'get',
+    params: data
+  })
+}
 //  评论详情 
 export function getReviewsInfo (data) {
   return request({
@@ -1072,6 +1081,8 @@ export function getReviewsInfo (data) {
   })
 }
 
+
+
 // 获取所有教务老师
 export function findEducationUsers (data) {
   return request({

+ 33 - 13
src/views/evaluateManager/index.vue

@@ -4,12 +4,24 @@
       <div class="squrt"></div>评论管理
     </h2>
     <div class="m-core">
-      <el-tabs v-model.trim="activeIndex" type="card" @tab-click="handleClick">
-        <el-tab-pane label="月报" name="1" >
+      <el-tabs v-model.trim="activeIndex"
+               type="card"
+               @tab-click="handleClick">
+        <el-tab-pane label="月报"
+                     name="1"
+                     v-if="permissionList.evaluateList">
           <evaluateList v-if="activeIndex == 1"></evaluateList>
         </el-tab-pane>
-        <el-tab-pane label="网管课评价" name="2">
-          <networkList  v-if="activeIndex == 2"></networkList>
+        <el-tab-pane label="网管课评价"
+                     name="2"
+                     v-if="permissionList.networkList">
+          <networkList v-if="activeIndex == 2"></networkList>
+        </el-tab-pane>
+        <el-tab-pane label="vip课评价"
+                     v-if="permissionList.vipEvaluateList"
+                     name="3">
+          <vipEvaluateList v-if="activeIndex == 3">
+          </vipEvaluateList>
         </el-tab-pane>
       </el-tabs>
     </div>
@@ -18,27 +30,35 @@
 <script>
 import evaluateList from "@/views/evaluateManager/evaluateList";
 import networkList from '@/views/evaluateManager/networkList'
+import vipEvaluateList from '@/views/evaluateManager/vipEvaluateList'
+import { permission } from "@/utils/directivePage";
 export default {
   components: {
     evaluateList,
-    networkList
+    networkList,
+    vipEvaluateList
   },
-  data() {
+  data () {
     return {
-      activeIndex: "1"
-    };
+      activeIndex: "1",
+      permissionList: {
+        evaluateList: permission("/commentManager/evaluateList"),
+        networkList: permission("/commentManager/networkList"),
+        studentVip: permission("/studentDetail/studentVip"),
+      },
+    }
   },
-  created(){
+  created () {
     this.init();
   },
-  activated(){
+  activated () {
     this.init();
   },
   methods: {
-    init(){
-      this.$route.query.activeIndex?this.activeIndex = this.$route.query.activeIndex:this.activeIndex;
+    init () {
+      this.$route.query.activeIndex ? this.activeIndex = this.$route.query.activeIndex : this.activeIndex;
     },
-    handleClick() {}
+    handleClick () { }
   }
 };
 </script>

+ 4 - 4
src/views/evaluateManager/networkList.vue

@@ -116,7 +116,7 @@
                      value="0"></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item>
+      <!-- <el-form-item>
         <el-select placeholder="回复作业"
                    v-model="searchForm.homeWorkReplied"
                    clearable>
@@ -125,7 +125,7 @@
           <el-option label="否"
                      value="0"></el-option>
         </el-select>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item>
         <el-date-picker :clearable="false"
                         v-model="searchForm.month"
@@ -199,7 +199,7 @@
             <div>{{scope.row.assignHomework?'是':'否'}}</div>
           </template>
         </el-table-column>
-        <el-table-column align="center"
+        <!-- <el-table-column align="center"
                          label="提交作业">
           <template slot-scope="scope">
             <div>{{scope.row.handHomework?'是':'否'}}</div>
@@ -210,7 +210,7 @@
           <template slot-scope="scope">
             <div>{{scope.row.homeWorkReplied>0?'是':'否'}}</div>
           </template>
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column align="center"
                          prop="courseReview"
                          label="教务评价"></el-table-column>

+ 668 - 0
src/views/evaluateManager/vipEvaluateList.vue

@@ -0,0 +1,668 @@
+<!--  -->
+<template>
+  <div class="m-core">
+    <el-form :inline="true"
+             class="searchForm"
+             v-model.trim="searchForm">
+      <!-- 状态 指导老师 活动方案-->
+      <el-form-item>
+        <el-input v-model.trim="searchForm.search"
+                  @keyup.enter.native="search"
+                  placeholder="请输入课程组名称 ID"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-select placeholder="请选择分部"
+                   v-model="searchForm.organId"
+                   clearable>
+          <el-option v-for="(item,index) in organList"
+                     :label="item.name"
+                     :value="item.id"
+                     :key="index"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select placeholder="指导老师"
+                   v-model="searchForm.teacherId"
+                   clearable
+                   filterable>
+          <el-option v-for="(item,index) in teacherList"
+                     :label="item.realName"
+                     :value="item.id"
+                     :key="index"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select v-model.trim="searchForm.eduTeacherId"
+                   filterable
+                   clearable
+                   placeholder="教务老师">
+          <el-option v-for="(item,index) in educationList"
+                     :key="index"
+                     :value="item.userId"
+                     :label="item.userName"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select placeholder="老师评价"
+                   v-model="searchForm.hasReview"
+                   clearable>
+          <el-option label="评价"
+                     value="1"></el-option>
+          <el-option label="未评价"
+                     value="0"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select placeholder="教务评价"
+                   v-model="searchForm.courseReview"
+                   clearable>
+          <el-option label="好"
+                     value="好"></el-option>
+          <el-option label="中"
+                     value="中"></el-option>
+          <el-option label="差"
+                     value="差"></el-option>
+        </el-select>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-select placeholder="是否到课"
+                   v-model="searchForm.hasArrived"
+                   clearable>
+          <el-option label="到课"
+                     value="1"></el-option>
+          <el-option label="未到"
+                     value="0"></el-option>
+        </el-select>
+      </el-form-item> -->
+      <!-- homeWorkReplied -->
+      <el-form-item>
+        <el-select placeholder="布置作业"
+                   v-model="searchForm.assignHomework"
+                   clearable>
+          <el-option label="是"
+                     value="1"></el-option>
+          <el-option label="否"
+                     value="0"></el-option>
+        </el-select>
+      </el-form-item>
+      <!-- <el-form-item>
+        <el-select placeholder="回复作业"
+                   v-model="searchForm.homeWorkReplied"
+                   clearable>
+          <el-option label="是"
+                     value="1"></el-option>
+          <el-option label="否"
+                     value="0"></el-option>
+        </el-select>
+      </el-form-item> -->
+      <el-form-item>
+        <el-date-picker :clearable="false"
+                        v-model="searchForm.month"
+                        type="daterange"
+                        value-format="yyyy-MM-dd"
+                        format="yyyy-MM-dd"
+                        range-separator="-"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期">
+          ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="search"
+                   type="danger">搜索</el-button>
+        <el-button @click="onReSet"
+                   type="primary">重置</el-button>
+        <el-button type="primary"
+                   v-if="tableData.length > 0"
+                   v-permission="'export/courseReviews'"
+                   @click="netWorkExport">导出</el-button>
+      </el-form-item>
+    </el-form>
+    <div class="tableWrap">
+      <el-table style="width: 100%"
+                :header-cell-style="{background:'#EDEEF0',color:'#444'}"
+                :data="tableData">
+        <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"
+                         prop="courseName"
+                         label="课程名称"></el-table-column>
+        <el-table-column align="center"
+                         prop="subjectName"
+                         label="声部"></el-table-column>
+        <el-table-column align="center"
+                         prop="teacherName"
+                         label="指导老师"></el-table-column>
+        <el-table-column align="center"
+                         prop="eduTeacherName"
+                         label="教务老师"></el-table-column>
+        <el-table-column align="center"
+                         label="老师评价">
+          <template slot-scope="scope">
+            <div>{{scope.row.reviewId>0?'评价':'未评价'}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column align="center"
+                         label="布置作业">
+          <template slot-scope="scope">
+            <div>{{scope.row.assignHomework?'是':'否'}}</div>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column align="center"
+                         label="是否到课">
+          <template slot-scope="scope">
+            <div>{{scope.row.attendanceId>0?'到课':'未到'}}</div>
+          </template>
+        </el-table-column> -->
+        <el-table-column align="center"
+                         label="操作">
+          <!-- v-permission="'evaluateList/look'" -->
+          <template slot-scope="scope">
+            <div>
+              <el-button type="text"
+                         v-if="scope.row.reviewId"
+                         @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" />
+    </div>
+    <el-dialog title="vip评价详情"
+               :visible.sync="netWorkVisible"
+               width="800px">
+      <div class="wrap">
+        <div class="commitLeft">
+          <div class="leftCell"
+               v-if="teacherClassHeadInfo">
+            <p>课程班名称</p>
+            <p>{{teacherClassHeadInfo.classGroupName}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="teacherClassHeadInfo">
+            <p>上课时间</p>
+            <p>{{teacherClassHeadInfo.classDate+' '+teacherClassHeadInfo.startClassTime+'-'+teacherClassHeadInfo.endClassTime}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="teacherClassHeadInfo">
+            <p>乐器</p>
+            <p>{{teacherClassHeadInfo.subjectNames}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="teacherClassHeadInfo">
+            <p>指导老师</p>
+            <p>{{teacherClassHeadInfo.bishopTeacher}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="teacherClassHeadInfo">
+            <p>学员</p>
+            <p>{{teacherClassHeadInfo.studentNames}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="courseScheduleReview">
+            <p>回访日期</p>
+            <p>{{ courseScheduleReview.createTime.substring(0,10) }}</p>
+          </div>
+          <div class="leftCell"
+               v-if="courseScheduleReview">
+            <p>是否双向沟通</p>
+            <p>{{courseScheduleReview.hasLiaison?'是':'否'}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="courseScheduleReview">
+            <p>是否提交作业</p>
+            <p>{{courseScheduleReview.handHomework?'是':'否'}}</p>
+          </div>
+          <div class="leftCell"
+               v-if="courseScheduleReview">
+            <p>教务老师</p>
+            <p>{{courseScheduleReview.eduTeacherName}}</p>
+          </div>
+          <div class="leftCell">
+            <p>课程评价</p>
+            <div class="chioseWrap">
+              <el-tag :type="mychiose =='好'?'danger':'info'"
+                      @click="courseScheduleReview.courseReview='好'">好</el-tag>
+              <el-tag :type="mychiose == '中'?'danger':'info'"
+                      @click="courseScheduleReview.courseReview='中'">中</el-tag>
+              <el-tag :type="mychiose == '差'?'danger':'info'"
+                      @click="courseScheduleReview.courseReview='差'">差</el-tag>
+            </div>
+          </div>
+        </div>
+        <div class="commitRight">
+          <div v-if="courseScheduleComplaints">
+            <div v-for="(item,index) in   courseScheduleComplaints"
+                 :key="index">
+              <div class="rightCell">
+                <p>{{item.username}}</p>
+                <div class="chioseWrap">
+                  <el-rate v-model="item.score"
+                           disabled
+                           text-color="#ff9900"></el-rate>
+                </div>
+              </div>
+              <el-input type="textarea"
+                        v-model="item.reason"
+                        disabled></el-input>
+            </div>
+          </div>
+          <div v-if="courseScheduleReview">
+            <div class="rightCell"
+                 v-if="courseScheduleReview">
+              <p>教材内容</p>
+            </div>
+            <el-input type="textarea"
+                      disabled
+                      v-model="teachingMaterial"></el-input>
+            <div class="leftCell"
+                 v-if="courseScheduleReview">
+              <p>曲目</p>
+              <p>{{ courseScheduleReview.song }}</p>
+            </div>
+            <div class="rightCell"
+                 v-if="courseScheduleReview">
+              <p>发音</p>
+              <div class="chioseWrap">
+                <el-rate v-model="courseScheduleReview.pronunciation"
+                         disabled
+                         text-color="#ff9900"></el-rate>
+              </div>
+            </div>
+            <div class="rightCell"
+                 v-if="courseScheduleReview">
+              <p>节奏</p>
+              <div class="chioseWrap">
+                <el-rate v-model="courseScheduleReview.tempo"
+                         disabled
+                         text-color="#ff9900"></el-rate>
+              </div>
+            </div>
+            <div class="rightCell"
+                 v-if="courseScheduleReview">
+              <p>乐理</p>
+              <div class="chioseWrap">
+                <el-rate v-model="courseScheduleReview.musicTheory"
+                         disabled
+                         text-color="#ff9900"></el-rate>
+              </div>
+            </div>
+            <div class="rightCell">
+              <p>评价备注</p>
+            </div>
+            <el-input type="textarea"
+                      disabled
+                      v-model="courseScheduleReview.memo"
+                      v-if="courseScheduleReview"></el-input>
+          </div>
+        </div>
+      </div>
+      <div slot="footer"
+           class="dialog-footer">
+        <el-button @click="netWorkVisible = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="submitNetwork">确定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/utils/auth";
+import qs from "qs";
+import axios from "axios";
+import pagination from "@/components/Pagination/index";
+import { practiceGroupType } from "@/utils/searchArray";
+import {
+  getTeacher,
+  getEmployeeOrgan,
+  findEducationUsers,
+  getReviewInfo,
+  updateReviewInfo,
+  getVipGroup
+} from "@/api/buildTeam";
+export default {
+  components: { pagination },
+  data () {
+    return {
+      netWorkVisible: false,
+      searchForm: {
+        organId: null,
+        teacherId: null,
+        eduTeacherId: null,
+        isFree: null,
+        studentReview: null,
+        hasHandHomework: null,
+        hasReview: null,
+        courseReview: null,
+        hasArrived: null,
+        homeWorkReplied: null,
+        assignHomework: null,
+        month: [],
+        practiceGroupType: null
+      },
+      practiceGroupType: practiceGroupType,
+      organList: [],
+      teacherList: [],
+      educationList: [],
+      tableData: [],
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      },
+      value: null,
+      teacherClassHeadInfo: null,
+      courseScheduleReview: null,
+      courseScheduleComplaints: null,
+      activeId: null
+    };
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created () { },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted () {
+    this.init();
+  },
+  activated () {
+    this.init();
+  },
+  methods: {
+    init () {
+      // 获取默认月份
+      if (this.searchForm.month.length <= 0) {
+        var now = new Date();
+
+        var startDate = new Date(
+          Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+        )
+          .toISOString()
+          .slice(0, 10);
+        //  + " 00:00:00"  + " 23:59:59"
+        var endDate = new Date(
+          Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+        )
+          .toISOString()
+          .slice(0, 10);
+        this.searchForm.month = [];
+        this.searchForm.month.push(startDate);
+        this.searchForm.month.push(endDate);
+        console.log(this.searchForm.month);
+      }
+
+      // 获取指导老师
+      getTeacher({}).then(res => {
+        if (res.code == 200) {
+          this.teacherList = res.data;
+        }
+      });
+      // 获取分部
+      getEmployeeOrgan().then(res => {
+        if (res.code == 200) {
+          this.organList = res.data;
+        }
+      });
+      // 获取教务
+      findEducationUsers().then(res => {
+        if (res.code == 200) {
+          this.educationList = res.data;
+        }
+      });
+
+      this.getList();
+    },
+    getList () {
+      let obj = {};
+      obj.organId = this.searchForm.organId || null;
+      obj.teacherId = this.searchForm.teacherId || null;
+      obj.eduTeacherId = this.searchForm.eduTeacherId || null;
+      obj.isFree = this.searchForm.isFree || null;
+      obj.studentReview = this.searchForm.studentReview || null;
+      obj.hasHandHomework = this.searchForm.hasHandHomework || null;
+      obj.hasReview = this.searchForm.hasReview || null;
+      obj.courseReview = this.searchForm.courseReview || null;
+      obj.hasArrived = this.searchForm.hasArrived || null;
+      obj.homeWorkReplied = this.searchForm.homeWorkReplied || null;
+      obj.assignHomework = this.searchForm.assignHomework || null;
+      obj.search = this.searchForm.search;
+      obj.practiceGroupType = this.searchForm.practiceGroupType || null;
+      if (this.searchForm.month && this.searchForm.month.length > 0) {
+        obj.startTime = this.searchForm.month[0];
+        obj.endTime = this.searchForm.month[1];
+      } else {
+        this.$message.error('请选择时间范围')
+        return
+      }
+
+      obj.page = this.rules.page;
+      obj.rows = this.rules.limit;
+      getVipGroup(obj).then(res => {
+        if (res.code == 200) {
+          this.tableData = res.data.rows;
+          this.rules.total = res.data.total;
+        }
+      });
+    },
+    lookDetail (row) {
+      this.activeId = row.reviewId;
+      getReviewInfo({ id: this.activeId }).then(res => {
+        if (res.code == 200) {
+          this.teacherClassHeadInfo = res.data.teacherClassHeadInfo;
+          this.courseScheduleReview = res.data.courseScheduleReview;
+          this.courseScheduleComplaints = res.data.courseScheduleComplaints;
+
+          // 教务评价详情
+          //    eduCourseReviewGetReviewInfo({id}).then(res=>{
+          //        if(res.code == 200){
+
+          //        }
+          //    })
+          this.netWorkVisible = true;
+        }
+      });
+    },
+    submitNetwork () {
+      if (!this.courseScheduleReview.courseReview) {
+        this.$message.error("请评价课程");
+        return;
+      }
+      updateReviewInfo({
+        id: this.activeId,
+        courseReview: this.courseScheduleReview.courseReview
+      }).then(res => {
+        if (res.code == 200) {
+          this.$message.success("评价成功");
+          this.netWorkVisible = false;
+          this.getList();
+        }
+      });
+    },
+    search () {
+      this.rules.page = 1;
+      this.getList();
+    },
+    onReSet () {
+      this.rules.page = 1;
+      this.searchForm = {
+        organId: null,
+        teacherId: null,
+        educationalTeacherId: null,
+        isFree: null,
+        studentReview: null,
+        hasHandHomework: null,
+        hasReview: null,
+        courseReview: null,
+        month: null,
+        hasArrived: null,
+        homeWorkReplied: null,
+        assignHomework: null,
+        practiceGroupType: null
+      };
+      var now = new Date();
+
+      var startDate = new Date(
+        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+      )
+        .toISOString()
+        .slice(0, 10);
+      //  + " 00:00:00"  + " 23:59:59"
+      var endDate = new Date(
+        Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
+      )
+        .toISOString()
+        .slice(0, 10);
+      this.searchForm.month = [];
+      this.searchForm.month.push(startDate);
+      this.searchForm.month.push(endDate);
+      this.getList();
+    },
+    netWorkExport () {
+      let url = "/api-web/export/courseReviews";
+      let obj = {};
+      this.searchForm.organId ? (obj.organId = this.searchForm.organId) : null;
+      this.searchForm.teacherId
+        ? (obj.teacherId = this.searchForm.teacherId)
+        : null;
+      this.searchForm.eduTeacherId
+        ? (obj.eduTeacherId = this.searchForm.eduTeacherId)
+        : null;
+      this.searchForm.isFree ? (obj.isFree = this.searchForm.isFree) : null;
+      this.searchForm.studentReview
+        ? (obj.studentReview = this.searchForm.studentReview)
+        : null;
+      this.searchForm.hasHandHomework
+        ? (obj.hasHandHomework = this.searchForm.hasHandHomework)
+        : null;
+      this.searchForm.hasReview
+        ? (obj.hasReview = this.searchForm.hasReview)
+        : null;
+      this.searchForm.courseReview
+        ? (obj.courseReview = this.searchForm.courseReview)
+        : null;
+      this.searchForm.search ? (obj.search = this.searchForm.search) : null;
+      this.searchForm.hasArrived
+        ? (obj.hasArrived = this.searchForm.hasArrived)
+        : null;
+      this.searchForm.homeWorkReplied
+        ? (obj.homeWorkReplied = this.searchForm.homeWorkReplied)
+        : null;
+      this.searchForm.assignHomework ? obj.assignHomework = this.searchForm.assignHomework : null
+      if (this.searchForm.month && this.searchForm.month.length > 0) {
+        obj.startTime = this.searchForm.month[0];
+        obj.endTime = this.searchForm.month[1];
+      } else {
+        this.$message.error('请选择时间范围')
+        return
+      }
+      this.searchForm.practiceGroupType ? obj.practiceGroupType = this.searchForm.practiceGroupType : null;
+      const options = {
+        method: "POST",
+        headers: {
+          Authorization: getToken()
+        },
+        data: qs.stringify(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 nowTime = new Date();
+            let ymd =
+              nowTime.getFullYear() +
+              "" +
+              (nowTime.getMonth() + 1) +
+              "" +
+              nowTime.getDate() +
+              "" +
+              nowTime.getHours() +
+              "" +
+              nowTime.getMinutes();
+            let fname = +ymd + "网管评价"; //下载文件的名字
+            link.href = objectUrl;
+            link.setAttribute("download", fname);
+            document.body.appendChild(link);
+            link.click();
+          });
+        })
+        .catch(() => { });
+    }
+  },
+  filters: {
+    studentReviewFilter (val) {
+      let arr = ["未评价", "1星", "2星", "3星", "4星", "5星"];
+      return arr[val];
+    }
+  },
+  computed: {
+    teachingMaterial () {
+      if (
+        this.courseScheduleReview &&
+        this.courseScheduleReview.teachingMaterial
+      ) {
+        return this.courseScheduleReview.teachingMaterial;
+      } else {
+        return "";
+      }
+    },
+    mychiose () {
+      if (this.courseScheduleReview && this.courseScheduleReview.courseReview) {
+        return this.courseScheduleReview.courseReview;
+      } else {
+        return "";
+      }
+    }
+  }
+};
+</script>
+<style lang='scss' scoped>
+.wrap {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  .leftCell {
+    width: 300px;
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    align-items: center;
+    line-height: 50px;
+    // border-bottom: 1px solid #ccc;
+  }
+  .rightCell {
+    width: 300px;
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-start;
+    align-items: center;
+    line-height: 50px;
+    p {
+      margin-right: 30px;
+    }
+  }
+}
+
+/deep/.el-tag {
+  cursor: pointer;
+}
+</style>

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

@@ -424,7 +424,7 @@ export default {
                     nowTime.getHours() +
                     "" +
                     nowTime.getMinutes();
-                  let fname = ymd + "课外训练(教学)";
+                  let fname = ymd + "服务指标";
                   link.href = objectUrl;
                   link.setAttribute("download", fname);
                   document.body.appendChild(link);

+ 86 - 69
src/views/studentManager/components/studentRecord.vue

@@ -1,58 +1,57 @@
 <template>
   <div>
     <!-- 搜索类型 -->
-    <el-form :inline="true" class="searchForm" v-model.trim="searchForm">
+    <el-form :inline="true"
+             class="searchForm"
+             v-model.trim="searchForm">
       <el-form-item>
-        <el-select
-          v-model.trim="searchForm.courseScheduleType"
-          filterable
-          clearable
-          placeholder="课程类型"
-        >
-          <el-option
-            v-for="(item, index) in courseArray"
-            :key="index"
-            :label="item.label"
-            :value="item.value"
-          ></el-option>
+        <el-select v-model.trim="searchForm.courseScheduleType"
+                   filterable
+                   clearable
+                   placeholder="课程类型">
+          <el-option v-for="(item, index) in courseArray"
+                     :key="index"
+                     :label="item.label"
+                     :value="item.value"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-select
-          v-model.trim="searchForm.attendanceStatus"
-          filterable
-          clearable
-          placeholder="考勤状态"
-        >
-          <el-option
-            v-for="(item, index) in att"
-            :key="index"
-            :label="item.label"
-            :value="item.value"
-          ></el-option>
+        <el-select v-model.trim="searchForm.attendanceStatus"
+                   filterable
+                   clearable
+                   placeholder="考勤状态">
+          <el-option v-for="(item, index) in att"
+                     :key="index"
+                     :label="item.label"
+                     :value="item.value"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-select v-model.trim="searchForm.courseStatus" filterable clearable placeholder="课程状态">
-          <el-option
-            v-for="(item, index) in courseStatus"
-            :key="index"
-            :label="item.label"
-            :value="item.value"
-          ></el-option>
+        <el-select v-model.trim="searchForm.courseStatus"
+                   filterable
+                   clearable
+                   placeholder="课程状态">
+          <el-option v-for="(item, index) in courseStatus"
+                     :key="index"
+                     :label="item.label"
+                     :value="item.value"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-input placeholder="班级名称" v-model.trim="searchForm.classGroupName"></el-input>
+        <el-input placeholder="班级名称"
+                  v-model.trim="searchForm.classGroupName"></el-input>
       </el-form-item>
       <el-form-item>
-        <el-input placeholder="老师姓名" v-model.trim="searchForm.teacherName"></el-input>
+        <el-input placeholder="老师姓名"
+                  v-model.trim="searchForm.teacherName"></el-input>
       </el-form-item>
       <el-form-item>
-        <el-button @click="search" type="danger">搜索</el-button>
+        <el-button @click="search"
+                   type="danger">搜索</el-button>
       </el-form-item>
       <el-form-item>
-        <el-button @click="onReSet" type="primary">重置</el-button>
+        <el-button @click="onReSet"
+                   type="primary">重置</el-button>
       </el-form-item>
     </el-form>
     <!-- 查询列表 -->
@@ -67,54 +66,73 @@
     </div>-->
     <!-- 列表 -->
     <div class="tableWrap">
-      <el-table :data="tableList" :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-        <el-table-column align="center" prop="courseScheduleId" label="课程编号"></el-table-column>
-        <el-table-column align="center" prop="courseDate" width="150" label="上课时间">
-           <template slot-scope="scope">{{ scope.row.courseDate | dateForMinFormat }}</template>
+      <el-table :data="tableList"
+                :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+        <el-table-column align="center"
+                         prop="courseScheduleId"
+                         label="课程编号"></el-table-column>
+        <el-table-column align="center"
+                         prop="courseDate"
+                         width="150"
+                         label="上课时间">
+          <template slot-scope="scope">{{ scope.row.courseDate | dateForMinFormat }}</template>
         </el-table-column>
-        <el-table-column align="center" prop="courseEndDate" label="下课时间" width="150">
-           <template slot-scope="scope">{{ scope.row.courseEndDate | dateForMinFormat }}</template>
+        <el-table-column align="center"
+                         prop="courseEndDate"
+                         label="下课时间"
+                         width="150">
+          <template slot-scope="scope">{{ scope.row.courseEndDate | dateForMinFormat }}</template>
         </el-table-column>
-        <el-table-column align="center" label="星期几">
+        <el-table-column align="center"
+                         label="星期几">
           <template slot-scope="scope">{{ scope.row.courseDate | formatWeek }}</template>
         </el-table-column>
-        <el-table-column align="center" label="课程状态">
+        <el-table-column align="center"
+                         label="课程状态">
           <template slot-scope="scope">{{ scope.row.courseStatus | coursesStatus }}</template>
         </el-table-column>
-        <el-table-column align="center" label="课程类型">
+        <el-table-column align="center"
+                         label="课程类型">
           <template slot-scope="scope">{{ scope.row.courseScheduleType | coursesType }}</template>
         </el-table-column>
-        <el-table-column align="center" prop="classGroupName" label="班级名称"></el-table-column>
-        <el-table-column align="center" prop="currentCLassTimes" label="当前课次">
+        <el-table-column align="center"
+                         prop="classGroupName"
+                         label="班级名称"></el-table-column>
+        <el-table-column align="center"
+                         prop="currentCLassTimes"
+                         label="当前课次">
           <template slot-scope="scope">
             <div>{{ scope.row.currentCLassTimes + '/'+scope.row.totalClassTimes }}</div>
           </template>
         </el-table-column>
-        <el-table-column align="center" prop="teacherName" label="课程老师"></el-table-column>
-        <el-table-column align="center" prop="attendanceStatus" label="考勤状态">
+        <el-table-column align="center"
+                         prop="teacherName"
+                         label="课程老师"></el-table-column>
+        <el-table-column align="center"
+                         prop="attendanceStatus"
+                         label="考勤状态">
           <template slot-scope="scope">
             <!-- 因为未开始的课返回为旷课 产品要求写为未签到 -->
+            <!-- v-if="scope.row.courseStatus != 'NOT_START'&&scope.row.attendanceStatus !='LEAVE'" -->
             <div>
-              <p
-                v-if="scope.row.courseStatus != 'NOT_START'"
-              >{{ scope.row.attendanceStatus | clockingIn }}</p>
-              <p v-if="scope.row.courseStatus == 'NOT_START'">未签到</p>
+              <p>{{ scope.row.attendanceStatus | clockingIn }}</p>
+              <!-- <p v-if="scope.row.courseStatus == 'NOT_START'&&scope.row.attendanceStatus !='LEAVE'">未签到</p> -->
             </div>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="教学模式">
+        <el-table-column align="
+                 center"
+                         label="教学模式">
           <template slot-scope="scope">
             <div>{{ scope.row.teachMode | teachMode }}</div>
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        :total="pageInfo.total"
-        :page.sync="pageInfo.page"
-        :limit.sync="pageInfo.limit"
-        :page-sizes="pageInfo.page_size"
-        @pagination="getList"
-      />
+      <pagination :total="pageInfo.total"
+                  :page.sync="pageInfo.page"
+                  :limit.sync="pageInfo.limit"
+                  :page-sizes="pageInfo.page_size"
+                  @pagination="getList" />
     </div>
   </div>
 </template>
@@ -125,7 +143,7 @@ import { courseStatus, courseType } from "@/utils/searchArray";
 export default {
   name: "studentRecord",
   components: { pagination },
-  data() {
+  data () {
     return {
       searchForm: {
         studentId: null,
@@ -137,8 +155,7 @@ export default {
       },
       searchLsit: [],
       tableList: [],
-      courseArray:courseType,
-
+      courseArray: courseType,
       att: [
         { value: "NORMAL", label: "正常" },
         { value: "TRUANT", label: "旷课" },
@@ -154,20 +171,20 @@ export default {
       }
     };
   },
-  mounted() {
+  mounted () {
     this.searchForm.studentId = this.$route.query.userId;
     this.getList();
   },
-  activated() {
+  activated () {
     this.searchForm.studentId = this.$route.query.userId;
     this.getList();
   },
   methods: {
-    search() {
+    search () {
       this.pageInfo.page = 1;
       this.getList();
     },
-    getList() {
+    getList () {
       let params = this.searchForm;
       params.rows = this.pageInfo.limit;
       params.page = this.pageInfo.page;
@@ -178,7 +195,7 @@ export default {
         }
       });
     },
-    onReSet() {
+    onReSet () {
       // 重置搜索
       this.searchForm = {
         studentId: this.$route.query.userId,