From b6dcc62f9ce7e6e1328c096661d99e1c2002f852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=BB=A3=E9=B9=8F?= <15891557205@163.com> Date: Fri, 21 Jun 2024 12:07:19 +0800 Subject: [PATCH 01/11] =?UTF-8?q?refactor:=20=E6=94=B9=E4=B8=BA=E6=87=92?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/UserSelect/index.vue | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue index f6e552e..8212489 100644 --- a/src/components/UserSelect/index.vue +++ b/src/components/UserSelect/index.vue @@ -29,16 +29,11 @@ - + 搜索 - 重置 + 重置 @@ -223,13 +218,13 @@ const handleQuery = () => { getList(); }; /** 重置按钮操作 */ -const resetQuery = () => { +const resetQuery = (refresh = true) => { dateRange.value = ['', '']; queryFormRef.value?.resetFields(); queryParams.value.pageNum = 1; queryParams.value.deptId = undefined; deptTreeRef.value?.setCurrentKey(undefined); - handleQuery(); + refresh && handleQuery(); }; const handleCheckboxChange = (checked) => { @@ -290,21 +285,18 @@ watch( () => userDialog.visible.value, (newValue: boolean) => { if (newValue) { + getTreeSelect(); // 初始化部门数据 + getList(); // 初始化列表数据 initSelectUser(); } else { tableRef.value.clearCheckboxReserve(); tableRef.value.clearCheckboxRow(); - resetQuery(); + resetQuery(false); selectUserList.value = []; } } ); -onMounted(() => { - getTreeSelect(); // 初始化部门数据 - getList(); // 初始化列表数据 -}); - defineExpose({ open: userDialog.openDialog, close: userDialog.closeDialog From fbcc967b14c770a4487f8ab0cd11feb418d9ff5e Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Mon, 24 Jun 2024 08:21:19 +0800 Subject: [PATCH 02/11] =?UTF-8?q?fix:=20=E7=94=B1=E4=BA=8E=E6=B2=A1?= =?UTF-8?q?=E6=9C=89await=20=E5=AF=BC=E8=87=B4=E6=89=A7=E8=A1=8C=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F=E4=B8=8D=E5=8F=AF=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/UserSelect/index.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue index 8212489..e9865e5 100644 --- a/src/components/UserSelect/index.vue +++ b/src/components/UserSelect/index.vue @@ -283,11 +283,11 @@ const close = () => { watch( () => userDialog.visible.value, - (newValue: boolean) => { + async (newValue: boolean) => { if (newValue) { - getTreeSelect(); // 初始化部门数据 - getList(); // 初始化列表数据 - initSelectUser(); + await getTreeSelect(); // 初始化部门数据 + await getList(); // 初始化列表数据 + await initSelectUser(); } else { tableRef.value.clearCheckboxReserve(); tableRef.value.clearCheckboxRow(); From d1b58f0aaace06a8c6d5619a2b9abadca6456475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 24 Jun 2024 14:59:36 +0800 Subject: [PATCH 03/11] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E5=8D=95?= =?UTF-8?q?=E8=AF=8D=E6=8B=BC=E5=86=99=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/user/profile/index.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/system/user/profile/index.vue b/src/views/system/user/profile/index.vue index 426fca8..7c1389a 100644 --- a/src/views/system/user/profile/index.vue +++ b/src/views/system/user/profile/index.vue @@ -58,8 +58,8 @@ - - + + @@ -73,7 +73,7 @@ import UserAvatar from './userAvatar.vue'; import UserInfo from './userInfo.vue'; import ResetPwd from './resetPwd.vue'; import ThirdParty from './thirdParty.vue'; -import OnlinDevice from './onlineDevice.vue'; +import OnlineDevice from './onlineDevice.vue'; import { getAuthList } from '@/api/system/social/auth'; import { getUserProfile } from '@/api/system/user'; import { getOnline } from '@/api/monitor/online'; From ad991e248a452a8913bc9e4a0af18c3f90a2606f Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Wed, 26 Jun 2024 11:34:40 +0800 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20=E8=B7=AF=E7=94=B1name=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/permission.ts | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts index cf12a73..a8611a9 100644 --- a/src/store/modules/permission.ts +++ b/src/store/modules/permission.ts @@ -58,6 +58,8 @@ export const usePermissionStore = defineStore('permission', () => { setSidebarRouters(constantRoutes.concat(sidebarRoutes)); setDefaultRoutes(sidebarRoutes); setTopbarRoutes(defaultRoutes); + // 路由name重复检查 + duplicateRouteChecker(asyncRoutes, sidebarRoutes); return new Promise((resolve) => resolve(rewriteRoutes)); }; @@ -167,4 +169,42 @@ export const usePermissionStoreHook = () => { return usePermissionStore(store); }; +interface Route { + name?: string | symbol; + path: string; + children?: Route[]; +} + +/** + * 检查路由name是否重复 + * @param localRoutes 本地路由 + * @param routes 动态路由 + */ +function duplicateRouteChecker(localRoutes: Route[], routes: Route[]) { + // 展平 + function flatRoutes(routes: Route[]) { + const res: Route[] = []; + routes.forEach((route) => { + if (route.children) { + res.push(...flatRoutes(route.children)); + } else { + res.push(route); + } + }); + return res; + } + + const allRoutes = flatRoutes([...localRoutes, ...routes]); + + const nameList: string[] = []; + allRoutes.forEach((route) => { + const name = route.name.toString(); + if (name && nameList.includes(name)) { + console.error(`路由名称: [${name}] 重复, 会造成 404`); + return; + } + nameList.push(route.name.toString()); + }); +} + export default usePermissionStore; From 762ebd4ededbc1cacbaf301a47376df8c34473eb Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Wed, 26 Jun 2024 11:59:41 +0800 Subject: [PATCH 05/11] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/permission.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts index a8611a9..8bab2d8 100644 --- a/src/store/modules/permission.ts +++ b/src/store/modules/permission.ts @@ -200,7 +200,13 @@ function duplicateRouteChecker(localRoutes: Route[], routes: Route[]) { allRoutes.forEach((route) => { const name = route.name.toString(); if (name && nameList.includes(name)) { - console.error(`路由名称: [${name}] 重复, 会造成 404`); + const message = `路由名称: [${name}] 重复, 会造成 404`; + console.error(message); + ElNotification({ + title: '路由名称重复', + message, + type: 'error' + }); return; } nameList.push(route.name.toString()); From 7637582437c1fe0bc70a4aaf47965fda165ea62d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 28 Jun 2024 10:18:18 +0800 Subject: [PATCH 06/11] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20eslint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/workflow/formManage/index.ts | 2 +- src/api/workflow/model/index.ts | 4 ++-- src/api/workflow/model/types.ts | 6 +++--- src/api/workflow/nodeConfig/types.ts | 5 ----- src/components/ImagePreview/index.vue | 2 +- src/hooks/useDialog.ts | 2 +- src/layout/components/AppMain.vue | 6 +++--- src/layout/components/SocialCallback/index.vue | 2 +- src/permission.ts | 2 +- src/views/monitor/logininfor/index.vue | 2 +- src/views/monitor/operlog/index.vue | 4 ++-- src/views/system/client/index.vue | 2 +- src/views/system/config/index.vue | 2 +- src/views/system/dept/index.vue | 2 +- src/views/system/menu/index.vue | 2 +- src/views/system/oss/index.vue | 6 +++--- src/views/system/role/index.vue | 2 +- src/views/system/user/profile/onlineDevice.vue | 4 +--- src/views/system/user/profile/resetPwd.vue | 2 +- src/views/system/user/profile/thirdParty.vue | 2 +- 20 files changed, 27 insertions(+), 34 deletions(-) diff --git a/src/api/workflow/formManage/index.ts b/src/api/workflow/formManage/index.ts index c2930cf..6c5ec60 100644 --- a/src/api/workflow/formManage/index.ts +++ b/src/api/workflow/formManage/index.ts @@ -25,7 +25,7 @@ export const listFormManage = (query?: FormManageQuery): AxiosPromise => { return request({ url: '/workflow/formManage/list/selectList', - method: 'get', + method: 'get' }); }; diff --git a/src/api/workflow/model/index.ts b/src/api/workflow/model/index.ts index 56f7fed..1ca8b19 100644 --- a/src/api/workflow/model/index.ts +++ b/src/api/workflow/model/index.ts @@ -22,7 +22,7 @@ export const listModel = (query: ModelQuery): AxiosPromise => { */ export const getInfo = (id: string): AxiosPromise => { return request({ - url: '/workflow/model/getInfo/'+id, + url: '/workflow/model/getInfo/' + id, method: 'get' }); }; @@ -101,4 +101,4 @@ export const copyModel = (data: ModelForm): AxiosPromise => { method: 'post', data: data }); -}; \ No newline at end of file +}; diff --git a/src/api/workflow/model/types.ts b/src/api/workflow/model/types.ts index 40a0faa..77f947d 100644 --- a/src/api/workflow/model/types.ts +++ b/src/api/workflow/model/types.ts @@ -1,10 +1,10 @@ export interface ModelForm { - id: string, + id: string; name: string; key: string; categoryCode: string; - xml:string, - svg:string, + xml: string; + svg: string; description: string; } diff --git a/src/api/workflow/nodeConfig/types.ts b/src/api/workflow/nodeConfig/types.ts index 4e3a60b..a55fc91 100644 --- a/src/api/workflow/nodeConfig/types.ts +++ b/src/api/workflow/nodeConfig/types.ts @@ -35,9 +35,4 @@ export interface NodeConfigVO { * 表单管理 */ wfFormManageVo: FormManageVO; - } - - - - diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue index 349f729..98e6479 100644 --- a/src/components/ImagePreview/index.vue +++ b/src/components/ImagePreview/index.vue @@ -38,7 +38,7 @@ const realSrcList = computed(() => { let real_src_list = props.src.split(','); let srcList: string[] = []; real_src_list.forEach((item: string) => { - if(item.trim() === '') { + if (item.trim() === '') { return; } return srcList.push(item); diff --git a/src/hooks/useDialog.ts b/src/hooks/useDialog.ts index 68440bf..547f199 100644 --- a/src/hooks/useDialog.ts +++ b/src/hooks/useDialog.ts @@ -28,4 +28,4 @@ export default (ops?: Options): Return => { openDialog, closeDialog }; -}; \ No newline at end of file +}; diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index d634935..a79e331 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -3,10 +3,10 @@
- - + + - +
diff --git a/src/layout/components/SocialCallback/index.vue b/src/layout/components/SocialCallback/index.vue index de65aed..746de20 100644 --- a/src/layout/components/SocialCallback/index.vue +++ b/src/layout/components/SocialCallback/index.vue @@ -18,7 +18,7 @@ const code = route.query.code as string; const state = route.query.state as string; const source = route.query.source as string; const stateJson = JSON.parse(atob(state)); -const tenantId = stateJson.tenantId as string ? stateJson.tenantId as string : '000000'; +const tenantId = (stateJson.tenantId as string) ? (stateJson.tenantId as string) : '000000'; const domain = stateJson.domain as string; const processResponse = async (res: any) => { diff --git a/src/permission.ts b/src/permission.ts index 1123738..6771f8c 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -53,7 +53,7 @@ router.beforeEach(async (to, from, next) => { next(); } else { const redirect = encodeURIComponent(to.fullPath || '/'); - next(`/login?redirect=${redirect}`) // 否则全部重定向到登录页 + next(`/login?redirect=${redirect}`); // 否则全部重定向到登录页 NProgress.done(); } } diff --git a/src/views/monitor/logininfor/index.vue b/src/views/monitor/logininfor/index.vue index 27c0a85..03d0d8f 100644 --- a/src/views/monitor/logininfor/index.vue +++ b/src/views/monitor/logininfor/index.vue @@ -11,7 +11,7 @@ - + diff --git a/src/views/monitor/operlog/index.vue b/src/views/monitor/operlog/index.vue index 1442984..ed0d755 100644 --- a/src/views/monitor/operlog/index.vue +++ b/src/views/monitor/operlog/index.vue @@ -14,12 +14,12 @@ - + - + diff --git a/src/views/system/client/index.vue b/src/views/system/client/index.vue index af8696b..c05dcdc 100644 --- a/src/views/system/client/index.vue +++ b/src/views/system/client/index.vue @@ -10,7 +10,7 @@ - + diff --git a/src/views/system/config/index.vue b/src/views/system/config/index.vue index 138068e..1b67d48 100644 --- a/src/views/system/config/index.vue +++ b/src/views/system/config/index.vue @@ -11,7 +11,7 @@ - + diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 71aeff1..199a997 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -11,7 +11,7 @@ - + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index 9e5b5c3..cf5f0fc 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -8,7 +8,7 @@ - + diff --git a/src/views/system/oss/index.vue b/src/views/system/oss/index.vue index 2e50582..a6e60e8 100644 --- a/src/views/system/oss/index.vue +++ b/src/views/system/oss/index.vue @@ -13,7 +13,7 @@ - + { showTable.value = true; }; function checkFileSuffix(fileSuffix: string | string[]) { - const arr = [".png", ".jpg", ".jpeg"]; + const arr = ['.png', '.jpg', '.jpeg']; const suffixArray = Array.isArray(fileSuffix) ? fileSuffix : [fileSuffix]; - return suffixArray.some(suffix => arr.includes(suffix.toLowerCase())); + return suffixArray.some((suffix) => arr.includes(suffix.toLowerCase())); } /** 取消按钮 */ function cancel() { diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index bd84af3..0b6ba00 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -11,7 +11,7 @@ - + diff --git a/src/views/system/user/profile/onlineDevice.vue b/src/views/system/user/profile/onlineDevice.vue index 8da96f6..bd7c822 100644 --- a/src/views/system/user/profile/onlineDevice.vue +++ b/src/views/system/user/profile/onlineDevice.vue @@ -18,8 +18,7 @@ @@ -55,5 +54,4 @@ const handldDelOnline = (row: any) => { }) .catch(() => {}); }; - diff --git a/src/views/system/user/profile/resetPwd.vue b/src/views/system/user/profile/resetPwd.vue index 6d536da..aae5ef8 100644 --- a/src/views/system/user/profile/resetPwd.vue +++ b/src/views/system/user/profile/resetPwd.vue @@ -45,7 +45,7 @@ const rules = ref({ message: '长度在 6 到 20 个字符', trigger: 'blur' }, - { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" } + { pattern: /^[^<>"'|\\]+$/, message: '不能包含非法字符:< > " \' \\\ |', trigger: 'blur' } ], confirmPassword: [ { required: true, message: '确认密码不能为空', trigger: 'blur' }, diff --git a/src/views/system/user/profile/thirdParty.vue b/src/views/system/user/profile/thirdParty.vue index 957122a..5cd7347 100644 --- a/src/views/system/user/profile/thirdParty.vue +++ b/src/views/system/user/profile/thirdParty.vue @@ -58,7 +58,7 @@