@k3000/s1 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -0
- package/RuoYi-Vue3/.env.development +8 -0
- package/RuoYi-Vue3/.env.production +11 -0
- package/RuoYi-Vue3/.env.staging +11 -0
- package/RuoYi-Vue3/.github/FUNDING.yml +1 -0
- package/RuoYi-Vue3/LICENSE +20 -0
- package/RuoYi-Vue3/README.md +109 -0
- package/RuoYi-Vue3/bin/build.bat +12 -0
- package/RuoYi-Vue3/bin/package.bat +12 -0
- package/RuoYi-Vue3/bin/run-web.bat +12 -0
- package/RuoYi-Vue3/html/ie.html +46 -0
- package/RuoYi-Vue3/index.html +215 -0
- package/RuoYi-Vue3/package.json +44 -0
- package/RuoYi-Vue3/public/favicon.ico +0 -0
- package/RuoYi-Vue3/src/App.vue +15 -0
- package/RuoYi-Vue3/src/api/login.js +60 -0
- package/RuoYi-Vue3/src/api/menu.js +9 -0
- package/RuoYi-Vue3/src/api/monitor/cache.js +57 -0
- package/RuoYi-Vue3/src/api/monitor/job.js +71 -0
- package/RuoYi-Vue3/src/api/monitor/jobLog.js +26 -0
- package/RuoYi-Vue3/src/api/monitor/logininfor.js +34 -0
- package/RuoYi-Vue3/src/api/monitor/online.js +18 -0
- package/RuoYi-Vue3/src/api/monitor/operlog.js +26 -0
- package/RuoYi-Vue3/src/api/monitor/server.js +9 -0
- package/RuoYi-Vue3/src/api/system/config.js +60 -0
- package/RuoYi-Vue3/src/api/system/dept.js +52 -0
- package/RuoYi-Vue3/src/api/system/dict/data.js +52 -0
- package/RuoYi-Vue3/src/api/system/dict/type.js +60 -0
- package/RuoYi-Vue3/src/api/system/menu.js +60 -0
- package/RuoYi-Vue3/src/api/system/notice.js +44 -0
- package/RuoYi-Vue3/src/api/system/post.js +44 -0
- package/RuoYi-Vue3/src/api/system/role.js +119 -0
- package/RuoYi-Vue3/src/api/system/user.js +136 -0
- package/RuoYi-Vue3/src/api/tool/gen.js +85 -0
- package/RuoYi-Vue3/src/assets/401_images/401.gif +0 -0
- package/RuoYi-Vue3/src/assets/404_images/404.png +0 -0
- package/RuoYi-Vue3/src/assets/404_images/404_cloud.png +0 -0
- package/RuoYi-Vue3/src/assets/icons/svg/404.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/bug.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/build.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/button.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/cascader.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/chart.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/checkbox.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/clipboard.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/code.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/color.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/component.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/dashboard.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/date-range.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/date.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/dict.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/documentation.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/download.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/drag.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/druid.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/edit.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/education.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/email.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/example.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/excel.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/exit-fullscreen.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/eye-open.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/eye.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/form.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/fullscreen.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/github.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/guide.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/icon.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/input.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/international.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/job.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/language.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/link.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/list.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/lock.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/log.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/logininfor.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/message.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/money.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/monitor.svg +2 -0
- package/RuoYi-Vue3/src/assets/icons/svg/nested.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/number.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/online.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/password.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/pdf.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/people.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/peoples.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/phone.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/post.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/qq.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/question.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/radio.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/rate.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/redis-list.svg +2 -0
- package/RuoYi-Vue3/src/assets/icons/svg/redis.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/row.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/search.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/select.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/server.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/shopping.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/size.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/skill.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/slider.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/star.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/swagger.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/switch.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/system.svg +2 -0
- package/RuoYi-Vue3/src/assets/icons/svg/tab.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/table.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/textarea.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/theme.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/time-range.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/time.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/tool.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/tree-table.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/tree.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/upload.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/user.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/validCode.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/wechat.svg +1 -0
- package/RuoYi-Vue3/src/assets/icons/svg/zip.svg +1 -0
- package/RuoYi-Vue3/src/assets/images/dark.svg +39 -0
- package/RuoYi-Vue3/src/assets/images/light.svg +39 -0
- package/RuoYi-Vue3/src/assets/images/login-background.jpg +0 -0
- package/RuoYi-Vue3/src/assets/images/pay.png +0 -0
- package/RuoYi-Vue3/src/assets/images/profile.jpg +0 -0
- package/RuoYi-Vue3/src/assets/logo/logo.png +0 -0
- package/RuoYi-Vue3/src/assets/styles/btn.scss +99 -0
- package/RuoYi-Vue3/src/assets/styles/element-ui.scss +96 -0
- package/RuoYi-Vue3/src/assets/styles/index.scss +184 -0
- package/RuoYi-Vue3/src/assets/styles/mixin.scss +66 -0
- package/RuoYi-Vue3/src/assets/styles/ruoyi.scss +281 -0
- package/RuoYi-Vue3/src/assets/styles/sidebar.scss +238 -0
- package/RuoYi-Vue3/src/assets/styles/transition.scss +49 -0
- package/RuoYi-Vue3/src/assets/styles/variables.module.scss +65 -0
- package/RuoYi-Vue3/src/components/Breadcrumb/index.vue +66 -0
- package/RuoYi-Vue3/src/components/Crontab/day.vue +174 -0
- package/RuoYi-Vue3/src/components/Crontab/hour.vue +133 -0
- package/RuoYi-Vue3/src/components/Crontab/index.vue +310 -0
- package/RuoYi-Vue3/src/components/Crontab/min.vue +126 -0
- package/RuoYi-Vue3/src/components/Crontab/month.vue +141 -0
- package/RuoYi-Vue3/src/components/Crontab/result.vue +540 -0
- package/RuoYi-Vue3/src/components/Crontab/second.vue +128 -0
- package/RuoYi-Vue3/src/components/Crontab/week.vue +197 -0
- package/RuoYi-Vue3/src/components/Crontab/year.vue +149 -0
- package/RuoYi-Vue3/src/components/DictTag/index.vue +82 -0
- package/RuoYi-Vue3/src/components/Editor/index.vue +251 -0
- package/RuoYi-Vue3/src/components/FileUpload/index.vue +207 -0
- package/RuoYi-Vue3/src/components/Hamburger/index.vue +41 -0
- package/RuoYi-Vue3/src/components/HeaderSearch/index.vue +187 -0
- package/RuoYi-Vue3/src/components/IconSelect/index.vue +111 -0
- package/RuoYi-Vue3/src/components/IconSelect/requireIcons.js +8 -0
- package/RuoYi-Vue3/src/components/ImagePreview/index.vue +92 -0
- package/RuoYi-Vue3/src/components/ImageUpload/index.vue +213 -0
- package/RuoYi-Vue3/src/components/Pagination/index.vue +105 -0
- package/RuoYi-Vue3/src/components/ParentView/index.vue +3 -0
- package/RuoYi-Vue3/src/components/RightToolbar/index.vue +134 -0
- package/RuoYi-Vue3/src/components/RuoYi/Doc/index.vue +13 -0
- package/RuoYi-Vue3/src/components/RuoYi/Git/index.vue +13 -0
- package/RuoYi-Vue3/src/components/Screenfull/index.vue +22 -0
- package/RuoYi-Vue3/src/components/SizeSelect/index.vue +45 -0
- package/RuoYi-Vue3/src/components/SvgIcon/index.vue +53 -0
- package/RuoYi-Vue3/src/components/SvgIcon/svgicon.js +10 -0
- package/RuoYi-Vue3/src/components/TopNav/index.vue +214 -0
- package/RuoYi-Vue3/src/components/TreeSelect/index.vue +156 -0
- package/RuoYi-Vue3/src/components/iFrame/index.vue +31 -0
- package/RuoYi-Vue3/src/directive/common/copyText.js +66 -0
- package/RuoYi-Vue3/src/directive/index.js +9 -0
- package/RuoYi-Vue3/src/directive/permission/hasPermi.js +28 -0
- package/RuoYi-Vue3/src/directive/permission/hasRole.js +28 -0
- package/RuoYi-Vue3/src/layout/components/AppMain.vue +68 -0
- package/RuoYi-Vue3/src/layout/components/IframeToggle/index.vue +25 -0
- package/RuoYi-Vue3/src/layout/components/InnerLink/index.vue +24 -0
- package/RuoYi-Vue3/src/layout/components/Navbar.vue +191 -0
- package/RuoYi-Vue3/src/layout/components/Settings/index.vue +209 -0
- package/RuoYi-Vue3/src/layout/components/Sidebar/Link.vue +40 -0
- package/RuoYi-Vue3/src/layout/components/Sidebar/Logo.vue +81 -0
- package/RuoYi-Vue3/src/layout/components/Sidebar/SidebarItem.vue +102 -0
- package/RuoYi-Vue3/src/layout/components/Sidebar/index.vue +54 -0
- package/RuoYi-Vue3/src/layout/components/TagsView/ScrollPane.vue +107 -0
- package/RuoYi-Vue3/src/layout/components/TagsView/index.vue +358 -0
- package/RuoYi-Vue3/src/layout/components/index.js +4 -0
- package/RuoYi-Vue3/src/layout/index.vue +114 -0
- package/RuoYi-Vue3/src/main.js +84 -0
- package/RuoYi-Vue3/src/permission.js +65 -0
- package/RuoYi-Vue3/src/plugins/auth.js +60 -0
- package/RuoYi-Vue3/src/plugins/cache.js +77 -0
- package/RuoYi-Vue3/src/plugins/download.js +79 -0
- package/RuoYi-Vue3/src/plugins/index.js +18 -0
- package/RuoYi-Vue3/src/plugins/modal.js +82 -0
- package/RuoYi-Vue3/src/plugins/tab.js +69 -0
- package/RuoYi-Vue3/src/router/index.js +175 -0
- package/RuoYi-Vue3/src/settings.js +47 -0
- package/RuoYi-Vue3/src/store/index.js +3 -0
- package/RuoYi-Vue3/src/store/modules/app.js +46 -0
- package/RuoYi-Vue3/src/store/modules/dict.js +57 -0
- package/RuoYi-Vue3/src/store/modules/permission.js +142 -0
- package/RuoYi-Vue3/src/store/modules/settings.js +38 -0
- package/RuoYi-Vue3/src/store/modules/tagsView.js +182 -0
- package/RuoYi-Vue3/src/store/modules/user.js +72 -0
- package/RuoYi-Vue3/src/utils/auth.js +15 -0
- package/RuoYi-Vue3/src/utils/dict.js +24 -0
- package/RuoYi-Vue3/src/utils/dynamicTitle.js +15 -0
- package/RuoYi-Vue3/src/utils/errorCode.js +6 -0
- package/RuoYi-Vue3/src/utils/index.js +390 -0
- package/RuoYi-Vue3/src/utils/jsencrypt.js +30 -0
- package/RuoYi-Vue3/src/utils/permission.js +51 -0
- package/RuoYi-Vue3/src/utils/request.js +152 -0
- package/RuoYi-Vue3/src/utils/ruoyi.js +246 -0
- package/RuoYi-Vue3/src/utils/scroll-to.js +58 -0
- package/RuoYi-Vue3/src/utils/theme.js +49 -0
- package/RuoYi-Vue3/src/utils/validate.js +93 -0
- package/RuoYi-Vue3/src/views/error/401.vue +82 -0
- package/RuoYi-Vue3/src/views/error/404.vue +227 -0
- package/RuoYi-Vue3/src/views/index.vue +1092 -0
- package/RuoYi-Vue3/src/views/login.vue +227 -0
- package/RuoYi-Vue3/src/views/monitor/cache/index.vue +132 -0
- package/RuoYi-Vue3/src/views/monitor/cache/list.vue +246 -0
- package/RuoYi-Vue3/src/views/monitor/druid/index.vue +13 -0
- package/RuoYi-Vue3/src/views/monitor/job/index.vue +501 -0
- package/RuoYi-Vue3/src/views/monitor/job/log.vue +283 -0
- package/RuoYi-Vue3/src/views/monitor/logininfor/index.vue +233 -0
- package/RuoYi-Vue3/src/views/monitor/online/index.vue +109 -0
- package/RuoYi-Vue3/src/views/monitor/operlog/index.vue +310 -0
- package/RuoYi-Vue3/src/views/monitor/server/index.vue +187 -0
- package/RuoYi-Vue3/src/views/redirect/index.vue +14 -0
- package/RuoYi-Vue3/src/views/register.vue +219 -0
- package/RuoYi-Vue3/src/views/system/config/index.vue +316 -0
- package/RuoYi-Vue3/src/views/system/dept/index.vue +283 -0
- package/RuoYi-Vue3/src/views/system/dict/data.vue +362 -0
- package/RuoYi-Vue3/src/views/system/dict/index.vue +323 -0
- package/RuoYi-Vue3/src/views/system/menu/index.vue +452 -0
- package/RuoYi-Vue3/src/views/system/notice/index.vue +292 -0
- package/RuoYi-Vue3/src/views/system/post/index.vue +287 -0
- package/RuoYi-Vue3/src/views/system/role/authUser.vue +179 -0
- package/RuoYi-Vue3/src/views/system/role/index.vue +584 -0
- package/RuoYi-Vue3/src/views/system/role/selectUser.vue +144 -0
- package/RuoYi-Vue3/src/views/system/user/authRole.vue +116 -0
- package/RuoYi-Vue3/src/views/system/user/index.vue +635 -0
- package/RuoYi-Vue3/src/views/system/user/profile/index.vue +87 -0
- package/RuoYi-Vue3/src/views/system/user/profile/resetPwd.vue +59 -0
- package/RuoYi-Vue3/src/views/system/user/profile/userAvatar.vue +180 -0
- package/RuoYi-Vue3/src/views/system/user/profile/userInfo.vue +67 -0
- package/RuoYi-Vue3/src/views/tool/build/index.vue +3 -0
- package/RuoYi-Vue3/src/views/tool/gen/basicInfoForm.vue +48 -0
- package/RuoYi-Vue3/src/views/tool/gen/createTable.vue +46 -0
- package/RuoYi-Vue3/src/views/tool/gen/editTable.vue +200 -0
- package/RuoYi-Vue3/src/views/tool/gen/genInfoForm.vue +306 -0
- package/RuoYi-Vue3/src/views/tool/gen/importTable.vue +126 -0
- package/RuoYi-Vue3/src/views/tool/gen/index.vue +310 -0
- package/RuoYi-Vue3/src/views/tool/swagger/index.vue +9 -0
- package/RuoYi-Vue3/vite/plugins/auto-import.js +12 -0
- package/RuoYi-Vue3/vite/plugins/compression.js +28 -0
- package/RuoYi-Vue3/vite/plugins/index.js +15 -0
- package/RuoYi-Vue3/vite/plugins/setup-extend.js +5 -0
- package/RuoYi-Vue3/vite/plugins/svg-icon.js +10 -0
- package/RuoYi-Vue3/vite.config.js +58 -0
- package/admin/README.MD +0 -0
- package/admin/base.mjs +447 -0
- package/admin/index.mjs +19 -0
- package/admin/monitor/job.mjs +24 -0
- package/admin/monitor/jobLog.mjs +8 -0
- package/admin/monitor/logininfor.mjs +23 -0
- package/admin/monitor/operlog.mjs +9 -0
- package/admin/monitor/server.mjs +54 -0
- package/admin/service.mjs +10 -0
- package/admin/system/component.mjs +16 -0
- package/admin/system/config.mjs +8 -0
- package/admin/system/dept.mjs +24 -0
- package/admin/system/dict.mjs +34 -0
- package/admin/system/login.mjs +119 -0
- package/admin/system/menu.mjs +33 -0
- package/admin/system/notice.mjs +8 -0
- package/admin/system/path.mjs +53 -0
- package/admin/system/post.mjs +8 -0
- package/admin/system/role.mjs +105 -0
- package/admin/system/user.mjs +93 -0
- package/admin/tool/gen.mjs +95 -0
- package/admin/tool/helper.mjs +1335 -0
- package/admin/tool/pm2.mjs +71 -0
- package/admin/tool/store.mjs +84 -0
- package/admin/tool/upload.mjs +112 -0
- package/app/README.MD +0 -0
- package/app/index.mjs +9 -0
- package/bin.mjs +211 -0
- package/build.mjs +25 -0
- package/common/README.MD +0 -0
- package/common/config.mjs +40 -0
- package/common/pm2.mjs +145 -0
- package/common/service.mjs +79 -0
- package/common/service0.mjs +468 -0
- package/common/tools.mjs +314 -0
- package/common/type.ts +498 -0
- package/file/README.MD +0 -0
- package/files/.env.production +11 -0
- package/files/gen.js +76 -0
- package/files/genImportTable.vue +120 -0
- package/files/genIndex.vue +309 -0
- package/files/genInfoForm.vue +302 -0
- package/files/login.vue +237 -0
- package/files/menu.js +68 -0
- package/files/menuIndex.vue +447 -0
- package/files/pm2.js +88 -0
- package/files/pm2Data.vue +335 -0
- package/files/pm2Index.vue +343 -0
- package/files/routerIndex.js +204 -0
- package/files/serverIndex.vue +215 -0
- package/files/store.js +96 -0
- package/files/storeData.vue +294 -0
- package/files/storeIndex.vue +245 -0
- package/files/upload.js +47 -0
- package/files/uploadIndex.vue +240 -0
- package/files/vite.config.js +58 -0
- package/index.mjs +28 -0
- package/jwt/README.MD +12 -0
- package/jwt/index.mjs +17 -0
- package/package.json +22 -0
- package/proxy/README.MD +0 -0
- package/proxy/index.mjs +16 -0
- package/static/README.MD +0 -0
- package/static/admin/assets/401-CYieuz9-.js +1 -0
- package/static/admin/assets/401-CYieuz9-.js.gz +0 -0
- package/static/admin/assets/401-DmT2Eyz6.css +1 -0
- package/static/admin/assets/401-HGF6Q5qM.gif +0 -0
- package/static/admin/assets/404-DFv5Zpvm.js +1 -0
- package/static/admin/assets/404-DFv5Zpvm.js.gz +0 -0
- package/static/admin/assets/404-Dy3nURRX.js +1 -0
- package/static/admin/assets/404-Dy3nURRX.js.gz +0 -0
- package/static/admin/assets/404-N4aRkdWY.png +0 -0
- package/static/admin/assets/404-uZCOR2Ze.css +1 -0
- package/static/admin/assets/404-uZCOR2Ze.css.gz +0 -0
- package/static/admin/assets/404_cloud-CPexjtDj.png +0 -0
- package/static/admin/assets/authRole-ma37t91O.js +1 -0
- package/static/admin/assets/authRole-ma37t91O.js.gz +0 -0
- package/static/admin/assets/authUser-C2Y6gkW3.js +1 -0
- package/static/admin/assets/authUser-C2Y6gkW3.js.gz +0 -0
- package/static/admin/assets/basicInfoForm-Cqv-g0Vq.js +1 -0
- package/static/admin/assets/basicInfoForm-Cqv-g0Vq.js.gz +0 -0
- package/static/admin/assets/bug-10dePVta.js +1 -0
- package/static/admin/assets/bug-10dePVta.js.gz +0 -0
- package/static/admin/assets/build-2jMyI6eP.js +1 -0
- package/static/admin/assets/build-2jMyI6eP.js.gz +0 -0
- package/static/admin/assets/button-BlSCM_GH.js +1 -0
- package/static/admin/assets/button-BlSCM_GH.js.gz +0 -0
- package/static/admin/assets/cache-CRGI5LFU.js +1 -0
- package/static/admin/assets/cascader-CXIOcY1C.js +1 -0
- package/static/admin/assets/cascader-CXIOcY1C.js.gz +0 -0
- package/static/admin/assets/chart-BsLMrzXU.js +1 -0
- package/static/admin/assets/checkbox-Bpiun3bf.js +1 -0
- package/static/admin/assets/checkbox-Bpiun3bf.js.gz +0 -0
- package/static/admin/assets/clipboard-DaV3cn7f.js +1 -0
- package/static/admin/assets/clipboard-DaV3cn7f.js.gz +0 -0
- package/static/admin/assets/code-DgJ8cT4a.js +1 -0
- package/static/admin/assets/color-y1Sshoou.js +1 -0
- package/static/admin/assets/color-y1Sshoou.js.gz +0 -0
- package/static/admin/assets/component-Djp9s69L.js +1 -0
- package/static/admin/assets/component-Djp9s69L.js.gz +0 -0
- package/static/admin/assets/createTable-CpixhIJI.js +1 -0
- package/static/admin/assets/createTable-CpixhIJI.js.gz +0 -0
- package/static/admin/assets/dashboard-Dy7qt_a2.js +1 -0
- package/static/admin/assets/dashboard-Dy7qt_a2.js.gz +0 -0
- package/static/admin/assets/data-B6ExfNCI.js +1 -0
- package/static/admin/assets/data-B6ExfNCI.js.gz +0 -0
- package/static/admin/assets/data-BNwnwlkO.js +34 -0
- package/static/admin/assets/data-BNwnwlkO.js.gz +0 -0
- package/static/admin/assets/data-C3FuPwta.css +1 -0
- package/static/admin/assets/data-DmSA0HcO.js +1 -0
- package/static/admin/assets/data-DmSA0HcO.js.gz +0 -0
- package/static/admin/assets/date-B1FSITvi.js +1 -0
- package/static/admin/assets/date-B1FSITvi.js.gz +0 -0
- package/static/admin/assets/date-range-B8MgYLb1.js +1 -0
- package/static/admin/assets/date-range-B8MgYLb1.js.gz +0 -0
- package/static/admin/assets/dict-Bi_GqSXR.js +1 -0
- package/static/admin/assets/dict-Bi_GqSXR.js.gz +0 -0
- package/static/admin/assets/documentation-uH9BvL5U.js +1 -0
- package/static/admin/assets/download-DeIzgQWH.js +1 -0
- package/static/admin/assets/download-DeIzgQWH.js.gz +0 -0
- package/static/admin/assets/drag-BG1_I1vT.js +1 -0
- package/static/admin/assets/druid-BybW_S_B.js +1 -0
- package/static/admin/assets/edit-D0DI9pAq.js +1 -0
- package/static/admin/assets/editTable-zr5bdAM7.js +1 -0
- package/static/admin/assets/editTable-zr5bdAM7.js.gz +0 -0
- package/static/admin/assets/education-47KsSYIl.js +1 -0
- package/static/admin/assets/email-Dig28Vt2.js +1 -0
- package/static/admin/assets/example-CnLLAFb9.js +1 -0
- package/static/admin/assets/excel-D3hj5F35.js +1 -0
- package/static/admin/assets/exit-fullscreen-dXhGKlQm.js +1 -0
- package/static/admin/assets/exit-fullscreen-dXhGKlQm.js.gz +0 -0
- package/static/admin/assets/eye-DqRz4sMZ.js +1 -0
- package/static/admin/assets/eye-DqRz4sMZ.js.gz +0 -0
- package/static/admin/assets/eye-open-BxlshWqB.js +1 -0
- package/static/admin/assets/eye-open-BxlshWqB.js.gz +0 -0
- package/static/admin/assets/form-BDTA_i-I.js +1 -0
- package/static/admin/assets/form-BDTA_i-I.js.gz +0 -0
- package/static/admin/assets/fullscreen-0JHt5yWX.js +1 -0
- package/static/admin/assets/gen-DLNrNhtb.js +1 -0
- package/static/admin/assets/genInfoForm-CMDsV5QX.js +1 -0
- package/static/admin/assets/genInfoForm-CMDsV5QX.js.gz +0 -0
- package/static/admin/assets/github-AJ0WQBa2.js +1 -0
- package/static/admin/assets/github-AJ0WQBa2.js.gz +0 -0
- package/static/admin/assets/guide-DZWUPi2j.js +1 -0
- package/static/admin/assets/icon-BtMv6Od8.js +1 -0
- package/static/admin/assets/icon-BtMv6Od8.js.gz +0 -0
- package/static/admin/assets/importTable-BsBsGfWB.js +1 -0
- package/static/admin/assets/importTable-BsBsGfWB.js.gz +0 -0
- package/static/admin/assets/index-1Gtzb1EG.css +1 -0
- package/static/admin/assets/index-1Gtzb1EG.css.gz +0 -0
- package/static/admin/assets/index-22TxXV_H.js +1 -0
- package/static/admin/assets/index-2PS_9Njt.js +1 -0
- package/static/admin/assets/index-2PS_9Njt.js.gz +0 -0
- package/static/admin/assets/index-2QWdVCKT.js +1 -0
- package/static/admin/assets/index-BH2yis6M.js +1 -0
- package/static/admin/assets/index-BYiWbDzj.js +137 -0
- package/static/admin/assets/index-BYiWbDzj.js.gz +0 -0
- package/static/admin/assets/index-BcoIBYYg.js +1 -0
- package/static/admin/assets/index-BcoIBYYg.js.gz +0 -0
- package/static/admin/assets/index-BdfyYxZX.css +1 -0
- package/static/admin/assets/index-BdfyYxZX.css.gz +0 -0
- package/static/admin/assets/index-BpFFXMK5.js +1 -0
- package/static/admin/assets/index-BpFFXMK5.js.gz +0 -0
- package/static/admin/assets/index-CKPU_AaL.js +1 -0
- package/static/admin/assets/index-CKPU_AaL.js.gz +0 -0
- package/static/admin/assets/index-CXsykB0X.js +1 -0
- package/static/admin/assets/index-CXsykB0X.js.gz +0 -0
- package/static/admin/assets/index-CfHRKVJR.js +1 -0
- package/static/admin/assets/index-CfHRKVJR.js.gz +0 -0
- package/static/admin/assets/index-ChrWcM7o.js +1 -0
- package/static/admin/assets/index-ChrWcM7o.js.gz +0 -0
- package/static/admin/assets/index-CyGqJLpz.css +1 -0
- package/static/admin/assets/index-Czuq8j-W.js +1 -0
- package/static/admin/assets/index-D5kEXJN3.js +1 -0
- package/static/admin/assets/index-D5kEXJN3.js.gz +0 -0
- package/static/admin/assets/index-D7sjRL--.js +1 -0
- package/static/admin/assets/index-D7sjRL--.js.gz +0 -0
- package/static/admin/assets/index-D9JRAPr4.js +1 -0
- package/static/admin/assets/index-D9JRAPr4.js.gz +0 -0
- package/static/admin/assets/index-DADWjT7Y.js +1 -0
- package/static/admin/assets/index-DADWjT7Y.js.gz +0 -0
- package/static/admin/assets/index-DUTtT4NU.js +1 -0
- package/static/admin/assets/index-DUTtT4NU.js.gz +0 -0
- package/static/admin/assets/index-DZR__uIb.js +1 -0
- package/static/admin/assets/index-DZR__uIb.js.gz +0 -0
- package/static/admin/assets/index-Da2r8G2b.js +1 -0
- package/static/admin/assets/index-Da2r8G2b.js.gz +0 -0
- package/static/admin/assets/index-DakybE_b.js +1 -0
- package/static/admin/assets/index-DakybE_b.js.gz +0 -0
- package/static/admin/assets/index-DdnU2rJ0.css +1 -0
- package/static/admin/assets/index-H21xXZr5.js +60 -0
- package/static/admin/assets/index-H21xXZr5.js.gz +0 -0
- package/static/admin/assets/index-PGDGQEbD.js +1 -0
- package/static/admin/assets/index-PGDGQEbD.js.gz +0 -0
- package/static/admin/assets/index-Rm6qYhrO.js +1 -0
- package/static/admin/assets/index-VG6ZkdYt.js +1 -0
- package/static/admin/assets/index-VG6ZkdYt.js.gz +0 -0
- package/static/admin/assets/index-YVnsjgTq.js +1 -0
- package/static/admin/assets/index-YVnsjgTq.js.gz +0 -0
- package/static/admin/assets/index-t3XJ47us.css +1 -0
- package/static/admin/assets/index-t3XJ47us.css.gz +0 -0
- package/static/admin/assets/index-xfai-fRy.js +1 -0
- package/static/admin/assets/index-xfai-fRy.js.gz +0 -0
- package/static/admin/assets/input-BJoPMnBW.js +1 -0
- package/static/admin/assets/international-CmzG1OHg.js +1 -0
- package/static/admin/assets/international-CmzG1OHg.js.gz +0 -0
- package/static/admin/assets/job-BcmuINx7.js +1 -0
- package/static/admin/assets/job-BcmuINx7.js.gz +0 -0
- package/static/admin/assets/job-COdMvNx2.js +1 -0
- package/static/admin/assets/language-CaW1LMEk.js +1 -0
- package/static/admin/assets/language-CaW1LMEk.js.gz +0 -0
- package/static/admin/assets/link-C93f4PgI.js +1 -0
- package/static/admin/assets/list-C7O8B4zW.js +1 -0
- package/static/admin/assets/list-C7O8B4zW.js.gz +0 -0
- package/static/admin/assets/list-DUaPnccL.js +1 -0
- package/static/admin/assets/list-DUaPnccL.js.gz +0 -0
- package/static/admin/assets/lock-Bexeb9hp.js +1 -0
- package/static/admin/assets/log-CF2F-nSs.js +1 -0
- package/static/admin/assets/log-CF2F-nSs.js.gz +0 -0
- package/static/admin/assets/log-g6qirYnf.js +1 -0
- package/static/admin/assets/log-g6qirYnf.js.gz +0 -0
- package/static/admin/assets/login-1ezV0PC1.css +1 -0
- package/static/admin/assets/login-1ezV0PC1.css.gz +0 -0
- package/static/admin/assets/login-BnkuYS6J.js +22 -0
- package/static/admin/assets/login-BnkuYS6J.js.gz +0 -0
- package/static/admin/assets/login-background-Yn3y1TP_.jpg +0 -0
- package/static/admin/assets/logininfor-Bm9ZYYR7.js +1 -0
- package/static/admin/assets/logininfor-Bm9ZYYR7.js.gz +0 -0
- package/static/admin/assets/logo-BjsPc2xl.png +0 -0
- package/static/admin/assets/menu-BIu3IsSF.js +1 -0
- package/static/admin/assets/message-UkR-VIBB.js +1 -0
- package/static/admin/assets/money-B1qqPuhn.js +1 -0
- package/static/admin/assets/monitor-gwnnVq4l.js +1 -0
- package/static/admin/assets/monitor-gwnnVq4l.js.gz +0 -0
- package/static/admin/assets/nested-B4d5u3hW.js +1 -0
- package/static/admin/assets/number-D4hB_nHC.js +1 -0
- package/static/admin/assets/number-D4hB_nHC.js.gz +0 -0
- package/static/admin/assets/online-C2ZP8pdY.js +1 -0
- package/static/admin/assets/online-C2ZP8pdY.js.gz +0 -0
- package/static/admin/assets/password-DfGvqQpB.js +1 -0
- package/static/admin/assets/password-DfGvqQpB.js.gz +0 -0
- package/static/admin/assets/pay-2ZbgPnxn.png +0 -0
- package/static/admin/assets/pdf-CD9mOGjJ.js +1 -0
- package/static/admin/assets/pdf-CD9mOGjJ.js.gz +0 -0
- package/static/admin/assets/people-CdGMHN63.js +1 -0
- package/static/admin/assets/people-CdGMHN63.js.gz +0 -0
- package/static/admin/assets/peoples-BRYsIqmI.js +1 -0
- package/static/admin/assets/phone-BpAUIz0g.js +1 -0
- package/static/admin/assets/phone-BpAUIz0g.js.gz +0 -0
- package/static/admin/assets/pm2-BkmkkE2A.js +1 -0
- package/static/admin/assets/post-DrLDyPY9.js +1 -0
- package/static/admin/assets/post-DrLDyPY9.js.gz +0 -0
- package/static/admin/assets/profile-DruvkrZU.jpg +0 -0
- package/static/admin/assets/qq-D8j4O83Y.js +1 -0
- package/static/admin/assets/qq-D8j4O83Y.js.gz +0 -0
- package/static/admin/assets/question-CvYWQbyW.js +1 -0
- package/static/admin/assets/question-CvYWQbyW.js.gz +0 -0
- package/static/admin/assets/radio-B0t9wPBQ.js +1 -0
- package/static/admin/assets/radio-B0t9wPBQ.js.gz +0 -0
- package/static/admin/assets/rate-CgnHQvKS.js +1 -0
- package/static/admin/assets/rate-CgnHQvKS.js.gz +0 -0
- package/static/admin/assets/redis-D4ECyT6a.js +1 -0
- package/static/admin/assets/redis-D4ECyT6a.js.gz +0 -0
- package/static/admin/assets/redis-list-BtKGPnqO.js +1 -0
- package/static/admin/assets/redis-list-BtKGPnqO.js.gz +0 -0
- package/static/admin/assets/register-B9RmZvjt.js +1 -0
- package/static/admin/assets/register-B9RmZvjt.js.gz +0 -0
- package/static/admin/assets/register-n3u7gqca.css +1 -0
- package/static/admin/assets/resetPwd-M0EIDnQk.js +1 -0
- package/static/admin/assets/resetPwd-M0EIDnQk.js.gz +0 -0
- package/static/admin/assets/role-XbHkNxnW.js +1 -0
- package/static/admin/assets/role-XbHkNxnW.js.gz +0 -0
- package/static/admin/assets/row-CRXKIHjm.js +1 -0
- package/static/admin/assets/row-CRXKIHjm.js.gz +0 -0
- package/static/admin/assets/search-CUfclCsR.js +1 -0
- package/static/admin/assets/select-DhuHHMxz.js +1 -0
- package/static/admin/assets/select-DhuHHMxz.js.gz +0 -0
- package/static/admin/assets/selectUser-DA_rE9J_.js +1 -0
- package/static/admin/assets/selectUser-DA_rE9J_.js.gz +0 -0
- package/static/admin/assets/server-unS7EyF7.js +1 -0
- package/static/admin/assets/shopping-CU1IRvxM.js +1 -0
- package/static/admin/assets/shopping-CU1IRvxM.js.gz +0 -0
- package/static/admin/assets/size-Cj9fB5Rp.js +1 -0
- package/static/admin/assets/skill-B8f_I4m_.js +1 -0
- package/static/admin/assets/skill-B8f_I4m_.js.gz +0 -0
- package/static/admin/assets/slider-BGfehM6X.js +1 -0
- package/static/admin/assets/star-kST8a72V.js +1 -0
- package/static/admin/assets/store-CX7IRN8X.js +1 -0
- package/static/admin/assets/swagger-BHGXZ2Jt.js +1 -0
- package/static/admin/assets/swagger-BHGXZ2Jt.js.gz +0 -0
- package/static/admin/assets/switch-CvaargRJ.js +1 -0
- package/static/admin/assets/system-DcNSH_Fq.js +1 -0
- package/static/admin/assets/system-DcNSH_Fq.js.gz +0 -0
- package/static/admin/assets/tab-nA3f0aBt.js +1 -0
- package/static/admin/assets/table-5PRh60AQ.js +1 -0
- package/static/admin/assets/test-CEJIIaDM.js +1 -0
- package/static/admin/assets/test-CEJIIaDM.js.gz +0 -0
- package/static/admin/assets/textarea-CJWXlgbJ.js +1 -0
- package/static/admin/assets/theme-CyGq941x.js +1 -0
- package/static/admin/assets/time-BVERp0sU.js +1 -0
- package/static/admin/assets/time-BVERp0sU.js.gz +0 -0
- package/static/admin/assets/time-range-D3dxgtLj.js +1 -0
- package/static/admin/assets/time-range-D3dxgtLj.js.gz +0 -0
- package/static/admin/assets/tool-D8kXk1l-.js +1 -0
- package/static/admin/assets/tool-D8kXk1l-.js.gz +0 -0
- package/static/admin/assets/tree-BCtS3oPD.js +1 -0
- package/static/admin/assets/tree-BCtS3oPD.js.gz +0 -0
- package/static/admin/assets/tree-table-CnOS99I9.js +1 -0
- package/static/admin/assets/tree-table-CnOS99I9.js.gz +0 -0
- package/static/admin/assets/type-BU7MsCG8.js +1 -0
- package/static/admin/assets/upload-BueI-Il1.js +1 -0
- package/static/admin/assets/upload-BueI-Il1.js.gz +0 -0
- package/static/admin/assets/user-DCGYGA9G.js +1 -0
- package/static/admin/assets/user-DCGYGA9G.js.gz +0 -0
- package/static/admin/assets/user-DqMuW5cU.js +1 -0
- package/static/admin/assets/userAvatar-BAmwMY1G.css +1 -0
- package/static/admin/assets/userAvatar-BAmwMY1G.css.gz +0 -0
- package/static/admin/assets/userAvatar-Bax34kaQ.js +7 -0
- package/static/admin/assets/userAvatar-Bax34kaQ.js.gz +0 -0
- package/static/admin/assets/userInfo-OvdBjEQX.js +1 -0
- package/static/admin/assets/userInfo-OvdBjEQX.js.gz +0 -0
- package/static/admin/assets/validCode-COB1iLxa.js +1 -0
- package/static/admin/assets/validCode-COB1iLxa.js.gz +0 -0
- package/static/admin/assets/wechat-lmQOcPZu.js +1 -0
- package/static/admin/assets/wechat-lmQOcPZu.js.gz +0 -0
- package/static/admin/assets/zip-DIOSZc69.js +1 -0
- package/static/admin/assets/zip-DIOSZc69.js.gz +0 -0
- package/static/admin/favicon.ico +0 -0
- package/static/admin/index.html +216 -0
- package/static/admin/index.html.gz +0 -0
- package/store1/README.MD +0 -0
- package/store1/generic.mjs +102 -0
- package/store1/index.mjs +30 -0
- package/store1/monitor.mjs +13 -0
- package/store1/role.mjs +137 -0
- package/store1/store/0/data +0 -0
- package/store1/store/0/index +0 -0
- package/store1/store/0/index.mjs +15 -0
- package/store1/store/1/buffer/464135 +1 -0
- package/store1/store/1/buffer/464587 +1 -0
- package/store1/store/1/data +0 -0
- package/store1/store/1/data-LAPTOP-S8G0S6EH +0 -0
- package/store1/store/1/index +0 -0
- package/store1/store/1/index-LAPTOP-S8G0S6EH +0 -0
- package/store1/store/1/index.mjs +4045 -0
- package/store1/store/1/type.ts +1492 -0
- package/store1/store/index.mjs +23 -0
- package/store1/store2/0/data +0 -0
- package/store1/store2/0/index +0 -0
- package/store1/store2/0/index.mjs +15 -0
- package/store1/store2/1/buffer/464135 +1 -0
- package/store1/store2/1/buffer/464587 +1 -0
- package/store1/store2/1/data +0 -0
- package/store1/store2/1/data-LAPTOP-S8G0S6EH +0 -0
- package/store1/store2/1/index +0 -0
- package/store1/store2/1/index-LAPTOP-S8G0S6EH +0 -0
- package/store1/store2/1/index.mjs +4045 -0
- package/store1/store2/1/type.ts +1492 -0
- package/store1/store2/index.mjs +23 -0
- package/store1/system.mjs +67 -0
- package/store1/tool.mjs +472 -0
- package/store1/user.mjs +228 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
<template>
|
2
|
+
<div :class="classObj" class="app-wrapper" :style="{ '--current-color': theme }">
|
3
|
+
<div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
|
4
|
+
<sidebar v-if="!sidebar.hide" class="sidebar-container" />
|
5
|
+
<div :class="{ hasTagsView: needTagsView, sidebarHide: sidebar.hide }" class="main-container">
|
6
|
+
<div :class="{ 'fixed-header': fixedHeader }">
|
7
|
+
<navbar @setLayout="setLayout" />
|
8
|
+
<tags-view v-if="needTagsView" />
|
9
|
+
</div>
|
10
|
+
<app-main />
|
11
|
+
<settings ref="settingRef" />
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</template>
|
15
|
+
|
16
|
+
<script setup>
|
17
|
+
import { useWindowSize } from '@vueuse/core'
|
18
|
+
import Sidebar from './components/Sidebar/index.vue'
|
19
|
+
import { AppMain, Navbar, Settings, TagsView } from './components'
|
20
|
+
import defaultSettings from '@/settings'
|
21
|
+
|
22
|
+
import useAppStore from '@/store/modules/app'
|
23
|
+
import useSettingsStore from '@/store/modules/settings'
|
24
|
+
|
25
|
+
const settingsStore = useSettingsStore()
|
26
|
+
const theme = computed(() => settingsStore.theme);
|
27
|
+
const sideTheme = computed(() => settingsStore.sideTheme);
|
28
|
+
const sidebar = computed(() => useAppStore().sidebar);
|
29
|
+
const device = computed(() => useAppStore().device);
|
30
|
+
const needTagsView = computed(() => settingsStore.tagsView);
|
31
|
+
const fixedHeader = computed(() => settingsStore.fixedHeader);
|
32
|
+
|
33
|
+
const classObj = computed(() => ({
|
34
|
+
hideSidebar: !sidebar.value.opened,
|
35
|
+
openSidebar: sidebar.value.opened,
|
36
|
+
withoutAnimation: sidebar.value.withoutAnimation,
|
37
|
+
mobile: device.value === 'mobile'
|
38
|
+
}))
|
39
|
+
|
40
|
+
const { width, height } = useWindowSize();
|
41
|
+
const WIDTH = 992; // refer to Bootstrap's responsive design
|
42
|
+
|
43
|
+
watch(() => device.value, () => {
|
44
|
+
if (device.value === 'mobile' && sidebar.value.opened) {
|
45
|
+
useAppStore().closeSideBar({ withoutAnimation: false })
|
46
|
+
}
|
47
|
+
})
|
48
|
+
|
49
|
+
watchEffect(() => {
|
50
|
+
if (width.value - 1 < WIDTH) {
|
51
|
+
useAppStore().toggleDevice('mobile')
|
52
|
+
useAppStore().closeSideBar({ withoutAnimation: true })
|
53
|
+
} else {
|
54
|
+
useAppStore().toggleDevice('desktop')
|
55
|
+
}
|
56
|
+
})
|
57
|
+
|
58
|
+
function handleClickOutside() {
|
59
|
+
useAppStore().closeSideBar({ withoutAnimation: false })
|
60
|
+
}
|
61
|
+
|
62
|
+
const settingRef = ref(null);
|
63
|
+
function setLayout() {
|
64
|
+
settingRef.value.openSetting();
|
65
|
+
}
|
66
|
+
</script>
|
67
|
+
|
68
|
+
<style lang="scss" scoped>
|
69
|
+
@import "@/assets/styles/mixin.scss";
|
70
|
+
@import "@/assets/styles/variables.module.scss";
|
71
|
+
|
72
|
+
.app-wrapper {
|
73
|
+
@include clearfix;
|
74
|
+
position: relative;
|
75
|
+
height: 100%;
|
76
|
+
width: 100%;
|
77
|
+
|
78
|
+
&.mobile.openSidebar {
|
79
|
+
position: fixed;
|
80
|
+
top: 0;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
.drawer-bg {
|
85
|
+
background: #000;
|
86
|
+
opacity: 0.3;
|
87
|
+
width: 100%;
|
88
|
+
top: 0;
|
89
|
+
height: 100%;
|
90
|
+
position: absolute;
|
91
|
+
z-index: 999;
|
92
|
+
}
|
93
|
+
|
94
|
+
.fixed-header {
|
95
|
+
position: fixed;
|
96
|
+
top: 0;
|
97
|
+
right: 0;
|
98
|
+
z-index: 9;
|
99
|
+
width: calc(100% - #{$base-sidebar-width});
|
100
|
+
transition: width 0.28s;
|
101
|
+
}
|
102
|
+
|
103
|
+
.hideSidebar .fixed-header {
|
104
|
+
width: calc(100% - 54px);
|
105
|
+
}
|
106
|
+
|
107
|
+
.sidebarHide .fixed-header {
|
108
|
+
width: 100%;
|
109
|
+
}
|
110
|
+
|
111
|
+
.mobile .fixed-header {
|
112
|
+
width: 100%;
|
113
|
+
}
|
114
|
+
</style>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
import { createApp } from 'vue'
|
2
|
+
|
3
|
+
import Cookies from 'js-cookie'
|
4
|
+
|
5
|
+
import ElementPlus from 'element-plus'
|
6
|
+
import 'element-plus/dist/index.css'
|
7
|
+
import locale from 'element-plus/es/locale/lang/zh-cn'
|
8
|
+
|
9
|
+
import '@/assets/styles/index.scss' // global css
|
10
|
+
|
11
|
+
import App from './App'
|
12
|
+
import store from './store'
|
13
|
+
import router from './router'
|
14
|
+
import directive from './directive' // directive
|
15
|
+
|
16
|
+
// 注册指令
|
17
|
+
import plugins from './plugins' // plugins
|
18
|
+
import { download } from '@/utils/request'
|
19
|
+
|
20
|
+
// svg图标
|
21
|
+
import 'virtual:svg-icons-register'
|
22
|
+
import SvgIcon from '@/components/SvgIcon'
|
23
|
+
import elementIcons from '@/components/SvgIcon/svgicon'
|
24
|
+
|
25
|
+
import './permission' // permission control
|
26
|
+
|
27
|
+
import { useDict } from '@/utils/dict'
|
28
|
+
import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi'
|
29
|
+
|
30
|
+
// 分页组件
|
31
|
+
import Pagination from '@/components/Pagination'
|
32
|
+
// 自定义表格工具组件
|
33
|
+
import RightToolbar from '@/components/RightToolbar'
|
34
|
+
// 富文本组件
|
35
|
+
import Editor from "@/components/Editor"
|
36
|
+
// 文件上传组件
|
37
|
+
import FileUpload from "@/components/FileUpload"
|
38
|
+
// 图片上传组件
|
39
|
+
import ImageUpload from "@/components/ImageUpload"
|
40
|
+
// 图片预览组件
|
41
|
+
import ImagePreview from "@/components/ImagePreview"
|
42
|
+
// 自定义树选择组件
|
43
|
+
import TreeSelect from '@/components/TreeSelect'
|
44
|
+
// 字典标签组件
|
45
|
+
import DictTag from '@/components/DictTag'
|
46
|
+
|
47
|
+
const app = createApp(App)
|
48
|
+
|
49
|
+
// 全局方法挂载
|
50
|
+
app.config.globalProperties.useDict = useDict
|
51
|
+
app.config.globalProperties.download = download
|
52
|
+
app.config.globalProperties.parseTime = parseTime
|
53
|
+
app.config.globalProperties.resetForm = resetForm
|
54
|
+
app.config.globalProperties.handleTree = handleTree
|
55
|
+
app.config.globalProperties.addDateRange = addDateRange
|
56
|
+
app.config.globalProperties.selectDictLabel = selectDictLabel
|
57
|
+
app.config.globalProperties.selectDictLabels = selectDictLabels
|
58
|
+
|
59
|
+
// 全局组件挂载
|
60
|
+
app.component('DictTag', DictTag)
|
61
|
+
app.component('Pagination', Pagination)
|
62
|
+
app.component('TreeSelect', TreeSelect)
|
63
|
+
app.component('FileUpload', FileUpload)
|
64
|
+
app.component('ImageUpload', ImageUpload)
|
65
|
+
app.component('ImagePreview', ImagePreview)
|
66
|
+
app.component('RightToolbar', RightToolbar)
|
67
|
+
app.component('Editor', Editor)
|
68
|
+
|
69
|
+
app.use(router)
|
70
|
+
app.use(store)
|
71
|
+
app.use(plugins)
|
72
|
+
app.use(elementIcons)
|
73
|
+
app.component('svg-icon', SvgIcon)
|
74
|
+
|
75
|
+
directive(app)
|
76
|
+
|
77
|
+
// 使用element-plus 并且设置全局的大小
|
78
|
+
app.use(ElementPlus, {
|
79
|
+
locale: locale,
|
80
|
+
// 支持 large、default、small
|
81
|
+
size: Cookies.get('size') || 'default'
|
82
|
+
})
|
83
|
+
|
84
|
+
app.mount('#app')
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import router from './router'
|
2
|
+
import { ElMessage } from 'element-plus'
|
3
|
+
import NProgress from 'nprogress'
|
4
|
+
import 'nprogress/nprogress.css'
|
5
|
+
import { getToken } from '@/utils/auth'
|
6
|
+
import { isHttp } from '@/utils/validate'
|
7
|
+
import { isRelogin } from '@/utils/request'
|
8
|
+
import useUserStore from '@/store/modules/user'
|
9
|
+
import useSettingsStore from '@/store/modules/settings'
|
10
|
+
import usePermissionStore from '@/store/modules/permission'
|
11
|
+
|
12
|
+
NProgress.configure({ showSpinner: false });
|
13
|
+
|
14
|
+
const whiteList = ['/login', '/register'];
|
15
|
+
|
16
|
+
router.beforeEach((to, from, next) => {
|
17
|
+
NProgress.start()
|
18
|
+
if (getToken()) {
|
19
|
+
to.meta.title && useSettingsStore().setTitle(to.meta.title)
|
20
|
+
/* has token*/
|
21
|
+
if (to.path === '/login') {
|
22
|
+
next({ path: '/' })
|
23
|
+
NProgress.done()
|
24
|
+
} else if (whiteList.indexOf(to.path) !== -1) {
|
25
|
+
next()
|
26
|
+
} else {
|
27
|
+
if (useUserStore().roles.length === 0) {
|
28
|
+
isRelogin.show = true
|
29
|
+
// 判断当前用户是否已拉取完user_info信息
|
30
|
+
useUserStore().getInfo().then(() => {
|
31
|
+
isRelogin.show = false
|
32
|
+
usePermissionStore().generateRoutes().then(accessRoutes => {
|
33
|
+
// 根据roles权限生成可访问的路由表
|
34
|
+
accessRoutes.forEach(route => {
|
35
|
+
if (!isHttp(route.path)) {
|
36
|
+
router.addRoute(route) // 动态添加可访问路由表
|
37
|
+
}
|
38
|
+
})
|
39
|
+
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
|
40
|
+
})
|
41
|
+
}).catch(err => {
|
42
|
+
useUserStore().logOut().then(() => {
|
43
|
+
ElMessage.error(err)
|
44
|
+
next({ path: '/' })
|
45
|
+
})
|
46
|
+
})
|
47
|
+
} else {
|
48
|
+
next()
|
49
|
+
}
|
50
|
+
}
|
51
|
+
} else {
|
52
|
+
// 没有token
|
53
|
+
if (whiteList.indexOf(to.path) !== -1) {
|
54
|
+
// 在免登录白名单,直接进入
|
55
|
+
next()
|
56
|
+
} else {
|
57
|
+
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
|
58
|
+
NProgress.done()
|
59
|
+
}
|
60
|
+
}
|
61
|
+
})
|
62
|
+
|
63
|
+
router.afterEach(() => {
|
64
|
+
NProgress.done()
|
65
|
+
})
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import useUserStore from '@/store/modules/user'
|
2
|
+
|
3
|
+
function authPermission(permission) {
|
4
|
+
const all_permission = "*:*:*";
|
5
|
+
const permissions = useUserStore().permissions
|
6
|
+
if (permission && permission.length > 0) {
|
7
|
+
return permissions.some(v => {
|
8
|
+
return all_permission === v || v === permission
|
9
|
+
})
|
10
|
+
} else {
|
11
|
+
return false
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
function authRole(role) {
|
16
|
+
const super_admin = "admin";
|
17
|
+
const roles = useUserStore().roles
|
18
|
+
if (role && role.length > 0) {
|
19
|
+
return roles.some(v => {
|
20
|
+
return super_admin === v || v === role
|
21
|
+
})
|
22
|
+
} else {
|
23
|
+
return false
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
export default {
|
28
|
+
// 验证用户是否具备某权限
|
29
|
+
hasPermi(permission) {
|
30
|
+
return authPermission(permission);
|
31
|
+
},
|
32
|
+
// 验证用户是否含有指定权限,只需包含其中一个
|
33
|
+
hasPermiOr(permissions) {
|
34
|
+
return permissions.some(item => {
|
35
|
+
return authPermission(item)
|
36
|
+
})
|
37
|
+
},
|
38
|
+
// 验证用户是否含有指定权限,必须全部拥有
|
39
|
+
hasPermiAnd(permissions) {
|
40
|
+
return permissions.every(item => {
|
41
|
+
return authPermission(item)
|
42
|
+
})
|
43
|
+
},
|
44
|
+
// 验证用户是否具备某角色
|
45
|
+
hasRole(role) {
|
46
|
+
return authRole(role);
|
47
|
+
},
|
48
|
+
// 验证用户是否含有指定角色,只需包含其中一个
|
49
|
+
hasRoleOr(roles) {
|
50
|
+
return roles.some(item => {
|
51
|
+
return authRole(item)
|
52
|
+
})
|
53
|
+
},
|
54
|
+
// 验证用户是否含有指定角色,必须全部拥有
|
55
|
+
hasRoleAnd(roles) {
|
56
|
+
return roles.every(item => {
|
57
|
+
return authRole(item)
|
58
|
+
})
|
59
|
+
}
|
60
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
const sessionCache = {
|
2
|
+
set (key, value) {
|
3
|
+
if (!sessionStorage) {
|
4
|
+
return
|
5
|
+
}
|
6
|
+
if (key != null && value != null) {
|
7
|
+
sessionStorage.setItem(key, value)
|
8
|
+
}
|
9
|
+
},
|
10
|
+
get (key) {
|
11
|
+
if (!sessionStorage) {
|
12
|
+
return null
|
13
|
+
}
|
14
|
+
if (key == null) {
|
15
|
+
return null
|
16
|
+
}
|
17
|
+
return sessionStorage.getItem(key)
|
18
|
+
},
|
19
|
+
setJSON (key, jsonValue) {
|
20
|
+
if (jsonValue != null) {
|
21
|
+
this.set(key, JSON.stringify(jsonValue))
|
22
|
+
}
|
23
|
+
},
|
24
|
+
getJSON (key) {
|
25
|
+
const value = this.get(key)
|
26
|
+
if (value != null) {
|
27
|
+
return JSON.parse(value)
|
28
|
+
}
|
29
|
+
},
|
30
|
+
remove (key) {
|
31
|
+
sessionStorage.removeItem(key);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
const localCache = {
|
35
|
+
set (key, value) {
|
36
|
+
if (!localStorage) {
|
37
|
+
return
|
38
|
+
}
|
39
|
+
if (key != null && value != null) {
|
40
|
+
localStorage.setItem(key, value)
|
41
|
+
}
|
42
|
+
},
|
43
|
+
get (key) {
|
44
|
+
if (!localStorage) {
|
45
|
+
return null
|
46
|
+
}
|
47
|
+
if (key == null) {
|
48
|
+
return null
|
49
|
+
}
|
50
|
+
return localStorage.getItem(key)
|
51
|
+
},
|
52
|
+
setJSON (key, jsonValue) {
|
53
|
+
if (jsonValue != null) {
|
54
|
+
this.set(key, JSON.stringify(jsonValue))
|
55
|
+
}
|
56
|
+
},
|
57
|
+
getJSON (key) {
|
58
|
+
const value = this.get(key)
|
59
|
+
if (value != null) {
|
60
|
+
return JSON.parse(value)
|
61
|
+
}
|
62
|
+
},
|
63
|
+
remove (key) {
|
64
|
+
localStorage.removeItem(key);
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
export default {
|
69
|
+
/**
|
70
|
+
* 会话级缓存
|
71
|
+
*/
|
72
|
+
session: sessionCache,
|
73
|
+
/**
|
74
|
+
* 本地缓存
|
75
|
+
*/
|
76
|
+
local: localCache
|
77
|
+
}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import axios from 'axios'
|
2
|
+
import { ElLoading, ElMessage } from 'element-plus'
|
3
|
+
import { saveAs } from 'file-saver'
|
4
|
+
import { getToken } from '@/utils/auth'
|
5
|
+
import errorCode from '@/utils/errorCode'
|
6
|
+
import { blobValidate } from '@/utils/ruoyi'
|
7
|
+
|
8
|
+
const baseURL = import.meta.env.VITE_APP_BASE_API
|
9
|
+
let downloadLoadingInstance;
|
10
|
+
|
11
|
+
export default {
|
12
|
+
name(name, isDelete = true) {
|
13
|
+
var url = baseURL + "/common/download?fileName=" + encodeURIComponent(name) + "&delete=" + isDelete
|
14
|
+
axios({
|
15
|
+
method: 'get',
|
16
|
+
url: url,
|
17
|
+
responseType: 'blob',
|
18
|
+
headers: { 'Authorization': 'Bearer ' + getToken() }
|
19
|
+
}).then((res) => {
|
20
|
+
const isBlob = blobValidate(res.data);
|
21
|
+
if (isBlob) {
|
22
|
+
const blob = new Blob([res.data])
|
23
|
+
this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
|
24
|
+
} else {
|
25
|
+
this.printErrMsg(res.data);
|
26
|
+
}
|
27
|
+
})
|
28
|
+
},
|
29
|
+
resource(resource) {
|
30
|
+
var url = baseURL + "/common/download/resource?resource=" + encodeURIComponent(resource);
|
31
|
+
axios({
|
32
|
+
method: 'get',
|
33
|
+
url: url,
|
34
|
+
responseType: 'blob',
|
35
|
+
headers: { 'Authorization': 'Bearer ' + getToken() }
|
36
|
+
}).then((res) => {
|
37
|
+
const isBlob = blobValidate(res.data);
|
38
|
+
if (isBlob) {
|
39
|
+
const blob = new Blob([res.data])
|
40
|
+
this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
|
41
|
+
} else {
|
42
|
+
this.printErrMsg(res.data);
|
43
|
+
}
|
44
|
+
})
|
45
|
+
},
|
46
|
+
zip(url, name) {
|
47
|
+
var url = baseURL + url
|
48
|
+
downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
|
49
|
+
axios({
|
50
|
+
method: 'get',
|
51
|
+
url: url,
|
52
|
+
responseType: 'blob',
|
53
|
+
headers: { 'Authorization': 'Bearer ' + getToken() }
|
54
|
+
}).then((res) => {
|
55
|
+
const isBlob = blobValidate(res.data);
|
56
|
+
if (isBlob) {
|
57
|
+
const blob = new Blob([res.data], { type: 'application/zip' })
|
58
|
+
this.saveAs(blob, name)
|
59
|
+
} else {
|
60
|
+
this.printErrMsg(res.data);
|
61
|
+
}
|
62
|
+
downloadLoadingInstance.close();
|
63
|
+
}).catch((r) => {
|
64
|
+
console.error(r)
|
65
|
+
ElMessage.error('下载文件出现错误,请联系管理员!')
|
66
|
+
downloadLoadingInstance.close();
|
67
|
+
})
|
68
|
+
},
|
69
|
+
saveAs(text, name, opts) {
|
70
|
+
saveAs(text, name, opts);
|
71
|
+
},
|
72
|
+
async printErrMsg(data) {
|
73
|
+
const resText = await data.text();
|
74
|
+
const rspObj = JSON.parse(resText);
|
75
|
+
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
|
76
|
+
ElMessage.error(errMsg);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import tab from './tab'
|
2
|
+
import auth from './auth'
|
3
|
+
import cache from './cache'
|
4
|
+
import modal from './modal'
|
5
|
+
import download from './download'
|
6
|
+
|
7
|
+
export default function installPlugins(app){
|
8
|
+
// 页签操作
|
9
|
+
app.config.globalProperties.$tab = tab
|
10
|
+
// 认证对象
|
11
|
+
app.config.globalProperties.$auth = auth
|
12
|
+
// 缓存对象
|
13
|
+
app.config.globalProperties.$cache = cache
|
14
|
+
// 模态框对象
|
15
|
+
app.config.globalProperties.$modal = modal
|
16
|
+
// 下载文件
|
17
|
+
app.config.globalProperties.$download = download
|
18
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import { ElMessage, ElMessageBox, ElNotification, ElLoading } from 'element-plus'
|
2
|
+
|
3
|
+
let loadingInstance;
|
4
|
+
|
5
|
+
export default {
|
6
|
+
// 消息提示
|
7
|
+
msg(content) {
|
8
|
+
ElMessage.info(content)
|
9
|
+
},
|
10
|
+
// 错误消息
|
11
|
+
msgError(content) {
|
12
|
+
ElMessage.error(content)
|
13
|
+
},
|
14
|
+
// 成功消息
|
15
|
+
msgSuccess(content) {
|
16
|
+
ElMessage.success(content)
|
17
|
+
},
|
18
|
+
// 警告消息
|
19
|
+
msgWarning(content) {
|
20
|
+
ElMessage.warning(content)
|
21
|
+
},
|
22
|
+
// 弹出提示
|
23
|
+
alert(content) {
|
24
|
+
ElMessageBox.alert(content, "系统提示")
|
25
|
+
},
|
26
|
+
// 错误提示
|
27
|
+
alertError(content) {
|
28
|
+
ElMessageBox.alert(content, "系统提示", { type: 'error' })
|
29
|
+
},
|
30
|
+
// 成功提示
|
31
|
+
alertSuccess(content) {
|
32
|
+
ElMessageBox.alert(content, "系统提示", { type: 'success' })
|
33
|
+
},
|
34
|
+
// 警告提示
|
35
|
+
alertWarning(content) {
|
36
|
+
ElMessageBox.alert(content, "系统提示", { type: 'warning' })
|
37
|
+
},
|
38
|
+
// 通知提示
|
39
|
+
notify(content) {
|
40
|
+
ElNotification.info(content)
|
41
|
+
},
|
42
|
+
// 错误通知
|
43
|
+
notifyError(content) {
|
44
|
+
ElNotification.error(content);
|
45
|
+
},
|
46
|
+
// 成功通知
|
47
|
+
notifySuccess(content) {
|
48
|
+
ElNotification.success(content)
|
49
|
+
},
|
50
|
+
// 警告通知
|
51
|
+
notifyWarning(content) {
|
52
|
+
ElNotification.warning(content)
|
53
|
+
},
|
54
|
+
// 确认窗体
|
55
|
+
confirm(content) {
|
56
|
+
return ElMessageBox.confirm(content, "系统提示", {
|
57
|
+
confirmButtonText: '确定',
|
58
|
+
cancelButtonText: '取消',
|
59
|
+
type: "warning",
|
60
|
+
})
|
61
|
+
},
|
62
|
+
// 提交内容
|
63
|
+
prompt(content) {
|
64
|
+
return ElMessageBox.prompt(content, "系统提示", {
|
65
|
+
confirmButtonText: '确定',
|
66
|
+
cancelButtonText: '取消',
|
67
|
+
type: "warning",
|
68
|
+
})
|
69
|
+
},
|
70
|
+
// 打开遮罩层
|
71
|
+
loading(content) {
|
72
|
+
loadingInstance = ElLoading.service({
|
73
|
+
lock: true,
|
74
|
+
text: content,
|
75
|
+
background: "rgba(0, 0, 0, 0.7)",
|
76
|
+
})
|
77
|
+
},
|
78
|
+
// 关闭遮罩层
|
79
|
+
closeLoading() {
|
80
|
+
loadingInstance.close();
|
81
|
+
}
|
82
|
+
}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import useTagsViewStore from '@/store/modules/tagsView'
|
2
|
+
import router from '@/router'
|
3
|
+
|
4
|
+
export default {
|
5
|
+
// 刷新当前tab页签
|
6
|
+
refreshPage(obj) {
|
7
|
+
const { path, query, matched } = router.currentRoute.value;
|
8
|
+
if (obj === undefined) {
|
9
|
+
matched.forEach((m) => {
|
10
|
+
if (m.components && m.components.default && m.components.default.name) {
|
11
|
+
if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
|
12
|
+
obj = { name: m.components.default.name, path: path, query: query };
|
13
|
+
}
|
14
|
+
}
|
15
|
+
});
|
16
|
+
}
|
17
|
+
return useTagsViewStore().delCachedView(obj).then(() => {
|
18
|
+
const { path, query } = obj
|
19
|
+
router.replace({
|
20
|
+
path: '/redirect' + path,
|
21
|
+
query: query
|
22
|
+
})
|
23
|
+
})
|
24
|
+
},
|
25
|
+
// 关闭当前tab页签,打开新页签
|
26
|
+
closeOpenPage(obj) {
|
27
|
+
useTagsViewStore().delView(router.currentRoute.value);
|
28
|
+
if (obj !== undefined) {
|
29
|
+
return router.push(obj);
|
30
|
+
}
|
31
|
+
},
|
32
|
+
// 关闭指定tab页签
|
33
|
+
closePage(obj) {
|
34
|
+
if (obj === undefined) {
|
35
|
+
return useTagsViewStore().delView(router.currentRoute.value).then(({ visitedViews }) => {
|
36
|
+
const latestView = visitedViews.slice(-1)[0]
|
37
|
+
if (latestView) {
|
38
|
+
return router.push(latestView.fullPath)
|
39
|
+
}
|
40
|
+
return router.push('/');
|
41
|
+
});
|
42
|
+
}
|
43
|
+
return useTagsViewStore().delView(obj);
|
44
|
+
},
|
45
|
+
// 关闭所有tab页签
|
46
|
+
closeAllPage() {
|
47
|
+
return useTagsViewStore().delAllViews();
|
48
|
+
},
|
49
|
+
// 关闭左侧tab页签
|
50
|
+
closeLeftPage(obj) {
|
51
|
+
return useTagsViewStore().delLeftTags(obj || router.currentRoute.value);
|
52
|
+
},
|
53
|
+
// 关闭右侧tab页签
|
54
|
+
closeRightPage(obj) {
|
55
|
+
return useTagsViewStore().delRightTags(obj || router.currentRoute.value);
|
56
|
+
},
|
57
|
+
// 关闭其他tab页签
|
58
|
+
closeOtherPage(obj) {
|
59
|
+
return useTagsViewStore().delOthersViews(obj || router.currentRoute.value);
|
60
|
+
},
|
61
|
+
// 打开tab页签
|
62
|
+
openPage(url) {
|
63
|
+
return router.push(url);
|
64
|
+
},
|
65
|
+
// 修改tab页签
|
66
|
+
updatePage(obj) {
|
67
|
+
return useTagsViewStore().updateVisitedView(obj);
|
68
|
+
}
|
69
|
+
}
|