<template>
  <div class="pa-3">
    <m-card title="文件导出列表" class="pb-3" min-height="600">
      <m-table
        :loading="false"
        :headers="headers"
        :items="items"
        :show-page="false"
        :show-select="false"
        :is-tools="false"
        :elevation="0"
        :disable-sort="true"
      >
        <template #actions="{ item }">
          <v-btn text color="primary" :loading="item.loading" @click="handleExport(item)">导出</v-btn>
        </template>
      </m-table>
    </m-card>
  </div>

</template>

<script>
import MCard from '@/components/MCard'
import MTable from '@/components/List/table'
import {
  questionnaireExport,
  questionnaireExportByDept,
  questionnaireExportByPosition
} from '@/api/report'
import { downloadFile } from '@/utils'
export default {
  components: { MCard, MTable },
  name: 'file-export',
  data () {
    return {
      headers: [
        { text: '文件', value: 'text' },
        { text: '操作', value: 'actions' }
      ],
      items: [
        {
          text: '2024中国酒店业高管薪酬与福利调研报告 原始数据',
          api: questionnaireExport,
          loading: false
        },
        {
          text: '集团薪酬职位分位值 (按部门划分) 原始数据',
          api: questionnaireExportByDept,
          loading: false
        },
        {
          text: '酒店薪酬职位分位值 (按职位划分) 原始数据',
          api: questionnaireExportByPosition,
          loading: false
        }
      ]
      // downloadList: [
      //   {
      //     text: '2024中国酒店业高管薪酬与福利调研报告 原始数据',
      //     api: questionnaireExport,
      //     loading: false
      //   },
      //   {
      //     text: '集团薪酬职位分位值 (按部门划分) 原始数据',
      //     api: questionnaireExportByDept,
      //     loading: false
      //   },
      //   {
      //     text: '酒店薪酬职位分位值 (按职位划分) 原始数据',
      //     api: questionnaireExportByPosition,
      //     loading: false
      //   }
      // ]
    }
  },
  methods: {
    async handleExport (item) {
      item.loading = true
      try {
        const { data, name } = await item.api()
        downloadFile(data, name, 'application/json')
      } catch (error) {
        this.$snackbar.error(error)
      } finally {
        item.loading = false
      }
    }
  }
}
</script>

<style lang="scss" scoped>
.box {
  width: 800px;
  border: 1px solid #ccc;
  &:not(:last-of-type) {
    border-bottom: none;
  }
}
</style>
