<!--申请-->
<template>
  <div class="app-container application">
    <div class="application-page" v-if="pageType == 1">
      <div class="application-min">
        <el-form :model="queryParamsData" ref="queryForm" :inline="true">
          <el-form-item label="关键字" prop="searchValue" label-width="68px">
            <el-input
              maxlength="20"
              v-model="queryParamsData.searchValue"
              placeholder="姓名/实验室"
              clearable
              size="small"/>
          </el-form-item>
          <el-form-item label="状态" prop="status" label-width="50px">
            <el-select v-model="queryParamsData.status" clearable placeholder="请选择状态">
              <el-option
                v-for="item in optionsListTwo"
                :key="item.id"
                :label="item.name"
                :value="item.id">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="申请时间" prop="subjectId" label-width="80px">
            <el-date-picker
              :clearable="false"
              v-model="dateRange"
              style="width: 240px;height:40px;"
              value-format="yyyy-MM-dd"
              type="daterange"
              range-separator="-"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
            ></el-date-picker>
          </el-form-item>
          <el-form-item style="float: right;">
            <el-col :span="1.5">
              <p class="inquire-button-one"
                 style="width:100px;margin-right:0;"
                 @click="goPageButton(2)"
              >授权申请</p>
            </el-col>
          </el-form-item>
          <el-form-item style="margin-left:20px;">
            <p class="inquire-button-one" @click="handleQuery" style="margin-right:10px;">查询</p>
            <p class="reset-button-one" @click="resetQuery">重置</p>
          </el-form-item>
        </el-form>
        <el-table v-loading="loading" border :data="tableList" style="margin:20px 0;">
          <el-table-column label="申请时间" align="center" prop="creatTime" show-overflow-tooltip/>
          <el-table-column label="申请实验室" align="center" prop="subjectName" show-overflow-tooltip/>
          <el-table-column label="位置" align="center" prop="position" show-overflow-tooltip v-if="$store.state.settings.smartAlarmType == 1"/>
          <el-table-column label="所属学院" align="center" prop="college" show-overflow-tooltip/>
          <el-table-column label="授权人" align="center" prop="safeUserName"  width="160px" show-overflow-tooltip/>
          <el-table-column label="失效时间" align="center" prop="loseTime" width="160px" show-overflow-tooltip>
            <template slot-scope="scope">
              <span>{{scope.row.loseTime!=1?scope.row.loseTime:''}}</span>
            </template>
          </el-table-column>
          <el-table-column label="状态" align="center" prop="applyStatus" width="180px" show-overflow-tooltip>
            <template slot-scope="scope">
              <span>{{scope.row.applyStatus==1?'已授权':(scope.row.applyStatus==2?'已失效':'')}}</span>
            </template>
          </el-table-column>
        </el-table>
        <pagination :page-sizes="[20, 30, 40, 50]"
                    v-show="total>0"
                    :total="total"
                    :page.sync="queryParams.pageNum"
                    :limit.sync="queryParams.pageSize"
                    @pagination="getList"/>
      </div>
    </div>
    <addPage v-if="pageType == 2"></addPage>
  </div>
</template>

<script>
  import { applyList } from "@/api/studentApi/accessAuthorization/index";
  import addPage from "./addPage.vue";
  export default {
    name: "application",
    components: {
      addPage
    },
    data(){
      return{
        pageType:1,
        // table操作按钮校验
        tableButtonType:this.hasPermiDom(['system:user_student:query','system:user_student:query']),
        loading:false,
        // 搜索数据
        queryParamsData:{
          pageNum:1,
          pageSize:20,
        },
        // 搜索实际发送数据
        queryParams:{
          pageNum:1,
          pageSize:20,
        },
        dateRange:[],
        //数据数量
        total:10,
        tableList:[],
        //审批状态
        optionsListTwo:[{id:'1',name:'已授权'},{id:'2',name:'已失效'}]
      }
    },
    created() {

    },
    mounted(){
      this.getList();
    },
    methods:{
      titleClick(){
        this.$parent.titleClick(1);
      },
      //页面状态切换
      goPageButton(type){
        if(type == 1){
          this.pageType = 1;
        }else if(type == 2){
          this.pageType = 2;
        }else if(type == 3){
          this.resetQuery();
          this.pageType = 1;
        }
      },
      /** 搜索按钮操作 */
      handleQuery() {
        this.queryParamsData.pageNum = 1;
        this.queryParamsData.pageSize = 20;
        this.queryParams = JSON.parse(JSON.stringify(this.queryParamsData));
        this.getList();
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.$set(this,'queryParamsData',{});
        this.$set(this,'queryParams',{});
        this.$set(this,'dateRange',[]);
        this.handleQuery();
      },
      //获取数据列表
      getList(){
        this.queryParamsData = JSON.parse(JSON.stringify(this.queryParams));
        if(this.dateRange&&this.dateRange.length>0) {
          this.queryParamsData.startTime = this.dateRange[0];
          this.queryParamsData.endTime = this.dateRange[1];
        } else {
          this.queryParamsData.startTime = null;
          this.queryParamsData.endTime = null;
        }
        applyList(this.queryParamsData).then(response => {
          this.tableList = response.rows;
          this.total = response.total
        });
      },
    }
  }
</script>

<style scoped lang="scss">
  .application{
    flex:1;
    display: flex;
    flex-direction: column;
    *{
      margin: 0;
    }
    .application-page{
      flex:1;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      padding:20px!important;
      .application-min{
        flex:1;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        margin:0 20px!important;
        .button-box{
          display: flex;
        }
      }
    }
  }

</style>
