From df179c2bf64ceedbefd2655546212bcd09f79b33 Mon Sep 17 00:00:00 2001 From: dev <182542500@qq.com> Date: Fri, 21 Mar 2025 16:51:28 +0800 Subject: [PATCH] first --- src/App.vue | 20 + src/animate.ts | 48 ++ src/api/demo/demo/index.ts | 62 ++ src/api/demo/demo/types.ts | 90 +++ src/api/demo/tree/index.ts | 62 ++ src/api/demo/tree/types.ts | 80 +++ src/api/login.ts | 113 +++ src/api/menu.ts | 11 + src/api/monitor/cache/index.ts | 59 ++ src/api/monitor/cache/types.ts | 7 + src/api/monitor/loginInfo/index.ts | 36 + src/api/monitor/loginInfo/types.ts | 20 + src/api/monitor/online/index.ts | 36 + src/api/monitor/online/types.ts | 15 + src/api/monitor/operlog/index.ts | 28 + src/api/monitor/operlog/types.ts | 53 ++ src/api/system/client/index.ts | 80 +++ src/api/system/client/types.ts | 135 ++++ src/api/system/config/index.ts | 74 ++ src/api/system/config/types.ts | 23 + src/api/system/dept/index.ts | 73 ++ src/api/system/dept/types.ts | 60 ++ src/api/system/dict/data/index.ts | 53 ++ src/api/system/dict/data/types.ts | 26 + src/api/system/dict/type/index.ts | 62 ++ src/api/system/dict/type/types.ts | 18 + src/api/system/menu/index.ts | 70 ++ src/api/system/menu/types.ts | 69 ++ src/api/system/notice/index.ts | 45 ++ src/api/system/notice/types.ts | 26 + src/api/system/oss/index.ts | 28 + src/api/system/oss/types.ts | 22 + src/api/system/ossConfig/index.ts | 60 ++ src/api/system/ossConfig/types.ts | 38 + src/api/system/post/index.ts | 58 ++ src/api/system/post/types.ts | 31 + src/api/system/role/index.ts | 160 +++++ src/api/system/role/types.ts | 52 ++ src/api/system/social/auth.ts | 28 + src/api/system/tenant/index.ts | 101 +++ src/api/system/tenant/types.ts | 46 ++ src/api/system/tenantPackage/index.ts | 67 ++ src/api/system/tenantPackage/types.ts | 20 + src/api/system/user/types.ts | 84 +++ src/api/tool/gen/index.ts | 86 +++ src/api/tool/gen/types.ts | 180 +++++ src/api/types.ts | 59 ++ src/api/workflow/category/index.ts | 76 ++ src/api/workflow/category/types.ts | 72 ++ src/api/workflow/definition/index.ts | 170 +++++ src/api/workflow/definition/types.ts | 31 + src/api/workflow/instance/index.ts | 101 +++ src/api/workflow/instance/types.ts | 26 + src/api/workflow/leave/index.ts | 63 ++ src/api/workflow/leave/types.ts | 24 + src/api/workflow/task/index.ts | 180 +++++ src/api/workflow/task/types.ts | 48 ++ src/api/workflow/workflowCommon/index.ts | 15 + src/api/workflow/workflowCommon/types.ts | 13 + src/assets/401_images/401.gif | Bin 0 -> 164227 bytes src/assets/404_images/404.png | Bin 0 -> 98071 bytes src/assets/404_images/404_cloud.png | Bin 0 -> 4766 bytes src/assets/icons/svg/404.svg | 1 + src/assets/icons/svg/bug.svg | 1 + src/assets/icons/svg/build.svg | 1 + src/assets/icons/svg/button.svg | 1 + src/assets/icons/svg/caret-back.svg | 1 + src/assets/icons/svg/caret-forward.svg | 1 + src/assets/icons/svg/cascader.svg | 1 + src/assets/icons/svg/category.svg | 1 + src/assets/icons/svg/chart.svg | 1 + src/assets/icons/svg/checkbox.svg | 1 + src/assets/icons/svg/clipboard.svg | 1 + src/assets/icons/svg/code.svg | 1 + src/assets/icons/svg/color.svg | 1 + src/assets/icons/svg/company.svg | 1 + src/assets/icons/svg/component.svg | 1 + src/assets/icons/svg/dashboard.svg | 1 + src/assets/icons/svg/date-range.svg | 1 + src/assets/icons/svg/date.svg | 1 + src/assets/icons/svg/dict.svg | 1 + src/assets/icons/svg/documentation.svg | 1 + src/assets/icons/svg/download.svg | 1 + src/assets/icons/svg/drag.svg | 1 + src/assets/icons/svg/druid.svg | 1 + src/assets/icons/svg/edit.svg | 1 + src/assets/icons/svg/education.svg | 1 + src/assets/icons/svg/email.svg | 1 + src/assets/icons/svg/example.svg | 1 + src/assets/icons/svg/excel.svg | 1 + src/assets/icons/svg/exit-fullscreen.svg | 1 + src/assets/icons/svg/eye-open.svg | 1 + src/assets/icons/svg/eye.svg | 1 + src/assets/icons/svg/finish.svg | 1 + src/assets/icons/svg/form.svg | 1 + src/assets/icons/svg/fullscreen.svg | 1 + src/assets/icons/svg/gitee.svg | 1 + src/assets/icons/svg/github.svg | 1 + src/assets/icons/svg/guide.svg | 1 + src/assets/icons/svg/icon.svg | 1 + src/assets/icons/svg/input.svg | 1 + src/assets/icons/svg/international.svg | 1 + src/assets/icons/svg/job.svg | 1 + src/assets/icons/svg/language.svg | 1 + src/assets/icons/svg/link.svg | 1 + src/assets/icons/svg/list.svg | 1 + src/assets/icons/svg/lock.svg | 1 + src/assets/icons/svg/log.svg | 1 + src/assets/icons/svg/logininfor.svg | 1 + src/assets/icons/svg/maxkey.svg | 3 + src/assets/icons/svg/message.svg | 1 + src/assets/icons/svg/model.svg | 1 + src/assets/icons/svg/money.svg | 1 + src/assets/icons/svg/monitor.svg | 2 + src/assets/icons/svg/my-copy.svg | 1 + src/assets/icons/svg/my-task.svg | 1 + src/assets/icons/svg/nested.svg | 1 + src/assets/icons/svg/number.svg | 1 + src/assets/icons/svg/online.svg | 1 + src/assets/icons/svg/password.svg | 1 + src/assets/icons/svg/pdf.svg | 1 + src/assets/icons/svg/people.svg | 1 + src/assets/icons/svg/peoples.svg | 1 + src/assets/icons/svg/phone.svg | 1 + src/assets/icons/svg/post.svg | 1 + src/assets/icons/svg/process-definition.svg | 1 + src/assets/icons/svg/qq.svg | 1 + src/assets/icons/svg/question.svg | 1 + src/assets/icons/svg/radio.svg | 1 + src/assets/icons/svg/rate.svg | 1 + src/assets/icons/svg/redis-list.svg | 2 + src/assets/icons/svg/redis.svg | 1 + src/assets/icons/svg/row.svg | 1 + src/assets/icons/svg/search.svg | 1 + src/assets/icons/svg/select.svg | 1 + src/assets/icons/svg/server.svg | 1 + src/assets/icons/svg/shopping.svg | 1 + src/assets/icons/svg/size.svg | 1 + src/assets/icons/svg/skill.svg | 1 + src/assets/icons/svg/slider.svg | 1 + src/assets/icons/svg/star.svg | 1 + src/assets/icons/svg/swagger.svg | 1 + src/assets/icons/svg/switch.svg | 1 + src/assets/icons/svg/system.svg | 2 + src/assets/icons/svg/tab.svg | 1 + src/assets/icons/svg/table.svg | 1 + src/assets/icons/svg/textarea.svg | 1 + src/assets/icons/svg/theme.svg | 1 + src/assets/icons/svg/time-range.svg | 1 + src/assets/icons/svg/time.svg | 1 + src/assets/icons/svg/tool.svg | 1 + src/assets/icons/svg/topiam.svg | 29 + src/assets/icons/svg/tree-table.svg | 1 + src/assets/icons/svg/tree.svg | 1 + src/assets/icons/svg/upload.svg | 1 + src/assets/icons/svg/user.svg | 1 + src/assets/icons/svg/validCode.svg | 1 + src/assets/icons/svg/waiting.svg | 1 + src/assets/icons/svg/wechat.svg | 1 + src/assets/icons/svg/workflow.svg | 1 + src/assets/icons/svg/zip.svg | 1 + src/assets/images/dark.svg | 39 + src/assets/images/light.svg | 39 + src/assets/images/profile.jpg | Bin 0 -> 275351 bytes src/assets/logo/logo.png | Bin 0 -> 8131 bytes src/assets/styles/btn.scss | 99 +++ src/assets/styles/element-ui.scss | 153 ++++ src/assets/styles/mixin.scss | 60 ++ src/assets/styles/sidebar.scss | 232 ++++++ src/assets/styles/transition.scss | 49 ++ src/assets/styles/variables.module.scss | 135 ++++ src/components/Breadcrumb/index.vue | 95 +++ src/components/BuildCode/index.vue | 61 ++ src/components/BuildCode/render.vue | 57 ++ src/components/DictTag/index.vue | 94 +++ src/components/Editor/index.vue | 244 +++++++ src/components/FileUpload/index.vue | 234 ++++++ src/components/Hamburger/index.vue | 35 + src/components/IconSelect/index.vue | 104 +++ src/components/IconSelect/requireIcons.ts | 7 + src/components/ImagePreview/index.vue | 79 +++ src/components/ImageUpload/index.vue | 238 +++++++ src/components/LangSelect/index.vue | 39 + src/components/Pagination/index.vue | 88 +++ src/components/ParentView/index.vue | 3 + src/components/Process/approvalRecord.vue | 280 ++++++++ src/components/Process/processMeddle.vue | 207 ++++++ src/components/Process/submitVerify.vue | 421 +++++++++++ src/components/RightToolbar/index.vue | 102 +++ src/components/RoleSelect/index.vue | 250 +++++++ src/components/RuoYiDoc/index.vue | 13 + src/components/Screenfull/index.vue | 9 + src/components/SizeSelect/index.vue | 41 ++ src/components/SvgIcon/index.vue | 40 ++ src/components/TopNav/index.vue | 200 ++++++ src/components/TreeSelect/index.vue | 147 ++++ src/components/UserSelect/index.vue | 306 ++++++++ src/components/iFrame/index.vue | 26 + src/directive/index.ts | 9 + src/directive/permission/index.ts | 44 ++ src/enums/LanguageEnum.ts | 5 + src/enums/MenuTypeEnum.ts | 15 + src/enums/RespEnum.ts | 90 +++ src/enums/SideThemeEnum.ts | 4 + src/hooks/useDialog.ts | 31 + src/lang/en_US.ts | 85 +++ src/lang/index.ts | 33 + src/lang/zh_CN.ts | 85 +++ src/layout/components/AppMain.vue | 102 +++ src/layout/components/IframeToggle/index.vue | 28 + src/layout/components/InnerLink/index.vue | 15 + src/layout/components/Settings/index.vue | 238 +++++++ src/layout/components/Sidebar/Link.vue | 40 ++ src/layout/components/Sidebar/index.vue | 55 ++ .../components/SocialCallback/index.vue | 95 +++ src/layout/components/TagsView/ScrollPane.vue | 102 +++ src/layout/components/index.ts | 4 + src/layout/index.vue | 135 ++++ src/main.ts | 57 ++ src/permission.ts | 69 ++ src/plugins/auth.ts | 60 ++ src/plugins/cache.ts | 79 +++ src/plugins/modal.ts | 81 +++ src/plugins/svgicon.ts | 10 + src/plugins/tab.ts | 96 +++ src/router/index.ts | 211 ++++++ src/store/index.ts | 3 + src/store/modules/app.ts | 72 ++ src/store/modules/dict.ts | 65 ++ src/store/modules/notice.ts | 42 ++ src/store/modules/permission.ts | 221 ++++++ src/store/modules/settings.ts | 47 ++ src/store/modules/tagsView.ts | 233 ++++++ src/store/modules/user.ts | 91 +++ src/types/axios.d.ts | 9 + src/types/element.d.ts | 35 + src/types/env.d.ts | 27 + src/types/global.d.ts | 164 +++++ src/types/router.d.ts | 38 + src/utils/auth.ts | 9 + src/utils/createCustomNameComponent.tsx | 39 + src/utils/crypto.ts | 66 ++ src/utils/dict.ts | 27 + src/utils/dynamicTitle.ts | 14 + src/utils/errorCode.ts | 7 + src/utils/i18n.ts | 16 + src/utils/jsencrypt.ts | 21 + src/utils/permission.ts | 51 ++ src/utils/propTypes.ts | 26 + src/utils/scroll-to.ts | 65 ++ src/utils/sse.ts | 42 ++ src/utils/theme.ts | 52 ++ src/utils/validate.ts | 108 +++ src/utils/websocket.ts | 51 ++ src/views/demo/demo/index.vue | 254 +++++++ src/views/demo/tree/index.vue | 258 +++++++ src/views/error/401.vue | 76 ++ src/views/error/404.vue | 223 ++++++ src/views/monitor/admin/index.vue | 9 + src/views/monitor/cache/index.vue | 192 +++++ src/views/monitor/logininfor/index.vue | 208 ++++++ src/views/monitor/online/index.vue | 116 +++ src/views/monitor/operlog/index.vue | 260 +++++++ .../monitor/operlog/oper-info-dialog.vue | 111 +++ src/views/monitor/snailjob/index.vue | 9 + src/views/redirect/index.vue | 14 + src/views/system/client/index.vue | 316 +++++++++ src/views/system/config/index.vue | 261 +++++++ src/views/system/dept/index.vue | 319 +++++++++ src/views/system/dict/data.vue | 309 ++++++++ src/views/system/dict/index.vue | 246 +++++++ src/views/system/menu/index.vue | 410 +++++++++++ src/views/system/notice/index.vue | 243 +++++++ src/views/system/oss/config.vue | 334 +++++++++ src/views/system/oss/index.vue | 332 +++++++++ src/views/system/post/index.vue | 360 ++++++++++ src/views/system/role/authUser.vue | 160 +++++ src/views/system/role/index.vue | 503 +++++++++++++ src/views/system/role/selectUser.vue | 132 ++++ src/views/system/tenant/index.vue | 371 ++++++++++ src/views/system/tenantPackage/index.vue | 335 +++++++++ src/views/system/user/index.vue | 664 ++++++++++++++++++ src/views/system/user/profile/index.vue | 122 ++++ .../system/user/profile/onlineDevice.vue | 57 ++ src/views/system/user/profile/resetPwd.vue | 73 ++ src/views/system/user/profile/thirdParty.vue | 144 ++++ src/views/system/user/profile/userAvatar.vue | 182 +++++ src/views/system/user/profile/userInfo.vue | 69 ++ src/views/tool/gen/basicInfoForm.vue | 49 ++ src/views/tool/gen/editTable.vue | 198 ++++++ src/views/tool/gen/importTable.vue | 122 ++++ src/views/workflow/category/index.vue | 257 +++++++ src/views/workflow/leave/index.vue | 236 +++++++ src/views/workflow/leave/leaveEdit.vue | 308 ++++++++ .../workflow/processDefinition/design.vue | 46 ++ .../workflow/processDefinition/index.vue | 517 ++++++++++++++ src/views/workflow/processInstance/index.vue | 417 +++++++++++ src/views/workflow/task/allTaskWaiting.vue | 252 +++++++ src/views/workflow/task/myDocument.vue | 245 +++++++ src/views/workflow/task/taskCopyList.vue | 135 ++++ src/views/workflow/task/taskFinish.vue | 180 +++++ src/views/workflow/task/taskWaiting.vue | 179 +++++ 302 files changed, 22183 insertions(+) create mode 100644 src/App.vue create mode 100644 src/animate.ts create mode 100644 src/api/demo/demo/index.ts create mode 100644 src/api/demo/demo/types.ts create mode 100644 src/api/demo/tree/index.ts create mode 100644 src/api/demo/tree/types.ts create mode 100644 src/api/login.ts create mode 100644 src/api/menu.ts create mode 100644 src/api/monitor/cache/index.ts create mode 100644 src/api/monitor/cache/types.ts create mode 100644 src/api/monitor/loginInfo/index.ts create mode 100644 src/api/monitor/loginInfo/types.ts create mode 100644 src/api/monitor/online/index.ts create mode 100644 src/api/monitor/online/types.ts create mode 100644 src/api/monitor/operlog/index.ts create mode 100644 src/api/monitor/operlog/types.ts create mode 100644 src/api/system/client/index.ts create mode 100644 src/api/system/client/types.ts create mode 100644 src/api/system/config/index.ts create mode 100644 src/api/system/config/types.ts create mode 100644 src/api/system/dept/index.ts create mode 100644 src/api/system/dept/types.ts create mode 100644 src/api/system/dict/data/index.ts create mode 100644 src/api/system/dict/data/types.ts create mode 100644 src/api/system/dict/type/index.ts create mode 100644 src/api/system/dict/type/types.ts create mode 100644 src/api/system/menu/index.ts create mode 100644 src/api/system/menu/types.ts create mode 100644 src/api/system/notice/index.ts create mode 100644 src/api/system/notice/types.ts create mode 100644 src/api/system/oss/index.ts create mode 100644 src/api/system/oss/types.ts create mode 100644 src/api/system/ossConfig/index.ts create mode 100644 src/api/system/ossConfig/types.ts create mode 100644 src/api/system/post/index.ts create mode 100644 src/api/system/post/types.ts create mode 100644 src/api/system/role/index.ts create mode 100644 src/api/system/role/types.ts create mode 100644 src/api/system/social/auth.ts create mode 100644 src/api/system/tenant/index.ts create mode 100644 src/api/system/tenant/types.ts create mode 100644 src/api/system/tenantPackage/index.ts create mode 100644 src/api/system/tenantPackage/types.ts create mode 100644 src/api/system/user/types.ts create mode 100644 src/api/tool/gen/index.ts create mode 100644 src/api/tool/gen/types.ts create mode 100644 src/api/types.ts create mode 100644 src/api/workflow/category/index.ts create mode 100644 src/api/workflow/category/types.ts create mode 100644 src/api/workflow/definition/index.ts create mode 100644 src/api/workflow/definition/types.ts create mode 100644 src/api/workflow/instance/index.ts create mode 100644 src/api/workflow/instance/types.ts create mode 100644 src/api/workflow/leave/index.ts create mode 100644 src/api/workflow/leave/types.ts create mode 100644 src/api/workflow/task/index.ts create mode 100644 src/api/workflow/task/types.ts create mode 100644 src/api/workflow/workflowCommon/index.ts create mode 100644 src/api/workflow/workflowCommon/types.ts create mode 100644 src/assets/401_images/401.gif create mode 100644 src/assets/404_images/404.png create mode 100644 src/assets/404_images/404_cloud.png create mode 100644 src/assets/icons/svg/404.svg create mode 100644 src/assets/icons/svg/bug.svg create mode 100644 src/assets/icons/svg/build.svg create mode 100644 src/assets/icons/svg/button.svg create mode 100644 src/assets/icons/svg/caret-back.svg create mode 100644 src/assets/icons/svg/caret-forward.svg create mode 100644 src/assets/icons/svg/cascader.svg create mode 100644 src/assets/icons/svg/category.svg create mode 100644 src/assets/icons/svg/chart.svg create mode 100644 src/assets/icons/svg/checkbox.svg create mode 100644 src/assets/icons/svg/clipboard.svg create mode 100644 src/assets/icons/svg/code.svg create mode 100644 src/assets/icons/svg/color.svg create mode 100644 src/assets/icons/svg/company.svg create mode 100644 src/assets/icons/svg/component.svg create mode 100644 src/assets/icons/svg/dashboard.svg create mode 100644 src/assets/icons/svg/date-range.svg create mode 100644 src/assets/icons/svg/date.svg create mode 100644 src/assets/icons/svg/dict.svg create mode 100644 src/assets/icons/svg/documentation.svg create mode 100644 src/assets/icons/svg/download.svg create mode 100644 src/assets/icons/svg/drag.svg create mode 100644 src/assets/icons/svg/druid.svg create mode 100644 src/assets/icons/svg/edit.svg create mode 100644 src/assets/icons/svg/education.svg create mode 100644 src/assets/icons/svg/email.svg create mode 100644 src/assets/icons/svg/example.svg create mode 100644 src/assets/icons/svg/excel.svg create mode 100644 src/assets/icons/svg/exit-fullscreen.svg create mode 100644 src/assets/icons/svg/eye-open.svg create mode 100644 src/assets/icons/svg/eye.svg create mode 100644 src/assets/icons/svg/finish.svg create mode 100644 src/assets/icons/svg/form.svg create mode 100644 src/assets/icons/svg/fullscreen.svg create mode 100644 src/assets/icons/svg/gitee.svg create mode 100644 src/assets/icons/svg/github.svg create mode 100644 src/assets/icons/svg/guide.svg create mode 100644 src/assets/icons/svg/icon.svg create mode 100644 src/assets/icons/svg/input.svg create mode 100644 src/assets/icons/svg/international.svg create mode 100644 src/assets/icons/svg/job.svg create mode 100644 src/assets/icons/svg/language.svg create mode 100644 src/assets/icons/svg/link.svg create mode 100644 src/assets/icons/svg/list.svg create mode 100644 src/assets/icons/svg/lock.svg create mode 100644 src/assets/icons/svg/log.svg create mode 100644 src/assets/icons/svg/logininfor.svg create mode 100644 src/assets/icons/svg/maxkey.svg create mode 100644 src/assets/icons/svg/message.svg create mode 100644 src/assets/icons/svg/model.svg create mode 100644 src/assets/icons/svg/money.svg create mode 100644 src/assets/icons/svg/monitor.svg create mode 100644 src/assets/icons/svg/my-copy.svg create mode 100644 src/assets/icons/svg/my-task.svg create mode 100644 src/assets/icons/svg/nested.svg create mode 100644 src/assets/icons/svg/number.svg create mode 100644 src/assets/icons/svg/online.svg create mode 100644 src/assets/icons/svg/password.svg create mode 100644 src/assets/icons/svg/pdf.svg create mode 100644 src/assets/icons/svg/people.svg create mode 100644 src/assets/icons/svg/peoples.svg create mode 100644 src/assets/icons/svg/phone.svg create mode 100644 src/assets/icons/svg/post.svg create mode 100644 src/assets/icons/svg/process-definition.svg create mode 100644 src/assets/icons/svg/qq.svg create mode 100644 src/assets/icons/svg/question.svg create mode 100644 src/assets/icons/svg/radio.svg create mode 100644 src/assets/icons/svg/rate.svg create mode 100644 src/assets/icons/svg/redis-list.svg create mode 100644 src/assets/icons/svg/redis.svg create mode 100644 src/assets/icons/svg/row.svg create mode 100644 src/assets/icons/svg/search.svg create mode 100644 src/assets/icons/svg/select.svg create mode 100644 src/assets/icons/svg/server.svg create mode 100644 src/assets/icons/svg/shopping.svg create mode 100644 src/assets/icons/svg/size.svg create mode 100644 src/assets/icons/svg/skill.svg create mode 100644 src/assets/icons/svg/slider.svg create mode 100644 src/assets/icons/svg/star.svg create mode 100644 src/assets/icons/svg/swagger.svg create mode 100644 src/assets/icons/svg/switch.svg create mode 100644 src/assets/icons/svg/system.svg create mode 100644 src/assets/icons/svg/tab.svg create mode 100644 src/assets/icons/svg/table.svg create mode 100644 src/assets/icons/svg/textarea.svg create mode 100644 src/assets/icons/svg/theme.svg create mode 100644 src/assets/icons/svg/time-range.svg create mode 100644 src/assets/icons/svg/time.svg create mode 100644 src/assets/icons/svg/tool.svg create mode 100644 src/assets/icons/svg/topiam.svg create mode 100644 src/assets/icons/svg/tree-table.svg create mode 100644 src/assets/icons/svg/tree.svg create mode 100644 src/assets/icons/svg/upload.svg create mode 100644 src/assets/icons/svg/user.svg create mode 100644 src/assets/icons/svg/validCode.svg create mode 100644 src/assets/icons/svg/waiting.svg create mode 100644 src/assets/icons/svg/wechat.svg create mode 100644 src/assets/icons/svg/workflow.svg create mode 100644 src/assets/icons/svg/zip.svg create mode 100644 src/assets/images/dark.svg create mode 100644 src/assets/images/light.svg create mode 100644 src/assets/images/profile.jpg create mode 100644 src/assets/logo/logo.png create mode 100644 src/assets/styles/btn.scss create mode 100644 src/assets/styles/element-ui.scss create mode 100644 src/assets/styles/mixin.scss create mode 100644 src/assets/styles/sidebar.scss create mode 100644 src/assets/styles/transition.scss create mode 100644 src/assets/styles/variables.module.scss create mode 100644 src/components/Breadcrumb/index.vue create mode 100644 src/components/BuildCode/index.vue create mode 100644 src/components/BuildCode/render.vue create mode 100644 src/components/DictTag/index.vue create mode 100644 src/components/Editor/index.vue create mode 100644 src/components/FileUpload/index.vue create mode 100644 src/components/Hamburger/index.vue create mode 100644 src/components/IconSelect/index.vue create mode 100644 src/components/IconSelect/requireIcons.ts create mode 100644 src/components/ImagePreview/index.vue create mode 100644 src/components/ImageUpload/index.vue create mode 100644 src/components/LangSelect/index.vue create mode 100644 src/components/Pagination/index.vue create mode 100644 src/components/ParentView/index.vue create mode 100644 src/components/Process/approvalRecord.vue create mode 100644 src/components/Process/processMeddle.vue create mode 100644 src/components/Process/submitVerify.vue create mode 100644 src/components/RightToolbar/index.vue create mode 100644 src/components/RoleSelect/index.vue create mode 100644 src/components/RuoYiDoc/index.vue create mode 100644 src/components/Screenfull/index.vue create mode 100644 src/components/SizeSelect/index.vue create mode 100644 src/components/SvgIcon/index.vue create mode 100644 src/components/TopNav/index.vue create mode 100644 src/components/TreeSelect/index.vue create mode 100644 src/components/UserSelect/index.vue create mode 100644 src/components/iFrame/index.vue create mode 100644 src/directive/index.ts create mode 100644 src/directive/permission/index.ts create mode 100644 src/enums/LanguageEnum.ts create mode 100644 src/enums/MenuTypeEnum.ts create mode 100644 src/enums/RespEnum.ts create mode 100644 src/enums/SideThemeEnum.ts create mode 100644 src/hooks/useDialog.ts create mode 100644 src/lang/en_US.ts create mode 100644 src/lang/index.ts create mode 100644 src/lang/zh_CN.ts create mode 100644 src/layout/components/AppMain.vue create mode 100644 src/layout/components/IframeToggle/index.vue create mode 100644 src/layout/components/InnerLink/index.vue create mode 100644 src/layout/components/Settings/index.vue create mode 100644 src/layout/components/Sidebar/Link.vue create mode 100644 src/layout/components/Sidebar/index.vue create mode 100644 src/layout/components/SocialCallback/index.vue create mode 100644 src/layout/components/TagsView/ScrollPane.vue create mode 100644 src/layout/components/index.ts create mode 100644 src/layout/index.vue create mode 100644 src/main.ts create mode 100644 src/permission.ts create mode 100644 src/plugins/auth.ts create mode 100644 src/plugins/cache.ts create mode 100644 src/plugins/modal.ts create mode 100644 src/plugins/svgicon.ts create mode 100644 src/plugins/tab.ts create mode 100644 src/router/index.ts create mode 100644 src/store/index.ts create mode 100644 src/store/modules/app.ts create mode 100644 src/store/modules/dict.ts create mode 100644 src/store/modules/notice.ts create mode 100644 src/store/modules/permission.ts create mode 100644 src/store/modules/settings.ts create mode 100644 src/store/modules/tagsView.ts create mode 100644 src/store/modules/user.ts create mode 100644 src/types/axios.d.ts create mode 100644 src/types/element.d.ts create mode 100644 src/types/env.d.ts create mode 100644 src/types/global.d.ts create mode 100644 src/types/router.d.ts create mode 100644 src/utils/auth.ts create mode 100644 src/utils/createCustomNameComponent.tsx create mode 100644 src/utils/crypto.ts create mode 100644 src/utils/dict.ts create mode 100644 src/utils/dynamicTitle.ts create mode 100644 src/utils/errorCode.ts create mode 100644 src/utils/i18n.ts create mode 100644 src/utils/jsencrypt.ts create mode 100644 src/utils/permission.ts create mode 100644 src/utils/propTypes.ts create mode 100644 src/utils/scroll-to.ts create mode 100644 src/utils/sse.ts create mode 100644 src/utils/theme.ts create mode 100644 src/utils/validate.ts create mode 100644 src/utils/websocket.ts create mode 100644 src/views/demo/demo/index.vue create mode 100644 src/views/demo/tree/index.vue create mode 100644 src/views/error/401.vue create mode 100644 src/views/error/404.vue create mode 100644 src/views/monitor/admin/index.vue create mode 100644 src/views/monitor/cache/index.vue create mode 100644 src/views/monitor/logininfor/index.vue create mode 100644 src/views/monitor/online/index.vue create mode 100644 src/views/monitor/operlog/index.vue create mode 100644 src/views/monitor/operlog/oper-info-dialog.vue create mode 100644 src/views/monitor/snailjob/index.vue create mode 100644 src/views/redirect/index.vue create mode 100644 src/views/system/client/index.vue create mode 100644 src/views/system/config/index.vue create mode 100644 src/views/system/dept/index.vue create mode 100644 src/views/system/dict/data.vue create mode 100644 src/views/system/dict/index.vue create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/notice/index.vue create mode 100644 src/views/system/oss/config.vue create mode 100644 src/views/system/oss/index.vue create mode 100644 src/views/system/post/index.vue create mode 100644 src/views/system/role/authUser.vue create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/role/selectUser.vue create mode 100644 src/views/system/tenant/index.vue create mode 100644 src/views/system/tenantPackage/index.vue create mode 100644 src/views/system/user/index.vue create mode 100644 src/views/system/user/profile/index.vue create mode 100644 src/views/system/user/profile/onlineDevice.vue create mode 100644 src/views/system/user/profile/resetPwd.vue create mode 100644 src/views/system/user/profile/thirdParty.vue create mode 100644 src/views/system/user/profile/userAvatar.vue create mode 100644 src/views/system/user/profile/userInfo.vue create mode 100644 src/views/tool/gen/basicInfoForm.vue create mode 100644 src/views/tool/gen/editTable.vue create mode 100644 src/views/tool/gen/importTable.vue create mode 100644 src/views/workflow/category/index.vue create mode 100644 src/views/workflow/leave/index.vue create mode 100644 src/views/workflow/leave/leaveEdit.vue create mode 100644 src/views/workflow/processDefinition/design.vue create mode 100644 src/views/workflow/processDefinition/index.vue create mode 100644 src/views/workflow/processInstance/index.vue create mode 100644 src/views/workflow/task/allTaskWaiting.vue create mode 100644 src/views/workflow/task/myDocument.vue create mode 100644 src/views/workflow/task/taskCopyList.vue create mode 100644 src/views/workflow/task/taskFinish.vue create mode 100644 src/views/workflow/task/taskWaiting.vue diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..66dbed6 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/animate.ts b/src/animate.ts new file mode 100644 index 0000000..7a23df8 --- /dev/null +++ b/src/animate.ts @@ -0,0 +1,48 @@ +// 前缀 +const animatePrefix = 'animate__animated '; +// 开启随机动画 随机动画值 +const animateList: string[] = [ + animatePrefix + 'animate__pulse', + animatePrefix + 'animate__rubberBand', + animatePrefix + 'animate__bounceIn', + animatePrefix + 'animate__bounceInLeft', + animatePrefix + 'animate__fadeIn', + animatePrefix + 'animate__fadeInLeft', + animatePrefix + 'animate__fadeInDown', + animatePrefix + 'animate__fadeInUp', + animatePrefix + 'animate__flipInX', + animatePrefix + 'animate__lightSpeedInLeft', + animatePrefix + 'animate__rotateInDownLeft', + animatePrefix + 'animate__rollIn', + animatePrefix + 'animate__rotateInDownLeft', + animatePrefix + 'animate__zoomIn', + animatePrefix + 'animate__zoomInDown', + animatePrefix + 'animate__slideInLeft', + animatePrefix + 'animate__lightSpeedIn' +]; +// 关闭随机动画后的默认效果 +const defaultAnimate = animatePrefix + 'animate__fadeIn'; +// 搜索隐藏显示动画 +const searchAnimate = { + enter: '', + leave: '' +}; + +// 菜单搜索动画 +const menuSearchAnimate = { + enter: animatePrefix + 'animate__fadeIn', + leave: animatePrefix + 'animate__fadeOut' +}; +// logo动画 +const logoAnimate = { + enter: animatePrefix + 'animate__fadeIn', + leave: animatePrefix + 'animate__fadeOut' +}; + +export default { + animateList, + defaultAnimate, + searchAnimate, + menuSearchAnimate, + logoAnimate +}; diff --git a/src/api/demo/demo/index.ts b/src/api/demo/demo/index.ts new file mode 100644 index 0000000..7441720 --- /dev/null +++ b/src/api/demo/demo/index.ts @@ -0,0 +1,62 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DemoVO, DemoForm, DemoQuery } from '@/api/demo/demo/types'; + +/** + * 查询测试单列表 + * @param query + * @returns {*} + */ +export const listDemo = (query?: DemoQuery): AxiosPromise => { + return request({ + url: '/demo/demo/list', + method: 'get', + params: query + }); +}; + +/** + * 查询测试单详细 + * @param id + */ +export const getDemo = (id: string | number): AxiosPromise => { + return request({ + url: '/demo/demo/' + id, + method: 'get' + }); +}; + +/** + * 新增测试单 + * @param data + */ +export const addDemo = (data: DemoForm) => { + return request({ + url: '/demo/demo', + method: 'post', + data: data + }); +}; + +/** + * 修改测试单 + * @param data + */ +export const updateDemo = (data: DemoForm) => { + return request({ + url: '/demo/demo', + method: 'put', + data: data + }); +}; + +/** + * 删除测试单 + * @param id + */ +export const delDemo = (id: string | number | Array) => { + return request({ + url: '/demo/demo/' + id, + method: 'delete' + }); +}; diff --git a/src/api/demo/demo/types.ts b/src/api/demo/demo/types.ts new file mode 100644 index 0000000..ea51d32 --- /dev/null +++ b/src/api/demo/demo/types.ts @@ -0,0 +1,90 @@ +export interface DemoVO { + /** + * 主键 + */ + id: string | number; + + /** + * 部门id + */ + deptId: string | number; + + /** + * 用户id + */ + userId: string | number; + + /** + * 排序号 + */ + orderNum: number; + + /** + * key键 + */ + testKey: string; + + /** + * 值 + */ + value: string; +} + +export interface DemoForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 部门id + */ + deptId?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 排序号 + */ + orderNum?: number; + + /** + * key键 + */ + testKey?: string; + + /** + * 值 + */ + value?: string; +} + +export interface DemoQuery extends PageQuery { + /** + * 部门id + */ + deptId?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 排序号 + */ + orderNum?: number; + + /** + * key键 + */ + testKey?: string; + + /** + * 值 + */ + value?: string; +} diff --git a/src/api/demo/tree/index.ts b/src/api/demo/tree/index.ts new file mode 100644 index 0000000..562deb6 --- /dev/null +++ b/src/api/demo/tree/index.ts @@ -0,0 +1,62 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { TreeVO, TreeForm, TreeQuery } from '@/api/demo/tree/types'; + +/** + * 查询测试树列表 + * @param query + * @returns {*} + */ +export const listTree = (query?: TreeQuery): AxiosPromise => { + return request({ + url: '/demo/tree/list', + method: 'get', + params: query + }); +}; + +/** + * 查询测试树详细 + * @param id + */ +export const getTree = (id: string | number): AxiosPromise => { + return request({ + url: '/demo/tree/' + id, + method: 'get' + }); +}; + +/** + * 新增测试树 + * @param data + */ +export const addTree = (data: TreeForm) => { + return request({ + url: '/demo/tree', + method: 'post', + data: data + }); +}; + +/** + * 修改测试树 + * @param data + */ +export const updateTree = (data: TreeForm) => { + return request({ + url: '/demo/tree', + method: 'put', + data: data + }); +}; + +/** + * 删除测试树 + * @param id + */ +export const delTree = (id: string | number | Array) => { + return request({ + url: '/demo/tree/' + id, + method: 'delete' + }); +}; diff --git a/src/api/demo/tree/types.ts b/src/api/demo/tree/types.ts new file mode 100644 index 0000000..e164d8b --- /dev/null +++ b/src/api/demo/tree/types.ts @@ -0,0 +1,80 @@ +export interface TreeVO { + /** + * 主键 + */ + id: string | number; + + /** + * 父id + */ + parentId: string | number; + + /** + * 部门id + */ + deptId: string | number; + + /** + * 用户id + */ + userId: string | number; + + /** + * 值 + */ + treeName: string; + + /** + * 子对象 + */ + children: TreeVO[]; +} + +export interface TreeForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 父id + */ + parentId?: string | number; + + /** + * 部门id + */ + deptId?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 值 + */ + treeName?: string; +} + +export interface TreeQuery { + /** + * 父id + */ + parentId?: string | number; + + /** + * 部门id + */ + deptId?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 值 + */ + treeName?: string; +} diff --git a/src/api/login.ts b/src/api/login.ts new file mode 100644 index 0000000..35e6a4e --- /dev/null +++ b/src/api/login.ts @@ -0,0 +1,113 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { LoginData, LoginResult, VerifyCodeResult, TenantInfo } from './types'; +import { UserInfo } from '@/api/system/user/types'; + +// pc端固定客户端授权id +const clientId = import.meta.env.VITE_APP_CLIENT_ID; + +/** + * @param data {LoginData} + * @returns + */ +export function login(data: LoginData): AxiosPromise { + const params = { + ...data, + clientId: data.clientId || clientId, + grantType: data.grantType || 'password' + }; + return request({ + url: '/auth/login', + headers: { + isToken: false, + isEncrypt: true, + repeatSubmit: false + }, + method: 'post', + data: params + }); +} + +// 注册方法 +export function register(data: any) { + const params = { + ...data, + clientId: clientId, + grantType: 'password' + }; + return request({ + url: '/auth/register', + headers: { + isToken: false, + isEncrypt: true, + repeatSubmit: false + }, + method: 'post', + data: params + }); +} + +/** + * 注销 + */ +export function logout() { + if (import.meta.env.VITE_APP_SSE === 'true') { + request({ + url: '/resource/sse/close', + method: 'get' + }); + } + return request({ + url: '/auth/logout', + method: 'post' + }); +} + +/** + * 获取验证码 + */ +export function getCodeImg(): AxiosPromise { + return request({ + url: '/auth/code', + headers: { + isToken: false + }, + method: 'get', + timeout: 20000 + }); +} + +/** + * 第三方登录 + */ +export function callback(data: LoginData): AxiosPromise { + const LoginData = { + ...data, + clientId: clientId, + grantType: 'social' + }; + return request({ + url: '/auth/social/callback', + method: 'post', + data: LoginData + }); +} + +// 获取用户详细信息 +export function getInfo(): AxiosPromise { + return request({ + url: '/system/user/getInfo', + method: 'get' + }); +} + +// 获取租户列表 +export function getTenantList(isToken: boolean): AxiosPromise { + return request({ + url: '/auth/tenant/list', + headers: { + isToken: isToken + }, + method: 'get' + }); +} diff --git a/src/api/menu.ts b/src/api/menu.ts new file mode 100644 index 0000000..a3ae80e --- /dev/null +++ b/src/api/menu.ts @@ -0,0 +1,11 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { RouteRecordRaw } from 'vue-router'; + +// 获取路由 +export function getRouters(): AxiosPromise { + return request({ + url: '/system/menu/getRouters', + method: 'get' + }); +} diff --git a/src/api/monitor/cache/index.ts b/src/api/monitor/cache/index.ts new file mode 100644 index 0000000..e45d6fb --- /dev/null +++ b/src/api/monitor/cache/index.ts @@ -0,0 +1,59 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { CacheVO } from './types'; + +// 查询缓存详细 +export function getCache(): AxiosPromise { + return request({ + url: '/monitor/cache', + method: 'get' + }); +} + +// 查询缓存名称列表 +export function listCacheName() { + return request({ + url: '/monitor/cache/getNames', + method: 'get' + }); +} + +// 查询缓存键名列表 +export function listCacheKey(cacheName: string) { + return request({ + url: '/monitor/cache/getKeys/' + cacheName, + method: 'get' + }); +} + +// 查询缓存内容 +export function getCacheValue(cacheName: string, cacheKey: string) { + return request({ + url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, + method: 'get' + }); +} + +// 清理指定名称缓存 +export function clearCacheName(cacheName: string) { + return request({ + url: '/monitor/cache/clearCacheName/' + cacheName, + method: 'delete' + }); +} + +// 清理指定键名缓存 +export function clearCacheKey(cacheName: string, cacheKey: string) { + return request({ + url: '/monitor/cache/clearCacheKey/' + cacheName + '/' + cacheKey, + method: 'delete' + }); +} + +// 清理全部缓存 +export function clearCacheAll() { + return request({ + url: '/monitor/cache/clearCacheAll', + method: 'delete' + }); +} diff --git a/src/api/monitor/cache/types.ts b/src/api/monitor/cache/types.ts new file mode 100644 index 0000000..4017b65 --- /dev/null +++ b/src/api/monitor/cache/types.ts @@ -0,0 +1,7 @@ +export interface CacheVO { + commandStats: Array<{ name: string; value: string }>; + + dbSize: number; + + info: { [key: string]: string }; +} diff --git a/src/api/monitor/loginInfo/index.ts b/src/api/monitor/loginInfo/index.ts new file mode 100644 index 0000000..f8877c9 --- /dev/null +++ b/src/api/monitor/loginInfo/index.ts @@ -0,0 +1,36 @@ +import request from '@/utils/request'; +import { LoginInfoQuery, LoginInfoVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询登录日志列表 +export function list(query: LoginInfoQuery): AxiosPromise { + return request({ + url: '/monitor/logininfor/list', + method: 'get', + params: query + }); +} + +// 删除登录日志 +export function delLoginInfo(infoId: string | number | Array) { + return request({ + url: '/monitor/logininfor/' + infoId, + method: 'delete' + }); +} + +// 解锁用户登录状态 +export function unlockLoginInfo(userName: string | Array) { + return request({ + url: '/monitor/logininfor/unlock/' + userName, + method: 'get' + }); +} + +// 清空登录日志 +export function cleanLoginInfo() { + return request({ + url: '/monitor/logininfor/clean', + method: 'delete' + }); +} diff --git a/src/api/monitor/loginInfo/types.ts b/src/api/monitor/loginInfo/types.ts new file mode 100644 index 0000000..202c779 --- /dev/null +++ b/src/api/monitor/loginInfo/types.ts @@ -0,0 +1,20 @@ +export interface LoginInfoVO { + infoId: string | number; + tenantId: string | number; + userName: string; + status: string; + ipaddr: string; + loginLocation: string; + browser: string; + os: string; + msg: string; + loginTime: string; +} + +export interface LoginInfoQuery extends PageQuery { + ipaddr: string; + userName: string; + status: string; + orderByColumn: string; + isAsc: string; +} diff --git a/src/api/monitor/online/index.ts b/src/api/monitor/online/index.ts new file mode 100644 index 0000000..5b3221c --- /dev/null +++ b/src/api/monitor/online/index.ts @@ -0,0 +1,36 @@ +import request from '@/utils/request'; +import { OnlineQuery, OnlineVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询在线用户列表 +export function list(query: OnlineQuery): AxiosPromise { + return request({ + url: '/monitor/online/list', + method: 'get', + params: query + }); +} + +// 强退用户 +export function forceLogout(tokenId: string) { + return request({ + url: '/monitor/online/' + tokenId, + method: 'delete' + }); +} + +// 获取当前用户登录在线设备 +export function getOnline() { + return request({ + url: '/monitor/online', + method: 'get' + }); +} + +// 删除当前在线设备 +export function delOnline(tokenId: string) { + return request({ + url: '/monitor/online/myself/' + tokenId, + method: 'delete' + }); +} diff --git a/src/api/monitor/online/types.ts b/src/api/monitor/online/types.ts new file mode 100644 index 0000000..8c0ec27 --- /dev/null +++ b/src/api/monitor/online/types.ts @@ -0,0 +1,15 @@ +export interface OnlineQuery extends PageQuery { + ipaddr: string; + userName: string; +} + +export interface OnlineVO extends BaseEntity { + tokenId: string; + deptName: string; + userName: string; + ipaddr: string; + loginLocation: string; + browser: string; + os: string; + loginTime: number; +} diff --git a/src/api/monitor/operlog/index.ts b/src/api/monitor/operlog/index.ts new file mode 100644 index 0000000..7ac3453 --- /dev/null +++ b/src/api/monitor/operlog/index.ts @@ -0,0 +1,28 @@ +import request from '@/utils/request'; +import { OperLogQuery, OperLogVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询操作日志列表 +export function list(query: OperLogQuery): AxiosPromise { + return request({ + url: '/monitor/operlog/list', + method: 'get', + params: query + }); +} + +// 删除操作日志 +export function delOperlog(operId: string | number | Array) { + return request({ + url: '/monitor/operlog/' + operId, + method: 'delete' + }); +} + +// 清空操作日志 +export function cleanOperlog() { + return request({ + url: '/monitor/operlog/clean', + method: 'delete' + }); +} diff --git a/src/api/monitor/operlog/types.ts b/src/api/monitor/operlog/types.ts new file mode 100644 index 0000000..10f65c7 --- /dev/null +++ b/src/api/monitor/operlog/types.ts @@ -0,0 +1,53 @@ +export interface OperLogQuery extends PageQuery { + operIp: string; + title: string; + operName: string; + businessType: string; + status: string; + orderByColumn: string; + isAsc: string; +} + +export interface OperLogVO extends BaseEntity { + operId: string | number; + tenantId: string; + title: string; + businessType: number; + businessTypes: number[] | undefined; + method: string; + requestMethod: string; + operatorType: number; + operName: string; + deptName: string; + operUrl: string; + operIp: string; + operLocation: string; + operParam: string; + jsonResult: string; + status: number; + errorMsg: string; + operTime: string; + costTime: number; +} + +export interface OperLogForm { + operId: number | string | undefined; + tenantId: string | number | undefined; + title: string; + businessType: number; + businessTypes: number[] | undefined; + method: string; + requestMethod: string; + operatorType: number; + operName: string; + deptName: string; + operUrl: string; + operIp: string; + operLocation: string; + operParam: string; + jsonResult: string; + status: number; + errorMsg: string; + operTime: string; + costTime: number; +} diff --git a/src/api/system/client/index.ts b/src/api/system/client/index.ts new file mode 100644 index 0000000..6b302b0 --- /dev/null +++ b/src/api/system/client/index.ts @@ -0,0 +1,80 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ClientVO, ClientForm, ClientQuery } from '@/api/system/client/types'; + +/** + * 查询客户端管理列表 + * @param query + * @returns {*} + */ + +export const listClient = (query?: ClientQuery): AxiosPromise => { + return request({ + url: '/system/client/list', + method: 'get', + params: query + }); +}; + +/** + * 查询客户端管理详细 + * @param id + */ +export const getClient = (id: string | number): AxiosPromise => { + return request({ + url: '/system/client/' + id, + method: 'get' + }); +}; + +/** + * 新增客户端管理 + * @param data + */ +export const addClient = (data: ClientForm) => { + return request({ + url: '/system/client', + method: 'post', + data: data + }); +}; + +/** + * 修改客户端管理 + * @param data + */ +export const updateClient = (data: ClientForm) => { + return request({ + url: '/system/client', + method: 'put', + data: data + }); +}; + +/** + * 删除客户端管理 + * @param id + */ +export const delClient = (id: string | number | Array) => { + return request({ + url: '/system/client/' + id, + method: 'delete' + }); +}; + +/** + * 状态修改 + * @param clientId 客户端id + * @param status 状态 + */ +export function changeStatus(clientId: string, status: string) { + const data = { + clientId, + status + }; + return request({ + url: '/system/client/changeStatus', + method: 'put', + data: data + }); +} diff --git a/src/api/system/client/types.ts b/src/api/system/client/types.ts new file mode 100644 index 0000000..142118d --- /dev/null +++ b/src/api/system/client/types.ts @@ -0,0 +1,135 @@ +export interface ClientVO { + /** + * id + */ + id: string | number; + + /** + * 客户端id + */ + clientId: string; + + /** + * 客户端key + */ + clientKey: string; + + /** + * 客户端秘钥 + */ + clientSecret: string; + + /** + * 授权类型 + */ + grantTypeList: string[]; + + /** + * 设备类型 + */ + deviceType: string; + + /** + * token活跃超时时间 + */ + activeTimeout: number; + + /** + * token固定超时 + */ + timeout: number; + + /** + * 状态(0正常 1停用) + */ + status: string; +} + +export interface ClientForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 客户端id + */ + clientId?: string | number; + + /** + * 客户端key + */ + clientKey?: string; + + /** + * 客户端秘钥 + */ + clientSecret?: string; + + /** + * 授权类型 + */ + grantTypeList?: string[]; + + /** + * 设备类型 + */ + deviceType?: string; + + /** + * token活跃超时时间 + */ + activeTimeout?: number; + + /** + * token固定超时 + */ + timeout?: number; + + /** + * 状态(0正常 1停用) + */ + status?: string; +} + +export interface ClientQuery extends PageQuery { + /** + * 客户端id + */ + clientId?: string | number; + + /** + * 客户端key + */ + clientKey?: string; + + /** + * 客户端秘钥 + */ + clientSecret?: string; + + /** + * 授权类型 + */ + grantType?: string; + + /** + * 设备类型 + */ + deviceType?: string; + + /** + * token活跃超时时间 + */ + activeTimeout?: number; + + /** + * token固定超时 + */ + timeout?: number; + + /** + * 状态(0正常 1停用) + */ + status?: string; +} diff --git a/src/api/system/config/index.ts b/src/api/system/config/index.ts new file mode 100644 index 0000000..1e4842d --- /dev/null +++ b/src/api/system/config/index.ts @@ -0,0 +1,74 @@ +import request from '@/utils/request'; +import { ConfigForm, ConfigQuery, ConfigVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询参数列表 +export function listConfig(query: ConfigQuery): AxiosPromise { + return request({ + url: '/system/config/list', + method: 'get', + params: query + }); +} + +// 查询参数详细 +export function getConfig(configId: string | number): AxiosPromise { + return request({ + url: '/system/config/' + configId, + method: 'get' + }); +} + +// 根据参数键名查询参数值 +export function getConfigKey(configKey: string): AxiosPromise { + return request({ + url: '/system/config/configKey/' + configKey, + method: 'get' + }); +} + +// 新增参数配置 +export function addConfig(data: ConfigForm) { + return request({ + url: '/system/config', + method: 'post', + data: data + }); +} + +// 修改参数配置 +export function updateConfig(data: ConfigForm) { + return request({ + url: '/system/config', + method: 'put', + data: data + }); +} + +// 修改参数配置 +export function updateConfigByKey(key: string, value: any) { + return request({ + url: '/system/config/updateByKey', + method: 'put', + data: { + configKey: key, + configValue: value + } + }); +} + +// 删除参数配置 +export function delConfig(configId: string | number | Array) { + return request({ + url: '/system/config/' + configId, + method: 'delete' + }); +} + +// 刷新参数缓存 +export function refreshCache() { + return request({ + url: '/system/config/refreshCache', + method: 'delete' + }); +} diff --git a/src/api/system/config/types.ts b/src/api/system/config/types.ts new file mode 100644 index 0000000..b68f073 --- /dev/null +++ b/src/api/system/config/types.ts @@ -0,0 +1,23 @@ +export interface ConfigVO extends BaseEntity { + configId: number | string; + configName: string; + configKey: string; + configValue: string; + configType: string; + remark: string; +} + +export interface ConfigForm { + configId: number | string | undefined; + configName: string; + configKey: string; + configValue: string; + configType: string; + remark: string; +} + +export interface ConfigQuery extends PageQuery { + configName: string; + configKey: string; + configType: string; +} diff --git a/src/api/system/dept/index.ts b/src/api/system/dept/index.ts new file mode 100644 index 0000000..f16cb2c --- /dev/null +++ b/src/api/system/dept/index.ts @@ -0,0 +1,73 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import {DeptForm, DeptQuery, DeptTreeVO, DeptVO} from './types'; + +// 查询部门列表 +export const listDept = (query?: DeptQuery) => { + return request({ + url: '/system/dept/list', + method: 'get', + params: query + }); +}; + +/** + * 通过deptIds查询部门 + * @param deptIds + */ +export const optionSelect = (deptIds: (number | string)[]): AxiosPromise => { + return request({ + url: '/system/dept/optionselect?deptIds=' + deptIds, + method: 'get' + }); +}; + +// 查询部门列表(排除节点) +export const listDeptExcludeChild = (deptId: string | number): AxiosPromise => { + return request({ + url: '/system/dept/list/exclude/' + deptId, + method: 'get' + }); +}; + +// 查询部门详细 +export const getDept = (deptId: string | number): AxiosPromise => { + return request({ + url: '/system/dept/' + deptId, + method: 'get' + }); +}; + +// 查询部门下拉树结构 +export const treeselect = (): AxiosPromise => { + return request({ + url: '/system/dept/treeselect', + method: 'get' + }); +}; + +// 新增部门 +export const addDept = (data: DeptForm) => { + return request({ + url: '/system/dept', + method: 'post', + data: data + }); +}; + +// 修改部门 +export const updateDept = (data: DeptForm) => { + return request({ + url: '/system/dept', + method: 'put', + data: data + }); +}; + +// 删除部门 +export const delDept = (deptId: number | string) => { + return request({ + url: '/system/dept/' + deptId, + method: 'delete' + }); +}; diff --git a/src/api/system/dept/types.ts b/src/api/system/dept/types.ts new file mode 100644 index 0000000..adaefd2 --- /dev/null +++ b/src/api/system/dept/types.ts @@ -0,0 +1,60 @@ +/** + * 部门查询参数 + */ +export interface DeptQuery extends PageQuery { + deptName?: string; + deptCategory?: string; + status?: number; +} + +/** + * 部门类型 + */ +export interface DeptVO extends BaseEntity { + id: number | string; + parentName: string; + parentId: number | string; + children: DeptVO[]; + deptId: number | string; + deptName: string; + deptCategory: string; + orderNum: number; + leader: string; + phone: string; + email: string; + status: string; + delFlag: string; + ancestors: string; + menuId: string | number; +} + +/** + * 部门类型 + */ +export interface DeptTreeVO extends BaseEntity { + id: number | string; + label: string; + parentId: number | string; + weight: number; + children: DeptTreeVO[]; + disabled: boolean; +} + +/** + * 部门表单类型 + */ +export interface DeptForm { + parentName?: string; + parentId?: number | string; + children?: DeptForm[]; + deptId?: number | string; + deptName?: string; + deptCategory?: string; + orderNum?: number; + leader?: string; + phone?: string; + email?: string; + status?: string; + delFlag?: string; + ancestors?: string; +} diff --git a/src/api/system/dict/data/index.ts b/src/api/system/dict/data/index.ts new file mode 100644 index 0000000..7692abc --- /dev/null +++ b/src/api/system/dict/data/index.ts @@ -0,0 +1,53 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DictDataForm, DictDataQuery, DictDataVO } from './types'; +// 根据字典类型查询字典数据信息 +export function getDicts(dictType: string): AxiosPromise { + return request({ + url: '/system/dict/data/type/' + dictType, + method: 'get' + }); +} + +// 查询字典数据列表 +export function listData(query: DictDataQuery): AxiosPromise { + return request({ + url: '/system/dict/data/list', + method: 'get', + params: query + }); +} + +// 查询字典数据详细 +export function getData(dictCode: string | number): AxiosPromise { + return request({ + url: '/system/dict/data/' + dictCode, + method: 'get' + }); +} + +// 新增字典数据 +export function addData(data: DictDataForm) { + return request({ + url: '/system/dict/data', + method: 'post', + data: data + }); +} + +// 修改字典数据 +export function updateData(data: DictDataForm) { + return request({ + url: '/system/dict/data', + method: 'put', + data: data + }); +} + +// 删除字典数据 +export function delData(dictCode: string | number | Array) { + return request({ + url: '/system/dict/data/' + dictCode, + method: 'delete' + }); +} diff --git a/src/api/system/dict/data/types.ts b/src/api/system/dict/data/types.ts new file mode 100644 index 0000000..e4abb9b --- /dev/null +++ b/src/api/system/dict/data/types.ts @@ -0,0 +1,26 @@ +export interface DictDataQuery extends PageQuery { + dictName: string; + dictType: string; + dictLabel: string; +} + +export interface DictDataVO extends BaseEntity { + dictCode: string; + dictLabel: string; + dictValue: string; + cssClass: string; + listClass: ElTagType; + dictSort: number; + remark: string; +} + +export interface DictDataForm { + dictType?: string; + dictCode: string | undefined; + dictLabel: string; + dictValue: string; + cssClass: string; + listClass: ElTagType; + dictSort: number; + remark: string; +} diff --git a/src/api/system/dict/type/index.ts b/src/api/system/dict/type/index.ts new file mode 100644 index 0000000..7dc3d66 --- /dev/null +++ b/src/api/system/dict/type/index.ts @@ -0,0 +1,62 @@ +import request from '@/utils/request'; +import { DictTypeForm, DictTypeVO, DictTypeQuery } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询字典类型列表 +export function listType(query: DictTypeQuery): AxiosPromise { + return request({ + url: '/system/dict/type/list', + method: 'get', + params: query + }); +} + +// 查询字典类型详细 +export function getType(dictId: number | string): AxiosPromise { + return request({ + url: '/system/dict/type/' + dictId, + method: 'get' + }); +} + +// 新增字典类型 +export function addType(data: DictTypeForm) { + return request({ + url: '/system/dict/type', + method: 'post', + data: data + }); +} + +// 修改字典类型 +export function updateType(data: DictTypeForm) { + return request({ + url: '/system/dict/type', + method: 'put', + data: data + }); +} + +// 删除字典类型 +export function delType(dictId: string | number | Array) { + return request({ + url: '/system/dict/type/' + dictId, + method: 'delete' + }); +} + +// 刷新字典缓存 +export function refreshCache() { + return request({ + url: '/system/dict/type/refreshCache', + method: 'delete' + }); +} + +// 获取字典选择框列表 +export function optionselect(): AxiosPromise { + return request({ + url: '/system/dict/type/optionselect', + method: 'get' + }); +} diff --git a/src/api/system/dict/type/types.ts b/src/api/system/dict/type/types.ts new file mode 100644 index 0000000..4987dbf --- /dev/null +++ b/src/api/system/dict/type/types.ts @@ -0,0 +1,18 @@ +export interface DictTypeVO extends BaseEntity { + dictId: number | string; + dictName: string; + dictType: string; + remark: string; +} + +export interface DictTypeForm { + dictId: number | string | undefined; + dictName: string; + dictType: string; + remark: string; +} + +export interface DictTypeQuery extends PageQuery { + dictName: string; + dictType: string; +} diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts new file mode 100644 index 0000000..7a0cf74 --- /dev/null +++ b/src/api/system/menu/index.ts @@ -0,0 +1,70 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { MenuQuery, MenuVO, MenuForm, MenuTreeOption, RoleMenuTree } from './types'; + +// 查询菜单列表 +export const listMenu = (query?: MenuQuery): AxiosPromise => { + return request({ + url: '/system/menu/list', + method: 'get', + params: query + }); +}; + +// 查询菜单详细 +export const getMenu = (menuId: string | number): AxiosPromise => { + return request({ + url: '/system/menu/' + menuId, + method: 'get' + }); +}; + +// 查询菜单下拉树结构 +export const treeselect = (): AxiosPromise => { + return request({ + url: '/system/menu/treeselect', + method: 'get' + }); +}; + +// 根据角色ID查询菜单下拉树结构 +export const roleMenuTreeselect = (roleId: string | number): AxiosPromise => { + return request({ + url: '/system/menu/roleMenuTreeselect/' + roleId, + method: 'get' + }); +}; + +// 根据角色ID查询菜单下拉树结构 +export const tenantPackageMenuTreeselect = (packageId: string | number): AxiosPromise => { + return request({ + url: '/system/menu/tenantPackageMenuTreeselect/' + packageId, + method: 'get' + }); +}; + +// 新增菜单 +export const addMenu = (data: MenuForm) => { + return request({ + url: '/system/menu', + method: 'post', + data: data + }); +}; + +// 修改菜单 +export const updateMenu = (data: MenuForm) => { + return request({ + url: '/system/menu', + method: 'put', + data: data + }); +}; + +// 删除菜单 +export const delMenu = (menuId: string | number) => { + return request({ + url: '/system/menu/' + menuId, + method: 'delete' + }); +}; diff --git a/src/api/system/menu/types.ts b/src/api/system/menu/types.ts new file mode 100644 index 0000000..ca19840 --- /dev/null +++ b/src/api/system/menu/types.ts @@ -0,0 +1,69 @@ +import { MenuTypeEnum } from '@/enums/MenuTypeEnum'; + +/** + * 菜单树形结构类型 + */ +export interface MenuTreeOption { + id: string | number; + label: string; + parentId: string | number; + weight: number; + children?: MenuTreeOption[]; +} + +export interface RoleMenuTree { + menus: MenuTreeOption[]; + checkedKeys: string[]; +} + +/** + * 菜单查询参数类型 + */ +export interface MenuQuery { + keywords?: string; + menuName?: string; + status?: string; +} + +/** + * 菜单视图对象类型 + */ +export interface MenuVO extends BaseEntity { + parentName: string; + parentId: string | number; + children: MenuVO[]; + menuId: string | number; + menuName: string; + orderNum: number; + path: string; + component: string; + queryParam: string; + isFrame: string; + isCache: string; + menuType: MenuTypeEnum; + visible: string; + status: string; + icon: string; + remark: string; +} + +export interface MenuForm { + parentName?: string; + parentId?: string | number; + children?: MenuForm[]; + menuId?: string | number; + menuName: string; + orderNum: number; + path: string; + component?: string; + queryParam?: string; + isFrame?: string; + isCache?: string; + menuType?: MenuTypeEnum; + visible?: string; + status?: string; + icon?: string; + remark?: string; + query?: string; + perms?: string; +} diff --git a/src/api/system/notice/index.ts b/src/api/system/notice/index.ts new file mode 100644 index 0000000..285d1f4 --- /dev/null +++ b/src/api/system/notice/index.ts @@ -0,0 +1,45 @@ +import request from '@/utils/request'; +import { NoticeForm, NoticeQuery, NoticeVO } from './types'; +import { AxiosPromise } from 'axios'; +// 查询公告列表 +export function listNotice(query: NoticeQuery): AxiosPromise { + return request({ + url: '/system/notice/list', + method: 'get', + params: query + }); +} + +// 查询公告详细 +export function getNotice(noticeId: string | number): AxiosPromise { + return request({ + url: '/system/notice/' + noticeId, + method: 'get' + }); +} + +// 新增公告 +export function addNotice(data: NoticeForm) { + return request({ + url: '/system/notice', + method: 'post', + data: data + }); +} + +// 修改公告 +export function updateNotice(data: NoticeForm) { + return request({ + url: '/system/notice', + method: 'put', + data: data + }); +} + +// 删除公告 +export function delNotice(noticeId: string | number | Array) { + return request({ + url: '/system/notice/' + noticeId, + method: 'delete' + }); +} diff --git a/src/api/system/notice/types.ts b/src/api/system/notice/types.ts new file mode 100644 index 0000000..abfd5b2 --- /dev/null +++ b/src/api/system/notice/types.ts @@ -0,0 +1,26 @@ +export interface NoticeVO extends BaseEntity { + noticeId: number; + noticeTitle: string; + noticeType: string; + noticeContent: string; + status: string; + remark: string; + createByName: string; +} + +export interface NoticeQuery extends PageQuery { + noticeTitle: string; + createByName: string; + status: string; + noticeType: string; +} + +export interface NoticeForm { + noticeId: number | string | undefined; + noticeTitle: string; + noticeType: string; + noticeContent: string; + status: string; + remark: string; + createByName: string; +} diff --git a/src/api/system/oss/index.ts b/src/api/system/oss/index.ts new file mode 100644 index 0000000..4472112 --- /dev/null +++ b/src/api/system/oss/index.ts @@ -0,0 +1,28 @@ +import request from '@/utils/request'; +import { OssQuery, OssVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询OSS对象存储列表 +export function listOss(query: OssQuery): AxiosPromise { + return request({ + url: '/resource/oss/list', + method: 'get', + params: query + }); +} + +// 查询OSS对象基于id串 +export function listByIds(ossId: string | number): AxiosPromise { + return request({ + url: '/resource/oss/listByIds/' + ossId, + method: 'get' + }); +} + +// 删除OSS对象存储 +export function delOss(ossId: string | number | Array) { + return request({ + url: '/resource/oss/' + ossId, + method: 'delete' + }); +} diff --git a/src/api/system/oss/types.ts b/src/api/system/oss/types.ts new file mode 100644 index 0000000..bc0bc1f --- /dev/null +++ b/src/api/system/oss/types.ts @@ -0,0 +1,22 @@ +export interface OssVO extends BaseEntity { + ossId: string | number; + fileName: string; + originalName: string; + fileSuffix: string; + url: string; + createByName: string; + service: string; +} + +export interface OssQuery extends PageQuery { + fileName: string; + originalName: string; + fileSuffix: string; + createTime: string; + service: string; + orderByColumn: string; + isAsc: string; +} +export interface OssForm { + file: undefined | string; +} diff --git a/src/api/system/ossConfig/index.ts b/src/api/system/ossConfig/index.ts new file mode 100644 index 0000000..d0faefe --- /dev/null +++ b/src/api/system/ossConfig/index.ts @@ -0,0 +1,60 @@ +import request from '@/utils/request'; +import { OssConfigForm, OssConfigQuery, OssConfigVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询对象存储配置列表 +export function listOssConfig(query: OssConfigQuery): AxiosPromise { + return request({ + url: '/resource/oss/config/list', + method: 'get', + params: query + }); +} + +// 查询对象存储配置详细 +export function getOssConfig(ossConfigId: string | number): AxiosPromise { + return request({ + url: '/resource/oss/config/' + ossConfigId, + method: 'get' + }); +} + +// 新增对象存储配置 +export function addOssConfig(data: OssConfigForm) { + return request({ + url: '/resource/oss/config', + method: 'post', + data: data + }); +} + +// 修改对象存储配置 +export function updateOssConfig(data: OssConfigForm) { + return request({ + url: '/resource/oss/config', + method: 'put', + data: data + }); +} + +// 删除对象存储配置 +export function delOssConfig(ossConfigId: string | number | Array) { + return request({ + url: '/resource/oss/config/' + ossConfigId, + method: 'delete' + }); +} + +// 对象存储状态修改 +export function changeOssConfigStatus(ossConfigId: string | number, status: string, configKey: string) { + const data = { + ossConfigId, + status, + configKey + }; + return request({ + url: '/resource/oss/config/changeStatus', + method: 'put', + data: data + }); +} diff --git a/src/api/system/ossConfig/types.ts b/src/api/system/ossConfig/types.ts new file mode 100644 index 0000000..d227bd0 --- /dev/null +++ b/src/api/system/ossConfig/types.ts @@ -0,0 +1,38 @@ +export interface OssConfigVO extends BaseEntity { + ossConfigId: number | string; + configKey: string; + accessKey: string; + secretKey: string; + bucketName: string; + prefix: string; + endpoint: string; + domain: string; + isHttps: string; + region: string; + status: string; + ext1: string; + remark: string; + accessPolicy: string; +} + +export interface OssConfigQuery extends PageQuery { + configKey: string; + bucketName: string; + status: string; +} + +export interface OssConfigForm { + ossConfigId: string | number | undefined; + configKey: string; + accessKey: string; + secretKey: string; + bucketName: string; + prefix: string; + endpoint: string; + domain: string; + isHttps: string; + accessPolicy: string; + region: string; + status: string; + remark: string; +} diff --git a/src/api/system/post/index.ts b/src/api/system/post/index.ts new file mode 100644 index 0000000..5f6ab18 --- /dev/null +++ b/src/api/system/post/index.ts @@ -0,0 +1,58 @@ +import request from '@/utils/request'; +import { PostForm, PostQuery, PostVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询岗位列表 +export function listPost(query: PostQuery): AxiosPromise { + return request({ + url: '/system/post/list', + method: 'get', + params: query + }); +} + +// 查询岗位详细 +export function getPost(postId: string | number): AxiosPromise { + return request({ + url: '/system/post/' + postId, + method: 'get' + }); +} + +// 获取岗位选择框列表 +export function optionselect(deptId?: number | string, postIds?: (number | string)[]): AxiosPromise { + return request({ + url: '/system/post/optionselect', + method: 'get', + params: { + postIds: postIds, + deptId: deptId + } + }); +} + +// 新增岗位 +export function addPost(data: PostForm) { + return request({ + url: '/system/post', + method: 'post', + data: data + }); +} + +// 修改岗位 +export function updatePost(data: PostForm) { + return request({ + url: '/system/post', + method: 'put', + data: data + }); +} + +// 删除岗位 +export function delPost(postId: string | number | (string | number)[]) { + return request({ + url: '/system/post/' + postId, + method: 'delete' + }); +} diff --git a/src/api/system/post/types.ts b/src/api/system/post/types.ts new file mode 100644 index 0000000..45a0540 --- /dev/null +++ b/src/api/system/post/types.ts @@ -0,0 +1,31 @@ +export interface PostVO extends BaseEntity { + postId: number | string; + deptId: number | string; + postCode: string; + postName: string; + postCategory: string; + deptName: string; + postSort: number; + status: string; + remark: string; +} + +export interface PostForm { + postId: number | string | undefined; + deptId: number | string | undefined; + postCode: string; + postName: string; + postCategory: string; + postSort: number; + status: string; + remark: string; +} + +export interface PostQuery extends PageQuery { + deptId: number | string; + belongDeptId: number | string; + postCode: string; + postName: string; + postCategory: string; + status: string; +} diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts new file mode 100644 index 0000000..fb0fcab --- /dev/null +++ b/src/api/system/role/index.ts @@ -0,0 +1,160 @@ +import { UserVO } from '@/api/system/user/types'; +import { UserQuery } from '@/api/system/user/types'; +import { AxiosPromise } from 'axios'; +import { RoleQuery, RoleVO, RoleDeptTree } from './types'; +import request from '@/utils/request'; + +export const listRole = (query: RoleQuery): AxiosPromise => { + return request({ + url: '/system/role/list', + method: 'get', + params: query + }); +}; + +/** + * 通过roleIds查询角色 + * @param roleIds + */ +export const optionSelect = (roleIds: (number | string)[]): AxiosPromise => { + return request({ + url: '/system/role/optionselect?roleIds=' + roleIds, + method: 'get' + }); +}; + +/** + * 查询角色详细 + */ +export const getRole = (roleId: string | number): AxiosPromise => { + return request({ + url: '/system/role/' + roleId, + method: 'get' + }); +}; + +/** + * 新增角色 + */ +export const addRole = (data: any) => { + return request({ + url: '/system/role', + method: 'post', + data: data + }); +}; + +/** + * 修改角色 + * @param data + */ +export const updateRole = (data: any) => { + return request({ + url: '/system/role', + method: 'put', + data: data + }); +}; + +/** + * 角色数据权限 + */ +export const dataScope = (data: any) => { + return request({ + url: '/system/role/dataScope', + method: 'put', + data: data + }); +}; + +/** + * 角色状态修改 + */ +export const changeRoleStatus = (roleId: string | number, status: string) => { + const data = { + roleId, + status + }; + return request({ + url: '/system/role/changeStatus', + method: 'put', + data: data + }); +}; + +/** + * 删除角色 + */ +export const delRole = (roleId: Array | string | number) => { + return request({ + url: '/system/role/' + roleId, + method: 'delete' + }); +}; + +/** + * 查询角色已授权用户列表 + */ +export const allocatedUserList = (query: UserQuery): AxiosPromise => { + return request({ + url: '/system/role/authUser/allocatedList', + method: 'get', + params: query + }); +}; + +/** + * 查询角色未授权用户列表 + */ +export const unallocatedUserList = (query: UserQuery): AxiosPromise => { + return request({ + url: '/system/role/authUser/unallocatedList', + method: 'get', + params: query + }); +}; + +/** + * 取消用户授权角色 + */ +export const authUserCancel = (data: any) => { + return request({ + url: '/system/role/authUser/cancel', + method: 'put', + data: data + }); +}; + +/** + * 批量取消用户授权角色 + */ +export const authUserCancelAll = (data: any) => { + return request({ + url: '/system/role/authUser/cancelAll', + method: 'put', + params: data + }); +}; + +/** + * 授权用户选择 + */ +export const authUserSelectAll = (data: any) => { + return request({ + url: '/system/role/authUser/selectAll', + method: 'put', + params: data + }); +}; +// 根据角色ID查询部门树结构 +export const deptTreeSelect = (roleId: string | number): AxiosPromise => { + return request({ + url: '/system/role/deptTree/' + roleId, + method: 'get' + }); +}; + +export default { + optionSelect, + listRole +}; diff --git a/src/api/system/role/types.ts b/src/api/system/role/types.ts new file mode 100644 index 0000000..7dbb6ff --- /dev/null +++ b/src/api/system/role/types.ts @@ -0,0 +1,52 @@ +/** + * 菜单树形结构类型 + */ +export interface DeptTreeOption { + id: string; + label: string; + parentId: string; + weight: number; + children?: DeptTreeOption[]; +} + +export interface RoleDeptTree { + checkedKeys: string[]; + depts: DeptTreeOption[]; +} + +export interface RoleVO extends BaseEntity { + roleId: string | number; + roleName: string; + roleKey: string; + roleSort: number; + dataScope: string; + menuCheckStrictly: boolean; + deptCheckStrictly: boolean; + status: string; + delFlag: string; + remark?: any; + flag: boolean; + menuIds?: Array; + deptIds?: Array; + admin: boolean; +} + +export interface RoleQuery extends PageQuery { + roleName: string; + roleKey: string; + status: string; +} + +export interface RoleForm { + roleName: string; + roleKey: string; + roleSort: number; + status: string; + menuCheckStrictly: boolean; + deptCheckStrictly: boolean; + remark: string; + dataScope?: string; + roleId: string | undefined; + menuIds: Array; + deptIds: Array; +} diff --git a/src/api/system/social/auth.ts b/src/api/system/social/auth.ts new file mode 100644 index 0000000..69f0d7e --- /dev/null +++ b/src/api/system/social/auth.ts @@ -0,0 +1,28 @@ +import request from '@/utils/request'; + +// 绑定账号 +export function authBinding(source: string, tenantId: string) { + return request({ + url: '/auth/binding/' + source, + method: 'get', + params: { + tenantId: tenantId, + domain: window.location.host + } + }); +} + +// 解绑账号 +export function authUnlock(authId: string) { + return request({ + url: '/auth/unlock/' + authId, + method: 'delete' + }); +} +//获取授权列表 +export function getAuthList() { + return request({ + url: '/system/social/list', + method: 'get' + }); +} diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts new file mode 100644 index 0000000..d1d8ff8 --- /dev/null +++ b/src/api/system/tenant/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import { TenantForm, TenantQuery, TenantVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询租户列表 +export function listTenant(query: TenantQuery): AxiosPromise { + return request({ + url: '/system/tenant/list', + method: 'get', + params: query + }); +} + +// 查询租户详细 +export function getTenant(id: string | number): AxiosPromise { + return request({ + url: '/system/tenant/' + id, + method: 'get' + }); +} + +// 新增租户 +export function addTenant(data: TenantForm) { + return request({ + url: '/system/tenant', + method: 'post', + headers: { + isEncrypt: true, + repeatSubmit: false + }, + data: data + }); +} + +// 修改租户 +export function updateTenant(data: TenantForm) { + return request({ + url: '/system/tenant', + method: 'put', + data: data + }); +} + +// 租户状态修改 +export function changeTenantStatus(id: string | number, tenantId: string | number, status: string) { + const data = { + id, + tenantId, + status + }; + return request({ + url: '/system/tenant/changeStatus', + method: 'put', + data: data + }); +} + +// 删除租户 +export function delTenant(id: string | number | Array) { + return request({ + url: '/system/tenant/' + id, + method: 'delete' + }); +} + +// 动态切换租户 +export function dynamicTenant(tenantId: string | number) { + return request({ + url: '/system/tenant/dynamic/' + tenantId, + method: 'get' + }); +} + +// 清除动态租户 +export function dynamicClear() { + return request({ + url: '/system/tenant/dynamic/clear', + method: 'get' + }); +} + +// 同步租户套餐 +export function syncTenantPackage(tenantId: string | number, packageId: string | number) { + const data = { + tenantId, + packageId + }; + return request({ + url: '/system/tenant/syncTenantPackage', + method: 'get', + params: data + }); +} + +// 同步租户字典 +export function syncTenantDict() { + return request({ + url: '/system/tenant/syncTenantDict', + method: 'get' + }); +} diff --git a/src/api/system/tenant/types.ts b/src/api/system/tenant/types.ts new file mode 100644 index 0000000..25395fa --- /dev/null +++ b/src/api/system/tenant/types.ts @@ -0,0 +1,46 @@ +export interface TenantVO extends BaseEntity { + id: number | string; + tenantId: number | string; + username: string; + contactUserName: string; + contactPhone: string; + companyName: string; + licenseNumber: string; + address: string; + domain: string; + intro: string; + remark: string; + packageId: string | number; + expireTime: string; + accountCount: number; + status: string; +} + +export interface TenantQuery extends PageQuery { + tenantId: string | number; + + contactUserName: string; + + contactPhone: string; + + companyName: string; +} + +export interface TenantForm { + id: number | string | undefined; + tenantId: number | string | undefined; + username: string; + password: string; + contactUserName: string; + contactPhone: string; + companyName: string; + licenseNumber: string; + domain: string; + address: string; + intro: string; + remark: string; + packageId: string | number; + expireTime: string; + accountCount: number; + status: string; +} diff --git a/src/api/system/tenantPackage/index.ts b/src/api/system/tenantPackage/index.ts new file mode 100644 index 0000000..70d0dab --- /dev/null +++ b/src/api/system/tenantPackage/index.ts @@ -0,0 +1,67 @@ +import request from '@/utils/request'; +import { TenantPkgForm, TenantPkgQuery, TenantPkgVO } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询租户套餐列表 +export function listTenantPackage(query?: TenantPkgQuery): AxiosPromise { + return request({ + url: '/system/tenant/package/list', + method: 'get', + params: query + }); +} + +// 查询租户套餐下拉选列表 +export function selectTenantPackage(): AxiosPromise { + return request({ + url: '/system/tenant/package/selectList', + method: 'get' + }); +} + +// 查询租户套餐详细 +export function getTenantPackage(packageId: string | number): AxiosPromise { + return request({ + url: '/system/tenant/package/' + packageId, + method: 'get' + }); +} + +// 新增租户套餐 +export function addTenantPackage(data: TenantPkgForm) { + return request({ + url: '/system/tenant/package', + method: 'post', + data: data + }); +} + +// 修改租户套餐 +export function updateTenantPackage(data: TenantPkgForm) { + return request({ + url: '/system/tenant/package', + method: 'put', + data: data + }); +} + +// 租户套餐状态修改 +export function changePackageStatus(packageId: number | string, status: string) { + const data = { + packageId, + status + }; + return request({ + url: '/system/tenant/package/changeStatus', + method: 'put', + data: data + }); +} + +// 删除租户套餐 +export function delTenantPackage(packageId: string | number | Array) { + return request({ + url: '/system/tenant/package/' + packageId, + method: 'delete' + }); +} diff --git a/src/api/system/tenantPackage/types.ts b/src/api/system/tenantPackage/types.ts new file mode 100644 index 0000000..c24b8fc --- /dev/null +++ b/src/api/system/tenantPackage/types.ts @@ -0,0 +1,20 @@ +export interface TenantPkgVO extends BaseEntity { + packageId: string | number; + packageName: string; + menuIds: string; + remark: string; + menuCheckStrictly: boolean; + status: string; +} + +export interface TenantPkgQuery extends PageQuery { + packageName: string; +} + +export interface TenantPkgForm { + packageId: string | number | undefined; + packageName: string; + menuIds: string; + remark: string; + menuCheckStrictly: boolean; +} diff --git a/src/api/system/user/types.ts b/src/api/system/user/types.ts new file mode 100644 index 0000000..0787372 --- /dev/null +++ b/src/api/system/user/types.ts @@ -0,0 +1,84 @@ +import { RoleVO } from '@/api/system/role/types'; +import { PostVO } from '@/api/system/post/types'; + +/** + * 用户信息 + */ +export interface UserInfo { + user: UserVO; + roles: string[]; + permissions: string[]; +} + +/** + * 用户查询对象类型 + */ +export interface UserQuery extends PageQuery { + userName?: string; + phonenumber?: string; + status?: string; + deptId?: string | number; + roleId?: string | number; +} + +/** + * 用户返回对象 + */ +export interface UserVO extends BaseEntity { + userId: string | number; + tenantId: string; + deptId: number; + userName: string; + nickName: string; + userType: string; + email: string; + phonenumber: string; + sex: string; + avatar: string; + status: string; + delFlag: string; + loginIp: string; + loginDate: string; + remark: string; + deptName: string; + roles: RoleVO[]; + roleIds: any; + postIds: any; + roleId: any; + admin: boolean; +} + +/** + * 用户表单类型 + */ +export interface UserForm { + id?: string; + userId?: string; + deptId?: number; + userName: string; + nickName?: string; + password: string; + phonenumber?: string; + email?: string; + sex?: string; + status: string; + remark?: string; + postIds: string[]; + roleIds: string[]; +} + +export interface UserInfoVO { + user: UserVO; + roles: RoleVO[]; + roleIds: string[]; + posts: PostVO[]; + postIds: string[]; + roleGroup: string; + postGroup: string; +} + +export interface ResetPwdForm { + oldPassword: string; + newPassword: string; + confirmPassword: string; +} diff --git a/src/api/tool/gen/index.ts b/src/api/tool/gen/index.ts new file mode 100644 index 0000000..efe079c --- /dev/null +++ b/src/api/tool/gen/index.ts @@ -0,0 +1,86 @@ +import request from '@/utils/request'; +import { DbTableQuery, DbTableVO, TableQuery, TableVO, GenTableVO, DbTableForm } from './types'; +import { AxiosPromise } from 'axios'; + +// 查询生成表数据 +export const listTable = (query: TableQuery): AxiosPromise => { + return request({ + url: '/tool/gen/list', + method: 'get', + params: query + }); +}; +// 查询db数据库列表 +export const listDbTable = (query: DbTableQuery): AxiosPromise => { + return request({ + url: '/tool/gen/db/list', + method: 'get', + params: query + }); +}; + +// 查询表详细信息 +export const getGenTable = (tableId: string | number): AxiosPromise => { + return request({ + url: '/tool/gen/' + tableId, + method: 'get' + }); +}; + +// 修改代码生成信息 +export const updateGenTable = (data: DbTableForm): AxiosPromise => { + return request({ + url: '/tool/gen', + method: 'put', + data: data + }); +}; + +// 导入表 +export const importTable = (data: { tables: string; dataName: string }): AxiosPromise => { + return request({ + url: '/tool/gen/importTable', + method: 'post', + params: data + }); +}; + +// 预览生成代码 +export const previewTable = (tableId: string | number) => { + return request({ + url: '/tool/gen/preview/' + tableId, + method: 'get' + }); +}; + +// 删除表数据 +export const delTable = (tableId: string | number | Array) => { + return request({ + url: '/tool/gen/' + tableId, + method: 'delete' + }); +}; + +// 生成代码(自定义路径) +export const genCode = (tableId: string | number) => { + return request({ + url: '/tool/gen/genCode/' + tableId, + method: 'get' + }); +}; + +// 同步数据库 +export const synchDb = (tableId: string | number) => { + return request({ + url: '/tool/gen/synchDb/' + tableId, + method: 'get' + }); +}; + +// 获取数据源名称 +export const getDataNames = () => { + return request({ + url: '/tool/gen/getDataNames', + method: 'get' + }); +}; diff --git a/src/api/tool/gen/types.ts b/src/api/tool/gen/types.ts new file mode 100644 index 0000000..7f7b62f --- /dev/null +++ b/src/api/tool/gen/types.ts @@ -0,0 +1,180 @@ +export interface TableVO extends BaseEntity { + createDept: number | string; + tableId: string | number; + dataName: string; + tableName: string; + tableComment: string; + subTableName?: any; + subTableFkName?: any; + className: string; + tplCategory: string; + packageName: string; + moduleName: string; + businessName: string; + functionName: string; + functionAuthor: string; + genType: string; + genPath: string; + pkColumn?: any; + columns?: any; + options?: any; + remark?: any; + treeCode?: any; + treeParentCode?: any; + treeName?: any; + menuIds?: any; + parentMenuId?: any; + parentMenuName?: any; + tree: boolean; + crud: boolean; +} + +export interface TableQuery extends PageQuery { + tableName: string; + tableComment: string; + dataName: string; +} + +export interface DbColumnVO extends BaseEntity { + createDept?: any; + columnId?: any; + tableId?: any; + columnName?: any; + columnComment?: any; + columnType?: any; + javaType?: any; + javaField?: any; + isPk?: any; + isIncrement?: any; + isRequired?: any; + isInsert?: any; + isEdit?: any; + isList?: any; + isQuery?: any; + queryType?: any; + htmlType?: any; + dictType?: any; + sort?: any; + increment: boolean; + capJavaField?: any; + usableColumn: boolean; + superColumn: boolean; + list: boolean; + pk: boolean; + insert: boolean; + edit: boolean; + query: boolean; + required: boolean; +} + +export interface DbTableVO { + createDept?: any; + tableId?: any; + tableName: string; + tableComment: string; + subTableName?: any; + subTableFkName?: any; + className?: any; + tplCategory?: any; + packageName?: any; + moduleName?: any; + businessName?: any; + functionName?: any; + functionAuthor?: any; + genType?: any; + genPath?: any; + pkColumn?: any; + columns: DbColumnVO[]; + options?: any; + remark?: any; + treeCode?: any; + treeParentCode?: any; + treeName?: any; + menuIds?: any; + parentMenuId?: any; + parentMenuName?: any; + tree: boolean; + crud: boolean; +} + +export interface DbTableQuery extends PageQuery { + dataName: string; + tableName: string; + tableComment: string; +} + +export interface GenTableVO { + info: DbTableVO; + rows: DbColumnVO[]; + tables: DbTableVO[]; +} + +export interface DbColumnForm extends BaseEntity { + createDept: number; + columnId: string; + tableId: string; + columnName: string; + columnComment: string; + columnType: string; + javaType: string; + javaField: string; + isPk: string; + isIncrement: string; + isRequired: string; + isInsert?: any; + isEdit: string; + isList: string; + isQuery?: any; + queryType: string; + htmlType: string; + dictType: string; + sort: number; + increment: boolean; + capJavaField: string; + usableColumn: boolean; + superColumn: boolean; + list: boolean; + pk: boolean; + insert: boolean; + edit: boolean; + query: boolean; + required: boolean; +} + +export interface DbParamForm { + treeCode?: any; + treeName?: any; + treeParentCode?: any; + parentMenuId: string; +} + +export interface DbTableForm extends BaseEntity { + createDept?: any; + tableId: string | string; + tableName: string; + tableComment: string; + subTableName?: any; + subTableFkName?: any; + className: string; + tplCategory: string; + packageName: string; + moduleName: string; + businessName: string; + functionName: string; + functionAuthor: string; + genType: string; + genPath: string; + pkColumn?: any; + columns: DbColumnForm[]; + options: string; + remark?: any; + treeCode?: any; + treeParentCode?: any; + treeName?: any; + menuIds?: any; + parentMenuId: string; + parentMenuName?: any; + tree: boolean; + crud: boolean; + params: DbParamForm; +} diff --git a/src/api/types.ts b/src/api/types.ts new file mode 100644 index 0000000..617286c --- /dev/null +++ b/src/api/types.ts @@ -0,0 +1,59 @@ +/** + * 注册 + */ +export type RegisterForm = { + tenantId: string; + username: string; + password: string; + confirmPassword?: string; + code?: string; + uuid?: string; + userType?: string; +}; + +/** + * 登录请求 + */ +export interface LoginData { + tenantId?: string; + username?: string; + password?: string; + rememberMe?: boolean; + socialCode?: string; + socialState?: string; + source?: string; + code?: string; + uuid?: string; + clientId: string; + grantType: string; +} + +/** + * 登录响应 + */ +export interface LoginResult { + access_token: string; +} + +/** + * 验证码返回 + */ +export interface VerifyCodeResult { + captchaEnabled: boolean; + uuid?: string; + img?: string; +} + +/** + * 租户 + */ +export interface TenantVO { + companyName: string; + domain: any; + tenantId: string; +} + +export interface TenantInfo { + tenantEnabled: boolean; + voList: TenantVO[]; +} diff --git a/src/api/workflow/category/index.ts b/src/api/workflow/category/index.ts new file mode 100644 index 0000000..b6a83ea --- /dev/null +++ b/src/api/workflow/category/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { CategoryVO, CategoryForm, CategoryQuery, CategoryTreeVO } from '@/api/workflow/category/types'; + +/** + * 查询流程分类列表 + * @param query + * @returns {*} + */ + +export const listCategory = (query?: CategoryQuery): AxiosPromise => { + return request({ + url: '/workflow/category/list', + method: 'get', + params: query + }); +}; + +/** + * 查询流程分类详细 + * @param categoryId + */ +export const getCategory = (categoryId: string | number): AxiosPromise => { + return request({ + url: '/workflow/category/' + categoryId, + method: 'get' + }); +}; + +/** + * 新增流程分类 + * @param data + */ +export const addCategory = (data: CategoryForm) => { + return request({ + url: '/workflow/category', + method: 'post', + data: data + }); +}; + +/** + * 修改流程分类 + * @param data + */ +export const updateCategory = (data: CategoryForm) => { + return request({ + url: '/workflow/category', + method: 'put', + data: data + }); +}; + +/** + * 删除流程分类 + * @param categoryId + */ +export const delCategory = (categoryId: string | number | Array) => { + return request({ + url: '/workflow/category/' + categoryId, + method: 'delete' + }); +}; + +/** + * 获取流程分类树列表 + * @param query 流程实例id + * @returns + */ +export const categoryTree = (query?: CategoryForm): AxiosPromise => { + return request({ + url: `/workflow/category/categoryTree`, + method: 'get', + params: query + }); +}; diff --git a/src/api/workflow/category/types.ts b/src/api/workflow/category/types.ts new file mode 100644 index 0000000..a093073 --- /dev/null +++ b/src/api/workflow/category/types.ts @@ -0,0 +1,72 @@ +export interface CategoryTreeVO { + id: number | string; + label: string; + parentId: number | string; + weight: number; + children: CategoryTreeVO[]; +} +export interface CategoryVO { + + /** + * 流程分类ID + */ + categoryId: string | number; + + /** + * 父级id + */ + parentId: string | number; + + /** + * 流程分类名称 + */ + categoryName: string; + + /** + * 显示顺序 + */ + orderNum: number; + + /** + * 创建时间 + */ + createTime: string; + + /** + * 子对象 + */ + children: CategoryVO[]; +} + +export interface CategoryForm extends BaseEntity { + + /** + * 流程分类ID + */ + categoryId?: string | number; + + /** + * 流程分类名称 + */ + categoryName?: string; + + /** + * 父流程分类id + */ + parentId?: string | number; + + /** + * 显示顺序 + */ + orderNum?: number; + +} + +export interface CategoryQuery { + + /** + * 流程分类名称 + */ + categoryName?: string; + +} diff --git a/src/api/workflow/definition/index.ts b/src/api/workflow/definition/index.ts new file mode 100644 index 0000000..49e6ee8 --- /dev/null +++ b/src/api/workflow/definition/index.ts @@ -0,0 +1,170 @@ +import request from '@/utils/request'; +import { FlowDefinitionQuery, definitionXmlVO, FlowDefinitionForm, FlowDefinitionVo } from '@/api/workflow/definition/types'; +import { AxiosPromise } from 'axios'; + +/** + * 获取流程定义列表 + * @param query 流程实例id + * @returns + */ +export const listDefinition = (query: FlowDefinitionQuery): AxiosPromise => { + return request({ + url: `/workflow/definition/list`, + method: 'get', + params: query + }); +}; + +/** + * 查询未发布的流程定义列表 + * @param query 流程实例id + * @returns + */ +export const unPublishList = (query: FlowDefinitionQuery): AxiosPromise => { + return request({ + url: `/workflow/definition/unPublishList`, + method: 'get', + params: query + }); +}; + +/** + * 通过流程定义id获取xml + * @param definitionId 流程定义id + * @returns + */ +export const definitionXml = (definitionId: string): AxiosPromise => { + return request({ + url: `/workflow/definition/definitionXml/${definitionId}`, + method: 'get' + }); +}; + +/** + * 删除流程定义 + * @param id 流程定义id + * @returns + */ +export const deleteDefinition = (id: string | string[]) => { + return request({ + url: `/workflow/definition/${id}`, + method: 'delete' + }); +}; + +/** + * 挂起/激活 + * @param definitionId 流程定义id + * @param activityStatus 状态 + * @returns + */ +export const active = (definitionId: string, activityStatus: boolean) => { + return request({ + url: `/workflow/definition/active/${definitionId}`, + method: 'put', + params: { + active: activityStatus + } + }); +}; + +/** + * 通过zip或xml部署流程定义 + * @returns + */ +export function importDef(data: any) { + return request({ + url: '/workflow/definition/importDef', + method: 'post', + data: data, + headers: { + repeatSubmit: false + } + }); +} + +/** + * 发布流程定义 + * @param id 流程定义id + * @returns + */ +export const publish = (id: string) => { + return request({ + url: `/workflow/definition/publish/${id}`, + method: 'put' + }); +}; + +/** + * 取消发布流程定义 + * @param id 流程定义id + * @returns + */ +export const unPublish = (id: string) => { + return request({ + url: `/workflow/definition/unPublish/${id}`, + method: 'put' + }); +}; + +/** + * 获取流程定义xml字符串 + * @param id 流程定义id + * @returns + */ +export const xmlString = (id: string) => { + return request({ + url: `/workflow/definition/xmlString/${id}`, + method: 'get' + }); +}; + +/** + * 新增 + * @param data 参数 + * @returns + */ +export const add = (data: FlowDefinitionForm) => { + return request({ + url: `/workflow/definition`, + method: 'post', + data: data + }); +}; + +/** + * 修改 + * @param data 参数 + * @returns + */ +export const edit = (data: FlowDefinitionForm) => { + return request({ + url: `/workflow/definition`, + method: 'put', + data: data + }); +}; + +/** + * 查询详情 + * @param id 参数 + * @returns + */ +export const getInfo = (id: number | string) => { + return request({ + url: `/workflow/definition/${id}`, + method: 'get' + }); +}; + +/** + * 复制流程定义 + * @param id 流程定义id + * @returns + */ +export const copy = (id: string) => { + return request({ + url: `/workflow/definition/copy/${id}`, + method: 'post' + }); +}; diff --git a/src/api/workflow/definition/types.ts b/src/api/workflow/definition/types.ts new file mode 100644 index 0000000..5de7f77 --- /dev/null +++ b/src/api/workflow/definition/types.ts @@ -0,0 +1,31 @@ +export interface FlowDefinitionQuery extends PageQuery { + flowCode?: string; + flowName?: string; + category: string | number; + isPublish?: number; +} + +export interface FlowDefinitionVo { + id: string; + flowName: string; + flowCode: string; + formPath: string; + version: string; + isPublish: number; + activityStatus: number; + createTime: Date; + updateTime: Date; +} + +export interface FlowDefinitionForm { + id: string; + flowName: string; + flowCode: string; + category: string; + formPath: string; +} + +export interface definitionXmlVO { + xml: string[]; + xmlStr: string; +} diff --git a/src/api/workflow/instance/index.ts b/src/api/workflow/instance/index.ts new file mode 100644 index 0000000..42d748d --- /dev/null +++ b/src/api/workflow/instance/index.ts @@ -0,0 +1,101 @@ +import request from '@/utils/request'; +import { FlowInstanceQuery, FlowInstanceVO } from '@/api/workflow/instance/types'; +import { AxiosPromise } from 'axios'; + +/** + * 查询运行中实例列表 + * @param query + * @returns {*} + */ +export const pageByRunning = (query: FlowInstanceQuery): AxiosPromise => { + return request({ + url: '/workflow/instance/pageByRunning', + method: 'get', + params: query + }); +}; + +/** + * 查询已完成实例列表 + * @param query + * @returns {*} + */ +export const pageByFinish = (query: FlowInstanceQuery): AxiosPromise => { + return request({ + url: '/workflow/instance/pageByFinish', + method: 'get', + params: query + }); +}; + +/** + * 通过业务id获取历史流程图 + */ +export const flowImage = (businessId: string | number) => { + return request({ + url: `/workflow/instance/flowImage/${businessId}` + '?t' + Math.random(), + method: 'get' + }); +}; + +/** + * 分页查询当前登录人单据 + * @param query + * @returns {*} + */ +export const pageByCurrent = (query: FlowInstanceQuery): AxiosPromise => { + return request({ + url: '/workflow/instance/pageByCurrent', + method: 'get', + params: query + }); +}; + +/** + * 撤销流程 + * @param data 参数 + * @returns + */ +export const cancelProcessApply = (data: any) => { + return request({ + url: `/workflow/instance/cancelProcessApply`, + method: 'put', + data: data + }); +}; + +/** + * 获取流程变量 + * @param instanceId 实例id + * @returns + */ +export const instanceVariable = (instanceId: string | number) => { + return request({ + url: `/workflow/instance/instanceVariable/${instanceId}`, + method: 'get' + }); +}; + +/** + * 删除 + * @param instanceIds 流程实例id + * @returns + */ +export const deleteByInstanceIds = (instanceIds: Array | string | number) => { + return request({ + url: `/workflow/instance/deleteByInstanceIds/${instanceIds}`, + method: 'delete' + }); +}; +/** + * 作废流程 + * @param data 参数 + * @returns + */ +export const invalid = (data: any) => { + return request({ + url: `/workflow/instance/invalid`, + method: 'post', + data: data + }); +}; diff --git a/src/api/workflow/instance/types.ts b/src/api/workflow/instance/types.ts new file mode 100644 index 0000000..a12dab3 --- /dev/null +++ b/src/api/workflow/instance/types.ts @@ -0,0 +1,26 @@ +import { FlowTaskVO } from '@/api/workflow/task/types'; + +export interface FlowInstanceQuery extends PageQuery { + category?: string | number; + nodeName?: string; + flowCode?: string; + flowName?: string; + createByIds?: string[] | number[]; + businessId?: string; +} + +export interface FlowInstanceVO extends BaseEntity { + id: string | number; + definitionId: string; + flowName: string; + flowCode: string; + version: string; + businessId: string; + activityStatus: number; + tenantId: string; + createTime: string; + createBy: string; + flowStatus: string; + flowStatusName: string; + flowTaskList: FlowTaskVO[]; +} diff --git a/src/api/workflow/leave/index.ts b/src/api/workflow/leave/index.ts new file mode 100644 index 0000000..4e6f363 --- /dev/null +++ b/src/api/workflow/leave/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { LeaveVO, LeaveQuery, LeaveForm } from '@/api/workflow/leave/types'; + +/** + * 查询请假列表 + * @param query + * @returns {*} + */ + +export const listLeave = (query?: LeaveQuery): AxiosPromise => { + return request({ + url: '/workflow/leave/list', + method: 'get', + params: query + }); +}; + +/** + * 查询请假详细 + * @param id + */ +export const getLeave = (id: string | number): AxiosPromise => { + return request({ + url: '/workflow/leave/' + id, + method: 'get' + }); +}; + +/** + * 新增请假 + * @param data + */ +export const addLeave = (data: LeaveForm): AxiosPromise => { + return request({ + url: '/workflow/leave', + method: 'post', + data: data + }); +}; + +/** + * 修改请假 + * @param data + */ +export const updateLeave = (data: LeaveForm): AxiosPromise => { + return request({ + url: '/workflow/leave', + method: 'put', + data: data + }); +}; + +/** + * 删除请假 + * @param id + */ +export const delLeave = (id: string | number | Array) => { + return request({ + url: '/workflow/leave/' + id, + method: 'delete' + }); +}; diff --git a/src/api/workflow/leave/types.ts b/src/api/workflow/leave/types.ts new file mode 100644 index 0000000..a44d35d --- /dev/null +++ b/src/api/workflow/leave/types.ts @@ -0,0 +1,24 @@ +export interface LeaveVO { + id: string | number; + leaveType: string; + startDate: string; + endDate: string; + leaveDays: number; + remark: string; + status?: string; +} + +export interface LeaveForm extends BaseEntity { + id?: string | number; + leaveType?: string; + startDate?: string; + endDate?: string; + leaveDays?: number; + remark?: string; + status?: string; +} + +export interface LeaveQuery extends PageQuery { + startLeaveDays?: number; + endLeaveDays?: number; +} diff --git a/src/api/workflow/task/index.ts b/src/api/workflow/task/index.ts new file mode 100644 index 0000000..55ede45 --- /dev/null +++ b/src/api/workflow/task/index.ts @@ -0,0 +1,180 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { TaskQuery, FlowTaskVO, TaskOperationBo } from '@/api/workflow/task/types'; + +/** + * 查询待办列表 + * @param query + * @returns {*} + */ +export const pageByTaskWait = (query: TaskQuery): AxiosPromise => { + return request({ + url: '/workflow/task/pageByTaskWait', + method: 'get', + params: query + }); +}; + +/** + * 查询已办列表 + * @param query + * @returns {*} + */ +export const pageByTaskFinish = (query: TaskQuery): AxiosPromise => { + return request({ + url: '/workflow/task/pageByTaskFinish', + method: 'get', + params: query + }); +}; + +/** + * 查询当前用户的抄送列表 + * @param query + * @returns {*} + */ +export const pageByTaskCopy = (query: TaskQuery): AxiosPromise => { + return request({ + url: '/workflow/task/pageByTaskCopy', + method: 'get', + params: query + }); +}; + +/** + * 当前租户所有待办任务 + * @param query + * @returns {*} + */ +export const pageByAllTaskWait = (query: TaskQuery): AxiosPromise => { + return request({ + url: '/workflow/task/pageByAllTaskWait', + method: 'get', + params: query + }); +}; + +/** + * 当前租户所有已办任务 + * @param query + * @returns {*} + */ +export const pageByAllTaskFinish = (query: TaskQuery): AxiosPromise => { + return request({ + url: '/workflow/task/pageByAllTaskFinish', + method: 'get', + params: query + }); +}; + +/** + * 启动流程 + * @param data + * @returns {*} + */ +export const startWorkFlow = (data: object): any => { + return request({ + url: '/workflow/task/startWorkFlow', + method: 'post', + data: data + }); +}; + +/** + * 办理流程 + * @param data + * @returns {*} + */ +export const completeTask = (data: object) => { + return request({ + url: '/workflow/task/completeTask', + method: 'post', + data: data + }); +}; + +/** + * 任务驳回 + * @param data + * @returns {*} + */ +export const backProcess = (data: any): any => { + return request({ + url: '/workflow/task/backProcess', + method: 'post', + data: data + }); +}; + +/** + * 获取当前任务 + * @param taskId + * @returns + */ +export const getTask = (taskId: string) => { + return request({ + url: '/workflow/task/getTask/' + taskId, + method: 'get' + }); +}; + +/** + * 修改任务办理人 + * @param taskIdList + * @param userId + * @returns + */ +export const updateAssignee = (taskIdList: Array, userId: string) => { + return request({ + url: `/workflow/task/updateAssignee/${userId}`, + method: 'put', + data: taskIdList + }); +}; + +/** + * 终止任务 + * @returns + */ +export const terminationTask = (data: any) => { + return request({ + url: `/workflow/task/terminationTask`, + method: 'post', + data: data + }); +}; + +/** + * 获取可驳回得任务节点 + * @returns + */ +export const getBackTaskNode = (definitionId: string, nodeCode: string) => { + return request({ + url: `/workflow/task/getBackTaskNode/${definitionId}/${nodeCode}`, + method: 'get' + }); +}; + +/** + * 任务操作 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature + * @returns + */ +export const taskOperation = (data: TaskOperationBo, operation: string) => { + return request({ + url: `/workflow/task/taskOperation/${operation}`, + method: 'post', + data: data + }); +}; + +/** + * 获取当前任务办理人 + * @param taskId 任务id + * @returns + */ +export const currentTaskAllUser = (taskId: string | number) => { + return request({ + url: `/workflow/task/currentTaskAllUser/${taskId}`, + method: 'get' + }); +}; diff --git a/src/api/workflow/task/types.ts b/src/api/workflow/task/types.ts new file mode 100644 index 0000000..8ea803b --- /dev/null +++ b/src/api/workflow/task/types.ts @@ -0,0 +1,48 @@ +export interface TaskQuery extends PageQuery { + nodeName?: string; + flowCode?: string; + flowName?: string; + createByIds?: string[] | number[]; +} + +export interface ParticipantVo { + groupIds?: string[] | number[]; + candidate: string[] | number[]; + candidateName: string[]; + claim: boolean; +} +export interface FlowTaskVO { + id: string | number; + createTime?: Date; + updateTime?: Date; + tenantId?: string; + definitionId?: string; + instanceId: string; + flowName: string; + businessId: string; + nodeCode: string; + nodeName: string; + flowCode: string; + flowStatus: string; + formCustom: string; + formPath: string; + nodeType: number; + nodeRatio: string | number; + version?: string; +} + +export interface VariableVo { + key: string; + value: string; +} + +export interface TaskOperationBo { + //委派/转办人的用户ID(必填,准对委派/转办人操作) + userId?: string; + //加签/减签人的用户ID列表(必填,针对加签/减签操作) + userIds?: string[]; + //任务ID(必填) + taskId: string | number; + //意见或备注信息(可选) + message?: string; +} diff --git a/src/api/workflow/workflowCommon/index.ts b/src/api/workflow/workflowCommon/index.ts new file mode 100644 index 0000000..0f5ce1b --- /dev/null +++ b/src/api/workflow/workflowCommon/index.ts @@ -0,0 +1,15 @@ +import { RouterJumpVo } from '@/api/workflow/workflowCommon/types'; + +export default { + routerJump(routerJumpVo: RouterJumpVo, proxy) { + proxy.$tab.closePage(proxy.$route); + proxy.$router.push({ + path: routerJumpVo.formPath, + query: { + id: routerJumpVo.businessId, + type: routerJumpVo.type, + taskId: routerJumpVo.taskId + } + }); + } +}; diff --git a/src/api/workflow/workflowCommon/types.ts b/src/api/workflow/workflowCommon/types.ts new file mode 100644 index 0000000..3e7a71d --- /dev/null +++ b/src/api/workflow/workflowCommon/types.ts @@ -0,0 +1,13 @@ +export interface RouterJumpVo { + businessId: string; + taskId: string | number; + type: string; + formCustom: string; + formPath: string; +} + +export interface StartProcessBo { + businessId: string | number; + flowCode: string; + variables: any; +} diff --git a/src/assets/401_images/401.gif b/src/assets/401_images/401.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd6e0d9433421b3f29d0ec0c40f755e354728000 GIT binary patch literal 164227 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⋘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 GY5fOuZZib{ literal 0 HcmV?d00001 diff --git a/src/assets/404_images/404.png b/src/assets/404_images/404.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8e2305cc973ad2121403aee4bf08728f76c461 GIT binary patch literal 98071 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 literal 0 HcmV?d00001 diff --git a/src/assets/404_images/404_cloud.png b/src/assets/404_images/404_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..c6281d09013e0a2c5f8e699a0a6038d9480291e5 GIT binary patch literal 4766 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/svg/404.svg b/src/assets/icons/svg/404.svg new file mode 100644 index 0000000..6df5019 --- /dev/null +++ b/src/assets/icons/svg/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/bug.svg b/src/assets/icons/svg/bug.svg new file mode 100644 index 0000000..05a150d --- /dev/null +++ b/src/assets/icons/svg/bug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/build.svg b/src/assets/icons/svg/build.svg new file mode 100644 index 0000000..97c4688 --- /dev/null +++ b/src/assets/icons/svg/build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/button.svg b/src/assets/icons/svg/button.svg new file mode 100644 index 0000000..904fddc --- /dev/null +++ b/src/assets/icons/svg/button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/caret-back.svg b/src/assets/icons/svg/caret-back.svg new file mode 100644 index 0000000..9bae722 --- /dev/null +++ b/src/assets/icons/svg/caret-back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/caret-forward.svg b/src/assets/icons/svg/caret-forward.svg new file mode 100644 index 0000000..1ec3f7d --- /dev/null +++ b/src/assets/icons/svg/caret-forward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/cascader.svg b/src/assets/icons/svg/cascader.svg new file mode 100644 index 0000000..e256024 --- /dev/null +++ b/src/assets/icons/svg/cascader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/category.svg b/src/assets/icons/svg/category.svg new file mode 100644 index 0000000..df92526 --- /dev/null +++ b/src/assets/icons/svg/category.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/chart.svg b/src/assets/icons/svg/chart.svg new file mode 100644 index 0000000..27728fb --- /dev/null +++ b/src/assets/icons/svg/chart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/checkbox.svg b/src/assets/icons/svg/checkbox.svg new file mode 100644 index 0000000..013fd3a --- /dev/null +++ b/src/assets/icons/svg/checkbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/clipboard.svg b/src/assets/icons/svg/clipboard.svg new file mode 100644 index 0000000..90923ff --- /dev/null +++ b/src/assets/icons/svg/clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/code.svg b/src/assets/icons/svg/code.svg new file mode 100644 index 0000000..5f9c5ab --- /dev/null +++ b/src/assets/icons/svg/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/color.svg b/src/assets/icons/svg/color.svg new file mode 100644 index 0000000..44a81aa --- /dev/null +++ b/src/assets/icons/svg/color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/company.svg b/src/assets/icons/svg/company.svg new file mode 100644 index 0000000..fcf1394 --- /dev/null +++ b/src/assets/icons/svg/company.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/component.svg b/src/assets/icons/svg/component.svg new file mode 100644 index 0000000..29c3458 --- /dev/null +++ b/src/assets/icons/svg/component.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/dashboard.svg b/src/assets/icons/svg/dashboard.svg new file mode 100644 index 0000000..5317d37 --- /dev/null +++ b/src/assets/icons/svg/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/date-range.svg b/src/assets/icons/svg/date-range.svg new file mode 100644 index 0000000..fda571e --- /dev/null +++ b/src/assets/icons/svg/date-range.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/date.svg b/src/assets/icons/svg/date.svg new file mode 100644 index 0000000..52dc73e --- /dev/null +++ b/src/assets/icons/svg/date.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/dict.svg b/src/assets/icons/svg/dict.svg new file mode 100644 index 0000000..4849377 --- /dev/null +++ b/src/assets/icons/svg/dict.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/documentation.svg b/src/assets/icons/svg/documentation.svg new file mode 100644 index 0000000..7043122 --- /dev/null +++ b/src/assets/icons/svg/documentation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/download.svg b/src/assets/icons/svg/download.svg new file mode 100644 index 0000000..c896951 --- /dev/null +++ b/src/assets/icons/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/drag.svg b/src/assets/icons/svg/drag.svg new file mode 100644 index 0000000..4185d3c --- /dev/null +++ b/src/assets/icons/svg/drag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/druid.svg b/src/assets/icons/svg/druid.svg new file mode 100644 index 0000000..a2b4b4e --- /dev/null +++ b/src/assets/icons/svg/druid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/edit.svg b/src/assets/icons/svg/edit.svg new file mode 100644 index 0000000..d26101f --- /dev/null +++ b/src/assets/icons/svg/edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/education.svg b/src/assets/icons/svg/education.svg new file mode 100644 index 0000000..7bfb01d --- /dev/null +++ b/src/assets/icons/svg/education.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/email.svg b/src/assets/icons/svg/email.svg new file mode 100644 index 0000000..74d25e2 --- /dev/null +++ b/src/assets/icons/svg/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/example.svg b/src/assets/icons/svg/example.svg new file mode 100644 index 0000000..46f42b5 --- /dev/null +++ b/src/assets/icons/svg/example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/excel.svg b/src/assets/icons/svg/excel.svg new file mode 100644 index 0000000..74d97b8 --- /dev/null +++ b/src/assets/icons/svg/excel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/exit-fullscreen.svg b/src/assets/icons/svg/exit-fullscreen.svg new file mode 100644 index 0000000..485c128 --- /dev/null +++ b/src/assets/icons/svg/exit-fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eye-open.svg b/src/assets/icons/svg/eye-open.svg new file mode 100644 index 0000000..88dcc98 --- /dev/null +++ b/src/assets/icons/svg/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/eye.svg b/src/assets/icons/svg/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/src/assets/icons/svg/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/finish.svg b/src/assets/icons/svg/finish.svg new file mode 100644 index 0000000..4685c23 --- /dev/null +++ b/src/assets/icons/svg/finish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/form.svg b/src/assets/icons/svg/form.svg new file mode 100644 index 0000000..dcbaa18 --- /dev/null +++ b/src/assets/icons/svg/form.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/fullscreen.svg b/src/assets/icons/svg/fullscreen.svg new file mode 100644 index 0000000..0e86b6f --- /dev/null +++ b/src/assets/icons/svg/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/gitee.svg b/src/assets/icons/svg/gitee.svg new file mode 100644 index 0000000..6324608 --- /dev/null +++ b/src/assets/icons/svg/gitee.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/svg/github.svg b/src/assets/icons/svg/github.svg new file mode 100644 index 0000000..db0a0d4 --- /dev/null +++ b/src/assets/icons/svg/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/guide.svg b/src/assets/icons/svg/guide.svg new file mode 100644 index 0000000..b271001 --- /dev/null +++ b/src/assets/icons/svg/guide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/icon.svg b/src/assets/icons/svg/icon.svg new file mode 100644 index 0000000..82be8ee --- /dev/null +++ b/src/assets/icons/svg/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/input.svg b/src/assets/icons/svg/input.svg new file mode 100644 index 0000000..ab91381 --- /dev/null +++ b/src/assets/icons/svg/input.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/international.svg b/src/assets/icons/svg/international.svg new file mode 100644 index 0000000..e9b56ee --- /dev/null +++ b/src/assets/icons/svg/international.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/job.svg b/src/assets/icons/svg/job.svg new file mode 100644 index 0000000..2a93a25 --- /dev/null +++ b/src/assets/icons/svg/job.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/language.svg b/src/assets/icons/svg/language.svg new file mode 100644 index 0000000..0082b57 --- /dev/null +++ b/src/assets/icons/svg/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/link.svg b/src/assets/icons/svg/link.svg new file mode 100644 index 0000000..48197ba --- /dev/null +++ b/src/assets/icons/svg/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/list.svg b/src/assets/icons/svg/list.svg new file mode 100644 index 0000000..20259ed --- /dev/null +++ b/src/assets/icons/svg/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/lock.svg b/src/assets/icons/svg/lock.svg new file mode 100644 index 0000000..74fee54 --- /dev/null +++ b/src/assets/icons/svg/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/log.svg b/src/assets/icons/svg/log.svg new file mode 100644 index 0000000..d879d33 --- /dev/null +++ b/src/assets/icons/svg/log.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/logininfor.svg b/src/assets/icons/svg/logininfor.svg new file mode 100644 index 0000000..267f844 --- /dev/null +++ b/src/assets/icons/svg/logininfor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/maxkey.svg b/src/assets/icons/svg/maxkey.svg new file mode 100644 index 0000000..f8f8a7d --- /dev/null +++ b/src/assets/icons/svg/maxkey.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/svg/message.svg b/src/assets/icons/svg/message.svg new file mode 100644 index 0000000..14ca817 --- /dev/null +++ b/src/assets/icons/svg/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/model.svg b/src/assets/icons/svg/model.svg new file mode 100644 index 0000000..0c57d70 --- /dev/null +++ b/src/assets/icons/svg/model.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/money.svg b/src/assets/icons/svg/money.svg new file mode 100644 index 0000000..c1580de --- /dev/null +++ b/src/assets/icons/svg/money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/monitor.svg b/src/assets/icons/svg/monitor.svg new file mode 100644 index 0000000..bc308cb --- /dev/null +++ b/src/assets/icons/svg/monitor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/my-copy.svg b/src/assets/icons/svg/my-copy.svg new file mode 100644 index 0000000..49f69fa --- /dev/null +++ b/src/assets/icons/svg/my-copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/my-task.svg b/src/assets/icons/svg/my-task.svg new file mode 100644 index 0000000..1f1ea44 --- /dev/null +++ b/src/assets/icons/svg/my-task.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/nested.svg b/src/assets/icons/svg/nested.svg new file mode 100644 index 0000000..06713a8 --- /dev/null +++ b/src/assets/icons/svg/nested.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/number.svg b/src/assets/icons/svg/number.svg new file mode 100644 index 0000000..ad5ce9a --- /dev/null +++ b/src/assets/icons/svg/number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/online.svg b/src/assets/icons/svg/online.svg new file mode 100644 index 0000000..330a202 --- /dev/null +++ b/src/assets/icons/svg/online.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/password.svg b/src/assets/icons/svg/password.svg new file mode 100644 index 0000000..6c64def --- /dev/null +++ b/src/assets/icons/svg/password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/pdf.svg b/src/assets/icons/svg/pdf.svg new file mode 100644 index 0000000..957aa0c --- /dev/null +++ b/src/assets/icons/svg/pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/people.svg b/src/assets/icons/svg/people.svg new file mode 100644 index 0000000..2bd54ae --- /dev/null +++ b/src/assets/icons/svg/people.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/peoples.svg b/src/assets/icons/svg/peoples.svg new file mode 100644 index 0000000..aab852e --- /dev/null +++ b/src/assets/icons/svg/peoples.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/phone.svg b/src/assets/icons/svg/phone.svg new file mode 100644 index 0000000..ab8e8c4 --- /dev/null +++ b/src/assets/icons/svg/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/post.svg b/src/assets/icons/svg/post.svg new file mode 100644 index 0000000..2922c61 --- /dev/null +++ b/src/assets/icons/svg/post.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/process-definition.svg b/src/assets/icons/svg/process-definition.svg new file mode 100644 index 0000000..202d200 --- /dev/null +++ b/src/assets/icons/svg/process-definition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/qq.svg b/src/assets/icons/svg/qq.svg new file mode 100644 index 0000000..ee13d4e --- /dev/null +++ b/src/assets/icons/svg/qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/question.svg b/src/assets/icons/svg/question.svg new file mode 100644 index 0000000..cf75bd4 --- /dev/null +++ b/src/assets/icons/svg/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/radio.svg b/src/assets/icons/svg/radio.svg new file mode 100644 index 0000000..0cde345 --- /dev/null +++ b/src/assets/icons/svg/radio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/rate.svg b/src/assets/icons/svg/rate.svg new file mode 100644 index 0000000..aa3b14d --- /dev/null +++ b/src/assets/icons/svg/rate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/redis-list.svg b/src/assets/icons/svg/redis-list.svg new file mode 100644 index 0000000..98a15b2 --- /dev/null +++ b/src/assets/icons/svg/redis-list.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/redis.svg b/src/assets/icons/svg/redis.svg new file mode 100644 index 0000000..2f1d62d --- /dev/null +++ b/src/assets/icons/svg/redis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/row.svg b/src/assets/icons/svg/row.svg new file mode 100644 index 0000000..0780992 --- /dev/null +++ b/src/assets/icons/svg/row.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/search.svg b/src/assets/icons/svg/search.svg new file mode 100644 index 0000000..84233dd --- /dev/null +++ b/src/assets/icons/svg/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/select.svg b/src/assets/icons/svg/select.svg new file mode 100644 index 0000000..d628382 --- /dev/null +++ b/src/assets/icons/svg/select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/server.svg b/src/assets/icons/svg/server.svg new file mode 100644 index 0000000..eb287e3 --- /dev/null +++ b/src/assets/icons/svg/server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/shopping.svg b/src/assets/icons/svg/shopping.svg new file mode 100644 index 0000000..87513e7 --- /dev/null +++ b/src/assets/icons/svg/shopping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/size.svg b/src/assets/icons/svg/size.svg new file mode 100644 index 0000000..ddb25b8 --- /dev/null +++ b/src/assets/icons/svg/size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/skill.svg b/src/assets/icons/svg/skill.svg new file mode 100644 index 0000000..a3b7312 --- /dev/null +++ b/src/assets/icons/svg/skill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/slider.svg b/src/assets/icons/svg/slider.svg new file mode 100644 index 0000000..fbe4f39 --- /dev/null +++ b/src/assets/icons/svg/slider.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/star.svg b/src/assets/icons/svg/star.svg new file mode 100644 index 0000000..6cf86e6 --- /dev/null +++ b/src/assets/icons/svg/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/swagger.svg b/src/assets/icons/svg/swagger.svg new file mode 100644 index 0000000..05d4e7b --- /dev/null +++ b/src/assets/icons/svg/swagger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/switch.svg b/src/assets/icons/svg/switch.svg new file mode 100644 index 0000000..0ba61e3 --- /dev/null +++ b/src/assets/icons/svg/switch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/system.svg b/src/assets/icons/svg/system.svg new file mode 100644 index 0000000..5992593 --- /dev/null +++ b/src/assets/icons/svg/system.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tab.svg b/src/assets/icons/svg/tab.svg new file mode 100644 index 0000000..b4b48e4 --- /dev/null +++ b/src/assets/icons/svg/tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/table.svg b/src/assets/icons/svg/table.svg new file mode 100644 index 0000000..0e3dc9d --- /dev/null +++ b/src/assets/icons/svg/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/textarea.svg b/src/assets/icons/svg/textarea.svg new file mode 100644 index 0000000..2709f29 --- /dev/null +++ b/src/assets/icons/svg/textarea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/theme.svg b/src/assets/icons/svg/theme.svg new file mode 100644 index 0000000..5982a2f --- /dev/null +++ b/src/assets/icons/svg/theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/time-range.svg b/src/assets/icons/svg/time-range.svg new file mode 100644 index 0000000..13c1202 --- /dev/null +++ b/src/assets/icons/svg/time-range.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/time.svg b/src/assets/icons/svg/time.svg new file mode 100644 index 0000000..b376e32 --- /dev/null +++ b/src/assets/icons/svg/time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tool.svg b/src/assets/icons/svg/tool.svg new file mode 100644 index 0000000..48e0e35 --- /dev/null +++ b/src/assets/icons/svg/tool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/topiam.svg b/src/assets/icons/svg/topiam.svg new file mode 100644 index 0000000..e7ea057 --- /dev/null +++ b/src/assets/icons/svg/topiam.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/svg/tree-table.svg b/src/assets/icons/svg/tree-table.svg new file mode 100644 index 0000000..8aafdb8 --- /dev/null +++ b/src/assets/icons/svg/tree-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/tree.svg b/src/assets/icons/svg/tree.svg new file mode 100644 index 0000000..dd4b7dd --- /dev/null +++ b/src/assets/icons/svg/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/upload.svg b/src/assets/icons/svg/upload.svg new file mode 100644 index 0000000..bae49c0 --- /dev/null +++ b/src/assets/icons/svg/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/user.svg b/src/assets/icons/svg/user.svg new file mode 100644 index 0000000..0ba0716 --- /dev/null +++ b/src/assets/icons/svg/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/validCode.svg b/src/assets/icons/svg/validCode.svg new file mode 100644 index 0000000..cfb1021 --- /dev/null +++ b/src/assets/icons/svg/validCode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/waiting.svg b/src/assets/icons/svg/waiting.svg new file mode 100644 index 0000000..2c2042d --- /dev/null +++ b/src/assets/icons/svg/waiting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/wechat.svg b/src/assets/icons/svg/wechat.svg new file mode 100644 index 0000000..c586e55 --- /dev/null +++ b/src/assets/icons/svg/wechat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/workflow.svg b/src/assets/icons/svg/workflow.svg new file mode 100644 index 0000000..2f7423a --- /dev/null +++ b/src/assets/icons/svg/workflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/zip.svg b/src/assets/icons/svg/zip.svg new file mode 100644 index 0000000..f806fc4 --- /dev/null +++ b/src/assets/icons/svg/zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/dark.svg b/src/assets/images/dark.svg new file mode 100644 index 0000000..f646bd7 --- /dev/null +++ b/src/assets/images/dark.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/light.svg b/src/assets/images/light.svg new file mode 100644 index 0000000..ab7cc08 --- /dev/null +++ b/src/assets/images/light.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/profile.jpg b/src/assets/images/profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4fde57deff486be192767ea2583f14fc81c5f8f GIT binary patch literal 275351 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

5&=UtbuKTL=BWHY7GRauRiSAxrLG}5M#ZArZ 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

0$o8F+R=5!FD=A%y_mApk^?G#?2e6>5yb$|0Oj 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 G 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 d+2AD?_zza div > .el-submenu > .el-submenu__title .el-submenu__icon-arrow { + display: none; +} + +.el-dropdown .el-dropdown-link { + color: var(--el-color-primary) !important; +} + +/* 当 el-form 的 inline 属性为 true 时 */ +/* 设置 label 的宽度默认为 68px */ +.el-form--inline .el-form-item__label { + width: 68px; +} + +/* 设置 el-select 的宽度默认为 240px */ +.el-form--inline .el-select { + width: 240px; +} + +/* 设置 el-input 的宽度默认为 240px */ +.el-form--inline .el-input { + width: 240px; +} + +/* 设置 el-message-box 消息弹框内容强制换行 */ +.el-message-box .el-message-box__message { + word-break: break-word; +} diff --git a/src/assets/styles/mixin.scss b/src/assets/styles/mixin.scss new file mode 100644 index 0000000..5250e71 --- /dev/null +++ b/src/assets/styles/mixin.scss @@ -0,0 +1,60 @@ +@mixin clearfix { + &:after { + content: ''; + display: table; + clear: both; + } +} + +@mixin scrollBar { + &::-webkit-scrollbar-track-piece { + background: #d3dce6; + } + + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-thumb { + background: #99a9bf; + border-radius: 20px; + } +} + +@mixin relative { + position: relative; + width: 100%; + height: 100%; +} + +@mixin pct($pct) { + width: #{$pct}; + position: relative; + margin: 0 auto; +} + +@mixin triangle($width, $height, $color, $direction) { + $width: $width/2; + $color-border-style: $height solid $color; + $transparent-border-style: $width solid transparent; + height: 0; + width: 0; + + @if $direction==up { + border-bottom: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } @else if $direction==right { + border-left: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } @else if $direction==down { + border-top: $color-border-style; + border-left: $transparent-border-style; + border-right: $transparent-border-style; + } @else if $direction==left { + border-right: $color-border-style; + border-top: $transparent-border-style; + border-bottom: $transparent-border-style; + } +} diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss new file mode 100644 index 0000000..d85da55 --- /dev/null +++ b/src/assets/styles/sidebar.scss @@ -0,0 +1,232 @@ +#app { + .main-container { + height: 100%; + transition: margin-left 0.28s; + margin-left: $base-sidebar-width; + position: relative; + } + + .sidebarHide { + margin-left: 0 !important; + } + + .sidebar-container { + -webkit-transition: width 0.28s; + transition: width 0.28s; + width: $base-sidebar-width !important; + background-color: $base-menu-background; + height: 100%; + position: fixed; + font-size: 0; + top: 0; + bottom: 0; + left: 0; + z-index: 1001; + overflow: hidden; + -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); + + // reset element-ui css + .horizontal-collapse-transition { + transition: + 0s width ease-in-out, + 0s padding-left ease-in-out, + 0s padding-right ease-in-out; + } + + .scrollbar-wrapper { + overflow-x: hidden !important; + } + + .el-scrollbar__bar.is-vertical { + right: 0; + } + + .el-scrollbar { + height: 100%; + } + + &.has-logo { + .el-scrollbar { + height: calc(100% - 50px); + } + } + + .is-horizontal { + display: none; + } + + a { + display: inline-block; + width: 100%; + overflow: hidden; + } + + .svg-icon { + margin-right: 16px; + } + + .el-menu { + border: none; + height: 100%; + width: 100% !important; + } + + .el-menu-item, + .menu-title { + overflow: hidden !important; + text-overflow: ellipsis !important; + white-space: nowrap !important; + } + + .el-menu-item .el-menu-tooltip__trigger { + display: inline-block !important; + } + + // menu hover + .theme-dark .sub-menu-title-noDropdown, + .theme-dark .el-sub-menu__title { + &:hover { + background-color: $base-sub-menu-title-hover !important; + } + } + .sub-menu-title-noDropdown, + .el-sub-menu__title { + &:hover { + background-color: rgba(0, 0, 0, 0.05) !important; + } + } + + & .theme-dark .is-active > .el-sub-menu__title { + color: $base-menu-color-active !important; + } + + & .nest-menu .el-sub-menu > .el-sub-menu__title, + & .el-sub-menu .el-menu-item { + min-width: $base-sidebar-width !important; + &:hover { + background-color: rgba(0, 0, 0, 0.1) !important; + } + } + + & .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title, + & .theme-dark .el-sub-menu .el-menu-item { + background-color: $base-sub-menu-background !important; + + &:hover { + background-color: $base-sub-menu-hover !important; + } + } + + & .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title, + & .theme-dark .el-menu-item { + &:hover { + // you can use $sub-menuHover + background-color: $base-menu-hover !important; + } + } + & .nest-menu .el-sub-menu > .el-sub-menu__title, + & .el-menu-item { + &:hover { + // you can use $sub-menuHover + background-color: rgba(0, 0, 0, 0.04) !important; + } + } + } + + .hideSidebar { + .sidebar-container { + width: 54px !important; + } + + .main-container { + margin-left: 54px; + } + + .sub-menu-title-noDropdown { + padding: 0 !important; + position: relative; + + .el-tooltip { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + } + } + + .el-sub-menu { + overflow: hidden; + + & > .el-sub-menu__title { + padding: 0 !important; + + .svg-icon { + margin-left: 20px; + } + } + } + + .el-menu--collapse { + .el-sub-menu { + & > .el-sub-menu__title { + & > span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + & > i { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block; + } + } + } + } + } + + .el-menu--collapse .el-menu .el-sub-menu { + min-width: $base-sidebar-width !important; + } + + // mobile responsive + .mobile { + .main-container { + margin-left: 0px; + } + + .sidebar-container { + transition: transform 0.28s; + width: $base-sidebar-width !important; + } + + &.hideSidebar { + .sidebar-container { + pointer-events: none; + transition-duration: 0.3s; + transform: translate3d(-$base-sidebar-width, 0, 0); + } + } + } + + .withoutAnimation { + .main-container, + .sidebar-container { + transition: none; + } + } +} + +// when menu collapsed +.el-menu--vertical { + & > .el-menu { + .svg-icon { + margin-right: 16px; + } + } +} diff --git a/src/assets/styles/transition.scss b/src/assets/styles/transition.scss new file mode 100644 index 0000000..468ad3c --- /dev/null +++ b/src/assets/styles/transition.scss @@ -0,0 +1,49 @@ +// global transition css + +/* fade */ +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.28s; +} + +.fade-enter, +.fade-leave-active { + opacity: 0; +} + +/* fade-transform */ +.fade-transform--move, +.fade-transform-leave-active, +.fade-transform-enter-active { + transition: all 0.5s; +} + +.fade-transform-enter { + opacity: 0; + transform: translateX(-30px); +} + +.fade-transform-leave-to { + opacity: 0; + transform: translateX(30px); +} + +/* breadcrumb transition */ +.breadcrumb-enter-active, +.breadcrumb-leave-active { + transition: all 0.5s; +} + +.breadcrumb-enter, +.breadcrumb-leave-active { + opacity: 0; + transform: translateX(20px); +} + +.breadcrumb-move { + transition: all 0.5s; +} + +.breadcrumb-leave-active { + position: absolute; +} diff --git a/src/assets/styles/variables.module.scss b/src/assets/styles/variables.module.scss new file mode 100644 index 0000000..3aa871b --- /dev/null +++ b/src/assets/styles/variables.module.scss @@ -0,0 +1,135 @@ +// 全局SCSS变量 +:root { + --menuBg: #304156; + --menuColor: #bfcbd9; + --menuActiveText: #f4f4f5; + --menuHover: #263445; + + --subMenuBg: #1f2d3d; + --subMenuActiveText: #f4f4f5; + --subMenuHover: #001528; + --subMenuTitleHover: #293444; + + --fixedHeaderBg: #ffffff; + --tableHeaderBg: #f8f8f9; + --tableHeaderTextColor: #515a6e; + + // ele + --brder-color: #e8e8e8; + + // 添加 tag 相关变量 + --tags-view-active-bg: var(--el-color-primary); + --tags-view-active-border-color: var(--el-color-primary); +} + +html.dark { + --menuBg: #1d1e1f; + --menuColor: #bfcbd9; + --menuActiveText: #f4f4f5; + --menuHover: #171819; + + --subMenuBg: #1d1e1f; + --subMenuActiveText: #1d1e1f; + --subMenuHover: #171819; + --subMenuTitleHover: #171819; + + --fixedHeaderBg: #171819; + --tableHeaderBg: var(--el-bg-color); + --tableHeaderTextColor: var(--el-text-color); + + // 覆盖ele 高亮当前行的标准暗色 + .el-tree-node__content { + --el-color-primary-light-9: #262727; + } + + .el-button--primary { + --el-button-bg-color: var(--el-color-primary-dark-6); + --el-button-border-color: var(--el-color-primary-light-2); + } + + .el-switch { + --el-switch-on-color: var(--el-color-primary-dark-6); + --el-switch-border-color: var(--el-color-primary-light-2); + } + + .el-tag--primary { + --el-tag-bg-color: var(--el-color-primary-dark-6); + --el-tag-border-color: var(--el-color-primary-light-2); + } + + // 在深色模式下使用更深的颜色 + --tags-view-active-bg: var(--el-color-primary-dark-6); + --tags-view-active-border-color: var(--el-color-primary-light-2); + // vxe-table 主题 + --vxe-font-color: #98989e; + --vxe-primary-color: #2c7ecf; + --vxe-icon-background-color: #98989e; + --vxe-table-font-color: #98989e; + --vxe-table-resizable-color: #95969a; + --vxe-table-header-background-color: #28282a; + --vxe-table-body-background-color: #151518; + --vxe-table-background-color: #4a5663; + --vxe-table-border-width: 1px; + --vxe-table-border-color: #37373a; + --vxe-toolbar-background-color: #37373a; + + // ele + --brder-color: #37373a; +} + +// base color +$blue: #324157; +$light-blue: #3a71a8; +$red: #c03639; +$pink: #e65d6e; +$green: #30b08f; +$tiffany: #4ab7bd; +$yellow: #fec171; +$panGreen: #30b08f; + +// 默认菜单主题风格 +$base-menu-color: var(--menuColor); +$base-menu-hover: var(--menuHover); +$base-menu-color-active: var(--menuActiveText); +$base-menu-background: var(--menuBg); +$base-logo-title-color: #ffffff; + +$base-menu-light-color: rgba(0, 0, 0, 0.7); +$base-menu-light-background: #ffffff; +$base-logo-light-title-color: #001529; + +$base-sub-menu-background: var(--subMenuBg); +$base-sub-menu-hover: var(--subMenuHover); +$base-sub-menu-title-hover: var(--subMenuTitleHover); +// 表单头背景色和标题颜色 +$fixed-header-bg: var(--fixedHeaderBg); +$table-header-bg: var(--tableHeaderBg); +$table-header-text-color: var(--tableHeaderTextColor); + +$--color-primary: #409eff; +$--color-success: #67c23a; +$--color-warning: #e6a23c; +$--color-danger: #f56c6c; +$--color-info: #909399; + +$base-sidebar-width: 200px; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + menuColor: $base-menu-color; + menuLightColor: $base-menu-light-color; + menuColorActive: $base-menu-color-active; + menuBackground: $base-menu-background; + menuLightBackground: $base-menu-light-background; + subMenuBackground: $base-sub-menu-background; + subMenuHover: $base-sub-menu-hover; + sideBarWidth: $base-sidebar-width; + logoTitleColor: $base-logo-title-color; + logoLightTitleColor: $base-logo-light-title-color; + primaryColor: $--color-primary; + successColor: $--color-success; + dangerColor: $--color-danger; + infoColor: $--color-info; + warningColor: $--color-warning; +} \ No newline at end of file diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue new file mode 100644 index 0000000..a8b2f68 --- /dev/null +++ b/src/components/Breadcrumb/index.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/components/BuildCode/index.vue b/src/components/BuildCode/index.vue new file mode 100644 index 0000000..0b8e3f4 --- /dev/null +++ b/src/components/BuildCode/index.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/BuildCode/render.vue b/src/components/BuildCode/render.vue new file mode 100644 index 0000000..aeb9312 --- /dev/null +++ b/src/components/BuildCode/render.vue @@ -0,0 +1,57 @@ + + + + diff --git a/src/components/DictTag/index.vue b/src/components/DictTag/index.vue new file mode 100644 index 0000000..ad326c2 --- /dev/null +++ b/src/components/DictTag/index.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue new file mode 100644 index 0000000..ba70fbb --- /dev/null +++ b/src/components/Editor/index.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue new file mode 100644 index 0000000..b22d09a --- /dev/null +++ b/src/components/FileUpload/index.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/src/components/Hamburger/index.vue b/src/components/Hamburger/index.vue new file mode 100644 index 0000000..f9f5e62 --- /dev/null +++ b/src/components/Hamburger/index.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/components/IconSelect/index.vue b/src/components/IconSelect/index.vue new file mode 100644 index 0000000..3bfde4d --- /dev/null +++ b/src/components/IconSelect/index.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/components/IconSelect/requireIcons.ts b/src/components/IconSelect/requireIcons.ts new file mode 100644 index 0000000..9f06d69 --- /dev/null +++ b/src/components/IconSelect/requireIcons.ts @@ -0,0 +1,7 @@ +const icons: string[] = []; +const modules = import.meta.glob('./../../assets/icons/svg/*.svg'); +for (const path in modules) { + const p = path.split('assets/icons/svg/')[1].split('.svg')[0]; + icons.push(p); +} +export default icons; diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue new file mode 100644 index 0000000..98e6479 --- /dev/null +++ b/src/components/ImagePreview/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue new file mode 100644 index 0000000..0778121 --- /dev/null +++ b/src/components/ImageUpload/index.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/components/LangSelect/index.vue b/src/components/LangSelect/index.vue new file mode 100644 index 0000000..b5fafd3 --- /dev/null +++ b/src/components/LangSelect/index.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue new file mode 100644 index 0000000..ac02193 --- /dev/null +++ b/src/components/Pagination/index.vue @@ -0,0 +1,88 @@ + + + + + + + diff --git a/src/components/ParentView/index.vue b/src/components/ParentView/index.vue new file mode 100644 index 0000000..98240ae --- /dev/null +++ b/src/components/ParentView/index.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/Process/approvalRecord.vue b/src/components/Process/approvalRecord.vue new file mode 100644 index 0000000..a4bd607 --- /dev/null +++ b/src/components/Process/approvalRecord.vue @@ -0,0 +1,280 @@ + + + diff --git a/src/components/Process/processMeddle.vue b/src/components/Process/processMeddle.vue new file mode 100644 index 0000000..7224755 --- /dev/null +++ b/src/components/Process/processMeddle.vue @@ -0,0 +1,207 @@ + + diff --git a/src/components/Process/submitVerify.vue b/src/components/Process/submitVerify.vue new file mode 100644 index 0000000..1c985de --- /dev/null +++ b/src/components/Process/submitVerify.vue @@ -0,0 +1,421 @@ + + + diff --git a/src/components/RightToolbar/index.vue b/src/components/RightToolbar/index.vue new file mode 100644 index 0000000..e8c9d65 --- /dev/null +++ b/src/components/RightToolbar/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/components/RoleSelect/index.vue b/src/components/RoleSelect/index.vue new file mode 100644 index 0000000..56a784b --- /dev/null +++ b/src/components/RoleSelect/index.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/components/RuoYiDoc/index.vue b/src/components/RuoYiDoc/index.vue new file mode 100644 index 0000000..1e27d89 --- /dev/null +++ b/src/components/RuoYiDoc/index.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/components/Screenfull/index.vue b/src/components/Screenfull/index.vue new file mode 100644 index 0000000..ce0b373 --- /dev/null +++ b/src/components/Screenfull/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue new file mode 100644 index 0000000..abf72cc --- /dev/null +++ b/src/components/SizeSelect/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue new file mode 100644 index 0000000..05dfe87 --- /dev/null +++ b/src/components/SvgIcon/index.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/components/TopNav/index.vue b/src/components/TopNav/index.vue new file mode 100644 index 0000000..cfe2cd7 --- /dev/null +++ b/src/components/TopNav/index.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/components/TreeSelect/index.vue b/src/components/TreeSelect/index.vue new file mode 100644 index 0000000..7accd6b --- /dev/null +++ b/src/components/TreeSelect/index.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue new file mode 100644 index 0000000..937a395 --- /dev/null +++ b/src/components/UserSelect/index.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/src/components/iFrame/index.vue b/src/components/iFrame/index.vue new file mode 100644 index 0000000..98f2224 --- /dev/null +++ b/src/components/iFrame/index.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue new file mode 100644 index 0000000..3082beb --- /dev/null +++ b/src/layout/components/Settings/index.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/src/layout/components/Sidebar/Link.vue b/src/layout/components/Sidebar/Link.vue new file mode 100644 index 0000000..fd75f35 --- /dev/null +++ b/src/layout/components/Sidebar/Link.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..a4f20d0 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/layout/components/SocialCallback/index.vue b/src/layout/components/SocialCallback/index.vue new file mode 100644 index 0000000..746de20 --- /dev/null +++ b/src/layout/components/SocialCallback/index.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/layout/components/TagsView/ScrollPane.vue b/src/layout/components/TagsView/ScrollPane.vue new file mode 100644 index 0000000..3b30043 --- /dev/null +++ b/src/layout/components/TagsView/ScrollPane.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/layout/components/index.ts b/src/layout/components/index.ts new file mode 100644 index 0000000..47c83e1 --- /dev/null +++ b/src/layout/components/index.ts @@ -0,0 +1,4 @@ +export { default as AppMain } from './AppMain.vue'; +export { default as Navbar } from './Navbar.vue'; +export { default as Settings } from './Settings/index.vue'; +export { default as TagsView } from './TagsView/index.vue'; diff --git a/src/layout/index.vue b/src/layout/index.vue new file mode 100644 index 0000000..207a470 --- /dev/null +++ b/src/layout/index.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..592de58 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,57 @@ +import { createApp } from 'vue'; +// global css +import 'virtual:uno.css'; +import '@/assets/styles/index.scss'; +import 'element-plus/theme-chalk/dark/css-vars.css'; + +// App、router、store +import App from './App.vue'; +import store from './store'; +import router from './router'; + +// 自定义指令 +import directive from './directive'; + +// 注册插件 +import plugins from './plugins/index'; // plugins + +// 高亮组件 +// import 'highlight.js/styles/a11y-light.css'; +import 'highlight.js/styles/atom-one-dark.css'; +import 'highlight.js/lib/common'; +import HighLight from '@highlightjs/vue-plugin'; + +// svg图标 +import 'virtual:svg-icons-register'; +import ElementIcons from '@/plugins/svgicon'; + +// permission control +import './permission'; + +// 国际化 +import i18n from '@/lang/index'; + +// vxeTable +import VXETable from 'vxe-table'; +import 'vxe-table/lib/style.css'; +VXETable.config({ + zIndex: 999999 +}); + +// 修改 el-dialog 默认点击遮照为不关闭 +import { ElDialog } from 'element-plus'; +ElDialog.props.closeOnClickModal.default = false; + +const app = createApp(App); + +app.use(HighLight); +app.use(ElementIcons); +app.use(router); +app.use(store); +app.use(i18n); +app.use(VXETable); +app.use(plugins); +// 自定义指令 +directive(app); + +app.mount('#app'); diff --git a/src/permission.ts b/src/permission.ts new file mode 100644 index 0000000..b05f8c3 --- /dev/null +++ b/src/permission.ts @@ -0,0 +1,69 @@ +import { to as tos } from 'await-to-js'; +import router from './router'; +import NProgress from 'nprogress'; +import 'nprogress/nprogress.css'; +import { getToken } from '@/utils/auth'; +import { isHttp, isPathMatch } from '@/utils/validate'; +import { isRelogin } from '@/utils/request'; +import useUserStore from '@/store/modules/user'; +import useSettingsStore from '@/store/modules/settings'; +import usePermissionStore from '@/store/modules/permission'; + +NProgress.configure({ showSpinner: false }); +const whiteList = ['/login', '/register', '/social-callback', '/register*', '/register/*']; + +const isWhiteList = (path: string) => { + return whiteList.some(pattern => isPathMatch(pattern, path)) +} + +router.beforeEach(async (to, from, next) => { + NProgress.start(); + if (getToken()) { + to.meta.title && useSettingsStore().setTitle(to.meta.title); + /* has token*/ + if (to.path === '/login') { + next({ path: '/' }); + NProgress.done(); + } else if (isWhiteList(to.path)) { + next(); + } else { + if (useUserStore().roles.length === 0) { + isRelogin.show = true; + // 判断当前用户是否已拉取完user_info信息 + const [err] = await tos(useUserStore().getInfo()); + if (err) { + await useUserStore().logout(); + ElMessage.error(err); + next({ path: '/' }); + } else { + isRelogin.show = false; + const accessRoutes = await usePermissionStore().generateRoutes(); + // 根据roles权限生成可访问的路由表 + accessRoutes.forEach((route) => { + if (!isHttp(route.path)) { + router.addRoute(route); // 动态添加可访问路由表 + } + }); + // @ts-expect-error hack方法 确保addRoutes已完成 + next({ path: to.path, replace: true, params: to.params, query: to.query, hash: to.hash, name: to.name as string }); // hack方法 确保addRoutes已完成 + } + } else { + next(); + } + } + } else { + // 没有token + if (isWhiteList(to.path)) { + // 在免登录白名单,直接进入 + next(); + } else { + const redirect = encodeURIComponent(to.fullPath || '/'); + next(`/login?redirect=${redirect}`); // 否则全部重定向到登录页 + NProgress.done(); + } + } +}); + +router.afterEach(() => { + NProgress.done(); +}); diff --git a/src/plugins/auth.ts b/src/plugins/auth.ts new file mode 100644 index 0000000..74c91ee --- /dev/null +++ b/src/plugins/auth.ts @@ -0,0 +1,60 @@ +import useUserStore from '@/store/modules/user'; + +const authPermission = (permission: string): boolean => { + const all_permission = '*:*:*'; + const permissions: string[] = useUserStore().permissions; + if (permission && permission.length > 0) { + return permissions.some((v) => { + return all_permission === v || v === permission; + }); + } else { + return false; + } +}; + +const authRole = (role: string): boolean => { + const super_admin = 'admin'; + const roles = useUserStore().roles; + if (role && role.length > 0) { + return roles.some((v) => { + return super_admin === v || v === role; + }); + } else { + return false; + } +}; + +export default { + // 验证用户是否具备某权限 + hasPermi(permission: string): boolean { + return authPermission(permission); + }, + // 验证用户是否含有指定权限,只需包含其中一个 + hasPermiOr(permissions: string[]): boolean { + return permissions.some((item) => { + return authPermission(item); + }); + }, + // 验证用户是否含有指定权限,必须全部拥有 + hasPermiAnd(permissions: string[]): boolean { + return permissions.every((item) => { + return authPermission(item); + }); + }, + // 验证用户是否具备某角色 + hasRole(role: string): boolean { + return authRole(role); + }, + // 验证用户是否含有指定角色,只需包含其中一个 + hasRoleOr(roles: string[]): boolean { + return roles.some((item) => { + return authRole(item); + }); + }, + // 验证用户是否含有指定角色,必须全部拥有 + hasRoleAnd(roles: string[]): boolean { + return roles.every((item) => { + return authRole(item); + }); + } +}; diff --git a/src/plugins/cache.ts b/src/plugins/cache.ts new file mode 100644 index 0000000..e5ceead --- /dev/null +++ b/src/plugins/cache.ts @@ -0,0 +1,79 @@ +const sessionCache = { + set(key: string, value: any) { + if (!sessionStorage) { + return; + } + if (key != null && value != null) { + sessionStorage.setItem(key, value); + } + }, + get(key: string) { + if (!sessionStorage) { + return null; + } + if (key == null) { + return null; + } + return sessionStorage.getItem(key); + }, + setJSON(key: string, jsonValue: any) { + if (jsonValue != null) { + this.set(key, JSON.stringify(jsonValue)); + } + }, + getJSON(key: string) { + const value = this.get(key); + if (value != null) { + return JSON.parse(value); + } + return null; + }, + remove(key: string) { + sessionStorage.removeItem(key); + } +}; +const localCache = { + set(key: string, value: any) { + if (!localStorage) { + return; + } + if (key != null && value != null) { + localStorage.setItem(key, value); + } + }, + get(key: string) { + if (!localStorage) { + return null; + } + if (key == null) { + return null; + } + return localStorage.getItem(key); + }, + setJSON(key: string, jsonValue: any) { + if (jsonValue != null) { + this.set(key, JSON.stringify(jsonValue)); + } + }, + getJSON(key: string) { + const value = this.get(key); + if (value != null) { + return JSON.parse(value); + } + return null; + }, + remove(key: string) { + localStorage.removeItem(key); + } +}; + +export default { + /** + * 会话级缓存 + */ + session: sessionCache, + /** + * 本地缓存 + */ + local: localCache +}; diff --git a/src/plugins/modal.ts b/src/plugins/modal.ts new file mode 100644 index 0000000..a8b0548 --- /dev/null +++ b/src/plugins/modal.ts @@ -0,0 +1,81 @@ +import { MessageBoxData } from 'element-plus'; +import { LoadingInstance } from 'element-plus/es/components/loading/src/loading'; +let loadingInstance: LoadingInstance; +export default { + // 消息提示 + msg(content: any) { + ElMessage.info(content); + }, + // 错误消息 + msgError(content: any) { + ElMessage.error(content); + }, + // 成功消息 + msgSuccess(content: any) { + ElMessage.success(content); + }, + // 警告消息 + msgWarning(content: any) { + ElMessage.warning(content); + }, + // 弹出提示 + alert(content: any) { + ElMessageBox.alert(content, '系统提示'); + }, + // 错误提示 + alertError(content: any) { + ElMessageBox.alert(content, '系统提示', { type: 'error' }); + }, + // 成功提示 + alertSuccess(content: any) { + ElMessageBox.alert(content, '系统提示', { type: 'success' }); + }, + // 警告提示 + alertWarning(content: any) { + ElMessageBox.alert(content, '系统提示', { type: 'warning' }); + }, + // 通知提示 + notify(content: any) { + ElNotification.info(content); + }, + // 错误通知 + notifyError(content: any) { + ElNotification.error(content); + }, + // 成功通知 + notifySuccess(content: any) { + ElNotification.success(content); + }, + // 警告通知 + notifyWarning(content: any) { + ElNotification.warning(content); + }, + // 确认窗体 + confirm(content: any): Promise { + return ElMessageBox.confirm(content, '系统提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }); + }, + // 提交内容 + prompt(content: any) { + return ElMessageBox.prompt(content, '系统提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }); + }, + // 打开遮罩层 + loading(content: string) { + loadingInstance = ElLoading.service({ + lock: true, + text: content, + background: 'rgba(0, 0, 0, 0.7)' + }); + }, + // 关闭遮罩层 + closeLoading() { + loadingInstance.close(); + } +}; diff --git a/src/plugins/svgicon.ts b/src/plugins/svgicon.ts new file mode 100644 index 0000000..8c68609 --- /dev/null +++ b/src/plugins/svgicon.ts @@ -0,0 +1,10 @@ +import * as ElementPlusIconsVue from '@element-plus/icons-vue'; +import { App } from 'vue'; + +export default { + install: (app: App) => { + for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component); + } + } +}; diff --git a/src/plugins/tab.ts b/src/plugins/tab.ts new file mode 100644 index 0000000..4b44dc6 --- /dev/null +++ b/src/plugins/tab.ts @@ -0,0 +1,96 @@ +import router from '@/router'; +import { RouteLocationMatched, RouteLocationNormalized, RouteLocationRaw } from 'vue-router'; +import useTagsViewStore from '@/store/modules/tagsView'; + +export default { + /** + * 刷新当前tab页签 + * @param obj 标签对象 + */ + async refreshPage(obj?: RouteLocationNormalized): Promise { + const { path, query, matched } = router.currentRoute.value; + if (obj === undefined) { + matched.forEach((m: RouteLocationMatched) => { + 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, + query: query, + matched: undefined, + fullPath: undefined, + hash: undefined, + params: undefined, + redirectedFrom: undefined, + meta: undefined + }; + } + } + }); + } + let query1: undefined | {} = {}; + let path1: undefined | string = ''; + if (obj) { + query1 = obj.query; + path1 = obj.path; + } + await useTagsViewStore().delCachedView(obj); + await router.replace({ + path: '/redirect' + path1, + query: query1 + }); + }, + // 关闭当前tab页签,打开新页签 + closeOpenPage(obj: RouteLocationRaw): void { + useTagsViewStore().delView(router.currentRoute.value); + if (obj !== undefined) { + router.push(obj); + } + }, + // 关闭指定tab页签 + async closePage(obj?: RouteLocationNormalized): Promise<{ visitedViews: RouteLocationNormalized[]; cachedViews: string[] } | any> { + if (obj === undefined) { + // prettier-ignore + const { visitedViews } = await useTagsViewStore().delView(router.currentRoute.value) + const latestView = visitedViews.slice(-1)[0]; + if (latestView) { + return router.push(latestView.fullPath); + } + return router.push('/'); + } + return useTagsViewStore().delView(obj); + }, + // 关闭所有tab页签 + closeAllPage() { + return useTagsViewStore().delAllViews(); + }, + // 关闭左侧tab页签 + closeLeftPage(obj?: RouteLocationNormalized) { + return useTagsViewStore().delLeftTags(obj || router.currentRoute.value); + }, + // 关闭右侧tab页签 + closeRightPage(obj?: RouteLocationNormalized) { + return useTagsViewStore().delRightTags(obj || router.currentRoute.value); + }, + // 关闭其他tab页签 + closeOtherPage(obj?: RouteLocationNormalized) { + return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); + }, + /** + * 打开tab页签 + * @param url 路由地址 + * @param title 标题 + * @param query 参数 + */ + openPage(url: string, title?: string, query?: any) { + const obj = { path: url, query: { ...query, title } }; + return router.push(obj); + }, + /** + * 修改tab页签 + * @param obj 标签对象 + */ + updatePage(obj: RouteLocationNormalized) { + return useTagsViewStore().updateVisitedView(obj); + } +}; diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..2ab09dd --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,211 @@ +import { createWebHistory, createRouter, RouteRecordRaw } from 'vue-router'; +/* Layout */ +import Layout from '@/layout/index.vue'; + +/** + * Note: 路由配置项 + * + * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 + * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 + * // 若你想不管路由下面的 children 声明的个数都显示你的根路由 + * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 + * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 + * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 + * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数 + * roles: ['admin', 'common'] // 访问路由的角色权限 + * permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限 + * meta : { + noCache: true // 如果设置为true,则不会被 缓存(默认 false) + title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 + icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg + breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示 + activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。 + } + */ + +// 公共路由 +export const constantRoutes: RouteRecordRaw[] = [ + { + path: '/redirect', + component: Layout, + hidden: true, + children: [ + { + path: '/redirect/:path(.*)', + component: () => import('@/views/redirect/index.vue') + } + ] + }, + { + path: '/social-callback', + hidden: true, + component: () => import('@/layout/components/SocialCallback/index.vue') + }, + { + path: '/login', + component: () => import('@/views/login.vue'), + hidden: true + }, + { + path: '/register', + component: () => import('@/views/register.vue'), + hidden: true + }, + { + path: '/:pathMatch(.*)*', + component: () => import('@/views/error/404.vue'), + hidden: true + }, + { + path: '/401', + component: () => import('@/views/error/401.vue'), + hidden: true + }, + { + path: '', + component: Layout, + redirect: '/index', + children: [ + { + path: '/index', + component: () => import('@/views/index.vue'), + name: 'Index', + meta: { title: '首页', icon: 'dashboard', affix: true } + } + ] + }, + { + path: '/user', + component: Layout, + hidden: true, + redirect: 'noredirect', + children: [ + { + path: 'profile', + component: () => import('@/views/system/user/profile/index.vue'), + name: 'Profile', + meta: { title: '个人中心', icon: 'user' } + } + ] + } +]; + +// 动态路由,基于用户权限动态去加载 +export const dynamicRoutes: RouteRecordRaw[] = [ + { + path: '/system/user-auth', + component: Layout, + hidden: true, + permissions: ['system:user:edit'], + children: [ + { + path: 'role/:userId(\\d+)', + component: () => import('@/views/system/user/authRole.vue'), + name: 'AuthRole', + meta: { title: '分配角色', activeMenu: '/system/user', icon: '', noCache: true } + } + ] + }, + { + path: '/system/role-auth', + component: Layout, + hidden: true, + permissions: ['system:role:edit'], + children: [ + { + path: 'user/:roleId(\\d+)', + component: () => import('@/views/system/role/authUser.vue'), + name: 'AuthUser', + meta: { title: '分配用户', activeMenu: '/system/role', icon: '', noCache: true } + } + ] + }, + { + path: '/system/dict-data', + component: Layout, + hidden: true, + permissions: ['system:dict:list'], + children: [ + { + path: 'index/:dictId(\\d+)', + component: () => import('@/views/system/dict/data.vue'), + name: 'Data', + meta: { title: '字典数据', activeMenu: '/system/dict', icon: '', noCache: true } + } + ] + }, + { + path: '/system/oss-config', + component: Layout, + hidden: true, + permissions: ['system:ossConfig:list'], + children: [ + { + path: 'index', + component: () => import('@/views/system/oss/config.vue'), + name: 'OssConfig', + meta: { title: '配置管理', activeMenu: '/system/oss', icon: '', noCache: true } + } + ] + }, + { + path: '/tool/gen-edit', + component: Layout, + hidden: true, + permissions: ['tool:gen:edit'], + children: [ + { + path: 'index/:tableId(\\d+)', + component: () => import('@/views/tool/gen/editTable.vue'), + name: 'GenEdit', + meta: { title: '修改生成配置', activeMenu: '/tool/gen', icon: '', noCache: true } + } + ] + }, + { + path: '/workflow/leaveEdit', + component: Layout, + hidden: true, + permissions: ['workflow:leave:edit'], + children: [ + { + path: 'index', + component: () => import('@/views/workflow/leave/leaveEdit.vue'), + name: 'leaveEdit', + meta: { title: '请假申请', activeMenu: '/workflow/leave', noCache: true } + } + ] + }, + { + path: '/workflow/design', + component: Layout, + hidden: true, + permissions: ['workflow:leave:edit'], + children: [ + { + path: 'index', + component: () => import('@/views/workflow/processDefinition/design.vue'), + name: 'design', + meta: { title: '流程设计', activeMenu: '/workflow/processDefinition', noCache: true } + } + ] + } +]; + +/** + * 创建路由 + */ +const router = createRouter({ + history: createWebHistory(import.meta.env.VITE_APP_CONTEXT_PATH), + routes: constantRoutes, + // 刷新时,滚动条位置还原 + scrollBehavior(to, from, savedPosition) { + if (savedPosition) { + return savedPosition; + } + return { top: 0 }; + } +}); + +export default router; diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..069d54e --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,3 @@ +const store = createPinia(); + +export default store; diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts new file mode 100644 index 0000000..0205fab --- /dev/null +++ b/src/store/modules/app.ts @@ -0,0 +1,72 @@ +import zhCN from 'element-plus/es/locale/lang/zh-cn'; +import enUS from 'element-plus/es/locale/lang/en'; + +export const useAppStore = defineStore('app', () => { + const sidebarStatus = useStorage('sidebarStatus', '1'); + const sidebar = reactive({ + opened: sidebarStatus.value ? !!+sidebarStatus.value : true, + withoutAnimation: false, + hide: false + }); + const device = ref('desktop'); + const size = useStorage<'large' | 'default' | 'small'>('size', 'default'); + + // 语言 + const language = useStorage('language', 'zh_CN'); + const languageObj: any = { + en_US: enUS, + zh_CN: zhCN + }; + const locale = computed(() => { + return languageObj[language.value]; + }); + + const toggleSideBar = (withoutAnimation: boolean) => { + if (sidebar.hide) { + return false; + } + + sidebar.opened = !sidebar.opened; + sidebar.withoutAnimation = withoutAnimation; + if (sidebar.opened) { + sidebarStatus.value = '1'; + } else { + sidebarStatus.value = '0'; + } + }; + + const closeSideBar = ({ withoutAnimation }: any): void => { + sidebarStatus.value = '0'; + sidebar.opened = false; + sidebar.withoutAnimation = withoutAnimation; + }; + const toggleDevice = (d: string): void => { + device.value = d; + }; + const setSize = (s: 'large' | 'default' | 'small'): void => { + size.value = s; + }; + const toggleSideBarHide = (status: boolean): void => { + sidebar.hide = status; + }; + + const changeLanguage = (val: string): void => { + language.value = val; + }; + + return { + device, + sidebar, + language, + locale, + size, + changeLanguage, + toggleSideBar, + closeSideBar, + toggleDevice, + setSize, + toggleSideBarHide + }; +}); + +export default useAppStore; diff --git a/src/store/modules/dict.ts b/src/store/modules/dict.ts new file mode 100644 index 0000000..cd1a41d --- /dev/null +++ b/src/store/modules/dict.ts @@ -0,0 +1,65 @@ +export const useDictStore = defineStore('dict', () => { + const dict = ref>(new Map()); + + /** + * 获取字典 + * @param _key 字典key + */ + const getDict = (_key: string): DictDataOption[] | null => { + if (!_key) { + return null; + } + return dict.value.get(_key) || null; + }; + + /** + * 设置字典 + * @param _key 字典key + * @param _value 字典value + */ + const setDict = (_key: string, _value: DictDataOption[]) => { + if (!_key) { + return false; + } + try { + dict.value.set(_key, _value); + return true; + } catch (e) { + console.error('Error in setDict:', e); + return false; + } + }; + + /** + * 删除字典 + * @param _key + */ + const removeDict = (_key: string): boolean => { + if (!_key) { + return false; + } + try { + return dict.value.delete(_key); + } catch (e) { + console.error('Error in removeDict:', e); + return false; + } + }; + + /** + * 清空字典 + */ + const cleanDict = (): void => { + dict.value.clear(); + }; + + return { + dict, + getDict, + setDict, + removeDict, + cleanDict + }; +}); + +export default useDictStore; diff --git a/src/store/modules/notice.ts b/src/store/modules/notice.ts new file mode 100644 index 0000000..de980b6 --- /dev/null +++ b/src/store/modules/notice.ts @@ -0,0 +1,42 @@ +import { defineStore } from 'pinia'; + +interface NoticeItem { + title?: string; + read: boolean; + message: any; + time: string; +} + +export const useNoticeStore = defineStore('notice', () => { + const state = reactive({ + notices: [] as NoticeItem[] + }); + + const addNotice = (notice: NoticeItem) => { + state.notices.push(notice); + }; + + const removeNotice = (notice: NoticeItem) => { + state.notices.splice(state.notices.indexOf(notice), 1); + }; + + //实现全部已读 + const readAll = () => { + state.notices.forEach((item: any) => { + item.read = true; + }); + }; + + const clearNotice = () => { + state.notices = []; + }; + return { + state, + addNotice, + removeNotice, + readAll, + clearNotice + }; +}); + +export default useNoticeStore; diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts new file mode 100644 index 0000000..43fcef8 --- /dev/null +++ b/src/store/modules/permission.ts @@ -0,0 +1,221 @@ +import { defineStore } from 'pinia'; +import router, { constantRoutes, dynamicRoutes } from '@/router'; +import store from '@/store'; +import { getRouters } from '@/api/menu'; +import auth from '@/plugins/auth'; +import { RouteRecordRaw } from 'vue-router'; + +import Layout from '@/layout/index.vue'; +import ParentView from '@/components/ParentView/index.vue'; +import InnerLink from '@/layout/components/InnerLink/index.vue'; + +import { createCustomNameComponent } from '@/utils/createCustomNameComponent'; + +// 匹配views里面所有的.vue文件 +const modules = import.meta.glob('./../../views/**/*.vue'); +export const usePermissionStore = defineStore('permission', () => { + const routes = ref([]); + const addRoutes = ref([]); + const defaultRoutes = ref([]); + const topbarRouters = ref([]); + const sidebarRouters = ref([]); + + const getRoutes = (): RouteRecordRaw[] => { + return routes.value as RouteRecordRaw[]; + }; + const getSidebarRoutes = (): RouteRecordRaw[] => { + return sidebarRouters.value as RouteRecordRaw[]; + }; + const getTopbarRoutes = (): RouteRecordRaw[] => { + return topbarRouters.value as RouteRecordRaw[]; + }; + + const setRoutes = (newRoutes: RouteRecordRaw[]): void => { + addRoutes.value = newRoutes; + routes.value = constantRoutes.concat(newRoutes); + }; + const setDefaultRoutes = (routes: RouteRecordRaw[]): void => { + defaultRoutes.value = constantRoutes.concat(routes); + }; + const setTopbarRoutes = (routes: RouteRecordRaw[]): void => { + topbarRouters.value = routes; + }; + const setSidebarRouters = (routes: RouteRecordRaw[]): void => { + sidebarRouters.value = routes; + }; + const generateRoutes = async (): Promise => { + const res = await getRouters(); + const { data } = res; + const sdata = JSON.parse(JSON.stringify(data)); + const rdata = JSON.parse(JSON.stringify(data)); + const defaultData = JSON.parse(JSON.stringify(data)); + const sidebarRoutes = filterAsyncRouter(sdata); + const rewriteRoutes = filterAsyncRouter(rdata, undefined, true); + const defaultRoutes = filterAsyncRouter(defaultData); + const asyncRoutes = filterDynamicRoutes(dynamicRoutes); + asyncRoutes.forEach((route) => { + router.addRoute(route); + }); + setRoutes(rewriteRoutes); + setSidebarRouters(constantRoutes.concat(sidebarRoutes)); + setDefaultRoutes(sidebarRoutes); + setTopbarRoutes(defaultRoutes); + // 路由name重复检查 + duplicateRouteChecker(asyncRoutes, sidebarRoutes); + return new Promise((resolve) => resolve(rewriteRoutes)); + }; + + /** + * 遍历后台传来的路由字符串,转换为组件对象 + * @param asyncRouterMap 后台传来的路由字符串 + * @param lastRouter 上一级路由 + * @param type 是否是重写路由 + */ + const filterAsyncRouter = (asyncRouterMap: RouteRecordRaw[], lastRouter?: RouteRecordRaw, type = false): RouteRecordRaw[] => { + return asyncRouterMap.filter((route) => { + if (type && route.children) { + route.children = filterChildren(route.children, undefined); + } + // Layout ParentView 组件特殊处理 + if (route.component?.toString() === 'Layout') { + route.component = Layout; + } else if (route.component?.toString() === 'ParentView') { + route.component = ParentView; + } else if (route.component?.toString() === 'InnerLink') { + route.component = InnerLink; + } else { + route.component = loadView(route.component, route.name as string); + } + if (route.children != null && route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, route, type); + } else { + delete route.children; + delete route.redirect; + } + return true; + }); + }; + const filterChildren = (childrenMap: RouteRecordRaw[], lastRouter?: RouteRecordRaw): RouteRecordRaw[] => { + let children: RouteRecordRaw[] = []; + childrenMap.forEach((el) => { + if (el.children && el.children.length) { + if (el.component?.toString() === 'ParentView' && !lastRouter) { + el.children.forEach((c) => { + c.path = el.path + '/' + c.path; + if (c.children && c.children.length) { + children = children.concat(filterChildren(c.children, c)); + return; + } + children.push(c); + }); + return; + } + } + if (lastRouter) { + el.path = lastRouter.path + '/' + el.path; + if (el.children && el.children.length) { + children = children.concat(filterChildren(el.children, el)); + return; + } + } + children = children.concat(el); + }); + return children; + }; + return { + routes, + topbarRouters, + sidebarRouters, + defaultRoutes, + + getRoutes, + getSidebarRoutes, + getTopbarRoutes, + + setRoutes, + generateRoutes, + setSidebarRouters + }; +}); + +// 动态路由遍历,验证是否具备权限 +export const filterDynamicRoutes = (routes: RouteRecordRaw[]) => { + const res: RouteRecordRaw[] = []; + routes.forEach((route) => { + if (route.permissions) { + if (auth.hasPermiOr(route.permissions)) { + res.push(route); + } + } else if (route.roles) { + if (auth.hasRoleOr(route.roles)) { + res.push(route); + } + } + }); + return res; +}; + +export const loadView = (view: any, name: string) => { + let res; + for (const path in modules) { + const viewsIndex = path.indexOf('/views/'); + let dir = path.substring(viewsIndex + 7); + dir = dir.substring(0, dir.lastIndexOf('.vue')); + if (dir === view) { + res = createCustomNameComponent(modules[path], { name }); + return res; + } + } + return res; +}; + +// 非setup +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)) { + const message = `路由名称: [${name}] 重复, 会造成 404`; + console.error(message); + ElNotification({ + title: '路由名称重复', + message, + type: 'error' + }); + return; + } + nameList.push(route.name.toString()); + }); +} + +export default usePermissionStore; diff --git a/src/store/modules/settings.ts b/src/store/modules/settings.ts new file mode 100644 index 0000000..ef49b3c --- /dev/null +++ b/src/store/modules/settings.ts @@ -0,0 +1,47 @@ +import { defineStore } from 'pinia'; +import defaultSettings from '@/settings'; +import { useDynamicTitle } from '@/utils/dynamicTitle'; + +export const useSettingsStore = defineStore('setting', () => { + const storageSetting = useStorage('layout-setting', { + topNav: defaultSettings.topNav, + tagsView: defaultSettings.tagsView, + fixedHeader: defaultSettings.fixedHeader, + sidebarLogo: defaultSettings.sidebarLogo, + dynamicTitle: defaultSettings.dynamicTitle, + sideTheme: defaultSettings.sideTheme, + theme: defaultSettings.theme + }); + const title = ref(defaultSettings.title); + const theme = ref(storageSetting.value.theme); + const sideTheme = ref(storageSetting.value.sideTheme); + const showSettings = ref(defaultSettings.showSettings); + const topNav = ref(storageSetting.value.topNav); + const tagsView = ref(storageSetting.value.tagsView); + const fixedHeader = ref(storageSetting.value.fixedHeader); + const sidebarLogo = ref(storageSetting.value.sidebarLogo); + const dynamicTitle = ref(storageSetting.value.dynamicTitle); + const animationEnable = ref(defaultSettings.animationEnable); + const dark = ref(defaultSettings.dark); + + const setTitle = (value: string) => { + title.value = value; + useDynamicTitle(); + }; + return { + title, + theme, + sideTheme, + showSettings, + topNav, + tagsView, + fixedHeader, + sidebarLogo, + dynamicTitle, + animationEnable, + dark, + setTitle + }; +}); + +export default useSettingsStore; diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts new file mode 100644 index 0000000..b6cf434 --- /dev/null +++ b/src/store/modules/tagsView.ts @@ -0,0 +1,233 @@ +import { RouteLocationNormalized } from 'vue-router'; + +export const useTagsViewStore = defineStore('tagsView', () => { + const visitedViews = ref([]); + const cachedViews = ref([]); + const iframeViews = ref([]); + + const getVisitedViews = (): RouteLocationNormalized[] => { + return visitedViews.value as RouteLocationNormalized[]; + }; + const getIframeViews = (): RouteLocationNormalized[] => { + return iframeViews.value as RouteLocationNormalized[]; + }; + const getCachedViews = (): string[] => { + return cachedViews.value; + }; + + const addView = (view: RouteLocationNormalized) => { + addVisitedView(view); + addCachedView(view); + }; + + const addIframeView = (view: RouteLocationNormalized): void => { + if (iframeViews.value.some((v: RouteLocationNormalized) => v.path === view.path)) return; + iframeViews.value.push( + Object.assign({}, view, { + title: view.meta?.title || 'no-name' + }) + ); + }; + const delIframeView = (view: RouteLocationNormalized): Promise => { + return new Promise((resolve) => { + iframeViews.value = iframeViews.value.filter((item: RouteLocationNormalized) => item.path !== view.path); + resolve([...(iframeViews.value as RouteLocationNormalized[])]); + }); + }; + const addVisitedView = (view: RouteLocationNormalized): void => { + if (visitedViews.value.some((v: RouteLocationNormalized) => v.path === view.path)) return; + visitedViews.value.push( + Object.assign({}, view, { + title: view.meta?.title || 'no-name' + }) + ); + }; + const delView = ( + view: RouteLocationNormalized + ): Promise<{ + visitedViews: RouteLocationNormalized[]; + cachedViews: string[]; + }> => { + return new Promise((resolve) => { + delVisitedView(view); + if (!isDynamicRoute(view)) { + delCachedView(view); + } + resolve({ + visitedViews: [...(visitedViews.value as RouteLocationNormalized[])], + cachedViews: [...cachedViews.value] + }); + }); + }; + + const delVisitedView = (view: RouteLocationNormalized): Promise => { + return new Promise((resolve) => { + for (const [i, v] of visitedViews.value.entries()) { + if (v.path === view.path) { + visitedViews.value.splice(i, 1); + break; + } + } + resolve([...(visitedViews.value as RouteLocationNormalized[])]); + }); + }; + const delCachedView = (view?: RouteLocationNormalized): Promise => { + let viewName = ''; + if (view) { + viewName = view.name as string; + } + return new Promise((resolve) => { + const index = cachedViews.value.indexOf(viewName); + index > -1 && cachedViews.value.splice(index, 1); + resolve([...cachedViews.value]); + }); + }; + const delOthersViews = ( + view: RouteLocationNormalized + ): Promise<{ + visitedViews: RouteLocationNormalized[]; + cachedViews: string[]; + }> => { + return new Promise((resolve) => { + delOthersVisitedViews(view); + delOthersCachedViews(view); + resolve({ + visitedViews: [...(visitedViews.value as RouteLocationNormalized[])], + cachedViews: [...cachedViews.value] + }); + }); + }; + + const delOthersVisitedViews = (view: RouteLocationNormalized): Promise => { + return new Promise((resolve) => { + visitedViews.value = visitedViews.value.filter((v: RouteLocationNormalized) => { + return v.meta?.affix || v.path === view.path; + }); + resolve([...(visitedViews.value as RouteLocationNormalized[])]); + }); + }; + const delOthersCachedViews = (view: RouteLocationNormalized): Promise => { + const viewName = view.name as string; + return new Promise((resolve) => { + const index = cachedViews.value.indexOf(viewName); + if (index > -1) { + cachedViews.value = cachedViews.value.slice(index, index + 1); + } else { + cachedViews.value = []; + } + resolve([...cachedViews.value]); + }); + }; + + const delAllViews = (): Promise<{ visitedViews: RouteLocationNormalized[]; cachedViews: string[] }> => { + return new Promise((resolve) => { + delAllVisitedViews(); + delAllCachedViews(); + resolve({ + visitedViews: [...(visitedViews.value as RouteLocationNormalized[])], + cachedViews: [...cachedViews.value] + }); + }); + }; + const delAllVisitedViews = (): Promise => { + return new Promise((resolve) => { + visitedViews.value = visitedViews.value.filter((tag: RouteLocationNormalized) => tag.meta?.affix); + resolve([...(visitedViews.value as RouteLocationNormalized[])]); + }); + }; + + const delAllCachedViews = (): Promise => { + return new Promise((resolve) => { + cachedViews.value = []; + resolve([...cachedViews.value]); + }); + }; + + const updateVisitedView = (view: RouteLocationNormalized): void => { + for (let v of visitedViews.value) { + if (v.path === view.path) { + v = Object.assign(v, view); + break; + } + } + }; + const delRightTags = (view: RouteLocationNormalized): Promise => { + return new Promise((resolve) => { + const index = visitedViews.value.findIndex((v: RouteLocationNormalized) => v.path === view.path); + if (index === -1) { + return; + } + visitedViews.value = visitedViews.value.filter((item: RouteLocationNormalized, idx: number) => { + if (idx <= index || (item.meta && item.meta.affix)) { + return true; + } + const i = cachedViews.value.indexOf(item.name as string); + if (i > -1) { + cachedViews.value.splice(i, 1); + } + return false; + }); + resolve([...(visitedViews.value as RouteLocationNormalized[])]); + }); + }; + const delLeftTags = (view: RouteLocationNormalized): Promise => { + return new Promise((resolve) => { + const index = visitedViews.value.findIndex((v: RouteLocationNormalized) => v.path === view.path); + if (index === -1) { + return; + } + visitedViews.value = visitedViews.value.filter((item: RouteLocationNormalized, idx: number) => { + if (idx >= index || (item.meta && item.meta.affix)) { + return true; + } + const i = cachedViews.value.indexOf(item.name as string); + if (i > -1) { + cachedViews.value.splice(i, 1); + } + return false; + }); + resolve([...(visitedViews.value as RouteLocationNormalized[])]); + }); + }; + + const addCachedView = (view: RouteLocationNormalized): void => { + const viewName = view.name as string; + if (!viewName) return; + if (cachedViews.value.includes(viewName)) return; + if (!view.meta?.noCache) { + cachedViews.value.push(viewName); + } + }; + + const isDynamicRoute = (view: RouteLocationNormalized): boolean => { + // 检查匹配的路由记录中是否有动态段 + return view.matched.some((m) => m.path.includes(':')); + }; + + return { + visitedViews, + cachedViews, + iframeViews, + + getVisitedViews, + getIframeViews, + getCachedViews, + + addVisitedView, + addCachedView, + delVisitedView, + delCachedView, + updateVisitedView, + addView, + delView, + delAllViews, + delAllVisitedViews, + delAllCachedViews, + delOthersViews, + delRightTags, + delLeftTags, + addIframeView, + delIframeView + }; +}); +export default useTagsViewStore; diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts new file mode 100644 index 0000000..56f369b --- /dev/null +++ b/src/store/modules/user.ts @@ -0,0 +1,91 @@ +import { to } from 'await-to-js'; +import { getToken, removeToken, setToken } from '@/utils/auth'; +import { login as loginApi, logout as logoutApi, getInfo as getUserInfo } from '@/api/login'; +import { LoginData } from '@/api/types'; +import defAva from '@/assets/images/profile.jpg'; +import store from '@/store'; + +export const useUserStore = defineStore('user', () => { + const token = ref(getToken()); + const name = ref(''); + const nickname = ref(''); + const userId = ref(''); + const tenantId = ref(''); + const avatar = ref(''); + const roles = ref>([]); // 用户角色编码集合 → 判断路由权限 + const permissions = ref>([]); // 用户权限编码集合 → 判断按钮权限 + + /** + * 登录 + * @param userInfo + * @returns + */ + const login = async (userInfo: LoginData): Promise => { + const [err, res] = await to(loginApi(userInfo)); + if (res) { + const data = res.data; + setToken(data.access_token); + token.value = data.access_token; + return Promise.resolve(); + } + return Promise.reject(err); + }; + + // 获取用户信息 + const getInfo = async (): Promise => { + const [err, res] = await to(getUserInfo()); + if (res) { + const data = res.data; + const user = data.user; + const profile = user.avatar == '' || user.avatar == null ? defAva : user.avatar; + + if (data.roles && data.roles.length > 0) { + // 验证返回的roles是否是一个非空数组 + roles.value = data.roles; + permissions.value = data.permissions; + } else { + roles.value = ['ROLE_DEFAULT']; + } + name.value = user.userName; + nickname.value = user.nickName; + avatar.value = profile; + userId.value = user.userId; + tenantId.value = user.tenantId; + return Promise.resolve(); + } + return Promise.reject(err); + }; + + // 注销 + const logout = async (): Promise => { + await logoutApi(); + token.value = ''; + roles.value = []; + permissions.value = []; + removeToken(); + }; + + const setAvatar = (value: string) => { + avatar.value = value; + }; + + return { + userId, + tenantId, + token, + nickname, + avatar, + roles, + permissions, + login, + getInfo, + logout, + setAvatar + }; +}); + +export default useUserStore; +// 非setup +export function useUserStoreHook() { + return useUserStore(store); +} diff --git a/src/types/axios.d.ts b/src/types/axios.d.ts new file mode 100644 index 0000000..9f2c6d2 --- /dev/null +++ b/src/types/axios.d.ts @@ -0,0 +1,9 @@ +export {}; +declare module 'axios' { + interface AxiosResponse { + code: number; + msg: string; + rows: T; + total: number; + } +} diff --git a/src/types/element.d.ts b/src/types/element.d.ts new file mode 100644 index 0000000..ae6ecfc --- /dev/null +++ b/src/types/element.d.ts @@ -0,0 +1,35 @@ +import type * as ep from 'element-plus'; +declare global { + declare type ElTagType = 'primary' | 'success' | 'info' | 'warning' | 'danger'; + declare type ElFormInstance = ep.FormInstance; + declare type ElTableInstance = ep.TableInstance; + declare type ElUploadInstance = ep.UploadInstance; + declare type ElScrollbarInstance = ep.ScrollbarInstance; + declare type ElInputInstance = ep.InputInstance; + declare type ElInputNumberInstance = ep.InputNumberInstance; + declare type ElRadioInstance = ep.RadioInstance; + declare type ElRadioGroupInstance = ep.RadioGroupInstance; + declare type ElRadioButtonInstance = ep.RadioButtonInstance; + declare type ElCheckboxInstance = ep.CheckboxInstance; + declare type ElSwitchInstance = ep.SwitchInstance; + declare type ElCascaderInstance = ep.CascaderInstance; + declare type ElColorPickerInstance = ep.ColorPickerInstance; + declare type ElRateInstance = ep.RateInstance; + declare type ElSliderInstance = ep.SliderInstance; + + declare type ElTreeInstance = InstanceType; + declare type ElTreeSelectInstance = InstanceType; + declare type ElSelectInstance = InstanceType; + declare type ElCardInstance = InstanceType; + declare type ElDialogInstance = InstanceType; + declare type ElCheckboxGroupInstance = InstanceType; + declare type ElDatePickerInstance = InstanceType; + declare type ElTimePickerInstance = InstanceType; + declare type ElTimeSelectInstance = InstanceType; + + declare type TransferKey = ep.TransferKey; + declare type CheckboxValueType = ep.CheckboxValueType; + declare type ElFormRules = ep.FormRules; + declare type DateModelType = ep.DateModelType; + declare type UploadFile = ep.UploadFile; +} diff --git a/src/types/env.d.ts b/src/types/env.d.ts new file mode 100644 index 0000000..1fb9f62 --- /dev/null +++ b/src/types/env.d.ts @@ -0,0 +1,27 @@ +declare module '*.vue' { + import { DefineComponent } from 'vue'; + const Component: DefineComponent<{}, {}, any>; + export default Component; +} + +// 环境变量 +interface ImportMetaEnv { + VITE_APP_TITLE: string; + VITE_APP_PORT: number; + VITE_APP_BASE_API: string; + VITE_APP_BASE_URL: string; + VITE_APP_CONTEXT_PATH: string; + VITE_APP_MONITOR_ADMIN: string; + VITE_APP_SNAILJOB_ADMIN: string; + VITE_APP_ENV: string; + VITE_APP_ENCRYPT: string; + VITE_APP_RSA_PUBLIC_KEY: string; + VITE_APP_RSA_PRIVATE_KEY: string; + VITE_APP_CLIENT_ID: string; + VITE_APP_WEBSOCKET: string; + VITE_APP_SSE: string; +} +interface ImportMeta { + readonly env: ImportMetaEnv; + // readonly glob: any; +} diff --git a/src/types/global.d.ts b/src/types/global.d.ts new file mode 100644 index 0000000..229e181 --- /dev/null +++ b/src/types/global.d.ts @@ -0,0 +1,164 @@ +import type { PropType as VuePropType, ComponentInternalInstance as ComponentInstance } from 'vue'; +import { LanguageEnum } from '@/enums/LanguageEnum'; + +declare global { + /** vue Instance */ + declare type ComponentInternalInstance = ComponentInstance; + + /** + * 界面字段隐藏属性 + */ + declare interface FieldOption { + key: number; + label: string; + visible: boolean; + children?: Array; + } + + /** + * 弹窗属性 + */ + declare interface DialogOption { + /** + * 弹窗标题 + */ + title?: string; + /** + * 是否显示 + */ + visible: boolean; + } + + declare interface UploadOption { + /** 设置上传的请求头部 */ + headers: { [key: string]: any }; + + /** 上传的地址 */ + url: string; + } + + /** + * 导入属性 + */ + declare interface ImportOption extends UploadOption { + /** 是否显示弹出层 */ + open: boolean; + /** 弹出层标题 */ + title: string; + /** 是否禁用上传 */ + isUploading: boolean; + + updateSupport: number; + + /** 其他参数 */ + [key: string]: any; + } + /** + * 字典数据 数据配置 + */ + declare interface DictDataOption { + label: string; + value: string; + elTagType?: ElTagType; + elTagClass?: string; + } + + declare interface BaseEntity { + createBy?: any; + createDept?: any; + createTime?: string; + updateBy?: any; + updateTime?: any; + } + + /** + * 分页数据 + * T : 表单数据 + * D : 查询参数 + */ + declare interface PageData { + form: T; + queryParams: D; + rules: ElFormRules; + } + /** + * 分页查询参数 + */ + declare interface PageQuery { + pageNum: number; + pageSize: number; + } + declare interface LayoutSetting { + /** + * 是否显示顶部导航 + */ + topNav: boolean; + + /** + * 是否显示多标签导航 + */ + tagsView: boolean; + /** + * 是否固定头部 + */ + fixedHeader: boolean; + /** + * 是否显示侧边栏Logo + */ + sidebarLogo: boolean; + /** + * 是否显示动态标题 + */ + dynamicTitle: boolean; + /** + * 侧边栏主题 theme-dark | theme-light + */ + sideTheme: string; + /** + * 主题模式 + */ + theme: string; + } + + declare interface DefaultSettings extends LayoutSetting { + /** + * 网页标题 + */ + title: string; + + /** + * 是否显示系统布局设置 + */ + showSettings: boolean; + + /** + * 导航栏布局 + */ + layout: string; + + /** + * 布局大小 + */ + size: 'large' | 'default' | 'small'; + + /** + * 语言 + */ + language: LanguageEnum; + + /** + * 是否启用动画效果 + */ + animationEnable: boolean; + /** + * 是否启用暗黑模式 + * + * true:暗黑模式 + * false: 明亮模式 + */ + dark: boolean; + + errorLog: string; + } +} +export {}; diff --git a/src/types/router.d.ts b/src/types/router.d.ts new file mode 100644 index 0000000..11a60a0 --- /dev/null +++ b/src/types/router.d.ts @@ -0,0 +1,38 @@ +import { LocationQuery, type RouteMeta as VRouteMeta } from 'vue-router'; +declare module 'vue-router' { + interface RouteMeta extends VRouteMeta { + link?: string; + title?: string; + affix?: boolean; + noCache?: boolean; + activeMenu?: string; + icon?: string; + breadcrumb?: boolean; + } + + interface _RouteRecordBase { + hidden?: boolean | string | number; + permissions?: string[]; + roles?: string[]; + alwaysShow?: boolean; + query?: string; + parentPath?: string; + } + + interface _RouteLocationBase { + children?: _RouteRecordBase[]; + path?: string; + title?: string; + } + + interface TagView { + fullPath?: string; + name?: string; + path?: string; + title?: string; + meta?: RouteMeta; + query?: LocationQuery; + } +} + +export {}; diff --git a/src/utils/auth.ts b/src/utils/auth.ts new file mode 100644 index 0000000..db50ac9 --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,9 @@ +const TokenKey = 'Admin-Token'; + +const tokenStorage = useStorage(TokenKey, null); + +export const getToken = () => tokenStorage.value; + +export const setToken = (access_token: string) => (tokenStorage.value = access_token); + +export const removeToken = () => (tokenStorage.value = null); diff --git a/src/utils/createCustomNameComponent.tsx b/src/utils/createCustomNameComponent.tsx new file mode 100644 index 0000000..daf5866 --- /dev/null +++ b/src/utils/createCustomNameComponent.tsx @@ -0,0 +1,39 @@ +/** + * 后台返回的路由动态生成name 解决缓存问题 + * 感谢 @fourteendp + * 详见 https://github.com/vbenjs/vue-vben-admin/issues/3927 + */ +import { Component, defineComponent, h } from 'vue'; + +interface Options { + name?: string; +} + +export function createCustomNameComponent(loader: () => Promise, options: Options = {}): () => Promise { + const { name } = options; + let component: Component | null = null; + + const load = async () => { + try { + const { default: loadedComponent } = await loader(); + component = loadedComponent; + } catch (error) { + console.error(`Cannot resolve component ${name}, error:`, error); + } + }; + + return async () => { + if (!component) { + await load(); + } + + return Promise.resolve( + defineComponent({ + name, + render() { + return h(component as Component); + } + }) + ); + }; +} diff --git a/src/utils/crypto.ts b/src/utils/crypto.ts new file mode 100644 index 0000000..8217146 --- /dev/null +++ b/src/utils/crypto.ts @@ -0,0 +1,66 @@ +import CryptoJS from 'crypto-js'; + +/** + * 随机生成32位的字符串 + * @returns {string} + */ +const generateRandomString = () => { + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let result = ''; + const charactersLength = characters.length; + for (let i = 0; i < 32; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +}; + +/** + * 随机生成aes 密钥 + * @returns {string} + */ +export const generateAesKey = () => { + return CryptoJS.enc.Utf8.parse(generateRandomString()); +}; + +/** + * 加密base64 + * @returns {string} + */ +export const encryptBase64 = (str: CryptoJS.lib.WordArray) => { + return CryptoJS.enc.Base64.stringify(str); +}; + +/** + * 解密base64 + */ +export const decryptBase64 = (str: string) => { + return CryptoJS.enc.Base64.parse(str); +}; + +/** + * 使用密钥对数据进行加密 + * @param message + * @param aesKey + * @returns {string} + */ +export const encryptWithAes = (message: string, aesKey: CryptoJS.lib.WordArray) => { + const encrypted = CryptoJS.AES.encrypt(message, aesKey, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); +}; + +/** + * 使用密钥对数据进行解密 + * @param message + * @param aesKey + * @returns {string} + */ +export const decryptWithAes = (message: string, aesKey: CryptoJS.lib.WordArray) => { + const decrypted = CryptoJS.AES.decrypt(message, aesKey, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypted.toString(CryptoJS.enc.Utf8); +}; diff --git a/src/utils/dict.ts b/src/utils/dict.ts new file mode 100644 index 0000000..0575072 --- /dev/null +++ b/src/utils/dict.ts @@ -0,0 +1,27 @@ +import { getDicts } from '@/api/system/dict/data'; +import { useDictStore } from '@/store/modules/dict'; +/** + * 获取字典数据 + */ +export const useDict = (...args: string[]): { [key: string]: DictDataOption[] } => { + const res = ref<{ + [key: string]: DictDataOption[]; + }>({}); + return (() => { + args.forEach(async (dictType) => { + res.value[dictType] = []; + const dicts = useDictStore().getDict(dictType); + if (dicts) { + res.value[dictType] = dicts; + } else { + await getDicts(dictType).then((resp) => { + res.value[dictType] = resp.data.map( + (p): DictDataOption => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass }) + ); + useDictStore().setDict(dictType, res.value[dictType]); + }); + } + }); + return res.value; + })(); +}; diff --git a/src/utils/dynamicTitle.ts b/src/utils/dynamicTitle.ts new file mode 100644 index 0000000..8e23ef8 --- /dev/null +++ b/src/utils/dynamicTitle.ts @@ -0,0 +1,14 @@ +import defaultSettings from '@/settings'; +import { useSettingsStore } from '@/store/modules/settings'; + +/** + * 动态修改标题 + */ +export const useDynamicTitle = () => { + const settingsStore = useSettingsStore(); + if (settingsStore.dynamicTitle) { + document.title = settingsStore.title + ' - ' + import.meta.env.VITE_APP_TITLE; + } else { + document.title = defaultSettings.title as string; + } +}; diff --git a/src/utils/errorCode.ts b/src/utils/errorCode.ts new file mode 100644 index 0000000..d85914e --- /dev/null +++ b/src/utils/errorCode.ts @@ -0,0 +1,7 @@ +export const errorCode: any = { + '401': '认证失败,无法访问系统资源', + '403': '当前操作没有权限', + '404': '访问资源不存在', + default: '系统未知错误,请反馈给管理员' +}; +export default errorCode; diff --git a/src/utils/i18n.ts b/src/utils/i18n.ts new file mode 100644 index 0000000..ab77af0 --- /dev/null +++ b/src/utils/i18n.ts @@ -0,0 +1,16 @@ +// translate router.meta.title, be used in breadcrumb sidebar tagsview +import i18n from '@/lang/index'; + +/** + * 获取国际化路由,如果不存在则原生返回 + * @param title 路由名称 + * @returns {string} + */ +export const translateRouteTitle = (title: string): string => { + const hasKey = i18n.global.te('route.' + title); + if (hasKey) { + const translatedTitle = i18n.global.t('route.' + title); + return translatedTitle; + } + return title; +}; diff --git a/src/utils/jsencrypt.ts b/src/utils/jsencrypt.ts new file mode 100644 index 0000000..42de5a0 --- /dev/null +++ b/src/utils/jsencrypt.ts @@ -0,0 +1,21 @@ +import JSEncrypt from 'jsencrypt'; +// 密钥对生成 http://web.chacuo.net/netrsakeypair + +const publicKey = import.meta.env.VITE_APP_RSA_PUBLIC_KEY; + +// 前端不建议存放私钥 不建议解密数据 因为都是透明的意义不大 +const privateKey = import.meta.env.VITE_APP_RSA_PRIVATE_KEY; + +// 加密 +export const encrypt = (txt: string) => { + const encryptor = new JSEncrypt(); + encryptor.setPublicKey(publicKey); // 设置公钥 + return encryptor.encrypt(txt); // 对数据进行加密 +}; + +// 解密 +export const decrypt = (txt: string) => { + const encryptor = new JSEncrypt(); + encryptor.setPrivateKey(privateKey); // 设置私钥 + return encryptor.decrypt(txt); // 对数据进行解密 +}; diff --git a/src/utils/permission.ts b/src/utils/permission.ts new file mode 100644 index 0000000..eb3838a --- /dev/null +++ b/src/utils/permission.ts @@ -0,0 +1,51 @@ +import useUserStore from '@/store/modules/user'; + +/** + * 字符权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export const checkPermi = (value: any) => { + if (value && value instanceof Array && value.length > 0) { + const permissions = useUserStore().permissions; + const permissionDatas = value; + const all_permission = '*:*:*'; + + const hasPermission = permissions.some((permission) => { + return all_permission === permission || permissionDatas.includes(permission); + }); + + if (!hasPermission) { + return false; + } + return true; + } else { + console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`); + return false; + } +}; + +/** + * 角色权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export const checkRole = (value: any): boolean => { + if (value && value instanceof Array && value.length > 0) { + const roles = useUserStore().roles; + const permissionRoles = value; + const super_admin = 'admin'; + + const hasRole = roles.some((role) => { + return super_admin === role || permissionRoles.includes(role); + }); + + if (!hasRole) { + return false; + } + return true; + } else { + console.error(`need roles! Like checkRole="['admin','editor']"`); + return false; + } +}; diff --git a/src/utils/propTypes.ts b/src/utils/propTypes.ts new file mode 100644 index 0000000..24d861d --- /dev/null +++ b/src/utils/propTypes.ts @@ -0,0 +1,26 @@ +import { CSSProperties } from 'vue'; +import VueTypes, { createTypes, toValidableType, VueTypeValidableDef, VueTypesInterface } from 'vue-types'; + +type PropTypes = VueTypesInterface & { + readonly style: VueTypeValidableDef; + readonly fieldOption: VueTypeValidableDef>; +}; + +const propTypes = createTypes({ + func: undefined, + bool: undefined, + string: undefined, + number: undefined, + object: undefined, + integer: undefined +}) as PropTypes; + +export default class ProjectTypes extends VueTypes { + static get style() { + return toValidableType('style', { + type: [String, Object], + default: undefined + }); + } +} +export { propTypes }; diff --git a/src/utils/scroll-to.ts b/src/utils/scroll-to.ts new file mode 100644 index 0000000..c2fa379 --- /dev/null +++ b/src/utils/scroll-to.ts @@ -0,0 +1,65 @@ +const easeInOutQuad = (t: number, b: number, c: number, d: number) => { + t /= d / 2; + if (t < 1) { + return (c / 2) * t * t + b; + } + t--; + return (-c / 2) * (t * (t - 2) - 1) + b; +}; + +// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts +const requestAnimFrame = (function () { + return ( + window.requestAnimationFrame || + (window as any).webkitRequestAnimationFrame || + (window as any).mozRequestAnimationFrame || + function (callback) { + window.setTimeout(callback, 1000 / 60); + } + ); +})(); + +/** + * Because it's so fucking difficult to detect the scrolling element, just move them all + * @param {number} amount + */ +const move = (amount: number) => { + document.documentElement.scrollTop = amount; + (document.body.parentNode as HTMLElement).scrollTop = amount; + document.body.scrollTop = amount; +}; + +const position = () => { + return document.documentElement.scrollTop || (document.body.parentNode as HTMLElement).scrollTop || document.body.scrollTop; +}; + +/** + * @param {number} to + * @param {number} duration + * @param {Function} callback + */ +export const scrollTo = (to: number, duration: number, callback?: any) => { + const start = position(); + const change = to - start; + const increment = 20; + let currentTime = 0; + duration = typeof duration === 'undefined' ? 500 : duration; + const animateScroll = function () { + // increment the time + currentTime += increment; + // find the value with the quadratic in-out easing function + const val = easeInOutQuad(currentTime, start, change, duration); + // move the document.body + move(val); + // do the animation unless its over + if (currentTime < duration) { + requestAnimFrame(animateScroll); + } else { + if (callback && typeof callback === 'function') { + // the animation is done so lets callback + callback(); + } + } + }; + animateScroll(); +}; diff --git a/src/utils/sse.ts b/src/utils/sse.ts new file mode 100644 index 0000000..69447ad --- /dev/null +++ b/src/utils/sse.ts @@ -0,0 +1,42 @@ +import { getToken } from '@/utils/auth'; +import { ElNotification } from 'element-plus'; +import useNoticeStore from '@/store/modules/notice'; + +// 初始化 +export const initSSE = (url: any) => { + if (import.meta.env.VITE_APP_SSE === 'false') { + return; + } + + url = url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID; + const { data, error } = useEventSource(url, [], { + autoReconnect: { + retries: 10, + delay: 3000, + onFailed() { + console.log('Failed to connect after 10 retries'); + } + } + }); + + watch(error, () => { + console.log('SSE connection error:', error.value); + error.value = null; + }); + + watch(data, () => { + if (!data.value) return; + useNoticeStore().addNotice({ + message: data.value, + read: false, + time: new Date().toLocaleString() + }); + ElNotification({ + title: '消息', + message: data.value, + type: 'success', + duration: 3000 + }); + data.value = null; + }); +}; diff --git a/src/utils/theme.ts b/src/utils/theme.ts new file mode 100644 index 0000000..3936248 --- /dev/null +++ b/src/utils/theme.ts @@ -0,0 +1,52 @@ +// 处理主题样式 +export const handleThemeStyle = (theme: string) => { + document.documentElement.style.setProperty('--el-color-primary', theme); + for (let i = 1; i <= 9; i++) { + document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, `${getLightColor(theme, i / 10)}`); + } + for (let i = 1; i <= 9; i++) { + document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, `${getDarkColor(theme, i / 10)}`); + } +}; + +// hex颜色转rgb颜色 +export const hexToRgb = (str: string): string[] => { + str = str.replace('#', ''); + const hexs = str.match(/../g); + for (let i = 0; i < 3; i++) { + if (hexs) { + hexs[i] = String(parseInt(hexs[i], 16)); + } + } + return hexs ? hexs : []; +}; + +// rgb颜色转Hex颜色 +export const rgbToHex = (r: string, g: string, b: string) => { + const hexs = [Number(r).toString(16), Number(g).toString(16), Number(b).toString(16)]; + for (let i = 0; i < 3; i++) { + if (hexs[i].length == 1) { + hexs[i] = `0${hexs[i]}`; + } + } + return `#${hexs.join('')}`; +}; + +// 变浅颜色值 +export const getLightColor = (color: string, level: number) => { + const rgb = hexToRgb(color); + for (let i = 0; i < 3; i++) { + const s = (255 - Number(rgb[i])) * level + Number(rgb[i]); + rgb[i] = String(Math.floor(s)); + } + return rgbToHex(rgb[0], rgb[1], rgb[2]); +}; + +// 变深颜色值 +export const getDarkColor = (color: string, level: number) => { + const rgb = hexToRgb(color); + for (let i = 0; i < 3; i++) { + rgb[i] = String(Math.floor(Number(rgb[i]) * (1 - level))); + } + return rgbToHex(rgb[0], rgb[1], rgb[2]); +}; diff --git a/src/utils/validate.ts b/src/utils/validate.ts new file mode 100644 index 0000000..e2886e4 --- /dev/null +++ b/src/utils/validate.ts @@ -0,0 +1,108 @@ +/** + * 路径匹配器 + * @param {string} pattern + * @param {string} path + * @returns {Boolean} + */ +export function isPathMatch(pattern: string, path: string) { + const regexPattern = pattern + .replace(/\//g, '\\/') + .replace(/\*\*/g, '__DOUBLE_STAR__') + .replace(/\*/g, '[^\\/]*') + .replace(/__DOUBLE_STAR__/g, '.*'); + const regex = new RegExp(`^${regexPattern}$`); + return regex.test(path); +} + +/** + * 判断url是否是http或https + * @returns {Boolean} + * @param url + */ +export const isHttp = (url: string): boolean => { + return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1; +}; + +/** + * 判断path是否为外链 + * @param {string} path + * @returns {Boolean} + */ +export const isExternal = (path: string) => { + return /^(https?:|mailto:|tel:)/.test(path); +}; + +/** + * @param {string} str + * @returns {Boolean} + */ +export const validUsername = (str: string) => { + const valid_map = ['admin', 'editor']; + return valid_map.indexOf(str.trim()) >= 0; +}; + +/** + * @param {string} url + * @returns {Boolean} + */ +export const validURL = (url: string) => { + const reg = + /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; + return reg.test(url); +}; + +/** + * @param {string} str + * @returns {Boolean} + */ +export const validLowerCase = (str: string) => { + const reg = /^[a-z]+$/; + return reg.test(str); +}; + +/** + * @param {string} str + * @returns {Boolean} + */ +export const validUpperCase = (str: string) => { + const reg = /^[A-Z]+$/; + return reg.test(str); +}; + +/** + * @param {string} str + * @returns {Boolean} + */ +export const validAlphabets = (str: string) => { + const reg = /^[A-Za-z]+$/; + return reg.test(str); +}; + +/** + * @param {string} email + * @returns {Boolean} + */ +export const validEmail = (email: string) => { + const reg = + /^(([^<>()\]\\.,;:\s@"]+(\.[^<>()\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return reg.test(email); +}; + +/** + * @param {string} str + * @returns {Boolean} + */ +export const isString = (str: any) => { + return typeof str === 'string' || str instanceof String; +}; + +/** + * @param {Array} arg + * @returns {Boolean} + */ +export const isArray = (arg: string | string[]) => { + if (typeof Array.isArray === 'undefined') { + return Object.prototype.toString.call(arg) === '[object Array]'; + } + return Array.isArray(arg); +}; diff --git a/src/utils/websocket.ts b/src/utils/websocket.ts new file mode 100644 index 0000000..c9b394c --- /dev/null +++ b/src/utils/websocket.ts @@ -0,0 +1,51 @@ +import { getToken } from '@/utils/auth'; +import { ElNotification } from 'element-plus'; +import useNoticeStore from '@/store/modules/notice'; + +// 初始化socket +export const initWebSocket = (url: any) => { + if (import.meta.env.VITE_APP_WEBSOCKET === 'false') { + return; + } + url = url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID; + useWebSocket(url, { + autoReconnect: { + // 重连最大次数 + retries: 3, + // 重连间隔 + delay: 1000, + onFailed() { + console.log('websocket重连失败'); + } + }, + heartbeat: { + message: JSON.stringify({ type: 'ping' }), + // 发送心跳的间隔 + interval: 10000, + // 接收到心跳response的超时时间 + pongTimeout: 2000 + }, + onConnected() { + console.log('websocket已经连接'); + }, + onDisconnected() { + console.log('websocket已经断开'); + }, + onMessage: (_, e) => { + if (e.data.indexOf('ping') > 0) { + return; + } + useNoticeStore().addNotice({ + message: e.data, + read: false, + time: new Date().toLocaleString() + }); + ElNotification({ + title: '消息', + message: e.data, + type: 'success', + duration: 3000 + }); + } + }); +}; diff --git a/src/views/demo/demo/index.vue b/src/views/demo/demo/index.vue new file mode 100644 index 0000000..da1bc16 --- /dev/null +++ b/src/views/demo/demo/index.vue @@ -0,0 +1,254 @@ + + + diff --git a/src/views/demo/tree/index.vue b/src/views/demo/tree/index.vue new file mode 100644 index 0000000..566d071 --- /dev/null +++ b/src/views/demo/tree/index.vue @@ -0,0 +1,258 @@ + + + diff --git a/src/views/error/401.vue b/src/views/error/401.vue new file mode 100644 index 0000000..968550c --- /dev/null +++ b/src/views/error/401.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/error/404.vue b/src/views/error/404.vue new file mode 100644 index 0000000..b9a9ea3 --- /dev/null +++ b/src/views/error/404.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/src/views/monitor/admin/index.vue b/src/views/monitor/admin/index.vue new file mode 100644 index 0000000..b71a5cc --- /dev/null +++ b/src/views/monitor/admin/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/views/monitor/cache/index.vue b/src/views/monitor/cache/index.vue new file mode 100644 index 0000000..81bbf2d --- /dev/null +++ b/src/views/monitor/cache/index.vue @@ -0,0 +1,192 @@ + + + diff --git a/src/views/monitor/logininfor/index.vue b/src/views/monitor/logininfor/index.vue new file mode 100644 index 0000000..d914544 --- /dev/null +++ b/src/views/monitor/logininfor/index.vue @@ -0,0 +1,208 @@ + + + diff --git a/src/views/monitor/online/index.vue b/src/views/monitor/online/index.vue new file mode 100644 index 0000000..7a58bb7 --- /dev/null +++ b/src/views/monitor/online/index.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/views/monitor/operlog/index.vue b/src/views/monitor/operlog/index.vue new file mode 100644 index 0000000..0c64af4 --- /dev/null +++ b/src/views/monitor/operlog/index.vue @@ -0,0 +1,260 @@ + + + diff --git a/src/views/monitor/operlog/oper-info-dialog.vue b/src/views/monitor/operlog/oper-info-dialog.vue new file mode 100644 index 0000000..66491e2 --- /dev/null +++ b/src/views/monitor/operlog/oper-info-dialog.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/views/monitor/snailjob/index.vue b/src/views/monitor/snailjob/index.vue new file mode 100644 index 0000000..89e3b23 --- /dev/null +++ b/src/views/monitor/snailjob/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/views/redirect/index.vue b/src/views/redirect/index.vue new file mode 100644 index 0000000..97a6556 --- /dev/null +++ b/src/views/redirect/index.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/system/client/index.vue b/src/views/system/client/index.vue new file mode 100644 index 0000000..37e8609 --- /dev/null +++ b/src/views/system/client/index.vue @@ -0,0 +1,316 @@ + + + diff --git a/src/views/system/config/index.vue b/src/views/system/config/index.vue new file mode 100644 index 0000000..ddc0753 --- /dev/null +++ b/src/views/system/config/index.vue @@ -0,0 +1,261 @@ + + + diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue new file mode 100644 index 0000000..1f5facb --- /dev/null +++ b/src/views/system/dept/index.vue @@ -0,0 +1,319 @@ + + + diff --git a/src/views/system/dict/data.vue b/src/views/system/dict/data.vue new file mode 100644 index 0000000..3e9b0a1 --- /dev/null +++ b/src/views/system/dict/data.vue @@ -0,0 +1,309 @@ + + + diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue new file mode 100644 index 0000000..d30ad54 --- /dev/null +++ b/src/views/system/dict/index.vue @@ -0,0 +1,246 @@ + + + diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue new file mode 100644 index 0000000..05630f4 --- /dev/null +++ b/src/views/system/menu/index.vue @@ -0,0 +1,410 @@ + + + diff --git a/src/views/system/notice/index.vue b/src/views/system/notice/index.vue new file mode 100644 index 0000000..5d7d9ba --- /dev/null +++ b/src/views/system/notice/index.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/views/system/oss/config.vue b/src/views/system/oss/config.vue new file mode 100644 index 0000000..0563a02 --- /dev/null +++ b/src/views/system/oss/config.vue @@ -0,0 +1,334 @@ + + + diff --git a/src/views/system/oss/index.vue b/src/views/system/oss/index.vue new file mode 100644 index 0000000..f76dbab --- /dev/null +++ b/src/views/system/oss/index.vue @@ -0,0 +1,332 @@ + + + diff --git a/src/views/system/post/index.vue b/src/views/system/post/index.vue new file mode 100644 index 0000000..4aa4e3a --- /dev/null +++ b/src/views/system/post/index.vue @@ -0,0 +1,360 @@ + + + diff --git a/src/views/system/role/authUser.vue b/src/views/system/role/authUser.vue new file mode 100644 index 0000000..0af7b6d --- /dev/null +++ b/src/views/system/role/authUser.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue new file mode 100644 index 0000000..fc42cd5 --- /dev/null +++ b/src/views/system/role/index.vue @@ -0,0 +1,503 @@ + + + diff --git a/src/views/system/role/selectUser.vue b/src/views/system/role/selectUser.vue new file mode 100644 index 0000000..e55120a --- /dev/null +++ b/src/views/system/role/selectUser.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/views/system/tenant/index.vue b/src/views/system/tenant/index.vue new file mode 100644 index 0000000..df97b64 --- /dev/null +++ b/src/views/system/tenant/index.vue @@ -0,0 +1,371 @@ + + + diff --git a/src/views/system/tenantPackage/index.vue b/src/views/system/tenantPackage/index.vue new file mode 100644 index 0000000..f97bb35 --- /dev/null +++ b/src/views/system/tenantPackage/index.vue @@ -0,0 +1,335 @@ + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue new file mode 100644 index 0000000..430c55a --- /dev/null +++ b/src/views/system/user/index.vue @@ -0,0 +1,664 @@ + + + + + diff --git a/src/views/system/user/profile/index.vue b/src/views/system/user/profile/index.vue new file mode 100644 index 0000000..7c1389a --- /dev/null +++ b/src/views/system/user/profile/index.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/views/system/user/profile/onlineDevice.vue b/src/views/system/user/profile/onlineDevice.vue new file mode 100644 index 0000000..7634b06 --- /dev/null +++ b/src/views/system/user/profile/onlineDevice.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/system/user/profile/resetPwd.vue b/src/views/system/user/profile/resetPwd.vue new file mode 100644 index 0000000..3ca5ee9 --- /dev/null +++ b/src/views/system/user/profile/resetPwd.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/views/system/user/profile/thirdParty.vue b/src/views/system/user/profile/thirdParty.vue new file mode 100644 index 0000000..5cd7347 --- /dev/null +++ b/src/views/system/user/profile/thirdParty.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/system/user/profile/userAvatar.vue b/src/views/system/user/profile/userAvatar.vue new file mode 100644 index 0000000..32b6f5c --- /dev/null +++ b/src/views/system/user/profile/userAvatar.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/src/views/system/user/profile/userInfo.vue b/src/views/system/user/profile/userInfo.vue new file mode 100644 index 0000000..d5b8a4c --- /dev/null +++ b/src/views/system/user/profile/userInfo.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/views/tool/gen/basicInfoForm.vue b/src/views/tool/gen/basicInfoForm.vue new file mode 100644 index 0000000..5412088 --- /dev/null +++ b/src/views/tool/gen/basicInfoForm.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/views/tool/gen/editTable.vue b/src/views/tool/gen/editTable.vue new file mode 100644 index 0000000..bbb0889 --- /dev/null +++ b/src/views/tool/gen/editTable.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/tool/gen/importTable.vue b/src/views/tool/gen/importTable.vue new file mode 100644 index 0000000..f6e75cc --- /dev/null +++ b/src/views/tool/gen/importTable.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/views/workflow/category/index.vue b/src/views/workflow/category/index.vue new file mode 100644 index 0000000..d3e87ea --- /dev/null +++ b/src/views/workflow/category/index.vue @@ -0,0 +1,257 @@ + + + diff --git a/src/views/workflow/leave/index.vue b/src/views/workflow/leave/index.vue new file mode 100644 index 0000000..2c8da0e --- /dev/null +++ b/src/views/workflow/leave/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue new file mode 100644 index 0000000..a8c1bfd --- /dev/null +++ b/src/views/workflow/leave/leaveEdit.vue @@ -0,0 +1,308 @@ + + + diff --git a/src/views/workflow/processDefinition/design.vue b/src/views/workflow/processDefinition/design.vue new file mode 100644 index 0000000..05e6538 --- /dev/null +++ b/src/views/workflow/processDefinition/design.vue @@ -0,0 +1,46 @@ + + + diff --git a/src/views/workflow/processDefinition/index.vue b/src/views/workflow/processDefinition/index.vue new file mode 100644 index 0000000..9888892 --- /dev/null +++ b/src/views/workflow/processDefinition/index.vue @@ -0,0 +1,517 @@ + + + diff --git a/src/views/workflow/processInstance/index.vue b/src/views/workflow/processInstance/index.vue new file mode 100644 index 0000000..b58b189 --- /dev/null +++ b/src/views/workflow/processInstance/index.vue @@ -0,0 +1,417 @@ + + + diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue new file mode 100644 index 0000000..0c6c46e --- /dev/null +++ b/src/views/workflow/task/allTaskWaiting.vue @@ -0,0 +1,252 @@ + + + diff --git a/src/views/workflow/task/myDocument.vue b/src/views/workflow/task/myDocument.vue new file mode 100644 index 0000000..baee949 --- /dev/null +++ b/src/views/workflow/task/myDocument.vue @@ -0,0 +1,245 @@ + + + diff --git a/src/views/workflow/task/taskCopyList.vue b/src/views/workflow/task/taskCopyList.vue new file mode 100644 index 0000000..6224fff --- /dev/null +++ b/src/views/workflow/task/taskCopyList.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue new file mode 100644 index 0000000..0f5758e --- /dev/null +++ b/src/views/workflow/task/taskFinish.vue @@ -0,0 +1,180 @@ + + + diff --git a/src/views/workflow/task/taskWaiting.vue b/src/views/workflow/task/taskWaiting.vue new file mode 100644 index 0000000..339077d --- /dev/null +++ b/src/views/workflow/task/taskWaiting.vue @@ -0,0 +1,179 @@ + + +