From 06074571f5d5c8ceba1f58649485b29ee594e930 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sun, 27 Dec 2020 10:05:28 +0800 Subject: [PATCH 01/32] =?UTF-8?q?Excel=E6=B3=A8=E8=A7=A3=E6=94=AF=E6=8C=81?= =?UTF-8?q?Image=E5=9B=BE=E7=89=87=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/core/annotation/Excel.java | 2 +- .../common/core/utils/file/FileTypeUtils.java | 29 +++++++ .../common/core/utils/file/ImageUtils.java | 86 +++++++++++++++++++ .../common/core/utils/poi/ExcelUtil.java | 79 ++++++++++++++++- 4 files changed, 192 insertions(+), 4 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java index af1e09a6..975eca3f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/annotation/Excel.java @@ -144,7 +144,7 @@ public @interface Excel public enum ColumnType { - NUMERIC(0), STRING(1); + NUMERIC(0), STRING(1), IMAGE(2); private final int value; ColumnType(int value) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java index 64dc7568..1629fcd4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/FileTypeUtils.java @@ -44,4 +44,33 @@ public class FileTypeUtils } return fileName.substring(separatorIndex + 1).toLowerCase(); } + + /** + * 获取文件类型 + * + * @param photoByte 文件字节码 + * @return 后缀(不含".") + */ + public static String getFileExtendName(byte[] photoByte) + { + String strFileExtendName = "JPG"; + if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) + && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) + { + strFileExtendName = "GIF"; + } + else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) + { + strFileExtendName = "JPG"; + } + else if ((photoByte[0] == 66) && (photoByte[1] == 77)) + { + strFileExtendName = "BMP"; + } + else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) + { + strFileExtendName = "PNG"; + } + return strFileExtendName; + } } \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java new file mode 100644 index 00000000..f8fa776a --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/file/ImageUtils.java @@ -0,0 +1,86 @@ +package com.ruoyi.common.core.utils.file; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.util.Arrays; +import org.apache.poi.util.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 图片处理工具类 + * + * @author ruoyi + */ +public class ImageUtils +{ + private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); + + public static byte[] getImage(String imagePath) + { + InputStream is = getFile(imagePath); + try + { + return IOUtils.toByteArray(is); + } + catch (Exception e) + { + log.error("图片加载异常 {}", e); + return null; + } + finally + { + IOUtils.closeQuietly(is); + } + } + + public static InputStream getFile(String imagePath) + { + try + { + byte[] result = readFile(imagePath); + result = Arrays.copyOf(result, result.length); + return new ByteArrayInputStream(result); + } + catch (Exception e) + { + log.error("获取图片异常 {}", e); + } + return null; + } + + /** + * 读取文件为字节数据 + * + * @param key 地址 + * @return 字节数据 + */ + public static byte[] readFile(String url) + { + InputStream in = null; + ByteArrayOutputStream baos = null; + try + { + // 网络地址 + URL urlObj = new URL(url); + URLConnection urlConnection = urlObj.openConnection(); + urlConnection.setConnectTimeout(30 * 1000); + urlConnection.setReadTimeout(60 * 1000); + urlConnection.setDoInput(true); + in = urlConnection.getInputStream(); + return IOUtils.toByteArray(in); + } + catch (Exception e) + { + log.error("访问文件异常 {}", e); + return null; + } + finally + { + IOUtils.closeQuietly(baos); + } + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java index 8914a91f..30b5427e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java @@ -20,10 +20,12 @@ import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationConstraint; import org.apache.poi.ss.usermodel.DataValidationHelper; import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.HorizontalAlignment; @@ -35,6 +37,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFClientAnchor; import org.apache.poi.xssf.usermodel.XSSFDataValidation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,6 +48,8 @@ import com.ruoyi.common.core.annotation.Excels; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.file.FileTypeUtils; +import com.ruoyi.common.core.utils.file.ImageUtils; import com.ruoyi.common.core.utils.reflect.ReflectUtils; /** @@ -96,6 +101,11 @@ public class ExcelUtil */ private List fields; + /** + * 最大高度 + */ + private short maxHeight; + /** * 统计列表 */ @@ -233,7 +243,15 @@ public class ExcelUtil } else { - val = Convert.toStr(val); + String dateFormat = field.getAnnotation(Excel.class).dateFormat(); + if (StringUtils.isNotEmpty(dateFormat)) + { + val = DateUtils.parseDateToStr(dateFormat, (Date) val); + } + else + { + val = Convert.toStr(val); + } } } else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) @@ -512,6 +530,47 @@ public class ExcelUtil { cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value)); } + else if (ColumnType.IMAGE == attr.cellType()) + { + ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1), + cell.getRow().getRowNum() + 1); + String imagePath = Convert.toStr(value); + if (StringUtils.isNotEmpty(imagePath)) + { + byte[] data = ImageUtils.getImage(imagePath); + getDrawingPatriarch(cell.getSheet()).createPicture(anchor, + cell.getSheet().getWorkbook().addPicture(data, getImageType(data))); + } + } + } + + /** + * 获取画布 + */ + public static Drawing getDrawingPatriarch(Sheet sheet) + { + if (sheet.getDrawingPatriarch() == null) + { + sheet.createDrawingPatriarch(); + } + return sheet.getDrawingPatriarch(); + } + + /** + * 获取图片类型,设置图片插入类型 + */ + public int getImageType(byte[] value) + { + String type = FileTypeUtils.getFileExtendName(value); + if ("JPG".equalsIgnoreCase(type)) + { + return Workbook.PICTURE_TYPE_JPEG; + } + else if ("PNG".equalsIgnoreCase(type)) + { + return Workbook.PICTURE_TYPE_PNG; + } + return Workbook.PICTURE_TYPE_JPEG; } /** @@ -527,7 +586,6 @@ public class ExcelUtil { // 设置列宽 sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256)); - row.setHeight((short) (attr.height() * 20)); } // 如果设置了提示信息则鼠标放上去提示. if (StringUtils.isNotEmpty(attr.prompt())) @@ -552,7 +610,7 @@ public class ExcelUtil try { // 设置行高 - row.setHeight((short) (attr.height() * 20)); + row.setHeight(maxHeight); // 根据Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列. if (attr.isExport()) { @@ -851,6 +909,21 @@ public class ExcelUtil } } this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList()); + this.maxHeight = getRowHeight(); + } + + /** + * 根据注解获取最大行高 + */ + public short getRowHeight() + { + double maxHeight = 0; + for (Object[] os : this.fields) + { + Excel excel = (Excel) os[1]; + maxHeight = maxHeight > excel.height() ? maxHeight : excel.height(); + } + return (short) (maxHeight * 20); } /** From 4cc0e2650c57cef6606e70c4c7c9198b98b7dc94 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 29 Dec 2020 11:27:58 +0800 Subject: [PATCH 02/32] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=96=87=E6=9C=AC=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=94=9F=E6=88=90=E8=A1=A8=E5=8D=95=E6=96=87=E6=9C=AC=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/core/constant/GenConstants.java | 6 ++++-- .../src/main/java/com/ruoyi/gen/util/GenUtils.java | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java index 29f21eee..69e81efa 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java @@ -29,8 +29,10 @@ public class GenConstants public static final String PARENT_MENU_NAME = "parentMenuName"; /** 数据库字符串类型 */ - public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2", "tinytext", "text", - "mediumtext", "longtext" }; + public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2" }; + + /** 数据库文本类型 */ + public static final String[] COLUMNTYPE_TEXT = { "tinytext", "text", "mediumtext", "longtext" }; /** 数据库时间类型 */ public static final String[] COLUMNTYPE_TIME = { "datetime", "time", "date", "timestamp" }; diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java index f3860585..81502703 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java @@ -40,13 +40,14 @@ public class GenUtils column.setCreateBy(table.getCreateBy()); // 设置java字段名 column.setJavaField(StringUtils.toCamelCase(columnName)); + // 设置默认类型 + column.setJavaType(GenConstants.TYPE_STRING); - if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType)) + if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType)) { - column.setJavaType(GenConstants.TYPE_STRING); // 字符串长度超过500设置为文本域 Integer columnLength = getColumnLength(column.getColumnType()); - String htmlType = columnLength >= 500 ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; + String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT; column.setHtmlType(htmlType); } else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType)) From 6d0b4f5d1685cb251e4efe28a0fc1fc2be184c71 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 29 Dec 2020 17:29:22 +0800 Subject: [PATCH 03/32] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E9=82=AE=E7=AE=B1&=E8=8F=9C=E5=8D=95=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=81=E8=AE=B8=E7=A9=BA=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/system/SysMenuMapper.xml | 2 +- .../src/main/resources/mapper/system/SysUserMapper.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index d9b6a72c..9d2cd0ad 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -131,7 +131,7 @@ parent_id = #{parentId}, order_num = #{orderNum}, path = #{path}, - component = #{component}, + component = #{component}, is_frame = #{isFrame}, is_cache = #{isCache}, menu_type = #{menuType}, diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index a253d8df..3fc34487 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -141,8 +141,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dept_id = #{deptId}, user_name = #{userName}, nick_name = #{nickName}, - email = #{email}, - phonenumber = #{phonenumber}, + email = #{email}, + phonenumber = #{phonenumber}, sex = #{sex}, avatar = #{avatar}, password = #{password}, From 199228f6cbcea95859ad81491cb40a7135df84f2 Mon Sep 17 00:00:00 2001 From: JuJu <857815116@qq.com> Date: Fri, 1 Jan 2021 12:41:28 +0800 Subject: [PATCH 04/32] =?UTF-8?q?spring.factories=E5=A2=9E=E5=8A=A0RemoteF?= =?UTF-8?q?ileFallbackFactory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/META-INF/spring.factories | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring.factories b/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring.factories index e9bf345c..19bdae5d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring.factories +++ b/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring.factories @@ -1,3 +1,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.ruoyi.system.api.factory.RemoteUserFallbackFactory,\ - com.ruoyi.system.api.factory.RemoteLogFallbackFactory + com.ruoyi.system.api.factory.RemoteLogFallbackFactory, \ + com.ruoyi.system.api.factory.RemoteFileFallbackFactory From 8a18873b81a9b26b8152ab2d0ade44fb21535a67 Mon Sep 17 00:00:00 2001 From: JuJu <857815116@qq.com> Date: Fri, 1 Jan 2021 12:47:46 +0800 Subject: [PATCH 05/32] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3=E8=B7=AF?= =?UTF-8?q?=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/api/system/operlog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-ui/src/api/system/operlog.js b/ruoyi-ui/src/api/system/operlog.js index 28a85d24..07a44b0d 100644 --- a/ruoyi-ui/src/api/system/operlog.js +++ b/ruoyi-ui/src/api/system/operlog.js @@ -12,7 +12,7 @@ export function list(query) { // 删除操作日志 export function delOperlog(operId) { return request({ - url: '/monitor/operlog/' + operId, + url: '/system/operlog/' + operId, method: 'delete' }) } From 449704180b286b033773a1280cc8258d965b0d19 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Mon, 4 Jan 2021 17:54:40 +0800 Subject: [PATCH 06/32] Update copyright --- ruoyi-ui/src/layout/components/TagsView/index.vue | 2 +- ruoyi-ui/src/views/login.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue index dce967cf..c16a4c24 100644 --- a/ruoyi-ui/src/layout/components/TagsView/index.vue +++ b/ruoyi-ui/src/layout/components/TagsView/index.vue @@ -153,7 +153,7 @@ export default { }) }, closeOthersTags() { - this.$router.push(this.selectedTag) + this.$router.push(this.selectedTag).catch(()=>{}); this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { this.moveToCurrentTag() }) diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index 6b2139ea..8ec1aca4 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -48,7 +48,7 @@ From a5d0028b396b711060d0ef44badf4c9b37d6f594 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 5 Jan 2021 10:20:26 +0800 Subject: [PATCH 07/32] =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E7=BB=84=E8=B0=83=E6=95=B4=E4=B8=BA=E6=9C=B4=E7=B4=A0=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm | 3 ++- .../ruoyi-gen/src/main/resources/vm/vue/index.vue.vm | 6 +++++- ruoyi-ui/src/views/monitor/job/index.vue | 7 ++++++- ruoyi-ui/src/views/monitor/job/log.vue | 5 ++++- ruoyi-ui/src/views/monitor/online/index.vue | 2 +- ruoyi-ui/src/views/system/config/index.vue | 7 ++++++- ruoyi-ui/src/views/system/dept/index.vue | 3 ++- ruoyi-ui/src/views/system/dict/data.vue | 6 +++++- ruoyi-ui/src/views/system/dict/index.vue | 7 ++++++- ruoyi-ui/src/views/system/logininfor/index.vue | 5 ++++- ruoyi-ui/src/views/system/menu/index.vue | 3 ++- ruoyi-ui/src/views/system/notice/index.vue | 5 ++++- ruoyi-ui/src/views/system/operlog/index.vue | 5 ++++- ruoyi-ui/src/views/system/post/index.vue | 6 +++++- ruoyi-ui/src/views/system/role/index.vue | 6 +++++- ruoyi-ui/src/views/system/user/index.vue | 7 ++++++- ruoyi-ui/src/views/tool/gen/index.vue | 6 +++++- 17 files changed, 72 insertions(+), 17 deletions(-) diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm index 9c31d0d6..f12eb2f3 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm @@ -64,7 +64,7 @@ #end #end - 搜索 + 搜索 重置 @@ -73,6 +73,7 @@ - 搜索 + 搜索 重置 @@ -73,6 +73,7 @@ - 搜索 + 搜索 重置 @@ -40,6 +40,7 @@ - 搜索 + 搜索 重置 @@ -65,6 +65,7 @@ - 搜索 + 搜索 重置 diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue index 7c2f3e98..13c71133 100644 --- a/ruoyi-ui/src/views/system/config/index.vue +++ b/ruoyi-ui/src/views/system/config/index.vue @@ -44,7 +44,7 @@ > - 搜索 + 搜索 重置 @@ -53,6 +53,7 @@ - 搜索 + 搜索 重置 @@ -30,6 +30,7 @@ - 搜索 + 搜索 重置 @@ -40,6 +40,7 @@ - 搜索 + 搜索 重置 @@ -59,6 +59,7 @@ - 搜索 + 搜索 重置 @@ -59,6 +59,7 @@ - 搜索 + 搜索 重置 @@ -30,6 +30,7 @@ - 搜索 + 搜索 重置 @@ -39,6 +39,7 @@ - 搜索 + 搜索 重置 @@ -75,6 +75,7 @@ - 搜索 + 搜索 重置 @@ -39,6 +39,7 @@ - 搜索 + 搜索 重置 @@ -59,6 +59,7 @@ - 搜索 + 搜索 重置 @@ -86,6 +86,7 @@ - 搜索 + 搜索 重置 @@ -41,6 +41,7 @@ Date: Tue, 5 Jan 2021 10:30:05 +0800 Subject: [PATCH 08/32] =?UTF-8?q?=E4=BF=AE=E5=A4=8DIE11=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/package.json | 4 ++-- ruoyi-ui/src/components/HeaderSearch/index.vue | 2 +- ruoyi-ui/src/main.js | 4 ---- ruoyi-ui/src/views/tool/gen/index.vue | 17 ++++++++++++++++- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index f10a71ff..dd80be8b 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -44,7 +44,7 @@ "element-ui": "2.14.1", "file-saver": "2.0.4", "fuse.js": "6.4.3", - "highlight.js": "10.4.1", + "highlight.js": "9.18.5", "js-beautify": "1.13.0", "js-cookie": "2.2.1", "jsencrypt": "3.0.0-rc.1", @@ -69,8 +69,8 @@ "eslint": "7.15.0", "eslint-plugin-vue": "7.2.0", "lint-staged": "10.5.3", - "sass": "1.30.0", "runjs": "4.4.2", + "sass": "1.32.0", "sass-loader": "10.1.0", "script-ext-html-webpack-plugin": "2.1.5", "svg-sprite-loader": "5.1.1", diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/ruoyi-ui/src/components/HeaderSearch/index.vue index b2533f39..ae952a98 100644 --- a/ruoyi-ui/src/components/HeaderSearch/index.vue +++ b/ruoyi-ui/src/components/HeaderSearch/index.vue @@ -20,7 +20,7 @@ \ No newline at end of file From a4454621530b33191d95ba9121ec34808a2aa01d Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 5 Jan 2021 21:34:27 +0800 Subject: [PATCH 10/32] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/GenConstants.java | 7 +- .../com/ruoyi/gen/domain/GenTableColumn.java | 2 +- .../java/com/ruoyi/gen/util/GenUtils.java | 9 +- .../main/resources/vm/vue/index-tree.vue.vm | 27 ++- .../src/main/resources/vm/vue/index.vue.vm | 28 ++- ruoyi-ui/src/components/FileUpload/index.vue | 178 ++++++++++++++++++ .../{UploadImage => ImageUpload}/index.vue | 4 +- ruoyi-ui/src/views/tool/gen/editTable.vue | 3 +- 8 files changed, 238 insertions(+), 20 deletions(-) create mode 100644 ruoyi-ui/src/components/FileUpload/index.vue rename ruoyi-ui/src/components/{UploadImage => ImageUpload}/index.vue (90%) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java index 69e81efa..2cd6425f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/GenConstants.java @@ -76,8 +76,11 @@ public class GenConstants /** 日期控件 */ public static final String HTML_DATETIME = "datetime"; - /** 上传控件 */ - public static final String HTML_UPLOAD_IMAGE = "uploadImage"; + /** 图片上传控件 */ + public static final String HTML_IMAGE_UPLOAD = "imageUpload"; + + /** 文件上传控件 */ + public static final String HTML_FILE_UPLOAD = "fileUpload"; /** 富文本控件 */ public static final String HTML_EDITOR = "editor"; diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java index 9b364b96..3300bfc6 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTableColumn.java @@ -60,7 +60,7 @@ public class GenTableColumn extends BaseEntity /** 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) */ private String queryType; - /** 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、upload上传控件、editor富文本控件) */ + /** 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、image图片上传控件、upload文件上传控件、editor富文本控件) */ private String htmlType; /** 字典类型 */ diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java index 81502703..41204dd9 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java @@ -112,10 +112,15 @@ public class GenUtils { column.setHtmlType(GenConstants.HTML_SELECT); } - // 文件字段设置上传控件 + // 图片字段设置图片上传控件 else if (StringUtils.endsWithIgnoreCase(columnName, "image")) { - column.setHtmlType(GenConstants.HTML_UPLOAD_IMAGE); + column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD); + } + // 文件字段设置文件上传控件 + else if (StringUtils.endsWithIgnoreCase(columnName, "file")) + { + column.setHtmlType(GenConstants.HTML_FILE_UPLOAD); } // 内容字段设置富文本控件 else if (StringUtils.endsWithIgnoreCase(columnName, "content")) diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm index f12eb2f3..2f954f87 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm @@ -153,9 +153,13 @@ -#elseif($column.htmlType == "uploadImage") +#elseif($column.htmlType == "imageUpload") - + + +#elseif($column.htmlType == "fileUpload") + + #elseif($column.htmlType == "editor") @@ -244,8 +248,13 @@ import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${Busin 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'; +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") +import ImageUpload from '@/components/ImageUpload'; +#break +#end +#end +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") +import FileUpload from '@/components/FileUpload'; #break #end #end @@ -260,8 +269,14 @@ export default { name: "${BusinessName}", components: { #foreach($column in $columns) -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage") - UploadImage, +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") + ImageUpload, +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") + FileUpload, #break #end #end diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm index 4bfc5d47..b3daf7f5 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm @@ -185,9 +185,13 @@ -#elseif($column.htmlType == "uploadImage") +#elseif($column.htmlType == "imageUpload") - + + +#elseif($column.htmlType == "fileUpload") + + #elseif($column.htmlType == "editor") @@ -274,8 +278,14 @@ + + \ No newline at end of file diff --git a/ruoyi-ui/src/components/UploadImage/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue similarity index 90% rename from ruoyi-ui/src/components/UploadImage/index.vue rename to ruoyi-ui/src/components/ImageUpload/index.vue index ce540eb8..cf772eed 100644 --- a/ruoyi-ui/src/components/UploadImage/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -43,7 +43,7 @@ export default { data() { return { dialogVisible: false, - uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 + uploadImgUrl: process.env.VUE_APP_BASE_API + "/file/upload", // 上传的图片服务器地址 headers: { Authorization: "Bearer " + getToken(), }, @@ -60,7 +60,7 @@ export default { this.$emit("input", ""); }, handleUploadSuccess(res) { - this.$emit("input", res.url); + this.$emit("input", res.data.url); this.loading.close(); }, handleBeforeUpload() { diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue index fea958e3..329fce66 100644 --- a/ruoyi-ui/src/views/tool/gen/editTable.vue +++ b/ruoyi-ui/src/views/tool/gen/editTable.vue @@ -90,7 +90,8 @@ - + + From a95be9d41827d970a26d0c89b92780fab1f52e62 Mon Sep 17 00:00:00 2001 From: DokiYolo <857815116@qq.com> Date: Wed, 6 Jan 2021 10:06:57 +0800 Subject: [PATCH 11/32] =?UTF-8?q?=E8=A7=A3=E5=86=B3header=E8=8E=B7?= =?UTF-8?q?=E5=8F=96username=E4=B8=AD=E6=96=87=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E4=B9=B1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/core/utils/SecurityUtils.java | 13 ++++++++++++- .../com/ruoyi/gateway/filter/AuthFilter.java | 16 +++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java index 3c5bf20b..36eb90c6 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java @@ -1,10 +1,15 @@ package com.ruoyi.common.core.utils; import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.core.exception.BaseException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.text.Convert; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; + /** * 权限获取工具类 * @@ -17,7 +22,13 @@ public class SecurityUtils */ public static String getUsername() { - return ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME); + String username = ""; + try { + username = URLDecoder.decode(ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME), "UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new BaseException("获取username失败"); + } + return username; } /** diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index 36c72d6b..fa5519a7 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java @@ -24,6 +24,8 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import reactor.core.publisher.Mono; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; /** * 网关鉴权 @@ -68,7 +70,7 @@ public class AuthFilter implements GlobalFilter, Ordered } JSONObject obj = JSONObject.parseObject(userStr); String userid = obj.getString("userid"); - String username = obj.getString("username"); + String username = urlEncode(obj.getString("username")); if (StringUtils.isBlank(userid) || StringUtils.isBlank(username)) { return setUnauthorizedResponse(exchange, "令牌验证失败"); @@ -103,6 +105,18 @@ public class AuthFilter implements GlobalFilter, Ordered return CacheConstants.LOGIN_TOKEN_KEY + token; } + /** + * 编码 + */ + private String urlEncode(String value) { + try { + value = URLEncoder.encode(value, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return value; + } + /** * 获取请求token */ From 2c323ca3fff788329d92efe760b542e965eecfdb Mon Sep 17 00:00:00 2001 From: ouwei2020 <8461269+ouwei2020@user.noreply.gitee.com> Date: Wed, 6 Jan 2021 11:09:23 +0800 Subject: [PATCH 12/32] update ruoyi-ui/src/components/FileUpload/index.vue. --- ruoyi-ui/src/components/FileUpload/index.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index bcc95150..a4e681dd 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -90,6 +90,8 @@ export default { return item; }); } else { + //上传后关闭弹出框再打开出现`只允许上传单个文件`提示,增加fileList清空可解决 + this.fileList = []; return []; } }, From dee4653b9b4e946926c725dfc95daebe792d76a7 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 6 Jan 2021 11:59:13 +0800 Subject: [PATCH 13/32] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm | 2 +- ruoyi-ui/src/components/FileUpload/index.vue | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm index 2f954f87..501de87b 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm @@ -159,7 +159,7 @@ #elseif($column.htmlType == "fileUpload") - + #elseif($column.htmlType == "editor") diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index a4e681dd..af22f19a 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -90,7 +90,6 @@ export default { return item; }); } else { - //上传后关闭弹出框再打开出现`只允许上传单个文件`提示,增加fileList清空可解决 this.fileList = []; return []; } From 4cc4e8a8fa341fd2e375566eb2aefddc03aa97f4 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 6 Jan 2021 12:00:41 +0800 Subject: [PATCH 14/32] =?UTF-8?q?=E7=BC=96=E7=A0=81=E8=A7=A3=E7=A0=81?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=90=8D=EF=BC=8C=E9=98=B2=E6=AD=A2=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E5=87=BA=E7=8E=B0=E4=B9=B1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/utils/SecurityUtils.java | 14 +------ .../ruoyi/common/core/utils/ServletUtils.java | 40 +++++++++++++++++++ .../ruoyi/common/log/aspect/LogAspect.java | 5 +-- .../com/ruoyi/gateway/filter/AuthFilter.java | 19 ++------- 4 files changed, 47 insertions(+), 31 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java index 36eb90c6..f2225bea 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java @@ -1,15 +1,10 @@ package com.ruoyi.common.core.utils; import javax.servlet.http.HttpServletRequest; - -import com.ruoyi.common.core.exception.BaseException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.text.Convert; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; - /** * 权限获取工具类 * @@ -22,13 +17,8 @@ public class SecurityUtils */ public static String getUsername() { - String username = ""; - try { - username = URLDecoder.decode(ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME), "UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new BaseException("获取username失败"); - } - return username; + String username = ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME); + return ServletUtils.urlDecode(username); } /** diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java index 5346483d..6809f29f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java @@ -1,6 +1,9 @@ package com.ruoyi.common.core.utils; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; import java.util.Enumeration; import java.util.LinkedHashMap; import java.util.Map; @@ -10,6 +13,7 @@ import javax.servlet.http.HttpSession; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.text.Convert; /** @@ -173,4 +177,40 @@ public class ServletUtils } return false; } + + /** + * 内容编码 + * + * @param str 内容 + * @return 编码后的内容 + */ + public static String urlEncode(String str) + { + try + { + return URLEncoder.encode(str, Constants.UTF8); + } + catch (UnsupportedEncodingException e) + { + return ""; + } + } + + /** + * 内容解码 + * + * @param str 内容 + * @return 解码后的内容 + */ + public static String urlDecode(String str) + { + try + { + return URLDecoder.decode(str, Constants.UTF8); + } + catch (UnsupportedEncodingException e) + { + return ""; + } + } } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java index d0a557e8..e76018e7 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java @@ -20,7 +20,7 @@ import org.springframework.http.HttpMethod; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import com.alibaba.fastjson.JSON; -import com.ruoyi.common.core.constant.CacheConstants; +import com.ruoyi.common.core.utils.SecurityUtils; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.ip.IpUtils; @@ -93,8 +93,7 @@ public class LogAspect operLog.setJsonResult(JSON.toJSONString(jsonResult)); operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); - HttpServletRequest request = ServletUtils.getRequest(); - String username = request.getHeader(CacheConstants.DETAILS_USERNAME); + String username = SecurityUtils.getUsername(); if (StringUtils.isNotBlank(username)) { operLog.setOperName(username); diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index fa5519a7..1bd39940 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java @@ -20,12 +20,11 @@ import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import reactor.core.publisher.Mono; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; /** * 网关鉴权 @@ -70,7 +69,7 @@ public class AuthFilter implements GlobalFilter, Ordered } JSONObject obj = JSONObject.parseObject(userStr); String userid = obj.getString("userid"); - String username = urlEncode(obj.getString("username")); + String username = obj.getString("username"); if (StringUtils.isBlank(userid) || StringUtils.isBlank(username)) { return setUnauthorizedResponse(exchange, "令牌验证失败"); @@ -80,7 +79,7 @@ public class AuthFilter implements GlobalFilter, Ordered redisService.expire(getTokenKey(token), EXPIRE_TIME); // 设置用户信息到请求 ServerHttpRequest mutableReq = exchange.getRequest().mutate().header(CacheConstants.DETAILS_USER_ID, userid) - .header(CacheConstants.DETAILS_USERNAME, username).build(); + .header(CacheConstants.DETAILS_USERNAME, ServletUtils.urlEncode(username)).build(); ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build(); return chain.filter(mutableExchange); @@ -105,18 +104,6 @@ public class AuthFilter implements GlobalFilter, Ordered return CacheConstants.LOGIN_TOKEN_KEY + token; } - /** - * 编码 - */ - private String urlEncode(String value) { - try { - value = URLEncoder.encode(value, "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return value; - } - /** * 获取请求token */ From 3fdcac939a101b24b5925c051302b7fbae0ec3d7 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 6 Jan 2021 12:01:05 +0800 Subject: [PATCH 15/32] =?UTF-8?q?=E5=8D=87=E7=BA=A7druid=E5=88=B0=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=ACv1.2.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5dcf2a0b..fbd616e1 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ 1.26.5 2.3.2 1.3.0 - 1.2.2 + 1.2.4 3.2.1 2.5 1.3.3 From 09a0058379a4d50d20e19860dc80f3da383566e1 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 6 Jan 2021 17:50:01 +0800 Subject: [PATCH 16/32] =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E5=8F=B3=E4=BE=A7?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A0=8F=E7=BB=84=E4=BB=B6=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=98=BE=E9=9A=90=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/RightToolbar/index.vue | 49 +++++++++++++++++-- ruoyi-ui/src/layout/components/global.js | 3 -- ruoyi-ui/src/views/system/user/index.vue | 26 +++++++--- 3 files changed, 64 insertions(+), 14 deletions(-) delete mode 100644 ruoyi-ui/src/layout/components/global.js diff --git a/ruoyi-ui/src/components/RightToolbar/index.vue b/ruoyi-ui/src/components/RightToolbar/index.vue index 6186638e..92c65a53 100644 --- a/ruoyi-ui/src/components/RightToolbar/index.vue +++ b/ruoyi-ui/src/components/RightToolbar/index.vue @@ -7,31 +7,74 @@ + + + + + + + diff --git a/ruoyi-ui/src/layout/components/global.js b/ruoyi-ui/src/layout/components/global.js deleted file mode 100644 index 5d2b5b3e..00000000 --- a/ruoyi-ui/src/layout/components/global.js +++ /dev/null @@ -1,3 +0,0 @@ -import Vue from 'vue' -const global = new Vue() -export default global diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 18cabfe4..5f3eaa08 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -135,17 +135,17 @@ v-hasPermi="['system:user:export']" >导出 - + - - - - - - + + + + + + - + @@ -418,6 +418,16 @@ export default { status: undefined, deptId: undefined }, + // 列信息 + columns: [ + { key: 0, label: `用户编号`, visible: true }, + { key: 1, label: `用户名称`, visible: true }, + { key: 2, label: `用户昵称`, visible: true }, + { key: 3, label: `部门`, visible: true }, + { key: 4, label: `手机号码`, visible: true }, + { key: 5, label: `状态`, visible: true }, + { key: 6, label: `创建时间`, visible: true } + ], // 表单校验 rules: { userName: [ From 4125f44179e57de01356c04ad15168f7a15f042e Mon Sep 17 00:00:00 2001 From: RuoYi Date: Thu, 7 Jan 2021 13:37:33 +0800 Subject: [PATCH 17/32] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=98=BE=E9=9A=90?= =?UTF-8?q?=E5=88=97=E6=B7=BB=E5=8A=A0=E4=B8=8D=E5=90=8Ckey=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E8=A2=AB=E5=A4=8D=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/system/user/index.vue | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 5f3eaa08..4202d94e 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -140,12 +140,12 @@ - - - - - - + + + + + +