excel.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <div class="upload">
  3. <el-row>
  4. <el-col :span="2">
  5. <el-upload
  6. :action="`${path}/fileUploadAndDownload/importExcel`"
  7. :headers="{'x-token':token}"
  8. :on-success="loadExcel"
  9. :show-file-list="false"
  10. >
  11. <el-button size="small" type="primary" icon="el-icon-upload2">导入</el-button>
  12. </el-upload>
  13. </el-col>
  14. <el-col :span="2">
  15. <el-button size="small" type="primary" icon="el-icon-download" @click="handleExcelExport('ExcelExport.xlsx')">导出</el-button>
  16. </el-col>
  17. <el-col :span="2">
  18. <el-button size="small" type="success" icon="el-icon-download" @click="downloadExcelTemplate()">下载模板</el-button>
  19. </el-col>
  20. </el-row>
  21. <el-table :data="tableData" border row-key="ID" stripe>
  22. <el-table-column label="ID" min-width="100" prop="ID"></el-table-column>
  23. <el-table-column label="路由Name" min-width="160" prop="name"></el-table-column>
  24. <el-table-column label="路由Path" min-width="160" prop="path"></el-table-column>
  25. <el-table-column label="是否隐藏" min-width="100" prop="hidden">
  26. <template slot-scope="scope">
  27. <span>{{scope.row.hidden?"隐藏":"显示"}}</span>
  28. </template>
  29. </el-table-column>
  30. <el-table-column label="父节点" min-width="90" prop="parentId"></el-table-column>
  31. <el-table-column label="排序" min-width="70" prop="sort"></el-table-column>
  32. <el-table-column label="文件路径" min-width="360" prop="component"></el-table-column>
  33. </el-table>
  34. </div>
  35. </template>
  36. <script>
  37. const path = process.env.VUE_APP_BASE_API;
  38. import { mapGetters } from 'vuex';
  39. import infoList from "@/mixins/infoList";
  40. import { exportExcel, loadExcelData, downloadTemplate } from "@/api/fileUploadAndDownload";
  41. import { getMenuList } from "@/api/menu";
  42. export default {
  43. name: 'Excel',
  44. mixins: [infoList],
  45. data() {
  46. return {
  47. listApi: getMenuList,
  48. path: path
  49. }
  50. },
  51. computed: {
  52. ...mapGetters('user', ['userInfo', 'token'])
  53. },
  54. methods: {
  55. handleExcelExport(fileName) {
  56. if (!fileName || typeof fileName !== "string") {
  57. fileName = "ExcelExport.xlsx";
  58. }
  59. exportExcel(this.tableData, fileName);
  60. },
  61. loadExcel() {
  62. this.listApi = loadExcelData;
  63. this.getTableData();
  64. },
  65. downloadExcelTemplate() {
  66. downloadTemplate('ExcelTemplate.xlsx')
  67. }
  68. },
  69. created() {
  70. this.pageSize = 999;
  71. this.getTableData();
  72. }
  73. }
  74. </script>