疯狂的狮子li
2021-09-27 b082da73a1e0259738ccb33ebf7d80cad3dc3a10
Merge remote-tracking branch 'origin/dev' into satoken

# Conflicts:
# ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
已修改23个文件
已添加1个文件
已删除1个文件
232 ■■■■■ 文件已修改
README.md 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/ThreadPoolRejectedPolicy.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/package.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/main.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/download.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/plugins/index.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/download.js 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/utils/ruoyi.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/demo/demo/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | 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/oss/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | 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 | 历史
README.md
@@ -6,8 +6,9 @@
<br>
[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-3.1.0-success.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.5-blue.svg)]()
[![JDK-8+](https://img.shields.io/badge/JDK-8+-green.svg)]()
[![JDK-8+](https://img.shields.io/badge/JDK-8-green.svg)]()
[![JDK-11](https://img.shields.io/badge/JDK-11-green.svg)]()
[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]()
RuoYi-Vue-Plus æ˜¯åŸºäºŽ RuoYi-Vue é’ˆå¯¹ `分布式集群` åœºæ™¯å‡çº§(不兼容原框架)
ruoyi-admin/src/main/resources/application.yml
@@ -289,7 +289,7 @@
  # çº¿ç¨‹æ± ç»´æŠ¤çº¿ç¨‹æ‰€å…è®¸çš„空闲时间
  keepAliveSeconds: 300
  # çº¿ç¨‹æ± å¯¹æ‹’绝任务(无线程可用)的处理策略
  # CALLER_RUNS_POLICY ç­‰å¾…
  # CALLER_RUNS_POLICY è°ƒç”¨æ–¹æ‰§è¡Œ
  # DISCARD_OLDEST_POLICY æ”¾å¼ƒæœ€æ—§çš„
  # DISCARD_POLICY ä¸¢å¼ƒ
  # ABORT_POLICY ä¸­æ­¢
ruoyi-common/src/main/java/com/ruoyi/common/enums/ThreadPoolRejectedPolicy.java
@@ -15,7 +15,7 @@
@AllArgsConstructor
public enum ThreadPoolRejectedPolicy {
    CALLER_RUNS_POLICY("等待", ThreadPoolExecutor.CallerRunsPolicy.class),
    CALLER_RUNS_POLICY("调用方执行", ThreadPoolExecutor.CallerRunsPolicy.class),
    DISCARD_OLDEST_POLICY("放弃最旧的", ThreadPoolExecutor.DiscardOldestPolicy.class),
    DISCARD_POLICY("丢弃", ThreadPoolExecutor.DiscardPolicy.class),
    ABORT_POLICY("中止", ThreadPoolExecutor.AbortPolicy.class);
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -35,6 +35,7 @@
                .append(percentEncodedFileName);
        response.setHeader("Content-disposition", contentDispositionValue.toString());
        response.setHeader("download-filename", percentEncodedFileName);
    }
    /**
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -573,7 +573,7 @@
#end
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/${moduleName}/${businessName}/export', this.queryParams);
        this.#[[$download]]#.excel('/${moduleName}/${businessName}/export', this.queryParams);
    }
  }
};
ruoyi-ui/package.json
@@ -42,7 +42,7 @@
    "core-js": "3.8.1",
    "echarts": "4.9.0",
    "element-ui": "2.15.5",
    "file-saver": "2.0.4",
    "file-saver": "2.0.5",
    "fuse.js": "6.4.3",
    "highlight.js": "9.18.5",
    "js-beautify": "1.13.0",
@@ -71,7 +71,7 @@
    "eslint-plugin-vue": "7.2.0",
    "lint-staged": "10.5.3",
    "runjs": "4.4.2",
    "sass": "1.32.0",
    "sass": "1.42.1",
    "sass-loader": "10.1.0",
    "script-ext-html-webpack-plugin": "2.1.5",
    "svg-sprite-loader": "5.1.1",
ruoyi-ui/src/main.js
@@ -17,7 +17,6 @@
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { downLoadExcel } from "@/utils/download";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// åˆ†é¡µç»„ä»¶
import Pagination from "@/components/Pagination";
@@ -44,7 +43,6 @@
Vue.prototype.addDateRange = addDateRange
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.downLoadExcel = downLoadExcel
Vue.prototype.handleTree = handleTree
// å…¨å±€ç»„件挂载
ruoyi-ui/src/plugins/download.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
import { saveAs } from 'file-saver'
import axios from 'axios'
import { getToken } from '@/utils/auth'
const baseURL = process.env.VUE_APP_BASE_API
export default {
  excel(url, params) {
    // get请求映射params参数
    if (params) {
      let urlparams = url + '?';
      for (const propName of Object.keys(params)) {
        const value = params[propName];
        var part = encodeURIComponent(propName) + "=";
        if (value !== null && typeof(value) !== "undefined") {
          if (typeof value === 'object') {
            for (const key of Object.keys(value)) {
              if (value[key] !== null && typeof (value[key]) !== 'undefined') {
                let params = propName + '[' + key + ']';
                let subPart = encodeURIComponent(params) + '=';
                urlparams += subPart + encodeURIComponent(value[key]) + '&';
              }
            }
          } else {
            urlparams += part + encodeURIComponent(value) + "&";
          }
        }
      }
      urlparams = urlparams.slice(0, -1);
      url = urlparams;
    }
    url = baseURL + url
    axios({
      method: 'get',
      url: url,
      responseType: 'blob',
      headers: { 'Authorization': 'Bearer ' + getToken() }
    }).then(res => {
      const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
      this.saveAs(blob, decodeURI(res.headers['download-filename']))
    })
  },
  oss(ossId, name) {
    var url = baseURL + '/system/oss/download/' + ossId
    axios({
      method: 'get',
      url: url,
      responseType: 'blob',
      headers: { 'Authorization': 'Bearer ' + getToken() }
    }).then(res => {
      const blob = new Blob([res.data], { type: 'application/octet-stream' })
      this.saveAs(blob, name)
    })
  },
  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/download.js
ÎļþÒÑɾ³ý
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) {
ruoyi-ui/src/views/demo/demo/index.vue
@@ -358,7 +358,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/demo/demo/export', this.queryParams);
      this.$download.excel('/demo/demo/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/monitor/job/index.vue
@@ -510,7 +510,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/monitor/job/export', this.queryParams);
      this.$download.excel('/monitor/job/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/monitor/job/log.vue
@@ -293,7 +293,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/monitor/jobLog/export', this.queryParams);
      this.$download.excel('/monitor/jobLog/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/monitor/logininfor/index.vue
@@ -216,7 +216,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/monitor/logininfor/export', this.queryParams);
      this.$download.excel('/monitor/logininfor/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/monitor/operlog/index.vue
@@ -303,7 +303,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/monitor/operlog/export', this.queryParams);
      this.$download.excel('/monitor/operlog/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/system/config/index.vue
@@ -334,7 +334,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/system/config/export', this.queryParams);
      this.$download.excel('/system/config/export', this.queryParams);
    },
    /** åˆ·æ–°ç¼“存按钮操作 */
    handleRefreshCache() {
ruoyi-ui/src/views/system/dict/data.vue
@@ -380,7 +380,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/system/dict/data/export', this.queryParams);
      this.$download.excel('/system/dict/data/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/system/dict/index.vue
@@ -338,7 +338,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/system/dict/type/export', this.queryParams);
      this.$download.excel('/system/dict/type/export', this.queryParams);
    },
    /** åˆ·æ–°ç¼“存按钮操作 */
    handleRefreshCache() {
ruoyi-ui/src/views/system/oss/index.vue
@@ -188,7 +188,6 @@
<script>
import { listOss, delOss, changePreviewListResource } from "@/api/system/oss";
import { downLoadOss } from "@/utils/download";
export default {
  name: "Oss",
@@ -325,7 +324,7 @@
    },
    /** ä¸‹è½½æŒ‰é’®æ“ä½œ */
    handleDownload(row) {
      downLoadOss(row.ossId)
      this.$download.oss(row.ossId)
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
ruoyi-ui/src/views/system/post/index.vue
@@ -305,7 +305,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/system/post/export', this.queryParams);
      this.$download.excel('/system/post/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/system/role/index.vue
@@ -613,7 +613,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/system/role/export', this.queryParams);
      this.$download.excel('/system/role/export', this.queryParams);
    }
  }
};
ruoyi-ui/src/views/system/user/index.vue
@@ -643,7 +643,7 @@
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.downLoadExcel('/system/user/export', this.queryParams);
      this.$download.excel('/system/user/export', this.queryParams);
    },
    /** å¯¼å…¥æŒ‰é’®æ“ä½œ */
    handleImport() {
@@ -652,7 +652,7 @@
    },
    /** ä¸‹è½½æ¨¡æ¿æ“ä½œ */
    importTemplate() {
      this.downLoadExcel('/system/user/importTemplate');
      this.$download.excel('/system/user/importTemplate');
    },
    // æ–‡ä»¶ä¸Šä¼ ä¸­å¤„理
    handleFileUploadProgress(event, file, fileList) {
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/download";
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");
      }
    },
    /** åŒæ­¥æ•°æ®åº“操作 */