From adf574b8a12e4277f2c7f583627ee9780adf02b2 Mon Sep 17 00:00:00 2001 From: ihzero Date: Wed, 19 Oct 2022 13:19:03 +0800 Subject: [PATCH] first commit --- .editorconfig | 19 + .env | 8 + .env.development | 21 + .env.production | 35 + .env.test | 36 + .eslintignore | 15 + .eslintrc.js | 80 + .github/ISSUE_TEMPLATE/1-bug.md | 39 + .github/ISSUE_TEMPLATE/2-feature.md | 32 + .github/ISSUE_TEMPLATE/3-bug-cn.md | 28 + .github/ISSUE_TEMPLATE/config.yml | 8 + .github/commit-convention.md | 89 + .github/contributing.md | 5 + .github/pull_request_template.md | 34 + .github/workflows/deploy.yml | 118 + .github/workflows/ftp-schedule.yml | 56 + .github/workflows/issue-close-require.yml | 17 + .github/workflows/issue-labeled.yml | 29 + .github/workflows/release.yml | 24 + .gitignore | 29 + .gitpod.yml | 6 + .prettierignore | 9 + .stylelintignore | 3 + .vscode/extensions.json | 13 + .vscode/launch.json | 13 + .vscode/settings.json | 142 + .yarnclean | 48 + CHANGELOG.en_US.md | 1262 ++ CHANGELOG.md | 1586 +++ CHANGELOG.zh_CN.md | 1317 ++ LICENSE | 21 + README.md | 169 + README.zh-CN.md | 175 + build/config/themeConfig.ts | 79 + build/constant.ts | 6 + build/generate/generateModifyVars.ts | 37 + build/generate/icon/index.ts | 72 + build/getConfigFileName.ts | 9 + build/script/buildConf.ts | 45 + build/script/postBuild.ts | 23 + build/utils.ts | 92 + build/vite/optimizer.ts | 21 + build/vite/plugin/compress.ts | 35 + build/vite/plugin/hmr.ts | 25 + build/vite/plugin/html.ts | 40 + build/vite/plugin/imagemin.ts | 34 + build/vite/plugin/index.ts | 82 + build/vite/plugin/mock.ts | 19 + build/vite/plugin/pwa.ts | 33 + build/vite/plugin/styleImport.ts | 78 + build/vite/plugin/svgSprite.ts | 17 + build/vite/plugin/theme.ts | 89 + build/vite/plugin/visualizer.ts | 17 + build/vite/proxy.ts | 34 + commitlint.config.js | 33 + index.html | 166 + jest.config.mjs | 36 + mock/_createProductionServer.ts | 18 + mock/_util.ts | 60 + mock/demo/account.ts | 71 + mock/sys/menu.ts | 270 + mock/sys/user.ts | 90 + package.json | 152 + pnpm-lock.yaml | 11731 ++++++++++++++++ postcss.config.js | 5 + prettier.config.js | 10 + public/favicon.ico | Bin 0 -> 894 bytes public/resource/img/logo.png | Bin 0 -> 4042 bytes public/resource/img/pwa-192x192.png | Bin 0 -> 12205 bytes public/resource/img/pwa-512x512.png | Bin 0 -> 52656 bytes public/resource/tinymce/langs/en.js | 419 + public/resource/tinymce/langs/zh_CN.js | 389 + .../ui/oxide-dark/content.inline.min.css | 239 + .../skins/ui/oxide-dark/content.min.css | 235 + .../ui/oxide-dark/content.mobile.min.css | 17 + .../tinymce/skins/ui/oxide-dark/skin.min.css | 875 ++ .../skins/ui/oxide-dark/skin.mobile.min.css | 239 + .../skins/ui/oxide/content.inline.min.css | 239 + .../tinymce/skins/ui/oxide/content.min.css | 235 + .../skins/ui/oxide/content.mobile.min.css | 17 + .../skins/ui/oxide/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes .../tinymce/skins/ui/oxide/skin.min.css | 875 ++ .../skins/ui/oxide/skin.mobile.min.css | 239 + src/App.vue | 20 + src/api/demo/error.ts | 12 + src/api/model/baseModel.ts | 9 + src/api/sys/menu.ts | 14 + src/api/sys/model/menuModel.ts | 16 + src/api/sys/model/uploadModel.ts | 5 + src/api/sys/model/userModel.ts | 41 + src/api/sys/upload.ts | 22 + src/api/sys/user.ts | 41 + src/assets/icons/city.svg | 14 + src/assets/icons/download-count.svg | 1 + src/assets/icons/dynamic-avatar-1.svg | 1 + src/assets/icons/dynamic-avatar-2.svg | 1 + src/assets/icons/dynamic-avatar-3.svg | 1 + src/assets/icons/dynamic-avatar-4.svg | 1 + src/assets/icons/dynamic-avatar-5.svg | 1 + src/assets/icons/dynamic-avatar-6.svg | 1 + src/assets/icons/moon.svg | 16 + src/assets/icons/sun.svg | 42 + src/assets/icons/test.svg | 21 + src/assets/icons/total-sales.svg | 1 + src/assets/icons/transaction.svg | 1 + src/assets/icons/visit-count.svg | 1 + src/assets/icons/yujing1.svg | 37 + src/assets/icons/yujing2.svg | 37 + src/assets/icons/yujing3.svg | 37 + src/assets/icons/yujing4.svg | 37 + src/assets/images/demo.png | Bin 0 -> 33342 bytes src/assets/images/down-icon.png | Bin 0 -> 1150 bytes src/assets/images/header.jpg | Bin 0 -> 16880 bytes src/assets/images/icon_1.png | Bin 0 -> 329 bytes src/assets/images/logo.png | Bin 0 -> 28304 bytes src/assets/images/uicon_1.png | Bin 0 -> 382 bytes src/assets/images/up-icon.png | Bin 0 -> 1362 bytes src/assets/svg/illustration.svg | 1 + src/assets/svg/login-bg-dark.svg | 19 + src/assets/svg/login-bg.svg | 17 + src/assets/svg/login-box-bg.svg | 1 + src/assets/svg/net-error.svg | 1 + src/assets/svg/no-data.svg | 1 + src/assets/svg/preview/p-rotate.svg | 1 + src/assets/svg/preview/resume.svg | 1 + src/assets/svg/preview/scale.svg | 1 + src/assets/svg/preview/unrotate.svg | 1 + src/assets/svg/preview/unscale.svg | 1 + src/components/Application/index.ts | 15 + .../Application/src/AppDarkModeToggle.vue | 76 + .../Application/src/AppLocalePicker.vue | 76 + src/components/Application/src/AppLogo.vue | 93 + .../Application/src/AppProvider.vue | 82 + .../Application/src/search/AppSearch.vue | 33 + .../src/search/AppSearchFooter.vue | 56 + .../src/search/AppSearchKeyItem.vue | 11 + .../Application/src/search/AppSearchModal.vue | 267 + .../Application/src/search/useMenuSearch.ts | 166 + .../Application/src/useAppContext.ts | 17 + src/components/Basic/index.ts | 8 + src/components/Basic/src/BasicArrow.vue | 84 + src/components/Basic/src/BasicHelp.vue | 114 + src/components/Basic/src/BasicTitle.vue | 76 + src/components/Button/index.ts | 9 + src/components/Button/src/BasicButton.vue | 40 + .../Button/src/PopConfirmButton.vue | 54 + src/components/Button/src/props.ts | 19 + src/components/Container/index.ts | 10 + .../Container/src/LazyContainer.vue | 145 + .../Container/src/ScrollContainer.vue | 93 + .../src/collapse/CollapseContainer.vue | 105 + .../Container/src/collapse/CollapseHeader.vue | 38 + src/components/Container/src/typing.ts | 17 + src/components/ContextMenu/index.ts | 3 + .../ContextMenu/src/ContextMenu.vue | 207 + .../ContextMenu/src/createContextMenu.ts | 75 + src/components/ContextMenu/src/typing.ts | 35 + src/components/CountDown/index.ts | 6 + src/components/CountDown/src/CountButton.vue | 62 + .../CountDown/src/CountdownInput.vue | 54 + src/components/CountDown/src/useCountdown.ts | 51 + src/components/CountTo/index.ts | 4 + src/components/CountTo/src/CountTo.vue | 110 + src/components/Drawer/index.ts | 6 + src/components/Drawer/src/BasicDrawer.vue | 256 + .../Drawer/src/components/DrawerFooter.vue | 82 + .../Drawer/src/components/DrawerHeader.vue | 74 + src/components/Drawer/src/props.ts | 44 + src/components/Drawer/src/typing.ts | 194 + src/components/Drawer/src/useDrawer.ts | 161 + src/components/Dropdown/index.ts | 5 + src/components/Dropdown/src/Dropdown.vue | 96 + src/components/Dropdown/src/typing.ts | 9 + src/components/Form/index.ts | 15 + src/components/Form/src/BasicForm.vue | 340 + src/components/Form/src/componentMap.ts | 79 + .../Form/src/components/ApiCascader.vue | 197 + .../Form/src/components/ApiRadioGroup.vue | 130 + .../Form/src/components/ApiSelect.vue | 142 + .../Form/src/components/ApiTreeSelect.vue | 86 + .../Form/src/components/FormAction.vue | 135 + .../Form/src/components/FormItem.vue | 380 + .../Form/src/components/RadioButtonGroup.vue | 57 + src/components/Form/src/helper.ts | 72 + src/components/Form/src/hooks/useAdvanced.ts | 165 + src/components/Form/src/hooks/useAutoFocus.ts | 40 + .../Form/src/hooks/useComponentRegister.ts | 11 + src/components/Form/src/hooks/useForm.ts | 122 + .../Form/src/hooks/useFormContext.ts | 17 + .../Form/src/hooks/useFormEvents.ts | 264 + .../Form/src/hooks/useFormValues.ts | 87 + .../Form/src/hooks/useLabelWidth.ts | 39 + src/components/Form/src/props.ts | 102 + src/components/Form/src/types/form.ts | 220 + src/components/Form/src/types/formItem.ts | 91 + src/components/Form/src/types/hooks.ts | 6 + src/components/Form/src/types/index.ts | 115 + src/components/Icon/data/icons.data.ts | 793 ++ src/components/Icon/index.ts | 7 + src/components/Icon/src/Icon.vue | 121 + src/components/Icon/src/IconPicker.vue | 191 + src/components/Icon/src/SvgIcon.vue | 65 + src/components/Loading/index.ts | 5 + src/components/Loading/src/Loading.vue | 79 + src/components/Loading/src/createLoading.ts | 65 + src/components/Loading/src/typing.ts | 10 + src/components/Loading/src/useLoading.ts | 49 + src/components/Menu/index.ts | 3 + src/components/Menu/src/BasicMenu.vue | 164 + .../Menu/src/components/BasicMenuItem.vue | 20 + .../Menu/src/components/BasicSubMenuItem.vue | 55 + .../Menu/src/components/MenuItemContent.vue | 34 + src/components/Menu/src/index.less | 74 + src/components/Menu/src/props.ts | 60 + src/components/Menu/src/types.ts | 25 + src/components/Menu/src/useOpenKeys.ts | 83 + src/components/Modal/index.ts | 8 + src/components/Modal/src/BasicModal.vue | 242 + src/components/Modal/src/components/Modal.tsx | 27 + .../Modal/src/components/ModalClose.vue | 106 + .../Modal/src/components/ModalFooter.vue | 40 + .../Modal/src/components/ModalHeader.vue | 22 + .../Modal/src/components/ModalWrapper.vue | 169 + src/components/Modal/src/hooks/useModal.ts | 163 + .../Modal/src/hooks/useModalContext.ts | 16 + .../Modal/src/hooks/useModalDrag.ts | 107 + .../Modal/src/hooks/useModalFullScreen.ts | 43 + src/components/Modal/src/index.less | 128 + src/components/Modal/src/props.ts | 83 + src/components/Modal/src/typing.ts | 209 + src/components/Page/index.ts | 9 + src/components/Page/src/PageFooter.vue | 50 + src/components/Page/src/PageWrapper.vue | 186 + src/components/Qrcode/index.ts | 5 + src/components/Qrcode/src/Qrcode.vue | 112 + src/components/Qrcode/src/drawCanvas.ts | 37 + src/components/Qrcode/src/drawLogo.ts | 88 + src/components/Qrcode/src/qrcodePlus.ts | 4 + src/components/Qrcode/src/toCanvas.ts | 10 + src/components/Qrcode/src/typing.ts | 38 + src/components/Scrollbar/index.ts | 8 + src/components/Scrollbar/src/Scrollbar.vue | 206 + src/components/Scrollbar/src/bar.ts | 110 + src/components/Scrollbar/src/types.d.ts | 18 + src/components/Scrollbar/src/util.ts | 50 + src/components/SimpleMenu/index.ts | 2 + src/components/SimpleMenu/src/SimpleMenu.vue | 160 + .../SimpleMenu/src/SimpleMenuTag.vue | 68 + .../SimpleMenu/src/SimpleSubMenu.vue | 113 + .../SimpleMenu/src/components/Menu.vue | 158 + .../src/components/MenuCollapseTransition.vue | 78 + .../SimpleMenu/src/components/MenuItem.vue | 107 + .../SimpleMenu/src/components/SubMenuItem.vue | 334 + .../SimpleMenu/src/components/menu.less | 309 + .../SimpleMenu/src/components/types.ts | 25 + .../SimpleMenu/src/components/useMenu.ts | 84 + .../src/components/useSimpleMenuContext.ts | 18 + src/components/SimpleMenu/src/index.less | 77 + src/components/SimpleMenu/src/types.ts | 5 + src/components/SimpleMenu/src/useOpenKeys.ts | 50 + src/components/StrengthMeter/index.ts | 4 + .../StrengthMeter/src/StrengthMeter.vue | 142 + src/components/Table/index.ts | 10 + src/components/Table/src/BasicTable.vue | 434 + src/components/Table/src/componentMap.ts | 34 + .../src/components/EditTableHeaderIcon.vue | 16 + .../Table/src/components/ExpandIcon.tsx | 23 + .../Table/src/components/HeaderCell.vue | 48 + .../Table/src/components/TableAction.vue | 203 + .../Table/src/components/TableFooter.vue | 94 + .../Table/src/components/TableHeader.vue | 81 + .../Table/src/components/TableImg.vue | 85 + .../Table/src/components/TableTitle.vue | 53 + .../src/components/editable/CellComponent.ts | 44 + .../src/components/editable/EditableCell.vue | 488 + .../Table/src/components/editable/helper.ts | 28 + .../Table/src/components/editable/index.ts | 68 + .../src/components/settings/ColumnSetting.vue | 465 + .../components/settings/FullScreenSetting.vue | 38 + .../src/components/settings/RedoSetting.vue | 33 + .../src/components/settings/SizeSetting.vue | 64 + .../Table/src/components/settings/index.vue | 76 + src/components/Table/src/const.ts | 38 + src/components/Table/src/hooks/useColumns.ts | 325 + .../Table/src/hooks/useCustomRow.ts | 100 + .../Table/src/hooks/useDataSource.ts | 375 + src/components/Table/src/hooks/useLoading.ts | 21 + .../Table/src/hooks/usePagination.tsx | 85 + .../Table/src/hooks/useRowSelection.ts | 125 + src/components/Table/src/hooks/useTable.ts | 161 + .../Table/src/hooks/useTableContext.ts | 22 + .../Table/src/hooks/useTableExpand.ts | 58 + .../Table/src/hooks/useTableFooter.ts | 57 + .../Table/src/hooks/useTableForm.ts | 50 + .../Table/src/hooks/useTableHeader.ts | 54 + .../Table/src/hooks/useTableScroll.ts | 193 + .../Table/src/hooks/useTableStyle.ts | 20 + src/components/Table/src/props.ts | 149 + src/components/Table/src/types/column.ts | 198 + .../Table/src/types/componentType.ts | 10 + src/components/Table/src/types/pagination.ts | 99 + src/components/Table/src/types/table.ts | 460 + src/components/Table/src/types/tableAction.ts | 26 + src/components/Transition/index.ts | 27 + .../Transition/src/CollapseTransition.vue | 78 + .../Transition/src/CreateTransition.tsx | 73 + .../Transition/src/ExpandTransition.ts | 89 + src/components/Upload/index.ts | 4 + src/components/Upload/src/BasicUpload.vue | 124 + src/components/Upload/src/FileList.vue | 104 + src/components/Upload/src/ThumbUrl.vue | 29 + src/components/Upload/src/UploadModal.vue | 327 + .../Upload/src/UploadPreviewModal.vue | 99 + src/components/Upload/src/data.tsx | 153 + src/components/Upload/src/helper.ts | 27 + src/components/Upload/src/props.ts | 83 + src/components/Upload/src/typing.ts | 55 + src/components/Upload/src/useUpload.ts | 60 + src/components/Verify/index.ts | 7 + src/components/Verify/src/DragVerify.vue | 371 + src/components/Verify/src/ImgRotate.vue | 220 + src/components/Verify/src/props.ts | 87 + src/components/Verify/src/typing.ts | 14 + src/components/VirtualScroll/index.ts | 4 + .../VirtualScroll/src/VirtualScroll.vue | 190 + src/components/registerGlobComp.ts | 18 + src/design/ant/btn.less | 317 + src/design/ant/index.less | 65 + src/design/ant/input.less | 24 + src/design/ant/pagination.less | 96 + src/design/ant/table.less | 76 + src/design/color.less | 138 + src/design/config.less | 2 + src/design/index.less | 44 + src/design/public.less | 51 + src/design/theme.less | 52 + src/design/transition/base.less | 18 + src/design/transition/fade.less | 81 + src/design/transition/index.less | 10 + src/design/transition/scale.less | 21 + src/design/transition/scroll.less | 67 + src/design/transition/slide.less | 39 + src/design/transition/zoom.less | 27 + src/design/var/breakpoint.less | 33 + src/design/var/easing.less | 18 + src/design/var/index.less | 39 + src/directives/clickOutside.ts | 86 + src/directives/index.ts | 11 + src/directives/loading.ts | 41 + src/directives/permission.ts | 32 + src/directives/repeatClick.ts | 31 + src/directives/ripple/index.less | 21 + src/directives/ripple/index.ts | 191 + src/enums/appEnum.ts | 48 + src/enums/breakpointEnum.ts | 28 + src/enums/cacheEnum.ts | 31 + src/enums/exceptionEnum.ts | 27 + src/enums/httpEnum.ts | 31 + src/enums/menuEnum.ts | 50 + src/enums/pageEnum.ts | 10 + src/enums/roleEnum.ts | 7 + src/enums/sizeEnum.ts | 19 + src/hooks/component/useFormItem.ts | 60 + src/hooks/component/usePageContext.ts | 18 + src/hooks/core/onMountedOrActivated.ts | 18 + src/hooks/core/useAttrs.ts | 40 + src/hooks/core/useContext.ts | 45 + src/hooks/core/useLockFn.ts | 17 + src/hooks/core/useRefs.ts | 16 + src/hooks/core/useTimeout.ts | 45 + src/hooks/event/useBreakpoint.ts | 89 + src/hooks/event/useEventListener.ts | 58 + src/hooks/event/useIntersectionObserver.ts | 48 + src/hooks/event/useScroll.ts | 65 + src/hooks/event/useScrollTo.ts | 59 + src/hooks/event/useWindowSizeFn.ts | 36 + src/hooks/setting/index.ts | 30 + src/hooks/setting/useHeaderSetting.ts | 105 + src/hooks/setting/useMenuSetting.ts | 166 + src/hooks/setting/useMultipleTabSetting.ts | 28 + src/hooks/setting/useRootSetting.ts | 95 + src/hooks/setting/useTransitionSetting.ts | 31 + src/hooks/web/useAppInject.ts | 10 + src/hooks/web/useContentHeight.ts | 191 + src/hooks/web/useContextMenu.ts | 12 + src/hooks/web/useCopyToClipboard.ts | 69 + src/hooks/web/useDesign.ts | 22 + src/hooks/web/useECharts.ts | 116 + src/hooks/web/useFullContent.ts | 28 + src/hooks/web/useI18n.ts | 55 + src/hooks/web/useLockPage.ts | 72 + src/hooks/web/useMessage.tsx | 123 + src/hooks/web/usePage.ts | 60 + src/hooks/web/usePagination.ts | 34 + src/hooks/web/usePermission.ts | 110 + src/hooks/web/useScript.ts | 46 + src/hooks/web/useSortable.ts | 21 + src/hooks/web/useTabs.ts | 103 + src/hooks/web/useTitle.ts | 35 + src/hooks/web/useWatermark.ts | 100 + src/layouts/default/content/index.vue | 51 + .../default/content/useContentContext.ts | 17 + .../default/content/useContentViewHeight.ts | 42 + src/layouts/default/feature/index.vue | 83 + src/layouts/default/footer/index.vue | 95 + src/layouts/default/header/MultipleHeader.vue | 126 + .../default/header/components/Breadcrumb.vue | 204 + .../default/header/components/ErrorAction.vue | 48 + .../default/header/components/FullScreen.vue | 37 + .../default/header/components/index.ts | 14 + .../header/components/lock/LockModal.vue | 123 + .../header/components/notify/NoticeList.vue | 189 + .../default/header/components/notify/data.ts | 193 + .../header/components/notify/index.vue | 91 + .../components/user-dropdown/DropMenuItem.vue | 32 + .../header/components/user-dropdown/index.vue | 176 + src/layouts/default/header/index.less | 196 + src/layouts/default/header/index.vue | 201 + src/layouts/default/index.vue | 92 + src/layouts/default/menu/index.vue | 197 + src/layouts/default/menu/useLayoutMenu.ts | 109 + src/layouts/default/setting/SettingDrawer.tsx | 427 + .../setting/components/InputNumberItem.vue | 56 + .../default/setting/components/SelectItem.vue | 75 + .../setting/components/SettingFooter.vue | 99 + .../default/setting/components/SwitchItem.vue | 66 + .../setting/components/ThemeColorPicker.vue | 88 + .../default/setting/components/TypePicker.vue | 178 + .../default/setting/components/index.ts | 8 + src/layouts/default/setting/enum.ts | 156 + src/layouts/default/setting/handler.ts | 174 + src/layouts/default/setting/index.vue | 26 + src/layouts/default/sider/DragBar.vue | 66 + src/layouts/default/sider/LayoutSider.vue | 185 + src/layouts/default/sider/MixSider.vue | 591 + src/layouts/default/sider/index.vue | 57 + src/layouts/default/sider/useLayoutSider.ts | 139 + .../default/tabs/components/FoldButton.vue | 42 + .../default/tabs/components/TabContent.vue | 70 + .../default/tabs/components/TabRedo.vue | 33 + src/layouts/default/tabs/index.less | 181 + src/layouts/default/tabs/index.vue | 146 + src/layouts/default/tabs/types.ts | 25 + src/layouts/default/tabs/useMultipleTabs.ts | 78 + src/layouts/default/tabs/useTabDropdown.ts | 140 + src/layouts/default/trigger/HeaderTrigger.vue | 25 + src/layouts/default/trigger/SiderTrigger.vue | 21 + src/layouts/default/trigger/index.vue | 22 + src/layouts/iframe/index.vue | 29 + src/layouts/iframe/useFrameKeepAlive.ts | 59 + src/layouts/page/index.vue | 70 + src/layouts/page/transition.ts | 33 + src/locales/helper.ts | 37 + src/locales/lang/en.ts | 13 + src/locales/lang/en/common.ts | 20 + src/locales/lang/en/component.ts | 129 + src/locales/lang/en/layout.ts | 115 + src/locales/lang/en/routes/basic.ts | 4 + src/locales/lang/en/routes/dashboard.ts | 6 + src/locales/lang/en/routes/demo.ts | 202 + src/locales/lang/en/sys.ts | 104 + src/locales/lang/zh-CN/common.ts | 20 + src/locales/lang/zh-CN/component.ts | 134 + src/locales/lang/zh-CN/layout.ts | 115 + src/locales/lang/zh-CN/routes/basic.ts | 4 + src/locales/lang/zh-CN/routes/dashboard.ts | 6 + src/locales/lang/zh-CN/routes/demo.ts | 193 + src/locales/lang/zh-CN/sys.ts | 98 + src/locales/lang/zh_CN.ts | 13 + src/locales/setupI18n.ts | 44 + src/locales/useLocale.ts | 72 + src/logics/error-handle/index.ts | 184 + src/logics/initAppConfig.ts | 84 + src/logics/mitt/routeChange.ts | 32 + src/logics/theme/dark.ts | 24 + src/logics/theme/index.ts | 17 + src/logics/theme/updateBackground.ts | 75 + src/logics/theme/updateColorWeak.ts | 9 + src/logics/theme/updateGrayMode.ts | 9 + src/logics/theme/util.ts | 11 + src/main.ts | 59 + src/router/constant.ts | 24 + src/router/guard/index.ts | 147 + src/router/guard/paramMenuGuard.ts | 47 + src/router/guard/permissionGuard.ts | 120 + src/router/guard/stateGuard.ts | 24 + src/router/helper/menuHelper.ts | 95 + src/router/helper/routeHelper.ts | 164 + src/router/index.ts | 38 + src/router/menus/index.ts | 126 + src/router/routes/basic.ts | 78 + src/router/routes/index.ts | 46 + src/router/routes/mainOut.ts | 12 + src/router/routes/modules/about.ts | 31 + src/router/routes/modules/base.ts | 57 + src/router/routes/modules/dashboard.ts | 37 + src/router/routes/modules/main.ts | 50 + src/router/types.ts | 58 + src/settings/componentSetting.ts | 51 + src/settings/designSetting.ts | 48 + src/settings/encryptionSetting.ts | 13 + src/settings/localeSetting.ts | 29 + src/settings/projectSetting.ts | 180 + src/settings/siteSetting.ts | 8 + src/store/index.ts | 10 + src/store/modules/app.ts | 108 + src/store/modules/errorLog.ts | 77 + src/store/modules/locale.ts | 55 + src/store/modules/lock.ts | 59 + src/store/modules/multipleTab.ts | 359 + src/store/modules/permission.ts | 220 + src/store/modules/user.ts | 179 + src/utils/auth/index.ts | 26 + src/utils/cache/index.ts | 32 + src/utils/cache/memory.ts | 102 + src/utils/cache/persistent.ts | 132 + src/utils/cache/storageCache.ts | 114 + src/utils/cipher.ts | 55 + src/utils/color.ts | 151 + src/utils/dateUtil.ts | 20 + src/utils/domUtils.ts | 180 + src/utils/env.ts | 83 + src/utils/event/index.ts | 42 + src/utils/factory/createAsyncComponent.tsx | 63 + src/utils/file/base64Conver.ts | 41 + src/utils/file/download.ts | 96 + src/utils/helper/treeHelper.ts | 189 + src/utils/helper/tsxHelper.tsx | 35 + src/utils/http/axios/Axios.ts | 237 + src/utils/http/axios/axiosCancel.ts | 60 + src/utils/http/axios/axiosTransform.ts | 52 + src/utils/http/axios/checkStatus.ts | 80 + src/utils/http/axios/helper.ts | 47 + src/utils/http/axios/index.ts | 251 + src/utils/index.ts | 91 + src/utils/is.ts | 99 + src/utils/lib/echarts.ts | 57 + src/utils/log.ts | 9 + src/utils/mitt.ts | 101 + src/utils/propTypes.ts | 34 + src/utils/uuid.ts | 28 + .../base/city-data/components/CountItem.vue | 25 + src/views/base/city-data/index.vue | 107 + src/views/base/flow-to/index.vue | 160 + .../industrial-structure/components/Chart.vue | 82 + .../industrial-structure/components/Data.vue | 93 + src/views/base/industrial-structure/index.vue | 27 + src/views/base/ranking-list/index.vue | 160 + src/views/base/trend/components/Chart.vue | 157 + src/views/base/trend/index.vue | 35 + .../analysis/components/GrowCard.vue | 40 + .../analysis/components/SalesProductPie.vue | 63 + .../analysis/components/SiteAnalysis.vue | 38 + .../analysis/components/VisitAnalysis.vue | 106 + .../analysis/components/VisitAnalysisBar.vue | 58 + .../analysis/components/VisitRadar.vue | 100 + .../analysis/components/VisitSource.vue | 80 + .../dashboard/analysis/components/props.ts | 16 + src/views/dashboard/analysis/data.ts | 43 + src/views/dashboard/analysis/index.vue | 25 + .../workbench/components/DynamicInfo.vue | 31 + .../workbench/components/ProjectCard.vue | 34 + .../workbench/components/QuickNav.vue | 19 + .../workbench/components/SaleRadar.vue | 100 + .../workbench/components/WorkbenchHeader.vue | 33 + .../dashboard/workbench/components/data.ts | 156 + src/views/dashboard/workbench/index.vue | 36 + .../meteorological/components/AirHumidity.vue | 86 + .../components/AirTemperature.vue | 99 + .../components/LightIntensity.vue | 106 + .../main/meteorological/components/Noise.vue | 85 + .../main/meteorological/components/PM10.vue | 85 + .../main/meteorological/components/PM25.vue | 85 + .../meteorological/components/Pressure.vue | 85 + .../meteorological/components/Rainfall.vue | 106 + .../components/WindDirection.vue | 106 + .../meteorological/components/WindSpeed.vue | 99 + src/views/main/meteorological/index.vue | 149 + .../main/monitor/components/LiveBroadcast.vue | 121 + .../monitor/components/LiveBroadcastItem.vue | 49 + .../main/monitor/components/Playback.vue | 152 + src/views/main/monitor/index.vue | 68 + .../components/EarlyWarningItem.vue | 26 + .../soil-monitoring/components/FormDrawer.vue | 61 + .../soil-monitoring/components/LineCharts.vue | 103 + src/views/main/soil-monitoring/index.vue | 265 + .../components/EarlyWarningItem.vue | 26 + .../water-quality/components/FormDrawer.vue | 61 + .../water-quality/components/LineCharts.vue | 103 + src/views/main/water-quality/index.vue | 265 + src/views/sys/about/index.vue | 98 + src/views/sys/error-log/DetailModal.vue | 27 + src/views/sys/error-log/data.tsx | 67 + src/views/sys/error-log/index.vue | 92 + src/views/sys/exception/Exception.vue | 148 + src/views/sys/exception/index.ts | 1 + src/views/sys/iframe/FrameBlank.vue | 9 + src/views/sys/iframe/index.vue | 90 + src/views/sys/lock/LockPage.vue | 234 + src/views/sys/lock/index.vue | 13 + src/views/sys/lock/useNow.ts | 63 + src/views/sys/login/ForgetPasswordForm.vue | 64 + src/views/sys/login/Login.vue | 215 + src/views/sys/login/LoginForm.vue | 124 + src/views/sys/login/LoginFormTitle.vue | 25 + src/views/sys/login/MobileForm.vue | 63 + src/views/sys/login/QrCodeForm.vue | 31 + src/views/sys/login/RegisterForm.vue | 104 + src/views/sys/login/SessionTimeoutLogin.vue | 53 + src/views/sys/login/useLogin.ts | 118 + src/views/sys/redirect/index.vue | 30 + stylelint.config.js | 92 + tests/__mocks__/fileMock.ts | 1 + tests/__mocks__/styleMock.ts | 1 + tests/__mocks__/workerMock.ts | 5 + tests/server/README.md | 15 + tests/server/controller/FileController.ts | 18 + tests/server/controller/UserController.ts | 15 + tests/server/ecosystem.config.js | 18 + tests/server/index.ts | 63 + tests/server/nodemon.json | 8 + tests/server/package.json | 36 + tests/server/routes.ts | 23 + tests/server/service/FileService.ts | 54 + tests/server/service/UserService.ts | 25 + tests/server/tsconfig.json | 15 + tests/server/utils.ts | 9 + tests/server/yarn.lock | 2955 ++++ tests/test.spec.ts | 16 + tsconfig.json | 43 + types/axios.d.ts | 46 + types/config.d.ts | 161 + types/global.d.ts | 101 + types/index.d.ts | 27 + types/module.d.ts | 22 + types/store.d.ts | 52 + types/utils.d.ts | 5 + types/vue-router.d.ts | 45 + vite.config.ts | 107 + windi.config.ts | 74 + yarn.lock | 11481 +++++++++++++++ 641 files changed, 80990 insertions(+) create mode 100644 .editorconfig create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .env.test create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .github/ISSUE_TEMPLATE/1-bug.md create mode 100644 .github/ISSUE_TEMPLATE/2-feature.md create mode 100644 .github/ISSUE_TEMPLATE/3-bug-cn.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/commit-convention.md create mode 100644 .github/contributing.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/ftp-schedule.yml create mode 100644 .github/workflows/issue-close-require.yml create mode 100644 .github/workflows/issue-labeled.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .gitpod.yml create mode 100644 .prettierignore create mode 100644 .stylelintignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .yarnclean create mode 100644 CHANGELOG.en_US.md create mode 100644 CHANGELOG.md create mode 100644 CHANGELOG.zh_CN.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README.zh-CN.md create mode 100644 build/config/themeConfig.ts create mode 100644 build/constant.ts create mode 100644 build/generate/generateModifyVars.ts create mode 100644 build/generate/icon/index.ts create mode 100644 build/getConfigFileName.ts create mode 100644 build/script/buildConf.ts create mode 100644 build/script/postBuild.ts create mode 100644 build/utils.ts create mode 100644 build/vite/optimizer.ts create mode 100644 build/vite/plugin/compress.ts create mode 100644 build/vite/plugin/hmr.ts create mode 100644 build/vite/plugin/html.ts create mode 100644 build/vite/plugin/imagemin.ts create mode 100644 build/vite/plugin/index.ts create mode 100644 build/vite/plugin/mock.ts create mode 100644 build/vite/plugin/pwa.ts create mode 100644 build/vite/plugin/styleImport.ts create mode 100644 build/vite/plugin/svgSprite.ts create mode 100644 build/vite/plugin/theme.ts create mode 100644 build/vite/plugin/visualizer.ts create mode 100644 build/vite/proxy.ts create mode 100644 commitlint.config.js create mode 100644 index.html create mode 100644 jest.config.mjs create mode 100644 mock/_createProductionServer.ts create mode 100644 mock/_util.ts create mode 100644 mock/demo/account.ts create mode 100644 mock/sys/menu.ts create mode 100644 mock/sys/user.ts create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100755 postcss.config.js create mode 100644 prettier.config.js create mode 100644 public/favicon.ico create mode 100644 public/resource/img/logo.png create mode 100644 public/resource/img/pwa-192x192.png create mode 100644 public/resource/img/pwa-512x512.png create mode 100644 public/resource/tinymce/langs/en.js create mode 100755 public/resource/tinymce/langs/zh_CN.js create mode 100644 public/resource/tinymce/skins/ui/oxide-dark/content.inline.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide-dark/content.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide-dark/content.mobile.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide-dark/skin.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide-dark/skin.mobile.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide/content.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide/content.mobile.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff create mode 100644 public/resource/tinymce/skins/ui/oxide/skin.min.css create mode 100644 public/resource/tinymce/skins/ui/oxide/skin.mobile.min.css create mode 100644 src/App.vue create mode 100644 src/api/demo/error.ts create mode 100644 src/api/model/baseModel.ts create mode 100644 src/api/sys/menu.ts create mode 100644 src/api/sys/model/menuModel.ts create mode 100644 src/api/sys/model/uploadModel.ts create mode 100644 src/api/sys/model/userModel.ts create mode 100644 src/api/sys/upload.ts create mode 100644 src/api/sys/user.ts create mode 100644 src/assets/icons/city.svg create mode 100644 src/assets/icons/download-count.svg create mode 100644 src/assets/icons/dynamic-avatar-1.svg create mode 100644 src/assets/icons/dynamic-avatar-2.svg create mode 100644 src/assets/icons/dynamic-avatar-3.svg create mode 100644 src/assets/icons/dynamic-avatar-4.svg create mode 100644 src/assets/icons/dynamic-avatar-5.svg create mode 100644 src/assets/icons/dynamic-avatar-6.svg create mode 100644 src/assets/icons/moon.svg create mode 100644 src/assets/icons/sun.svg create mode 100644 src/assets/icons/test.svg create mode 100644 src/assets/icons/total-sales.svg create mode 100644 src/assets/icons/transaction.svg create mode 100644 src/assets/icons/visit-count.svg create mode 100644 src/assets/icons/yujing1.svg create mode 100644 src/assets/icons/yujing2.svg create mode 100644 src/assets/icons/yujing3.svg create mode 100644 src/assets/icons/yujing4.svg create mode 100644 src/assets/images/demo.png create mode 100644 src/assets/images/down-icon.png create mode 100644 src/assets/images/header.jpg create mode 100644 src/assets/images/icon_1.png create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/uicon_1.png create mode 100644 src/assets/images/up-icon.png create mode 100644 src/assets/svg/illustration.svg create mode 100644 src/assets/svg/login-bg-dark.svg create mode 100644 src/assets/svg/login-bg.svg create mode 100644 src/assets/svg/login-box-bg.svg create mode 100644 src/assets/svg/net-error.svg create mode 100644 src/assets/svg/no-data.svg create mode 100644 src/assets/svg/preview/p-rotate.svg create mode 100644 src/assets/svg/preview/resume.svg create mode 100644 src/assets/svg/preview/scale.svg create mode 100644 src/assets/svg/preview/unrotate.svg create mode 100644 src/assets/svg/preview/unscale.svg create mode 100644 src/components/Application/index.ts create mode 100644 src/components/Application/src/AppDarkModeToggle.vue create mode 100644 src/components/Application/src/AppLocalePicker.vue create mode 100644 src/components/Application/src/AppLogo.vue create mode 100644 src/components/Application/src/AppProvider.vue create mode 100644 src/components/Application/src/search/AppSearch.vue create mode 100644 src/components/Application/src/search/AppSearchFooter.vue create mode 100644 src/components/Application/src/search/AppSearchKeyItem.vue create mode 100644 src/components/Application/src/search/AppSearchModal.vue create mode 100644 src/components/Application/src/search/useMenuSearch.ts create mode 100644 src/components/Application/src/useAppContext.ts create mode 100644 src/components/Basic/index.ts create mode 100644 src/components/Basic/src/BasicArrow.vue create mode 100644 src/components/Basic/src/BasicHelp.vue create mode 100644 src/components/Basic/src/BasicTitle.vue create mode 100644 src/components/Button/index.ts create mode 100644 src/components/Button/src/BasicButton.vue create mode 100644 src/components/Button/src/PopConfirmButton.vue create mode 100644 src/components/Button/src/props.ts create mode 100644 src/components/Container/index.ts create mode 100644 src/components/Container/src/LazyContainer.vue create mode 100644 src/components/Container/src/ScrollContainer.vue create mode 100644 src/components/Container/src/collapse/CollapseContainer.vue create mode 100644 src/components/Container/src/collapse/CollapseHeader.vue create mode 100644 src/components/Container/src/typing.ts create mode 100644 src/components/ContextMenu/index.ts create mode 100644 src/components/ContextMenu/src/ContextMenu.vue create mode 100644 src/components/ContextMenu/src/createContextMenu.ts create mode 100644 src/components/ContextMenu/src/typing.ts create mode 100644 src/components/CountDown/index.ts create mode 100644 src/components/CountDown/src/CountButton.vue create mode 100644 src/components/CountDown/src/CountdownInput.vue create mode 100644 src/components/CountDown/src/useCountdown.ts create mode 100644 src/components/CountTo/index.ts create mode 100644 src/components/CountTo/src/CountTo.vue create mode 100644 src/components/Drawer/index.ts create mode 100644 src/components/Drawer/src/BasicDrawer.vue create mode 100644 src/components/Drawer/src/components/DrawerFooter.vue create mode 100644 src/components/Drawer/src/components/DrawerHeader.vue create mode 100644 src/components/Drawer/src/props.ts create mode 100644 src/components/Drawer/src/typing.ts create mode 100644 src/components/Drawer/src/useDrawer.ts create mode 100644 src/components/Dropdown/index.ts create mode 100644 src/components/Dropdown/src/Dropdown.vue create mode 100644 src/components/Dropdown/src/typing.ts create mode 100644 src/components/Form/index.ts create mode 100644 src/components/Form/src/BasicForm.vue create mode 100644 src/components/Form/src/componentMap.ts create mode 100644 src/components/Form/src/components/ApiCascader.vue create mode 100644 src/components/Form/src/components/ApiRadioGroup.vue create mode 100644 src/components/Form/src/components/ApiSelect.vue create mode 100644 src/components/Form/src/components/ApiTreeSelect.vue create mode 100644 src/components/Form/src/components/FormAction.vue create mode 100644 src/components/Form/src/components/FormItem.vue create mode 100644 src/components/Form/src/components/RadioButtonGroup.vue create mode 100644 src/components/Form/src/helper.ts create mode 100644 src/components/Form/src/hooks/useAdvanced.ts create mode 100644 src/components/Form/src/hooks/useAutoFocus.ts create mode 100644 src/components/Form/src/hooks/useComponentRegister.ts create mode 100644 src/components/Form/src/hooks/useForm.ts create mode 100644 src/components/Form/src/hooks/useFormContext.ts create mode 100644 src/components/Form/src/hooks/useFormEvents.ts create mode 100644 src/components/Form/src/hooks/useFormValues.ts create mode 100644 src/components/Form/src/hooks/useLabelWidth.ts create mode 100644 src/components/Form/src/props.ts create mode 100644 src/components/Form/src/types/form.ts create mode 100644 src/components/Form/src/types/formItem.ts create mode 100644 src/components/Form/src/types/hooks.ts create mode 100644 src/components/Form/src/types/index.ts create mode 100644 src/components/Icon/data/icons.data.ts create mode 100644 src/components/Icon/index.ts create mode 100644 src/components/Icon/src/Icon.vue create mode 100644 src/components/Icon/src/IconPicker.vue create mode 100644 src/components/Icon/src/SvgIcon.vue create mode 100644 src/components/Loading/index.ts create mode 100644 src/components/Loading/src/Loading.vue create mode 100644 src/components/Loading/src/createLoading.ts create mode 100644 src/components/Loading/src/typing.ts create mode 100644 src/components/Loading/src/useLoading.ts create mode 100644 src/components/Menu/index.ts create mode 100644 src/components/Menu/src/BasicMenu.vue create mode 100644 src/components/Menu/src/components/BasicMenuItem.vue create mode 100644 src/components/Menu/src/components/BasicSubMenuItem.vue create mode 100644 src/components/Menu/src/components/MenuItemContent.vue create mode 100644 src/components/Menu/src/index.less create mode 100644 src/components/Menu/src/props.ts create mode 100644 src/components/Menu/src/types.ts create mode 100644 src/components/Menu/src/useOpenKeys.ts create mode 100644 src/components/Modal/index.ts create mode 100644 src/components/Modal/src/BasicModal.vue create mode 100644 src/components/Modal/src/components/Modal.tsx create mode 100644 src/components/Modal/src/components/ModalClose.vue create mode 100644 src/components/Modal/src/components/ModalFooter.vue create mode 100644 src/components/Modal/src/components/ModalHeader.vue create mode 100644 src/components/Modal/src/components/ModalWrapper.vue create mode 100644 src/components/Modal/src/hooks/useModal.ts create mode 100644 src/components/Modal/src/hooks/useModalContext.ts create mode 100644 src/components/Modal/src/hooks/useModalDrag.ts create mode 100644 src/components/Modal/src/hooks/useModalFullScreen.ts create mode 100644 src/components/Modal/src/index.less create mode 100644 src/components/Modal/src/props.ts create mode 100644 src/components/Modal/src/typing.ts create mode 100644 src/components/Page/index.ts create mode 100644 src/components/Page/src/PageFooter.vue create mode 100644 src/components/Page/src/PageWrapper.vue create mode 100644 src/components/Qrcode/index.ts create mode 100644 src/components/Qrcode/src/Qrcode.vue create mode 100644 src/components/Qrcode/src/drawCanvas.ts create mode 100644 src/components/Qrcode/src/drawLogo.ts create mode 100644 src/components/Qrcode/src/qrcodePlus.ts create mode 100644 src/components/Qrcode/src/toCanvas.ts create mode 100644 src/components/Qrcode/src/typing.ts create mode 100644 src/components/Scrollbar/index.ts create mode 100644 src/components/Scrollbar/src/Scrollbar.vue create mode 100644 src/components/Scrollbar/src/bar.ts create mode 100644 src/components/Scrollbar/src/types.d.ts create mode 100644 src/components/Scrollbar/src/util.ts create mode 100644 src/components/SimpleMenu/index.ts create mode 100644 src/components/SimpleMenu/src/SimpleMenu.vue create mode 100644 src/components/SimpleMenu/src/SimpleMenuTag.vue create mode 100644 src/components/SimpleMenu/src/SimpleSubMenu.vue create mode 100644 src/components/SimpleMenu/src/components/Menu.vue create mode 100644 src/components/SimpleMenu/src/components/MenuCollapseTransition.vue create mode 100644 src/components/SimpleMenu/src/components/MenuItem.vue create mode 100644 src/components/SimpleMenu/src/components/SubMenuItem.vue create mode 100644 src/components/SimpleMenu/src/components/menu.less create mode 100644 src/components/SimpleMenu/src/components/types.ts create mode 100644 src/components/SimpleMenu/src/components/useMenu.ts create mode 100644 src/components/SimpleMenu/src/components/useSimpleMenuContext.ts create mode 100644 src/components/SimpleMenu/src/index.less create mode 100644 src/components/SimpleMenu/src/types.ts create mode 100644 src/components/SimpleMenu/src/useOpenKeys.ts create mode 100644 src/components/StrengthMeter/index.ts create mode 100644 src/components/StrengthMeter/src/StrengthMeter.vue create mode 100644 src/components/Table/index.ts create mode 100644 src/components/Table/src/BasicTable.vue create mode 100644 src/components/Table/src/componentMap.ts create mode 100644 src/components/Table/src/components/EditTableHeaderIcon.vue create mode 100644 src/components/Table/src/components/ExpandIcon.tsx create mode 100644 src/components/Table/src/components/HeaderCell.vue create mode 100644 src/components/Table/src/components/TableAction.vue create mode 100644 src/components/Table/src/components/TableFooter.vue create mode 100644 src/components/Table/src/components/TableHeader.vue create mode 100644 src/components/Table/src/components/TableImg.vue create mode 100644 src/components/Table/src/components/TableTitle.vue create mode 100644 src/components/Table/src/components/editable/CellComponent.ts create mode 100644 src/components/Table/src/components/editable/EditableCell.vue create mode 100644 src/components/Table/src/components/editable/helper.ts create mode 100644 src/components/Table/src/components/editable/index.ts create mode 100644 src/components/Table/src/components/settings/ColumnSetting.vue create mode 100644 src/components/Table/src/components/settings/FullScreenSetting.vue create mode 100644 src/components/Table/src/components/settings/RedoSetting.vue create mode 100644 src/components/Table/src/components/settings/SizeSetting.vue create mode 100644 src/components/Table/src/components/settings/index.vue create mode 100644 src/components/Table/src/const.ts create mode 100644 src/components/Table/src/hooks/useColumns.ts create mode 100644 src/components/Table/src/hooks/useCustomRow.ts create mode 100644 src/components/Table/src/hooks/useDataSource.ts create mode 100644 src/components/Table/src/hooks/useLoading.ts create mode 100644 src/components/Table/src/hooks/usePagination.tsx create mode 100644 src/components/Table/src/hooks/useRowSelection.ts create mode 100644 src/components/Table/src/hooks/useTable.ts create mode 100644 src/components/Table/src/hooks/useTableContext.ts create mode 100644 src/components/Table/src/hooks/useTableExpand.ts create mode 100644 src/components/Table/src/hooks/useTableFooter.ts create mode 100644 src/components/Table/src/hooks/useTableForm.ts create mode 100644 src/components/Table/src/hooks/useTableHeader.ts create mode 100644 src/components/Table/src/hooks/useTableScroll.ts create mode 100644 src/components/Table/src/hooks/useTableStyle.ts create mode 100644 src/components/Table/src/props.ts create mode 100644 src/components/Table/src/types/column.ts create mode 100644 src/components/Table/src/types/componentType.ts create mode 100644 src/components/Table/src/types/pagination.ts create mode 100644 src/components/Table/src/types/table.ts create mode 100644 src/components/Table/src/types/tableAction.ts create mode 100644 src/components/Transition/index.ts create mode 100644 src/components/Transition/src/CollapseTransition.vue create mode 100644 src/components/Transition/src/CreateTransition.tsx create mode 100644 src/components/Transition/src/ExpandTransition.ts create mode 100644 src/components/Upload/index.ts create mode 100644 src/components/Upload/src/BasicUpload.vue create mode 100644 src/components/Upload/src/FileList.vue create mode 100644 src/components/Upload/src/ThumbUrl.vue create mode 100644 src/components/Upload/src/UploadModal.vue create mode 100644 src/components/Upload/src/UploadPreviewModal.vue create mode 100644 src/components/Upload/src/data.tsx create mode 100644 src/components/Upload/src/helper.ts create mode 100644 src/components/Upload/src/props.ts create mode 100644 src/components/Upload/src/typing.ts create mode 100644 src/components/Upload/src/useUpload.ts create mode 100644 src/components/Verify/index.ts create mode 100644 src/components/Verify/src/DragVerify.vue create mode 100644 src/components/Verify/src/ImgRotate.vue create mode 100644 src/components/Verify/src/props.ts create mode 100644 src/components/Verify/src/typing.ts create mode 100644 src/components/VirtualScroll/index.ts create mode 100644 src/components/VirtualScroll/src/VirtualScroll.vue create mode 100644 src/components/registerGlobComp.ts create mode 100644 src/design/ant/btn.less create mode 100644 src/design/ant/index.less create mode 100644 src/design/ant/input.less create mode 100644 src/design/ant/pagination.less create mode 100644 src/design/ant/table.less create mode 100644 src/design/color.less create mode 100644 src/design/config.less create mode 100644 src/design/index.less create mode 100644 src/design/public.less create mode 100644 src/design/theme.less create mode 100644 src/design/transition/base.less create mode 100644 src/design/transition/fade.less create mode 100644 src/design/transition/index.less create mode 100644 src/design/transition/scale.less create mode 100644 src/design/transition/scroll.less create mode 100644 src/design/transition/slide.less create mode 100644 src/design/transition/zoom.less create mode 100644 src/design/var/breakpoint.less create mode 100644 src/design/var/easing.less create mode 100644 src/design/var/index.less create mode 100644 src/directives/clickOutside.ts create mode 100644 src/directives/index.ts create mode 100644 src/directives/loading.ts create mode 100644 src/directives/permission.ts create mode 100644 src/directives/repeatClick.ts create mode 100644 src/directives/ripple/index.less create mode 100644 src/directives/ripple/index.ts create mode 100644 src/enums/appEnum.ts create mode 100644 src/enums/breakpointEnum.ts create mode 100644 src/enums/cacheEnum.ts create mode 100644 src/enums/exceptionEnum.ts create mode 100644 src/enums/httpEnum.ts create mode 100644 src/enums/menuEnum.ts create mode 100644 src/enums/pageEnum.ts create mode 100644 src/enums/roleEnum.ts create mode 100644 src/enums/sizeEnum.ts create mode 100644 src/hooks/component/useFormItem.ts create mode 100644 src/hooks/component/usePageContext.ts create mode 100644 src/hooks/core/onMountedOrActivated.ts create mode 100644 src/hooks/core/useAttrs.ts create mode 100644 src/hooks/core/useContext.ts create mode 100644 src/hooks/core/useLockFn.ts create mode 100644 src/hooks/core/useRefs.ts create mode 100644 src/hooks/core/useTimeout.ts create mode 100644 src/hooks/event/useBreakpoint.ts create mode 100644 src/hooks/event/useEventListener.ts create mode 100644 src/hooks/event/useIntersectionObserver.ts create mode 100644 src/hooks/event/useScroll.ts create mode 100644 src/hooks/event/useScrollTo.ts create mode 100644 src/hooks/event/useWindowSizeFn.ts create mode 100644 src/hooks/setting/index.ts create mode 100644 src/hooks/setting/useHeaderSetting.ts create mode 100644 src/hooks/setting/useMenuSetting.ts create mode 100644 src/hooks/setting/useMultipleTabSetting.ts create mode 100644 src/hooks/setting/useRootSetting.ts create mode 100644 src/hooks/setting/useTransitionSetting.ts create mode 100644 src/hooks/web/useAppInject.ts create mode 100644 src/hooks/web/useContentHeight.ts create mode 100644 src/hooks/web/useContextMenu.ts create mode 100644 src/hooks/web/useCopyToClipboard.ts create mode 100644 src/hooks/web/useDesign.ts create mode 100644 src/hooks/web/useECharts.ts create mode 100644 src/hooks/web/useFullContent.ts create mode 100644 src/hooks/web/useI18n.ts create mode 100644 src/hooks/web/useLockPage.ts create mode 100644 src/hooks/web/useMessage.tsx create mode 100644 src/hooks/web/usePage.ts create mode 100644 src/hooks/web/usePagination.ts create mode 100644 src/hooks/web/usePermission.ts create mode 100644 src/hooks/web/useScript.ts create mode 100644 src/hooks/web/useSortable.ts create mode 100644 src/hooks/web/useTabs.ts create mode 100644 src/hooks/web/useTitle.ts create mode 100644 src/hooks/web/useWatermark.ts create mode 100644 src/layouts/default/content/index.vue create mode 100644 src/layouts/default/content/useContentContext.ts create mode 100644 src/layouts/default/content/useContentViewHeight.ts create mode 100644 src/layouts/default/feature/index.vue create mode 100644 src/layouts/default/footer/index.vue create mode 100644 src/layouts/default/header/MultipleHeader.vue create mode 100644 src/layouts/default/header/components/Breadcrumb.vue create mode 100644 src/layouts/default/header/components/ErrorAction.vue create mode 100644 src/layouts/default/header/components/FullScreen.vue create mode 100644 src/layouts/default/header/components/index.ts create mode 100644 src/layouts/default/header/components/lock/LockModal.vue create mode 100644 src/layouts/default/header/components/notify/NoticeList.vue create mode 100644 src/layouts/default/header/components/notify/data.ts create mode 100644 src/layouts/default/header/components/notify/index.vue create mode 100644 src/layouts/default/header/components/user-dropdown/DropMenuItem.vue create mode 100644 src/layouts/default/header/components/user-dropdown/index.vue create mode 100644 src/layouts/default/header/index.less create mode 100644 src/layouts/default/header/index.vue create mode 100644 src/layouts/default/index.vue create mode 100644 src/layouts/default/menu/index.vue create mode 100644 src/layouts/default/menu/useLayoutMenu.ts create mode 100644 src/layouts/default/setting/SettingDrawer.tsx create mode 100644 src/layouts/default/setting/components/InputNumberItem.vue create mode 100644 src/layouts/default/setting/components/SelectItem.vue create mode 100644 src/layouts/default/setting/components/SettingFooter.vue create mode 100644 src/layouts/default/setting/components/SwitchItem.vue create mode 100644 src/layouts/default/setting/components/ThemeColorPicker.vue create mode 100644 src/layouts/default/setting/components/TypePicker.vue create mode 100644 src/layouts/default/setting/components/index.ts create mode 100644 src/layouts/default/setting/enum.ts create mode 100644 src/layouts/default/setting/handler.ts create mode 100644 src/layouts/default/setting/index.vue create mode 100644 src/layouts/default/sider/DragBar.vue create mode 100644 src/layouts/default/sider/LayoutSider.vue create mode 100644 src/layouts/default/sider/MixSider.vue create mode 100644 src/layouts/default/sider/index.vue create mode 100644 src/layouts/default/sider/useLayoutSider.ts create mode 100644 src/layouts/default/tabs/components/FoldButton.vue create mode 100644 src/layouts/default/tabs/components/TabContent.vue create mode 100644 src/layouts/default/tabs/components/TabRedo.vue create mode 100644 src/layouts/default/tabs/index.less create mode 100644 src/layouts/default/tabs/index.vue create mode 100644 src/layouts/default/tabs/types.ts create mode 100644 src/layouts/default/tabs/useMultipleTabs.ts create mode 100644 src/layouts/default/tabs/useTabDropdown.ts create mode 100644 src/layouts/default/trigger/HeaderTrigger.vue create mode 100644 src/layouts/default/trigger/SiderTrigger.vue create mode 100644 src/layouts/default/trigger/index.vue create mode 100644 src/layouts/iframe/index.vue create mode 100644 src/layouts/iframe/useFrameKeepAlive.ts create mode 100644 src/layouts/page/index.vue create mode 100644 src/layouts/page/transition.ts create mode 100644 src/locales/helper.ts create mode 100644 src/locales/lang/en.ts create mode 100644 src/locales/lang/en/common.ts create mode 100644 src/locales/lang/en/component.ts create mode 100644 src/locales/lang/en/layout.ts create mode 100644 src/locales/lang/en/routes/basic.ts create mode 100644 src/locales/lang/en/routes/dashboard.ts create mode 100644 src/locales/lang/en/routes/demo.ts create mode 100644 src/locales/lang/en/sys.ts create mode 100644 src/locales/lang/zh-CN/common.ts create mode 100644 src/locales/lang/zh-CN/component.ts create mode 100644 src/locales/lang/zh-CN/layout.ts create mode 100644 src/locales/lang/zh-CN/routes/basic.ts create mode 100644 src/locales/lang/zh-CN/routes/dashboard.ts create mode 100644 src/locales/lang/zh-CN/routes/demo.ts create mode 100644 src/locales/lang/zh-CN/sys.ts create mode 100644 src/locales/lang/zh_CN.ts create mode 100644 src/locales/setupI18n.ts create mode 100644 src/locales/useLocale.ts create mode 100644 src/logics/error-handle/index.ts create mode 100644 src/logics/initAppConfig.ts create mode 100644 src/logics/mitt/routeChange.ts create mode 100644 src/logics/theme/dark.ts create mode 100644 src/logics/theme/index.ts create mode 100644 src/logics/theme/updateBackground.ts create mode 100644 src/logics/theme/updateColorWeak.ts create mode 100644 src/logics/theme/updateGrayMode.ts create mode 100644 src/logics/theme/util.ts create mode 100644 src/main.ts create mode 100644 src/router/constant.ts create mode 100644 src/router/guard/index.ts create mode 100644 src/router/guard/paramMenuGuard.ts create mode 100644 src/router/guard/permissionGuard.ts create mode 100644 src/router/guard/stateGuard.ts create mode 100644 src/router/helper/menuHelper.ts create mode 100644 src/router/helper/routeHelper.ts create mode 100644 src/router/index.ts create mode 100644 src/router/menus/index.ts create mode 100644 src/router/routes/basic.ts create mode 100644 src/router/routes/index.ts create mode 100644 src/router/routes/mainOut.ts create mode 100644 src/router/routes/modules/about.ts create mode 100644 src/router/routes/modules/base.ts create mode 100644 src/router/routes/modules/dashboard.ts create mode 100644 src/router/routes/modules/main.ts create mode 100644 src/router/types.ts create mode 100644 src/settings/componentSetting.ts create mode 100644 src/settings/designSetting.ts create mode 100644 src/settings/encryptionSetting.ts create mode 100644 src/settings/localeSetting.ts create mode 100644 src/settings/projectSetting.ts create mode 100644 src/settings/siteSetting.ts create mode 100644 src/store/index.ts create mode 100644 src/store/modules/app.ts create mode 100644 src/store/modules/errorLog.ts create mode 100644 src/store/modules/locale.ts create mode 100644 src/store/modules/lock.ts create mode 100644 src/store/modules/multipleTab.ts create mode 100644 src/store/modules/permission.ts create mode 100644 src/store/modules/user.ts create mode 100644 src/utils/auth/index.ts create mode 100644 src/utils/cache/index.ts create mode 100644 src/utils/cache/memory.ts create mode 100644 src/utils/cache/persistent.ts create mode 100644 src/utils/cache/storageCache.ts create mode 100644 src/utils/cipher.ts create mode 100644 src/utils/color.ts create mode 100644 src/utils/dateUtil.ts create mode 100644 src/utils/domUtils.ts create mode 100644 src/utils/env.ts create mode 100644 src/utils/event/index.ts create mode 100644 src/utils/factory/createAsyncComponent.tsx create mode 100644 src/utils/file/base64Conver.ts create mode 100644 src/utils/file/download.ts create mode 100644 src/utils/helper/treeHelper.ts create mode 100644 src/utils/helper/tsxHelper.tsx create mode 100644 src/utils/http/axios/Axios.ts create mode 100644 src/utils/http/axios/axiosCancel.ts create mode 100644 src/utils/http/axios/axiosTransform.ts create mode 100644 src/utils/http/axios/checkStatus.ts create mode 100644 src/utils/http/axios/helper.ts create mode 100644 src/utils/http/axios/index.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/is.ts create mode 100644 src/utils/lib/echarts.ts create mode 100644 src/utils/log.ts create mode 100644 src/utils/mitt.ts create mode 100644 src/utils/propTypes.ts create mode 100644 src/utils/uuid.ts create mode 100644 src/views/base/city-data/components/CountItem.vue create mode 100644 src/views/base/city-data/index.vue create mode 100644 src/views/base/flow-to/index.vue create mode 100644 src/views/base/industrial-structure/components/Chart.vue create mode 100644 src/views/base/industrial-structure/components/Data.vue create mode 100644 src/views/base/industrial-structure/index.vue create mode 100644 src/views/base/ranking-list/index.vue create mode 100644 src/views/base/trend/components/Chart.vue create mode 100644 src/views/base/trend/index.vue create mode 100644 src/views/dashboard/analysis/components/GrowCard.vue create mode 100644 src/views/dashboard/analysis/components/SalesProductPie.vue create mode 100644 src/views/dashboard/analysis/components/SiteAnalysis.vue create mode 100644 src/views/dashboard/analysis/components/VisitAnalysis.vue create mode 100644 src/views/dashboard/analysis/components/VisitAnalysisBar.vue create mode 100644 src/views/dashboard/analysis/components/VisitRadar.vue create mode 100644 src/views/dashboard/analysis/components/VisitSource.vue create mode 100644 src/views/dashboard/analysis/components/props.ts create mode 100644 src/views/dashboard/analysis/data.ts create mode 100644 src/views/dashboard/analysis/index.vue create mode 100644 src/views/dashboard/workbench/components/DynamicInfo.vue create mode 100644 src/views/dashboard/workbench/components/ProjectCard.vue create mode 100644 src/views/dashboard/workbench/components/QuickNav.vue create mode 100644 src/views/dashboard/workbench/components/SaleRadar.vue create mode 100644 src/views/dashboard/workbench/components/WorkbenchHeader.vue create mode 100644 src/views/dashboard/workbench/components/data.ts create mode 100644 src/views/dashboard/workbench/index.vue create mode 100644 src/views/main/meteorological/components/AirHumidity.vue create mode 100644 src/views/main/meteorological/components/AirTemperature.vue create mode 100644 src/views/main/meteorological/components/LightIntensity.vue create mode 100644 src/views/main/meteorological/components/Noise.vue create mode 100644 src/views/main/meteorological/components/PM10.vue create mode 100644 src/views/main/meteorological/components/PM25.vue create mode 100644 src/views/main/meteorological/components/Pressure.vue create mode 100644 src/views/main/meteorological/components/Rainfall.vue create mode 100644 src/views/main/meteorological/components/WindDirection.vue create mode 100644 src/views/main/meteorological/components/WindSpeed.vue create mode 100644 src/views/main/meteorological/index.vue create mode 100644 src/views/main/monitor/components/LiveBroadcast.vue create mode 100644 src/views/main/monitor/components/LiveBroadcastItem.vue create mode 100644 src/views/main/monitor/components/Playback.vue create mode 100644 src/views/main/monitor/index.vue create mode 100644 src/views/main/soil-monitoring/components/EarlyWarningItem.vue create mode 100644 src/views/main/soil-monitoring/components/FormDrawer.vue create mode 100644 src/views/main/soil-monitoring/components/LineCharts.vue create mode 100644 src/views/main/soil-monitoring/index.vue create mode 100644 src/views/main/water-quality/components/EarlyWarningItem.vue create mode 100644 src/views/main/water-quality/components/FormDrawer.vue create mode 100644 src/views/main/water-quality/components/LineCharts.vue create mode 100644 src/views/main/water-quality/index.vue create mode 100644 src/views/sys/about/index.vue create mode 100644 src/views/sys/error-log/DetailModal.vue create mode 100644 src/views/sys/error-log/data.tsx create mode 100644 src/views/sys/error-log/index.vue create mode 100644 src/views/sys/exception/Exception.vue create mode 100644 src/views/sys/exception/index.ts create mode 100644 src/views/sys/iframe/FrameBlank.vue create mode 100644 src/views/sys/iframe/index.vue create mode 100644 src/views/sys/lock/LockPage.vue create mode 100644 src/views/sys/lock/index.vue create mode 100644 src/views/sys/lock/useNow.ts create mode 100644 src/views/sys/login/ForgetPasswordForm.vue create mode 100644 src/views/sys/login/Login.vue create mode 100644 src/views/sys/login/LoginForm.vue create mode 100644 src/views/sys/login/LoginFormTitle.vue create mode 100644 src/views/sys/login/MobileForm.vue create mode 100644 src/views/sys/login/QrCodeForm.vue create mode 100644 src/views/sys/login/RegisterForm.vue create mode 100644 src/views/sys/login/SessionTimeoutLogin.vue create mode 100644 src/views/sys/login/useLogin.ts create mode 100644 src/views/sys/redirect/index.vue create mode 100644 stylelint.config.js create mode 100644 tests/__mocks__/fileMock.ts create mode 100644 tests/__mocks__/styleMock.ts create mode 100644 tests/__mocks__/workerMock.ts create mode 100644 tests/server/README.md create mode 100644 tests/server/controller/FileController.ts create mode 100644 tests/server/controller/UserController.ts create mode 100644 tests/server/ecosystem.config.js create mode 100644 tests/server/index.ts create mode 100644 tests/server/nodemon.json create mode 100644 tests/server/package.json create mode 100644 tests/server/routes.ts create mode 100644 tests/server/service/FileService.ts create mode 100644 tests/server/service/UserService.ts create mode 100644 tests/server/tsconfig.json create mode 100644 tests/server/utils.ts create mode 100644 tests/server/yarn.lock create mode 100644 tests/test.spec.ts create mode 100644 tsconfig.json create mode 100644 types/axios.d.ts create mode 100644 types/config.d.ts create mode 100644 types/global.d.ts create mode 100644 types/index.d.ts create mode 100644 types/module.d.ts create mode 100644 types/store.d.ts create mode 100644 types/utils.d.ts create mode 100644 types/vue-router.d.ts create mode 100644 vite.config.ts create mode 100644 windi.config.ts create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..dccf841d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +charset=utf-8 +end_of_line=lf +insert_final_newline=true +indent_style=space +indent_size=2 +max_line_length = 100 + +[*.{yml,yaml,json}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab diff --git a/.env b/.env new file mode 100644 index 00000000..b1a9ec8b --- /dev/null +++ b/.env @@ -0,0 +1,8 @@ +# port +VITE_PORT = 3100 + +# spa-title +VITE_GLOB_APP_TITLE = Vben Admin + +# spa shortname +VITE_GLOB_APP_SHORT_NAME = vue_vben_admin diff --git a/.env.development b/.env.development new file mode 100644 index 00000000..90e68200 --- /dev/null +++ b/.env.development @@ -0,0 +1,21 @@ +# Whether to open mock +VITE_USE_MOCK = false + +# public path +VITE_PUBLIC_PATH = / + +# Cross-domain proxy, you can configure multiple +# Please note that no line breaks +VITE_PROXY = [["/api","http://lcny-api.peidikeji.cn"]] + +# Delete console +VITE_DROP_CONSOLE = false + +# Basic interface address SPA +VITE_GLOB_API_URL=/api + +# File upload address, optional +VITE_GLOB_UPLOAD_URL=/api + +# Interface prefix +VITE_GLOB_API_URL_PREFIX= diff --git a/.env.production b/.env.production new file mode 100644 index 00000000..a0bdfb7f --- /dev/null +++ b/.env.production @@ -0,0 +1,35 @@ +# Whether to open mock +VITE_USE_MOCK = true + +# public path +VITE_PUBLIC_PATH = / + +# Delete console +VITE_DROP_CONSOLE = true + +# Whether to enable gzip or brotli compression +# Optional: gzip | brotli | none +# If you need multiple forms, you can use `,` to separate +VITE_BUILD_COMPRESS = 'none' + +# Whether to delete origin files when using compress, default false +VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false + +# Basic interface address SPA +VITE_GLOB_API_URL=/basic-api + +# File upload address, optional +# It can be forwarded by nginx or write the actual address directly +VITE_GLOB_UPLOAD_URL=/upload + +# Interface prefix +VITE_GLOB_API_URL_PREFIX= + +# Whether to enable image compression +VITE_USE_IMAGEMIN= true + +# use pwa +VITE_USE_PWA = false + +# Is it compatible with older browsers +VITE_LEGACY = false diff --git a/.env.test b/.env.test new file mode 100644 index 00000000..469b307d --- /dev/null +++ b/.env.test @@ -0,0 +1,36 @@ +NODE_ENV=production +# Whether to open mock +VITE_USE_MOCK = true + +# public path +VITE_PUBLIC_PATH = / + +# Delete console +VITE_DROP_CONSOLE = true + +# Whether to enable gzip or brotli compression +# Optional: gzip | brotli | none +# If you need multiple forms, you can use `,` to separate +VITE_BUILD_COMPRESS = 'none' + +# Whether to delete origin files when using compress, default false +VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false + +# Basic interface address SPA +VITE_GLOB_API_URL=/basic-api + +# File upload address, optional +# It can be forwarded by nginx or write the actual address directly +VITE_GLOB_UPLOAD_URL=/upload + +# Interface prefix +VITE_GLOB_API_URL_PREFIX= + +# Whether to enable image compression +VITE_USE_IMAGEMIN= true + +# use pwa +VITE_USE_PWA = false + +# Is it compatible with older browsers +VITE_LEGACY = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..348631b2 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,15 @@ + +*.sh +node_modules +*.md +*.woff +*.ttf +.vscode +.idea +dist +/public +/docs +.husky +.local +/bin +Dockerfile diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..7633bbeb --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,80 @@ +// @ts-check +const { defineConfig } = require('eslint-define-config'); +module.exports = defineConfig({ + root: true, + env: { + browser: true, + node: true, + es6: true, + }, + parser: 'vue-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 2020, + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true, + }, + }, + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:prettier/recommended', + 'plugin:jest/recommended', + ], + rules: { + 'vue/script-setup-uses-vars': 'error', + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-empty-function': 'off', + 'vue/custom-event-name-casing': 'off', + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + 'space-before-function-paren': 'off', + + 'vue/attributes-order': 'off', + 'vue/v-on-event-hyphenation': 'off', + 'vue/multi-word-component-names': 'off', + 'vue/one-component-per-file': 'off', + 'vue/html-closing-bracket-newline': 'off', + 'vue/max-attributes-per-line': 'off', + 'vue/multiline-html-element-content-newline': 'off', + 'vue/singleline-html-element-content-newline': 'off', + 'vue/attribute-hyphenation': 'off', + 'vue/require-default-prop': 'off', + 'vue/html-self-closing': [ + 'error', + { + html: { + void: 'always', + normal: 'never', + component: 'always', + }, + svg: 'always', + math: 'always', + }, + ], + }, +}); diff --git a/.github/ISSUE_TEMPLATE/1-bug.md b/.github/ISSUE_TEMPLATE/1-bug.md new file mode 100644 index 00000000..0f5e1e0a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bug.md @@ -0,0 +1,39 @@ +--- +name: 🐛 Bug report +about: Create a report to help us improve +title: '' +labels: 'bug: pending triage' +assignees: '' +--- + + + +**⚠️ IMPORTANT ⚠️ Please check the following list before proceeding. If you ignore this issue template, your issue will be directly closed.** + +- [ ] Read [the docs](https://anncwb.github.io/vue-vben-admin-doc/). +- [ ] Make sure the code is up to date. (Some bugs have been fixed in the latest code) +- [ ] This is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/anncwb/vue-vben-admin/discussions) or join our [Discord](https://discord.gg/8GuAdwDhj6) Chat Server. + +### Describe the bug + +A clear and concise description of what the bug is.. + +### Reproduction + +Please describe the steps of the problem in detail to ensure that we can restore the correct problem + +## System Info + +- Operating System: +- Node version: +- Package manager (npm/yarn/pnpm) and version: diff --git a/.github/ISSUE_TEMPLATE/2-feature.md b/.github/ISSUE_TEMPLATE/2-feature.md new file mode 100644 index 00000000..cbe41645 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-feature.md @@ -0,0 +1,32 @@ +--- +name: 🚀 Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' +--- + + + +### Subject of the feature + +Describe your issue here. + +### Problem + +If the feature requests relates to a problem, please describe the problem you are trying to solve here. + +### Expected behaviour + +What should happen? Please describe the desired behaviour. + +### Alternatives + +What are the alternative solutions? Please describe what else you have considered? diff --git a/.github/ISSUE_TEMPLATE/3-bug-cn.md b/.github/ISSUE_TEMPLATE/3-bug-cn.md new file mode 100644 index 00000000..fade42ad --- /dev/null +++ b/.github/ISSUE_TEMPLATE/3-bug-cn.md @@ -0,0 +1,28 @@ +--- +name: 🐛 Bug 报告 +about: 向我们报告一个Bug以帮助我们改进 +title: '' +labels: 'bug: pending triage' +assignees: '' +--- + +**⚠️ 重要 ⚠️ 在进一步操作之前,请检查下列选项。如果您忽视此模板或者没有提供关键信息,您的 Issue 将直接被关闭** + +- [ ] 已阅读 [文档](https://anncwb.github.io/vue-vben-admin-doc/). +- [ ] 确保您的代码已是最新或者所报告的 Bug 在最新版本中可以重现. (部分 Bug 可能已经在最近的代码中修复) +- [ ] 已在 Issues 中搜索了相关的关键词 +- [ ] 不是 ant design vue 组件库的 Bug + +### 描述 Bug + +请清晰地描述此 Bug 的具体表现。 + +### 复现 Bug + +请描述在演示页面中复现 Bug 的详细步骤,以确保我们可以理解并定位问题。部分 Bug 如果未在 Demo 中涉及,请务必提供关键代码 + +## 系统信息 + +- 操作系统: +- Node 版本: +- 包管理器 (npm/yarn/pnpm) 及其版本: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..b83ccbf2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Discord Chat + url: https://discord.gg/8GuAdwDhj6 + about: Ask questions and discuss with other Vben users in real time. + - name: Questions & Discussions + url: https://github.com/anncwb/vue-vben-admin/discussions + about: Use GitHub discussions for message-board style questions and discussions. diff --git a/.github/commit-convention.md b/.github/commit-convention.md new file mode 100644 index 00000000..a1a969e9 --- /dev/null +++ b/.github/commit-convention.md @@ -0,0 +1,89 @@ +## Git Commit Message Convention + +> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). + +#### TL;DR: + +Messages must be matched by the following regex: + +```js +/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|types|wip): .{1,50}/; +``` + +#### Examples + +Appears under "Features" header, `dev` subheader: + +``` +feat(dev): add 'comments' option +``` + +Appears under "Bug Fixes" header, `dev` subheader, with a link to issue #28: + +``` +fix(dev): fix dev error + +close #28 +``` + +Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: + +``` +perf(build): remove 'foo' option + +BREAKING CHANGE: The 'foo' option has been removed. +``` + +The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. + +``` +revert: feat(compiler): add 'comments' option + +This reverts commit 667ecc1654a317a13331b17617d973392f415f02. +``` + +### Full Message Format + +A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: + +``` +(): + + + +