<template>
  <div class="app-content">
    <div class="submit-btn">
      <a-button type="primary" class="search_input" style="margin-right: 10px;" @click="createBatch">添加</a-button>
    </div>
    <a-table :dataSource="tableData" :columns="columns" rowKey="id" :pagination="false" :loading="loading" bordered>
      <template slot="option" slot-scope="record">
        <a-button type="link" size="small" @click="recordClick(record,'edit')">修改</a-button>&nbsp;
        <a-button type="link" size="small" @click="recordClick(record,'delete')">删除</a-button>
      </template>
    </a-table>
    <a-pagination v-if="pagination.total > 0" :total="pagination.total" show-size-changer show-quick-jumper v-model="pagination.pageIndex" :page-size="pagination.pageSize" :page-size-options="pagination.pageSizeOptions" @showSizeChange="showSizeChange" @change="change" :showTotal="() => `共 ${pagination.total} 条`" />
    <a-modal :visible="visibleEdit" v-model="visibleEdit" :title="'添加/修改'" :footer="null" :maskClosable="false" :dialog-style="{ top: '15%' }" :width="800" destroyOnClose>
      <batch-edit v-model="id" @close="closeWindow" ref="childEdit" />
    </a-modal>
  </div>
</template>

<script>
import { getType } from '@/views/utils/auth'
import batchEdit from '@/views/timeSet/batch/components/batchEdit'
import moment from 'moment'

export default {
  name: 'batchSet',
  components: { batchEdit },
  data () {
    return {
      tableData: [],
      columns: [
        { key: '1', title: '申报年度', dataIndex: 'year', align: 'center' },
        { key: '2', title: '批次', dataIndex: 'batch', align: 'center' },
        { key: '3', title: '项目申报时间', dataIndex: 'reportStart', colSpan: 2, ellipsis: true },
        { key: '4', title: '项目申报时间', dataIndex: 'reportEnd', colSpan: 0, ellipsis: true },
        { key: '5', title: '州市级及以下单位上报时间', dataIndex: 'unitStart', colSpan: 2, ellipsis: true },
        { key: '6', title: '州市级及以下单位上报时间', dataIndex: 'unitEnd', colSpan: 0, ellipsis: true },
        { key: '7', title: '州市级行政单位审核时间', dataIndex: 'prefectureStart', colSpan: 2, ellipsis: true },
        { key: '8', title: '州市级行政单位审核时间', dataIndex: 'prefectureEnd', colSpan: 0, ellipsis: true },
        { key: '9', title: '省直单位上报时间', dataIndex: 'provinceStart', colSpan: 2, ellipsis: true },
        { key: '10', title: '省直单位上报时间', dataIndex: 'provinceEnd', colSpan: 0, ellipsis: true },
        { key: '11', title: '专家评审时间', dataIndex: 'expertStart', colSpan: 2, ellipsis: true },
        { key: '12', title: '专家评审时间', dataIndex: 'expertEnd', colSpan: 0, ellipsis: true },
        { key: '13', title: '备注', dataIndex: 'remark', align: 'center', ellipsis: true },
        { key: '14', title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, },
      ],
      pagination: { pageIndex: 1, pageSize: this.$defaultPageSize, total: 0, pageSizeOptions: this.$defaultPageSizeOptions, },
      // 弹窗标志
      visibleEdit: false,
      id: null,
      loading: false,
    }
  },
  created () {
    this.getListByPage()
  },
  computed: {

  },
  methods: {
    moment,
    getListByPage () {
      this.loading = true
      let par = { projType: getType(), pageIndex: this.pagination.pageIndex, pageSize: this.pagination.pageSize }
      this.$api.batch.getBatchListByPage(par).then(({ data = {} }) => {
        if (data) {
          const { dataList = [], total = 0 } = data
          this.tableData = dataList
          this.pagination.total = total
          this.loading = false
        }
      }).catch(() => { this.loading = false })
    },
    change () {
      this.getListByPage()
    },
    showSizeChange (current, pageSize) {
      this.pagination.pageIndex = current
      this.pagination.pageSize = pageSize
      this.getListByPage()
    },
    createBatch () {
      this.id = null
      this.visibleEdit = true
    },
    recordClick (record, type) {
      if (type === 'edit') {
        this.id = record.id
        this.visibleEdit = true
      } else if (type === 'delete') {
        let self = this
        this.$confirm({
          title: '',
          content: '确定要删除该批次？',
          okText: '确定',
          okType: 'danger',
          cancelText: '取消',
          onOk () {
            let pars = { id: record.id }
            self.$api.batch.deleteBatch(pars).then(({ data = {} }) => {
              if (data) {
                self.getListByPage()
              }
            })
          },
          onCancel () {
          },
        })
      }
    },
    closeWindow () {
      this.visibleEdit = false
      this.getListByPage()
    }
  },
  watch: {
    $route () {

    }
  }
}
</script>