Merge remote-tracking branch 'ruoyi-vue/master' into dev
# Conflicts:
# ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
# ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java
# ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java
| | |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import javax.validation.constraints.Size; |
| | | |
| | | /** |
| | |
| | | import java.util.concurrent.RejectedExecutionHandler; |
| | | import java.util.concurrent.ScheduledExecutorService; |
| | | import java.util.concurrent.ScheduledThreadPoolExecutor; |
| | | import java.util.concurrent.ThreadPoolExecutor; |
| | | |
| | | /** |
| | | * 线程池配置 |
| | |
| | | @Bean(name = "scheduledExecutorService") |
| | | protected ScheduledExecutorService scheduledExecutorService() { |
| | | return new ScheduledThreadPoolExecutor(threadPoolProperties.getCorePoolSize(), |
| | | new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) { |
| | | new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build(), |
| | | new ThreadPoolExecutor.CallerRunsPolicy()) { |
| | | @Override |
| | | protected void afterExecute(Runnable r, Throwable t) { |
| | | super.afterExecute(r, t); |
| | |
| | | export default {
|
| | | // 刷新当前tab页签
|
| | | refreshPage(obj) {
|
| | | const { path, matched } = router.currentRoute;
|
| | | const { path, query, matched } = router.currentRoute;
|
| | | if (obj === undefined) {
|
| | | matched.forEach((m) => {
|
| | | if (m.components && m.components.default && m.components.default.name) {
|
| | | if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
|
| | | obj = { name: m.components.default.name, path: path };
|
| | | obj = { name: m.components.default.name, path: path, query: query };
|
| | | }
|
| | | }
|
| | | });
|
| | | }
|
| | | return store.dispatch('tagsView/delCachedView', obj).then(() => {
|
| | | const { path } = obj
|
| | | const { path, query } = obj
|
| | | router.replace({
|
| | | path: '/redirect' + path
|
| | | path: '/redirect' + path,
|
| | | query: query
|
| | | })
|
| | | })
|
| | | },
|