<!--负面清单历史记录-->
<template>
  <div class="violationInfo">
    <div class="title-box">
      <p>历史记录</p>
      <p class="reset-button-one" @click="backPage"><i class="el-icon-arrow-left"></i>返回</p>
    </div>
    <div class="rewardPointsListPage">
      <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
        <el-form-item label="状态" prop="overStatus" label-width="50px">
          <el-select v-model="queryParams.overStatus" clearable placeholder="请选择状态">
            <el-option
              v-for="dict in bonusTypeOptions"
              :key="dict.id"
              :label="dict.name"
              :value="dict.id"
            ></el-option>
          </el-select>
        </el-form-item>
        <!--<el-form-item label="学期" prop="semesterId" label-width="50px">-->
          <!--<el-select v-model="queryParams.semesterId" clearable placeholder="请选择学期">-->
            <!--<el-option-->
              <!--v-for="dict in semesterList"-->
              <!--:key="dict.id"-->
              <!--:label="dict.semesterName"-->
              <!--:value="dict.id"-->
            <!--&gt;</el-option>-->
          <!--</el-select>-->
        <!--</el-form-item>-->
        <el-form-item label="时间段" prop="dateRange" label-width="65px">
          <el-date-picker
            :clearable="false"
            v-model="dateRange"
            size="small"
            style="width: 240px"
            value-format="yyyy-MM-dd"
            type="daterange"
            range-separator="-"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item>
          <p class="inquire-button-one" style="margin:0 20px;" @click="handleQuery">查询</p>
          <p class="reset-button-one" @click="resetQuery">重置</p>
        </el-form-item>
      </el-form>
      <el-table v-loading="loading" border :data="recordList" style="margin-top:20px;">
        <el-table-column label="姓名" align="left" prop="userName" width="120"/>
        <el-table-column label="违规原因" align="left" prop="reason"/>
        <el-table-column label="实验室" align="left" prop="laboratoryName"  width="200"/>
        <el-table-column label="添加人" align="left"  prop="createBy"  width="120"/>
        <el-table-column label="添加时间" align="left"  prop="createTime"  width="180"/>
        <el-table-column label="扣分值" align="left"  prop="deductionVal" width="100">
          <template slot-scope="scope">
            <span style="color:#FF3131;">-{{scope.row.deductionVal}}</span>
          </template>
        </el-table-column>
        <el-table-column label="处理方式" align="left"  prop="treatmentMethod" width="100"/>
        <el-table-column label="处理状态" align="left" width="240">
          <template slot-scope="scope">
            <div class="scope-big-box" v-if="scope.row.learnStatus == 0 || scope.row.learnStatus == 1 || scope.row.learnStatus == 2">
              <p>学习</p>
              <p :class="scope.row.learnStatus == 0 ?'scopeColorA':(scope.row.learnStatus == 1 ?'scopeColorB':(scope.row.learnStatus == 2 ?'scopeColorC':''))">{{scope.row.learnStatus == 0 ?'未完成':(scope.row.learnStatus == 1 ?'已完成':(scope.row.learnStatus == 2 ?'已恢复':''))}}</p>
            </div>
            <div class="scope-big-box" v-if="scope.row.practiceStatus == 0 || scope.row.practiceStatus == 1 || scope.row.practiceStatus == 2">
              <p>做题</p>
              <p :class="scope.row.practiceStatus == 0 ?'scopeColorA':(scope.row.practiceStatus == 1 ?'scopeColorB':(scope.row.practiceStatus == 2 ?'scopeColorC':''))">{{scope.row.practiceStatus == 0 ?'未完成':(scope.row.practiceStatus == 1 ?'已完成':(scope.row.practiceStatus == 2 ?'已恢复':''))}}</p>
            </div>
            <div class="scope-big-box" v-if="scope.row.testStatus == 0 || scope.row.testStatus == 1 || scope.row.testStatus == 2">
              <p>考试</p>
              <p :class="scope.row.testStatus == 0 ?'scopeColorA':(scope.row.testStatus == 1 ?'scopeColorB':(scope.row.testStatus == 2 ?'scopeColorC':''))">{{scope.row.testStatus == 0 ?'未完成':(scope.row.testStatus == 1 ?'已完成':(scope.row.testStatus == 2 ?'已恢复':''))}}</p>
            </div>
          </template>
        </el-table-column>
        <el-table-column label="处理截止日期" align="left"  prop="handleDay" width="180" />
        <el-table-column label="信用分" align="left"  prop="creditScore" width="100"/>
      </el-table>
      <pagination
        style="margin-top:20px;"
        v-show="total>0"
        :total="total"
        layout="total, prev, pager, next, sizes, jumper"
        :page.sync="queryParams.pageNum"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
      />
    </div>
  </div>
</template>

<script>
  import { violationHistoryRecord,getSemesterList } from "@/api/laboratory/violation";
  export default {
    props:{
      propsData:{},
    },
    name: "violationInfo",
    data() {
      return {
        //加载状态
        loading:false,
        // 显示搜索条件
        showSearch: true,
        // 查询参数
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          overStatus: null,
          semesterId: null,
          points: null,
          joinUserId: null,
          mode: null,
          deptName: null,
          deptId: null,
          userId: null,
        },
        //状态条件
        bonusTypeOptions:[
          {id:1,name:"已完成"},
          {id:0,name:"未完成"},
          {id:2,name:"已恢复"},
        ],
        //学期
        semesterList:[],
        //列表数据
        recordList:[],
        total:0,
        // 日期范围
        dateRange: [],
      }
    },
    created(){
      this.getList();
      this.getSemesterList();
    },
    methods:{
      //返回上级页面
      backPage(){
        this.$parent.goPage(1);
      },
      getSemesterList(){
        getSemesterList(this.queryParams).then( res => {
          this.semesterList = res.data;
        });
      },
      /** 查询数据 */
      getList() {
        this.loading = true;
        if(this.dateRange&&this.dateRange.length>0)
        {
          this.queryParams.statTime=this.dateRange[0]
          this.queryParams.endTime=this.dateRange[1]
        }
        else
        {
          this.queryParams.statTime=null;
          this.queryParams.endTime=null
        }
        this.queryParams.joinUserId = this.propsData.userId;
        violationHistoryRecord(this.queryParams).then( response => {
          this.recordList =  response.rows;
          this.total =  response.total;
          this.loading = false;
        });
      },
      /** 搜索按钮操作 */
      handleQuery() {
        this.queryParams.pageNum = 1;
        this.getList();
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.dateRange = [];
        this.queryParams.overStatus = null;
        this.queryParams.semesterId = null;
        this.queryParams.statTime = null;
        this.queryParams.endTime = null;
        this.resetForm("queryParams");
        this.handleQuery();
      },
    },
  }
</script>

<style scoped lang="scss">
  .violationInfo {
    flex:1;
    display: flex!important;
    flex-direction: column;
    *{
      margin:0;
    }
    .title-box{
      display: flex;
      border-bottom: 1px solid #E0E0E0;
      p:nth-child(1){
        flex:1;
        line-height:80px;
        color:#0045AF;
        font-size:18px;
        margin-left:20px;
      }
      p:nth-child(2){
        margin:20px;
      }
    }
    .rewardPointsListPage{
      flex:1;
      display: flex!important;
      flex-direction: column;
      overflow: hidden;
      padding:20px;
    }
    .scope-big-box{
      display: flex;
      p{
        font-size:14px;
        height:20px;
        line-height:20px;
        margin:4px 0;
      }
      p:nth-child(1){
        margin-right:10px;
      }
      p:nth-child(2){

      }
      .scopeColorA{
        padding:0 4px;
        border-radius:4px;
        color:#fff;
        background: #FF3131;
      }
      .scopeColorB{
        padding:0 4px;
        border-radius:4px;
        color:#fff;
        background: #39A922;
      }
      .scopeColorC{
        padding:0 4px;
        border-radius:4px;
        color:#fff;
        background: #0183FA;
      }
    }
  }
</style>
