<!-- 任务管理 -->
<template>
  <div class="L-main" id="L-size-main">
    <div class="content-search" id="L-header">
      <div class="search-title">查询条件</div>
      <el-form :inline="true" :model="formInline" size="small" class="demo-form-inline">
        <el-row>
          <el-col :span="8">
            <el-form-item label="任务名称：">
              <el-input v-model="formInline.name" placeholder="请输入"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="任务编号：">
              <el-input v-model="formInline.type" placeholder="请输入"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="任务完成时间：">
              <el-date-picker
                v-model="formInline.time"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                type="datetimerange"
                start-placeholder="开始时间"
                end-placeholder="结束时间"
                placeholder="请选择"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="任务状态：">
              <el-select v-model="formInline.status" placeholder="请选择">
                <el-option label="item.label" value="item.value">
                </el-option>
                <!-- <el-option
                  v-for="dict in dict.type.bms_approval_status"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value">
                </el-option> -->
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="16" style="text-align: right;padding-right: 20px;">
            <el-form-item>
              <el-button size="mini" @click="resetQuery('queryFrom')">重置</el-button>
              <el-button size="mini" type="primary" @click="handleQuery('queryFrom')">查询</el-button>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <main>
      <div class="search-title">
        <span class="search-title-span">任务列表</span>
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <el-button
              type="warning"
              plain
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
            >导出</el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button
              type="primary"
              plain
              icon="el-icon-plus"
              size="mini"
              @click="handleAdd"
            >任务创建</el-button>
          </el-col>
        </el-row>
      </div>
      <section>
        <el-table v-loading="loading" :data="tableData" :height="tabHeader" :max-height="tabHeader" border>
          <el-table-column type="index" width="50" label="序号" align="center"/>
          <el-table-column label="任务编号" key="number" width="200px" prop="number" align="center" />
          <el-table-column label="任务名称" key="name" prop="name" align="center" />
          <el-table-column label="任务下发时间" key="type" prop="type" align="center">
            <!-- <template slot-scope="scope">
              <dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
            </template> -->
          </el-table-column>
          <el-table-column label="任务期限" key="unit" prop="unit" align="center" />
          <el-table-column label="任务完成时间" key="time" prop="time" align="center" />
          <el-table-column label="任务状态" key="status" width="200px" prop="status" class-name="table-status" align="center">
            <template slot-scope="scope">
              <span  v-if="scope.row.status === 0" style="color: #F59A23;">
                待审核
              </span>
              <span v-if="scope.row.status === 1" style="color: #F43147;">
                审核驳回
              </span>
              <span v-if="scope.row.status === 3" style="color: #a4c86c;">
                正常完成
              </span>
              <span v-if="scope.row.status === 4" style="color: #00aaaa;">
                超期完成
              </span>
            </template>
          </el-table-column>
          <el-table-column label="操作" prop="userId" class-name="table-operation" align="center">
            <template slot-scope="scope">
              <span class="look-info" @click="goInfo(scope.row)" style="color: #192A92;margin-right: 15px;cursor: pointer;">查看</span>
              <span class="del-info" v-if="scope.row.status == 0" @click="delInfo(scope.row)" style="color: #192A92;margin-right: 15px;cursor: pointer;">审核</span>
            </template>
          </el-table-column>
        </el-table>
      </section>
      <my-pagination 
        id="L-pagination"
        :total="total"
        :page="pagination.current"
        :limit="pagination.size"
        @pagination="getPagination"
        :current-page.sync="pagination.current" 
      ></my-pagination>
    </main>
    <my-dialog title="新增任务" @close="importClose" ref="taskDialog" class="taskDialogBox" width="30%">
      <el-row>
        <el-col :span="18">
          <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
            <el-form-item label="任务名称" prop="taskName">
              <el-input v-model="ruleForm.taskName"></el-input>
            </el-form-item>
            <el-form-item label="核查单位" prop="unit" class="select-box">
              <el-col :span="24">
                <el-select v-model="ruleForm.unit" placeholder="请选择活动区域">
                  <el-option label="区域一" value="shanghai"></el-option>
                  <el-option label="区域二" value="beijing"></el-option>
                </el-select>
              </el-col>
              <el-col class="btn-box">
                <el-button type="primary">单位列表</el-button>
              </el-col>
            </el-form-item>
            <el-form-item label="任务期限" prop="time">
              <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.time" style="width: 100%;"></el-date-picker>
            </el-form-item>
            <el-form-item class="newTask-form-item">
              <el-button @click="resetForm('ruleForm')">取消</el-button>
              <el-button type="primary" @click="submitForm('ruleForm')">发布</el-button>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col :span="6"></el-col>
      </el-row>
    </my-dialog>
  </div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
import myDialog from "@/views/components/myDialog/index.vue"
export default {
  // dicts: ['jjh_project_type', 'bms_approval_status', "project_middle_type", "project_small_type", "project_categories"],
  components:{myPagination, myDialog},
  data() {
    return {
      formInline:{
        name:"",
        type:"",
        time:[],
        number:"",
        status:"",
      },
      total:0,
      pagination:{
        current:1,
        size:10,
      },
      tableData:[
        {
          number:20230001,
          name:"XXX任务",
          type:"2023-07-30 16:30:21",
          unit:"2023-07-30",
          time:"2023-07-30 16:30:21",
          status:0,
        },{
          number:20230001,
          name:"XXX任务",
          type:"2023-07-30 16:30:21",
          unit:"2023-07-30",
          time:"2023-07-30 16:30:21",
          status:1,
        },{
          number:20230001,
          name:"XXX任务",
          type:"2023-07-30 16:30:21",
          unit:"2023-07-30",
          time:"2023-07-30 16:30:21",
          status:3,
        },{
          number:20230001,
          name:"XXX任务",
          type:"2023-07-30 16:30:21",
          unit:"2023-07-30",
          time:"2023-07-30 16:30:21",
          status:4,
        },
      ],
      loading:false,
      tabHeader: undefined,
      ruleForm:{
        taskName:"",
        unit:"",
        time:"",
      },
      rules: {
        name: [
          { required: true, message: '请输入活动名称', trigger: 'blur' },
        ],
        region: [
          { required: true, message: '请选择活动区域', trigger: 'change' }
        ],
        date1: [
          { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
        ],
      }
    }
  },
  mounted(){
    this.getInfo();
    this.cancalDebounce();
    window.addEventListener('resize', this.cancalDebounce);
  },
  destroyed() {
    window.removeEventListener('resize', this.cancalDebounce);
  },
  methods:{
    // 获取列表
    getInfo(){
      // this.loading = true;
      // jProject(this.pagination).then(res=>{
      //   this.loading = false;
      //   this.total = res.data.total;
      //   this.tableData = res.data.records;
      // })
    },
    // 重置
    resetQuery(){
      this.formInline = {
        name:"",
        type:"",
        time:[],
        number:"",
        status:"",
      }
      this.pagination = {
        current: 1,
        size: 10,
      }
      this.getList();
    },
    // 查询
    handleQuery(){
      this.pagination = {
        current: 1,
        size: 10
      }
      if(this.formInline.time.length > 0) {
        this.formInline.startTime = this.formInline.time[0]
        this.formInline.endTime = this.formInline.time[1]
      }
      this.pagination = { ...this.pagination,...this.formInline };
      this.getList();
    },
    // 页码获取
    getPagination(pages){
      this.pagination.current = pages.page;
      this.pagination.size = pages.limit;
      this.getList();
    },
    // 导入
    handleImport(){},
    // 导出
    handleExport(){},
    // 任务创建
    handleAdd(){
      this.$refs.taskDialog.open()
    },
    // 关闭弹框
    importClose(){},
    // 查看详情
    goInfo(){
      this.$router.push({name: 'TaskInfo',query: {
        pageType: "info",
      }})
    },
    // 编辑
    edit(){
    },
    // 删除
    delInfo(){
      this.$router.push({name: 'taskAudit',query: {
        pageType: "info",
      }})
    },
    // 屏幕尺寸变化
    cancalDebounce(){
      const element = document.getElementById('L-size-main'); // 通过元素的 ID 获取元素
      const header = document.getElementById('L-header'); // 通过元素的 ID 获取元素
      const pagination = document.getElementById('L-pagination'); // 通过元素的 ID 获取元素
      const elementHeight = element.offsetHeight;
      const headerHeight = header.offsetHeight;
      const paginationtHeight = pagination.offsetHeight;
      this.tabHeader = elementHeight - headerHeight - paginationtHeight - 110;
    }
  },
}
</script>
