RuoYi
2021-09-27 ded99502ae2d7824d9584b5c69f4dfcf7bdb6759
新增通用方法简化下载使用
已修改18个文件
已添加1个文件
已删除1个文件
152 ■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/main.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/download.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/index.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/ruoyi.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/zipdownload.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/job/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/job/log.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/logininfor/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/monitor/operlog/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/config/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/dict/data.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/dict/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/post/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/role/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/user/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/build/index.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/tool/gen/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -211,6 +211,7 @@
                .append(percentEncodedFileName);
        response.setHeader("Content-disposition", contentDispositionValue.toString());
        response.setHeader("download-filename", percentEncodedFileName);
    }
    /**
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -107,8 +107,6 @@
                        "/**/*.js",
                        "/profile/**"
                ).permitAll()
                .antMatchers("/common/download**").anonymous()
                .antMatchers("/common/download/resource**").anonymous()
                .antMatchers("/swagger-ui.html").anonymous()
                .antMatchers("/swagger-resources/**").anonymous()
                .antMatchers("/webjars/**").anonymous()
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -567,7 +567,7 @@
        this.exportLoading = true;
        return export${BusinessName}(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.#[[$download]]#.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/main.js
@@ -17,7 +17,7 @@
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 分页组件
import Pagination from "@/components/Pagination";
// 自定义表格工具组件
@@ -43,7 +43,6 @@
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
// 全局组件挂载
ruoyi-ui/src/plugins/download.js
对比新文件
@@ -0,0 +1,48 @@
import { saveAs } from 'file-saver'
import axios from 'axios'
import { getToken } from '@/utils/auth'
const baseURL = process.env.VUE_APP_BASE_API
export default {
  name(name, isDelete = true) {
    var url = baseURL + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete
    axios({
      method: 'get',
      url: url,
      responseType: 'blob',
      headers: { 'Authorization': 'Bearer ' + getToken() }
    }).then(res => {
      const blob = new Blob([res.data])
      this.saveAs(blob, decodeURI(res.headers['download-filename']))
    })
  },
  resource(resource) {
    var url = baseURL + "/common/download/resource?resource=" + encodeURI(resource);
    axios({
      method: 'get',
      url: url,
      responseType: 'blob',
      headers: { 'Authorization': 'Bearer ' + getToken() }
    }).then(res => {
      const blob = new Blob([res.data])
      this.saveAs(blob, decodeURI(res.headers['download-filename']))
    })
  },
  zip(url, name) {
    var url = baseURL + url
    axios({
      method: 'get',
      url: url,
      responseType: 'blob',
      headers: { 'Authorization': 'Bearer ' + getToken() }
    }).then(res => {
      const blob = new Blob([res.data], { type: 'application/zip' })
      this.saveAs(blob, name)
    })
  },
  saveAs(text, name, opts) {
    saveAs(text, name, opts);
  }
}
ruoyi-ui/src/plugins/index.js
@@ -1,5 +1,6 @@
import cache from './cache'
import modal from './modal'
import download from './download'
export default {
  install(Vue) {
@@ -7,5 +8,7 @@
    Vue.prototype.$cache = cache
    // 模态框对象
    Vue.prototype.$modal = modal
    // 下载文件
    Vue.prototype.$download = download
  }
}
ruoyi-ui/src/utils/ruoyi.js
@@ -3,8 +3,6 @@
 * Copyright (c) 2019 ruoyi
 */
const baseURL = process.env.VUE_APP_BASE_API
// 日期格式化
export function parseTime(time, pattern) {
    if (arguments.length === 0 || !time) {
@@ -93,11 +91,6 @@
        })
    })
    return actions.join('').substring(0, actions.join('').length - 1);
}
// 通用下载方法
export function download(fileName) {
    window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
}
// 字符串格式化(%s )
ruoyi-ui/src/utils/zipdownload.js
文件已删除
ruoyi-ui/src/views/monitor/job/index.vue
@@ -515,7 +515,7 @@
        this.exportLoading = true;
        return exportJob(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/monitor/job/log.vue
@@ -298,7 +298,7 @@
        this.exportLoading = true;
        return exportJobLog(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/monitor/logininfor/index.vue
@@ -221,7 +221,7 @@
        this.exportLoading = true;
        return exportLogininfor(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/monitor/operlog/index.vue
@@ -308,7 +308,7 @@
        this.exportLoading = true;
        return exportOperlog(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/system/config/index.vue
@@ -339,7 +339,7 @@
        this.exportLoading = true;
        return exportConfig(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    },
ruoyi-ui/src/views/system/dict/data.vue
@@ -385,7 +385,7 @@
        this.exportLoading = true;
        return exportData(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/system/dict/index.vue
@@ -343,7 +343,7 @@
        this.exportLoading = true;
        return exportType(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    },
ruoyi-ui/src/views/system/post/index.vue
@@ -310,7 +310,7 @@
        this.exportLoading = true;
        return exportPost(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/system/role/index.vue
@@ -618,7 +618,7 @@
        this.exportLoading = true;
        return exportRole(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    }
ruoyi-ui/src/views/system/user/index.vue
@@ -648,7 +648,7 @@
        this.exportLoading = true;
        return exportUser(queryParams);
      }).then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
        this.exportLoading = false;
      }).catch(() => {});
    },
@@ -660,7 +660,7 @@
    /** 下载模板操作 */
    importTemplate() {
      importTemplate().then(response => {
        this.download(response.msg);
        this.$download.name(response.msg);
      });
    },
    // 文件上传中处理
ruoyi-ui/src/views/tool/build/index.vue
@@ -137,23 +137,13 @@
<script>
import draggable from 'vuedraggable'
import { saveAs } from 'file-saver'
import beautifier from 'js-beautify'
import ClipboardJS from 'clipboard'
import render from '@/utils/generator/render'
import RightPanel from './RightPanel'
import {
  inputComponents,
  selectComponents,
  layoutComponents,
  formConf
} from '@/utils/generator/config'
import {
  exportDefault, beautifierConf, isNumberStr, titleCase
} from '@/utils/index'
import {
  makeUpHtml, vueTemplate, vueScript, cssStyle
} from '@/utils/generator/html'
import { inputComponents, selectComponents, layoutComponents, formConf } from '@/utils/generator/config'
import { beautifierConf, titleCase } from '@/utils/index'
import { makeUpHtml, vueTemplate, vueScript, cssStyle } from '@/utils/generator/html'
import { makeUpJs } from '@/utils/generator/js'
import { makeUpCss } from '@/utils/generator/css'
import drawingDefalut from '@/utils/generator/drawingDefalut'
@@ -161,7 +151,6 @@
import CodeTypeDialog from './CodeTypeDialog'
import DraggableItem from './DraggableItem'
const emptyActiveData = { style: {}, autosize: {} }
let oldActiveId
let tempActiveData
@@ -287,7 +276,7 @@
    execDownload(data) {
      const codeStr = this.generateCode()
      const blob = new Blob([codeStr], { type: 'text/plain;charset=utf-8' })
      saveAs(blob, data.fileName)
      this.$download.saveAs(blob, data.fileName)
    },
    execCopy(data) {
      document.getElementById('copyNode').click()
ruoyi-ui/src/views/tool/gen/index.vue
@@ -180,7 +180,6 @@
<script>
import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen";
import importTable from "./importTable";
import { downLoadZip } from "@/utils/zipdownload";
import hljs from "highlight.js/lib/highlight";
import "highlight.js/styles/github-gist.css";
hljs.registerLanguage("java", require("highlight.js/lib/languages/java"));
@@ -270,7 +269,7 @@
          this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath);
        });
      } else {
        downLoadZip("/tool/gen/batchGenCode?tables=" + tableNames, "ruoyi");
        this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "ruoyi");
      }
    },
    /** 同步数据库操作 */