<template>
  <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-item>
          <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>
        </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>
        </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>
        </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>
        </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>
        </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-form-item>
        <el-form-item>
          <div class='searchBtn'
               @click="search">搜索</div>
        </el-form-item>
      </el-form>
      <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-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'
                           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">
              <div>
                {{ scope.row.type | coursesType}}
              </div>
            </template>
          </el-table-column>
          <el-table-column align='center'
                           label="教学模式">
            <template slot-scope="scope">
              <div>
                {{ scope.row.teachMode | teachMode}}
              </div>
            </template>
          </el-table-column>
          <el-table-column align='center'
                           prop="schoolName"
                           label="教学点">
          </el-table-column>
          <el-table-column align='center'
                           prop="courseScheduleStatus"
                           label="课程状态">
            <template slot-scope="scope">
              <div>
                {{ scope.row.status | coursesStatus }}
              </div>
            </template>
          </el-table-column>
          <el-table-column align='center'
                           label="是否签到">
            <template slot-scope="scope">
              <div>
                {{ scope.row.isSignIn | attendanceType}}
              </div>
            </template>
          </el-table-column>
          <el-table-column align='center'
                           label="是否签退">
            <template slot-scope="scope">
              <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>
          <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>
              </div>
            </template>
          </el-table-column>
        </el-table>
        <pagination :total="rules.total"
                    :page.sync="rules.page"
                    :limit.sync="rules.limit"
                    :page-sizes="rules.page_size"
                    @pagination="getList" />
      </div>
    </div>
    <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> -->
          <div class="inputStyle">{{maskForm.teacherName}}</div>
        </el-form-item>
        <el-form-item label="课程模式">
          <!-- <el-input :value="maskForm.teachMode | teachMode"
                    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> -->
          <div class="inputStyle">{{maskForm.type|coursesType}}</div>
        </el-form-item>
        <!-- courseScheduleStatus -->
        <el-form-item label="课程状态">
          <!-- <el-input :value="maskForm.type |classType"
                    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> -->
          <div class="inputStyle">{{maskForm.signInTime}}</div>
        </el-form-item>
        <el-form-item label="签退时间">
          <!-- <el-input v-model="maskForm.signOutTime"
                    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> -->
          <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>
        </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>
        </el-form-item>
        <el-form-item label="备注">
          <!-- <el-input :value=" maskForm.isSignOut | attendanceOutType"
                    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">
          <div v-if="activeName == 'first'">
            <!-- studentRollCall  -->
            <studentRollCall :courseScheduleId='maskForm.id'>
            </studentRollCall>
          </div>
        </el-tab-pane>
        <el-tab-pane label="GPS定位"
                     v-if="maskForm.teachMode == 'OFFLINE'"
                     name="second">
          <div v-if="activeName == 'second'">
            <gpsLoction :courseScheduleId='maskForm.id'></gpsLoction>
          </div>
        </el-tab-pane>
        <el-tab-pane label="作业"
                     name="third">
          <div v-if="activeName == 'third'">
            <studentWork :courseScheduleId='maskForm.id'></studentWork>
          </div>
        </el-tab-pane>
      </el-tabs>
    </el-dialog>
  </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'
let nowTime = new Date()
nowTime = nowTime.getFullYear() + '-' + (nowTime.getMonth() + 1) + '-' + nowTime.getDate()
export default {
  data () {
    return {
      classVisible: false,
      timerVisible: false,
      courseVisible: false,
      courseType: courseType,
      searchForm: {
        organIdList: null,
        courseStatus: null,
        courseType: null,
        timer: [nowTime, nowTime], // 时间
        class: null,
        search: null, // 乐团名称 编号 vip课名称
        teacherIdList: null, // 老师编号
        schoolId: null // 教学点编号
      },
      tableList: [],
      searchLsit: [],
      organList: [],
      rules: {
        // 分页规则
        limit: 10, // 限制显示条数
        page: 1, // 当前页
        total: 0, // 总条数
        page_size: [10, 20, 40, 50] // 选择限制显示条数
      },
      teacherList: [],
      schoolList: [],
      maskForm: {},
      activeName: "first"
      // classList: []
    }

  },
  components: {
    pagination,
    studentRollCall,
    gpsLoction,
    studentWork

  },
  activated () {
    this.init();
  },
  mounted () {
    this.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
      }
    })

    // 获取班级列表
    // getMusicGroupAllClass().then(res => {
    //   if (res.code == 200) {
    //     this.classList = res.data;
    //   }
    // })

    // 获取分部
    getEmployeeOrgan().then(res => {
      if (res.code == 200) {
        this.organList = res.data;
      }
    })
  },
  methods: {
    /**
     *  courseStatus: '', // 课程类型
        courseType: '', // 课程状态
        timer:[] // 时间
     * 
     */
    init () {
      this.getList();
      // 获取所有老师
      getTeacher().then(res => {
        if (res.code == 200) {
          this.teacherList = res.data;
        }
      })

      // 获取班级列表
      // getMusicGroupAllClass().then(res => {
      //   if (res.code == 200) {
      //     this.classList = res.data;
      //   }
      // })

      getEmployeeOrgan().then(res => {
        if (res.code == 200) {
          this.organList = res.data;
        }
      })
    },
    search () {
      this.rules.page = 1;
      this.getList();
    },
    getList () {
      let searchForm = this.searchForm
      if (!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,
        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'
      // console.log(row)
      this.classVisible = true;
    },
    handleClick (tab, event) {
      // console.log(tab, event);
    },
    closeClassVisible () {
      this.activeName = null
      this.classVisible = false;
    }
  },
  filters: {
    isCall (val) {
      if (val == 0) {
        return '未点名'
      } else if (val == 1) {
        return '已点名'
      }
    }
  }
}
</script>
<style lang="scss" scoped>
.visible {
  visibility: hidden;
}
.cl-container {
  .topFrom {
    margin: 20px 30px 0;
    .classlist {
      display: flex;
      flex-direction: row;
      justify-content: flex-start;
      align-items: center;
      ul {
        li {
          list-style: none;
        }
      }
    }
  }
  .searchForm {
    margin: 0 30px;
  }
}
.btnWraps {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  div {
    margin-right: 20px;
  }
}
.inputStyle {
  width: 180px;
}
.red {
  color: red;
}
</style>