<style>
  .Sysuser_Date .el-input__inner {
    background: transparent !important;
    border: 0 !important;
    height: 28px !important;
  }

  .myTable_Zk tbody tr:first-child td {
    background: yellow !important;
  }

  .myTable_Zk tbody tr:first-child {
    background: yellow !important;
    z-index: 1 !important;
  }
</style>
<template>
  <div class="page-body">
    <div class="col row wrap q-mb-lg" style="justify-content:space-between;">
      <div class="col row wrap">
        <div class="col-2 Sysuser_Date q-mr-lg">
          <q-field filled dense>
            <template v-slot:control>
              <el-date-picker v-model="myDate" style="width:100%" value-format="yyyy-MM" @change="getCheckDate()"
                size="mini" type="month" placeholder="选择年月">
              </el-date-picker>
            </template>
          </q-field>
        </div>
        <div class="col-2">
          <template v-if="deptList&&deptList.length>1">
            <q-select filled dense stack-label @input="getList()" option-value="Id" option-label="Name"
              v-model="msg.DeptId" ref="DeptId" :options="deptList" label="语种" clearable class="col-6 q-pr-lg q-pb-lg"
              emit-value map-options />
          </template>
          <template v-else>
            <q-select filled dense stack-label @input="getList()" option-value="Id" option-label="Name"
              v-model="msg.DeptId" ref="DeptId" :options="deptList" label="语种" class="col-6 q-pr-lg q-pb-lg" emit-value
              map-options />
          </template>
        </div>
        <div class="col-2">
          <q-select filled dense stack-label @input="getList" option-value="TId" @filter="filterTeacherFn" use-input
            option-label="TeacherName" v-model="msg.TeacherId" ref="Teacher_Id" :options="TeacherList" label="教师"
            clearable class="col-6 q-pr-lg q-pb-lg" emit-value map-options />
        </div>
      </div>
      <div style="float:right;">
        <q-btn color="accent" class="q-mr-md" size="sm" icon="download" style="margin-top:15px;"
          @click="downloadStudentStatic" label="下载" />
      </div>
    </div>
    <div class="page-content">
      <q-table :pagination="msg" ref="table" :loading="loading" :style="{'height':tableHeight+'px'}"
        no-data-label="暂无相关数据" flat class="sticky-column-table sticky-header-column-table no-bottom-table myTable_Zk"
        separator="none" :data="dataList" :columns="columns" row-key="">
        <q-tr slot="header" slot-scope="props" :props="props">
          <template v-for="col in props.cols" :props="props">

            <template v-if="col.label=='续约(含留学)'">
              <q-th :key="col.name" :props="props" style="max-width:60px;text-align:center;">
                续约<br />(含留学)
              </q-th>
            </template>
            <template v-else-if="col.label=='班主任学生互动'">
              <q-th :key="col.name" :props="props" style="max-width:75px;text-align:center;">
                班主任<br />学生互动
              </q-th>
            </template>
            <template v-else-if="col.label=='班主任学生互动得分'">
              <q-th :key="col.name" :props="props" style="max-width:90px;text-align:center;">
                班主任学生<br />互动得分
              </q-th>
            </template>
            <template v-else-if="col.label=='企业微信互动次数'">
              <q-th :key="col.name" :props="props" style="max-width:90px;text-align:center;">
                企业微信<br />互动次数
              </q-th>
            </template>
            <template v-else-if="col.label=='学生退课'">
              <q-th :key="col.name" :props="props" style="background-color:#FF66CC;color:#000;">
                学生退课
              </q-th>
            </template>
            <template v-else-if="col.label=='试讲成功(班课)'">
              <q-th :key="col.name" :props="props">
                试讲成功<br />(班课)
              </q-th>
            </template>
            <template v-else-if="col.label=='试讲成功(VIP)'">
              <q-th :key="col.name" :props="props">
                试讲成功<br />(VIP)
              </q-th>
            </template>
            <template v-else-if="col.label=='试讲失败'">
              <q-th :key="col.name" :props="props" style="background-color:#FF66CC;color:#000;">
                试讲失败
              </q-th>
            </template>
            <template v-else-if="col.label=='学生旷课'">
              <q-th :key="col.name" :props="props" style="background-color:#FF66CC;color:#000;">
                学生旷课
              </q-th>
            </template>
            <template v-else-if="col.label=='学生投诉'">
              <q-th :key="col.name" :props="props" style="background-color:#FF66CC;color:#000;">
                学生投诉
              </q-th>
            </template>
            <template v-else-if="col.label=='老师迟到早退'">
              <q-th :key="col.name" :props="props"
                style="max-width:60px;text-align:center;background-color:#FF66CC;color:#000;">
                老师<br />迟到早退
              </q-th>
            </template>
            <template v-else-if="col.label=='N2课程时数'">
              <q-th :key="col.name" :props="props"
                style="max-width:60px;text-align:center;background-color:#B4C6E7;color:#000;">
                N2<br />课程时数
              </q-th>
            </template>
            <template v-else-if="col.label=='N1课程时数'">
              <q-th :key="col.name" :props="props"
                style="max-width:60px;text-align:center;background-color:#B4C6E7;color:#000;">
                N1<br />课程时数
              </q-th>
            </template>
            <template v-else-if="col.label=='学生小程序刷题次数'">
              <q-th :key="col.name" :props="props"
                style="max-width:75px;text-align:center;background-color:#B4C6E7;color:#000;">
                学生小程序<br />刷题次数
              </q-th>
            </template>
            <template v-else-if="col.label=='学生小程序刷题时间'">
              <q-th :key="col.name" :props="props"
                style="max-width:75px;text-align:center;background-color:#B4C6E7;color:#000;">
                学生小程序<br />刷题时间
              </q-th>
            </template>
            <template v-else-if="col.label=='活动次数'">
              <q-th :key="col.name" :props="props" style="background-color:#B4C6E7;color:#000;">
                活动次数
              </q-th>
            </template>
            <template v-else-if="col.label=='所有老师平均分数'">
              <q-th :key="col.name" :props="props"
                style="max-width:70px;text-align:center;background-color:#FFC000;color:#000;">
                所有老师<br />平均分数
              </q-th>
            </template>
            <template v-else-if="col.label=='总分数'">
              <q-th :key="col.name" :props="props"
                style="max-width:70px;text-align:center;background-color:#FFC000;color:#000;">
                总分数
              </q-th>
            </template>
            <template v-else-if="col.label=='分数差距'">
              <q-th :key="col.name" :props="props"
                style="max-width:70px;text-align:center;background-color:#FFC000;color:#000;">
                分数差距
              </q-th>
            </template>
            <template v-else>
              <q-th :key="col.name" :props="props" style="max-width:70px">
                {{ col.label }}
              </q-th>
            </template>
          </template>
        </q-tr>
        <template v-slot:body-cell-FinishTimesPlanCount2="props">
          <q-td :props="props">
            <span style="color:blue;cursor:pointer;" title="点击查看跟进详细信息" @click="GoToDetails(props.row,1)">
              {{props.row.OnLineInteractiveScore}}
            </span>
          </q-td>
        </template>
        <template v-slot:body-cell-FinishTimesPlanCount="props">
          <q-td :props="props">
            <span style="color:blue;cursor:pointer;" title="点击查看跟进详细信息" @click="GoToDetails(props.row,1)">
              {{props.row.FinishFollow}} /
              {{props.row.TotalFollow}}</span>
          </q-td>
        </template>
        <template v-slot:bottom>
        </template>
      </q-table>
    </div>
  </div>
</template>
<script>
  import {
    GetTeacherDay
  } from '../../api/teacher/index';
  import {
    getTeacherDropDownList
  } from "../../api/school/index";
  import {
    EduDownLoad
  } from "../../api/common/common";
  export default {
    props: {},
    meta: {
      title: "教师每日数据统计"
    },
    components: {},
    data() {
      return {
        columns: [{
            name: 'DateStr',
            label: '日期',
            field: 'DateStr',
            align: 'left'
          },
          // {
          //   name: 'StudentCount',
          //   label: '学生人次',
          //   field: 'StudentCount',
          //   align: 'left'
          // },
          {
            name: 'FinishTimesPlanCount',
            label: '班主任学生互动',
            align: 'left'
          },
          {
            name: 'FinishTimesPlanCount2',
            label: '班主任学生互动得分',
            align: 'left'
          },
          {
            name: 'OnLineInteractive',
            label: '企业微信互动次数',
            field: 'OnLineInteractive',
            align: 'left'
          },
          {
            name: 'AttendClassHourScore',
            label: '上课时数',
            field: 'AttendClassHourScore',
            align: 'left',
          },
          {
            name: 'RenewScore',
            label: '续约(含留学)',
            field: 'RenewScore',
            align: 'left'
          },
          {
            name: 'UpgradeScore',
            label: '学生升级',
            field: 'UpgradeScore',
            align: 'left'
          },
          {
            name: 'GradeTestScore',
            label: '考级升级',
            field: 'GradeTestScore',
            align: 'left',
          },
          {
            name: 'TransScore',
            label: '转介绍',
            field: 'TransScore',
            align: 'left'
          },
          {
            name: 'SpeakClassScore',
            label: '试讲成功(班课)',
            field: 'SpeakClassScore',
            align: 'left'
          },
          {
            name: 'SpeakVipScore',
            label: '试讲成功(VIP)',
            field: 'SpeakVipScore',
            align: 'left'
          },
          {
            name: 'SpeakFailScore',
            label: '试讲失败',
            field: 'SpeakFailScore',
            align: 'left'
          },
          {
            name: 'TruancyScore',
            label: '学生旷课',
            field: 'TruancyScore',
            align: 'left'
          },
          {
            name: 'WithdrawsScore',
            label: '学生退课',
            field: 'WithdrawsScore',
            align: 'left'
          },
          {
            name: 'ComplaintScore',
            label: '学生投诉',
            field: 'ComplaintScore',
            align: 'left'
          },
          {
            name: 'TeacherBeLateScore',
            label: '老师迟到早退',
            field: 'TeacherBeLateScore',
            align: 'left'
          },
          // {
          //   name: 'N5ClassHoursScore',
          //   label: 'N5课程时数',
          //   field: 'N5ClassHoursScore',
          //   align: 'left'
          // },
          // {
          //   name: 'N4ClassHoursScore',
          //   label: 'N4课程时数',
          //   field: 'N4ClassHoursScore',
          //   align: 'left'
          // },
          // {
          //   name: 'N3ClassHoursScore',
          //   label: 'N3课程时数',
          //   field: 'N3ClassHoursScore',
          //   align: 'left'
          // },
          {
            name: 'N2ClassHoursScore',
            label: 'N2课程时数',
            field: 'N2ClassHoursScore',
            align: 'left'
          },
          {
            name: 'N1ClassHoursScore',
            label: 'N1课程时数',
            field: 'N1ClassHoursScore',
            align: 'left'
          },
          {
            name: 'MiniAppPractiseScore',
            label: '学生小程序刷题次数',
            field: 'MiniAppPractiseScore',
            align: 'left'
          },
          {
            name: 'MiniAppTimeScore',
            label: '学生小程序刷题时间',
            field: 'MiniAppTimeScore',
            align: 'left'
          },
          {
            name: 'ActivityNum',
            label: '活动次数',
            field: 'ActivityNum',
            align: 'left'
          },
          {
            name: 'TotalScore',
            label: '总分数',
            field: 'TotalScore',
            align: 'left'
          },
          {
            name: 'AvgScore',
            label: '所有老师平均分数',
            field: 'AvgScore',
            align: 'left'
          },
          {
            name: 'ScoreGap',
            label: '分数差距',
            field: 'ScoreGap',
            align: 'left'
          }
        ],
        dataList: [],
        loading: false,
        myDate: '',
        tableHeight: 500,
        msg: {
          YearStr: '',
          MonthStr: '',
          TeacherId: '',
          rowsPerPage: 0,
          DeptId: 8,
        },
        //部门列表
        deptList: [],
        teacher: 0,
        AllTeacherList: [],
        TeacherList: [] //教师数据
      }
    },
    created() {
      setTimeout(() => {
        this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 90;
      }, 100);
      this.initDeptList();
    },
    mounted() {
      let d = new Date();
      this.msg.YearStr = d.getFullYear().toString();
      this.msg.MonthStr = (d.getMonth() + 1).toString();
      this.myDate = this.msg.YearStr + '-' + this.msg.MonthStr
      if (this.$route.query) {
        if (this.$route.query.Dept_Id) {
          this.msg.DeptId = parseInt(this.$route.query.Dept_Id)
        }
        if (this.$route.query.YearStr && this.$route.query.MonthStr) {
          this.msg.YearStr = this.$route.query.YearStr;
          this.msg.MonthStr = this.$route.query.MonthStr
          this.myDate = this.msg.YearStr + '-' + this.msg.MonthStr
        }
      }
      this.GetTeacherList();
      if (this.$route.query.TeacherId) {
        this.msg.TeacherId = parseInt(this.$route.query.TeacherId);
      }
      this.getList();
    },
    methods: {
      //初始化部门数据
      initDeptList() {
        var localStorageData = window.localStorage["loginUserInfo"];
        let ActionMenuList = JSON.parse(localStorageData).data.ActionMenuList;
        var obj1 = {
          Id: 8,
          Name: "日语"
        };
        var obj2 = {
          Id: 14,
          Name: "韩语"
        };
        if (ActionMenuList && ActionMenuList.length > 0) {
          ActionMenuList.forEach((x) => {
            if (x.FunctionCode == "LookJapanese") {
              this.deptList.push(obj1);
            }
            if (x.FunctionCode == "LookKorean") {
              this.deptList.push(obj2);
            }
          });
        }
        if (this.deptList && this.deptList.length > 0) {
          this.msg.DeptId = this.deptList[0].Id;
        }
      },
      //获取教师下拉
      GetTeacherList() {
        this.msg.TeacherId = "";
        var qMsg = {
          NotQueryTIds: "5,10,15,20",
          Dept_Id: this.msg.DeptId,
        }
        getTeacherDropDownList(qMsg).then(res => {
          if (res.Code == 1) {
            this.TeacherList = res.Data;
            this.AllTeacherList = res.Data;
          }
        });
      },
      //课程教师
      filterTeacherFn(val, update, abort) {
        update(() => {
          this.TeacherList = this.AllTeacherList.filter(
            v => v.TeacherName.indexOf(val) > -1
          );
        });
      },
      //下载数据
      downloadStudentStatic() {
        this.loading = true;
        var msg = JSON.parse(JSON.stringify(this.msg));
        EduDownLoad(
          "/TeacherStatic/DownLoadTeacherDay",
          msg,
          "教师每日数据统计.xls", res => {
            this.loading = false;
          }
        );
      },
      getCheckDate() {
        if (this.myDate) {
          this.msg.YearStr = this.myDate.split('-')[0];
          this.msg.MonthStr = this.myDate.split('-')[1];
          this.getList();
        }
      },
      //获取数据
      getList() {
        this.loading = true;
        GetTeacherDay(this.msg).then(res => {
          this.loading = false;
          if (res.Code == 1) {
            this.dataList = res.Data;
          }
        })
      }
    }
  }
</script>
<style lang="sass">
  @import url('~assets/css/table.sass')
</style>