<template>
  <div class="app-container">
    <el-card>
      <el-date-picker
        v-model="startTime"
        size="small"
        type="daterange"
        align="center"
        value-format="yyyy-MM-dd"
        format="yyyy-MM-dd"
        range-separator="～"
        style="width:250px;margin-left: 5px;margin-top: 10px;margin-bottom: 10px"
        start-placeholder="开始日期"
        end-placeholder="结束日期"/>
      <el-input v-model="name" size="small" placeholder="操作工" style="width: 150px" clearable/>
      <el-input v-model="partNumber" size="small" placeholder="零件图号" style="width: 150px" clearable/>
      <el-tooltip :open-delay="600" effect="dark" content="筛选掉备料、热及外协工序" placement="top">
        <el-checkbox v-model="check" class="remeberPassword">筛选</el-checkbox>
      </el-tooltip>
      <el-button size="small" type="primary" icon="el-icon-search" style="margin-left: 5px" plain @click="pageCurrent=1;pageSize=50;searchTable()">查询</el-button>
      <el-button size="small" type="success" icon="el-icon-download" plain @click="exportExcel">导出</el-button>
    </el-card>
    <el-card>
      <el-table v-loading="loading" :data="tableData" size="mini" style="max-height: 720px" height="720px" border @sort-change="sortChange">
        <el-table-column align="center" label="跟单号" width="120px">
          <template slot-scope="scope">
            {{ scope.row.跟单号 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="加工日期" width="110px" sortable="custom" prop="操作时间">
          <template slot-scope="scope">
            {{ scope.row.完成日期 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="姓名" width="80px" sortable="custom" prop="姓名">
          <template slot-scope="scope">
            {{ scope.row.操作工 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="图号" width="150px">
          <template slot-scope="scope">
            {{ scope.row.零件图号 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="工序" width="50px">
          <template slot-scope="scope">
            {{ scope.row.工序顺序 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="工序名称" width="80px">
          <template slot-scope="scope">
            {{ scope.row.工艺名称 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="完成数量" width="80px">
          <template slot-scope="scope">
            {{ scope.row.完成数量 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="单件工时(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.修补单件工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="完成工时(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.完成工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="准结(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.修补工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="备注" width="200px" show-overflow-tooltip="">
          <template slot-scope="scope">
            {{ scope.row.备注 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="扫码工时(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.扫码工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="工时比值" width="100px">
          <template slot-scope="scope">
            {{ scope.row.工时比值 }}
          </template>
        </el-table-column>
        <!--<el-table-column align="center" label="废品件数" width="80px">-->
        <!--<template slot-scope="scope">-->
        <!--{{ scope.row.不合格数量 }}-->
        <!--</template>-->
        <!--</el-table-column>-->
        <el-table-column align="center" label="计划准结(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.准结定额工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="计划定额(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.单件定额工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="计划工时(分)" width="110px">
          <template slot-scope="scope">
            {{ scope.row.计划工时 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="项目名称" width="130px">
          <template slot-scope="scope">
            {{ scope.row.项目名称 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="机床图号" width="100px">
          <template slot-scope="scope">
            {{ scope.row.机床图号 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="组号" width="70px">
          <template slot-scope="scope">
            {{ scope.row.组号 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="设计者" width="70px">
          <template slot-scope="scope">
            {{ scope.row.设计者 }}
          </template>
        </el-table-column>
        <el-table-column align="center" label="材料" width="150px">
          <template slot-scope="scope">
            {{ scope.row.材料 }}
          </template>
        </el-table-column>
      </el-table>
      <div class="block">
        <el-pagination
          v-if="!loading"
          :current-page="pageCurrent"
          :page-sizes="[50, 100, 200, 300]"
          :page-size="pageSize"
          :total="total"
          layout="total, sizes, prev, pager, next, jumper"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"/>
      </div>
    </el-card>
  </div>
</template>
<script>
import { searchTable } from '@/api/ManufacturingCenter/MonthEndHourAccounting'
export default {
  data() {
    return {
      check: 0,
      orderName: 0,
      order: 0,
      startTime: '',
      name: '',
      partNumber: '',
      tableData: [],
      loading: false,
      total: 0, // 总条数
      pageSize: 50, // 每页显示条数
      pageCurrent: 1 // 后台获取页
    }
  },
  methods: {
    exportExcel() {
      if (this.tableData.length === 0) {
        this.$message.warning('请查询出要导出的数据')
        return
      }
      let check, check1, check2
      this.name ? check = 1 : check = 0
      this.partNumber ? check1 = 1 : check1 = 0
      this.check ? check2 = 1 : check2 = 0
      var param = []
      param[0] = ['开始时间', this.startTime[0]]
      param[1] = ['结束时间', this.startTime[1]]
      param[2] = ['排序名称', this.orderName]
      param[3] = ['排序方式', this.order]
      param[4] = ['筛选', check2]
      param[5] = ['操作工_check', check]
      param[6] = ['操作工', this.name]
      param[7] = ['零件图号_check', check1]
      param[8] = ['零件图号', this.partNumber]
      var Data = this.CreateData('2001', '报表_工艺月底工时核算_查询数据', param)
      this.exportExcel_NPOI(Data)
    },
    sortChange(column, prop, order) {
      if (column.prop === '姓名') {
        this.orderName = 1
      } else if (column.prop === '操作时间') { this.orderName = 2 } else {
        this.orderName = 2
      }
      if (column.order === 'ascending') {
        this.order = 1
      } else if (column.order === 'descending') { this.order = 2 } else {
        this.order = 0
      }
      this.searchTable()
    },
    searchTable() {
      if (this.startTime[0] && this.startTime[1]) {
        let check, check1, check2
        this.name ? check = 1 : check = 0
        this.partNumber ? check1 = 1 : check1 = 0
        this.loading = true
        this.check ? check2 = 1 : check2 = 0
        searchTable(check2, this.startTime[0], this.startTime[1], this.orderName, this.order, check, this.name, check1, this.partNumber, this.pageCurrent, this.pageSize).then(response => {
          response.data.rows.map(v => {
            this.$set(v, '工时比值', parseInt(v.计划工时) === 0 ? 0 : (Math.round(parseInt(v.完成工时) / parseInt(v.计划工时) * 100) / 100.00))
          })
          this.tableData = response.data.rows
          this.total = response.data.total
          this.loading = false
        })
      } else {
        this.$message.warning('请选择时间段')
      }
    },
    // 分页
    handleSizeChange(val) {
      this.pageCurrent = 1
      this.pageSize = val
      this.searchTable()
    },
    handleCurrentChange(val) {
      this.pageCurrent = val
      this.searchTable()
    }
  }
}
</script>
