From d4cf14b5b867822a6de5b068df491deb828be47b Mon Sep 17 00:00:00 2001 From: zhangml Date: Fri, 16 Sep 2022 10:15:31 +0800 Subject: [PATCH 1/5] =?UTF-8?q?:sparkles:=20=E4=BC=98=E5=8C=96=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=BA=A7=E8=81=94=E5=92=8C=E9=BB=98=E8=AE=A4=20#I5R3Q?= =?UTF-8?q?L?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/organization/department/edit.vue | 6 ++++++ .../impl/SystemAuthDeptServiceImpl.java | 4 ++++ .../mapper/system/SystemAuthDeptMapper.java | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/admin/src/views/organization/department/edit.vue b/admin/src/views/organization/department/edit.vue index f1d13624..2f2be211 100644 --- a/admin/src/views/organization/department/edit.vue +++ b/admin/src/views/organization/department/edit.vue @@ -125,6 +125,12 @@ const { optionsData } = useDictOptions<{ } }) +watch(optionsData, (arr) => { + if (arr.dept) { + formData.pid = arr.dept[0].id + } +}) + const handleSubmit = async () => { await formRef.value?.validate() mode.value == 'edit' ? await deptEdit(formData) : await deptAdd(formData) diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java index 744b4338..49ae65ce 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java @@ -14,6 +14,7 @@ import com.mdd.common.utils.ArrayUtil; import com.mdd.common.utils.TimeUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; @@ -162,6 +163,7 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService { * @author fzr * @param systemAuthDeptParam 参数 */ + @Transactional(rollbackFor = Exception.class) @Override public void edit(SystemAuthDeptParam systemAuthDeptParam) { SystemAuthDept model = systemAuthDeptMapper.selectOne( @@ -185,6 +187,8 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService { model.setIsStop(systemAuthDeptParam.getIsStop()); model.setUpdateTime(System.currentTimeMillis() / 1000); systemAuthDeptMapper.updateById(model); + //级联更新自己状态 + systemAuthDeptMapper.updateChilder(systemAuthDeptParam.getIsStop(),model.getId()); } /** diff --git a/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java b/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java index 68e8dcc4..a975ba70 100644 --- a/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java +++ b/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java @@ -3,10 +3,29 @@ package com.mdd.common.mapper.system; import com.mdd.common.core.basics.IBaseMapper; import com.mdd.common.entity.system.SystemAuthDept; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; /** * 系统岗位Mapper */ @Mapper public interface SystemAuthDeptMapper extends IBaseMapper { + + /** + * 级联更新部门状态 + * @param stopStatus + * @param id + * @return + */ + @Update(value = "WITH recursive temp AS (SELECT id, pid\n" + + " FROM la_system_auth_dept\n" + + " WHERE id = #{id}\n" + " UNION ALL\n" + + " SELECT u.id, u.pid\n" + + " FROM la_system_auth_dept u,\n" + + " temp t\n" + + " WHERE u.pid = t.id and u.is_stop <> #{stopStatus})\n" + + "update la_system_auth_dept set is_stop = #{stopStatus}\n" + + "where id in (select id from temp)") + void updateChilder(@Param("stopStatus") int stopStatus, @Param("id") Integer id); } -- Gitee From 6150677e7dd4ea22a93db1b4535d39ac15fec024 Mon Sep 17 00:00:00 2001 From: zhangml Date: Fri, 16 Sep 2022 13:30:12 +0800 Subject: [PATCH 2/5] =?UTF-8?q?:sparkles:=20=E4=BC=98=E5=8C=96=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E5=8A=9F=E8=83=BD=20#I5QLCG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/views/channel/weapp.vue | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/admin/src/views/channel/weapp.vue b/admin/src/views/channel/weapp.vue index a7077ebd..79280eb9 100644 --- a/admin/src/views/channel/weapp.vue +++ b/admin/src/views/channel/weapp.vue @@ -58,7 +58,7 @@
- 复制 + 复制
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 @@ -71,7 +71,7 @@
- 复制 + 复制
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写wss协议域名 @@ -84,7 +84,7 @@
- 复制 + 复制
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 @@ -97,7 +97,7 @@
- 复制 + 复制
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 @@ -110,7 +110,7 @@
- 复制 + 复制
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写udp协议域名 @@ -126,7 +126,7 @@
- 复制 + 复制
小程序账号登录微信公众平台,点击开发>开发设置->业务域名,填写业务域名 @@ -161,6 +161,19 @@ const formData = reactive({ }) const { copy } = useClipboard() + +const copyClick = async (msg: any) => { + try { + //复制 + await copy(msg) + feedback.msgSuccess('复制成功') + } catch (e) { + //复制失败 + feedback.msgSuccess('复制失败') + console.error(e) + } +} + const getDetail = async () => { const data = await getWeappConfig() for (const key in formData) { -- Gitee From 9c58f33d349b6b89022f0e04e1053aaaec27e0fd Mon Sep 17 00:00:00 2001 From: mlzhang <1371582736@qq.com> Date: Wed, 21 Sep 2022 21:52:19 +0800 Subject: [PATCH 3/5] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8Dbug=20#I5S8LO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/views/setting/search/index.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/admin/src/views/setting/search/index.vue b/admin/src/views/setting/search/index.vue index 89471f4e..d5421ea5 100644 --- a/admin/src/views/setting/search/index.vue +++ b/admin/src/views/setting/search/index.vue @@ -163,6 +163,7 @@ getData() margin: 0 6px 6px 0; display: inline-block; background-color: #f4f4f4; + word-break: break-all; } } } -- Gitee From 1d998d14a2ddc69e56ea86d4c20e56c3a268f497 Mon Sep 17 00:00:00 2001 From: mlzhang <1371582736@qq.com> Date: Sun, 25 Sep 2022 03:39:58 +0800 Subject: [PATCH 4/5] =?UTF-8?q?:bug:=20=E5=A2=9E=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=B1=BB=E5=9E=8B=E3=80=81=E5=88=A4=E6=96=AD=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=B1=BB=E5=9E=8B=E8=AE=B0=E5=BD=95=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=20#I5SYLB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mdd/admin/config/aop/Log.java | 6 +++++ .../com/mdd/admin/config/aop/LogAspect.java | 25 +++++++++++++++++-- .../com/mdd/admin/config/aop/RequestType.java | 17 +++++++++++++ .../controller/common/UploadController.java | 3 ++- 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java b/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java index 473843ae..accee6c8 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java +++ b/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java @@ -13,4 +13,10 @@ public @interface Log { */ String title() default ""; + /** + * 模块 + * @return String + */ + RequestType requestType() default RequestType.Default; + } diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java b/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java index ffbf11ba..63fb2293 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java +++ b/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java @@ -16,12 +16,18 @@ import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.MultiValueMap; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Aspect @Component @@ -96,9 +102,24 @@ public class LogAspect { String queryString = request.getQueryString(); Object[] args = joinPoint.getArgs(); String params = ""; - if(args.length>0){ + if (args.length > 0) { if("POST".equals(request.getMethod())){ - params = JSON.toJSONString(args); + if (RequestType.File.equals(logAnnotation.requestType())){ + //文件类型获取文件名称作为参数 + StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) args[0]; + //提取文件名 + params = standardMultipartHttpServletRequest + .getMultiFileMap() + .values() + .stream() + .map(m -> m.stream() + .map(mf-> mf.getOriginalFilename()) + .collect(Collectors.joining(","))) + .collect(Collectors.joining(",")); + } else { + params = JSON.toJSONString(args); + } + } else if("GET".equals(request.getMethod())){ params = queryString; } diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java b/server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java new file mode 100644 index 00000000..abc398d2 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java @@ -0,0 +1,17 @@ +package com.mdd.admin.config.aop; + +/** + * 请求参数类 + */ +public enum RequestType { + /** + * 文件类型 + */ + File, + /** + * 默认数据类型 + */ + Default + ; + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java index a4444391..d8ad539c 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java @@ -2,6 +2,7 @@ package com.mdd.admin.controller.common; import com.mdd.admin.LikeAdminThreadLocal; import com.mdd.admin.config.aop.Log; +import com.mdd.admin.config.aop.RequestType; import com.mdd.admin.service.common.IAlbumService; import com.mdd.common.core.AjaxResult; import com.mdd.common.enums.AlbumEnum; @@ -36,7 +37,7 @@ public class UploadController { * @param request 请求对象 * @return Object */ - @Log(title = "上传图片") + @Log(title = "上传图片", requestType = RequestType.File) @PostMapping("/image") public Object image(HttpServletRequest request) { MultipartFile multipartFile; -- Gitee From b9066a217d31450cef0027fa316e3b90bc2fe91b Mon Sep 17 00:00:00 2001 From: mlzhang <1371582736@qq.com> Date: Wed, 28 Sep 2022 00:03:08 +0800 Subject: [PATCH 5/5] =?UTF-8?q?:sparkles:=20=E5=A2=9E=E5=8A=A0=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=A0=8F=E5=A4=9A=E7=BA=A7=E5=8A=9F=E8=83=BD=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=20#I5SW7L?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/enums/pageEnum.ts | 4 +- .../components/header/multiple-tabs.vue | 127 ++++++++++++++++-- admin/src/router/routes.ts | 6 +- admin/src/stores/modules/multipleTabs.ts | 16 ++- admin/src/views/redirect/index.vue | 29 ++++ 5 files changed, 166 insertions(+), 16 deletions(-) create mode 100644 admin/src/views/redirect/index.vue diff --git a/admin/src/enums/pageEnum.ts b/admin/src/enums/pageEnum.ts index 89e6525f..57cee08b 100644 --- a/admin/src/enums/pageEnum.ts +++ b/admin/src/enums/pageEnum.ts @@ -5,5 +5,7 @@ export enum PageEnum { ERROR_403 = '/403', // 404 ERROR_404 = '/:pathMatch(.*)*', - INDEX = '/' + INDEX = '/', + //重定向 + REDIRECT = '/redirect' } diff --git a/admin/src/layout/default/components/header/multiple-tabs.vue b/admin/src/layout/default/components/header/multiple-tabs.vue index 2b6fb41b..6084358b 100644 --- a/admin/src/layout/default/components/header/multiple-tabs.vue +++ b/admin/src/layout/default/components/header/multiple-tabs.vue @@ -6,30 +6,65 @@ :closable="tabsState.length > 1" @tab-change="handleChange" @tab-remove="handleRemove" + >
- - - - - - +
    +
  • + 刷新 +
  • +
  • + 关闭 +
  • +
  • + 关闭其他 +
  • +
  • + 关闭所有 +
  • +
+ + + + + + + + + + + + diff --git a/admin/src/router/routes.ts b/admin/src/router/routes.ts index dc91f60b..b7ca82aa 100644 --- a/admin/src/router/routes.ts +++ b/admin/src/router/routes.ts @@ -8,7 +8,7 @@ icon: 'icon-name' // 设置该路由的图标 activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。 query: '{"id": 1}' // 访问路由的默认传递参数 - hidden: true // 当设置 true 的时候该路由不会在侧边栏出现 + hidden: true // 当设置 true 的时候该路由不会在侧边栏出现 hideTab: true //当设置 true 的时候该路由不会在多标签tab栏出现 } */ @@ -22,6 +22,10 @@ export const LAYOUT = () => Promise.resolve(Layout) export const INDEX_ROUTE_NAME = Symbol() export const constantRoutes: Array = [ + { + path: PageEnum.REDIRECT + '/:path(.*)', + component: () => import( '@/views/redirect/index.vue') + }, { path: PageEnum.ERROR_404, component: () => import('@/views/error/404.vue') diff --git a/admin/src/stores/modules/multipleTabs.ts b/admin/src/stores/modules/multipleTabs.ts index d063546a..e7a6f3f6 100644 --- a/admin/src/stores/modules/multipleTabs.ts +++ b/admin/src/stores/modules/multipleTabs.ts @@ -128,7 +128,21 @@ const useTabsStore = defineStore({ } this.tabList = [] push(PageEnum.INDEX) - } + }, + reRefreshTab(path: string, router: Router) { + const { push } = router + const index = findTabsIndex(path, this.tabList) + let toTab: TabItem = this.tabList[index] + + const toRoute = getRouteParams(toTab) + push(toRoute) + + nextTick(() => { + router.replace({ path: '/redirect' + path }).catch(err => { + console.warn(err) + }) + }) + } } }) diff --git a/admin/src/views/redirect/index.vue b/admin/src/views/redirect/index.vue new file mode 100644 index 00000000..1ffbd165 --- /dev/null +++ b/admin/src/views/redirect/index.vue @@ -0,0 +1,29 @@ + + + -- Gitee