odc.xiaohui
2023-07-28 9cf2d8c275778dcc6a8c17cfed78363a1b68772c
修改青羊后台题目个人模拟列表导出
3个文件已修改
62 ■■■■■ 已修改文件
src/api/examPaper.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/exam/personalSimulation/list.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/examPaper.js
@@ -1,4 +1,4 @@
import { get, post } from '@/utils/request'
import { get, post,down } from '@/utils/request'
export default {
  pageList: query => post('/api/admin/exam/paper/page', query),
@@ -13,4 +13,5 @@
  selflist: query => post('/api/admin/education/subject/list', query),
  selfPaList: query => post('/api/admin/exam/count/list', query),
  mathList: query => post('/api/admin/exam/count/sourceList', query),
  uploadEnrolmentsa: query => down('/api/admin/exam/count/exportTemplatesSheet/'+query),
}
src/utils/request.js
@@ -99,15 +99,28 @@
    withCredentials: true,
    timeout: 30000,
    data: params,
    headers: { 'Content-Type': 'multipart/form-data', 'request-ajax': true }
    responseType: 'blob',//关键
    headers: {'Content-Type': 'application/vnd.ms-excel',}//类型修改为excel
  }
  return request(false, query)
}
export const down = function (url, params) {
  const query = {
    baseURL: process.env.VUE_APP_URL,
    url: url,
    method: 'get',
    withCredentials: true,
    timeout: 30000,
    data: params,
    headers: {  responseType: 'blob', 'Content-Type': 'multipart/form-data', 'request-ajax': true}
  }
  return request(false, query)
}
export {
  post,
  postWithLoadTip,
  postWithOutLoadTip,
  get,
  form
  form,
}
src/views/exam/personalSimulation/list.vue
@@ -27,10 +27,11 @@
    <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
      <el-table-column prop="subjectId" label="课目" :formatter="subjectFormatter" width="120px" />
      <el-table-column prop="name" label="名称"  />
      <el-table-column  label="操作" align="center"  width="160px">
      <el-table-column  label="操作" align="center"  width="260px">
        <template slot-scope="{row}">
          <el-button size="mini" @click="$router.push({path:'/exam/personalSimulation/edit',query:{id:row.id}})" >编辑</el-button>
          <el-button size="mini" type="danger"  @click="deletePaper(row)" class="link-left">删除</el-button>
          <el-button size="mini" type="danger"  @click="handleExport(row)" class="link-left">导出</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -40,7 +41,7 @@
</template>
<script>
import { mapGetters, mapState, mapActions } from 'vuex'
import { mapActions, mapGetters, mapState } from 'vuex'
import Pagination from '@/components/Pagination'
import examPaperApi from '@/api/examPaper'
@@ -68,6 +69,41 @@
    this.subjectFilter = this.subjects
  },
  methods: {
    handleExport(row){
      let fileName = row.name +'.xls'
      let url ='/api/admin/exam/count/exportTemplatesSheet/'+row.id
      var x = new XMLHttpRequest();
      x.open("GET", url, true);
      x.responseType = "blob";
      x.onload = function () {
        var url = window.URL.createObjectURL(x.response);
        var a = document.createElement("a");
        a.href = url;
        a.download = fileName;
        a.click();
      };
      x.send();
      // examPaperApi.uploadEnrolmentsa(row.id).then(res=> {
      //   console.log(res)
        // const link = document.createElement('a');  //创建一个a标签
        // const blob = new Blob([res.data]);//这里res.data根据返回值来定的.data是blob对象
        // link.style.display = 'none';
        // link.href = URL.createObjectURL(blob);    //将后端返回的数据通过blob转换为一个地址
        // //设置下载下来后文件的名字以及文件格式
        // link.setAttribute(
        //   'download',
        //   `xxx.` + `xlsx`,
        // );
        // document.body.appendChild(link);
        // link.click();                            //下载该文件
        // document.body.removeChild(link);
      // })
    },
    submitForm () {
      this.queryParam.pageIndex = 1
      this.search()