diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/controller/DemoTableController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/controller/DemoTableController.java
index ed1ab030..6bad0bc8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/controller/DemoTableController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/demo/controller/DemoTableController.java
@@ -390,6 +390,15 @@ public class DemoTableController extends BaseController
return prefix + "/dynamicColumns";
}
+ /**
+ * 表格虚拟滚动
+ */
+ @GetMapping("/virtualScroll")
+ public String virtualScroll()
+ {
+ return prefix + "/virtualScroll";
+ }
+
/**
* 自定义视图分页
*/
diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js
index 6c6d0216..1d8bc88a 100644
--- a/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js
+++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/ry-ui.js
@@ -48,7 +48,7 @@ var table = {
paginationLoop: false,
pageSize: 10,
pageNumber: 1,
- pageList: [10, 25, 50],
+ pageList: [10, 25, 50, 100],
toolbar: "toolbar",
loadingFontSize: 13,
striped: false,
@@ -103,6 +103,7 @@ var table = {
showFooter: options.showFooter, // 是否显示表尾
iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
toolbar: '#' + options.toolbar, // 指定工作栏
+ virtualScroll: options.virtualScroll, // 是否启动虚拟滚动(大量数据纯展示时使用)
loadingFontSize: options.loadingFontSize, // 自定义加载文本的字体大小
sidePagination: options.sidePagination, // server启用服务端分页client客户端分页
search: options.search, // 是否显示搜索框功能
diff --git a/ruoyi-admin/src/main/resources/templates/demo/table/virtualScroll.html b/ruoyi-admin/src/main/resources/templates/demo/table/virtualScroll.html
new file mode 100644
index 00000000..5c0fa839
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/templates/demo/table/virtualScroll.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/templates/index-topnav.html b/ruoyi-admin/src/main/resources/templates/index-topnav.html
index 2d99720d..99149423 100644
--- a/ruoyi-admin/src/main/resources/templates/index-topnav.html
+++ b/ruoyi-admin/src/main/resources/templates/index-topnav.html
@@ -147,6 +147,7 @@
+
diff --git a/ruoyi-admin/src/main/resources/templates/index.html b/ruoyi-admin/src/main/resources/templates/index.html
index 22377fd7..13b1acd2 100644
--- a/ruoyi-admin/src/main/resources/templates/index.html
+++ b/ruoyi-admin/src/main/resources/templates/index.html
@@ -127,6 +127,7 @@
+
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java
index cd3e4116..2f487fa8 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java
@@ -4,6 +4,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import javax.servlet.Filter;
import org.apache.commons.io.IOUtils;
@@ -17,7 +18,6 @@ import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.CookieRememberMeManager;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.servlet.SimpleCookie;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -132,9 +132,6 @@ public class ShiroConfig
@Value("${shiro.rememberMe.enabled: false}")
private boolean rememberMe;
- @Autowired
- private PermitAllUrlProperties permitAllUrl;
-
/**
* 缓存管理器 使用Ehcache实现
*/
@@ -294,7 +291,11 @@ public class ShiroConfig
filterChainDefinitionMap.put("/ruoyi/**", "anon");
filterChainDefinitionMap.put("/captcha/captchaImage**", "anon");
// 匿名访问不鉴权注解列表
- permitAllUrl.getUrls().forEach(url -> filterChainDefinitionMap.put(url, "anon"));
+ List permitAllUrl = SpringUtils.getBean(PermitAllUrlProperties.class).getUrls();
+ if (StringUtils.isNotEmpty(permitAllUrl))
+ {
+ permitAllUrl.forEach(url -> filterChainDefinitionMap.put(url, "anon"));
+ }
// 退出 logout地址,shiro去清除session
filterChainDefinitionMap.put("/logout", "logout");
// 不需要拦截的访问