From 1595cb282aab5399862fac6406b5de550863e3b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 3 Apr 2023 00:05:09 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc-auto-import.json | 558 +++++------ .eslintrc.js | 78 +- .prettierrc.cjs | 82 +- README.md | 167 +--- Vite/plugins/auto-import.ts | 24 - Vite/plugins/components.ts | 17 - Vite/plugins/compression.ts | 28 - Vite/plugins/icons.ts | 8 - Vite/plugins/svg-icon.ts | 10 - Vite/plugins/unocss.ts | 13 - commitlint.config.js | 40 +- html/ie.html | 114 +-- index.html | 380 ++++---- package.json | 156 +-- src/App.vue | 6 +- src/animate.ts | 56 +- src/api/demo/demo.ts | 56 +- src/api/demo/tree.ts | 46 +- src/api/demo/types.ts | 72 +- src/api/login.ts | 92 +- src/api/menu.ts | 8 +- src/api/monitor/cache/index.ts | 56 +- src/api/monitor/cache/types.ts | 6 +- src/api/monitor/loginInfo/index.ts | 34 +- src/api/monitor/loginInfo/types.ts | 30 +- src/api/monitor/online/index.ts | 18 +- src/api/monitor/online/types.ts | 20 +- src/api/monitor/operlog/index.ts | 26 +- src/api/monitor/operlog/types.ts | 88 +- src/api/system/config/index.ts | 78 +- src/api/system/config/types.ts | 30 +- src/api/system/dept/index.ts | 62 +- src/api/system/dept/types.ts | 56 +- src/api/system/dict/data/index.ts | 54 +- src/api/system/dict/data/types.ts | 42 +- src/api/system/dict/type/index.ts | 62 +- src/api/system/dict/type/types.ts | 26 +- src/api/system/menu/index.ts | 70 +- src/api/system/menu/types.ts | 88 +- src/api/system/notice/index.ts | 46 +- src/api/system/notice/types.ts | 36 +- src/api/system/oss/index.ts | 26 +- src/api/system/oss/types.ts | 30 +- src/api/system/ossConfig/index.ts | 66 +- src/api/system/ossConfig/types.ts | 60 +- src/api/system/post/index.ts | 46 +- src/api/system/post/types.ts | 30 +- src/api/system/role/index.ts | 132 +-- src/api/system/role/types.ts | 70 +- src/api/system/tenant/index.ts | 100 +- src/api/system/tenant/types.ts | 70 +- src/api/system/tenantPackage/index.ts | 64 +- src/api/system/tenantPackage/types.ts | 28 +- src/api/system/user/index.ts | 154 +-- src/api/system/user/types.ts | 102 +- src/api/tool/gen/index.ts | 98 +- src/api/tool/gen/types.ts | 304 +++--- src/api/types.ts | 44 +- src/assets/styles/btn.scss | 124 +-- src/assets/styles/element-ui.scss | 86 +- src/assets/styles/index.scss | 192 ++-- src/assets/styles/mixin.scss | 86 +- src/assets/styles/ruoyi.scss | 244 ++--- src/assets/styles/sidebar.scss | 384 ++++---- src/assets/styles/transition.scss | 26 +- src/assets/styles/variables.module.scss | 30 +- src/components/Breadcrumb/index.vue | 62 +- src/components/DictTag/index.vue | 74 +- src/components/Editor/index.vue | 256 ++--- src/components/FileUpload/index.vue | 286 +++--- src/components/Hamburger/index.vue | 14 +- src/components/HeaderSearch/index.vue | 32 +- src/components/IconSelect/index.vue | 50 +- src/components/IconSelect/requireIcons.ts | 4 +- src/components/ImagePreview/index.vue | 14 +- src/components/ImageUpload/index.vue | 298 +++--- src/components/Pagination/index.vue | 164 ++-- src/components/ParentView/index.vue | 2 +- src/components/RightToolbar/index.vue | 100 +- src/components/RuoYiDoc/index.vue | 6 +- src/components/RuoYiGit/index.vue | 6 +- src/components/Screenfull/index.vue | 6 +- src/components/SizeSelect/index.vue | 28 +- src/components/SvgIcon/index.vue | 6 +- src/components/TopNav/index.vue | 40 +- src/components/TreeSelect/index.vue | 54 +- src/components/iFrame/index.vue | 6 +- src/directive/common/copyText.ts | 100 +- src/directive/index.ts | 6 +- src/directive/permission/index.ts | 62 +- src/enums/MenuTypeEnum.ts | 24 +- src/enums/RespEnum.ts | 176 ++-- src/enums/SettingTypeEnum.ts | 26 +- src/enums/layout/LayoutEnum.ts | 4 +- src/lang/en.ts | 46 +- src/lang/index.ts | 46 +- src/lang/zh-cn.ts | 44 +- src/layout/components/AppMain.vue | 40 +- src/layout/components/IframeToggle/index.vue | 18 +- src/layout/components/InnerLink/index.vue | 28 +- src/layout/components/Navbar.vue | 192 ++-- src/layout/components/Settings/index.vue | 144 +-- src/layout/components/Sidebar/Link.vue | 6 +- src/layout/components/Sidebar/Logo.vue | 40 +- src/layout/components/Sidebar/SidebarItem.vue | 160 +-- src/layout/components/Sidebar/index.vue | 40 +- src/layout/components/TagsView/ScrollPane.vue | 6 +- src/layout/components/TagsView/index.vue | 310 +++--- src/layout/index.vue | 24 +- src/permission.ts | 84 +- src/plugins/auth.ts | 100 +- src/plugins/cache.ts | 140 +-- src/plugins/download.ts | 98 +- src/plugins/index.ts | 20 +- src/plugins/modal.ts | 152 +-- src/plugins/svgicon.ts | 10 +- src/plugins/tab.ts | 118 +-- src/router/index.ts | 276 +++--- src/settings.ts | 84 +- src/store/modules/app.ts | 120 +-- src/store/modules/dict.ts | 138 +-- src/store/modules/permission.ts | 230 ++--- src/store/modules/settings.ts | 82 +- src/store/modules/tagsView.ts | 366 +++---- src/store/modules/user.ts | 128 +-- src/types/auto-imports.d.ts | 4 - src/types/axios.d.ts | 12 +- src/types/components.d.ts | 17 - src/types/env.d.ts | 70 +- src/types/global.d.ts | 144 +-- src/types/module.d.ts | 32 +- src/types/router.d.ts | 56 +- src/types/setting.d.ts | 120 +-- src/utils/dict.ts | 40 +- src/utils/dynamicTitle.ts | 12 +- src/utils/errorCode.ts | 8 +- src/utils/i18n.ts | 14 +- src/utils/index.ts | 338 +++---- src/utils/jsencrypt.ts | 30 +- src/utils/permission.ts | 60 +- src/utils/request.ts | 248 ++--- src/utils/ruoyi.ts | 370 +++---- src/utils/scroll-to.ts | 82 +- src/utils/theme.ts | 66 +- src/utils/validate.ts | 42 +- src/views/demo/demo/index.vue | 522 +++++----- src/views/demo/tree/index.vue | 430 ++++----- src/views/error/401.vue | 36 +- src/views/error/404.vue | 40 +- src/views/index.vue | 186 ++-- src/views/login.vue | 228 ++--- src/views/monitor/admin/index.vue | 6 +- src/views/monitor/cache/index.vue | 332 +++---- src/views/monitor/logininfor/index.vue | 280 +++--- src/views/monitor/online/index.vue | 144 +-- src/views/monitor/operlog/index.vue | 461 ++++----- src/views/monitor/xxljob/index.vue | 6 +- src/views/redirect/index.vue | 2 +- src/views/register.vue | 228 ++--- src/views/system/config/index.vue | 282 +++--- src/views/system/dept/index.vue | 438 ++++----- src/views/system/dict/data.vue | 444 ++++----- src/views/system/dict/index.vue | 384 ++++---- src/views/system/menu/index.vue | 684 ++++++------- src/views/system/notice/index.vue | 369 +++---- src/views/system/oss/config.vue | 541 +++++------ src/views/system/oss/index.vue | 498 +++++----- src/views/system/post/index.vue | 346 +++---- src/views/system/role/authUser.vue | 204 ++-- src/views/system/role/index.vue | 726 +++++++------- src/views/system/role/selectUser.vue | 152 +-- src/views/system/tenant/index.vue | 514 +++++----- src/views/system/tenantPackage/index.vue | 436 ++++----- src/views/system/user/authRole.vue | 172 ++-- src/views/system/user/index.vue | 912 +++++++++--------- src/views/system/user/profile/index.vue | 134 +-- src/views/system/user/profile/resetPwd.vue | 30 +- src/views/system/user/profile/userAvatar.vue | 104 +- src/views/system/user/profile/userInfo.vue | 42 +- src/views/tool/build/index.vue | 2 +- src/views/tool/gen/basicInfoForm.vue | 62 +- src/views/tool/gen/editTable.vue | 308 +++--- src/views/tool/gen/genInfoForm.vue | 436 ++++----- src/views/tool/gen/importTable.vue | 122 +-- src/views/tool/gen/index.vue | 338 +++---- tsconfig.json | 48 +- vite.config.ts | 208 ++-- vite/plugins/auto-import.ts | 24 + vite/plugins/components.ts | 17 + vite/plugins/compression.ts | 28 + vite/plugins/icons.ts | 8 + {Vite => vite}/plugins/index.ts | 18 +- vite/plugins/svg-icon.ts | 10 + vite/plugins/unocss.ts | 13 + 194 files changed, 12184 insertions(+), 12267 deletions(-) delete mode 100644 Vite/plugins/auto-import.ts delete mode 100644 Vite/plugins/components.ts delete mode 100644 Vite/plugins/compression.ts delete mode 100644 Vite/plugins/icons.ts delete mode 100644 Vite/plugins/svg-icon.ts delete mode 100644 Vite/plugins/unocss.ts create mode 100644 vite/plugins/auto-import.ts create mode 100644 vite/plugins/components.ts create mode 100644 vite/plugins/compression.ts create mode 100644 vite/plugins/icons.ts rename {Vite => vite}/plugins/index.ts (51%) create mode 100644 vite/plugins/svg-icon.ts create mode 100644 vite/plugins/unocss.ts diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index d8190fd..d076c08 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -1,281 +1,281 @@ { - "globals": { - "useRouter": true, - "useRoute": true, - "EffectScope": true, - "ElTable": true, - "ElSelect": true, - "ElUpload": true, - "ElForm": true, - "ElTree": true, - "ElMessage": true, - "ElMessageBox": true, - "asyncComputed": true, - "autoResetRef": true, - "computed": true, - "computedAsync": true, - "computedEager": true, - "computedInject": true, - "computedWithControl": true, - "controlledComputed": true, - "controlledRef": true, - "createApp": true, - "createEventHook": true, - "createGlobalState": true, - "createInjectionState": true, - "createReactiveFn": true, - "createSharedComposable": true, - "createUnrefFn": true, - "customRef": true, - "debouncedRef": true, - "debouncedWatch": true, - "defineAsyncComponent": true, - "defineComponent": true, - "eagerComputed": true, - "effectScope": true, - "extendRef": true, - "getCurrentInstance": true, - "getCurrentScope": true, - "h": true, - "ignorableWatch": true, - "inject": true, - "isDefined": true, - "isProxy": true, - "isReactive": true, - "isReadonly": true, - "isRef": true, - "makeDestructurable": true, - "markRaw": true, - "nextTick": true, - "onActivated": true, - "onBeforeMount": true, - "onBeforeUnmount": true, - "onBeforeUpdate": true, - "onClickOutside": true, - "onDeactivated": true, - "onErrorCaptured": true, - "onKeyStroke": true, - "onLongPress": true, - "onMounted": true, - "onRenderTracked": true, - "onRenderTriggered": true, - "onScopeDispose": true, - "onServerPrefetch": true, - "onStartTyping": true, - "onUnmounted": true, - "onUpdated": true, - "pausableWatch": true, - "provide": true, - "reactify": true, - "reactifyObject": true, - "reactive": true, - "reactiveComputed": true, - "reactiveOmit": true, - "reactivePick": true, - "readonly": true, - "ref": true, - "refAutoReset": true, - "refDebounced": true, - "refDefault": true, - "refThrottled": true, - "refWithControl": true, - "resolveComponent": true, - "resolveDirective": true, - "resolveRef": true, - "resolveUnref": true, - "shallowReactive": true, - "shallowReadonly": true, - "shallowRef": true, - "syncRef": true, - "syncRefs": true, - "templateRef": true, - "throttledRef": true, - "throttledWatch": true, - "toRaw": true, - "toReactive": true, - "toRef": true, - "toRefs": true, - "triggerRef": true, - "tryOnBeforeMount": true, - "tryOnBeforeUnmount": true, - "tryOnMounted": true, - "tryOnScopeDispose": true, - "tryOnUnmounted": true, - "unref": true, - "unrefElement": true, - "until": true, - "useActiveElement": true, - "useArrayEvery": true, - "useArrayFilter": true, - "useArrayFind": true, - "useArrayFindIndex": true, - "useArrayFindLast": true, - "useArrayJoin": true, - "useArrayMap": true, - "useArrayReduce": true, - "useArraySome": true, - "useArrayUnique": true, - "useAsyncQueue": true, - "useAsyncState": true, - "useAttrs": true, - "useBase64": true, - "useBattery": true, - "useBluetooth": true, - "useBreakpoints": true, - "useBroadcastChannel": true, - "useBrowserLocation": true, - "useCached": true, - "useClipboard": true, - "useCloned": true, - "useColorMode": true, - "useConfirmDialog": true, - "useCounter": true, - "useCssModule": true, - "useCssVar": true, - "useCssVars": true, - "useCurrentElement": true, - "useCycleList": true, - "useDark": true, - "useDateFormat": true, - "useDebounce": true, - "useDebounceFn": true, - "useDebouncedRefHistory": true, - "useDeviceMotion": true, - "useDeviceOrientation": true, - "useDevicePixelRatio": true, - "useDevicesList": true, - "useDisplayMedia": true, - "useDocumentVisibility": true, - "useDraggable": true, - "useDropZone": true, - "useElementBounding": true, - "useElementByPoint": true, - "useElementHover": true, - "useElementSize": true, - "useElementVisibility": true, - "useEventBus": true, - "useEventListener": true, - "useEventSource": true, - "useEyeDropper": true, - "useFavicon": true, - "useFetch": true, - "useFileDialog": true, - "useFileSystemAccess": true, - "useFocus": true, - "useFocusWithin": true, - "useFps": true, - "useFullscreen": true, - "useGamepad": true, - "useGeolocation": true, - "useIdle": true, - "useImage": true, - "useInfiniteScroll": true, - "useIntersectionObserver": true, - "useInterval": true, - "useIntervalFn": true, - "useKeyModifier": true, - "useLastChanged": true, - "useLocalStorage": true, - "useMagicKeys": true, - "useManualRefHistory": true, - "useMediaControls": true, - "useMediaQuery": true, - "useMemoize": true, - "useMemory": true, - "useMounted": true, - "useMouse": true, - "useMouseInElement": true, - "useMousePressed": true, - "useMutationObserver": true, - "useNavigatorLanguage": true, - "useNetwork": true, - "useNow": true, - "useObjectUrl": true, - "useOffsetPagination": true, - "useOnline": true, - "usePageLeave": true, - "useParallax": true, - "usePermission": true, - "usePointer": true, - "usePointerLock": true, - "usePointerSwipe": true, - "usePreferredColorScheme": true, - "usePreferredContrast": true, - "usePreferredDark": true, - "usePreferredLanguages": true, - "usePreferredReducedMotion": true, - "usePrevious": true, - "useRafFn": true, - "useRefHistory": true, - "useResizeObserver": true, - "useScreenOrientation": true, - "useScreenSafeArea": true, - "useScriptTag": true, - "useScroll": true, - "useScrollLock": true, - "useSessionStorage": true, - "useShare": true, - "useSlots": true, - "useSorted": true, - "useSpeechRecognition": true, - "useSpeechSynthesis": true, - "useStepper": true, - "useStorage": true, - "useStorageAsync": true, - "useStyleTag": true, - "useSupported": true, - "useSwipe": true, - "useTemplateRefsList": true, - "useTextDirection": true, - "useTextSelection": true, - "useTextareaAutosize": true, - "useThrottle": true, - "useThrottleFn": true, - "useThrottledRefHistory": true, - "useTimeAgo": true, - "useTimeout": true, - "useTimeoutFn": true, - "useTimeoutPoll": true, - "useTimestamp": true, - "useTitle": true, - "useToNumber": true, - "useToString": true, - "useToggle": true, - "useTransition": true, - "useUrlSearchParams": true, - "useUserMedia": true, - "useVModel": true, - "useVModels": true, - "useVibrate": true, - "useVirtualList": true, - "useWakeLock": true, - "useWebNotification": true, - "useWebSocket": true, - "useWebWorker": true, - "useWebWorkerFn": true, - "useWindowFocus": true, - "useWindowScroll": true, - "useWindowSize": true, - "watch": true, - "watchArray": true, - "watchAtMost": true, - "watchDebounced": true, - "watchEffect": true, - "watchIgnorable": true, - "watchOnce": true, - "watchPausable": true, - "watchPostEffect": true, - "watchSyncEffect": true, - "watchThrottled": true, - "watchTriggerable": true, - "watchWithFilter": true, - "whenever": true, - "ImportOption": true, - "TreeType": true, - "FieldOption": true, - "PageData": true, - "storeToRefs": true, - "DictDataOption": true, - "UploadOption": true - } + "globals": { + "useRouter": true, + "useRoute": true, + "EffectScope": true, + "ElTable": true, + "ElSelect": true, + "ElUpload": true, + "ElForm": true, + "ElTree": true, + "ElMessage": true, + "ElMessageBox": true, + "asyncComputed": true, + "autoResetRef": true, + "computed": true, + "computedAsync": true, + "computedEager": true, + "computedInject": true, + "computedWithControl": true, + "controlledComputed": true, + "controlledRef": true, + "createApp": true, + "createEventHook": true, + "createGlobalState": true, + "createInjectionState": true, + "createReactiveFn": true, + "createSharedComposable": true, + "createUnrefFn": true, + "customRef": true, + "debouncedRef": true, + "debouncedWatch": true, + "defineAsyncComponent": true, + "defineComponent": true, + "eagerComputed": true, + "effectScope": true, + "extendRef": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "ignorableWatch": true, + "inject": true, + "isDefined": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "makeDestructurable": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onClickOutside": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onKeyStroke": true, + "onLongPress": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onStartTyping": true, + "onUnmounted": true, + "onUpdated": true, + "pausableWatch": true, + "provide": true, + "reactify": true, + "reactifyObject": true, + "reactive": true, + "reactiveComputed": true, + "reactiveOmit": true, + "reactivePick": true, + "readonly": true, + "ref": true, + "refAutoReset": true, + "refDebounced": true, + "refDefault": true, + "refThrottled": true, + "refWithControl": true, + "resolveComponent": true, + "resolveDirective": true, + "resolveRef": true, + "resolveUnref": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "syncRef": true, + "syncRefs": true, + "templateRef": true, + "throttledRef": true, + "throttledWatch": true, + "toRaw": true, + "toReactive": true, + "toRef": true, + "toRefs": true, + "triggerRef": true, + "tryOnBeforeMount": true, + "tryOnBeforeUnmount": true, + "tryOnMounted": true, + "tryOnScopeDispose": true, + "tryOnUnmounted": true, + "unref": true, + "unrefElement": true, + "until": true, + "useActiveElement": true, + "useArrayEvery": true, + "useArrayFilter": true, + "useArrayFind": true, + "useArrayFindIndex": true, + "useArrayFindLast": true, + "useArrayJoin": true, + "useArrayMap": true, + "useArrayReduce": true, + "useArraySome": true, + "useArrayUnique": true, + "useAsyncQueue": true, + "useAsyncState": true, + "useAttrs": true, + "useBase64": true, + "useBattery": true, + "useBluetooth": true, + "useBreakpoints": true, + "useBroadcastChannel": true, + "useBrowserLocation": true, + "useCached": true, + "useClipboard": true, + "useCloned": true, + "useColorMode": true, + "useConfirmDialog": true, + "useCounter": true, + "useCssModule": true, + "useCssVar": true, + "useCssVars": true, + "useCurrentElement": true, + "useCycleList": true, + "useDark": true, + "useDateFormat": true, + "useDebounce": true, + "useDebounceFn": true, + "useDebouncedRefHistory": true, + "useDeviceMotion": true, + "useDeviceOrientation": true, + "useDevicePixelRatio": true, + "useDevicesList": true, + "useDisplayMedia": true, + "useDocumentVisibility": true, + "useDraggable": true, + "useDropZone": true, + "useElementBounding": true, + "useElementByPoint": true, + "useElementHover": true, + "useElementSize": true, + "useElementVisibility": true, + "useEventBus": true, + "useEventListener": true, + "useEventSource": true, + "useEyeDropper": true, + "useFavicon": true, + "useFetch": true, + "useFileDialog": true, + "useFileSystemAccess": true, + "useFocus": true, + "useFocusWithin": true, + "useFps": true, + "useFullscreen": true, + "useGamepad": true, + "useGeolocation": true, + "useIdle": true, + "useImage": true, + "useInfiniteScroll": true, + "useIntersectionObserver": true, + "useInterval": true, + "useIntervalFn": true, + "useKeyModifier": true, + "useLastChanged": true, + "useLocalStorage": true, + "useMagicKeys": true, + "useManualRefHistory": true, + "useMediaControls": true, + "useMediaQuery": true, + "useMemoize": true, + "useMemory": true, + "useMounted": true, + "useMouse": true, + "useMouseInElement": true, + "useMousePressed": true, + "useMutationObserver": true, + "useNavigatorLanguage": true, + "useNetwork": true, + "useNow": true, + "useObjectUrl": true, + "useOffsetPagination": true, + "useOnline": true, + "usePageLeave": true, + "useParallax": true, + "usePermission": true, + "usePointer": true, + "usePointerLock": true, + "usePointerSwipe": true, + "usePreferredColorScheme": true, + "usePreferredContrast": true, + "usePreferredDark": true, + "usePreferredLanguages": true, + "usePreferredReducedMotion": true, + "usePrevious": true, + "useRafFn": true, + "useRefHistory": true, + "useResizeObserver": true, + "useScreenOrientation": true, + "useScreenSafeArea": true, + "useScriptTag": true, + "useScroll": true, + "useScrollLock": true, + "useSessionStorage": true, + "useShare": true, + "useSlots": true, + "useSorted": true, + "useSpeechRecognition": true, + "useSpeechSynthesis": true, + "useStepper": true, + "useStorage": true, + "useStorageAsync": true, + "useStyleTag": true, + "useSupported": true, + "useSwipe": true, + "useTemplateRefsList": true, + "useTextDirection": true, + "useTextSelection": true, + "useTextareaAutosize": true, + "useThrottle": true, + "useThrottleFn": true, + "useThrottledRefHistory": true, + "useTimeAgo": true, + "useTimeout": true, + "useTimeoutFn": true, + "useTimeoutPoll": true, + "useTimestamp": true, + "useTitle": true, + "useToNumber": true, + "useToString": true, + "useToggle": true, + "useTransition": true, + "useUrlSearchParams": true, + "useUserMedia": true, + "useVModel": true, + "useVModels": true, + "useVibrate": true, + "useVirtualList": true, + "useWakeLock": true, + "useWebNotification": true, + "useWebSocket": true, + "useWebWorker": true, + "useWebWorkerFn": true, + "useWindowFocus": true, + "useWindowScroll": true, + "useWindowSize": true, + "watch": true, + "watchArray": true, + "watchAtMost": true, + "watchDebounced": true, + "watchEffect": true, + "watchIgnorable": true, + "watchOnce": true, + "watchPausable": true, + "watchPostEffect": true, + "watchSyncEffect": true, + "watchThrottled": true, + "watchTriggerable": true, + "watchWithFilter": true, + "whenever": true, + "ImportOption": true, + "TreeType": true, + "FieldOption": true, + "PageData": true, + "storeToRefs": true, + "DictDataOption": true, + "UploadOption": true + } } diff --git a/.eslintrc.js b/.eslintrc.js index 518d476..2b2e0d0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,41 +1,41 @@ module.exports = { - env: { - browser: true, - es2021: true, - node: true - }, - parser: 'vue-eslint-parser', - extends: [ - 'eslint:recommended', - 'plugin:vue/vue3-essential', - 'plugin:@typescript-eslint/recommended', - './.eslintrc-auto-import.json', - 'plugin:prettier/recommended' - ], - parserOptions: { - ecmaVersion: '2020', - sourceType: 'module', - parser: '@typescript-eslint/parser' - }, - plugins: ['vue', '@typescript-eslint'], - rules: { - 'vue/multi-word-component-names': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-explicit-any': 'off', - 'vue/no-v-model-argument': 'off', - '@typescript-eslint/ban-types': [ - 'error', - { - // 关闭空类型检查 {} - extendDefaults: true, - types: { - '{}': false - } - } - ] - }, - globals: { - DialogOption: 'readonly', - OptionType: 'readonly' - } + env: { + browser: true, + es2021: true, + node: true + }, + parser: 'vue-eslint-parser', + extends: [ + 'eslint:recommended', + 'plugin:vue/vue3-essential', + 'plugin:@typescript-eslint/recommended', + './.eslintrc-auto-import.json', + 'plugin:prettier/recommended' + ], + parserOptions: { + ecmaVersion: '2020', + sourceType: 'module', + parser: '@typescript-eslint/parser' + }, + plugins: ['vue', '@typescript-eslint'], + rules: { + 'vue/multi-word-component-names': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-explicit-any': 'off', + 'vue/no-v-model-argument': 'off', + '@typescript-eslint/ban-types': [ + 'error', + { + // 关闭空类型检查 {} + extendDefaults: true, + types: { + '{}': false + } + } + ] + }, + globals: { + DialogOption: 'readonly', + OptionType: 'readonly' + } }; diff --git a/.prettierrc.cjs b/.prettierrc.cjs index 3df4406..fde1071 100644 --- a/.prettierrc.cjs +++ b/.prettierrc.cjs @@ -2,45 +2,45 @@ * 代码格式化配置 */ module.exports = { - // 一行最多多少个字符 - printWidth: 150, - // 指定每个缩进级别的空格数 - tabWidth: 2, - // 使用制表符而不是空格缩进行 - useTabs: true, - // 在语句末尾是否需要分号 - semi: true, - // 是否使用单引号 - singleQuote: true, - // 更改引用对象属性的时间 可选值"" - quoteProps: 'as-needed', - // 在JSX中使用单引号而不是双引号 - jsxSingleQuote: false, - // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"",默认none - trailingComma: 'none', - // 在对象文字中的括号之间打印空格 - bracketSpacing: true, - // jsx 标签的反尖括号需要换行 - jsxBracketSameLine: false, - embeddedLanguageFormatting: 'off', - // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x - arrowParens: 'always', - // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码 - rangeStart: 0, - rangeEnd: Infinity, - // 指定要使用的解析器,不需要写文件开头的 @prettier - requirePragma: false, - // 不需要自动在文件开头插入 @prettier - insertPragma: false, - // 使用默认的折行标准 always\never\preserve - proseWrap: 'preserve', - // 指定HTML文件的全局空格敏感度 css\strict\ignore - htmlWhitespaceSensitivity: 'css', - // Vue文件脚本和样式标签缩进 - vueIndentScriptAndStyle: false, - //在 windows 操作系统中换行符通常是回车 (CR) 加换行分隔符 (LF),也就是回车换行(CRLF), - //然而在 Linux 和 Unix 中只使用简单的换行分隔符 (LF)。 - //对应的控制字符为 "\n" (LF) 和 "\r\n"(CRLF)。auto意为保持现有的行尾 - // 换行符使用 lf 结尾是 可选值"" - endOfLine: 'auto' + // 一行最多多少个字符 + printWidth: 150, + // 指定每个缩进级别的空格数 + tabWidth: 2, + // 使用制表符而不是空格缩进行 + useTabs: false, + // 在语句末尾是否需要分号 + semi: true, + // 是否使用单引号 + singleQuote: true, + // 更改引用对象属性的时间 可选值"" + quoteProps: 'as-needed', + // 在JSX中使用单引号而不是双引号 + jsxSingleQuote: false, + // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"",默认none + trailingComma: 'none', + // 在对象文字中的括号之间打印空格 + bracketSpacing: true, + // jsx 标签的反尖括号需要换行 + jsxBracketSameLine: false, + embeddedLanguageFormatting: 'off', + // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x + arrowParens: 'always', + // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码 + rangeStart: 0, + rangeEnd: Infinity, + // 指定要使用的解析器,不需要写文件开头的 @prettier + requirePragma: false, + // 不需要自动在文件开头插入 @prettier + insertPragma: false, + // 使用默认的折行标准 always\never\preserve + proseWrap: 'preserve', + // 指定HTML文件的全局空格敏感度 css\strict\ignore + htmlWhitespaceSensitivity: 'css', + // Vue文件脚本和样式标签缩进 + vueIndentScriptAndStyle: false, + //在 windows 操作系统中换行符通常是回车 (CR) 加换行分隔符 (LF),也就是回车换行(CRLF), + //然而在 Linux 和 Unix 中只使用简单的换行分隔符 (LF)。 + //对应的控制字符为 "\n" (LF) 和 "\r\n"(CRLF)。auto意为保持现有的行尾 + // 换行符使用 lf 结尾是 可选值"" + endOfLine: 'auto' }; diff --git a/README.md b/README.md index f1df2bc..6644daf 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ ## 平台简介 -## 平台简介 - -- 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 -- 配套后端代码仓库地址 -- [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus) -- [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus) +* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [TS](https://www.typescriptlang.org/) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 +* 配套后端代码仓库地址 +* [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus) +* [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus) ## 前端运行 @@ -19,120 +17,57 @@ npm install --registry=https://registry.npmmirror.com # 启动服务 npm run dev -# 构建测试环境 yarn build:stage # 构建生产环境 yarn build:prod # 前端访问地址 http://localhost:80 ``` -## 本框架与 RuoYi 的业务差异 +## 本框架与RuoYi的业务差异 -| 业务 | 功能说明 | 本框架 | RuoYi | -| ------------ | --------------------------------------------------------------- | ------ | ------------------------------ | -| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | -| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | -| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | -| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | -| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | -| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | -| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | -| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | -| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | -| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | -| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | -| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | -| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | -| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | -| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | -| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | -| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持 CRUD 下载 | 支持 | 仅支持单数据源 | -| 系统接口 | 根据业务代码自动生成相关的 api 接口文档 | 支持 | 支持 | -| 服务监控 | 监视集群系统 CPU、内存、磁盘、堆栈、在线日志、Spring 相关配置等 | 支持 | 仅支持单机 CPU、内存、磁盘监控 | -| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | -| 在线构建器 | 拖动表单元素生成相应的 HTML 代码。 | 支持 | 支持 | -| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | +| 业务 | 功能说明 | 本框架 | RuoYi | +|--------|-----------------------------------------|-----|------------------| +| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | +| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | +| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | +| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | +| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | +| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | +| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | +| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | +| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | +| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | +| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | +| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | +| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | +| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | +| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | +| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | +| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | +| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | +| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | +| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | +| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | +| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | -## 演示图 +## 演示图例 -- 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 -- 配套后端代码仓库地址 -- [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus) -- [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus) - -## 前端运行 - -```bash -# 克隆项目 -git clone https://gitee.com/JavaLionLi/plus-ui.git - -# 安装依赖 -npm install --registry=https://registry.npmmirror.com - -# 启动服务 -npm run dev - -# 构建测试环境 yarn build:stage -# 构建生产环境 yarn build:prod -# 前端访问地址 http://localhost:80 -``` - -## 后端改造 - -参考后端代码内 `ruoyi-gen/resources/vm/vue/v3/readme.txt` 说明 - -## 内置功能 - -1. 租户管理:配置系统租户,支持 SaaS 场景下的多租户功能。 -2. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -3. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 -4. 岗位管理:配置系统用户所属担任职务。 -5. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 -6. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 -7. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -8. 参数管理:对系统动态配置常用参数。 -9. 通知公告:系统通知公告信息发布维护。 -10. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 -11. 登录日志:系统登录日志记录查询包含登录异常。 -12. 在线用户:当前系统中活跃用户状态监控。 -13. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 -14. 代码生成:前后端代码的生成(java、html、xml、sql)支持 CRUD 下载 。 -15. 系统接口:根据业务代码自动生成相关的 api 接口文档。 -16. 服务监控:监视当前系统 CPU、内存、磁盘、堆栈等相关信息。 -17. 缓存监控:对系统的缓存信息查询,命令统计等。 -18. 在线构建器:拖动表单元素生成相应的 HTML 代码。 - -## 演示图 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+| | | +|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| +| ![输入图片说明](https://foruda.gitee.com/images/1680077524361362822/270bb429_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077619939771291/989bf9b6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680077681751513929/1c27c5bd_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077721559267315/74d63e23_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680077765638904515/1b75d4a6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078026375951297/eded7a4b_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078237104531207/0eb1b6a7_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078254306078709/5931e22f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078287971528493/0b9af60a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078308138770249/8d3b6696_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078352553634393/db5ef880_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078378238393374/601e4357_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078414983206024/2aae27c1_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078446738419874/ecce7d59_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078475971341775/149e8634_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078491666717143/3fadece7_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078558863188826/fb8ced2a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078574561685461/ae68a0b2_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078594932772013/9d8bfec6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078626493093532/fcfe4ff6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078643608812515/0295bd4f_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078685196286463/d7612c81_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078703877318597/56fce0bc_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078716586545643/b6dbd68f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078734103217688/eb1e6aa6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078759131415480/73c525d8_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078779416197879/75e3ed02_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078802329118061/77e10915_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078893627848351/34a1c342_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078928175016986/f126ec4a_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078941718318363/b68a0f72_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078963175518631/3bb769a1_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078982294090567/b31c343d_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079000642440444/77ca82a9_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680079020995074177/03b7d52e_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079039367822173/76811806_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680079274333484664/4dfdc7c0_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079290467458224/d6715fcf_1766278.png "屏幕截图") | diff --git a/Vite/plugins/auto-import.ts b/Vite/plugins/auto-import.ts deleted file mode 100644 index c7cee4b..0000000 --- a/Vite/plugins/auto-import.ts +++ /dev/null @@ -1,24 +0,0 @@ -import AutoImport from 'unplugin-auto-import/vite'; -import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; -import IconsResolver from 'unplugin-icons/resolver'; - -export default (path: any) => { - return AutoImport({ - // 自动导入 Vue 相关函数 - imports: ['vue', 'vue-router', '@vueuse/core', 'pinia'], - eslintrc: { - enabled: false, - filepath: './.eslintrc-auto-import.json', - globalsPropValue: true - }, - resolvers: [ - // 自动导入 Element Plus 相关函数ElMessage, ElMessageBox... (带样式) - ElementPlusResolver(), - IconsResolver({ - prefix: 'Icon' - }) - ], - vueTemplate: true, // 是否在 vue 模板中自动导入 - dts: path.resolve(path.resolve(__dirname, '../../src'), 'types', 'auto-imports.d.ts') - }); -}; diff --git a/Vite/plugins/components.ts b/Vite/plugins/components.ts deleted file mode 100644 index dbc5b19..0000000 --- a/Vite/plugins/components.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Components from 'unplugin-vue-components/vite'; -import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; -import IconsResolver from 'unplugin-icons/resolver'; - -export default (path: any) => { - return Components({ - resolvers: [ - // 自动导入 Element Plus 组件 - ElementPlusResolver(), - // 自动注册图标组件 - IconsResolver({ - enabledCollections: ['ep'] - }) - ], - dts: path.resolve(path.resolve(__dirname, '../../src'), 'types', 'components.d.ts') - }); -}; diff --git a/Vite/plugins/compression.ts b/Vite/plugins/compression.ts deleted file mode 100644 index 15dcee9..0000000 --- a/Vite/plugins/compression.ts +++ /dev/null @@ -1,28 +0,0 @@ -import compression from 'vite-plugin-compression'; - -export default function createCompression(env: any) { - const { VITE_BUILD_COMPRESS } = env; - const plugin: any[] = []; - if (VITE_BUILD_COMPRESS) { - const compressList = VITE_BUILD_COMPRESS.split(','); - if (compressList.includes('gzip')) { - // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 - plugin.push( - compression({ - ext: '.gz', - deleteOriginFile: false - }) - ); - } - if (compressList.includes('brotli')) { - plugin.push( - compression({ - ext: '.br', - algorithm: 'brotliCompress', - deleteOriginFile: false - }) - ); - } - } - return plugin; -} diff --git a/Vite/plugins/icons.ts b/Vite/plugins/icons.ts deleted file mode 100644 index 174572c..0000000 --- a/Vite/plugins/icons.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Icons from 'unplugin-icons/vite'; - -export default () => { - return Icons({ - // 自动安装图标库 - autoInstall: true - }); -}; diff --git a/Vite/plugins/svg-icon.ts b/Vite/plugins/svg-icon.ts deleted file mode 100644 index 0ee8d65..0000000 --- a/Vite/plugins/svg-icon.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; -export default (path: any, isBuild: boolean) => { - return createSvgIconsPlugin({ - // 指定需要缓存的图标文件夹 - iconDirs: [path.resolve(path.resolve(__dirname, '../../src'), 'assets/icons/svg')], - // 指定symbolId格式 - symbolId: 'icon-[dir]-[name]', - svgoOptions: isBuild - }); -}; diff --git a/Vite/plugins/unocss.ts b/Vite/plugins/unocss.ts deleted file mode 100644 index e9e3254..0000000 --- a/Vite/plugins/unocss.ts +++ /dev/null @@ -1,13 +0,0 @@ -import UnoCss from 'unocss/vite'; -import { presetUno, presetAttributify, presetIcons } from 'unocss'; - -export default () => { - return UnoCss({ - presets: [presetUno(), presetAttributify(), presetIcons()], - // rules: [['search', {}]], - shortcuts: { - 'panel-title': - 'pb-[5px] font-sans leading-[1.1] font-medium text-base text-[#6379bb] border-b border-b-solid border-[var(--el-border-color-light)] mb-5 mt-0' - } - }); -}; diff --git a/commitlint.config.js b/commitlint.config.js index 21c37d7..3b75ed5 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,22 +1,22 @@ module.exports = { - extends: ['@commitlint/config-conventional'], - rules: { - 'type-enum': [ - 2, - 'always', - [ - 'feat', // 新功能 feature - 'fix', // 修复 bug - 'docs', // 文档注释 - 'style', // 代码格式 - 'refactor', // 重构 - 'perf', // 性能优化 - 'test', // 增加测试 - 'chore', // 构建过程或辅助工具的变动 - 'revert', // 回退 - 'build' // 打包 - ] - ], - 'subject-case': [0] - } + extends: ['@commitlint/config-conventional'], + rules: { + 'type-enum': [ + 2, + 'always', + [ + 'feat', // 新功能 feature + 'fix', // 修复 bug + 'docs', // 文档注释 + 'style', // 代码格式 + 'refactor', // 重构 + 'perf', // 性能优化 + 'test', // 增加测试 + 'chore', // 构建过程或辅助工具的变动 + 'revert', // 回退 + 'build' // 打包 + ] + ], + 'subject-case': [0] + } }; diff --git a/html/ie.html b/html/ie.html index 52fdef6..87d262d 100644 --- a/html/ie.html +++ b/html/ie.html @@ -1,60 +1,60 @@ - - - 请升级您的浏览器 - - - - - - -

请升级您的浏览器,以便我们更好的为您提供服务!

-

您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。

-
-

请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束

-

- 自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 - 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 - 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明 - 。 -

-
-

您可以选择更先进的浏览器

-

推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。

- -
- + + + 请升级您的浏览器 + + + + + + +

请升级您的浏览器,以便我们更好的为您提供服务!

+

您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。

+
+

请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束

+

+ 自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 + 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 + 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明 + 。 +

+
+

您可以选择更先进的浏览器

+

推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。

+ +
+ diff --git a/index.html b/index.html index e641b01..c0dab51 100644 --- a/index.html +++ b/index.html @@ -1,217 +1,217 @@ - - - - - - - RuoYi-Vue-Plus多租户管理系统 - - - + #loader-wrapper .load_title span { + font-weight: normal; + font-style: italic; + font-size: 13px; + color: #FFF; + opacity: 0.5; + } + + - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- - + +
+
+
+
+
+
正在加载系统资源,请耐心等待
+
+
+ + diff --git a/package.json b/package.json index c71573e..dc25173 100644 --- a/package.json +++ b/package.json @@ -1,80 +1,80 @@ { - "name": "ruoyi-vue-plus", - "version": "5.0.0-SNAPSHOT", - "description": "RuoYi-Vue-Plus多租户管理系统", - "author": "LionLi", - "license": "MIT", - "scripts": { - "dev": "vite serve --mode development", - "build:prod": "vite build --mode production &&vue-tsc --noEmit", - "preview": "vite preview", - "lint": "eslint src/**/*.{ts,js,vue} --fix", - "prepare": "husky install", - "prettier": "prettier --write ." - }, - "repository": { - "type": "git", - "url": "https://gitee.com/JavaLionLi/plus-ui.git" - }, - "dependencies": { - "@element-plus/icons-vue": "2.1.0", - "@vueup/vue-quill": "1.1.0", - "@vueuse/core": "9.5.0", - "animate.css": "4.1.1", - "await-to-js": "^3.0.0", - "axios": "^1.3.4", - "echarts": "5.4.0", - "element-plus": "2.2.27", - "file-saver": "2.0.5", - "fuse.js": "6.6.2", - "js-cookie": "3.0.1", - "jsencrypt": "3.3.1", - "nprogress": "0.2.0", - "path-browserify": "1.0.1", - "path-to-regexp": "6.2.0", - "pinia": "2.0.22", - "screenfull": "6.0.0", - "vue": "3.2.45", - "vue-cropper": "1.0.3", - "vue-i18n": "9.2.2", - "vue-router": "4.1.4" - }, - "devDependencies": { - "@iconify/json": "^2.2.40", - "@intlify/unplugin-vue-i18n": "0.8.2", - "@types/file-saver": "2.0.5", - "@types/js-cookie": "3.0.3", - "@types/node": "18.14.2", - "@types/nprogress": "0.2.0", - "@types/path-browserify": "^1.0.0", - "@typescript-eslint/eslint-plugin": "5.56.0", - "@typescript-eslint/parser": "5.56.0", - "@unocss/preset-attributify": "^0.50.6", - "@unocss/preset-icons": "^0.50.6", - "@unocss/preset-uno": "^0.50.6", - "@vitejs/plugin-vue": "4.0.0", - "@vue/compiler-sfc": "3.2.45", - "autoprefixer": "10.4.14", - "eslint": "8.36.0", - "eslint-config-prettier": "8.8.0", - "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-vue": "9.9.0", - "fast-glob": "^3.2.11", - "husky": "7.0.4", - "postcss": "^8.4.21", - "prettier": "2.8.6", - "sass": "1.56.1", - "typescript": "4.9.5", - "unocss": "^0.50.6", - "unplugin-auto-import": "0.13.0", - "unplugin-icons": "0.15.1", - "unplugin-vue-components": "0.23.0", - "vite": "4.1.4", - "vite-plugin-compression": "0.5.1", - "vite-plugin-svg-icons": "2.0.1", - "vite-plugin-vue-setup-extend": "0.4.0", - "vitest": "^0.29.7", - "vue-eslint-parser": "9.1.0", - "vue-tsc": "0.35.0" - } + "name": "ruoyi-vue-plus", + "version": "5.0.0-SNAPSHOT", + "description": "RuoYi-Vue-Plus多租户管理系统", + "author": "LionLi", + "license": "MIT", + "scripts": { + "dev": "vite serve --mode development", + "build:prod": "vite build --mode production &&vue-tsc --noEmit", + "preview": "vite preview", + "lint": "eslint src/**/*.{ts,js,vue} --fix", + "prepare": "husky install", + "prettier": "prettier --write ." + }, + "repository": { + "type": "git", + "url": "https://gitee.com/JavaLionLi/plus-ui.git" + }, + "dependencies": { + "@element-plus/icons-vue": "2.1.0", + "@vueup/vue-quill": "1.1.0", + "@vueuse/core": "9.5.0", + "animate.css": "4.1.1", + "await-to-js": "^3.0.0", + "axios": "^1.3.4", + "echarts": "5.4.0", + "element-plus": "2.2.27", + "file-saver": "2.0.5", + "fuse.js": "6.6.2", + "js-cookie": "3.0.1", + "jsencrypt": "3.3.1", + "nprogress": "0.2.0", + "path-browserify": "1.0.1", + "path-to-regexp": "6.2.0", + "pinia": "2.0.22", + "screenfull": "6.0.0", + "vue": "3.2.45", + "vue-cropper": "1.0.3", + "vue-i18n": "9.2.2", + "vue-router": "4.1.4" + }, + "devDependencies": { + "@iconify/json": "^2.2.40", + "@intlify/unplugin-vue-i18n": "0.8.2", + "@types/file-saver": "2.0.5", + "@types/js-cookie": "3.0.3", + "@types/node": "18.14.2", + "@types/nprogress": "0.2.0", + "@types/path-browserify": "^1.0.0", + "@typescript-eslint/eslint-plugin": "5.56.0", + "@typescript-eslint/parser": "5.56.0", + "@unocss/preset-attributify": "^0.50.6", + "@unocss/preset-icons": "^0.50.6", + "@unocss/preset-uno": "^0.50.6", + "@vitejs/plugin-vue": "4.0.0", + "@vue/compiler-sfc": "3.2.45", + "autoprefixer": "10.4.14", + "eslint": "8.36.0", + "eslint-config-prettier": "8.8.0", + "eslint-plugin-prettier": "4.2.1", + "eslint-plugin-vue": "9.9.0", + "fast-glob": "^3.2.11", + "husky": "7.0.4", + "postcss": "^8.4.21", + "prettier": "2.8.6", + "sass": "1.56.1", + "typescript": "4.9.5", + "unocss": "^0.50.6", + "unplugin-auto-import": "0.13.0", + "unplugin-icons": "0.15.1", + "unplugin-vue-components": "0.23.0", + "vite": "4.1.4", + "vite-plugin-compression": "0.5.1", + "vite-plugin-svg-icons": "2.0.1", + "vite-plugin-vue-setup-extend": "0.4.0", + "vitest": "^0.29.7", + "vue-eslint-parser": "9.1.0", + "vue-tsc": "0.35.0" + } } diff --git a/src/App.vue b/src/App.vue index d073319..41ffdd4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,7 @@ - - diff --git a/src/components/iFrame/index.vue b/src/components/iFrame/index.vue index aff55e7..94d7b28 100644 --- a/src/components/iFrame/index.vue +++ b/src/components/iFrame/index.vue @@ -21,7 +21,7 @@ onMounted(() => { + - - + \ No newline at end of file diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 483800d..9e4f470 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -1,3 +1,68 @@ + + - - diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 34a91d3..04fc3df 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -1,3 +1,196 @@ + + - - diff --git a/src/views/system/role/selectUser.vue b/src/views/system/role/selectUser.vue index ccae9e1..38c6a44 100644 --- a/src/views/system/role/selectUser.vue +++ b/src/views/system/role/selectUser.vue @@ -1,3 +1,48 @@ + + - - diff --git a/src/views/system/tenant/index.vue b/src/views/system/tenant/index.vue index 8feddb8..99d2cb1 100644 --- a/src/views/system/tenant/index.vue +++ b/src/views/system/tenant/index.vue @@ -1,3 +1,143 @@ + + - - diff --git a/src/views/system/tenantPackage/index.vue b/src/views/system/tenantPackage/index.vue index 6a3a494..790d003 100644 --- a/src/views/system/tenantPackage/index.vue +++ b/src/views/system/tenantPackage/index.vue @@ -1,3 +1,102 @@ + + - - diff --git a/src/views/system/user/authRole.vue b/src/views/system/user/authRole.vue index 0616f67..0e8eba2 100644 --- a/src/views/system/user/authRole.vue +++ b/src/views/system/user/authRole.vue @@ -1,3 +1,59 @@ + + - - diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 41be116..c911bd9 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -1,13 +1,300 @@ + + - - diff --git a/src/views/system/user/profile/index.vue b/src/views/system/user/profile/index.vue index 40a5156..73496b3 100644 --- a/src/views/system/user/profile/index.vue +++ b/src/views/system/user/profile/index.vue @@ -14,78 +14,78 @@ const state = ref<{ user: any; roleGroup: string; postGroup: string}>({ const userForm = ref({}); const getUser = async () => { - const res = await getUserProfile(); - state.value.user = res.data.user; - userForm.value = { ...res.data.user } - state.value.roleGroup = res.data.roleGroup; - state.value.postGroup = res.data.postGroup; + const res = await getUserProfile(); + state.value.user = res.data.user; + userForm.value = { ...res.data.user } + state.value.roleGroup = res.data.roleGroup; + state.value.postGroup = res.data.postGroup; }; onMounted(() => { - getUser(); + getUser(); }) diff --git a/src/views/system/user/profile/resetPwd.vue b/src/views/system/user/profile/resetPwd.vue index 0207342..2f6551b 100644 --- a/src/views/system/user/profile/resetPwd.vue +++ b/src/views/system/user/profile/resetPwd.vue @@ -44,19 +44,19 @@ const close = () => { diff --git a/src/views/system/user/profile/userAvatar.vue b/src/views/system/user/profile/userAvatar.vue index 6094301..eaf8db3 100644 --- a/src/views/system/user/profile/userAvatar.vue +++ b/src/views/system/user/profile/userAvatar.vue @@ -100,58 +100,58 @@ const closeDialog = () => {