From ff563c44e257c5921ec6d4647b590d7455edeeb5 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 18 十一月 2020 10:41:13 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue
---
ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java | 3
ruoyi-framework/pom.xml | 2
ruoyi-admin/pom.xml | 2
ruoyi-system/pom.xml | 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java | 43 ++++--
ruoyi-ui/src/views/index.vue | 16 ++
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java | 65 ++++++++++
ruoyi-generator/src/main/resources/vm/vue/index.vue.vm | 22 +++
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java | 47 +++++++
ruoyi-generator/pom.xml | 2
pom.xml | 4
ruoyi-admin/src/main/resources/application.yml | 4
ruoyi-common/pom.xml | 2
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java | 2
ruoyi-quartz/pom.xml | 2
ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm | 16 ++
ruoyi-ui/package.json | 2
ruoyi-ui/src/components/UploadImage/index.vue | 68 +++++++++++
ruoyi-ui/src/views/tool/gen/editTable.vue | 1
ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java | 5
20 files changed, 276 insertions(+), 34 deletions(-)
diff --git a/pom.xml b/pom.xml
index cfa7552..a57fc28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,14 +6,14 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi</artifactId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
<name>ruoyi</name>
<url>http://www.ruoyi.vip</url>
<description>鑻ヤ緷绠$悊绯荤粺</description>
<properties>
- <ruoyi.version>3.2.0</ruoyi.version>
+ <ruoyi.version>3.2.1</ruoyi.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index da3aa62..3257d8c 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
index f02b6d3..e0c728f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -5,6 +5,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -41,17 +42,15 @@
{
try
{
- if (!FileUtils.isValidFilename(fileName))
+ if (!FileUtils.checkAllowDownload(fileName))
{
throw new Exception(StringUtils.format("鏂囦欢鍚嶇О({})闈炴硶锛屼笉鍏佽涓嬭浇銆� ", fileName));
}
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = RuoYiConfig.getDownloadPath() + fileName;
- response.setCharacterEncoding("utf-8");
- response.setContentType("multipart/form-data");
- response.setHeader("Content-Disposition",
- "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));
+ response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+ FileUtils.setAttachmentResponseHeader(response, realFileName);
FileUtils.writeBytes(filePath, response.getOutputStream());
if (delete)
{
@@ -92,18 +91,28 @@
* 鏈湴璧勬簮閫氱敤涓嬭浇
*/
@GetMapping("/common/download/resource")
- public void resourceDownload(String name, HttpServletRequest request, HttpServletResponse response) throws Exception
+ public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
+ throws Exception
{
- // 鏈湴璧勬簮璺緞
- String localPath = RuoYiConfig.getProfile();
- // 鏁版嵁搴撹祫婧愬湴鍧�
- String downloadPath = localPath + StringUtils.substringAfter(name, Constants.RESOURCE_PREFIX);
- // 涓嬭浇鍚嶇О
- String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
- response.setCharacterEncoding("utf-8");
- response.setContentType("multipart/form-data");
- response.setHeader("Content-Disposition",
- "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, downloadName));
- FileUtils.writeBytes(downloadPath, response.getOutputStream());
+ try
+ {
+ if (!FileUtils.checkAllowDownload(resource))
+ {
+ throw new Exception(StringUtils.format("璧勬簮鏂囦欢({})闈炴硶锛屼笉鍏佽涓嬭浇銆� ", resource));
+ }
+ // 鏈湴璧勬簮璺緞
+ String localPath = RuoYiConfig.getProfile();
+ // 鏁版嵁搴撹祫婧愬湴鍧�
+ String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
+ // 涓嬭浇鍚嶇О
+ String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
+ response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+ FileUtils.setAttachmentResponseHeader(response, downloadName);
+ FileUtils.writeBytes(downloadPath, response.getOutputStream());
+ }
+ catch (Exception e)
+ {
+ log.error("涓嬭浇鏂囦欢澶辫触", e);
+ }
}
}
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index c205d3a..394380b 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -3,7 +3,7 @@
# 鍚嶇О
name: RuoYi
# 鐗堟湰
- version: 3.2.0
+ version: 3.2.1
# 鐗堟潈骞翠唤
copyrightYear: 2020
# 瀹炰緥婕旂ず寮�鍏�
@@ -70,7 +70,7 @@
secret: abcdefghijklmnopqrstuvwxyz
# 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
expireTime: 30
-
+
# MyBatis閰嶇疆
# https://baomidou.com/config/
mybatis-plus:
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 46823fe..35adaa3 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java
index 29b28e1..7bcaced 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java
@@ -74,6 +74,9 @@
/** 鏃ユ湡鎺т欢 */
public static final String HTML_DATETIME = "datetime";
+ /** 涓婁紶鎺т欢 */
+ public static final String HTML_UPLOAD_IMAGE = "uploadImage";
+
/** 瀵屾枃鏈帶浠� */
public static final String HTML_EDITOR = "editor";
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java
new file mode 100644
index 0000000..65be65b
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java
@@ -0,0 +1,47 @@
+package com.ruoyi.common.utils.file;
+
+import java.io.File;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 鏂囦欢绫诲瀷宸ュ叿绫�
+ *
+ * @author ruoyi
+ */
+public class FileTypeUtils
+{
+ /**
+ * 鑾峰彇鏂囦欢绫诲瀷
+ * <p>
+ * 渚嬪: ruoyi.txt, 杩斿洖: txt
+ *
+ * @param file 鏂囦欢鍚�
+ * @return 鍚庣紑锛堜笉鍚�".")
+ */
+ public static String getFileType(File file)
+ {
+ if (null == file)
+ {
+ return StringUtils.EMPTY;
+ }
+ return getFileType(file.getName());
+ }
+
+ /**
+ * 鑾峰彇鏂囦欢绫诲瀷
+ * <p>
+ * 渚嬪: ruoyi.txt, 杩斿洖: txt
+ *
+ * @param fileName 鏂囦欢鍚�
+ * @return 鍚庣紑锛堜笉鍚�".")
+ */
+ public static String getFileType(String fileName)
+ {
+ int separatorIndex = fileName.lastIndexOf(".");
+ if (separatorIndex < 0)
+ {
+ return "";
+ }
+ return fileName.substring(separatorIndex + 1).toLowerCase();
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
index d144072..66c9f24 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -7,7 +7,11 @@
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang3.ArrayUtils;
+import com.ruoyi.common.utils.StringUtils;
/**
* 鏂囦欢澶勭悊宸ュ叿绫�
@@ -105,14 +109,37 @@
}
/**
+ * 妫�鏌ユ枃浠舵槸鍚﹀彲涓嬭浇
+ *
+ * @param resource 闇�瑕佷笅杞界殑鏂囦欢
+ * @return true 姝e父 false 闈炴硶
+ */
+ public static boolean checkAllowDownload(String resource)
+ {
+ // 绂佹鐩綍涓婅烦绾у埆
+ if (StringUtils.contains(resource, ".."))
+ {
+ return false;
+ }
+
+ // 妫�鏌ュ厑璁镐笅杞界殑鏂囦欢瑙勫垯
+ if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource)))
+ {
+ return true;
+ }
+
+ // 涓嶅湪鍏佽涓嬭浇鐨勬枃浠惰鍒�
+ return false;
+ }
+
+ /**
* 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮�
*
* @param request 璇锋眰瀵硅薄
* @param fileName 鏂囦欢鍚�
* @return 缂栫爜鍚庣殑鏂囦欢鍚�
*/
- public static String setFileDownloadHeader(HttpServletRequest request, String fileName)
- throws UnsupportedEncodingException
+ public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException
{
final String agent = request.getHeader("USER-AGENT");
String filename = fileName;
@@ -139,4 +166,38 @@
}
return filename;
}
+
+ /**
+ * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮�
+ *
+ * @param response 鍝嶅簲瀵硅薄
+ * @param realFileName 鐪熷疄鏂囦欢鍚�
+ * @return
+ */
+ public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException
+ {
+ String percentEncodedFileName = percentEncode(realFileName);
+
+ StringBuilder contentDispositionValue = new StringBuilder();
+ contentDispositionValue.append("attachment; filename=")
+ .append(percentEncodedFileName)
+ .append(";")
+ .append("filename*=")
+ .append("utf-8''")
+ .append(percentEncodedFileName);
+
+ response.setHeader("Content-disposition", contentDispositionValue.toString());
+ }
+
+ /**
+ * 鐧惧垎鍙风紪鐮佸伐鍏锋柟娉�
+ *
+ * @param s 闇�瑕佺櫨鍒嗗彿缂栫爜鐨勫瓧绗︿覆
+ * @return 鐧惧垎鍙风紪鐮佸悗鐨勫瓧绗︿覆
+ */
+ public static String percentEncode(String s) throws UnsupportedEncodingException
+ {
+ String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
+ return encode.replaceAll("\\+", "%20");
+ }
}
diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml
index e8f79c2..61af7c0 100644
--- a/ruoyi-framework/pom.xml
+++ b/ruoyi-framework/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml
index 43d1245..58abab1 100644
--- a/ruoyi-generator/pom.xml
+++ b/ruoyi-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
index a96d273..23b069a 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
@@ -59,7 +59,7 @@
/** 鏌ヨ鏂瑰紡锛圗Q绛変簬銆丯E涓嶇瓑浜庛�丟T澶т簬銆丩T灏忎簬銆丩IKE妯$硦銆丅ETWEEN鑼冨洿锛� */
private String queryType;
- /** 鏄剧ず绫诲瀷锛坕nput鏂囨湰妗嗐�乼extarea鏂囨湰鍩熴�乻elect涓嬫媺妗嗐�乧heckbox澶嶉�夋銆乺adio鍗曢�夋銆乨atetime鏃ユ湡鎺т欢銆乪ditor瀵屾枃鏈帶浠讹級 */
+ /** 鏄剧ず绫诲瀷锛坕nput鏂囨湰妗嗐�乼extarea鏂囨湰鍩熴�乻elect涓嬫媺妗嗐�乧heckbox澶嶉�夋銆乺adio鍗曢�夋銆乨atetime鏃ユ湡鎺т欢銆乽pload涓婁紶鎺т欢銆乪ditor瀵屾枃鏈帶浠讹級 */
private String htmlType;
/** 瀛楀吀绫诲瀷 */
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
index 43fc71d..da78d03 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
@@ -111,6 +111,11 @@
{
column.setHtmlType(GenConstants.HTML_SELECT);
}
+ // 鏂囦欢瀛楁璁剧疆涓婁紶鎺т欢
+ else if (StringUtils.endsWithIgnoreCase(columnName, "image"))
+ {
+ column.setHtmlType(GenConstants.HTML_UPLOAD_IMAGE);
+ }
// 鍐呭瀛楁璁剧疆瀵屾枃鏈帶浠�
else if (StringUtils.endsWithIgnoreCase(columnName, "content"))
{
diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
index e139a13..e433934 100644
--- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
+++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
@@ -139,6 +139,10 @@
<el-form-item label="${comment}" prop="${field}">
<el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" />
</el-form-item>
+#elseif($column.htmlType == "uploadImage")
+ <el-form-item label="${comment}">
+ <uploadImage v-model="form.${field}"/>
+ </el-form-item>
#elseif($column.htmlType == "editor")
<el-form-item label="${comment}">
<editor v-model="form.${field}" :min-height="192"/>
@@ -226,6 +230,12 @@
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
#foreach($column in $columns)
+#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
+import UploadImage from '@/components/UploadImage';
+#break
+#end
+#end
+#foreach($column in $columns)
#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
import Editor from '@/components/Editor';
#break
@@ -236,6 +246,12 @@
name: "${BusinessName}",
components: {
#foreach($column in $columns)
+#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
+ UploadImage,
+#break
+#end
+#end
+#foreach($column in $columns)
#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
Editor,
#break
diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
index 129c176..aa973b1 100644
--- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
+++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -168,6 +168,10 @@
<el-form-item label="${comment}" prop="${field}">
<el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" />
</el-form-item>
+#elseif($column.htmlType == "uploadImage")
+ <el-form-item label="${comment}">
+ <uploadImage v-model="form.${field}"/>
+ </el-form-item>
#elseif($column.htmlType == "editor")
<el-form-item label="${comment}">
<editor v-model="form.${field}" :min-height="192"/>
@@ -253,6 +257,12 @@
<script>
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}";
#foreach($column in $columns)
+#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
+import UploadImage from '@/components/UploadImage';
+#break
+#end
+#end
+#foreach($column in $columns)
#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
import Editor from '@/components/Editor';
#break
@@ -261,12 +271,20 @@
export default {
name: "${BusinessName}",
+ components: {
#foreach($column in $columns)
-#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
- components: { Editor },
+#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
+ UploadImage,
#break
#end
#end
+#foreach($column in $columns)
+#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
+ Editor,
+#break
+#end
+#end
+ },
data() {
return {
// 閬僵灞�
diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml
index ae6abe8..15a5bc2 100644
--- a/ruoyi-quartz/pom.xml
+++ b/ruoyi-quartz/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index 95717f7..ef2cd72 100644
--- a/ruoyi-system/pom.xml
+++ b/ruoyi-system/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
- <version>3.2.0</version>
+ <version>3.2.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index c9cf69e..bb15443 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "ruoyi",
- "version": "3.2.0",
+ "version": "3.2.1",
"description": "鑻ヤ緷绠$悊绯荤粺",
"author": "鑻ヤ緷",
"license": "MIT",
diff --git a/ruoyi-ui/src/components/UploadImage/index.vue b/ruoyi-ui/src/components/UploadImage/index.vue
new file mode 100644
index 0000000..3941006
--- /dev/null
+++ b/ruoyi-ui/src/components/UploadImage/index.vue
@@ -0,0 +1,68 @@
+<template>
+ <div class="component-upload-image">
+ <el-upload
+ :action="uploadImgUrl"
+ list-type="picture-card"
+ :on-success="handleUploadSuccess"
+ :before-upload="handleBeforeUpload"
+ :on-error="handleUploadError"
+ name="file"
+ :show-file-list="false"
+ :headers="headers"
+ style="display: inline-block; vertical-align: top"
+ >
+ <img v-if="value" :src="value" class="avatar" />
+ <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+ </el-upload>
+ </div>
+</template>
+
+<script>
+import { getToken } from "@/utils/auth";
+
+export default {
+ components: {},
+ data() {
+ return {
+ uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
+ headers: {
+ Authorization: "Bearer " + getToken(),
+ },
+ };
+ },
+ props: {
+ value: {
+ type: String,
+ default: "",
+ },
+ },
+ methods: {
+ handleUploadSuccess(res) {
+ this.$emit("input", res.url);
+ this.loading.close();
+ },
+ handleBeforeUpload() {
+ this.loading = this.$loading({
+ lock: true,
+ text: "涓婁紶涓�",
+ background: "rgba(0, 0, 0, 0.7)",
+ });
+ },
+ handleUploadError() {
+ this.$message({
+ type: "error",
+ message: "涓婁紶澶辫触",
+ });
+ this.loading.close();
+ },
+ },
+ watch: {},
+};
+</script>
+
+<style scoped lang="scss">
+.avatar {
+ width: 100%;
+ height: 100%;
+}
+</style>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue
index c50687c..55f3439 100644
--- a/ruoyi-ui/src/views/index.vue
+++ b/ruoyi-ui/src/views/index.vue
@@ -146,6 +146,20 @@
<span>鏇存柊鏃ュ織</span>
</div>
<el-collapse accordion>
+ <el-collapse-item title="v3.2.1 - 2020-11-18">
+ <ol>
+ <li>闃绘浠绘剰鏂囦欢涓嬭浇婕忔礊</li>
+ <li>浠g爜鐢熸垚鏀寔涓婁紶鎺т欢</li>
+ <li>鏂板鍥剧墖涓婁紶缁勪欢</li>
+ <li>璋冩暣榛樿棣栭〉</li>
+ <li>鍗囩骇druid鍒版渶鏂扮増鏈瑅1.2.2</li>
+ <li>mapperLocations閰嶇疆鏀寔鍒嗛殧绗�</li>
+ <li>鏉冮檺淇℃伅璋冩暣</li>
+ <li>璋冩暣sql榛樿鏃堕棿</li>
+ <li>瑙e喅浠g爜鐢熸垚娌℃湁bit绫诲瀷鐨勯棶棰�</li>
+ <li>鍗囩骇pagehelper鍒版渶鏂扮増1.3.0</li>
+ </ol>
+ </el-collapse-item>
<el-collapse-item title="v3.2.0 - 2020-10-10">
<ol>
<li>鍗囩骇springboot鐗堟湰鍒�2.1.17 鎻愬崌瀹夊叏鎬�</li>
@@ -421,7 +435,7 @@
data() {
return {
// 鐗堟湰鍙�
- version: "3.2.0",
+ version: "3.2.1",
};
},
methods: {
diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue
index 3469545..9ecab45 100644
--- a/ruoyi-ui/src/views/tool/gen/editTable.vue
+++ b/ruoyi-ui/src/views/tool/gen/editTable.vue
@@ -90,6 +90,7 @@
<el-option label="鍗曢�夋" value="radio" />
<el-option label="澶嶉�夋" value="checkbox" />
<el-option label="鏃ユ湡鎺т欢" value="datetime" />
+ <el-option label="涓婁紶鎺т欢" value="uploadImage" />
<el-option label="瀵屾枃鏈帶浠�" value="editor" />
</el-select>
</template>
--
Gitblit v1.9.3