From f336b801b9bbf86a695dd09c9ffbe6ad24b5b1dc Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 30 Apr 2021 14:15:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4=20x=2011=20:=20=E4=BF=AE=E6=94=B9=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=BA=20yudao-admin-ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 15 + yudao-admin-server/pom.xml | 11 - {ruoyi-ui => yudao-admin-ui}/.editorconfig | 44 +- {ruoyi-ui => yudao-admin-ui}/.env.demo1024 | 0 {ruoyi-ui => yudao-admin-ui}/.env.development | 18 +- {ruoyi-ui => yudao-admin-ui}/.env.production | 10 +- {ruoyi-ui => yudao-admin-ui}/.env.staging | 20 +- {ruoyi-ui => yudao-admin-ui}/.eslintignore | 18 +- {ruoyi-ui => yudao-admin-ui}/.eslintrc.js | 398 ++-- {ruoyi-ui => yudao-admin-ui}/.gitignore | 46 +- {ruoyi-ui => yudao-admin-ui}/babel.config.js | 26 +- {ruoyi-ui => yudao-admin-ui}/bin/build.bat | 0 {ruoyi-ui => yudao-admin-ui}/bin/package.bat | 22 +- {ruoyi-ui => yudao-admin-ui}/bin/run-web.bat | 22 +- {ruoyi-ui => yudao-admin-ui}/build/index.js | 70 +- {ruoyi-ui => yudao-admin-ui}/package.json | 176 +- .../public/favicon.ico | Bin .../public/index.html | 414 ++-- .../public/robots.txt | 2 +- {ruoyi-ui => yudao-admin-ui}/src/App.vue | 22 +- .../src/api/infra/apiAccessLog.js | 0 .../src/api/infra/apiErrorLog.js | 0 .../src/api/infra/config.js | 0 .../src/api/infra/dbDoc.js | 0 .../src/api/infra/file.js | 0 .../src/api/infra/job.js | 0 .../src/api/infra/jobLog.js | 0 .../src/api/infra/redis.js | 0 {ruoyi-ui => yudao-admin-ui}/src/api/login.js | 80 +- {ruoyi-ui => yudao-admin-ui}/src/api/menu.js | 18 +- .../src/api/system/dept.js | 120 +- .../src/api/system/dict/data.js | 140 +- .../src/api/system/dict/type.js | 124 +- .../src/api/system/errorCode.js | 0 .../src/api/system/loginlog.js | 0 .../src/api/system/menu.js | 0 .../src/api/system/notice.js | 88 +- .../src/api/system/operatelog.js | 0 .../src/api/system/permission.js | 0 .../src/api/system/post.js | 124 +- .../src/api/system/role.js | 150 +- .../src/api/system/session.js | 0 .../src/api/system/sms/smsChannel.js | 0 .../src/api/system/sms/smsLog.js | 0 .../src/api/system/sms/smsTemplate.js | 0 .../src/api/system/user.js | 258 +-- .../src/api/tool/codegen.js | 0 .../src/api/tool/testDemo.js | 0 .../src/assets/401_images/401.gif | Bin .../src/assets/404_images/404.png | Bin .../src/assets/404_images/404_cloud.png | Bin .../src/assets/icons/index.js | 18 +- .../src/assets/icons/svg/404.svg | 0 .../src/assets/icons/svg/bug.svg | 0 .../src/assets/icons/svg/build.svg | 0 .../src/assets/icons/svg/button.svg | 0 .../src/assets/icons/svg/cascader.svg | 0 .../src/assets/icons/svg/chart.svg | 0 .../src/assets/icons/svg/checkbox.svg | 0 .../src/assets/icons/svg/clipboard.svg | 0 .../src/assets/icons/svg/code.svg | 0 .../src/assets/icons/svg/color.svg | 0 .../src/assets/icons/svg/component.svg | 0 .../src/assets/icons/svg/dashboard.svg | 0 .../src/assets/icons/svg/date-range.svg | 0 .../src/assets/icons/svg/date.svg | 0 .../src/assets/icons/svg/dict.svg | 0 .../src/assets/icons/svg/documentation.svg | 0 .../src/assets/icons/svg/download.svg | 0 .../src/assets/icons/svg/drag.svg | 0 .../src/assets/icons/svg/druid.svg | 0 .../src/assets/icons/svg/edit.svg | 0 .../src/assets/icons/svg/education.svg | 0 .../src/assets/icons/svg/email.svg | 0 .../src/assets/icons/svg/example.svg | 0 .../src/assets/icons/svg/excel.svg | 0 .../src/assets/icons/svg/exit-fullscreen.svg | 0 .../src/assets/icons/svg/eye-open.svg | 0 .../src/assets/icons/svg/eye.svg | 0 .../src/assets/icons/svg/form.svg | 0 .../src/assets/icons/svg/fullscreen.svg | 0 .../src/assets/icons/svg/github.svg | 0 .../src/assets/icons/svg/guide.svg | 0 .../src/assets/icons/svg/icon.svg | 0 .../src/assets/icons/svg/input.svg | 0 .../src/assets/icons/svg/international.svg | 0 .../src/assets/icons/svg/job.svg | 0 .../src/assets/icons/svg/language.svg | 0 .../src/assets/icons/svg/link.svg | 0 .../src/assets/icons/svg/list.svg | 0 .../src/assets/icons/svg/lock.svg | 0 .../src/assets/icons/svg/log.svg | 0 .../src/assets/icons/svg/logininfor.svg | 0 .../src/assets/icons/svg/message.svg | 0 .../src/assets/icons/svg/money.svg | 0 .../src/assets/icons/svg/monitor.svg | 2 +- .../src/assets/icons/svg/nested.svg | 0 .../src/assets/icons/svg/number.svg | 0 .../src/assets/icons/svg/online.svg | 0 .../src/assets/icons/svg/password.svg | 0 .../src/assets/icons/svg/pdf.svg | 0 .../src/assets/icons/svg/people.svg | 0 .../src/assets/icons/svg/peoples.svg | 0 .../src/assets/icons/svg/phone.svg | 0 .../src/assets/icons/svg/post.svg | 0 .../src/assets/icons/svg/qq.svg | 0 .../src/assets/icons/svg/question.svg | 0 .../src/assets/icons/svg/radio.svg | 0 .../src/assets/icons/svg/rate.svg | 0 .../src/assets/icons/svg/redis.svg | 0 .../src/assets/icons/svg/row.svg | 0 .../src/assets/icons/svg/search.svg | 0 .../src/assets/icons/svg/select.svg | 0 .../src/assets/icons/svg/server.svg | 0 .../src/assets/icons/svg/shopping.svg | 0 .../src/assets/icons/svg/size.svg | 0 .../src/assets/icons/svg/skill.svg | 0 .../src/assets/icons/svg/slider.svg | 0 .../src/assets/icons/svg/star.svg | 0 .../src/assets/icons/svg/swagger.svg | 0 .../src/assets/icons/svg/switch.svg | 0 .../src/assets/icons/svg/system.svg | 2 +- .../src/assets/icons/svg/tab.svg | 0 .../src/assets/icons/svg/table.svg | 0 .../src/assets/icons/svg/textarea.svg | 0 .../src/assets/icons/svg/theme.svg | 0 .../src/assets/icons/svg/time-range.svg | 0 .../src/assets/icons/svg/time.svg | 0 .../src/assets/icons/svg/tool.svg | 0 .../src/assets/icons/svg/tree-table.svg | 0 .../src/assets/icons/svg/tree.svg | 0 .../src/assets/icons/svg/upload.svg | 0 .../src/assets/icons/svg/user.svg | 0 .../src/assets/icons/svg/validCode.svg | 0 .../src/assets/icons/svg/wechat.svg | 0 .../src/assets/icons/svg/zip.svg | 0 .../src/assets/icons/svgo.yml | 44 +- .../src/assets/images/dark.svg | 76 +- .../src/assets/images/light.svg | 76 +- .../src/assets/images/login-background.jpg | Bin .../src/assets/images/profile.jpg | Bin .../src/assets/logo/logo.png | Bin .../src/assets/styles/btn.scss | 198 +- .../src/assets/styles/element-ui.scss | 168 +- .../src/assets/styles/element-variables.scss | 62 +- .../src/assets/styles/index.scss | 382 ++-- .../src/assets/styles/mixin.scss | 132 +- .../src/assets/styles/ruoyi.scss | 480 ++--- .../src/assets/styles/sidebar.scss | 452 ++-- .../src/assets/styles/transition.scss | 96 +- .../src/assets/styles/variables.scss | 88 +- .../src/components/Breadcrumb/index.vue | 148 +- .../src/components/Editor/index.vue | 388 ++-- .../src/components/FileUpload/index.vue | 0 .../src/components/Hamburger/index.vue | 88 +- .../src/components/HeaderSearch/index.vue | 376 ++-- .../src/components/IconSelect/index.vue | 136 +- .../src/components/IconSelect/requireIcons.js | 22 +- .../src/components/ImageUpload/index.vue | 0 .../src/components/Pagination/index.vue | 202 +- .../src/components/PanThumb/index.vue | 284 +-- .../src/components/ParentView/index.vue | 0 .../src/components/RightPanel/index.vue | 298 +-- .../src/components/RightToolbar/index.vue | 76 +- .../src/components/RuoYi/Doc/index.vue | 42 +- .../src/components/RuoYi/Git/index.vue | 42 +- .../src/components/Screenfull/index.vue | 114 +- .../src/components/SizeSelect/index.vue | 114 +- .../src/components/SvgIcon/index.vue | 122 +- .../src/components/ThemePicker/index.vue | 350 +-- .../src/components/UploadImage/index.vue | 134 +- .../src/directive/permission/hasPermi.js | 56 +- .../src/directive/permission/hasRole.js | 56 +- .../src/directive/permission/index.js | 30 +- .../src/layout/components/AppMain.vue | 114 +- .../src/layout/components/Navbar.vue | 374 ++-- .../src/layout/components/Settings/index.vue | 394 ++-- .../layout/components/Sidebar/FixiOSBug.js | 50 +- .../src/layout/components/Sidebar/Item.vue | 58 +- .../src/layout/components/Sidebar/Link.vue | 86 +- .../src/layout/components/Sidebar/Logo.vue | 186 +- .../layout/components/Sidebar/SidebarItem.vue | 192 +- .../src/layout/components/Sidebar/index.vue | 114 +- .../layout/components/TagsView/ScrollPane.vue | 188 +- .../src/layout/components/TagsView/index.vue | 606 +++--- .../src/layout/components/global.js | 6 +- .../src/layout/components/index.js | 10 +- .../src/layout/index.vue | 216 +- .../src/layout/mixin/ResizeHandler.js | 90 +- {ruoyi-ui => yudao-admin-ui}/src/main.js | 198 +- .../src/permission.js | 112 +- .../src/router/index.js | 256 +-- {ruoyi-ui => yudao-admin-ui}/src/settings.js | 72 +- .../src/store/getters.js | 36 +- .../src/store/index.js | 50 +- .../src/store/modules/app.js | 112 +- .../src/store/modules/dict.js | 0 .../src/store/modules/permission.js | 196 +- .../src/store/modules/settings.js | 70 +- .../src/store/modules/tagsView.js | 318 +-- .../src/store/modules/user.js | 196 +- .../src/utils/auth.js | 30 +- .../src/utils/constants.js | 0 .../src/utils/dict.js | 0 .../src/utils/errorCode.js | 0 .../src/utils/generator/config.js | 876 ++++---- .../src/utils/generator/css.js | 36 +- .../src/utils/generator/drawingDefalut.js | 58 +- .../src/utils/generator/html.js | 718 +++---- .../src/utils/generator/icon.json | 0 .../src/utils/generator/js.js | 472 ++--- .../src/utils/generator/render.js | 252 +-- .../src/utils/index.js | 780 +++---- .../src/utils/jsencrypt.js | 0 .../src/utils/permission.js | 100 +- .../src/utils/request.js | 0 .../src/utils/ruoyi.js | 0 .../src/utils/scroll-to.js | 116 +- .../src/utils/validate.js | 166 +- .../views/components/icons/element-icons.js | 6 +- .../src/views/components/icons/index.vue | 174 +- .../src/views/components/icons/svg-icons.js | 20 +- .../src/views/dashboard/BarChart.vue | 204 +- .../src/views/dashboard/LineChart.vue | 270 +-- .../src/views/dashboard/PanelGroup.vue | 362 ++-- .../src/views/dashboard/PieChart.vue | 158 +- .../src/views/dashboard/RaddarChart.vue | 232 +- .../src/views/dashboard/mixins/resize.js | 112 +- .../src/views/error/401.vue | 176 +- .../src/views/error/404.vue | 466 ++-- .../src/views/index.vue | 0 .../src/views/index_old.vue | 0 .../src/views/infra/apiAccessLog/index.vue | 0 .../src/views/infra/apiErrorLog/index.vue | 0 .../src/views/infra/config/index.vue | 0 .../src/views/infra/druid/index.vue | 0 .../src/views/infra/file/index.vue | 0 .../src/views/infra/job/index.vue | 0 .../src/views/infra/job/log.vue | 0 .../src/views/infra/redis/index.vue | 0 .../src/views/infra/server/index.vue | 0 .../src/views/infra/skywalking/index.vue | 0 .../src/views/infra/skywalking/log.vue | 0 .../src/views/login.vue | 408 ++-- .../src/views/redirect.vue | 0 .../src/views/system/dept/index.vue | 566 ++--- .../src/views/system/dict/data.vue | 554 ++--- .../src/views/system/dict/index.vue | 526 ++--- .../src/views/system/errorCode/index.vue | 0 .../src/views/system/loginlog/index.vue | 0 .../src/views/system/menu/index.vue | 654 +++--- .../src/views/system/notice/index.vue | 502 ++--- .../src/views/system/operatelog/index.vue | 0 .../src/views/system/post/index.vue | 498 ++--- .../src/views/system/role/index.vue | 1028 ++++----- .../src/views/system/session/index.vue | 0 .../src/views/system/sms/smsChannel.vue | 0 .../src/views/system/sms/smsLog.vue | 0 .../src/views/system/sms/smsTemplate.vue | 0 .../src/views/system/user/index.vue | 0 .../src/views/system/user/profile/index.vue | 186 +- .../views/system/user/profile/resetPwd.vue | 144 +- .../views/system/user/profile/userAvatar.vue | 332 +-- .../views/system/user/profile/userInfo.vue | 152 +- .../src/views/tool/build/CodeTypeDialog.vue | 212 +- .../src/views/tool/build/DraggableItem.vue | 200 +- .../src/views/tool/build/IconsDialog.vue | 246 +-- .../src/views/tool/build/RightPanel.vue | 1888 ++++++++--------- .../src/views/tool/build/TreeNodeDialog.vue | 298 +-- .../src/views/tool/build/index.vue | 1578 +++++++------- .../src/views/tool/codegen/basicInfoForm.vue | 0 .../src/views/tool/codegen/editTable.vue | 0 .../src/views/tool/codegen/genInfoForm.vue | 0 .../src/views/tool/codegen/importTable.vue | 0 .../src/views/tool/codegen/index.vue | 0 .../src/views/tool/dbDoc/index.vue | 0 .../src/views/tool/swagger/index.vue | 52 +- .../src/views/tool/testDemo/index.vue | 0 {ruoyi-ui => yudao-admin-ui}/vue.config.js | 236 +-- yudao-dependencies/pom.xml | 21 +- yudao-framework/pom.xml | 12 - 281 files changed, 14070 insertions(+), 14097 deletions(-) rename {ruoyi-ui => yudao-admin-ui}/.editorconfig (95%) rename {ruoyi-ui => yudao-admin-ui}/.env.demo1024 (100%) rename {ruoyi-ui => yudao-admin-ui}/.env.development (95%) rename {ruoyi-ui => yudao-admin-ui}/.env.production (95%) rename {ruoyi-ui => yudao-admin-ui}/.env.staging (95%) rename {ruoyi-ui => yudao-admin-ui}/.eslintignore (97%) rename {ruoyi-ui => yudao-admin-ui}/.eslintrc.js (96%) rename {ruoyi-ui => yudao-admin-ui}/.gitignore (91%) rename {ruoyi-ui => yudao-admin-ui}/babel.config.js (97%) rename {ruoyi-ui => yudao-admin-ui}/bin/build.bat (100%) rename {ruoyi-ui => yudao-admin-ui}/bin/package.bat (93%) rename {ruoyi-ui => yudao-admin-ui}/bin/run-web.bat (90%) rename {ruoyi-ui => yudao-admin-ui}/build/index.js (96%) rename {ruoyi-ui => yudao-admin-ui}/package.json (95%) rename {ruoyi-ui => yudao-admin-ui}/public/favicon.ico (100%) rename {ruoyi-ui => yudao-admin-ui}/public/index.html (96%) rename {ruoyi-ui => yudao-admin-ui}/public/robots.txt (96%) rename {ruoyi-ui => yudao-admin-ui}/src/App.vue (91%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/apiAccessLog.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/apiErrorLog.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/config.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/dbDoc.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/file.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/job.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/jobLog.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/infra/redis.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/login.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/menu.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/dept.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/dict/data.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/dict/type.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/errorCode.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/loginlog.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/menu.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/notice.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/operatelog.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/permission.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/post.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/role.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/session.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/sms/smsChannel.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/sms/smsLog.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/sms/smsTemplate.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/system/user.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/api/tool/codegen.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/api/tool/testDemo.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/401_images/401.gif (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/404_images/404.png (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/404_images/404_cloud.png (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/index.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/404.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/bug.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/build.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/button.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/cascader.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/chart.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/checkbox.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/clipboard.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/code.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/color.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/component.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/dashboard.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/date-range.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/date.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/dict.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/documentation.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/download.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/drag.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/druid.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/edit.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/education.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/email.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/example.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/excel.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/exit-fullscreen.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/eye-open.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/eye.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/form.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/fullscreen.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/github.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/guide.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/icon.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/input.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/international.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/job.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/language.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/link.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/list.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/lock.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/log.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/logininfor.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/message.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/money.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/monitor.svg (99%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/nested.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/number.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/online.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/password.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/pdf.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/people.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/peoples.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/phone.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/post.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/qq.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/question.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/radio.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/rate.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/redis.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/row.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/search.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/select.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/server.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/shopping.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/size.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/skill.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/slider.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/star.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/swagger.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/switch.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/system.svg (99%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/tab.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/table.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/textarea.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/theme.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/time-range.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/time.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/tool.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/tree-table.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/tree.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/upload.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/user.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/validCode.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/wechat.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svg/zip.svg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/icons/svgo.yml (91%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/images/dark.svg (98%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/images/light.svg (98%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/images/login-background.jpg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/images/profile.jpg (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/logo/logo.png (100%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/btn.scss (93%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/element-ui.scss (93%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/element-variables.scss (96%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/index.scss (93%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/mixin.scss (95%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/ruoyi.scss (93%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/sidebar.scss (94%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/transition.scss (93%) rename {ruoyi-ui => yudao-admin-ui}/src/assets/styles/variables.scss (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/Breadcrumb/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/components/Editor/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/components/FileUpload/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/components/Hamburger/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/components/HeaderSearch/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/IconSelect/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/IconSelect/requireIcons.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/ImageUpload/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/components/Pagination/index.vue (94%) rename {ruoyi-ui => yudao-admin-ui}/src/components/PanThumb/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/ParentView/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/components/RightPanel/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/RightToolbar/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/RuoYi/Doc/index.vue (93%) rename {ruoyi-ui => yudao-admin-ui}/src/components/RuoYi/Git/index.vue (93%) rename {ruoyi-ui => yudao-admin-ui}/src/components/Screenfull/index.vue (94%) rename {ruoyi-ui => yudao-admin-ui}/src/components/SizeSelect/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/SvgIcon/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/components/ThemePicker/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/components/UploadImage/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/directive/permission/hasPermi.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/directive/permission/hasRole.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/directive/permission/index.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/AppMain.vue (94%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Navbar.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Settings/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Sidebar/FixiOSBug.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Sidebar/Item.vue (94%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Sidebar/Link.vue (93%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Sidebar/Logo.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Sidebar/SidebarItem.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/Sidebar/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/TagsView/ScrollPane.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/TagsView/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/global.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/components/index.js (98%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/layout/mixin/ResizeHandler.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/main.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/permission.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/router/index.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/settings.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/store/getters.js (97%) rename {ruoyi-ui => yudao-admin-ui}/src/store/index.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/store/modules/app.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/store/modules/dict.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/store/modules/permission.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/store/modules/settings.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/store/modules/tagsView.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/store/modules/user.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/auth.js (94%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/constants.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/dict.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/errorCode.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/config.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/css.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/drawingDefalut.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/html.js (97%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/icon.json (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/js.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/generator/render.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/index.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/jsencrypt.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/permission.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/request.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/ruoyi.js (100%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/scroll-to.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/utils/validate.js (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/components/icons/element-icons.js (99%) rename {ruoyi-ui => yudao-admin-ui}/src/views/components/icons/index.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/components/icons/svg-icons.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/dashboard/BarChart.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/dashboard/LineChart.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/dashboard/PanelGroup.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/dashboard/PieChart.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/dashboard/RaddarChart.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/dashboard/mixins/resize.js (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/error/401.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/error/404.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/index_old.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/apiAccessLog/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/apiErrorLog/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/config/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/druid/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/file/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/job/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/job/log.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/redis/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/server/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/skywalking/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/infra/skywalking/log.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/login.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/redirect.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/dept/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/dict/data.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/dict/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/errorCode/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/loginlog/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/menu/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/notice/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/operatelog/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/post/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/role/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/session/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/sms/smsChannel.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/sms/smsLog.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/sms/smsTemplate.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/user/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/user/profile/index.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/user/profile/resetPwd.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/user/profile/userAvatar.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/system/user/profile/userInfo.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/build/CodeTypeDialog.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/build/DraggableItem.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/build/IconsDialog.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/build/RightPanel.vue (97%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/build/TreeNodeDialog.vue (95%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/build/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/codegen/basicInfoForm.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/codegen/editTable.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/codegen/genInfoForm.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/codegen/importTable.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/codegen/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/dbDoc/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/swagger/index.vue (96%) rename {ruoyi-ui => yudao-admin-ui}/src/views/tool/testDemo/index.vue (100%) rename {ruoyi-ui => yudao-admin-ui}/vue.config.js (97%) diff --git a/pom.xml b/pom.xml index d1a3e1291..4836de07f 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,7 @@ 1.8 ${java.version} ${java.version} + 3.0.0-M5 @@ -38,6 +39,20 @@ + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + diff --git a/yudao-admin-server/pom.xml b/yudao-admin-server/pom.xml index 8c09991c4..dc30b5234 100644 --- a/yudao-admin-server/pom.xml +++ b/yudao-admin-server/pom.xml @@ -68,17 +68,6 @@ - - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M5 - - - org.apache.maven.plugins - maven-failsafe-plugin - 3.0.0-M5 - diff --git a/ruoyi-ui/.editorconfig b/yudao-admin-ui/.editorconfig similarity index 95% rename from ruoyi-ui/.editorconfig rename to yudao-admin-ui/.editorconfig index 22d302ecd..7034f9bf3 100644 --- a/ruoyi-ui/.editorconfig +++ b/yudao-admin-ui/.editorconfig @@ -1,22 +1,22 @@ -# 告诉EditorConfig插件,这是根文件,不用继续往上查找 -root = true - -# 匹配全部文件 -[*] -# 设置字符集 -charset = utf-8 -# 缩进风格,可选space、tab -indent_style = space -# 缩进的空格数 -indent_size = 2 -# 结尾换行符,可选lf、cr、crlf -end_of_line = lf -# 在文件结尾插入新行 -insert_final_newline = true -# 删除一行中的前后空格 -trim_trailing_whitespace = true - -# 匹配md结尾的文件 -[*.md] -insert_final_newline = false -trim_trailing_whitespace = false +# 告诉EditorConfig插件,这是根文件,不用继续往上查找 +root = true + +# 匹配全部文件 +[*] +# 设置字符集 +charset = utf-8 +# 缩进风格,可选space、tab +indent_style = space +# 缩进的空格数 +indent_size = 2 +# 结尾换行符,可选lf、cr、crlf +end_of_line = lf +# 在文件结尾插入新行 +insert_final_newline = true +# 删除一行中的前后空格 +trim_trailing_whitespace = true + +# 匹配md结尾的文件 +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/ruoyi-ui/.env.demo1024 b/yudao-admin-ui/.env.demo1024 similarity index 100% rename from ruoyi-ui/.env.demo1024 rename to yudao-admin-ui/.env.demo1024 diff --git a/ruoyi-ui/.env.development b/yudao-admin-ui/.env.development similarity index 95% rename from ruoyi-ui/.env.development rename to yudao-admin-ui/.env.development index cbe5fa5a8..8c1875f52 100644 --- a/ruoyi-ui/.env.development +++ b/yudao-admin-ui/.env.development @@ -1,9 +1,9 @@ -# 开发环境配置 -ENV = 'development' - -# 芋道管理系统/开发环境 -VUE_APP_BASE_API = '/dev-api' -# VUE_APP_BASE_API = '/api' - -# 路由懒加载 -VUE_CLI_BABEL_TRANSPILE_MODULES = true +# 开发环境配置 +ENV = 'development' + +# 芋道管理系统/开发环境 +VUE_APP_BASE_API = '/dev-api' +# VUE_APP_BASE_API = '/api' + +# 路由懒加载 +VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/ruoyi-ui/.env.production b/yudao-admin-ui/.env.production similarity index 95% rename from ruoyi-ui/.env.production rename to yudao-admin-ui/.env.production index fbae57919..e00052eb6 100644 --- a/ruoyi-ui/.env.production +++ b/yudao-admin-ui/.env.production @@ -1,5 +1,5 @@ -# 生产环境配置 -ENV = 'production' - -# 芋道管理系统/生产环境 -VUE_APP_BASE_API = '/prod-api' +# 生产环境配置 +ENV = 'production' + +# 芋道管理系统/生产环境 +VUE_APP_BASE_API = '/prod-api' diff --git a/ruoyi-ui/.env.staging b/yudao-admin-ui/.env.staging similarity index 95% rename from ruoyi-ui/.env.staging rename to yudao-admin-ui/.env.staging index c475bc491..2e83e2225 100644 --- a/ruoyi-ui/.env.staging +++ b/yudao-admin-ui/.env.staging @@ -1,10 +1,10 @@ -NODE_ENV = production - -# 测试环境配置 -ENV = 'staging' - -# 芋道管理系统/测试环境 -VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' - -# 静态资源地址 -PUBLIC_PATH = 'http://static.yudao.iocoder.cn/' +NODE_ENV = production + +# 测试环境配置 +ENV = 'staging' + +# 芋道管理系统/测试环境 +VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' + +# 静态资源地址 +PUBLIC_PATH = 'http://static.yudao.iocoder.cn/' diff --git a/ruoyi-ui/.eslintignore b/yudao-admin-ui/.eslintignore similarity index 97% rename from ruoyi-ui/.eslintignore rename to yudao-admin-ui/.eslintignore index 7dd2c2a85..89be6f659 100644 --- a/ruoyi-ui/.eslintignore +++ b/yudao-admin-ui/.eslintignore @@ -1,10 +1,10 @@ -# 忽略build目录下类型为js的文件的语法检查 -build/*.js -# 忽略src/assets目录下文件的语法检查 -src/assets -# 忽略public目录下文件的语法检查 -public -# 忽略当前目录下为js的文件的语法检查 -*.js -# 忽略当前目录下为vue的文件的语法检查 +# 忽略build目录下类型为js的文件的语法检查 +build/*.js +# 忽略src/assets目录下文件的语法检查 +src/assets +# 忽略public目录下文件的语法检查 +public +# 忽略当前目录下为js的文件的语法检查 +*.js +# 忽略当前目录下为vue的文件的语法检查 *.vue \ No newline at end of file diff --git a/ruoyi-ui/.eslintrc.js b/yudao-admin-ui/.eslintrc.js similarity index 96% rename from ruoyi-ui/.eslintrc.js rename to yudao-admin-ui/.eslintrc.js index b321fbe4f..82bbdeea6 100644 --- a/ruoyi-ui/.eslintrc.js +++ b/yudao-admin-ui/.eslintrc.js @@ -1,199 +1,199 @@ -// ESlint 检查配置 -module.exports = { - root: true, - parserOptions: { - parser: 'babel-eslint', - sourceType: 'module' - }, - env: { - browser: true, - node: true, - es6: true, - }, - extends: ['plugin:vue/recommended', 'eslint:recommended'], - - // add your custom rules here - //it is base on https://github.com/vuejs/eslint-config-vue - rules: { - "vue/max-attributes-per-line": [2, { - "singleline": 10, - "multiline": { - "max": 1, - "allowFirstLine": false - } - }], - "vue/singleline-html-element-content-newline": "off", - "vue/multiline-html-element-content-newline":"off", - "vue/name-property-casing": ["error", "PascalCase"], - "vue/no-v-html": "off", - 'accessor-pairs': 2, - 'arrow-spacing': [2, { - 'before': true, - 'after': true - }], - 'block-spacing': [2, 'always'], - 'brace-style': [2, '1tbs', { - 'allowSingleLine': true - }], - 'camelcase': [0, { - 'properties': 'always' - }], - 'comma-dangle': [2, 'never'], - 'comma-spacing': [2, { - 'before': false, - 'after': true - }], - 'comma-style': [2, 'last'], - 'constructor-super': 2, - 'curly': [2, 'multi-line'], - 'dot-location': [2, 'property'], - 'eol-last': 2, - 'eqeqeq': ["error", "always", {"null": "ignore"}], - 'generator-star-spacing': [2, { - 'before': true, - 'after': true - }], - 'handle-callback-err': [2, '^(err|error)$'], - 'indent': [2, 2, { - 'SwitchCase': 1 - }], - 'jsx-quotes': [2, 'prefer-single'], - 'key-spacing': [2, { - 'beforeColon': false, - 'afterColon': true - }], - 'keyword-spacing': [2, { - 'before': true, - 'after': true - }], - 'new-cap': [2, { - 'newIsCap': true, - 'capIsNew': false - }], - 'new-parens': 2, - 'no-array-constructor': 2, - 'no-caller': 2, - 'no-console': 'off', - 'no-class-assign': 2, - 'no-cond-assign': 2, - 'no-const-assign': 2, - 'no-control-regex': 0, - 'no-delete-var': 2, - 'no-dupe-args': 2, - 'no-dupe-class-members': 2, - 'no-dupe-keys': 2, - 'no-duplicate-case': 2, - 'no-empty-character-class': 2, - 'no-empty-pattern': 2, - 'no-eval': 2, - 'no-ex-assign': 2, - 'no-extend-native': 2, - 'no-extra-bind': 2, - 'no-extra-boolean-cast': 2, - 'no-extra-parens': [2, 'functions'], - 'no-fallthrough': 2, - 'no-floating-decimal': 2, - 'no-func-assign': 2, - 'no-implied-eval': 2, - 'no-inner-declarations': [2, 'functions'], - 'no-invalid-regexp': 2, - 'no-irregular-whitespace': 2, - 'no-iterator': 2, - 'no-label-var': 2, - 'no-labels': [2, { - 'allowLoop': false, - 'allowSwitch': false - }], - 'no-lone-blocks': 2, - 'no-mixed-spaces-and-tabs': 2, - 'no-multi-spaces': 2, - 'no-multi-str': 2, - 'no-multiple-empty-lines': [2, { - 'max': 1 - }], - 'no-native-reassign': 2, - 'no-negated-in-lhs': 2, - 'no-new-object': 2, - 'no-new-require': 2, - 'no-new-symbol': 2, - 'no-new-wrappers': 2, - 'no-obj-calls': 2, - 'no-octal': 2, - 'no-octal-escape': 2, - 'no-path-concat': 2, - 'no-proto': 2, - 'no-redeclare': 2, - 'no-regex-spaces': 2, - 'no-return-assign': [2, 'except-parens'], - 'no-self-assign': 2, - 'no-self-compare': 2, - 'no-sequences': 2, - 'no-shadow-restricted-names': 2, - 'no-spaced-func': 2, - 'no-sparse-arrays': 2, - 'no-this-before-super': 2, - 'no-throw-literal': 2, - 'no-trailing-spaces': 2, - 'no-undef': 2, - 'no-undef-init': 2, - 'no-unexpected-multiline': 2, - 'no-unmodified-loop-condition': 2, - 'no-unneeded-ternary': [2, { - 'defaultAssignment': false - }], - 'no-unreachable': 2, - 'no-unsafe-finally': 2, - 'no-unused-vars': [2, { - 'vars': 'all', - 'args': 'none' - }], - 'no-useless-call': 2, - 'no-useless-computed-key': 2, - 'no-useless-constructor': 2, - 'no-useless-escape': 0, - 'no-whitespace-before-property': 2, - 'no-with': 2, - 'one-var': [2, { - 'initialized': 'never' - }], - 'operator-linebreak': [2, 'after', { - 'overrides': { - '?': 'before', - ':': 'before' - } - }], - 'padded-blocks': [2, 'never'], - 'quotes': [2, 'single', { - 'avoidEscape': true, - 'allowTemplateLiterals': true - }], - 'semi': [2, 'never'], - 'semi-spacing': [2, { - 'before': false, - 'after': true - }], - 'space-before-blocks': [2, 'always'], - 'space-before-function-paren': [2, 'never'], - 'space-in-parens': [2, 'never'], - 'space-infix-ops': 2, - 'space-unary-ops': [2, { - 'words': true, - 'nonwords': false - }], - 'spaced-comment': [2, 'always', { - 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] - }], - 'template-curly-spacing': [2, 'never'], - 'use-isnan': 2, - 'valid-typeof': 2, - 'wrap-iife': [2, 'any'], - 'yield-star-spacing': [2, 'both'], - 'yoda': [2, 'never'], - 'prefer-const': 2, - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'object-curly-spacing': [2, 'always', { - objectsInObjects: false - }], - 'array-bracket-spacing': [2, 'never'] - } -} +// ESlint 检查配置 +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + // add your custom rules here + //it is base on https://github.com/vuejs/eslint-config-vue + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline":"off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", {"null": "ignore"}], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/ruoyi-ui/.gitignore b/yudao-admin-ui/.gitignore similarity index 91% rename from ruoyi-ui/.gitignore rename to yudao-admin-ui/.gitignore index 2c9b3a73f..78a752d87 100644 --- a/ruoyi-ui/.gitignore +++ b/yudao-admin-ui/.gitignore @@ -1,23 +1,23 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log* -yarn-debug.log* -yarn-error.log* -**/*.log - -tests/**/coverage/ -tests/e2e/reports -selenium-debug.log - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.local - -package-lock.json -yarn.lock +.DS_Store +node_modules/ +dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +**/*.log + +tests/**/coverage/ +tests/e2e/reports +selenium-debug.log + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.local + +package-lock.json +yarn.lock diff --git a/ruoyi-ui/babel.config.js b/yudao-admin-ui/babel.config.js similarity index 97% rename from ruoyi-ui/babel.config.js rename to yudao-admin-ui/babel.config.js index b732c91fc..b99f00148 100644 --- a/ruoyi-ui/babel.config.js +++ b/yudao-admin-ui/babel.config.js @@ -1,13 +1,13 @@ -module.exports = { - presets: [ - // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app - '@vue/cli-plugin-babel/preset' - ], - 'env': { - 'development': { - // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). - // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. - 'plugins': ['dynamic-import-node'] - } - } -} +module.exports = { + presets: [ + // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app + '@vue/cli-plugin-babel/preset' + ], + 'env': { + 'development': { + // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). + // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. + 'plugins': ['dynamic-import-node'] + } + } +} diff --git a/ruoyi-ui/bin/build.bat b/yudao-admin-ui/bin/build.bat similarity index 100% rename from ruoyi-ui/bin/build.bat rename to yudao-admin-ui/bin/build.bat diff --git a/ruoyi-ui/bin/package.bat b/yudao-admin-ui/bin/package.bat similarity index 93% rename from ruoyi-ui/bin/package.bat rename to yudao-admin-ui/bin/package.bat index 5d9fca586..82817497e 100644 --- a/ruoyi-ui/bin/package.bat +++ b/yudao-admin-ui/bin/package.bat @@ -1,12 +1,12 @@ -@echo off -echo. -echo [Ϣ] װWeḅnode_modulesļ -echo. - -%~d0 -cd %~dp0 - -cd .. -npm install --registry=https://registry.npm.taobao.org - +@echo off +echo. +echo [Ϣ] װWeḅnode_modulesļ +echo. + +%~d0 +cd %~dp0 + +cd .. +npm install --registry=https://registry.npm.taobao.org + pause \ No newline at end of file diff --git a/ruoyi-ui/bin/run-web.bat b/yudao-admin-ui/bin/run-web.bat similarity index 90% rename from ruoyi-ui/bin/run-web.bat rename to yudao-admin-ui/bin/run-web.bat index a69628096..a938e8921 100644 --- a/ruoyi-ui/bin/run-web.bat +++ b/yudao-admin-ui/bin/run-web.bat @@ -1,12 +1,12 @@ -@echo off -echo. -echo [Ϣ] ʹ Vue Web ̡ -echo. - -%~d0 -cd %~dp0 - -cd .. -npm run dev - +@echo off +echo. +echo [Ϣ] ʹ Vue Web ̡ +echo. + +%~d0 +cd %~dp0 + +cd .. +npm run dev + pause \ No newline at end of file diff --git a/ruoyi-ui/build/index.js b/yudao-admin-ui/build/index.js similarity index 96% rename from ruoyi-ui/build/index.js rename to yudao-admin-ui/build/index.js index 385da08e5..0c57de2aa 100644 --- a/ruoyi-ui/build/index.js +++ b/yudao-admin-ui/build/index.js @@ -1,35 +1,35 @@ -const { run } = require('runjs') -const chalk = require('chalk') -const config = require('../vue.config.js') -const rawArgv = process.argv.slice(2) -const args = rawArgv.join(' ') - -if (process.env.npm_config_preview || rawArgv.includes('--preview')) { - const report = rawArgv.includes('--report') - - run(`vue-cli-service build ${args}`) - - const port = 9526 - const publicPath = config.publicPath - - var connect = require('connect') - var serveStatic = require('serve-static') - const app = connect() - - app.use( - publicPath, - serveStatic('./dist', { - index: ['index.html', '/'] - }) - ) - - app.listen(port, function () { - console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) - if (report) { - console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) - } - - }) -} else { - run(`vue-cli-service build ${args}`) -} +const { run } = require('runjs') +const chalk = require('chalk') +const config = require('../vue.config.js') +const rawArgv = process.argv.slice(2) +const args = rawArgv.join(' ') + +if (process.env.npm_config_preview || rawArgv.includes('--preview')) { + const report = rawArgv.includes('--report') + + run(`vue-cli-service build ${args}`) + + const port = 9526 + const publicPath = config.publicPath + + var connect = require('connect') + var serveStatic = require('serve-static') + const app = connect() + + app.use( + publicPath, + serveStatic('./dist', { + index: ['index.html', '/'] + }) + ) + + app.listen(port, function () { + console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) + if (report) { + console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) + } + + }) +} else { + run(`vue-cli-service build ${args}`) +} diff --git a/ruoyi-ui/package.json b/yudao-admin-ui/package.json similarity index 95% rename from ruoyi-ui/package.json rename to yudao-admin-ui/package.json index 1249d16b3..3acd6dbaf 100644 --- a/ruoyi-ui/package.json +++ b/yudao-admin-ui/package.json @@ -1,88 +1,88 @@ -{ - "name": "ruoyi", - "version": "3.3.0", - "description": "芋道管理系统", - "author": "芋道", - "license": "MIT", - "scripts": { - "dev": "vue-cli-service serve", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", - "build:demo1024": "vue-cli-service build --mode demo1024", - "preview": "node build/index.js --preview", - "lint": "eslint --ext .js,.vue src" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "src/**/*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "vue", - "admin", - "dashboard", - "element-ui", - "boilerplate", - "admin-template", - "management-system" - ], - "repository": { - "type": "git", - "url": "https://github.com/YunaiV/ruoyi-vue-pro" - }, - "dependencies": { - "@riophae/vue-treeselect": "0.4.0", - "axios": "0.21.0", - "clipboard": "2.0.6", - "core-js": "3.8.1", - "echarts": "4.9.0", - "element-ui": "2.15.0", - "file-saver": "2.0.4", - "fuse.js": "6.4.3", - "highlight.js": "9.18.5", - "js-beautify": "1.13.0", - "js-cookie": "2.2.1", - "jsencrypt": "3.0.0-rc.1", - "nprogress": "0.2.0", - "quill": "1.3.7", - "screenfull": "5.0.2", - "sortablejs": "1.10.2", - "vue": "2.6.12", - "vue-count-to": "1.0.13", - "vue-cropper": "0.5.5", - "vue-router": "3.4.9", - "vuedraggable": "2.24.3", - "vuex": "3.6.0" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "4.4.6", - "@vue/cli-plugin-eslint": "4.4.6", - "@vue/cli-service": "4.4.6", - "babel-eslint": "10.1.0", - "chalk": "4.1.0", - "connect": "3.6.6", - "eslint": "7.15.0", - "eslint-plugin-vue": "7.2.0", - "lint-staged": "10.5.3", - "sass": "1.30.0", - "runjs": "4.4.2", - "sass-loader": "10.1.0", - "script-ext-html-webpack-plugin": "2.1.5", - "svg-sprite-loader": "5.1.1", - "vue-template-compiler": "2.6.12" - }, - "engines": { - "node": ">=8.9", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] -} +{ + "name": "ruoyi", + "version": "3.3.0", + "description": "芋道管理系统", + "author": "芋道", + "license": "MIT", + "scripts": { + "dev": "vue-cli-service serve", + "build:prod": "vue-cli-service build", + "build:stage": "vue-cli-service build --mode staging", + "build:demo1024": "vue-cli-service build --mode demo1024", + "preview": "node build/index.js --preview", + "lint": "eslint --ext .js,.vue src" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "src/**/*.{js,vue}": [ + "eslint --fix", + "git add" + ] + }, + "keywords": [ + "vue", + "admin", + "dashboard", + "element-ui", + "boilerplate", + "admin-template", + "management-system" + ], + "repository": { + "type": "git", + "url": "https://github.com/YunaiV/ruoyi-vue-pro" + }, + "dependencies": { + "@riophae/vue-treeselect": "0.4.0", + "axios": "0.21.0", + "clipboard": "2.0.6", + "core-js": "3.8.1", + "echarts": "4.9.0", + "element-ui": "2.15.0", + "file-saver": "2.0.4", + "fuse.js": "6.4.3", + "highlight.js": "9.18.5", + "js-beautify": "1.13.0", + "js-cookie": "2.2.1", + "jsencrypt": "3.0.0-rc.1", + "nprogress": "0.2.0", + "quill": "1.3.7", + "screenfull": "5.0.2", + "sortablejs": "1.10.2", + "vue": "2.6.12", + "vue-count-to": "1.0.13", + "vue-cropper": "0.5.5", + "vue-router": "3.4.9", + "vuedraggable": "2.24.3", + "vuex": "3.6.0" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "4.4.6", + "@vue/cli-plugin-eslint": "4.4.6", + "@vue/cli-service": "4.4.6", + "babel-eslint": "10.1.0", + "chalk": "4.1.0", + "connect": "3.6.6", + "eslint": "7.15.0", + "eslint-plugin-vue": "7.2.0", + "lint-staged": "10.5.3", + "sass": "1.30.0", + "runjs": "4.4.2", + "sass-loader": "10.1.0", + "script-ext-html-webpack-plugin": "2.1.5", + "svg-sprite-loader": "5.1.1", + "vue-template-compiler": "2.6.12" + }, + "engines": { + "node": ">=8.9", + "npm": ">= 3.0.0" + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/ruoyi-ui/public/favicon.ico b/yudao-admin-ui/public/favicon.ico similarity index 100% rename from ruoyi-ui/public/favicon.ico rename to yudao-admin-ui/public/favicon.ico diff --git a/ruoyi-ui/public/index.html b/yudao-admin-ui/public/index.html similarity index 96% rename from ruoyi-ui/public/index.html rename to yudao-admin-ui/public/index.html index 525e2acd6..6d64bf957 100644 --- a/ruoyi-ui/public/index.html +++ b/yudao-admin-ui/public/index.html @@ -1,207 +1,207 @@ - - - - - - - - - <%= webpackConfig.name %> - - - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- - + + + + + + + + + <%= webpackConfig.name %> + + + +
+
+
+
+
+
正在加载系统资源,请耐心等待
+
+
+ + diff --git a/ruoyi-ui/public/robots.txt b/yudao-admin-ui/public/robots.txt similarity index 96% rename from ruoyi-ui/public/robots.txt rename to yudao-admin-ui/public/robots.txt index c2aab7e03..77470cb39 100644 --- a/ruoyi-ui/public/robots.txt +++ b/yudao-admin-ui/public/robots.txt @@ -1,2 +1,2 @@ -User-agent: * +User-agent: * Disallow: / \ No newline at end of file diff --git a/ruoyi-ui/src/App.vue b/yudao-admin-ui/src/App.vue similarity index 91% rename from ruoyi-ui/src/App.vue rename to yudao-admin-ui/src/App.vue index 1d0634c32..e448b1130 100644 --- a/ruoyi-ui/src/App.vue +++ b/yudao-admin-ui/src/App.vue @@ -1,11 +1,11 @@ - - - + + + diff --git a/ruoyi-ui/src/api/infra/apiAccessLog.js b/yudao-admin-ui/src/api/infra/apiAccessLog.js similarity index 100% rename from ruoyi-ui/src/api/infra/apiAccessLog.js rename to yudao-admin-ui/src/api/infra/apiAccessLog.js diff --git a/ruoyi-ui/src/api/infra/apiErrorLog.js b/yudao-admin-ui/src/api/infra/apiErrorLog.js similarity index 100% rename from ruoyi-ui/src/api/infra/apiErrorLog.js rename to yudao-admin-ui/src/api/infra/apiErrorLog.js diff --git a/ruoyi-ui/src/api/infra/config.js b/yudao-admin-ui/src/api/infra/config.js similarity index 100% rename from ruoyi-ui/src/api/infra/config.js rename to yudao-admin-ui/src/api/infra/config.js diff --git a/ruoyi-ui/src/api/infra/dbDoc.js b/yudao-admin-ui/src/api/infra/dbDoc.js similarity index 100% rename from ruoyi-ui/src/api/infra/dbDoc.js rename to yudao-admin-ui/src/api/infra/dbDoc.js diff --git a/ruoyi-ui/src/api/infra/file.js b/yudao-admin-ui/src/api/infra/file.js similarity index 100% rename from ruoyi-ui/src/api/infra/file.js rename to yudao-admin-ui/src/api/infra/file.js diff --git a/ruoyi-ui/src/api/infra/job.js b/yudao-admin-ui/src/api/infra/job.js similarity index 100% rename from ruoyi-ui/src/api/infra/job.js rename to yudao-admin-ui/src/api/infra/job.js diff --git a/ruoyi-ui/src/api/infra/jobLog.js b/yudao-admin-ui/src/api/infra/jobLog.js similarity index 100% rename from ruoyi-ui/src/api/infra/jobLog.js rename to yudao-admin-ui/src/api/infra/jobLog.js diff --git a/ruoyi-ui/src/api/infra/redis.js b/yudao-admin-ui/src/api/infra/redis.js similarity index 100% rename from ruoyi-ui/src/api/infra/redis.js rename to yudao-admin-ui/src/api/infra/redis.js diff --git a/ruoyi-ui/src/api/login.js b/yudao-admin-ui/src/api/login.js similarity index 94% rename from ruoyi-ui/src/api/login.js rename to yudao-admin-ui/src/api/login.js index 274cc2726..cda0d9d23 100644 --- a/ruoyi-ui/src/api/login.js +++ b/yudao-admin-ui/src/api/login.js @@ -1,40 +1,40 @@ -import request from '@/utils/request' - -// 登录方法 -export function login(username, password, code, uuid) { - const data = { - username, - password, - code, - uuid - } - return request({ - url: '/login', - method: 'post', - data: data - }) -} - -// 获取用户详细信息 -export function getInfo() { - return request({ - url: '/get-permission-info', - method: 'get' - }) -} - -// 退出方法 -export function logout() { - return request({ - url: '/logout', - method: 'post' - }) -} - -// 获取验证码 -export function getCodeImg() { - return request({ - url: '/system/captcha/get-image', - method: 'get' - }) -} +import request from '@/utils/request' + +// 登录方法 +export function login(username, password, code, uuid) { + const data = { + username, + password, + code, + uuid + } + return request({ + url: '/login', + method: 'post', + data: data + }) +} + +// 获取用户详细信息 +export function getInfo() { + return request({ + url: '/get-permission-info', + method: 'get' + }) +} + +// 退出方法 +export function logout() { + return request({ + url: '/logout', + method: 'post' + }) +} + +// 获取验证码 +export function getCodeImg() { + return request({ + url: '/system/captcha/get-image', + method: 'get' + }) +} diff --git a/ruoyi-ui/src/api/menu.js b/yudao-admin-ui/src/api/menu.js similarity index 94% rename from ruoyi-ui/src/api/menu.js rename to yudao-admin-ui/src/api/menu.js index 5dae14e7a..01fbbc9f4 100644 --- a/ruoyi-ui/src/api/menu.js +++ b/yudao-admin-ui/src/api/menu.js @@ -1,9 +1,9 @@ -import request from '@/utils/request' - -// 获取路由 -export const getRouters = () => { - return request({ - url: '/list-menus', - method: 'get' - }) -} +import request from '@/utils/request' + +// 获取路由 +export const getRouters = () => { + return request({ + url: '/list-menus', + method: 'get' + }) +} diff --git a/ruoyi-ui/src/api/system/dept.js b/yudao-admin-ui/src/api/system/dept.js similarity index 94% rename from ruoyi-ui/src/api/system/dept.js rename to yudao-admin-ui/src/api/system/dept.js index d8c59cf9a..4ca13e36b 100644 --- a/ruoyi-ui/src/api/system/dept.js +++ b/yudao-admin-ui/src/api/system/dept.js @@ -1,60 +1,60 @@ -import request from '@/utils/request' - -// 查询部门列表 -export function listDept(query) { - return request({ - url: '/system/dept/list', - method: 'get', - params: query - }) -} - -// 查询部门列表(排除节点) -export function listDeptExcludeChild(deptId) { - return request({ - url: '/system/dept/list/exclude/' + deptId, - method: 'get' - }) -} - -// 查询部门详细 -export function getDept(deptId) { - return request({ - url: '/system/dept/get?id=' + deptId, - method: 'get' - }) -} - -// 获取部门精简信息列表 -export function listSimpleDepts() { - return request({ - url: '/system/dept/list-all-simple', - method: 'get' - }) -} - -// 新增部门 -export function addDept(data) { - return request({ - url: '/system/dept/create', - method: 'post', - data: data - }) -} - -// 修改部门 -export function updateDept(data) { - return request({ - url: '/system/dept/update', - method: 'put', - data: data - }) -} - -// 删除部门 -export function delDept(id) { - return request({ - url: '/system/dept/delete?id=' + id, - method: 'delete' - }) -} +import request from '@/utils/request' + +// 查询部门列表 +export function listDept(query) { + return request({ + url: '/system/dept/list', + method: 'get', + params: query + }) +} + +// 查询部门列表(排除节点) +export function listDeptExcludeChild(deptId) { + return request({ + url: '/system/dept/list/exclude/' + deptId, + method: 'get' + }) +} + +// 查询部门详细 +export function getDept(deptId) { + return request({ + url: '/system/dept/get?id=' + deptId, + method: 'get' + }) +} + +// 获取部门精简信息列表 +export function listSimpleDepts() { + return request({ + url: '/system/dept/list-all-simple', + method: 'get' + }) +} + +// 新增部门 +export function addDept(data) { + return request({ + url: '/system/dept/create', + method: 'post', + data: data + }) +} + +// 修改部门 +export function updateDept(data) { + return request({ + url: '/system/dept/update', + method: 'put', + data: data + }) +} + +// 删除部门 +export function delDept(id) { + return request({ + url: '/system/dept/delete?id=' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/system/dict/data.js b/yudao-admin-ui/src/api/system/dict/data.js similarity index 95% rename from ruoyi-ui/src/api/system/dict/data.js rename to yudao-admin-ui/src/api/system/dict/data.js index 00e614b15..396ea759a 100644 --- a/ruoyi-ui/src/api/system/dict/data.js +++ b/yudao-admin-ui/src/api/system/dict/data.js @@ -1,70 +1,70 @@ -import request from '@/utils/request' - -// 查询字典数据列表 -export function listData(query) { - return request({ - url: '/system/dict-data/page', - method: 'get', - params: query - }) -} - -// 查询字典数据详细 -export function getData(dictCode) { - return request({ - url: '/system/dict-data/get?id=' + dictCode, - method: 'get' - }) -} - -// 根据字典类型查询字典数据信息 -export function getDicts(dictType) { - return request({ - url: '/system/dict-data/type/' + dictType, - method: 'get' - }) -} - -// 新增字典数据 -export function addData(data) { - return request({ - url: '/system/dict-data/create', - method: 'post', - data: data - }) -} - -// 修改字典数据 -export function updateData(data) { - return request({ - url: '/system/dict-data/update', - method: 'put', - data: data - }) -} - -// 删除字典数据 -export function delData(dictCode) { - return request({ - url: '/system/dict-data/delete?id=' + dictCode, - method: 'delete' - }) -} - -// 导出字典数据 -export function exportData(query) { - return request({ - url: '/system/dict-data/export', - method: 'get', - params: query, - responseType: 'blob' - }) -} - -// 查询全部字典数据列表 -export function listSimpleDictDatas() { - return request({ - url: '/system/dict-data/list-all-simple', - method: 'get', - }) -} +import request from '@/utils/request' + +// 查询字典数据列表 +export function listData(query) { + return request({ + url: '/system/dict-data/page', + method: 'get', + params: query + }) +} + +// 查询字典数据详细 +export function getData(dictCode) { + return request({ + url: '/system/dict-data/get?id=' + dictCode, + method: 'get' + }) +} + +// 根据字典类型查询字典数据信息 +export function getDicts(dictType) { + return request({ + url: '/system/dict-data/type/' + dictType, + method: 'get' + }) +} + +// 新增字典数据 +export function addData(data) { + return request({ + url: '/system/dict-data/create', + method: 'post', + data: data + }) +} + +// 修改字典数据 +export function updateData(data) { + return request({ + url: '/system/dict-data/update', + method: 'put', + data: data + }) +} + +// 删除字典数据 +export function delData(dictCode) { + return request({ + url: '/system/dict-data/delete?id=' + dictCode, + method: 'delete' + }) +} + +// 导出字典数据 +export function exportData(query) { + return request({ + url: '/system/dict-data/export', + method: 'get', + params: query, + responseType: 'blob' + }) +} + +// 查询全部字典数据列表 +export function listSimpleDictDatas() { + return request({ + url: '/system/dict-data/list-all-simple', + method: 'get', + }) +} diff --git a/ruoyi-ui/src/api/system/dict/type.js b/yudao-admin-ui/src/api/system/dict/type.js similarity index 94% rename from ruoyi-ui/src/api/system/dict/type.js rename to yudao-admin-ui/src/api/system/dict/type.js index 9fe10d418..659f70239 100644 --- a/ruoyi-ui/src/api/system/dict/type.js +++ b/yudao-admin-ui/src/api/system/dict/type.js @@ -1,62 +1,62 @@ -import request from '@/utils/request' - -// 查询字典类型列表 -export function listType(query) { - return request({ - url: '/system/dict-type/page', - method: 'get', - params: query - }) -} - -// 查询字典类型详细 -export function getType(dictId) { - return request({ - url: '/system/dict-type/get?id=' + dictId, - method: 'get' - }) -} - -// 新增字典类型 -export function addType(data) { - return request({ - url: '/system/dict-type/create', - method: 'post', - data: data - }) -} - -// 修改字典类型 -export function updateType(data) { - return request({ - url: '/system/dict-type/update', - method: 'put', - data: data - }) -} - -// 删除字典类型 -export function delType(dictId) { - return request({ - url: '/system/dict-type/delete?id=' + dictId, - method: 'delete' - }) -} - -// 导出字典类型 -export function exportType(query) { - return request({ - url: '/system/dict-type/export', - method: 'get', - params: query, - responseType: 'blob' - }) -} - -// 获取字典选择框列表 -export function listAllSimple() { - return request({ - url: '/system/dict-type/list-all-simple', - method: 'get' - }) -} +import request from '@/utils/request' + +// 查询字典类型列表 +export function listType(query) { + return request({ + url: '/system/dict-type/page', + method: 'get', + params: query + }) +} + +// 查询字典类型详细 +export function getType(dictId) { + return request({ + url: '/system/dict-type/get?id=' + dictId, + method: 'get' + }) +} + +// 新增字典类型 +export function addType(data) { + return request({ + url: '/system/dict-type/create', + method: 'post', + data: data + }) +} + +// 修改字典类型 +export function updateType(data) { + return request({ + url: '/system/dict-type/update', + method: 'put', + data: data + }) +} + +// 删除字典类型 +export function delType(dictId) { + return request({ + url: '/system/dict-type/delete?id=' + dictId, + method: 'delete' + }) +} + +// 导出字典类型 +export function exportType(query) { + return request({ + url: '/system/dict-type/export', + method: 'get', + params: query, + responseType: 'blob' + }) +} + +// 获取字典选择框列表 +export function listAllSimple() { + return request({ + url: '/system/dict-type/list-all-simple', + method: 'get' + }) +} diff --git a/ruoyi-ui/src/api/system/errorCode.js b/yudao-admin-ui/src/api/system/errorCode.js similarity index 100% rename from ruoyi-ui/src/api/system/errorCode.js rename to yudao-admin-ui/src/api/system/errorCode.js diff --git a/ruoyi-ui/src/api/system/loginlog.js b/yudao-admin-ui/src/api/system/loginlog.js similarity index 100% rename from ruoyi-ui/src/api/system/loginlog.js rename to yudao-admin-ui/src/api/system/loginlog.js diff --git a/ruoyi-ui/src/api/system/menu.js b/yudao-admin-ui/src/api/system/menu.js similarity index 100% rename from ruoyi-ui/src/api/system/menu.js rename to yudao-admin-ui/src/api/system/menu.js diff --git a/ruoyi-ui/src/api/system/notice.js b/yudao-admin-ui/src/api/system/notice.js similarity index 94% rename from ruoyi-ui/src/api/system/notice.js rename to yudao-admin-ui/src/api/system/notice.js index b8c7cf709..2e0c05dcb 100644 --- a/ruoyi-ui/src/api/system/notice.js +++ b/yudao-admin-ui/src/api/system/notice.js @@ -1,44 +1,44 @@ -import request from '@/utils/request' - -// 查询公告列表 -export function listNotice(query) { - return request({ - url: '/system/notice/page', - method: 'get', - params: query - }) -} - -// 查询公告详细 -export function getNotice(noticeId) { - return request({ - url: '/system/notice/get?id=' + noticeId, - method: 'get' - }) -} - -// 新增公告 -export function addNotice(data) { - return request({ - url: '/system/notice/create', - method: 'post', - data: data - }) -} - -// 修改公告 -export function updateNotice(data) { - return request({ - url: '/system/notice/update', - method: 'put', - data: data - }) -} - -// 删除公告 -export function delNotice(noticeId) { - return request({ - url: '/system/notice/delete?id=' + noticeId, - method: 'delete' - }) -} +import request from '@/utils/request' + +// 查询公告列表 +export function listNotice(query) { + return request({ + url: '/system/notice/page', + method: 'get', + params: query + }) +} + +// 查询公告详细 +export function getNotice(noticeId) { + return request({ + url: '/system/notice/get?id=' + noticeId, + method: 'get' + }) +} + +// 新增公告 +export function addNotice(data) { + return request({ + url: '/system/notice/create', + method: 'post', + data: data + }) +} + +// 修改公告 +export function updateNotice(data) { + return request({ + url: '/system/notice/update', + method: 'put', + data: data + }) +} + +// 删除公告 +export function delNotice(noticeId) { + return request({ + url: '/system/notice/delete?id=' + noticeId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/system/operatelog.js b/yudao-admin-ui/src/api/system/operatelog.js similarity index 100% rename from ruoyi-ui/src/api/system/operatelog.js rename to yudao-admin-ui/src/api/system/operatelog.js diff --git a/ruoyi-ui/src/api/system/permission.js b/yudao-admin-ui/src/api/system/permission.js similarity index 100% rename from ruoyi-ui/src/api/system/permission.js rename to yudao-admin-ui/src/api/system/permission.js diff --git a/ruoyi-ui/src/api/system/post.js b/yudao-admin-ui/src/api/system/post.js similarity index 94% rename from ruoyi-ui/src/api/system/post.js rename to yudao-admin-ui/src/api/system/post.js index 3ef4a9906..df74d3fed 100644 --- a/ruoyi-ui/src/api/system/post.js +++ b/yudao-admin-ui/src/api/system/post.js @@ -1,62 +1,62 @@ -import request from '@/utils/request' - -// 查询岗位列表 -export function listPost(query) { - return request({ - url: '/system/post/page', - method: 'get', - params: query - }) -} - -// 获取岗位精简信息列表 -export function listSimplePosts() { - return request({ - url: '/system/post/list-all-simple', - method: 'get' - }) -} - -// 查询岗位详细 -export function getPost(postId) { - return request({ - url: '/system/post/get?id=' + postId, - method: 'get' - }) -} - -// 新增岗位 -export function addPost(data) { - return request({ - url: '/system/post/create', - method: 'post', - data: data - }) -} - -// 修改岗位 -export function updatePost(data) { - return request({ - url: '/system/post/update', - method: 'put', - data: data - }) -} - -// 删除岗位 -export function delPost(postId) { - return request({ - url: '/system/post/delete?id=' + postId, - method: 'delete' - }) -} - -// 导出岗位 -export function exportPost(query) { - return request({ - url: '/system/post/export', - method: 'get', - params: query, - responseType: 'blob' - }) -} +import request from '@/utils/request' + +// 查询岗位列表 +export function listPost(query) { + return request({ + url: '/system/post/page', + method: 'get', + params: query + }) +} + +// 获取岗位精简信息列表 +export function listSimplePosts() { + return request({ + url: '/system/post/list-all-simple', + method: 'get' + }) +} + +// 查询岗位详细 +export function getPost(postId) { + return request({ + url: '/system/post/get?id=' + postId, + method: 'get' + }) +} + +// 新增岗位 +export function addPost(data) { + return request({ + url: '/system/post/create', + method: 'post', + data: data + }) +} + +// 修改岗位 +export function updatePost(data) { + return request({ + url: '/system/post/update', + method: 'put', + data: data + }) +} + +// 删除岗位 +export function delPost(postId) { + return request({ + url: '/system/post/delete?id=' + postId, + method: 'delete' + }) +} + +// 导出岗位 +export function exportPost(query) { + return request({ + url: '/system/post/export', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/ruoyi-ui/src/api/system/role.js b/yudao-admin-ui/src/api/system/role.js similarity index 94% rename from ruoyi-ui/src/api/system/role.js rename to yudao-admin-ui/src/api/system/role.js index 27bb0500b..05d2a59fb 100644 --- a/ruoyi-ui/src/api/system/role.js +++ b/yudao-admin-ui/src/api/system/role.js @@ -1,75 +1,75 @@ -import request from '@/utils/request' - -// 查询角色列表 -export function listRole(query) { - return request({ - url: '/system/role/page', - method: 'get', - params: query - }) -} - -// 查询角色(精简)列表 -export function listSimpleRoles() { - return request({ - url: '/system/role/list-all-simple', - method: 'get' - }) -} - -// 查询角色详细 -export function getRole(roleId) { - return request({ - url: '/system/role/get?id=' + roleId, - method: 'get' - }) -} - -// 新增角色 -export function addRole(data) { - return request({ - url: '/system/role/create', - method: 'post', - data: data - }) -} - -// 修改角色 -export function updateRole(data) { - return request({ - url: '/system/role/update', - method: 'put', - data: data - }) -} - -// 角色状态修改 -export function changeRoleStatus(id, status) { - const data = { - id, - status - } - return request({ - url: '/system/role/update-status', - method: 'put', - data: data - }) -} - -// 删除角色 -export function delRole(roleId) { - return request({ - url: '/system/role/delete?id=' + roleId, - method: 'delete' - }) -} - -// 导出角色 -export function exportRole(query) { - return request({ - url: '/system/role/export', - method: 'get', - params: query, - responseType: 'blob' - }) -} +import request from '@/utils/request' + +// 查询角色列表 +export function listRole(query) { + return request({ + url: '/system/role/page', + method: 'get', + params: query + }) +} + +// 查询角色(精简)列表 +export function listSimpleRoles() { + return request({ + url: '/system/role/list-all-simple', + method: 'get' + }) +} + +// 查询角色详细 +export function getRole(roleId) { + return request({ + url: '/system/role/get?id=' + roleId, + method: 'get' + }) +} + +// 新增角色 +export function addRole(data) { + return request({ + url: '/system/role/create', + method: 'post', + data: data + }) +} + +// 修改角色 +export function updateRole(data) { + return request({ + url: '/system/role/update', + method: 'put', + data: data + }) +} + +// 角色状态修改 +export function changeRoleStatus(id, status) { + const data = { + id, + status + } + return request({ + url: '/system/role/update-status', + method: 'put', + data: data + }) +} + +// 删除角色 +export function delRole(roleId) { + return request({ + url: '/system/role/delete?id=' + roleId, + method: 'delete' + }) +} + +// 导出角色 +export function exportRole(query) { + return request({ + url: '/system/role/export', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/ruoyi-ui/src/api/system/session.js b/yudao-admin-ui/src/api/system/session.js similarity index 100% rename from ruoyi-ui/src/api/system/session.js rename to yudao-admin-ui/src/api/system/session.js diff --git a/ruoyi-ui/src/api/system/sms/smsChannel.js b/yudao-admin-ui/src/api/system/sms/smsChannel.js similarity index 100% rename from ruoyi-ui/src/api/system/sms/smsChannel.js rename to yudao-admin-ui/src/api/system/sms/smsChannel.js diff --git a/ruoyi-ui/src/api/system/sms/smsLog.js b/yudao-admin-ui/src/api/system/sms/smsLog.js similarity index 100% rename from ruoyi-ui/src/api/system/sms/smsLog.js rename to yudao-admin-ui/src/api/system/sms/smsLog.js diff --git a/ruoyi-ui/src/api/system/sms/smsTemplate.js b/yudao-admin-ui/src/api/system/sms/smsTemplate.js similarity index 100% rename from ruoyi-ui/src/api/system/sms/smsTemplate.js rename to yudao-admin-ui/src/api/system/sms/smsTemplate.js diff --git a/ruoyi-ui/src/api/system/user.js b/yudao-admin-ui/src/api/system/user.js similarity index 94% rename from ruoyi-ui/src/api/system/user.js rename to yudao-admin-ui/src/api/system/user.js index cf0f007d5..e06530c92 100644 --- a/ruoyi-ui/src/api/system/user.js +++ b/yudao-admin-ui/src/api/system/user.js @@ -1,129 +1,129 @@ -import request from '@/utils/request' -import { praseStrEmpty } from "@/utils/ruoyi"; - -// 查询用户列表 -export function listUser(query) { - return request({ - url: '/system/user/page', - method: 'get', - params: query - }) -} - -// 查询用户详细 -export function getUser(userId) { - return request({ - url: '/system/user/get?id=' + praseStrEmpty(userId), - method: 'get' - }) -} - -// 新增用户 -export function addUser(data) { - return request({ - url: '/system/user/create', - method: 'post', - data: data - }) -} - -// 修改用户 -export function updateUser(data) { - return request({ - url: '/system/user/update', - method: 'put', - data: data - }) -} - -// 删除用户 -export function delUser(userId) { - return request({ - url: '/system/user/delete?id=' + userId, - method: 'delete' - }) -} - -// 导出用户 -export function exportUser(query) { - return request({ - url: '/system/user/export', - method: 'get', - params: query, - responseType: 'blob' - }) -} - -// 用户密码重置 -export function resetUserPwd(id, password) { - const data = { - id, - password - } - return request({ - url: '/system/user/update-password', - method: 'put', - data: data - }) -} - -// 用户状态修改 -export function changeUserStatus(id, status) { - const data = { - id, - status - } - return request({ - url: '/system/user/update-status', - method: 'put', - data: data - }) -} - -// 查询用户个人信息 -export function getUserProfile() { - return request({ - url: '/system/user/profile/get', - method: 'get' - }) -} - -// 修改用户个人信息 -export function updateUserProfile(data) { - return request({ - url: '/system/user/profile/update', - method: 'put', - data: data - }) -} - -// 用户密码重置 -export function updateUserPwd(oldPassword, newPassword) { - const data = { - oldPassword, - newPassword - } - return request({ - url: '/system/user/profile/update-password', - method: 'put', - data: data - }) -} - -// 用户头像上传 -export function uploadAvatar(data) { - return request({ - url: '/system/user/profile/avatar', - method: 'put', - data: data - }) -} - -// 下载用户导入模板 -export function importTemplate() { - return request({ - url: '/system/user/get-import-template', - method: 'get', - responseType: 'blob' - }) -} +import request from '@/utils/request' +import { praseStrEmpty } from "@/utils/ruoyi"; + +// 查询用户列表 +export function listUser(query) { + return request({ + url: '/system/user/page', + method: 'get', + params: query + }) +} + +// 查询用户详细 +export function getUser(userId) { + return request({ + url: '/system/user/get?id=' + praseStrEmpty(userId), + method: 'get' + }) +} + +// 新增用户 +export function addUser(data) { + return request({ + url: '/system/user/create', + method: 'post', + data: data + }) +} + +// 修改用户 +export function updateUser(data) { + return request({ + url: '/system/user/update', + method: 'put', + data: data + }) +} + +// 删除用户 +export function delUser(userId) { + return request({ + url: '/system/user/delete?id=' + userId, + method: 'delete' + }) +} + +// 导出用户 +export function exportUser(query) { + return request({ + url: '/system/user/export', + method: 'get', + params: query, + responseType: 'blob' + }) +} + +// 用户密码重置 +export function resetUserPwd(id, password) { + const data = { + id, + password + } + return request({ + url: '/system/user/update-password', + method: 'put', + data: data + }) +} + +// 用户状态修改 +export function changeUserStatus(id, status) { + const data = { + id, + status + } + return request({ + url: '/system/user/update-status', + method: 'put', + data: data + }) +} + +// 查询用户个人信息 +export function getUserProfile() { + return request({ + url: '/system/user/profile/get', + method: 'get' + }) +} + +// 修改用户个人信息 +export function updateUserProfile(data) { + return request({ + url: '/system/user/profile/update', + method: 'put', + data: data + }) +} + +// 用户密码重置 +export function updateUserPwd(oldPassword, newPassword) { + const data = { + oldPassword, + newPassword + } + return request({ + url: '/system/user/profile/update-password', + method: 'put', + data: data + }) +} + +// 用户头像上传 +export function uploadAvatar(data) { + return request({ + url: '/system/user/profile/avatar', + method: 'put', + data: data + }) +} + +// 下载用户导入模板 +export function importTemplate() { + return request({ + url: '/system/user/get-import-template', + method: 'get', + responseType: 'blob' + }) +} diff --git a/ruoyi-ui/src/api/tool/codegen.js b/yudao-admin-ui/src/api/tool/codegen.js similarity index 100% rename from ruoyi-ui/src/api/tool/codegen.js rename to yudao-admin-ui/src/api/tool/codegen.js diff --git a/ruoyi-ui/src/api/tool/testDemo.js b/yudao-admin-ui/src/api/tool/testDemo.js similarity index 100% rename from ruoyi-ui/src/api/tool/testDemo.js rename to yudao-admin-ui/src/api/tool/testDemo.js diff --git a/ruoyi-ui/src/assets/401_images/401.gif b/yudao-admin-ui/src/assets/401_images/401.gif similarity index 100% rename from ruoyi-ui/src/assets/401_images/401.gif rename to yudao-admin-ui/src/assets/401_images/401.gif diff --git a/ruoyi-ui/src/assets/404_images/404.png b/yudao-admin-ui/src/assets/404_images/404.png similarity index 100% rename from ruoyi-ui/src/assets/404_images/404.png rename to yudao-admin-ui/src/assets/404_images/404.png diff --git a/ruoyi-ui/src/assets/404_images/404_cloud.png b/yudao-admin-ui/src/assets/404_images/404_cloud.png similarity index 100% rename from ruoyi-ui/src/assets/404_images/404_cloud.png rename to yudao-admin-ui/src/assets/404_images/404_cloud.png diff --git a/ruoyi-ui/src/assets/icons/index.js b/yudao-admin-ui/src/assets/icons/index.js similarity index 96% rename from ruoyi-ui/src/assets/icons/index.js rename to yudao-admin-ui/src/assets/icons/index.js index d79e16464..2c6b309c9 100644 --- a/ruoyi-ui/src/assets/icons/index.js +++ b/yudao-admin-ui/src/assets/icons/index.js @@ -1,9 +1,9 @@ -import Vue from 'vue' -import SvgIcon from '@/components/SvgIcon'// svg component - -// register globally -Vue.component('svg-icon', SvgIcon) - -const req = require.context('./svg', false, /\.svg$/) -const requireAll = requireContext => requireContext.keys().map(requireContext) -requireAll(req) +import Vue from 'vue' +import SvgIcon from '@/components/SvgIcon'// svg component + +// register globally +Vue.component('svg-icon', SvgIcon) + +const req = require.context('./svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys().map(requireContext) +requireAll(req) diff --git a/ruoyi-ui/src/assets/icons/svg/404.svg b/yudao-admin-ui/src/assets/icons/svg/404.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/404.svg rename to yudao-admin-ui/src/assets/icons/svg/404.svg diff --git a/ruoyi-ui/src/assets/icons/svg/bug.svg b/yudao-admin-ui/src/assets/icons/svg/bug.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/bug.svg rename to yudao-admin-ui/src/assets/icons/svg/bug.svg diff --git a/ruoyi-ui/src/assets/icons/svg/build.svg b/yudao-admin-ui/src/assets/icons/svg/build.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/build.svg rename to yudao-admin-ui/src/assets/icons/svg/build.svg diff --git a/ruoyi-ui/src/assets/icons/svg/button.svg b/yudao-admin-ui/src/assets/icons/svg/button.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/button.svg rename to yudao-admin-ui/src/assets/icons/svg/button.svg diff --git a/ruoyi-ui/src/assets/icons/svg/cascader.svg b/yudao-admin-ui/src/assets/icons/svg/cascader.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/cascader.svg rename to yudao-admin-ui/src/assets/icons/svg/cascader.svg diff --git a/ruoyi-ui/src/assets/icons/svg/chart.svg b/yudao-admin-ui/src/assets/icons/svg/chart.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/chart.svg rename to yudao-admin-ui/src/assets/icons/svg/chart.svg diff --git a/ruoyi-ui/src/assets/icons/svg/checkbox.svg b/yudao-admin-ui/src/assets/icons/svg/checkbox.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/checkbox.svg rename to yudao-admin-ui/src/assets/icons/svg/checkbox.svg diff --git a/ruoyi-ui/src/assets/icons/svg/clipboard.svg b/yudao-admin-ui/src/assets/icons/svg/clipboard.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/clipboard.svg rename to yudao-admin-ui/src/assets/icons/svg/clipboard.svg diff --git a/ruoyi-ui/src/assets/icons/svg/code.svg b/yudao-admin-ui/src/assets/icons/svg/code.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/code.svg rename to yudao-admin-ui/src/assets/icons/svg/code.svg diff --git a/ruoyi-ui/src/assets/icons/svg/color.svg b/yudao-admin-ui/src/assets/icons/svg/color.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/color.svg rename to yudao-admin-ui/src/assets/icons/svg/color.svg diff --git a/ruoyi-ui/src/assets/icons/svg/component.svg b/yudao-admin-ui/src/assets/icons/svg/component.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/component.svg rename to yudao-admin-ui/src/assets/icons/svg/component.svg diff --git a/ruoyi-ui/src/assets/icons/svg/dashboard.svg b/yudao-admin-ui/src/assets/icons/svg/dashboard.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/dashboard.svg rename to yudao-admin-ui/src/assets/icons/svg/dashboard.svg diff --git a/ruoyi-ui/src/assets/icons/svg/date-range.svg b/yudao-admin-ui/src/assets/icons/svg/date-range.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/date-range.svg rename to yudao-admin-ui/src/assets/icons/svg/date-range.svg diff --git a/ruoyi-ui/src/assets/icons/svg/date.svg b/yudao-admin-ui/src/assets/icons/svg/date.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/date.svg rename to yudao-admin-ui/src/assets/icons/svg/date.svg diff --git a/ruoyi-ui/src/assets/icons/svg/dict.svg b/yudao-admin-ui/src/assets/icons/svg/dict.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/dict.svg rename to yudao-admin-ui/src/assets/icons/svg/dict.svg diff --git a/ruoyi-ui/src/assets/icons/svg/documentation.svg b/yudao-admin-ui/src/assets/icons/svg/documentation.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/documentation.svg rename to yudao-admin-ui/src/assets/icons/svg/documentation.svg diff --git a/ruoyi-ui/src/assets/icons/svg/download.svg b/yudao-admin-ui/src/assets/icons/svg/download.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/download.svg rename to yudao-admin-ui/src/assets/icons/svg/download.svg diff --git a/ruoyi-ui/src/assets/icons/svg/drag.svg b/yudao-admin-ui/src/assets/icons/svg/drag.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/drag.svg rename to yudao-admin-ui/src/assets/icons/svg/drag.svg diff --git a/ruoyi-ui/src/assets/icons/svg/druid.svg b/yudao-admin-ui/src/assets/icons/svg/druid.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/druid.svg rename to yudao-admin-ui/src/assets/icons/svg/druid.svg diff --git a/ruoyi-ui/src/assets/icons/svg/edit.svg b/yudao-admin-ui/src/assets/icons/svg/edit.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/edit.svg rename to yudao-admin-ui/src/assets/icons/svg/edit.svg diff --git a/ruoyi-ui/src/assets/icons/svg/education.svg b/yudao-admin-ui/src/assets/icons/svg/education.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/education.svg rename to yudao-admin-ui/src/assets/icons/svg/education.svg diff --git a/ruoyi-ui/src/assets/icons/svg/email.svg b/yudao-admin-ui/src/assets/icons/svg/email.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/email.svg rename to yudao-admin-ui/src/assets/icons/svg/email.svg diff --git a/ruoyi-ui/src/assets/icons/svg/example.svg b/yudao-admin-ui/src/assets/icons/svg/example.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/example.svg rename to yudao-admin-ui/src/assets/icons/svg/example.svg diff --git a/ruoyi-ui/src/assets/icons/svg/excel.svg b/yudao-admin-ui/src/assets/icons/svg/excel.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/excel.svg rename to yudao-admin-ui/src/assets/icons/svg/excel.svg diff --git a/ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg b/yudao-admin-ui/src/assets/icons/svg/exit-fullscreen.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg rename to yudao-admin-ui/src/assets/icons/svg/exit-fullscreen.svg diff --git a/ruoyi-ui/src/assets/icons/svg/eye-open.svg b/yudao-admin-ui/src/assets/icons/svg/eye-open.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/eye-open.svg rename to yudao-admin-ui/src/assets/icons/svg/eye-open.svg diff --git a/ruoyi-ui/src/assets/icons/svg/eye.svg b/yudao-admin-ui/src/assets/icons/svg/eye.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/eye.svg rename to yudao-admin-ui/src/assets/icons/svg/eye.svg diff --git a/ruoyi-ui/src/assets/icons/svg/form.svg b/yudao-admin-ui/src/assets/icons/svg/form.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/form.svg rename to yudao-admin-ui/src/assets/icons/svg/form.svg diff --git a/ruoyi-ui/src/assets/icons/svg/fullscreen.svg b/yudao-admin-ui/src/assets/icons/svg/fullscreen.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/fullscreen.svg rename to yudao-admin-ui/src/assets/icons/svg/fullscreen.svg diff --git a/ruoyi-ui/src/assets/icons/svg/github.svg b/yudao-admin-ui/src/assets/icons/svg/github.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/github.svg rename to yudao-admin-ui/src/assets/icons/svg/github.svg diff --git a/ruoyi-ui/src/assets/icons/svg/guide.svg b/yudao-admin-ui/src/assets/icons/svg/guide.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/guide.svg rename to yudao-admin-ui/src/assets/icons/svg/guide.svg diff --git a/ruoyi-ui/src/assets/icons/svg/icon.svg b/yudao-admin-ui/src/assets/icons/svg/icon.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/icon.svg rename to yudao-admin-ui/src/assets/icons/svg/icon.svg diff --git a/ruoyi-ui/src/assets/icons/svg/input.svg b/yudao-admin-ui/src/assets/icons/svg/input.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/input.svg rename to yudao-admin-ui/src/assets/icons/svg/input.svg diff --git a/ruoyi-ui/src/assets/icons/svg/international.svg b/yudao-admin-ui/src/assets/icons/svg/international.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/international.svg rename to yudao-admin-ui/src/assets/icons/svg/international.svg diff --git a/ruoyi-ui/src/assets/icons/svg/job.svg b/yudao-admin-ui/src/assets/icons/svg/job.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/job.svg rename to yudao-admin-ui/src/assets/icons/svg/job.svg diff --git a/ruoyi-ui/src/assets/icons/svg/language.svg b/yudao-admin-ui/src/assets/icons/svg/language.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/language.svg rename to yudao-admin-ui/src/assets/icons/svg/language.svg diff --git a/ruoyi-ui/src/assets/icons/svg/link.svg b/yudao-admin-ui/src/assets/icons/svg/link.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/link.svg rename to yudao-admin-ui/src/assets/icons/svg/link.svg diff --git a/ruoyi-ui/src/assets/icons/svg/list.svg b/yudao-admin-ui/src/assets/icons/svg/list.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/list.svg rename to yudao-admin-ui/src/assets/icons/svg/list.svg diff --git a/ruoyi-ui/src/assets/icons/svg/lock.svg b/yudao-admin-ui/src/assets/icons/svg/lock.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/lock.svg rename to yudao-admin-ui/src/assets/icons/svg/lock.svg diff --git a/ruoyi-ui/src/assets/icons/svg/log.svg b/yudao-admin-ui/src/assets/icons/svg/log.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/log.svg rename to yudao-admin-ui/src/assets/icons/svg/log.svg diff --git a/ruoyi-ui/src/assets/icons/svg/logininfor.svg b/yudao-admin-ui/src/assets/icons/svg/logininfor.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/logininfor.svg rename to yudao-admin-ui/src/assets/icons/svg/logininfor.svg diff --git a/ruoyi-ui/src/assets/icons/svg/message.svg b/yudao-admin-ui/src/assets/icons/svg/message.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/message.svg rename to yudao-admin-ui/src/assets/icons/svg/message.svg diff --git a/ruoyi-ui/src/assets/icons/svg/money.svg b/yudao-admin-ui/src/assets/icons/svg/money.svg similarity index 100% rename from ruoyi-ui/src/assets/icons/svg/money.svg rename to yudao-admin-ui/src/assets/icons/svg/money.svg diff --git a/ruoyi-ui/src/assets/icons/svg/monitor.svg b/yudao-admin-ui/src/assets/icons/svg/monitor.svg similarity index 99% rename from ruoyi-ui/src/assets/icons/svg/monitor.svg rename to yudao-admin-ui/src/assets/icons/svg/monitor.svg index 70db62b45..bc308cb0f 100644 --- a/ruoyi-ui/src/assets/icons/svg/monitor.svg +++ b/yudao-admin-ui/src/assets/icons/svg/monitor.svg @@ -1,2 +1,2 @@ -{{ item.meta.title }} - {{ item.meta.title }} - - - - - - - - + + + + + diff --git a/ruoyi-ui/src/components/Editor/index.vue b/yudao-admin-ui/src/components/Editor/index.vue similarity index 96% rename from ruoyi-ui/src/components/Editor/index.vue rename to yudao-admin-ui/src/components/Editor/index.vue index 905499536..ad35bbf5d 100644 --- a/ruoyi-ui/src/components/Editor/index.vue +++ b/yudao-admin-ui/src/components/Editor/index.vue @@ -1,195 +1,195 @@ - - - - - \ No newline at end of file diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/yudao-admin-ui/src/components/FileUpload/index.vue similarity index 100% rename from ruoyi-ui/src/components/FileUpload/index.vue rename to yudao-admin-ui/src/components/FileUpload/index.vue diff --git a/ruoyi-ui/src/components/Hamburger/index.vue b/yudao-admin-ui/src/components/Hamburger/index.vue similarity index 96% rename from ruoyi-ui/src/components/Hamburger/index.vue rename to yudao-admin-ui/src/components/Hamburger/index.vue index c6a4359be..368b00215 100644 --- a/ruoyi-ui/src/components/Hamburger/index.vue +++ b/yudao-admin-ui/src/components/Hamburger/index.vue @@ -1,44 +1,44 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/yudao-admin-ui/src/components/HeaderSearch/index.vue similarity index 95% rename from ruoyi-ui/src/components/HeaderSearch/index.vue rename to yudao-admin-ui/src/components/HeaderSearch/index.vue index b2533f395..67f6c309a 100644 --- a/ruoyi-ui/src/components/HeaderSearch/index.vue +++ b/yudao-admin-ui/src/components/HeaderSearch/index.vue @@ -1,188 +1,188 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/IconSelect/index.vue b/yudao-admin-ui/src/components/IconSelect/index.vue similarity index 95% rename from ruoyi-ui/src/components/IconSelect/index.vue rename to yudao-admin-ui/src/components/IconSelect/index.vue index a7512b2d6..b0ec9fa1a 100644 --- a/ruoyi-ui/src/components/IconSelect/index.vue +++ b/yudao-admin-ui/src/components/IconSelect/index.vue @@ -1,68 +1,68 @@ - - - - - - + + + + + + diff --git a/ruoyi-ui/src/components/IconSelect/requireIcons.js b/yudao-admin-ui/src/components/IconSelect/requireIcons.js similarity index 95% rename from ruoyi-ui/src/components/IconSelect/requireIcons.js rename to yudao-admin-ui/src/components/IconSelect/requireIcons.js index 5d3005df5..99e5c54cc 100644 --- a/ruoyi-ui/src/components/IconSelect/requireIcons.js +++ b/yudao-admin-ui/src/components/IconSelect/requireIcons.js @@ -1,11 +1,11 @@ - -const req = require.context('../../assets/icons/svg', false, /\.svg$/) -const requireAll = requireContext => requireContext.keys() - -const re = /\.\/(.*)\.svg/ - -const icons = requireAll(req).map(i => { - return i.match(re)[1] -}) - -export default icons + +const req = require.context('../../assets/icons/svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys() + +const re = /\.\/(.*)\.svg/ + +const icons = requireAll(req).map(i => { + return i.match(re)[1] +}) + +export default icons diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/yudao-admin-ui/src/components/ImageUpload/index.vue similarity index 100% rename from ruoyi-ui/src/components/ImageUpload/index.vue rename to yudao-admin-ui/src/components/ImageUpload/index.vue diff --git a/ruoyi-ui/src/components/Pagination/index.vue b/yudao-admin-ui/src/components/Pagination/index.vue similarity index 94% rename from ruoyi-ui/src/components/Pagination/index.vue rename to yudao-admin-ui/src/components/Pagination/index.vue index 08ff09046..c815e132c 100644 --- a/ruoyi-ui/src/components/Pagination/index.vue +++ b/yudao-admin-ui/src/components/Pagination/index.vue @@ -1,101 +1,101 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/PanThumb/index.vue b/yudao-admin-ui/src/components/PanThumb/index.vue similarity index 95% rename from ruoyi-ui/src/components/PanThumb/index.vue rename to yudao-admin-ui/src/components/PanThumb/index.vue index 796b01b89..1bcf41709 100644 --- a/ruoyi-ui/src/components/PanThumb/index.vue +++ b/yudao-admin-ui/src/components/PanThumb/index.vue @@ -1,142 +1,142 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/ParentView/index.vue b/yudao-admin-ui/src/components/ParentView/index.vue similarity index 100% rename from ruoyi-ui/src/components/ParentView/index.vue rename to yudao-admin-ui/src/components/ParentView/index.vue diff --git a/ruoyi-ui/src/components/RightPanel/index.vue b/yudao-admin-ui/src/components/RightPanel/index.vue similarity index 95% rename from ruoyi-ui/src/components/RightPanel/index.vue rename to yudao-admin-ui/src/components/RightPanel/index.vue index 1534b9bee..fbf27eb4f 100644 --- a/ruoyi-ui/src/components/RightPanel/index.vue +++ b/yudao-admin-ui/src/components/RightPanel/index.vue @@ -1,149 +1,149 @@ - - - - - - - + + + + + + + diff --git a/ruoyi-ui/src/components/RightToolbar/index.vue b/yudao-admin-ui/src/components/RightToolbar/index.vue similarity index 95% rename from ruoyi-ui/src/components/RightToolbar/index.vue rename to yudao-admin-ui/src/components/RightToolbar/index.vue index 73d2dccea..494c0b85e 100644 --- a/ruoyi-ui/src/components/RightToolbar/index.vue +++ b/yudao-admin-ui/src/components/RightToolbar/index.vue @@ -1,38 +1,38 @@ - - - + + + diff --git a/ruoyi-ui/src/components/RuoYi/Doc/index.vue b/yudao-admin-ui/src/components/RuoYi/Doc/index.vue similarity index 93% rename from ruoyi-ui/src/components/RuoYi/Doc/index.vue rename to yudao-admin-ui/src/components/RuoYi/Doc/index.vue index 1cba295aa..92ee3776c 100644 --- a/ruoyi-ui/src/components/RuoYi/Doc/index.vue +++ b/yudao-admin-ui/src/components/RuoYi/Doc/index.vue @@ -1,21 +1,21 @@ - - - + + + diff --git a/ruoyi-ui/src/components/RuoYi/Git/index.vue b/yudao-admin-ui/src/components/RuoYi/Git/index.vue similarity index 93% rename from ruoyi-ui/src/components/RuoYi/Git/index.vue rename to yudao-admin-ui/src/components/RuoYi/Git/index.vue index 1d1cdfa75..b0d15f01d 100644 --- a/ruoyi-ui/src/components/RuoYi/Git/index.vue +++ b/yudao-admin-ui/src/components/RuoYi/Git/index.vue @@ -1,21 +1,21 @@ - - - + + + diff --git a/ruoyi-ui/src/components/Screenfull/index.vue b/yudao-admin-ui/src/components/Screenfull/index.vue similarity index 94% rename from ruoyi-ui/src/components/Screenfull/index.vue rename to yudao-admin-ui/src/components/Screenfull/index.vue index 85937c9c3..d4e539c26 100644 --- a/ruoyi-ui/src/components/Screenfull/index.vue +++ b/yudao-admin-ui/src/components/Screenfull/index.vue @@ -1,57 +1,57 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/SizeSelect/index.vue b/yudao-admin-ui/src/components/SizeSelect/index.vue similarity index 95% rename from ruoyi-ui/src/components/SizeSelect/index.vue rename to yudao-admin-ui/src/components/SizeSelect/index.vue index 5503b9712..e88065b49 100644 --- a/ruoyi-ui/src/components/SizeSelect/index.vue +++ b/yudao-admin-ui/src/components/SizeSelect/index.vue @@ -1,57 +1,57 @@ - - - + + + diff --git a/ruoyi-ui/src/components/SvgIcon/index.vue b/yudao-admin-ui/src/components/SvgIcon/index.vue similarity index 95% rename from ruoyi-ui/src/components/SvgIcon/index.vue rename to yudao-admin-ui/src/components/SvgIcon/index.vue index 340ace45c..e4bf5ade1 100644 --- a/ruoyi-ui/src/components/SvgIcon/index.vue +++ b/yudao-admin-ui/src/components/SvgIcon/index.vue @@ -1,61 +1,61 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/ThemePicker/index.vue b/yudao-admin-ui/src/components/ThemePicker/index.vue similarity index 96% rename from ruoyi-ui/src/components/ThemePicker/index.vue rename to yudao-admin-ui/src/components/ThemePicker/index.vue index 9a77cd343..3879c5ad0 100644 --- a/ruoyi-ui/src/components/ThemePicker/index.vue +++ b/yudao-admin-ui/src/components/ThemePicker/index.vue @@ -1,175 +1,175 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/components/UploadImage/index.vue b/yudao-admin-ui/src/components/UploadImage/index.vue similarity index 95% rename from ruoyi-ui/src/components/UploadImage/index.vue rename to yudao-admin-ui/src/components/UploadImage/index.vue index 3941006a2..87b3ee94f 100644 --- a/ruoyi-ui/src/components/UploadImage/index.vue +++ b/yudao-admin-ui/src/components/UploadImage/index.vue @@ -1,68 +1,68 @@ - - - - - \ No newline at end of file diff --git a/ruoyi-ui/src/directive/permission/hasPermi.js b/yudao-admin-ui/src/directive/permission/hasPermi.js similarity index 96% rename from ruoyi-ui/src/directive/permission/hasPermi.js rename to yudao-admin-ui/src/directive/permission/hasPermi.js index 74f9d325d..d7107cec0 100644 --- a/ruoyi-ui/src/directive/permission/hasPermi.js +++ b/yudao-admin-ui/src/directive/permission/hasPermi.js @@ -1,28 +1,28 @@ - /** - * 操作权限处理 - * Copyright (c) 2019 ruoyi - */ - -import store from '@/store' - -export default { - inserted(el, binding, vnode) { - const { value } = binding - const all_permission = "*:*:*"; - const permissions = store.getters && store.getters.permissions - - if (value && value instanceof Array && value.length > 0) { - const permissionFlag = value - - const hasPermissions = permissions.some(permission => { - return all_permission === permission || permissionFlag.includes(permission) - }) - - if (!hasPermissions) { - el.parentNode && el.parentNode.removeChild(el) - } - } else { - throw new Error(`请设置操作权限标签值`) - } - } -} + /** + * 操作权限处理 + * Copyright (c) 2019 ruoyi + */ + +import store from '@/store' + +export default { + inserted(el, binding, vnode) { + const { value } = binding + const all_permission = "*:*:*"; + const permissions = store.getters && store.getters.permissions + + if (value && value instanceof Array && value.length > 0) { + const permissionFlag = value + + const hasPermissions = permissions.some(permission => { + return all_permission === permission || permissionFlag.includes(permission) + }) + + if (!hasPermissions) { + el.parentNode && el.parentNode.removeChild(el) + } + } else { + throw new Error(`请设置操作权限标签值`) + } + } +} diff --git a/ruoyi-ui/src/directive/permission/hasRole.js b/yudao-admin-ui/src/directive/permission/hasRole.js similarity index 95% rename from ruoyi-ui/src/directive/permission/hasRole.js rename to yudao-admin-ui/src/directive/permission/hasRole.js index ea966a34a..13038099d 100644 --- a/ruoyi-ui/src/directive/permission/hasRole.js +++ b/yudao-admin-ui/src/directive/permission/hasRole.js @@ -1,28 +1,28 @@ - /** - * 角色权限处理 - * Copyright (c) 2019 ruoyi - */ - -import store from '@/store' - -export default { - inserted(el, binding, vnode) { - const { value } = binding - const super_admin = "admin"; - const roles = store.getters && store.getters.roles - - if (value && value instanceof Array && value.length > 0) { - const roleFlag = value - - const hasRole = roles.some(role => { - return super_admin === role || roleFlag.includes(role) - }) - - if (!hasRole) { - el.parentNode && el.parentNode.removeChild(el) - } - } else { - throw new Error(`请设置角色权限标签值"`) - } - } -} + /** + * 角色权限处理 + * Copyright (c) 2019 ruoyi + */ + +import store from '@/store' + +export default { + inserted(el, binding, vnode) { + const { value } = binding + const super_admin = "admin"; + const roles = store.getters && store.getters.roles + + if (value && value instanceof Array && value.length > 0) { + const roleFlag = value + + const hasRole = roles.some(role => { + return super_admin === role || roleFlag.includes(role) + }) + + if (!hasRole) { + el.parentNode && el.parentNode.removeChild(el) + } + } else { + throw new Error(`请设置角色权限标签值"`) + } + } +} diff --git a/ruoyi-ui/src/directive/permission/index.js b/yudao-admin-ui/src/directive/permission/index.js similarity index 95% rename from ruoyi-ui/src/directive/permission/index.js rename to yudao-admin-ui/src/directive/permission/index.js index d6f530de1..e3d76d387 100644 --- a/ruoyi-ui/src/directive/permission/index.js +++ b/yudao-admin-ui/src/directive/permission/index.js @@ -1,15 +1,15 @@ -import hasRole from './hasRole' -import hasPermi from './hasPermi' - -const install = function(Vue) { - Vue.directive('hasRole', hasRole) - Vue.directive('hasPermi', hasPermi) -} - -if (window.Vue) { - window['hasRole'] = hasRole - window['hasPermi'] = hasPermi - Vue.use(install); // eslint-disable-line -} - -export default install +import hasRole from './hasRole' +import hasPermi from './hasPermi' + +const install = function(Vue) { + Vue.directive('hasRole', hasRole) + Vue.directive('hasPermi', hasPermi) +} + +if (window.Vue) { + window['hasRole'] = hasRole + window['hasPermi'] = hasPermi + Vue.use(install); // eslint-disable-line +} + +export default install diff --git a/ruoyi-ui/src/layout/components/AppMain.vue b/yudao-admin-ui/src/layout/components/AppMain.vue similarity index 94% rename from ruoyi-ui/src/layout/components/AppMain.vue rename to yudao-admin-ui/src/layout/components/AppMain.vue index 423437b72..a89763806 100644 --- a/ruoyi-ui/src/layout/components/AppMain.vue +++ b/yudao-admin-ui/src/layout/components/AppMain.vue @@ -1,57 +1,57 @@ - - - - - - - + + + + + + + diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/yudao-admin-ui/src/layout/components/Navbar.vue similarity index 96% rename from ruoyi-ui/src/layout/components/Navbar.vue rename to yudao-admin-ui/src/layout/components/Navbar.vue index db46ec556..b11460a37 100644 --- a/ruoyi-ui/src/layout/components/Navbar.vue +++ b/yudao-admin-ui/src/layout/components/Navbar.vue @@ -1,187 +1,187 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/layout/components/Settings/index.vue b/yudao-admin-ui/src/layout/components/Settings/index.vue similarity index 96% rename from ruoyi-ui/src/layout/components/Settings/index.vue rename to yudao-admin-ui/src/layout/components/Settings/index.vue index 7e495b7b0..9d42790a6 100644 --- a/ruoyi-ui/src/layout/components/Settings/index.vue +++ b/yudao-admin-ui/src/layout/components/Settings/index.vue @@ -1,197 +1,197 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js b/yudao-admin-ui/src/layout/components/Sidebar/FixiOSBug.js similarity index 95% rename from ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js rename to yudao-admin-ui/src/layout/components/Sidebar/FixiOSBug.js index 3d8cc21ed..682372699 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js +++ b/yudao-admin-ui/src/layout/components/Sidebar/FixiOSBug.js @@ -1,25 +1,25 @@ -export default { - computed: { - device() { - return this.$store.state.app.device - } - }, - mounted() { - // In order to fix the click on menu on the ios device will trigger the mouseleave bug - this.fixBugIniOS() - }, - methods: { - fixBugIniOS() { - const $subMenu = this.$refs.subMenu - if ($subMenu) { - const handleMouseleave = $subMenu.handleMouseleave - $subMenu.handleMouseleave = (e) => { - if (this.device === 'mobile') { - return - } - handleMouseleave(e) - } - } - } - } -} +export default { + computed: { + device() { + return this.$store.state.app.device + } + }, + mounted() { + // In order to fix the click on menu on the ios device will trigger the mouseleave bug + this.fixBugIniOS() + }, + methods: { + fixBugIniOS() { + const $subMenu = this.$refs.subMenu + if ($subMenu) { + const handleMouseleave = $subMenu.handleMouseleave + $subMenu.handleMouseleave = (e) => { + if (this.device === 'mobile') { + return + } + handleMouseleave(e) + } + } + } + } +} diff --git a/ruoyi-ui/src/layout/components/Sidebar/Item.vue b/yudao-admin-ui/src/layout/components/Sidebar/Item.vue similarity index 94% rename from ruoyi-ui/src/layout/components/Sidebar/Item.vue rename to yudao-admin-ui/src/layout/components/Sidebar/Item.vue index 1a99d63f9..b515f6159 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Item.vue +++ b/yudao-admin-ui/src/layout/components/Sidebar/Item.vue @@ -1,29 +1,29 @@ - + diff --git a/ruoyi-ui/src/layout/components/Sidebar/Link.vue b/yudao-admin-ui/src/layout/components/Sidebar/Link.vue similarity index 93% rename from ruoyi-ui/src/layout/components/Sidebar/Link.vue rename to yudao-admin-ui/src/layout/components/Sidebar/Link.vue index d235d10b6..530b3d5b3 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Link.vue +++ b/yudao-admin-ui/src/layout/components/Sidebar/Link.vue @@ -1,43 +1,43 @@ - - - + + + diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/yudao-admin-ui/src/layout/components/Sidebar/Logo.vue similarity index 95% rename from ruoyi-ui/src/layout/components/Sidebar/Logo.vue rename to yudao-admin-ui/src/layout/components/Sidebar/Logo.vue index 67e69e6e8..2c081d740 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue +++ b/yudao-admin-ui/src/layout/components/Sidebar/Logo.vue @@ -1,93 +1,93 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue b/yudao-admin-ui/src/layout/components/Sidebar/SidebarItem.vue similarity index 96% rename from ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue rename to yudao-admin-ui/src/layout/components/Sidebar/SidebarItem.vue index 21f8f6a10..c4febee2d 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue +++ b/yudao-admin-ui/src/layout/components/Sidebar/SidebarItem.vue @@ -1,96 +1,96 @@ - - - + + + diff --git a/ruoyi-ui/src/layout/components/Sidebar/index.vue b/yudao-admin-ui/src/layout/components/Sidebar/index.vue similarity index 97% rename from ruoyi-ui/src/layout/components/Sidebar/index.vue rename to yudao-admin-ui/src/layout/components/Sidebar/index.vue index 9fb23fb20..9e5d2bb3a 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/index.vue +++ b/yudao-admin-ui/src/layout/components/Sidebar/index.vue @@ -1,57 +1,57 @@ - - - + + + diff --git a/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue b/yudao-admin-ui/src/layout/components/TagsView/ScrollPane.vue similarity index 96% rename from ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue rename to yudao-admin-ui/src/layout/components/TagsView/ScrollPane.vue index c110bf123..bb753a124 100644 --- a/ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue +++ b/yudao-admin-ui/src/layout/components/TagsView/ScrollPane.vue @@ -1,94 +1,94 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/yudao-admin-ui/src/layout/components/TagsView/index.vue similarity index 96% rename from ruoyi-ui/src/layout/components/TagsView/index.vue rename to yudao-admin-ui/src/layout/components/TagsView/index.vue index dce967cfb..bc6ce188a 100644 --- a/ruoyi-ui/src/layout/components/TagsView/index.vue +++ b/yudao-admin-ui/src/layout/components/TagsView/index.vue @@ -1,303 +1,303 @@ - - - - - - - + + + + + + + diff --git a/ruoyi-ui/src/layout/components/global.js b/yudao-admin-ui/src/layout/components/global.js similarity index 95% rename from ruoyi-ui/src/layout/components/global.js rename to yudao-admin-ui/src/layout/components/global.js index 5d2b5b3e8..bbef1f20f 100644 --- a/ruoyi-ui/src/layout/components/global.js +++ b/yudao-admin-ui/src/layout/components/global.js @@ -1,3 +1,3 @@ -import Vue from 'vue' -const global = new Vue() -export default global +import Vue from 'vue' +const global = new Vue() +export default global diff --git a/ruoyi-ui/src/layout/components/index.js b/yudao-admin-ui/src/layout/components/index.js similarity index 98% rename from ruoyi-ui/src/layout/components/index.js rename to yudao-admin-ui/src/layout/components/index.js index 7f83004a8..104bd3ac6 100644 --- a/ruoyi-ui/src/layout/components/index.js +++ b/yudao-admin-ui/src/layout/components/index.js @@ -1,5 +1,5 @@ -export { default as AppMain } from './AppMain' -export { default as Navbar } from './Navbar' -export { default as Settings } from './Settings' -export { default as Sidebar } from './Sidebar/index.vue' -export { default as TagsView } from './TagsView/index.vue' +export { default as AppMain } from './AppMain' +export { default as Navbar } from './Navbar' +export { default as Settings } from './Settings' +export { default as Sidebar } from './Sidebar/index.vue' +export { default as TagsView } from './TagsView/index.vue' diff --git a/ruoyi-ui/src/layout/index.vue b/yudao-admin-ui/src/layout/index.vue similarity index 96% rename from ruoyi-ui/src/layout/index.vue rename to yudao-admin-ui/src/layout/index.vue index c6e9b3bc9..d4907719f 100644 --- a/ruoyi-ui/src/layout/index.vue +++ b/yudao-admin-ui/src/layout/index.vue @@ -1,108 +1,108 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/layout/mixin/ResizeHandler.js b/yudao-admin-ui/src/layout/mixin/ResizeHandler.js similarity index 96% rename from ruoyi-ui/src/layout/mixin/ResizeHandler.js rename to yudao-admin-ui/src/layout/mixin/ResizeHandler.js index b3fc8b26f..e8d0df8c2 100644 --- a/ruoyi-ui/src/layout/mixin/ResizeHandler.js +++ b/yudao-admin-ui/src/layout/mixin/ResizeHandler.js @@ -1,45 +1,45 @@ -import store from '@/store' - -const { body } = document -const WIDTH = 992 // refer to Bootstrap's responsive design - -export default { - watch: { - $route(route) { - if (this.device === 'mobile' && this.sidebar.opened) { - store.dispatch('app/closeSideBar', { withoutAnimation: false }) - } - } - }, - beforeMount() { - window.addEventListener('resize', this.$_resizeHandler) - }, - beforeDestroy() { - window.removeEventListener('resize', this.$_resizeHandler) - }, - mounted() { - const isMobile = this.$_isMobile() - if (isMobile) { - store.dispatch('app/toggleDevice', 'mobile') - store.dispatch('app/closeSideBar', { withoutAnimation: true }) - } - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_isMobile() { - const rect = body.getBoundingClientRect() - return rect.width - 1 < WIDTH - }, - $_resizeHandler() { - if (!document.hidden) { - const isMobile = this.$_isMobile() - store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop') - - if (isMobile) { - store.dispatch('app/closeSideBar', { withoutAnimation: true }) - } - } - } - } -} +import store from '@/store' + +const { body } = document +const WIDTH = 992 // refer to Bootstrap's responsive design + +export default { + watch: { + $route(route) { + if (this.device === 'mobile' && this.sidebar.opened) { + store.dispatch('app/closeSideBar', { withoutAnimation: false }) + } + } + }, + beforeMount() { + window.addEventListener('resize', this.$_resizeHandler) + }, + beforeDestroy() { + window.removeEventListener('resize', this.$_resizeHandler) + }, + mounted() { + const isMobile = this.$_isMobile() + if (isMobile) { + store.dispatch('app/toggleDevice', 'mobile') + store.dispatch('app/closeSideBar', { withoutAnimation: true }) + } + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_isMobile() { + const rect = body.getBoundingClientRect() + return rect.width - 1 < WIDTH + }, + $_resizeHandler() { + if (!document.hidden) { + const isMobile = this.$_isMobile() + store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop') + + if (isMobile) { + store.dispatch('app/closeSideBar', { withoutAnimation: true }) + } + } + } + } +} diff --git a/ruoyi-ui/src/main.js b/yudao-admin-ui/src/main.js similarity index 96% rename from ruoyi-ui/src/main.js rename to yudao-admin-ui/src/main.js index e1f067fa1..d9978300c 100644 --- a/ruoyi-ui/src/main.js +++ b/yudao-admin-ui/src/main.js @@ -1,99 +1,99 @@ -import Vue from 'vue' - -import Cookies from 'js-cookie' - -import Element from 'element-ui' -import './assets/styles/element-variables.scss' - -import '@/assets/styles/index.scss' // global css -import '@/assets/styles/ruoyi.scss' // ruoyi css -import App from './App' -import store from './store' -import router from './router' -import permission from './directive/permission' - -import './assets/icons' // icon -import './permission' // permission control -import { getDicts } from "@/api/system/dict/data"; -import { getConfigKey } from "@/api/infra/config"; -import { - parseTime, - resetForm, - addDateRange, - addBeginAndEndTime, - selectDictLabel, - download, - handleTree, - downloadExcel, - downloadWord, - downloadZip, - downloadHtml, - downloadMarkdown, -} from "@/utils/ruoyi"; -import Pagination from "@/components/Pagination"; -// 自定义表格工具扩展 -import RightToolbar from "@/components/RightToolbar" -// 代码高亮插件 -// import hljs from 'highlight.js' -// import 'highlight.js/styles/github-gist.css' -import {DICT_TYPE, getDictDataLabel, getDictDatas} from "@/utils/dict"; - -// 全局方法挂载 -Vue.prototype.getDicts = getDicts -Vue.prototype.getConfigKey = getConfigKey -Vue.prototype.parseTime = parseTime -Vue.prototype.resetForm = resetForm -Vue.prototype.addDateRange = addDateRange -Vue.prototype.addBeginAndEndTime = addBeginAndEndTime -Vue.prototype.selectDictLabel = selectDictLabel -Vue.prototype.getDictDatas = getDictDatas -Vue.prototype.getDictDataLabel = getDictDataLabel -Vue.prototype.DICT_TYPE = DICT_TYPE -Vue.prototype.download = download -Vue.prototype.downloadExcel = downloadExcel -Vue.prototype.downloadWord = downloadWord -Vue.prototype.downloadHtml = downloadHtml -Vue.prototype.downloadMarkdown = downloadMarkdown -Vue.prototype.downloadZip = downloadZip -Vue.prototype.handleTree = handleTree - -Vue.prototype.msgSuccess = function (msg) { - this.$message({ showClose: true, message: msg, type: "success" }); -} - -Vue.prototype.msgError = function (msg) { - this.$message({ showClose: true, message: msg, type: "error" }); -} - -Vue.prototype.msgInfo = function (msg) { - this.$message.info(msg); -} - -// 全局组件挂载 -Vue.component('Pagination', Pagination) -Vue.component('RightToolbar', RightToolbar) - -Vue.use(permission) -// Vue.use(hljs.vuePlugin); - -/** - * If you don't want to use mock-server - * you want to use MockJs for mock api - * you can execute: mockXHR() - * - * Currently MockJs will be used in the production environment, - * please remove it before going online! ! ! - */ - -Vue.use(Element, { - size: Cookies.get('size') || 'medium' // set element-ui default size -}) - -Vue.config.productionTip = false - -new Vue({ - el: '#app', - router, - store, - render: h => h(App) -}) +import Vue from 'vue' + +import Cookies from 'js-cookie' + +import Element from 'element-ui' +import './assets/styles/element-variables.scss' + +import '@/assets/styles/index.scss' // global css +import '@/assets/styles/ruoyi.scss' // ruoyi css +import App from './App' +import store from './store' +import router from './router' +import permission from './directive/permission' + +import './assets/icons' // icon +import './permission' // permission control +import { getDicts } from "@/api/system/dict/data"; +import { getConfigKey } from "@/api/infra/config"; +import { + parseTime, + resetForm, + addDateRange, + addBeginAndEndTime, + selectDictLabel, + download, + handleTree, + downloadExcel, + downloadWord, + downloadZip, + downloadHtml, + downloadMarkdown, +} from "@/utils/ruoyi"; +import Pagination from "@/components/Pagination"; +// 自定义表格工具扩展 +import RightToolbar from "@/components/RightToolbar" +// 代码高亮插件 +// import hljs from 'highlight.js' +// import 'highlight.js/styles/github-gist.css' +import {DICT_TYPE, getDictDataLabel, getDictDatas} from "@/utils/dict"; + +// 全局方法挂载 +Vue.prototype.getDicts = getDicts +Vue.prototype.getConfigKey = getConfigKey +Vue.prototype.parseTime = parseTime +Vue.prototype.resetForm = resetForm +Vue.prototype.addDateRange = addDateRange +Vue.prototype.addBeginAndEndTime = addBeginAndEndTime +Vue.prototype.selectDictLabel = selectDictLabel +Vue.prototype.getDictDatas = getDictDatas +Vue.prototype.getDictDataLabel = getDictDataLabel +Vue.prototype.DICT_TYPE = DICT_TYPE +Vue.prototype.download = download +Vue.prototype.downloadExcel = downloadExcel +Vue.prototype.downloadWord = downloadWord +Vue.prototype.downloadHtml = downloadHtml +Vue.prototype.downloadMarkdown = downloadMarkdown +Vue.prototype.downloadZip = downloadZip +Vue.prototype.handleTree = handleTree + +Vue.prototype.msgSuccess = function (msg) { + this.$message({ showClose: true, message: msg, type: "success" }); +} + +Vue.prototype.msgError = function (msg) { + this.$message({ showClose: true, message: msg, type: "error" }); +} + +Vue.prototype.msgInfo = function (msg) { + this.$message.info(msg); +} + +// 全局组件挂载 +Vue.component('Pagination', Pagination) +Vue.component('RightToolbar', RightToolbar) + +Vue.use(permission) +// Vue.use(hljs.vuePlugin); + +/** + * If you don't want to use mock-server + * you want to use MockJs for mock api + * you can execute: mockXHR() + * + * Currently MockJs will be used in the production environment, + * please remove it before going online! ! ! + */ + +Vue.use(Element, { + size: Cookies.get('size') || 'medium' // set element-ui default size +}) + +Vue.config.productionTip = false + +new Vue({ + el: '#app', + router, + store, + render: h => h(App) +}) diff --git a/ruoyi-ui/src/permission.js b/yudao-admin-ui/src/permission.js similarity index 96% rename from ruoyi-ui/src/permission.js rename to yudao-admin-ui/src/permission.js index ccb20eb78..dbca87b28 100644 --- a/ruoyi-ui/src/permission.js +++ b/yudao-admin-ui/src/permission.js @@ -1,56 +1,56 @@ -import router from './router' -import store from './store' -import { Message } from 'element-ui' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' - -NProgress.configure({ showSpinner: false }) - -const whiteList = ['/login', '/auth-redirect', '/bind', '/register'] - -router.beforeEach((to, from, next) => { - NProgress.start() - if (getToken()) { - /* has token*/ - if (to.path === '/login') { - next({ path: '/' }) - NProgress.done() - } else { - if (store.getters.roles.length === 0) { - // 获取字典数据 - store.dispatch('dict/loadDictDatas') - // 判断当前用户是否已拉取完user_info信息 - store.dispatch('GetInfo').then(res => { - // 拉取user_info - const roles = res.roles - store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - router.addRoutes(accessRoutes) // 动态添加可访问路由表 - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 - }) - }).catch(err => { - store.dispatch('LogOut').then(() => { - Message.error(err) - next({ path: '/' }) - }) - }) - } else { - next() - } - } - } else { - // 没有token - if (whiteList.indexOf(to.path) !== -1) { - // 在免登录白名单,直接进入 - next() - } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - NProgress.done() - } - } -}) - -router.afterEach(() => { - NProgress.done() -}) +import router from './router' +import store from './store' +import { Message } from 'element-ui' +import NProgress from 'nprogress' +import 'nprogress/nprogress.css' +import { getToken } from '@/utils/auth' + +NProgress.configure({ showSpinner: false }) + +const whiteList = ['/login', '/auth-redirect', '/bind', '/register'] + +router.beforeEach((to, from, next) => { + NProgress.start() + if (getToken()) { + /* has token*/ + if (to.path === '/login') { + next({ path: '/' }) + NProgress.done() + } else { + if (store.getters.roles.length === 0) { + // 获取字典数据 + store.dispatch('dict/loadDictDatas') + // 判断当前用户是否已拉取完user_info信息 + store.dispatch('GetInfo').then(res => { + // 拉取user_info + const roles = res.roles + store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => { + // 根据roles权限生成可访问的路由表 + router.addRoutes(accessRoutes) // 动态添加可访问路由表 + next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 + }) + }).catch(err => { + store.dispatch('LogOut').then(() => { + Message.error(err) + next({ path: '/' }) + }) + }) + } else { + next() + } + } + } else { + // 没有token + if (whiteList.indexOf(to.path) !== -1) { + // 在免登录白名单,直接进入 + next() + } else { + next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 + NProgress.done() + } + } +}) + +router.afterEach(() => { + NProgress.done() +}) diff --git a/ruoyi-ui/src/router/index.js b/yudao-admin-ui/src/router/index.js similarity index 96% rename from ruoyi-ui/src/router/index.js rename to yudao-admin-ui/src/router/index.js index b4216c0db..a4f676306 100644 --- a/ruoyi-ui/src/router/index.js +++ b/yudao-admin-ui/src/router/index.js @@ -1,128 +1,128 @@ -import Vue from 'vue' -import Router from 'vue-router' - -Vue.use(Router) - -/* Layout */ -import Layout from '@/layout' -import ParentView from '@/components/ParentView'; - -/** - * Note: 路由配置项 - * - * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 - * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 - * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 - * // 若你想不管路由下面的 children 声明的个数都显示你的根路由 - * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 - * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 - * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 - * meta : { - noCache: true // 如果设置为true,则不会被 缓存(默认 false) - title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 - icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg - breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示 - } - */ - -// 公共路由 -export const constantRoutes = [ - { - path: '/redirect', - component: Layout, - hidden: true, - children: [ - { - path: '/redirect/:path(.*)', - component: (resolve) => require(['@/views/redirect'], resolve) - } - ] - }, - { - path: '/login', - component: (resolve) => require(['@/views/login'], resolve), - hidden: true - }, - { - path: '/404', - component: (resolve) => require(['@/views/error/404'], resolve), - hidden: true - }, - { - path: '/401', - component: (resolve) => require(['@/views/error/401'], resolve), - hidden: true - }, - { - path: '', - component: Layout, - redirect: 'index', - children: [ - { - path: 'index', - component: (resolve) => require(['@/views/index'], resolve), - name: '首页', - meta: { title: '首页', icon: 'dashboard', noCache: true, affix: true } - } - ] - }, - { - path: '/user', - component: Layout, - hidden: true, - redirect: 'noredirect', - children: [ - { - path: 'profile', - component: (resolve) => require(['@/views/system/user/profile/index'], resolve), - name: 'Profile', - meta: { title: '个人中心', icon: 'user' } - } - ] - }, - { - path: '/dict', - component: Layout, - hidden: true, - children: [ - { - path: 'type/data/:dictId(\\d+)', - component: (resolve) => require(['@/views/system/dict/data'], resolve), - name: 'Data', - meta: { title: '字典数据', icon: '' } - } - ] - }, - { - path: '/job', - component: Layout, - hidden: true, - children: [ - { - path: 'log', - component: (resolve) => require(['@/views/infra/job/log'], resolve), - name: 'JobLog', - meta: { title: '调度日志' } - } - ] - }, - { - path: '/codegen', - component: Layout, - hidden: true, - children: [ - { - path: 'edit/:tableId(\\d+)', - component: (resolve) => require(['@/views/tool/codegen/editTable'], resolve), - name: 'GenEdit', - meta: { title: '修改生成配置' } - } - ] - } -] - -export default new Router({ - mode: 'history', // 去掉url中的# - scrollBehavior: () => ({ y: 0 }), - routes: constantRoutes -}) +import Vue from 'vue' +import Router from 'vue-router' + +Vue.use(Router) + +/* Layout */ +import Layout from '@/layout' +import ParentView from '@/components/ParentView'; + +/** + * Note: 路由配置项 + * + * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 + * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 + * // 若你想不管路由下面的 children 声明的个数都显示你的根路由 + * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 + * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 + * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 + * meta : { + noCache: true // 如果设置为true,则不会被 缓存(默认 false) + title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 + icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg + breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示 + } + */ + +// 公共路由 +export const constantRoutes = [ + { + path: '/redirect', + component: Layout, + hidden: true, + children: [ + { + path: '/redirect/:path(.*)', + component: (resolve) => require(['@/views/redirect'], resolve) + } + ] + }, + { + path: '/login', + component: (resolve) => require(['@/views/login'], resolve), + hidden: true + }, + { + path: '/404', + component: (resolve) => require(['@/views/error/404'], resolve), + hidden: true + }, + { + path: '/401', + component: (resolve) => require(['@/views/error/401'], resolve), + hidden: true + }, + { + path: '', + component: Layout, + redirect: 'index', + children: [ + { + path: 'index', + component: (resolve) => require(['@/views/index'], resolve), + name: '首页', + meta: { title: '首页', icon: 'dashboard', noCache: true, affix: true } + } + ] + }, + { + path: '/user', + component: Layout, + hidden: true, + redirect: 'noredirect', + children: [ + { + path: 'profile', + component: (resolve) => require(['@/views/system/user/profile/index'], resolve), + name: 'Profile', + meta: { title: '个人中心', icon: 'user' } + } + ] + }, + { + path: '/dict', + component: Layout, + hidden: true, + children: [ + { + path: 'type/data/:dictId(\\d+)', + component: (resolve) => require(['@/views/system/dict/data'], resolve), + name: 'Data', + meta: { title: '字典数据', icon: '' } + } + ] + }, + { + path: '/job', + component: Layout, + hidden: true, + children: [ + { + path: 'log', + component: (resolve) => require(['@/views/infra/job/log'], resolve), + name: 'JobLog', + meta: { title: '调度日志' } + } + ] + }, + { + path: '/codegen', + component: Layout, + hidden: true, + children: [ + { + path: 'edit/:tableId(\\d+)', + component: (resolve) => require(['@/views/tool/codegen/editTable'], resolve), + name: 'GenEdit', + meta: { title: '修改生成配置' } + } + ] + } +] + +export default new Router({ + mode: 'history', // 去掉url中的# + scrollBehavior: () => ({ y: 0 }), + routes: constantRoutes +}) diff --git a/ruoyi-ui/src/settings.js b/yudao-admin-ui/src/settings.js similarity index 95% rename from ruoyi-ui/src/settings.js rename to yudao-admin-ui/src/settings.js index 9e76ba6a9..fc172cbcd 100644 --- a/ruoyi-ui/src/settings.js +++ b/yudao-admin-ui/src/settings.js @@ -1,36 +1,36 @@ -module.exports = { - title: '芋道管理系统', - - /** - * 侧边栏主题 深色主题theme-dark,浅色主题theme-light - */ - sideTheme: 'theme-dark', - - /** - * 是否系统布局配置 - */ - showSettings: false, - - /** - * 是否显示 tagsView - */ - tagsView: true, - - /** - * 是否固定头部 - */ - fixedHeader: false, - - /** - * 是否显示logo - */ - sidebarLogo: true, - - /** - * @type {string | array} 'production' | ['production', 'development'] - * @description Need show err logs component. - * The default is only used in the production env - * If you want to also use it in dev, you can pass ['production', 'development'] - */ - errorLog: 'production' -} +module.exports = { + title: '芋道管理系统', + + /** + * 侧边栏主题 深色主题theme-dark,浅色主题theme-light + */ + sideTheme: 'theme-dark', + + /** + * 是否系统布局配置 + */ + showSettings: false, + + /** + * 是否显示 tagsView + */ + tagsView: true, + + /** + * 是否固定头部 + */ + fixedHeader: false, + + /** + * 是否显示logo + */ + sidebarLogo: true, + + /** + * @type {string | array} 'production' | ['production', 'development'] + * @description Need show err logs component. + * The default is only used in the production env + * If you want to also use it in dev, you can pass ['production', 'development'] + */ + errorLog: 'production' +} diff --git a/ruoyi-ui/src/store/getters.js b/yudao-admin-ui/src/store/getters.js similarity index 97% rename from ruoyi-ui/src/store/getters.js rename to yudao-admin-ui/src/store/getters.js index 813d838a6..4d17d51ad 100644 --- a/ruoyi-ui/src/store/getters.js +++ b/yudao-admin-ui/src/store/getters.js @@ -1,18 +1,18 @@ -const getters = { - sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - visitedViews: state => state.tagsView.visitedViews, - cachedViews: state => state.tagsView.cachedViews, - token: state => state.user.token, - avatar: state => state.user.avatar, - name: state => state.user.name, - introduction: state => state.user.introduction, - roles: state => state.user.roles, - permissions: state => state.user.permissions, - permission_routes: state => state.permission.routes, - sidebarRouters:state => state.permission.sidebarRouters, - // 数据字典 - dict_datas: state => state.dict.dictDatas -} -export default getters +const getters = { + sidebar: state => state.app.sidebar, + size: state => state.app.size, + device: state => state.app.device, + visitedViews: state => state.tagsView.visitedViews, + cachedViews: state => state.tagsView.cachedViews, + token: state => state.user.token, + avatar: state => state.user.avatar, + name: state => state.user.name, + introduction: state => state.user.introduction, + roles: state => state.user.roles, + permissions: state => state.user.permissions, + permission_routes: state => state.permission.routes, + sidebarRouters:state => state.permission.sidebarRouters, + // 数据字典 + dict_datas: state => state.dict.dictDatas +} +export default getters diff --git a/ruoyi-ui/src/store/index.js b/yudao-admin-ui/src/store/index.js similarity index 95% rename from ruoyi-ui/src/store/index.js rename to yudao-admin-ui/src/store/index.js index 7e9db3347..116d6d689 100644 --- a/ruoyi-ui/src/store/index.js +++ b/yudao-admin-ui/src/store/index.js @@ -1,25 +1,25 @@ -import Vue from 'vue' -import Vuex from 'vuex' -import app from './modules/app' -import user from './modules/user' -import tagsView from './modules/tagsView' -import permission from './modules/permission' -import settings from './modules/settings' -import dict from './modules/dict' -import getters from './getters' - -Vue.use(Vuex) - -const store = new Vuex.Store({ - modules: { - app, - user, - tagsView, - permission, - settings, - dict - }, - getters -}) - -export default store +import Vue from 'vue' +import Vuex from 'vuex' +import app from './modules/app' +import user from './modules/user' +import tagsView from './modules/tagsView' +import permission from './modules/permission' +import settings from './modules/settings' +import dict from './modules/dict' +import getters from './getters' + +Vue.use(Vuex) + +const store = new Vuex.Store({ + modules: { + app, + user, + tagsView, + permission, + settings, + dict + }, + getters +}) + +export default store diff --git a/ruoyi-ui/src/store/modules/app.js b/yudao-admin-ui/src/store/modules/app.js similarity index 95% rename from ruoyi-ui/src/store/modules/app.js rename to yudao-admin-ui/src/store/modules/app.js index c8d8ee91e..45d89bb96 100644 --- a/ruoyi-ui/src/store/modules/app.js +++ b/yudao-admin-ui/src/store/modules/app.js @@ -1,56 +1,56 @@ -import Cookies from 'js-cookie' - -const state = { - sidebar: { - opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, - withoutAnimation: false - }, - device: 'desktop', - size: Cookies.get('size') || 'medium' -} - -const mutations = { - TOGGLE_SIDEBAR: state => { - state.sidebar.opened = !state.sidebar.opened - state.sidebar.withoutAnimation = false - if (state.sidebar.opened) { - Cookies.set('sidebarStatus', 1) - } else { - Cookies.set('sidebarStatus', 0) - } - }, - CLOSE_SIDEBAR: (state, withoutAnimation) => { - Cookies.set('sidebarStatus', 0) - state.sidebar.opened = false - state.sidebar.withoutAnimation = withoutAnimation - }, - TOGGLE_DEVICE: (state, device) => { - state.device = device - }, - SET_SIZE: (state, size) => { - state.size = size - Cookies.set('size', size) - } -} - -const actions = { - toggleSideBar({ commit }) { - commit('TOGGLE_SIDEBAR') - }, - closeSideBar({ commit }, { withoutAnimation }) { - commit('CLOSE_SIDEBAR', withoutAnimation) - }, - toggleDevice({ commit }, device) { - commit('TOGGLE_DEVICE', device) - }, - setSize({ commit }, size) { - commit('SET_SIZE', size) - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} +import Cookies from 'js-cookie' + +const state = { + sidebar: { + opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, + withoutAnimation: false + }, + device: 'desktop', + size: Cookies.get('size') || 'medium' +} + +const mutations = { + TOGGLE_SIDEBAR: state => { + state.sidebar.opened = !state.sidebar.opened + state.sidebar.withoutAnimation = false + if (state.sidebar.opened) { + Cookies.set('sidebarStatus', 1) + } else { + Cookies.set('sidebarStatus', 0) + } + }, + CLOSE_SIDEBAR: (state, withoutAnimation) => { + Cookies.set('sidebarStatus', 0) + state.sidebar.opened = false + state.sidebar.withoutAnimation = withoutAnimation + }, + TOGGLE_DEVICE: (state, device) => { + state.device = device + }, + SET_SIZE: (state, size) => { + state.size = size + Cookies.set('size', size) + } +} + +const actions = { + toggleSideBar({ commit }) { + commit('TOGGLE_SIDEBAR') + }, + closeSideBar({ commit }, { withoutAnimation }) { + commit('CLOSE_SIDEBAR', withoutAnimation) + }, + toggleDevice({ commit }, device) { + commit('TOGGLE_DEVICE', device) + }, + setSize({ commit }, size) { + commit('SET_SIZE', size) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} diff --git a/ruoyi-ui/src/store/modules/dict.js b/yudao-admin-ui/src/store/modules/dict.js similarity index 100% rename from ruoyi-ui/src/store/modules/dict.js rename to yudao-admin-ui/src/store/modules/dict.js diff --git a/ruoyi-ui/src/store/modules/permission.js b/yudao-admin-ui/src/store/modules/permission.js similarity index 96% rename from ruoyi-ui/src/store/modules/permission.js rename to yudao-admin-ui/src/store/modules/permission.js index 090b07061..0e071e7eb 100644 --- a/ruoyi-ui/src/store/modules/permission.js +++ b/yudao-admin-ui/src/store/modules/permission.js @@ -1,98 +1,98 @@ -import { constantRoutes } from '@/router' -import { getRouters } from '@/api/menu' -import Layout from '@/layout/index' -import ParentView from '@/components/ParentView'; - -const permission = { - state: { - routes: [], - addRoutes: [], - sidebarRouters: [] - }, - mutations: { - SET_ROUTES: (state, routes) => { - state.addRoutes = routes - state.routes = constantRoutes.concat(routes) - }, - SET_SIDEBAR_ROUTERS: (state, routers) => { - state.sidebarRouters = constantRoutes.concat(routers) - }, - }, - actions: { - // 生成路由 - GenerateRoutes({ commit }) { - return new Promise(resolve => { - // 向后端请求路由数据 - getRouters().then(res => { - const sdata = JSON.parse(JSON.stringify(res.data)) - const rdata = JSON.parse(JSON.stringify(res.data)) - const sidebarRoutes = filterAsyncRouter(sdata) - const rewriteRoutes = filterAsyncRouter(rdata, true) - rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true }) - commit('SET_ROUTES', rewriteRoutes) - commit('SET_SIDEBAR_ROUTERS', sidebarRoutes) - resolve(rewriteRoutes) - }) - }) - } - } -} - -// 遍历后台传来的路由字符串,转换为组件对象 -function filterAsyncRouter(asyncRouterMap, isRewrite = false) { - return asyncRouterMap.filter(route => { - // 将 ruoyi 后端原有耦合前端的逻辑,迁移到此处 - // 处理 meta 属性 - route.meta = { - title: route.name, - icon: route.icon - } - // 处理 component 属性 - if (route.children) { // 父节点 - // debugger - if (route.parentId === 0) { - route.component = Layout - } else { - route.component = ParentView - } - } else { // 根节点 - route.component = loadView(route.component) - } - - // filterChildren - if (isRewrite && route.children) { - route.children = filterChildren(route.children) - } - if (route.children != null && route.children && route.children.length) { - route.children = filterAsyncRouter(route.children, route, isRewrite) - } - return true - }) -} - -function filterChildren(childrenMap) { - var children = [] - childrenMap.forEach((el, index) => { - if (el.children && el.children.length) { - if (el.component === 'ParentView') { - el.children.forEach(c => { - c.path = el.path + '/' + c.path - if (c.children && c.children.length) { - children = children.concat(filterChildren(c.children, c)) - return - } - children.push(c) - }) - return - } - } - children = children.concat(el) - }) - return children -} - -export const loadView = (view) => { // 路由懒加载 - return (resolve) => require([`@/views/${view}`], resolve) -} - -export default permission +import { constantRoutes } from '@/router' +import { getRouters } from '@/api/menu' +import Layout from '@/layout/index' +import ParentView from '@/components/ParentView'; + +const permission = { + state: { + routes: [], + addRoutes: [], + sidebarRouters: [] + }, + mutations: { + SET_ROUTES: (state, routes) => { + state.addRoutes = routes + state.routes = constantRoutes.concat(routes) + }, + SET_SIDEBAR_ROUTERS: (state, routers) => { + state.sidebarRouters = constantRoutes.concat(routers) + }, + }, + actions: { + // 生成路由 + GenerateRoutes({ commit }) { + return new Promise(resolve => { + // 向后端请求路由数据 + getRouters().then(res => { + const sdata = JSON.parse(JSON.stringify(res.data)) + const rdata = JSON.parse(JSON.stringify(res.data)) + const sidebarRoutes = filterAsyncRouter(sdata) + const rewriteRoutes = filterAsyncRouter(rdata, true) + rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true }) + commit('SET_ROUTES', rewriteRoutes) + commit('SET_SIDEBAR_ROUTERS', sidebarRoutes) + resolve(rewriteRoutes) + }) + }) + } + } +} + +// 遍历后台传来的路由字符串,转换为组件对象 +function filterAsyncRouter(asyncRouterMap, isRewrite = false) { + return asyncRouterMap.filter(route => { + // 将 ruoyi 后端原有耦合前端的逻辑,迁移到此处 + // 处理 meta 属性 + route.meta = { + title: route.name, + icon: route.icon + } + // 处理 component 属性 + if (route.children) { // 父节点 + // debugger + if (route.parentId === 0) { + route.component = Layout + } else { + route.component = ParentView + } + } else { // 根节点 + route.component = loadView(route.component) + } + + // filterChildren + if (isRewrite && route.children) { + route.children = filterChildren(route.children) + } + if (route.children != null && route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, route, isRewrite) + } + return true + }) +} + +function filterChildren(childrenMap) { + var children = [] + childrenMap.forEach((el, index) => { + if (el.children && el.children.length) { + if (el.component === 'ParentView') { + el.children.forEach(c => { + c.path = el.path + '/' + c.path + if (c.children && c.children.length) { + children = children.concat(filterChildren(c.children, c)) + return + } + children.push(c) + }) + return + } + } + children = children.concat(el) + }) + return children +} + +export const loadView = (view) => { // 路由懒加载 + return (resolve) => require([`@/views/${view}`], resolve) +} + +export default permission diff --git a/ruoyi-ui/src/store/modules/settings.js b/yudao-admin-ui/src/store/modules/settings.js similarity index 95% rename from ruoyi-ui/src/store/modules/settings.js rename to yudao-admin-ui/src/store/modules/settings.js index a246a3c4a..8bd81a387 100644 --- a/ruoyi-ui/src/store/modules/settings.js +++ b/yudao-admin-ui/src/store/modules/settings.js @@ -1,35 +1,35 @@ -import variables from '@/assets/styles/element-variables.scss' -import defaultSettings from '@/settings' - -const { sideTheme, showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings - -const state = { - theme: variables.theme, - sideTheme: sideTheme, - showSettings: showSettings, - tagsView: tagsView, - fixedHeader: fixedHeader, - sidebarLogo: sidebarLogo -} - -const mutations = { - CHANGE_SETTING: (state, { key, value }) => { - if (state.hasOwnProperty(key)) { - state[key] = value - } - } -} - -const actions = { - changeSetting({ commit }, data) { - commit('CHANGE_SETTING', data) - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} - +import variables from '@/assets/styles/element-variables.scss' +import defaultSettings from '@/settings' + +const { sideTheme, showSettings, tagsView, fixedHeader, sidebarLogo } = defaultSettings + +const state = { + theme: variables.theme, + sideTheme: sideTheme, + showSettings: showSettings, + tagsView: tagsView, + fixedHeader: fixedHeader, + sidebarLogo: sidebarLogo +} + +const mutations = { + CHANGE_SETTING: (state, { key, value }) => { + if (state.hasOwnProperty(key)) { + state[key] = value + } + } +} + +const actions = { + changeSetting({ commit }, data) { + commit('CHANGE_SETTING', data) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} + diff --git a/ruoyi-ui/src/store/modules/tagsView.js b/yudao-admin-ui/src/store/modules/tagsView.js similarity index 96% rename from ruoyi-ui/src/store/modules/tagsView.js rename to yudao-admin-ui/src/store/modules/tagsView.js index abec62289..2e30d1569 100644 --- a/ruoyi-ui/src/store/modules/tagsView.js +++ b/yudao-admin-ui/src/store/modules/tagsView.js @@ -1,159 +1,159 @@ -const state = { - visitedViews: [], - cachedViews: [] -} - -const mutations = { - ADD_VISITED_VIEW: (state, view) => { - if (state.visitedViews.some(v => v.path === view.path)) return - state.visitedViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name' - }) - ) - }, - ADD_CACHED_VIEW: (state, view) => { - if (state.cachedViews.includes(view.name)) return - if (!view.meta.noCache) { - state.cachedViews.push(view.name) - } - }, - - DEL_VISITED_VIEW: (state, view) => { - for (const [i, v] of state.visitedViews.entries()) { - if (v.path === view.path) { - state.visitedViews.splice(i, 1) - break - } - } - }, - DEL_CACHED_VIEW: (state, view) => { - const index = state.cachedViews.indexOf(view.name) - index > -1 && state.cachedViews.splice(index, 1) - }, - - DEL_OTHERS_VISITED_VIEWS: (state, view) => { - state.visitedViews = state.visitedViews.filter(v => { - return v.meta.affix || v.path === view.path - }) - }, - DEL_OTHERS_CACHED_VIEWS: (state, view) => { - const index = state.cachedViews.indexOf(view.name) - if (index > -1) { - state.cachedViews = state.cachedViews.slice(index, index + 1) - } else { - state.cachedViews = [] - } - }, - - DEL_ALL_VISITED_VIEWS: state => { - // keep affix tags - const affixTags = state.visitedViews.filter(tag => tag.meta.affix) - state.visitedViews = affixTags - }, - DEL_ALL_CACHED_VIEWS: state => { - state.cachedViews = [] - }, - - UPDATE_VISITED_VIEW: (state, view) => { - for (let v of state.visitedViews) { - if (v.path === view.path) { - v = Object.assign(v, view) - break - } - } - } -} - -const actions = { - addView({ dispatch }, view) { - dispatch('addVisitedView', view) - dispatch('addCachedView', view) - }, - addVisitedView({ commit }, view) { - commit('ADD_VISITED_VIEW', view) - }, - addCachedView({ commit }, view) { - commit('ADD_CACHED_VIEW', view) - }, - - delView({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delVisitedView', view) - dispatch('delCachedView', view) - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }) - }) - }, - delVisitedView({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_VISITED_VIEW', view) - resolve([...state.visitedViews]) - }) - }, - delCachedView({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_CACHED_VIEW', view) - resolve([...state.cachedViews]) - }) - }, - - delOthersViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delOthersVisitedViews', view) - dispatch('delOthersCachedViews', view) - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }) - }) - }, - delOthersVisitedViews({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_OTHERS_VISITED_VIEWS', view) - resolve([...state.visitedViews]) - }) - }, - delOthersCachedViews({ commit, state }, view) { - return new Promise(resolve => { - commit('DEL_OTHERS_CACHED_VIEWS', view) - resolve([...state.cachedViews]) - }) - }, - - delAllViews({ dispatch, state }, view) { - return new Promise(resolve => { - dispatch('delAllVisitedViews', view) - dispatch('delAllCachedViews', view) - resolve({ - visitedViews: [...state.visitedViews], - cachedViews: [...state.cachedViews] - }) - }) - }, - delAllVisitedViews({ commit, state }) { - return new Promise(resolve => { - commit('DEL_ALL_VISITED_VIEWS') - resolve([...state.visitedViews]) - }) - }, - delAllCachedViews({ commit, state }) { - return new Promise(resolve => { - commit('DEL_ALL_CACHED_VIEWS') - resolve([...state.cachedViews]) - }) - }, - - updateVisitedView({ commit }, view) { - commit('UPDATE_VISITED_VIEW', view) - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} +const state = { + visitedViews: [], + cachedViews: [] +} + +const mutations = { + ADD_VISITED_VIEW: (state, view) => { + if (state.visitedViews.some(v => v.path === view.path)) return + state.visitedViews.push( + Object.assign({}, view, { + title: view.meta.title || 'no-name' + }) + ) + }, + ADD_CACHED_VIEW: (state, view) => { + if (state.cachedViews.includes(view.name)) return + if (!view.meta.noCache) { + state.cachedViews.push(view.name) + } + }, + + DEL_VISITED_VIEW: (state, view) => { + for (const [i, v] of state.visitedViews.entries()) { + if (v.path === view.path) { + state.visitedViews.splice(i, 1) + break + } + } + }, + DEL_CACHED_VIEW: (state, view) => { + const index = state.cachedViews.indexOf(view.name) + index > -1 && state.cachedViews.splice(index, 1) + }, + + DEL_OTHERS_VISITED_VIEWS: (state, view) => { + state.visitedViews = state.visitedViews.filter(v => { + return v.meta.affix || v.path === view.path + }) + }, + DEL_OTHERS_CACHED_VIEWS: (state, view) => { + const index = state.cachedViews.indexOf(view.name) + if (index > -1) { + state.cachedViews = state.cachedViews.slice(index, index + 1) + } else { + state.cachedViews = [] + } + }, + + DEL_ALL_VISITED_VIEWS: state => { + // keep affix tags + const affixTags = state.visitedViews.filter(tag => tag.meta.affix) + state.visitedViews = affixTags + }, + DEL_ALL_CACHED_VIEWS: state => { + state.cachedViews = [] + }, + + UPDATE_VISITED_VIEW: (state, view) => { + for (let v of state.visitedViews) { + if (v.path === view.path) { + v = Object.assign(v, view) + break + } + } + } +} + +const actions = { + addView({ dispatch }, view) { + dispatch('addVisitedView', view) + dispatch('addCachedView', view) + }, + addVisitedView({ commit }, view) { + commit('ADD_VISITED_VIEW', view) + }, + addCachedView({ commit }, view) { + commit('ADD_CACHED_VIEW', view) + }, + + delView({ dispatch, state }, view) { + return new Promise(resolve => { + dispatch('delVisitedView', view) + dispatch('delCachedView', view) + resolve({ + visitedViews: [...state.visitedViews], + cachedViews: [...state.cachedViews] + }) + }) + }, + delVisitedView({ commit, state }, view) { + return new Promise(resolve => { + commit('DEL_VISITED_VIEW', view) + resolve([...state.visitedViews]) + }) + }, + delCachedView({ commit, state }, view) { + return new Promise(resolve => { + commit('DEL_CACHED_VIEW', view) + resolve([...state.cachedViews]) + }) + }, + + delOthersViews({ dispatch, state }, view) { + return new Promise(resolve => { + dispatch('delOthersVisitedViews', view) + dispatch('delOthersCachedViews', view) + resolve({ + visitedViews: [...state.visitedViews], + cachedViews: [...state.cachedViews] + }) + }) + }, + delOthersVisitedViews({ commit, state }, view) { + return new Promise(resolve => { + commit('DEL_OTHERS_VISITED_VIEWS', view) + resolve([...state.visitedViews]) + }) + }, + delOthersCachedViews({ commit, state }, view) { + return new Promise(resolve => { + commit('DEL_OTHERS_CACHED_VIEWS', view) + resolve([...state.cachedViews]) + }) + }, + + delAllViews({ dispatch, state }, view) { + return new Promise(resolve => { + dispatch('delAllVisitedViews', view) + dispatch('delAllCachedViews', view) + resolve({ + visitedViews: [...state.visitedViews], + cachedViews: [...state.cachedViews] + }) + }) + }, + delAllVisitedViews({ commit, state }) { + return new Promise(resolve => { + commit('DEL_ALL_VISITED_VIEWS') + resolve([...state.visitedViews]) + }) + }, + delAllCachedViews({ commit, state }) { + return new Promise(resolve => { + commit('DEL_ALL_CACHED_VIEWS') + resolve([...state.cachedViews]) + }) + }, + + updateVisitedView({ commit }, view) { + commit('UPDATE_VISITED_VIEW', view) + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} diff --git a/ruoyi-ui/src/store/modules/user.js b/yudao-admin-ui/src/store/modules/user.js similarity index 96% rename from ruoyi-ui/src/store/modules/user.js rename to yudao-admin-ui/src/store/modules/user.js index f7084c59c..eb8669d3a 100644 --- a/ruoyi-ui/src/store/modules/user.js +++ b/yudao-admin-ui/src/store/modules/user.js @@ -1,98 +1,98 @@ -import { login, logout, getInfo } from '@/api/login' -import { getToken, setToken, removeToken } from '@/utils/auth' - -const user = { - state: { - token: getToken(), - name: '', - avatar: '', - roles: [], - permissions: [] - }, - - mutations: { - SET_TOKEN: (state, token) => { - state.token = token - }, - SET_NAME: (state, name) => { - state.name = name - }, - SET_AVATAR: (state, avatar) => { - state.avatar = avatar - }, - SET_ROLES: (state, roles) => { - state.roles = roles - }, - SET_PERMISSIONS: (state, permissions) => { - state.permissions = permissions - } - }, - - actions: { - // 登录 - Login({ commit }, userInfo) { - const username = userInfo.username.trim() - const password = userInfo.password - const code = userInfo.code - const uuid = userInfo.uuid - return new Promise((resolve, reject) => { - login(username, password, code, uuid).then(res => { - res = res.data; - setToken(res.token) - commit('SET_TOKEN', res.token) - resolve() - }).catch(error => { - reject(error) - }) - }) - }, - - // 获取用户信息 - GetInfo({ commit, state }) { - return new Promise((resolve, reject) => { - getInfo(state.token).then(res => { - res = res.data; // 读取 data 数据 - const user = res.user - const avatar = user.avatar === "" ? require("@/assets/images/profile.jpg") : user.avatar; - if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 - commit('SET_ROLES', res.roles) - commit('SET_PERMISSIONS', res.permissions) - } else { - commit('SET_ROLES', ['ROLE_DEFAULT']) - } - commit('SET_NAME', user.userName) - commit('SET_AVATAR', avatar) - resolve(res) - }).catch(error => { - reject(error) - }) - }) - }, - - // 退出系统 - LogOut({ commit, state }) { - return new Promise((resolve, reject) => { - logout(state.token).then(() => { - commit('SET_TOKEN', '') - commit('SET_ROLES', []) - commit('SET_PERMISSIONS', []) - removeToken() - resolve() - }).catch(error => { - reject(error) - }) - }) - }, - - // 前端 登出 - FedLogOut({ commit }) { - return new Promise(resolve => { - commit('SET_TOKEN', '') - removeToken() - resolve() - }) - } - } -} - -export default user +import { login, logout, getInfo } from '@/api/login' +import { getToken, setToken, removeToken } from '@/utils/auth' + +const user = { + state: { + token: getToken(), + name: '', + avatar: '', + roles: [], + permissions: [] + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, name) => { + state.name = name + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_ROLES: (state, roles) => { + state.roles = roles + }, + SET_PERMISSIONS: (state, permissions) => { + state.permissions = permissions + } + }, + + actions: { + // 登录 + Login({ commit }, userInfo) { + const username = userInfo.username.trim() + const password = userInfo.password + const code = userInfo.code + const uuid = userInfo.uuid + return new Promise((resolve, reject) => { + login(username, password, code, uuid).then(res => { + res = res.data; + setToken(res.token) + commit('SET_TOKEN', res.token) + resolve() + }).catch(error => { + reject(error) + }) + }) + }, + + // 获取用户信息 + GetInfo({ commit, state }) { + return new Promise((resolve, reject) => { + getInfo(state.token).then(res => { + res = res.data; // 读取 data 数据 + const user = res.user + const avatar = user.avatar === "" ? require("@/assets/images/profile.jpg") : user.avatar; + if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 + commit('SET_ROLES', res.roles) + commit('SET_PERMISSIONS', res.permissions) + } else { + commit('SET_ROLES', ['ROLE_DEFAULT']) + } + commit('SET_NAME', user.userName) + commit('SET_AVATAR', avatar) + resolve(res) + }).catch(error => { + reject(error) + }) + }) + }, + + // 退出系统 + LogOut({ commit, state }) { + return new Promise((resolve, reject) => { + logout(state.token).then(() => { + commit('SET_TOKEN', '') + commit('SET_ROLES', []) + commit('SET_PERMISSIONS', []) + removeToken() + resolve() + }).catch(error => { + reject(error) + }) + }) + }, + + // 前端 登出 + FedLogOut({ commit }) { + return new Promise(resolve => { + commit('SET_TOKEN', '') + removeToken() + resolve() + }) + } + } +} + +export default user diff --git a/ruoyi-ui/src/utils/auth.js b/yudao-admin-ui/src/utils/auth.js similarity index 94% rename from ruoyi-ui/src/utils/auth.js rename to yudao-admin-ui/src/utils/auth.js index 88d7b6ccb..08a43d6e2 100644 --- a/ruoyi-ui/src/utils/auth.js +++ b/yudao-admin-ui/src/utils/auth.js @@ -1,15 +1,15 @@ -import Cookies from 'js-cookie' - -const TokenKey = 'Admin-Token' - -export function getToken() { - return Cookies.get(TokenKey) -} - -export function setToken(token) { - return Cookies.set(TokenKey, token) -} - -export function removeToken() { - return Cookies.remove(TokenKey) -} +import Cookies from 'js-cookie' + +const TokenKey = 'Admin-Token' + +export function getToken() { + return Cookies.get(TokenKey) +} + +export function setToken(token) { + return Cookies.set(TokenKey, token) +} + +export function removeToken() { + return Cookies.remove(TokenKey) +} diff --git a/ruoyi-ui/src/utils/constants.js b/yudao-admin-ui/src/utils/constants.js similarity index 100% rename from ruoyi-ui/src/utils/constants.js rename to yudao-admin-ui/src/utils/constants.js diff --git a/ruoyi-ui/src/utils/dict.js b/yudao-admin-ui/src/utils/dict.js similarity index 100% rename from ruoyi-ui/src/utils/dict.js rename to yudao-admin-ui/src/utils/dict.js diff --git a/ruoyi-ui/src/utils/errorCode.js b/yudao-admin-ui/src/utils/errorCode.js similarity index 100% rename from ruoyi-ui/src/utils/errorCode.js rename to yudao-admin-ui/src/utils/errorCode.js diff --git a/ruoyi-ui/src/utils/generator/config.js b/yudao-admin-ui/src/utils/generator/config.js similarity index 95% rename from ruoyi-ui/src/utils/generator/config.js rename to yudao-admin-ui/src/utils/generator/config.js index 005140a8f..7abf227d5 100644 --- a/ruoyi-ui/src/utils/generator/config.js +++ b/yudao-admin-ui/src/utils/generator/config.js @@ -1,438 +1,438 @@ -export const formConf = { - formRef: 'elForm', - formModel: 'formData', - size: 'medium', - labelPosition: 'right', - labelWidth: 100, - formRules: 'rules', - gutter: 15, - disabled: false, - span: 24, - formBtns: true -} - -export const inputComponents = [ - { - label: '单行文本', - tag: 'el-input', - tagIcon: 'input', - placeholder: '请输入', - defaultValue: undefined, - span: 24, - labelWidth: null, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': '', - 'suffix-icon': '', - maxlength: null, - 'show-word-limit': false, - readonly: false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input' - }, - { - label: '多行文本', - tag: 'el-input', - tagIcon: 'textarea', - type: 'textarea', - placeholder: '请输入', - defaultValue: undefined, - span: 24, - labelWidth: null, - autosize: { - minRows: 4, - maxRows: 4 - }, - style: { width: '100%' }, - maxlength: null, - 'show-word-limit': false, - readonly: false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input' - }, - { - label: '密码', - tag: 'el-input', - tagIcon: 'password', - placeholder: '请输入', - defaultValue: undefined, - span: 24, - 'show-password': true, - labelWidth: null, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': '', - 'suffix-icon': '', - maxlength: null, - 'show-word-limit': false, - readonly: false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input' - }, - { - label: '计数器', - tag: 'el-input-number', - tagIcon: 'number', - placeholder: '', - defaultValue: undefined, - span: 24, - labelWidth: null, - min: undefined, - max: undefined, - step: undefined, - 'step-strictly': false, - precision: undefined, - 'controls-position': '', - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/input-number' - } -] - -export const selectComponents = [ - { - label: '下拉选择', - tag: 'el-select', - tagIcon: 'select', - placeholder: '请选择', - defaultValue: undefined, - span: 24, - labelWidth: null, - style: { width: '100%' }, - clearable: true, - disabled: false, - required: true, - filterable: false, - multiple: false, - options: [{ - label: '选项一', - value: 1 - }, { - label: '选项二', - value: 2 - }], - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/select' - }, - { - label: '级联选择', - tag: 'el-cascader', - tagIcon: 'cascader', - placeholder: '请选择', - defaultValue: [], - span: 24, - labelWidth: null, - style: { width: '100%' }, - props: { - props: { - multiple: false - } - }, - 'show-all-levels': true, - disabled: false, - clearable: true, - filterable: false, - required: true, - options: [{ - id: 1, - value: 1, - label: '选项1', - children: [{ - id: 2, - value: 2, - label: '选项1-1' - }] - }], - dataType: 'dynamic', - labelKey: 'label', - valueKey: 'value', - childrenKey: 'children', - separator: '/', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/cascader' - }, - { - label: '单选框组', - tag: 'el-radio-group', - tagIcon: 'radio', - defaultValue: undefined, - span: 24, - labelWidth: null, - style: {}, - optionType: 'default', - border: false, - size: 'medium', - disabled: false, - required: true, - options: [{ - label: '选项一', - value: 1 - }, { - label: '选项二', - value: 2 - }], - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/radio' - }, - { - label: '多选框组', - tag: 'el-checkbox-group', - tagIcon: 'checkbox', - defaultValue: [], - span: 24, - labelWidth: null, - style: {}, - optionType: 'default', - border: false, - size: 'medium', - disabled: false, - required: true, - options: [{ - label: '选项一', - value: 1 - }, { - label: '选项二', - value: 2 - }], - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/checkbox' - }, - { - label: '开关', - tag: 'el-switch', - tagIcon: 'switch', - defaultValue: false, - span: 24, - labelWidth: null, - style: {}, - disabled: false, - required: true, - 'active-text': '', - 'inactive-text': '', - 'active-color': null, - 'inactive-color': null, - 'active-value': true, - 'inactive-value': false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/switch' - }, - { - label: '滑块', - tag: 'el-slider', - tagIcon: 'slider', - defaultValue: null, - span: 24, - labelWidth: null, - disabled: false, - required: true, - min: 0, - max: 100, - step: 1, - 'show-stops': false, - range: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/slider' - }, - { - label: '时间选择', - tag: 'el-time-picker', - tagIcon: 'time', - placeholder: '请选择', - defaultValue: null, - span: 24, - labelWidth: null, - style: { width: '100%' }, - disabled: false, - clearable: true, - required: true, - 'picker-options': { - selectableRange: '00:00:00-23:59:59' - }, - format: 'HH:mm:ss', - 'value-format': 'HH:mm:ss', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/time-picker' - }, - { - label: '时间范围', - tag: 'el-time-picker', - tagIcon: 'time-range', - defaultValue: null, - span: 24, - labelWidth: null, - style: { width: '100%' }, - disabled: false, - clearable: true, - required: true, - 'is-range': true, - 'range-separator': '至', - 'start-placeholder': '开始时间', - 'end-placeholder': '结束时间', - format: 'HH:mm:ss', - 'value-format': 'HH:mm:ss', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/time-picker' - }, - { - label: '日期选择', - tag: 'el-date-picker', - tagIcon: 'date', - placeholder: '请选择', - defaultValue: null, - type: 'date', - span: 24, - labelWidth: null, - style: { width: '100%' }, - disabled: false, - clearable: true, - required: true, - format: 'yyyy-MM-dd', - 'value-format': 'yyyy-MM-dd', - readonly: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/date-picker' - }, - { - label: '日期范围', - tag: 'el-date-picker', - tagIcon: 'date-range', - defaultValue: null, - span: 24, - labelWidth: null, - style: { width: '100%' }, - type: 'daterange', - 'range-separator': '至', - 'start-placeholder': '开始日期', - 'end-placeholder': '结束日期', - disabled: false, - clearable: true, - required: true, - format: 'yyyy-MM-dd', - 'value-format': 'yyyy-MM-dd', - readonly: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/date-picker' - }, - { - label: '评分', - tag: 'el-rate', - tagIcon: 'rate', - defaultValue: 0, - span: 24, - labelWidth: null, - style: {}, - max: 5, - 'allow-half': false, - 'show-text': false, - 'show-score': false, - disabled: false, - required: true, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/rate' - }, - { - label: '颜色选择', - tag: 'el-color-picker', - tagIcon: 'color', - defaultValue: null, - labelWidth: null, - 'show-alpha': false, - 'color-format': '', - disabled: false, - required: true, - size: 'medium', - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/color-picker' - }, - { - label: '上传', - tag: 'el-upload', - tagIcon: 'upload', - action: 'https://jsonplaceholder.typicode.com/posts/', - defaultValue: null, - labelWidth: null, - disabled: false, - required: true, - accept: '', - name: 'file', - 'auto-upload': true, - showTip: false, - buttonText: '点击上传', - fileSize: 2, - sizeUnit: 'MB', - 'list-type': 'text', - multiple: false, - regList: [], - changeTag: true, - document: 'https://element.eleme.cn/#/zh-CN/component/upload' - } -] - -export const layoutComponents = [ - { - layout: 'rowFormItem', - tagIcon: 'row', - type: 'default', - justify: 'start', - align: 'top', - label: '行容器', - layoutTree: true, - children: [], - document: 'https://element.eleme.cn/#/zh-CN/component/layout' - }, - { - layout: 'colFormItem', - label: '按钮', - changeTag: true, - labelWidth: null, - tag: 'el-button', - tagIcon: 'button', - span: 24, - default: '主要按钮', - type: 'primary', - icon: 'el-icon-search', - size: 'medium', - disabled: false, - document: 'https://element.eleme.cn/#/zh-CN/component/button' - } -] - -// 组件rule的触发方式,无触发方式的组件不生成rule -export const trigger = { - 'el-input': 'blur', - 'el-input-number': 'blur', - 'el-select': 'change', - 'el-radio-group': 'change', - 'el-checkbox-group': 'change', - 'el-cascader': 'change', - 'el-time-picker': 'change', - 'el-date-picker': 'change', - 'el-rate': 'change' -} +export const formConf = { + formRef: 'elForm', + formModel: 'formData', + size: 'medium', + labelPosition: 'right', + labelWidth: 100, + formRules: 'rules', + gutter: 15, + disabled: false, + span: 24, + formBtns: true +} + +export const inputComponents = [ + { + label: '单行文本', + tag: 'el-input', + tagIcon: 'input', + placeholder: '请输入', + defaultValue: undefined, + span: 24, + labelWidth: null, + style: { width: '100%' }, + clearable: true, + prepend: '', + append: '', + 'prefix-icon': '', + 'suffix-icon': '', + maxlength: null, + 'show-word-limit': false, + readonly: false, + disabled: false, + required: true, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/input' + }, + { + label: '多行文本', + tag: 'el-input', + tagIcon: 'textarea', + type: 'textarea', + placeholder: '请输入', + defaultValue: undefined, + span: 24, + labelWidth: null, + autosize: { + minRows: 4, + maxRows: 4 + }, + style: { width: '100%' }, + maxlength: null, + 'show-word-limit': false, + readonly: false, + disabled: false, + required: true, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/input' + }, + { + label: '密码', + tag: 'el-input', + tagIcon: 'password', + placeholder: '请输入', + defaultValue: undefined, + span: 24, + 'show-password': true, + labelWidth: null, + style: { width: '100%' }, + clearable: true, + prepend: '', + append: '', + 'prefix-icon': '', + 'suffix-icon': '', + maxlength: null, + 'show-word-limit': false, + readonly: false, + disabled: false, + required: true, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/input' + }, + { + label: '计数器', + tag: 'el-input-number', + tagIcon: 'number', + placeholder: '', + defaultValue: undefined, + span: 24, + labelWidth: null, + min: undefined, + max: undefined, + step: undefined, + 'step-strictly': false, + precision: undefined, + 'controls-position': '', + disabled: false, + required: true, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/input-number' + } +] + +export const selectComponents = [ + { + label: '下拉选择', + tag: 'el-select', + tagIcon: 'select', + placeholder: '请选择', + defaultValue: undefined, + span: 24, + labelWidth: null, + style: { width: '100%' }, + clearable: true, + disabled: false, + required: true, + filterable: false, + multiple: false, + options: [{ + label: '选项一', + value: 1 + }, { + label: '选项二', + value: 2 + }], + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/select' + }, + { + label: '级联选择', + tag: 'el-cascader', + tagIcon: 'cascader', + placeholder: '请选择', + defaultValue: [], + span: 24, + labelWidth: null, + style: { width: '100%' }, + props: { + props: { + multiple: false + } + }, + 'show-all-levels': true, + disabled: false, + clearable: true, + filterable: false, + required: true, + options: [{ + id: 1, + value: 1, + label: '选项1', + children: [{ + id: 2, + value: 2, + label: '选项1-1' + }] + }], + dataType: 'dynamic', + labelKey: 'label', + valueKey: 'value', + childrenKey: 'children', + separator: '/', + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/cascader' + }, + { + label: '单选框组', + tag: 'el-radio-group', + tagIcon: 'radio', + defaultValue: undefined, + span: 24, + labelWidth: null, + style: {}, + optionType: 'default', + border: false, + size: 'medium', + disabled: false, + required: true, + options: [{ + label: '选项一', + value: 1 + }, { + label: '选项二', + value: 2 + }], + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/radio' + }, + { + label: '多选框组', + tag: 'el-checkbox-group', + tagIcon: 'checkbox', + defaultValue: [], + span: 24, + labelWidth: null, + style: {}, + optionType: 'default', + border: false, + size: 'medium', + disabled: false, + required: true, + options: [{ + label: '选项一', + value: 1 + }, { + label: '选项二', + value: 2 + }], + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/checkbox' + }, + { + label: '开关', + tag: 'el-switch', + tagIcon: 'switch', + defaultValue: false, + span: 24, + labelWidth: null, + style: {}, + disabled: false, + required: true, + 'active-text': '', + 'inactive-text': '', + 'active-color': null, + 'inactive-color': null, + 'active-value': true, + 'inactive-value': false, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/switch' + }, + { + label: '滑块', + tag: 'el-slider', + tagIcon: 'slider', + defaultValue: null, + span: 24, + labelWidth: null, + disabled: false, + required: true, + min: 0, + max: 100, + step: 1, + 'show-stops': false, + range: false, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/slider' + }, + { + label: '时间选择', + tag: 'el-time-picker', + tagIcon: 'time', + placeholder: '请选择', + defaultValue: null, + span: 24, + labelWidth: null, + style: { width: '100%' }, + disabled: false, + clearable: true, + required: true, + 'picker-options': { + selectableRange: '00:00:00-23:59:59' + }, + format: 'HH:mm:ss', + 'value-format': 'HH:mm:ss', + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/time-picker' + }, + { + label: '时间范围', + tag: 'el-time-picker', + tagIcon: 'time-range', + defaultValue: null, + span: 24, + labelWidth: null, + style: { width: '100%' }, + disabled: false, + clearable: true, + required: true, + 'is-range': true, + 'range-separator': '至', + 'start-placeholder': '开始时间', + 'end-placeholder': '结束时间', + format: 'HH:mm:ss', + 'value-format': 'HH:mm:ss', + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/time-picker' + }, + { + label: '日期选择', + tag: 'el-date-picker', + tagIcon: 'date', + placeholder: '请选择', + defaultValue: null, + type: 'date', + span: 24, + labelWidth: null, + style: { width: '100%' }, + disabled: false, + clearable: true, + required: true, + format: 'yyyy-MM-dd', + 'value-format': 'yyyy-MM-dd', + readonly: false, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/date-picker' + }, + { + label: '日期范围', + tag: 'el-date-picker', + tagIcon: 'date-range', + defaultValue: null, + span: 24, + labelWidth: null, + style: { width: '100%' }, + type: 'daterange', + 'range-separator': '至', + 'start-placeholder': '开始日期', + 'end-placeholder': '结束日期', + disabled: false, + clearable: true, + required: true, + format: 'yyyy-MM-dd', + 'value-format': 'yyyy-MM-dd', + readonly: false, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/date-picker' + }, + { + label: '评分', + tag: 'el-rate', + tagIcon: 'rate', + defaultValue: 0, + span: 24, + labelWidth: null, + style: {}, + max: 5, + 'allow-half': false, + 'show-text': false, + 'show-score': false, + disabled: false, + required: true, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/rate' + }, + { + label: '颜色选择', + tag: 'el-color-picker', + tagIcon: 'color', + defaultValue: null, + labelWidth: null, + 'show-alpha': false, + 'color-format': '', + disabled: false, + required: true, + size: 'medium', + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/color-picker' + }, + { + label: '上传', + tag: 'el-upload', + tagIcon: 'upload', + action: 'https://jsonplaceholder.typicode.com/posts/', + defaultValue: null, + labelWidth: null, + disabled: false, + required: true, + accept: '', + name: 'file', + 'auto-upload': true, + showTip: false, + buttonText: '点击上传', + fileSize: 2, + sizeUnit: 'MB', + 'list-type': 'text', + multiple: false, + regList: [], + changeTag: true, + document: 'https://element.eleme.cn/#/zh-CN/component/upload' + } +] + +export const layoutComponents = [ + { + layout: 'rowFormItem', + tagIcon: 'row', + type: 'default', + justify: 'start', + align: 'top', + label: '行容器', + layoutTree: true, + children: [], + document: 'https://element.eleme.cn/#/zh-CN/component/layout' + }, + { + layout: 'colFormItem', + label: '按钮', + changeTag: true, + labelWidth: null, + tag: 'el-button', + tagIcon: 'button', + span: 24, + default: '主要按钮', + type: 'primary', + icon: 'el-icon-search', + size: 'medium', + disabled: false, + document: 'https://element.eleme.cn/#/zh-CN/component/button' + } +] + +// 组件rule的触发方式,无触发方式的组件不生成rule +export const trigger = { + 'el-input': 'blur', + 'el-input-number': 'blur', + 'el-select': 'change', + 'el-radio-group': 'change', + 'el-checkbox-group': 'change', + 'el-cascader': 'change', + 'el-time-picker': 'change', + 'el-date-picker': 'change', + 'el-rate': 'change' +} diff --git a/ruoyi-ui/src/utils/generator/css.js b/yudao-admin-ui/src/utils/generator/css.js similarity index 96% rename from ruoyi-ui/src/utils/generator/css.js rename to yudao-admin-ui/src/utils/generator/css.js index 0d7f07526..c1c62e607 100644 --- a/ruoyi-ui/src/utils/generator/css.js +++ b/yudao-admin-ui/src/utils/generator/css.js @@ -1,18 +1,18 @@ -const styles = { - 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}', - 'el-upload': '.el-upload__tip{line-height: 1.2;}' -} - -function addCss(cssList, el) { - const css = styles[el.tag] - css && cssList.indexOf(css) === -1 && cssList.push(css) - if (el.children) { - el.children.forEach(el2 => addCss(cssList, el2)) - } -} - -export function makeUpCss(conf) { - const cssList = [] - conf.fields.forEach(el => addCss(cssList, el)) - return cssList.join('\n') -} +const styles = { + 'el-rate': '.el-rate{display: inline-block; vertical-align: text-top;}', + 'el-upload': '.el-upload__tip{line-height: 1.2;}' +} + +function addCss(cssList, el) { + const css = styles[el.tag] + css && cssList.indexOf(css) === -1 && cssList.push(css) + if (el.children) { + el.children.forEach(el2 => addCss(cssList, el2)) + } +} + +export function makeUpCss(conf) { + const cssList = [] + conf.fields.forEach(el => addCss(cssList, el)) + return cssList.join('\n') +} diff --git a/ruoyi-ui/src/utils/generator/drawingDefalut.js b/yudao-admin-ui/src/utils/generator/drawingDefalut.js similarity index 95% rename from ruoyi-ui/src/utils/generator/drawingDefalut.js rename to yudao-admin-ui/src/utils/generator/drawingDefalut.js index 5f7d1c4ae..09f133ca1 100644 --- a/ruoyi-ui/src/utils/generator/drawingDefalut.js +++ b/yudao-admin-ui/src/utils/generator/drawingDefalut.js @@ -1,29 +1,29 @@ -export default [ - { - layout: 'colFormItem', - tagIcon: 'input', - label: '手机号', - vModel: 'mobile', - formId: 6, - tag: 'el-input', - placeholder: '请输入手机号', - defaultValue: '', - span: 24, - style: { width: '100%' }, - clearable: true, - prepend: '', - append: '', - 'prefix-icon': 'el-icon-mobile', - 'suffix-icon': '', - maxlength: 11, - 'show-word-limit': true, - readonly: false, - disabled: false, - required: true, - changeTag: true, - regList: [{ - pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', - message: '手机号格式错误' - }] - } -] +export default [ + { + layout: 'colFormItem', + tagIcon: 'input', + label: '手机号', + vModel: 'mobile', + formId: 6, + tag: 'el-input', + placeholder: '请输入手机号', + defaultValue: '', + span: 24, + style: { width: '100%' }, + clearable: true, + prepend: '', + append: '', + 'prefix-icon': 'el-icon-mobile', + 'suffix-icon': '', + maxlength: 11, + 'show-word-limit': true, + readonly: false, + disabled: false, + required: true, + changeTag: true, + regList: [{ + pattern: '/^1(3|4|5|7|8|9)\\d{9}$/', + message: '手机号格式错误' + }] + } +] diff --git a/ruoyi-ui/src/utils/generator/html.js b/yudao-admin-ui/src/utils/generator/html.js similarity index 97% rename from ruoyi-ui/src/utils/generator/html.js rename to yudao-admin-ui/src/utils/generator/html.js index 340dfb439..ebf628d2b 100644 --- a/ruoyi-ui/src/utils/generator/html.js +++ b/yudao-admin-ui/src/utils/generator/html.js @@ -1,359 +1,359 @@ -/* eslint-disable max-len */ -import { trigger } from './config' - -let confGlobal -let someSpanIsNot24 - -export function dialogWrapper(str) { - return ` - ${str} -
- 取消 - 确定 -
-
` -} - -export function vueTemplate(str) { - return `` -} - -export function vueScript(str) { - return `` -} - -export function cssStyle(cssStr) { - return `` -} - -function buildFormTemplate(conf, child, type) { - let labelPosition = '' - if (conf.labelPosition !== 'right') { - labelPosition = `label-position="${conf.labelPosition}"` - } - const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : '' - let str = ` - ${child} - ${buildFromBtns(conf, type)} - ` - if (someSpanIsNot24) { - str = ` - ${str} - ` - } - return str -} - -function buildFromBtns(conf, type) { - let str = '' - if (conf.formBtns && type === 'file') { - str = ` - 提交 - 重置 - ` - if (someSpanIsNot24) { - str = ` - ${str} - ` - } - } - return str -} - -// span不为24的用el-col包裹 -function colWrapper(element, str) { - if (someSpanIsNot24 || element.span !== 24) { - return ` - ${str} - ` - } - return str -} - -const layouts = { - colFormItem(element) { - let labelWidth = '' - if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) { - labelWidth = `label-width="${element.labelWidth}px"` - } - const required = !trigger[element.tag] && element.required ? 'required' : '' - const tagDom = tags[element.tag] ? tags[element.tag](element) : null - let str = ` - ${tagDom} - ` - str = colWrapper(element, str) - return str - }, - rowFormItem(element) { - const type = element.type === 'default' ? '' : `type="${element.type}"` - const justify = element.type === 'default' ? '' : `justify="${element.justify}"` - const align = element.type === 'default' ? '' : `align="${element.align}"` - const gutter = element.gutter ? `gutter="${element.gutter}"` : '' - const children = element.children.map(el => layouts[el.layout](el)) - let str = ` - ${children.join('\n')} - ` - str = colWrapper(element, str) - return str - } -} - -const tags = { - 'el-button': el => { - const { - tag, disabled - } = attrBuilder(el) - const type = el.type ? `type="${el.type}"` : '' - const icon = el.icon ? `icon="${el.icon}"` : '' - const size = el.size ? `size="${el.size}"` : '' - let child = buildElButtonChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}` - }, - 'el-input': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : '' - const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : '' - const readonly = el.readonly ? 'readonly' : '' - const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : '' - const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : '' - const showPassword = el['show-password'] ? 'show-password' : '' - const type = el.type ? `type="${el.type}"` : '' - const autosize = el.autosize && el.autosize.minRows - ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"` - : '' - let child = buildElInputChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}` - }, - 'el-input-number': el => { - const { disabled, vModel, placeholder } = attrBuilder(el) - const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : '' - const min = el.min ? `:min='${el.min}'` : '' - const max = el.max ? `:max='${el.max}'` : '' - const step = el.step ? `:step='${el.step}'` : '' - const stepStrictly = el['step-strictly'] ? 'step-strictly' : '' - const precision = el.precision ? `:precision='${el.precision}'` : '' - - return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>` - }, - 'el-select': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const filterable = el.filterable ? 'filterable' : '' - const multiple = el.multiple ? 'multiple' : '' - let child = buildElSelectChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}` - }, - 'el-radio-group': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - let child = buildElRadioGroupChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${size} ${disabled}>${child}` - }, - 'el-checkbox-group': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - const min = el.min ? `:min="${el.min}"` : '' - const max = el.max ? `:max="${el.max}"` : '' - let child = buildElCheckboxGroupChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}` - }, - 'el-switch': el => { - const { disabled, vModel } = attrBuilder(el) - const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : '' - const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : '' - const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : '' - const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : '' - const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : '' - const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : '' - - return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>` - }, - 'el-cascader': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const options = el.options ? `:options="${el.vModel}Options"` : '' - const props = el.props ? `:props="${el.vModel}Props"` : '' - const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"' - const filterable = el.filterable ? 'filterable' : '' - const separator = el.separator === '/' ? '' : `separator="${el.separator}"` - - return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>` - }, - 'el-slider': el => { - const { disabled, vModel } = attrBuilder(el) - const min = el.min ? `:min='${el.min}'` : '' - const max = el.max ? `:max='${el.max}'` : '' - const step = el.step ? `:step='${el.step}'` : '' - const range = el.range ? 'range' : '' - const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : '' - - return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>` - }, - 'el-time-picker': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' - const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' - const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' - const isRange = el['is-range'] ? 'is-range' : '' - const format = el.format ? `format="${el.format}"` : '' - const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' - const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : '' - - return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>` - }, - 'el-date-picker': el => { - const { - disabled, vModel, clearable, placeholder, width - } = attrBuilder(el) - const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' - const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' - const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' - const format = el.format ? `format="${el.format}"` : '' - const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' - const type = el.type === 'date' ? '' : `type="${el.type}"` - const readonly = el.readonly ? 'readonly' : '' - - return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>` - }, - 'el-rate': el => { - const { disabled, vModel } = attrBuilder(el) - const max = el.max ? `:max='${el.max}'` : '' - const allowHalf = el['allow-half'] ? 'allow-half' : '' - const showText = el['show-text'] ? 'show-text' : '' - const showScore = el['show-score'] ? 'show-score' : '' - - return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>` - }, - 'el-color-picker': el => { - const { disabled, vModel } = attrBuilder(el) - const size = `size="${el.size}"` - const showAlpha = el['show-alpha'] ? 'show-alpha' : '' - const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : '' - - return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>` - }, - 'el-upload': el => { - const disabled = el.disabled ? ':disabled=\'true\'' : '' - const action = el.action ? `:action="${el.vModel}Action"` : '' - const multiple = el.multiple ? 'multiple' : '' - const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : '' - const accept = el.accept ? `accept="${el.accept}"` : '' - const name = el.name !== 'file' ? `name="${el.name}"` : '' - const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : '' - const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"` - const fileList = `:file-list="${el.vModel}fileList"` - const ref = `ref="${el.vModel}"` - let child = buildElUploadChild(el) - - if (child) child = `\n${child}\n` // 换行 - return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}` - } -} - -function attrBuilder(el) { - return { - vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`, - clearable: el.clearable ? 'clearable' : '', - placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '', - width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '', - disabled: el.disabled ? ':disabled=\'true\'' : '' - } -} - -// el-buttin 子级 -function buildElButtonChild(conf) { - const children = [] - if (conf.default) { - children.push(conf.default) - } - return children.join('\n') -} - -// el-input innerHTML -function buildElInputChild(conf) { - const children = [] - if (conf.prepend) { - children.push(``) - } - if (conf.append) { - children.push(``) - } - return children.join('\n') -} - -function buildElSelectChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - children.push(``) - } - return children.join('\n') -} - -function buildElRadioGroupChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio' - const border = conf.border ? 'border' : '' - children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) - } - return children.join('\n') -} - -function buildElCheckboxGroupChild(conf) { - const children = [] - if (conf.options && conf.options.length) { - const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox' - const border = conf.border ? 'border' : '' - children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) - } - return children.join('\n') -} - -function buildElUploadChild(conf) { - const list = [] - if (conf['list-type'] === 'picture-card') list.push('') - else list.push(`${conf.buttonText}`) - if (conf.showTip) list.push(`
只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`) - return list.join('\n') -} - -export function makeUpHtml(conf, type) { - const htmlList = [] - confGlobal = conf - someSpanIsNot24 = conf.fields.some(item => item.span !== 24) - conf.fields.forEach(el => { - htmlList.push(layouts[el.layout](el)) - }) - const htmlStr = htmlList.join('\n') - - let temp = buildFormTemplate(conf, htmlStr, type) - if (type === 'dialog') { - temp = dialogWrapper(temp) - } - confGlobal = null - return temp -} +/* eslint-disable max-len */ +import { trigger } from './config' + +let confGlobal +let someSpanIsNot24 + +export function dialogWrapper(str) { + return ` + ${str} +
+ 取消 + 确定 +
+
` +} + +export function vueTemplate(str) { + return `` +} + +export function vueScript(str) { + return `` +} + +export function cssStyle(cssStr) { + return `` +} + +function buildFormTemplate(conf, child, type) { + let labelPosition = '' + if (conf.labelPosition !== 'right') { + labelPosition = `label-position="${conf.labelPosition}"` + } + const disabled = conf.disabled ? `:disabled="${conf.disabled}"` : '' + let str = ` + ${child} + ${buildFromBtns(conf, type)} + ` + if (someSpanIsNot24) { + str = ` + ${str} + ` + } + return str +} + +function buildFromBtns(conf, type) { + let str = '' + if (conf.formBtns && type === 'file') { + str = ` + 提交 + 重置 + ` + if (someSpanIsNot24) { + str = ` + ${str} + ` + } + } + return str +} + +// span不为24的用el-col包裹 +function colWrapper(element, str) { + if (someSpanIsNot24 || element.span !== 24) { + return ` + ${str} + ` + } + return str +} + +const layouts = { + colFormItem(element) { + let labelWidth = '' + if (element.labelWidth && element.labelWidth !== confGlobal.labelWidth) { + labelWidth = `label-width="${element.labelWidth}px"` + } + const required = !trigger[element.tag] && element.required ? 'required' : '' + const tagDom = tags[element.tag] ? tags[element.tag](element) : null + let str = ` + ${tagDom} + ` + str = colWrapper(element, str) + return str + }, + rowFormItem(element) { + const type = element.type === 'default' ? '' : `type="${element.type}"` + const justify = element.type === 'default' ? '' : `justify="${element.justify}"` + const align = element.type === 'default' ? '' : `align="${element.align}"` + const gutter = element.gutter ? `gutter="${element.gutter}"` : '' + const children = element.children.map(el => layouts[el.layout](el)) + let str = ` + ${children.join('\n')} + ` + str = colWrapper(element, str) + return str + } +} + +const tags = { + 'el-button': el => { + const { + tag, disabled + } = attrBuilder(el) + const type = el.type ? `type="${el.type}"` : '' + const icon = el.icon ? `icon="${el.icon}"` : '' + const size = el.size ? `size="${el.size}"` : '' + let child = buildElButtonChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${type} ${icon} ${size} ${disabled}>${child}` + }, + 'el-input': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const maxlength = el.maxlength ? `:maxlength="${el.maxlength}"` : '' + const showWordLimit = el['show-word-limit'] ? 'show-word-limit' : '' + const readonly = el.readonly ? 'readonly' : '' + const prefixIcon = el['prefix-icon'] ? `prefix-icon='${el['prefix-icon']}'` : '' + const suffixIcon = el['suffix-icon'] ? `suffix-icon='${el['suffix-icon']}'` : '' + const showPassword = el['show-password'] ? 'show-password' : '' + const type = el.type ? `type="${el.type}"` : '' + const autosize = el.autosize && el.autosize.minRows + ? `:autosize="{minRows: ${el.autosize.minRows}, maxRows: ${el.autosize.maxRows}}"` + : '' + let child = buildElInputChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${type} ${placeholder} ${maxlength} ${showWordLimit} ${readonly} ${disabled} ${clearable} ${prefixIcon} ${suffixIcon} ${showPassword} ${autosize} ${width}>${child}` + }, + 'el-input-number': el => { + const { disabled, vModel, placeholder } = attrBuilder(el) + const controlsPosition = el['controls-position'] ? `controls-position=${el['controls-position']}` : '' + const min = el.min ? `:min='${el.min}'` : '' + const max = el.max ? `:max='${el.max}'` : '' + const step = el.step ? `:step='${el.step}'` : '' + const stepStrictly = el['step-strictly'] ? 'step-strictly' : '' + const precision = el.precision ? `:precision='${el.precision}'` : '' + + return `<${el.tag} ${vModel} ${placeholder} ${step} ${stepStrictly} ${precision} ${controlsPosition} ${min} ${max} ${disabled}>` + }, + 'el-select': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const filterable = el.filterable ? 'filterable' : '' + const multiple = el.multiple ? 'multiple' : '' + let child = buildElSelectChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${placeholder} ${disabled} ${multiple} ${filterable} ${clearable} ${width}>${child}` + }, + 'el-radio-group': el => { + const { disabled, vModel } = attrBuilder(el) + const size = `size="${el.size}"` + let child = buildElRadioGroupChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${size} ${disabled}>${child}` + }, + 'el-checkbox-group': el => { + const { disabled, vModel } = attrBuilder(el) + const size = `size="${el.size}"` + const min = el.min ? `:min="${el.min}"` : '' + const max = el.max ? `:max="${el.max}"` : '' + let child = buildElCheckboxGroupChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${vModel} ${min} ${max} ${size} ${disabled}>${child}` + }, + 'el-switch': el => { + const { disabled, vModel } = attrBuilder(el) + const activeText = el['active-text'] ? `active-text="${el['active-text']}"` : '' + const inactiveText = el['inactive-text'] ? `inactive-text="${el['inactive-text']}"` : '' + const activeColor = el['active-color'] ? `active-color="${el['active-color']}"` : '' + const inactiveColor = el['inactive-color'] ? `inactive-color="${el['inactive-color']}"` : '' + const activeValue = el['active-value'] !== true ? `:active-value='${JSON.stringify(el['active-value'])}'` : '' + const inactiveValue = el['inactive-value'] !== false ? `:inactive-value='${JSON.stringify(el['inactive-value'])}'` : '' + + return `<${el.tag} ${vModel} ${activeText} ${inactiveText} ${activeColor} ${inactiveColor} ${activeValue} ${inactiveValue} ${disabled}>` + }, + 'el-cascader': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const options = el.options ? `:options="${el.vModel}Options"` : '' + const props = el.props ? `:props="${el.vModel}Props"` : '' + const showAllLevels = el['show-all-levels'] ? '' : ':show-all-levels="false"' + const filterable = el.filterable ? 'filterable' : '' + const separator = el.separator === '/' ? '' : `separator="${el.separator}"` + + return `<${el.tag} ${vModel} ${options} ${props} ${width} ${showAllLevels} ${placeholder} ${separator} ${filterable} ${clearable} ${disabled}>` + }, + 'el-slider': el => { + const { disabled, vModel } = attrBuilder(el) + const min = el.min ? `:min='${el.min}'` : '' + const max = el.max ? `:max='${el.max}'` : '' + const step = el.step ? `:step='${el.step}'` : '' + const range = el.range ? 'range' : '' + const showStops = el['show-stops'] ? `:show-stops="${el['show-stops']}"` : '' + + return `<${el.tag} ${min} ${max} ${step} ${vModel} ${range} ${showStops} ${disabled}>` + }, + 'el-time-picker': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' + const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' + const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' + const isRange = el['is-range'] ? 'is-range' : '' + const format = el.format ? `format="${el.format}"` : '' + const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' + const pickerOptions = el['picker-options'] ? `:picker-options='${JSON.stringify(el['picker-options'])}'` : '' + + return `<${el.tag} ${vModel} ${isRange} ${format} ${valueFormat} ${pickerOptions} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${disabled}>` + }, + 'el-date-picker': el => { + const { + disabled, vModel, clearable, placeholder, width + } = attrBuilder(el) + const startPlaceholder = el['start-placeholder'] ? `start-placeholder="${el['start-placeholder']}"` : '' + const endPlaceholder = el['end-placeholder'] ? `end-placeholder="${el['end-placeholder']}"` : '' + const rangeSeparator = el['range-separator'] ? `range-separator="${el['range-separator']}"` : '' + const format = el.format ? `format="${el.format}"` : '' + const valueFormat = el['value-format'] ? `value-format="${el['value-format']}"` : '' + const type = el.type === 'date' ? '' : `type="${el.type}"` + const readonly = el.readonly ? 'readonly' : '' + + return `<${el.tag} ${type} ${vModel} ${format} ${valueFormat} ${width} ${placeholder} ${startPlaceholder} ${endPlaceholder} ${rangeSeparator} ${clearable} ${readonly} ${disabled}>` + }, + 'el-rate': el => { + const { disabled, vModel } = attrBuilder(el) + const max = el.max ? `:max='${el.max}'` : '' + const allowHalf = el['allow-half'] ? 'allow-half' : '' + const showText = el['show-text'] ? 'show-text' : '' + const showScore = el['show-score'] ? 'show-score' : '' + + return `<${el.tag} ${vModel} ${allowHalf} ${showText} ${showScore} ${disabled}>` + }, + 'el-color-picker': el => { + const { disabled, vModel } = attrBuilder(el) + const size = `size="${el.size}"` + const showAlpha = el['show-alpha'] ? 'show-alpha' : '' + const colorFormat = el['color-format'] ? `color-format="${el['color-format']}"` : '' + + return `<${el.tag} ${vModel} ${size} ${showAlpha} ${colorFormat} ${disabled}>` + }, + 'el-upload': el => { + const disabled = el.disabled ? ':disabled=\'true\'' : '' + const action = el.action ? `:action="${el.vModel}Action"` : '' + const multiple = el.multiple ? 'multiple' : '' + const listType = el['list-type'] !== 'text' ? `list-type="${el['list-type']}"` : '' + const accept = el.accept ? `accept="${el.accept}"` : '' + const name = el.name !== 'file' ? `name="${el.name}"` : '' + const autoUpload = el['auto-upload'] === false ? ':auto-upload="false"' : '' + const beforeUpload = `:before-upload="${el.vModel}BeforeUpload"` + const fileList = `:file-list="${el.vModel}fileList"` + const ref = `ref="${el.vModel}"` + let child = buildElUploadChild(el) + + if (child) child = `\n${child}\n` // 换行 + return `<${el.tag} ${ref} ${fileList} ${action} ${autoUpload} ${multiple} ${beforeUpload} ${listType} ${accept} ${name} ${disabled}>${child}` + } +} + +function attrBuilder(el) { + return { + vModel: `v-model="${confGlobal.formModel}.${el.vModel}"`, + clearable: el.clearable ? 'clearable' : '', + placeholder: el.placeholder ? `placeholder="${el.placeholder}"` : '', + width: el.style && el.style.width ? ':style="{width: \'100%\'}"' : '', + disabled: el.disabled ? ':disabled=\'true\'' : '' + } +} + +// el-buttin 子级 +function buildElButtonChild(conf) { + const children = [] + if (conf.default) { + children.push(conf.default) + } + return children.join('\n') +} + +// el-input innerHTML +function buildElInputChild(conf) { + const children = [] + if (conf.prepend) { + children.push(``) + } + if (conf.append) { + children.push(``) + } + return children.join('\n') +} + +function buildElSelectChild(conf) { + const children = [] + if (conf.options && conf.options.length) { + children.push(``) + } + return children.join('\n') +} + +function buildElRadioGroupChild(conf) { + const children = [] + if (conf.options && conf.options.length) { + const tag = conf.optionType === 'button' ? 'el-radio-button' : 'el-radio' + const border = conf.border ? 'border' : '' + children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) + } + return children.join('\n') +} + +function buildElCheckboxGroupChild(conf) { + const children = [] + if (conf.options && conf.options.length) { + const tag = conf.optionType === 'button' ? 'el-checkbox-button' : 'el-checkbox' + const border = conf.border ? 'border' : '' + children.push(`<${tag} v-for="(item, index) in ${conf.vModel}Options" :key="index" :label="item.value" :disabled="item.disabled" ${border}>{{item.label}}`) + } + return children.join('\n') +} + +function buildElUploadChild(conf) { + const list = [] + if (conf['list-type'] === 'picture-card') list.push('') + else list.push(`${conf.buttonText}`) + if (conf.showTip) list.push(`
只能上传不超过 ${conf.fileSize}${conf.sizeUnit} 的${conf.accept}文件
`) + return list.join('\n') +} + +export function makeUpHtml(conf, type) { + const htmlList = [] + confGlobal = conf + someSpanIsNot24 = conf.fields.some(item => item.span !== 24) + conf.fields.forEach(el => { + htmlList.push(layouts[el.layout](el)) + }) + const htmlStr = htmlList.join('\n') + + let temp = buildFormTemplate(conf, htmlStr, type) + if (type === 'dialog') { + temp = dialogWrapper(temp) + } + confGlobal = null + return temp +} diff --git a/ruoyi-ui/src/utils/generator/icon.json b/yudao-admin-ui/src/utils/generator/icon.json similarity index 100% rename from ruoyi-ui/src/utils/generator/icon.json rename to yudao-admin-ui/src/utils/generator/icon.json diff --git a/ruoyi-ui/src/utils/generator/js.js b/yudao-admin-ui/src/utils/generator/js.js similarity index 96% rename from ruoyi-ui/src/utils/generator/js.js rename to yudao-admin-ui/src/utils/generator/js.js index 81afc7004..c6c06a996 100644 --- a/ruoyi-ui/src/utils/generator/js.js +++ b/yudao-admin-ui/src/utils/generator/js.js @@ -1,236 +1,236 @@ -import { isArray } from 'util' -import { exportDefault, titleCase } from '@/utils/index' -import { trigger } from './config' - -const units = { - KB: '1024', - MB: '1024 / 1024', - GB: '1024 / 1024 / 1024' -} -let confGlobal -const inheritAttrs = { - file: '', - dialog: 'inheritAttrs: false,' -} - - -export function makeUpJs(conf, type) { - confGlobal = conf = JSON.parse(JSON.stringify(conf)) - const dataList = [] - const ruleList = [] - const optionsList = [] - const propsList = [] - const methodList = mixinMethod(type) - const uploadVarList = [] - - conf.fields.forEach(el => { - buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) - }) - - const script = buildexport( - conf, - type, - dataList.join('\n'), - ruleList.join('\n'), - optionsList.join('\n'), - uploadVarList.join('\n'), - propsList.join('\n'), - methodList.join('\n') - ) - confGlobal = null - return script -} - -function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) { - buildData(el, dataList) - buildRules(el, ruleList) - - if (el.options && el.options.length) { - buildOptions(el, optionsList) - if (el.dataType === 'dynamic') { - const model = `${el.vModel}Options` - const options = titleCase(model) - buildOptionMethod(`get${options}`, model, methodList) - } - } - - if (el.props && el.props.props) { - buildProps(el, propsList) - } - - if (el.action && el.tag === 'el-upload') { - uploadVarList.push( - `${el.vModel}Action: '${el.action}', - ${el.vModel}fileList: [],` - ) - methodList.push(buildBeforeUpload(el)) - if (!el['auto-upload']) { - methodList.push(buildSubmitUpload(el)) - } - } - - if (el.children) { - el.children.forEach(el2 => { - buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) - }) - } -} - -function mixinMethod(type) { - const list = []; const - minxins = { - file: confGlobal.formBtns ? { - submitForm: `submitForm() { - this.$refs['${confGlobal.formRef}'].validate(valid => { - if(!valid) return - // TODO 提交表单 - }) - },`, - resetForm: `resetForm() { - this.$refs['${confGlobal.formRef}'].resetFields() - },` - } : null, - dialog: { - onOpen: 'onOpen() {},', - onClose: `onClose() { - this.$refs['${confGlobal.formRef}'].resetFields() - },`, - close: `close() { - this.$emit('update:visible', false) - },`, - handelConfirm: `handelConfirm() { - this.$refs['${confGlobal.formRef}'].validate(valid => { - if(!valid) return - this.close() - }) - },` - } - } - - const methods = minxins[type] - if (methods) { - Object.keys(methods).forEach(key => { - list.push(methods[key]) - }) - } - - return list -} - -function buildData(conf, dataList) { - if (conf.vModel === undefined) return - let defaultValue - if (typeof (conf.defaultValue) === 'string' && !conf.multiple) { - defaultValue = `'${conf.defaultValue}'` - } else { - defaultValue = `${JSON.stringify(conf.defaultValue)}` - } - dataList.push(`${conf.vModel}: ${defaultValue},`) -} - -function buildRules(conf, ruleList) { - if (conf.vModel === undefined) return - const rules = [] - if (trigger[conf.tag]) { - if (conf.required) { - const type = isArray(conf.defaultValue) ? 'type: \'array\',' : '' - let message = isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder - if (message === undefined) message = `${conf.label}不能为空` - rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`) - } - if (conf.regList && isArray(conf.regList)) { - conf.regList.forEach(item => { - if (item.pattern) { - rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`) - } - }) - } - ruleList.push(`${conf.vModel}: [${rules.join(',')}],`) - } -} - -function buildOptions(conf, optionsList) { - if (conf.vModel === undefined) return - if (conf.dataType === 'dynamic') { conf.options = [] } - const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},` - optionsList.push(str) -} - -function buildProps(conf, propsList) { - if (conf.dataType === 'dynamic') { - conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey) - conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey) - conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey) - } - const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},` - propsList.push(str) -} - -function buildBeforeUpload(conf) { - const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const - returnList = [] - if (conf.fileSize) { - rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize} - if(!isRightSize){ - this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}') - }` - returnList.push('isRightSize') - } - if (conf.accept) { - acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type) - if(!isAccept){ - this.$message.error('应该选择${conf.accept}类型的文件') - }` - returnList.push('isAccept') - } - const str = `${conf.vModel}BeforeUpload(file) { - ${rightSizeCode} - ${acceptCode} - return ${returnList.join('&&')} - },` - return returnList.length ? str : '' -} - -function buildSubmitUpload(conf) { - const str = `submitUpload() { - this.$refs['${conf.vModel}'].submit() - },` - return str -} - -function buildOptionMethod(methodName, model, methodList) { - const str = `${methodName}() { - // TODO 发起请求获取数据 - this.${model} - },` - methodList.push(str) -} - -function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) { - const str = `${exportDefault}{ - ${inheritAttrs[type]} - components: {}, - props: [], - data () { - return { - ${conf.formModel}: { - ${data} - }, - ${conf.formRules}: { - ${rules} - }, - ${uploadVar} - ${selectOptions} - ${props} - } - }, - computed: {}, - watch: {}, - created () {}, - mounted () {}, - methods: { - ${methods} - } -}` - return str -} +import { isArray } from 'util' +import { exportDefault, titleCase } from '@/utils/index' +import { trigger } from './config' + +const units = { + KB: '1024', + MB: '1024 / 1024', + GB: '1024 / 1024 / 1024' +} +let confGlobal +const inheritAttrs = { + file: '', + dialog: 'inheritAttrs: false,' +} + + +export function makeUpJs(conf, type) { + confGlobal = conf = JSON.parse(JSON.stringify(conf)) + const dataList = [] + const ruleList = [] + const optionsList = [] + const propsList = [] + const methodList = mixinMethod(type) + const uploadVarList = [] + + conf.fields.forEach(el => { + buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) + }) + + const script = buildexport( + conf, + type, + dataList.join('\n'), + ruleList.join('\n'), + optionsList.join('\n'), + uploadVarList.join('\n'), + propsList.join('\n'), + methodList.join('\n') + ) + confGlobal = null + return script +} + +function buildAttributes(el, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) { + buildData(el, dataList) + buildRules(el, ruleList) + + if (el.options && el.options.length) { + buildOptions(el, optionsList) + if (el.dataType === 'dynamic') { + const model = `${el.vModel}Options` + const options = titleCase(model) + buildOptionMethod(`get${options}`, model, methodList) + } + } + + if (el.props && el.props.props) { + buildProps(el, propsList) + } + + if (el.action && el.tag === 'el-upload') { + uploadVarList.push( + `${el.vModel}Action: '${el.action}', + ${el.vModel}fileList: [],` + ) + methodList.push(buildBeforeUpload(el)) + if (!el['auto-upload']) { + methodList.push(buildSubmitUpload(el)) + } + } + + if (el.children) { + el.children.forEach(el2 => { + buildAttributes(el2, dataList, ruleList, optionsList, methodList, propsList, uploadVarList) + }) + } +} + +function mixinMethod(type) { + const list = []; const + minxins = { + file: confGlobal.formBtns ? { + submitForm: `submitForm() { + this.$refs['${confGlobal.formRef}'].validate(valid => { + if(!valid) return + // TODO 提交表单 + }) + },`, + resetForm: `resetForm() { + this.$refs['${confGlobal.formRef}'].resetFields() + },` + } : null, + dialog: { + onOpen: 'onOpen() {},', + onClose: `onClose() { + this.$refs['${confGlobal.formRef}'].resetFields() + },`, + close: `close() { + this.$emit('update:visible', false) + },`, + handelConfirm: `handelConfirm() { + this.$refs['${confGlobal.formRef}'].validate(valid => { + if(!valid) return + this.close() + }) + },` + } + } + + const methods = minxins[type] + if (methods) { + Object.keys(methods).forEach(key => { + list.push(methods[key]) + }) + } + + return list +} + +function buildData(conf, dataList) { + if (conf.vModel === undefined) return + let defaultValue + if (typeof (conf.defaultValue) === 'string' && !conf.multiple) { + defaultValue = `'${conf.defaultValue}'` + } else { + defaultValue = `${JSON.stringify(conf.defaultValue)}` + } + dataList.push(`${conf.vModel}: ${defaultValue},`) +} + +function buildRules(conf, ruleList) { + if (conf.vModel === undefined) return + const rules = [] + if (trigger[conf.tag]) { + if (conf.required) { + const type = isArray(conf.defaultValue) ? 'type: \'array\',' : '' + let message = isArray(conf.defaultValue) ? `请至少选择一个${conf.vModel}` : conf.placeholder + if (message === undefined) message = `${conf.label}不能为空` + rules.push(`{ required: true, ${type} message: '${message}', trigger: '${trigger[conf.tag]}' }`) + } + if (conf.regList && isArray(conf.regList)) { + conf.regList.forEach(item => { + if (item.pattern) { + rules.push(`{ pattern: ${eval(item.pattern)}, message: '${item.message}', trigger: '${trigger[conf.tag]}' }`) + } + }) + } + ruleList.push(`${conf.vModel}: [${rules.join(',')}],`) + } +} + +function buildOptions(conf, optionsList) { + if (conf.vModel === undefined) return + if (conf.dataType === 'dynamic') { conf.options = [] } + const str = `${conf.vModel}Options: ${JSON.stringify(conf.options)},` + optionsList.push(str) +} + +function buildProps(conf, propsList) { + if (conf.dataType === 'dynamic') { + conf.valueKey !== 'value' && (conf.props.props.value = conf.valueKey) + conf.labelKey !== 'label' && (conf.props.props.label = conf.labelKey) + conf.childrenKey !== 'children' && (conf.props.props.children = conf.childrenKey) + } + const str = `${conf.vModel}Props: ${JSON.stringify(conf.props.props)},` + propsList.push(str) +} + +function buildBeforeUpload(conf) { + const unitNum = units[conf.sizeUnit]; let rightSizeCode = ''; let acceptCode = ''; const + returnList = [] + if (conf.fileSize) { + rightSizeCode = `let isRightSize = file.size / ${unitNum} < ${conf.fileSize} + if(!isRightSize){ + this.$message.error('文件大小超过 ${conf.fileSize}${conf.sizeUnit}') + }` + returnList.push('isRightSize') + } + if (conf.accept) { + acceptCode = `let isAccept = new RegExp('${conf.accept}').test(file.type) + if(!isAccept){ + this.$message.error('应该选择${conf.accept}类型的文件') + }` + returnList.push('isAccept') + } + const str = `${conf.vModel}BeforeUpload(file) { + ${rightSizeCode} + ${acceptCode} + return ${returnList.join('&&')} + },` + return returnList.length ? str : '' +} + +function buildSubmitUpload(conf) { + const str = `submitUpload() { + this.$refs['${conf.vModel}'].submit() + },` + return str +} + +function buildOptionMethod(methodName, model, methodList) { + const str = `${methodName}() { + // TODO 发起请求获取数据 + this.${model} + },` + methodList.push(str) +} + +function buildexport(conf, type, data, rules, selectOptions, uploadVar, props, methods) { + const str = `${exportDefault}{ + ${inheritAttrs[type]} + components: {}, + props: [], + data () { + return { + ${conf.formModel}: { + ${data} + }, + ${conf.formRules}: { + ${rules} + }, + ${uploadVar} + ${selectOptions} + ${props} + } + }, + computed: {}, + watch: {}, + created () {}, + mounted () {}, + methods: { + ${methods} + } +}` + return str +} diff --git a/ruoyi-ui/src/utils/generator/render.js b/yudao-admin-ui/src/utils/generator/render.js similarity index 96% rename from ruoyi-ui/src/utils/generator/render.js rename to yudao-admin-ui/src/utils/generator/render.js index f187029d2..e8640f0a2 100644 --- a/ruoyi-ui/src/utils/generator/render.js +++ b/yudao-admin-ui/src/utils/generator/render.js @@ -1,126 +1,126 @@ -import { makeMap } from '@/utils/index' - -// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js -const isAttr = makeMap( - 'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,' - + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,' - + 'checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,' - + 'name,contenteditable,contextmenu,controls,coords,data,datetime,default,' - + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,' - + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,' - + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,' - + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,' - + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,' - + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,' - + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,' - + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,' - + 'target,title,type,usemap,value,width,wrap' -) - -function vModel(self, dataObject, defaultValue) { - dataObject.props.value = defaultValue - - dataObject.on.input = val => { - self.$emit('input', val) - } -} - -const componentChild = { - 'el-button': { - default(h, conf, key) { - return conf[key] - }, - }, - 'el-input': { - prepend(h, conf, key) { - return - }, - append(h, conf, key) { - return - } - }, - 'el-select': { - options(h, conf, key) { - const list = [] - conf.options.forEach(item => { - list.push() - }) - return list - } - }, - 'el-radio-group': { - options(h, conf, key) { - const list = [] - conf.options.forEach(item => { - if (conf.optionType === 'button') list.push({item.label}) - else list.push({item.label}) - }) - return list - } - }, - 'el-checkbox-group': { - options(h, conf, key) { - const list = [] - conf.options.forEach(item => { - if (conf.optionType === 'button') { - list.push({item.label}) - } else { - list.push({item.label}) - } - }) - return list - } - }, - 'el-upload': { - 'list-type': (h, conf, key) => { - const list = [] - if (conf['list-type'] === 'picture-card') { - list.push() - } else { - list.push({conf.buttonText}) - } - if (conf.showTip) { - list.push(
只能上传不超过 {conf.fileSize}{conf.sizeUnit} 的{conf.accept}文件
) - } - return list - } - } -} - -export default { - render(h) { - const dataObject = { - attrs: {}, - props: {}, - on: {}, - style: {} - } - const confClone = JSON.parse(JSON.stringify(this.conf)) - const children = [] - - const childObjs = componentChild[confClone.tag] - if (childObjs) { - Object.keys(childObjs).forEach(key => { - const childFunc = childObjs[key] - if (confClone[key]) { - children.push(childFunc(h, confClone, key)) - } - }) - } - - Object.keys(confClone).forEach(key => { - const val = confClone[key] - if (key === 'vModel') { - vModel(this, dataObject, confClone.defaultValue) - } else if (dataObject[key]) { - dataObject[key] = val - } else if (!isAttr(key)) { - dataObject.props[key] = val - } else { - dataObject.attrs[key] = val - } - }) - return h(this.conf.tag, dataObject, children) - }, - props: ['conf'] -} +import { makeMap } from '@/utils/index' + +// 参考https://github.com/vuejs/vue/blob/v2.6.10/src/platforms/web/server/util.js +const isAttr = makeMap( + 'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,' + + 'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,' + + 'checked,cite,class,code,codebase,color,cols,colspan,content,http-equiv,' + + 'name,contenteditable,contextmenu,controls,coords,data,datetime,default,' + + 'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,method,for,' + + 'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,' + + 'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,' + + 'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,' + + 'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,' + + 'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,' + + 'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,' + + 'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,' + + 'target,title,type,usemap,value,width,wrap' +) + +function vModel(self, dataObject, defaultValue) { + dataObject.props.value = defaultValue + + dataObject.on.input = val => { + self.$emit('input', val) + } +} + +const componentChild = { + 'el-button': { + default(h, conf, key) { + return conf[key] + }, + }, + 'el-input': { + prepend(h, conf, key) { + return + }, + append(h, conf, key) { + return + } + }, + 'el-select': { + options(h, conf, key) { + const list = [] + conf.options.forEach(item => { + list.push() + }) + return list + } + }, + 'el-radio-group': { + options(h, conf, key) { + const list = [] + conf.options.forEach(item => { + if (conf.optionType === 'button') list.push({item.label}) + else list.push({item.label}) + }) + return list + } + }, + 'el-checkbox-group': { + options(h, conf, key) { + const list = [] + conf.options.forEach(item => { + if (conf.optionType === 'button') { + list.push({item.label}) + } else { + list.push({item.label}) + } + }) + return list + } + }, + 'el-upload': { + 'list-type': (h, conf, key) => { + const list = [] + if (conf['list-type'] === 'picture-card') { + list.push() + } else { + list.push({conf.buttonText}) + } + if (conf.showTip) { + list.push(
只能上传不超过 {conf.fileSize}{conf.sizeUnit} 的{conf.accept}文件
) + } + return list + } + } +} + +export default { + render(h) { + const dataObject = { + attrs: {}, + props: {}, + on: {}, + style: {} + } + const confClone = JSON.parse(JSON.stringify(this.conf)) + const children = [] + + const childObjs = componentChild[confClone.tag] + if (childObjs) { + Object.keys(childObjs).forEach(key => { + const childFunc = childObjs[key] + if (confClone[key]) { + children.push(childFunc(h, confClone, key)) + } + }) + } + + Object.keys(confClone).forEach(key => { + const val = confClone[key] + if (key === 'vModel') { + vModel(this, dataObject, confClone.defaultValue) + } else if (dataObject[key]) { + dataObject[key] = val + } else if (!isAttr(key)) { + dataObject.props[key] = val + } else { + dataObject.attrs[key] = val + } + }) + return h(this.conf.tag, dataObject, children) + }, + props: ['conf'] +} diff --git a/ruoyi-ui/src/utils/index.js b/yudao-admin-ui/src/utils/index.js similarity index 95% rename from ruoyi-ui/src/utils/index.js rename to yudao-admin-ui/src/utils/index.js index 2893bc83a..918580f7b 100644 --- a/ruoyi-ui/src/utils/index.js +++ b/yudao-admin-ui/src/utils/index.js @@ -1,390 +1,390 @@ -import { parseTime } from './ruoyi' - -/** - * 表格时间格式化 - */ -export function formatDate(cellValue) { - if (cellValue == null || cellValue == "") return ""; - var date = new Date(cellValue) - var year = date.getFullYear() - var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 - var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() - var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() - var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() - var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() - return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (('' + time).length === 10) { - time = parseInt(time) * 1000 - } else { - time = +time - } - const d = new Date(time) - const now = Date.now() - - const diff = (now - d) / 1000 - - if (diff < 30) { - return '刚刚' - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + '分钟前' - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + '小时前' - } else if (diff < 3600 * 24 * 2) { - return '1天前' - } - if (option) { - return parseTime(time, option) - } else { - return ( - d.getMonth() + - 1 + - '月' + - d.getDate() + - '日' + - d.getHours() + - '时' + - d.getMinutes() + - '分' - ) - } -} - -/** - * @param {string} url - * @returns {Object} - */ -export function getQueryObject(url) { - url = url == null ? window.location.href : url - const search = url.substring(url.lastIndexOf('?') + 1) - const obj = {} - const reg = /([^?&=]+)=([^?&=]*)/g - search.replace(reg, (rs, $1, $2) => { - const name = decodeURIComponent($1) - let val = decodeURIComponent($2) - val = String(val) - obj[name] = val - return rs - }) - return obj -} - -/** - * @param {string} input value - * @returns {number} output value - */ -export function byteLength(str) { - // returns the byte length of an utf8 string - let s = str.length - for (var i = str.length - 1; i >= 0; i--) { - const code = str.charCodeAt(i) - if (code > 0x7f && code <= 0x7ff) s++ - else if (code > 0x7ff && code <= 0xffff) s += 2 - if (code >= 0xDC00 && code <= 0xDFFF) i-- - } - return s -} - -/** - * @param {Array} actual - * @returns {Array} - */ -export function cleanArray(actual) { - const newArray = [] - for (let i = 0; i < actual.length; i++) { - if (actual[i]) { - newArray.push(actual[i]) - } - } - return newArray -} - -/** - * @param {Object} json - * @returns {Array} - */ -export function param(json) { - if (!json) return '' - return cleanArray( - Object.keys(json).map(key => { - if (json[key] === undefined) return '' - return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]) - }) - ).join('&') -} - -/** - * @param {string} url - * @returns {Object} - */ -export function param2Obj(url) { - const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') - if (!search) { - return {} - } - const obj = {} - const searchArr = search.split('&') - searchArr.forEach(v => { - const index = v.indexOf('=') - if (index !== -1) { - const name = v.substring(0, index) - const val = v.substring(index + 1, v.length) - obj[name] = val - } - }) - return obj -} - -/** - * @param {string} val - * @returns {string} - */ -export function html2Text(val) { - const div = document.createElement('div') - div.innerHTML = val - return div.textContent || div.innerText -} - -/** - * Merges two objects, giving the last one precedence - * @param {Object} target - * @param {(Object|Array)} source - * @returns {Object} - */ -export function objectMerge(target, source) { - if (typeof target !== 'object') { - target = {} - } - if (Array.isArray(source)) { - return source.slice() - } - Object.keys(source).forEach(property => { - const sourceProperty = source[property] - if (typeof sourceProperty === 'object') { - target[property] = objectMerge(target[property], sourceProperty) - } else { - target[property] = sourceProperty - } - }) - return target -} - -/** - * @param {HTMLElement} element - * @param {string} className - */ -export function toggleClass(element, className) { - if (!element || !className) { - return - } - let classString = element.className - const nameIndex = classString.indexOf(className) - if (nameIndex === -1) { - classString += '' + className - } else { - classString = - classString.substr(0, nameIndex) + - classString.substr(nameIndex + className.length) - } - element.className = classString -} - -/** - * @param {string} type - * @returns {Date} - */ -export function getTime(type) { - if (type === 'start') { - return new Date().getTime() - 3600 * 1000 * 24 * 90 - } else { - return new Date(new Date().toDateString()) - } -} - -/** - * @param {Function} func - * @param {number} wait - * @param {boolean} immediate - * @return {*} - */ -export function debounce(func, wait, immediate) { - let timeout, args, context, timestamp, result - - const later = function() { - // 据上一次触发时间间隔 - const last = +new Date() - timestamp - - // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait - if (last < wait && last > 0) { - timeout = setTimeout(later, wait - last) - } else { - timeout = null - // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 - if (!immediate) { - result = func.apply(context, args) - if (!timeout) context = args = null - } - } - } - - return function(...args) { - context = this - timestamp = +new Date() - const callNow = immediate && !timeout - // 如果延时不存在,重新设定延时 - if (!timeout) timeout = setTimeout(later, wait) - if (callNow) { - result = func.apply(context, args) - context = args = null - } - - return result - } -} - -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -export function deepClone(source) { - if (!source && typeof source !== 'object') { - throw new Error('error arguments', 'deepClone') - } - const targetObj = source.constructor === Array ? [] : {} - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === 'object') { - targetObj[keys] = deepClone(source[keys]) - } else { - targetObj[keys] = source[keys] - } - }) - return targetObj -} - -/** - * @param {Array} arr - * @returns {Array} - */ -export function uniqueArr(arr) { - return Array.from(new Set(arr)) -} - -/** - * @returns {string} - */ -export function createUniqueString() { - const timestamp = +new Date() + '' - const randomNum = parseInt((1 + Math.random()) * 65536) + '' - return (+(randomNum + timestamp)).toString(32) -} - -/** - * Check if an element has a class - * @param {HTMLElement} elm - * @param {string} cls - * @returns {boolean} - */ -export function hasClass(ele, cls) { - return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) -} - -/** - * Add class to element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function addClass(ele, cls) { - if (!hasClass(ele, cls)) ele.className += ' ' + cls -} - -/** - * Remove class from element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function removeClass(ele, cls) { - if (hasClass(ele, cls)) { - const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') - ele.className = ele.className.replace(reg, ' ') - } -} - -export function makeMap(str, expectsLowerCase) { - const map = Object.create(null) - const list = str.split(',') - for (let i = 0; i < list.length; i++) { - map[list[i]] = true - } - return expectsLowerCase - ? val => map[val.toLowerCase()] - : val => map[val] -} - -export const exportDefault = 'export default ' - -export const beautifierConf = { - html: { - indent_size: '2', - indent_char: ' ', - max_preserve_newlines: '-1', - preserve_newlines: false, - keep_array_indentation: false, - break_chained_methods: false, - indent_scripts: 'separate', - brace_style: 'end-expand', - space_before_conditional: true, - unescape_strings: false, - jslint_happy: false, - end_with_newline: true, - wrap_line_length: '110', - indent_inner_html: true, - comma_first: false, - e4x: true, - indent_empty_lines: true - }, - js: { - indent_size: '2', - indent_char: ' ', - max_preserve_newlines: '-1', - preserve_newlines: false, - keep_array_indentation: false, - break_chained_methods: false, - indent_scripts: 'normal', - brace_style: 'end-expand', - space_before_conditional: true, - unescape_strings: false, - jslint_happy: true, - end_with_newline: true, - wrap_line_length: '110', - indent_inner_html: true, - comma_first: false, - e4x: true, - indent_empty_lines: true - } -} - -// 首字母大小 -export function titleCase(str) { - return str.replace(/( |^)[a-z]/g, L => L.toUpperCase()) -} - -// 下划转驼峰 -export function camelCase(str) { - return str.replace(/-[a-z]/g, str1 => str1.substr(-1).toUpperCase()) -} - -export function isNumberStr(str) { - return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) -} - +import { parseTime } from './ruoyi' + +/** + * 表格时间格式化 + */ +export function formatDate(cellValue) { + if (cellValue == null || cellValue == "") return ""; + var date = new Date(cellValue) + var year = date.getFullYear() + var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 + var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() + var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() + var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() + var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() + return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds +} + +/** + * @param {number} time + * @param {string} option + * @returns {string} + */ +export function formatTime(time, option) { + if (('' + time).length === 10) { + time = parseInt(time) * 1000 + } else { + time = +time + } + const d = new Date(time) + const now = Date.now() + + const diff = (now - d) / 1000 + + if (diff < 30) { + return '刚刚' + } else if (diff < 3600) { + // less 1 hour + return Math.ceil(diff / 60) + '分钟前' + } else if (diff < 3600 * 24) { + return Math.ceil(diff / 3600) + '小时前' + } else if (diff < 3600 * 24 * 2) { + return '1天前' + } + if (option) { + return parseTime(time, option) + } else { + return ( + d.getMonth() + + 1 + + '月' + + d.getDate() + + '日' + + d.getHours() + + '时' + + d.getMinutes() + + '分' + ) + } +} + +/** + * @param {string} url + * @returns {Object} + */ +export function getQueryObject(url) { + url = url == null ? window.location.href : url + const search = url.substring(url.lastIndexOf('?') + 1) + const obj = {} + const reg = /([^?&=]+)=([^?&=]*)/g + search.replace(reg, (rs, $1, $2) => { + const name = decodeURIComponent($1) + let val = decodeURIComponent($2) + val = String(val) + obj[name] = val + return rs + }) + return obj +} + +/** + * @param {string} input value + * @returns {number} output value + */ +export function byteLength(str) { + // returns the byte length of an utf8 string + let s = str.length + for (var i = str.length - 1; i >= 0; i--) { + const code = str.charCodeAt(i) + if (code > 0x7f && code <= 0x7ff) s++ + else if (code > 0x7ff && code <= 0xffff) s += 2 + if (code >= 0xDC00 && code <= 0xDFFF) i-- + } + return s +} + +/** + * @param {Array} actual + * @returns {Array} + */ +export function cleanArray(actual) { + const newArray = [] + for (let i = 0; i < actual.length; i++) { + if (actual[i]) { + newArray.push(actual[i]) + } + } + return newArray +} + +/** + * @param {Object} json + * @returns {Array} + */ +export function param(json) { + if (!json) return '' + return cleanArray( + Object.keys(json).map(key => { + if (json[key] === undefined) return '' + return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]) + }) + ).join('&') +} + +/** + * @param {string} url + * @returns {Object} + */ +export function param2Obj(url) { + const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') + if (!search) { + return {} + } + const obj = {} + const searchArr = search.split('&') + searchArr.forEach(v => { + const index = v.indexOf('=') + if (index !== -1) { + const name = v.substring(0, index) + const val = v.substring(index + 1, v.length) + obj[name] = val + } + }) + return obj +} + +/** + * @param {string} val + * @returns {string} + */ +export function html2Text(val) { + const div = document.createElement('div') + div.innerHTML = val + return div.textContent || div.innerText +} + +/** + * Merges two objects, giving the last one precedence + * @param {Object} target + * @param {(Object|Array)} source + * @returns {Object} + */ +export function objectMerge(target, source) { + if (typeof target !== 'object') { + target = {} + } + if (Array.isArray(source)) { + return source.slice() + } + Object.keys(source).forEach(property => { + const sourceProperty = source[property] + if (typeof sourceProperty === 'object') { + target[property] = objectMerge(target[property], sourceProperty) + } else { + target[property] = sourceProperty + } + }) + return target +} + +/** + * @param {HTMLElement} element + * @param {string} className + */ +export function toggleClass(element, className) { + if (!element || !className) { + return + } + let classString = element.className + const nameIndex = classString.indexOf(className) + if (nameIndex === -1) { + classString += '' + className + } else { + classString = + classString.substr(0, nameIndex) + + classString.substr(nameIndex + className.length) + } + element.className = classString +} + +/** + * @param {string} type + * @returns {Date} + */ +export function getTime(type) { + if (type === 'start') { + return new Date().getTime() - 3600 * 1000 * 24 * 90 + } else { + return new Date(new Date().toDateString()) + } +} + +/** + * @param {Function} func + * @param {number} wait + * @param {boolean} immediate + * @return {*} + */ +export function debounce(func, wait, immediate) { + let timeout, args, context, timestamp, result + + const later = function() { + // 据上一次触发时间间隔 + const last = +new Date() - timestamp + + // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait + if (last < wait && last > 0) { + timeout = setTimeout(later, wait - last) + } else { + timeout = null + // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 + if (!immediate) { + result = func.apply(context, args) + if (!timeout) context = args = null + } + } + } + + return function(...args) { + context = this + timestamp = +new Date() + const callNow = immediate && !timeout + // 如果延时不存在,重新设定延时 + if (!timeout) timeout = setTimeout(later, wait) + if (callNow) { + result = func.apply(context, args) + context = args = null + } + + return result + } +} + +/** + * This is just a simple version of deep copy + * Has a lot of edge cases bug + * If you want to use a perfect deep copy, use lodash's _.cloneDeep + * @param {Object} source + * @returns {Object} + */ +export function deepClone(source) { + if (!source && typeof source !== 'object') { + throw new Error('error arguments', 'deepClone') + } + const targetObj = source.constructor === Array ? [] : {} + Object.keys(source).forEach(keys => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = deepClone(source[keys]) + } else { + targetObj[keys] = source[keys] + } + }) + return targetObj +} + +/** + * @param {Array} arr + * @returns {Array} + */ +export function uniqueArr(arr) { + return Array.from(new Set(arr)) +} + +/** + * @returns {string} + */ +export function createUniqueString() { + const timestamp = +new Date() + '' + const randomNum = parseInt((1 + Math.random()) * 65536) + '' + return (+(randomNum + timestamp)).toString(32) +} + +/** + * Check if an element has a class + * @param {HTMLElement} elm + * @param {string} cls + * @returns {boolean} + */ +export function hasClass(ele, cls) { + return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) +} + +/** + * Add class to element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function addClass(ele, cls) { + if (!hasClass(ele, cls)) ele.className += ' ' + cls +} + +/** + * Remove class from element + * @param {HTMLElement} elm + * @param {string} cls + */ +export function removeClass(ele, cls) { + if (hasClass(ele, cls)) { + const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') + ele.className = ele.className.replace(reg, ' ') + } +} + +export function makeMap(str, expectsLowerCase) { + const map = Object.create(null) + const list = str.split(',') + for (let i = 0; i < list.length; i++) { + map[list[i]] = true + } + return expectsLowerCase + ? val => map[val.toLowerCase()] + : val => map[val] +} + +export const exportDefault = 'export default ' + +export const beautifierConf = { + html: { + indent_size: '2', + indent_char: ' ', + max_preserve_newlines: '-1', + preserve_newlines: false, + keep_array_indentation: false, + break_chained_methods: false, + indent_scripts: 'separate', + brace_style: 'end-expand', + space_before_conditional: true, + unescape_strings: false, + jslint_happy: false, + end_with_newline: true, + wrap_line_length: '110', + indent_inner_html: true, + comma_first: false, + e4x: true, + indent_empty_lines: true + }, + js: { + indent_size: '2', + indent_char: ' ', + max_preserve_newlines: '-1', + preserve_newlines: false, + keep_array_indentation: false, + break_chained_methods: false, + indent_scripts: 'normal', + brace_style: 'end-expand', + space_before_conditional: true, + unescape_strings: false, + jslint_happy: true, + end_with_newline: true, + wrap_line_length: '110', + indent_inner_html: true, + comma_first: false, + e4x: true, + indent_empty_lines: true + } +} + +// 首字母大小 +export function titleCase(str) { + return str.replace(/( |^)[a-z]/g, L => L.toUpperCase()) +} + +// 下划转驼峰 +export function camelCase(str) { + return str.replace(/-[a-z]/g, str1 => str1.substr(-1).toUpperCase()) +} + +export function isNumberStr(str) { + return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) +} + diff --git a/ruoyi-ui/src/utils/jsencrypt.js b/yudao-admin-ui/src/utils/jsencrypt.js similarity index 100% rename from ruoyi-ui/src/utils/jsencrypt.js rename to yudao-admin-ui/src/utils/jsencrypt.js diff --git a/ruoyi-ui/src/utils/permission.js b/yudao-admin-ui/src/utils/permission.js similarity index 96% rename from ruoyi-ui/src/utils/permission.js rename to yudao-admin-ui/src/utils/permission.js index 25d1a0293..1730e332c 100644 --- a/ruoyi-ui/src/utils/permission.js +++ b/yudao-admin-ui/src/utils/permission.js @@ -1,51 +1,51 @@ -import store from '@/store' - -/** - * 字符权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkPermi(value) { - if (value && value instanceof Array && value.length > 0) { - const permissions = store.getters && store.getters.permissions - const permissionDatas = value - const all_permission = "*:*:*"; - - const hasPermission = permissions.some(permission => { - return all_permission === permission || permissionDatas.includes(permission) - }) - - if (!hasPermission) { - return false - } - return true - } else { - console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) - return false - } -} - -/** - * 角色权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkRole(value) { - if (value && value instanceof Array && value.length > 0) { - const roles = store.getters && store.getters.roles - const permissionRoles = value - const super_admin = "admin"; - - const hasRole = roles.some(role => { - return super_admin === role || permissionRoles.includes(role) - }) - - if (!hasRole) { - return false - } - return true - } else { - console.error(`need roles! Like checkRole="['admin','editor']"`) - return false - } +import store from '@/store' + +/** + * 字符权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export function checkPermi(value) { + if (value && value instanceof Array && value.length > 0) { + const permissions = store.getters && store.getters.permissions + const permissionDatas = value + const all_permission = "*:*:*"; + + const hasPermission = permissions.some(permission => { + return all_permission === permission || permissionDatas.includes(permission) + }) + + if (!hasPermission) { + return false + } + return true + } else { + console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) + return false + } +} + +/** + * 角色权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export function checkRole(value) { + if (value && value instanceof Array && value.length > 0) { + const roles = store.getters && store.getters.roles + const permissionRoles = value + const super_admin = "admin"; + + const hasRole = roles.some(role => { + return super_admin === role || permissionRoles.includes(role) + }) + + if (!hasRole) { + return false + } + return true + } else { + console.error(`need roles! Like checkRole="['admin','editor']"`) + return false + } } \ No newline at end of file diff --git a/ruoyi-ui/src/utils/request.js b/yudao-admin-ui/src/utils/request.js similarity index 100% rename from ruoyi-ui/src/utils/request.js rename to yudao-admin-ui/src/utils/request.js diff --git a/ruoyi-ui/src/utils/ruoyi.js b/yudao-admin-ui/src/utils/ruoyi.js similarity index 100% rename from ruoyi-ui/src/utils/ruoyi.js rename to yudao-admin-ui/src/utils/ruoyi.js diff --git a/ruoyi-ui/src/utils/scroll-to.js b/yudao-admin-ui/src/utils/scroll-to.js similarity index 96% rename from ruoyi-ui/src/utils/scroll-to.js rename to yudao-admin-ui/src/utils/scroll-to.js index 709fa5745..c5d8e04e0 100644 --- a/ruoyi-ui/src/utils/scroll-to.js +++ b/yudao-admin-ui/src/utils/scroll-to.js @@ -1,58 +1,58 @@ -Math.easeInOutQuad = function(t, b, c, d) { - t /= d / 2 - if (t < 1) { - return c / 2 * t * t + b - } - t-- - return -c / 2 * (t * (t - 2) - 1) + b -} - -// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts -var requestAnimFrame = (function() { - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } -})() - -/** - * Because it's so fucking difficult to detect the scrolling element, just move them all - * @param {number} amount - */ -function move(amount) { - document.documentElement.scrollTop = amount - document.body.parentNode.scrollTop = amount - document.body.scrollTop = amount -} - -function position() { - return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop -} - -/** - * @param {number} to - * @param {number} duration - * @param {Function} callback - */ -export function scrollTo(to, duration, callback) { - const start = position() - const change = to - start - const increment = 20 - let currentTime = 0 - duration = (typeof (duration) === 'undefined') ? 500 : duration - var animateScroll = function() { - // increment the time - currentTime += increment - // find the value with the quadratic in-out easing function - var val = Math.easeInOutQuad(currentTime, start, change, duration) - // move the document.body - move(val) - // do the animation unless its over - if (currentTime < duration) { - requestAnimFrame(animateScroll) - } else { - if (callback && typeof (callback) === 'function') { - // the animation is done so lets callback - callback() - } - } - } - animateScroll() -} +Math.easeInOutQuad = function(t, b, c, d) { + t /= d / 2 + if (t < 1) { + return c / 2 * t * t + b + } + t-- + return -c / 2 * (t * (t - 2) - 1) + b +} + +// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts +var requestAnimFrame = (function() { + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } +})() + +/** + * Because it's so fucking difficult to detect the scrolling element, just move them all + * @param {number} amount + */ +function move(amount) { + document.documentElement.scrollTop = amount + document.body.parentNode.scrollTop = amount + document.body.scrollTop = amount +} + +function position() { + return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop +} + +/** + * @param {number} to + * @param {number} duration + * @param {Function} callback + */ +export function scrollTo(to, duration, callback) { + const start = position() + const change = to - start + const increment = 20 + let currentTime = 0 + duration = (typeof (duration) === 'undefined') ? 500 : duration + var animateScroll = function() { + // increment the time + currentTime += increment + // find the value with the quadratic in-out easing function + var val = Math.easeInOutQuad(currentTime, start, change, duration) + // move the document.body + move(val) + // do the animation unless its over + if (currentTime < duration) { + requestAnimFrame(animateScroll) + } else { + if (callback && typeof (callback) === 'function') { + // the animation is done so lets callback + callback() + } + } + } + animateScroll() +} diff --git a/ruoyi-ui/src/utils/validate.js b/yudao-admin-ui/src/utils/validate.js similarity index 95% rename from ruoyi-ui/src/utils/validate.js rename to yudao-admin-ui/src/utils/validate.js index 9c00400ee..adfa25425 100644 --- a/ruoyi-ui/src/utils/validate.js +++ b/yudao-admin-ui/src/utils/validate.js @@ -1,83 +1,83 @@ -/** - * @param {string} path - * @returns {Boolean} - */ -export function isExternal(path) { - return /^(https?:|mailto:|tel:)/.test(path) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUsername(str) { - const valid_map = ['admin', 'editor'] - return valid_map.indexOf(str.trim()) >= 0 -} - -/** - * @param {string} url - * @returns {Boolean} - */ -export function validURL(url) { - const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ - return reg.test(url) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validLowerCase(str) { - const reg = /^[a-z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUpperCase(str) { - const reg = /^[A-Z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validAlphabets(str) { - const reg = /^[A-Za-z]+$/ - return reg.test(str) -} - -/** - * @param {string} email - * @returns {Boolean} - */ -export function validEmail(email) { - const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ - return reg.test(email) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function isString(str) { - if (typeof str === 'string' || str instanceof String) { - return true - } - return false -} - -/** - * @param {Array} arg - * @returns {Boolean} - */ -export function isArray(arg) { - if (typeof Array.isArray === 'undefined') { - return Object.prototype.toString.call(arg) === '[object Array]' - } - return Array.isArray(arg) -} +/** + * @param {string} path + * @returns {Boolean} + */ +export function isExternal(path) { + return /^(https?:|mailto:|tel:)/.test(path) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validUsername(str) { + const valid_map = ['admin', 'editor'] + return valid_map.indexOf(str.trim()) >= 0 +} + +/** + * @param {string} url + * @returns {Boolean} + */ +export function validURL(url) { + const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ + return reg.test(url) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validLowerCase(str) { + const reg = /^[a-z]+$/ + return reg.test(str) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validUpperCase(str) { + const reg = /^[A-Z]+$/ + return reg.test(str) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validAlphabets(str) { + const reg = /^[A-Za-z]+$/ + return reg.test(str) +} + +/** + * @param {string} email + * @returns {Boolean} + */ +export function validEmail(email) { + const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + return reg.test(email) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function isString(str) { + if (typeof str === 'string' || str instanceof String) { + return true + } + return false +} + +/** + * @param {Array} arg + * @returns {Boolean} + */ +export function isArray(arg) { + if (typeof Array.isArray === 'undefined') { + return Object.prototype.toString.call(arg) === '[object Array]' + } + return Array.isArray(arg) +} diff --git a/ruoyi-ui/src/views/components/icons/element-icons.js b/yudao-admin-ui/src/views/components/icons/element-icons.js similarity index 99% rename from ruoyi-ui/src/views/components/icons/element-icons.js rename to yudao-admin-ui/src/views/components/icons/element-icons.js index ae33ba0e3..9ea4d63fd 100644 --- a/ruoyi-ui/src/views/components/icons/element-icons.js +++ b/yudao-admin-ui/src/views/components/icons/element-icons.js @@ -1,3 +1,3 @@ -const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round'] - -export default elementIcons +const elementIcons = ['platform-eleme', 'eleme', 'delete-solid', 'delete', 's-tools', 'setting', 'user-solid', 'user', 'phone', 'phone-outline', 'more', 'more-outline', 'star-on', 'star-off', 's-goods', 'goods', 'warning', 'warning-outline', 'question', 'info', 'remove', 'circle-plus', 'success', 'error', 'zoom-in', 'zoom-out', 'remove-outline', 'circle-plus-outline', 'circle-check', 'circle-close', 's-help', 'help', 'minus', 'plus', 'check', 'close', 'picture', 'picture-outline', 'picture-outline-round', 'upload', 'upload2', 'download', 'camera-solid', 'camera', 'video-camera-solid', 'video-camera', 'message-solid', 'bell', 's-cooperation', 's-order', 's-platform', 's-fold', 's-unfold', 's-operation', 's-promotion', 's-home', 's-release', 's-ticket', 's-management', 's-open', 's-shop', 's-marketing', 's-flag', 's-comment', 's-finance', 's-claim', 's-custom', 's-opportunity', 's-data', 's-check', 's-grid', 'menu', 'share', 'd-caret', 'caret-left', 'caret-right', 'caret-bottom', 'caret-top', 'bottom-left', 'bottom-right', 'back', 'right', 'bottom', 'top', 'top-left', 'top-right', 'arrow-left', 'arrow-right', 'arrow-down', 'arrow-up', 'd-arrow-left', 'd-arrow-right', 'video-pause', 'video-play', 'refresh', 'refresh-right', 'refresh-left', 'finished', 'sort', 'sort-up', 'sort-down', 'rank', 'loading', 'view', 'c-scale-to-original', 'date', 'edit', 'edit-outline', 'folder', 'folder-opened', 'folder-add', 'folder-remove', 'folder-delete', 'folder-checked', 'tickets', 'document-remove', 'document-delete', 'document-copy', 'document-checked', 'document', 'document-add', 'printer', 'paperclip', 'takeaway-box', 'search', 'monitor', 'attract', 'mobile', 'scissors', 'umbrella', 'headset', 'brush', 'mouse', 'coordinate', 'magic-stick', 'reading', 'data-line', 'data-board', 'pie-chart', 'data-analysis', 'collection-tag', 'film', 'suitcase', 'suitcase-1', 'receiving', 'collection', 'files', 'notebook-1', 'notebook-2', 'toilet-paper', 'office-building', 'school', 'table-lamp', 'house', 'no-smoking', 'smoking', 'shopping-cart-full', 'shopping-cart-1', 'shopping-cart-2', 'shopping-bag-1', 'shopping-bag-2', 'sold-out', 'sell', 'present', 'box', 'bank-card', 'money', 'coin', 'wallet', 'discount', 'price-tag', 'news', 'guide', 'male', 'female', 'thumb', 'cpu', 'link', 'connection', 'open', 'turn-off', 'set-up', 'chat-round', 'chat-line-round', 'chat-square', 'chat-dot-round', 'chat-dot-square', 'chat-line-square', 'message', 'postcard', 'position', 'turn-off-microphone', 'microphone', 'close-notification', 'bangzhu', 'time', 'odometer', 'crop', 'aim', 'switch-button', 'full-screen', 'copy-document', 'mic', 'stopwatch', 'medal-1', 'medal', 'trophy', 'trophy-1', 'first-aid-kit', 'discover', 'place', 'location', 'location-outline', 'location-information', 'add-location', 'delete-location', 'map-location', 'alarm-clock', 'timer', 'watch-1', 'watch', 'lock', 'unlock', 'key', 'service', 'mobile-phone', 'bicycle', 'truck', 'ship', 'basketball', 'football', 'soccer', 'baseball', 'wind-power', 'light-rain', 'lightning', 'heavy-rain', 'sunrise', 'sunrise-1', 'sunset', 'sunny', 'cloudy', 'partly-cloudy', 'cloudy-and-sunny', 'moon', 'moon-night', 'dish', 'dish-1', 'food', 'chicken', 'fork-spoon', 'knife-fork', 'burger', 'tableware', 'sugar', 'dessert', 'ice-cream', 'hot-water', 'water-cup', 'coffee-cup', 'cold-drink', 'goblet', 'goblet-full', 'goblet-square', 'goblet-square-full', 'refrigerator', 'grape', 'watermelon', 'cherry', 'apple', 'pear', 'orange', 'coffee', 'ice-tea', 'ice-drink', 'milk-tea', 'potato-strips', 'lollipop', 'ice-cream-square', 'ice-cream-round'] + +export default elementIcons diff --git a/ruoyi-ui/src/views/components/icons/index.vue b/yudao-admin-ui/src/views/components/icons/index.vue similarity index 95% rename from ruoyi-ui/src/views/components/icons/index.vue rename to yudao-admin-ui/src/views/components/icons/index.vue index f422eee97..d3c9a7190 100644 --- a/ruoyi-ui/src/views/components/icons/index.vue +++ b/yudao-admin-ui/src/views/components/icons/index.vue @@ -1,87 +1,87 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/components/icons/svg-icons.js b/yudao-admin-ui/src/views/components/icons/svg-icons.js similarity index 96% rename from ruoyi-ui/src/views/components/icons/svg-icons.js rename to yudao-admin-ui/src/views/components/icons/svg-icons.js index 9713fd8d8..724cd8e9d 100644 --- a/ruoyi-ui/src/views/components/icons/svg-icons.js +++ b/yudao-admin-ui/src/views/components/icons/svg-icons.js @@ -1,10 +1,10 @@ -const req = require.context('../../../assets/icons/svg', false, /\.svg$/) -const requireAll = requireContext => requireContext.keys() - -const re = /\.\/(.*)\.svg/ - -const svgIcons = requireAll(req).map(i => { - return i.match(re)[1] -}) - -export default svgIcons +const req = require.context('../../../assets/icons/svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys() + +const re = /\.\/(.*)\.svg/ + +const svgIcons = requireAll(req).map(i => { + return i.match(re)[1] +}) + +export default svgIcons diff --git a/ruoyi-ui/src/views/dashboard/BarChart.vue b/yudao-admin-ui/src/views/dashboard/BarChart.vue similarity index 95% rename from ruoyi-ui/src/views/dashboard/BarChart.vue rename to yudao-admin-ui/src/views/dashboard/BarChart.vue index 6b464e1c4..be0af34f8 100644 --- a/ruoyi-ui/src/views/dashboard/BarChart.vue +++ b/yudao-admin-ui/src/views/dashboard/BarChart.vue @@ -1,102 +1,102 @@ - - - + + + diff --git a/ruoyi-ui/src/views/dashboard/LineChart.vue b/yudao-admin-ui/src/views/dashboard/LineChart.vue similarity index 95% rename from ruoyi-ui/src/views/dashboard/LineChart.vue rename to yudao-admin-ui/src/views/dashboard/LineChart.vue index 4e30a3701..e654168dd 100644 --- a/ruoyi-ui/src/views/dashboard/LineChart.vue +++ b/yudao-admin-ui/src/views/dashboard/LineChart.vue @@ -1,135 +1,135 @@ - - - + + + diff --git a/ruoyi-ui/src/views/dashboard/PanelGroup.vue b/yudao-admin-ui/src/views/dashboard/PanelGroup.vue similarity index 95% rename from ruoyi-ui/src/views/dashboard/PanelGroup.vue rename to yudao-admin-ui/src/views/dashboard/PanelGroup.vue index 8d3a73bca..1a1081fcb 100644 --- a/ruoyi-ui/src/views/dashboard/PanelGroup.vue +++ b/yudao-admin-ui/src/views/dashboard/PanelGroup.vue @@ -1,181 +1,181 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/dashboard/PieChart.vue b/yudao-admin-ui/src/views/dashboard/PieChart.vue similarity index 95% rename from ruoyi-ui/src/views/dashboard/PieChart.vue rename to yudao-admin-ui/src/views/dashboard/PieChart.vue index d0e4f5016..4d2ef32a5 100644 --- a/ruoyi-ui/src/views/dashboard/PieChart.vue +++ b/yudao-admin-ui/src/views/dashboard/PieChart.vue @@ -1,79 +1,79 @@ - - - + + + diff --git a/ruoyi-ui/src/views/dashboard/RaddarChart.vue b/yudao-admin-ui/src/views/dashboard/RaddarChart.vue similarity index 95% rename from ruoyi-ui/src/views/dashboard/RaddarChart.vue rename to yudao-admin-ui/src/views/dashboard/RaddarChart.vue index 9831abfec..6823af318 100644 --- a/ruoyi-ui/src/views/dashboard/RaddarChart.vue +++ b/yudao-admin-ui/src/views/dashboard/RaddarChart.vue @@ -1,116 +1,116 @@ - - - + + + diff --git a/ruoyi-ui/src/views/dashboard/mixins/resize.js b/yudao-admin-ui/src/views/dashboard/mixins/resize.js similarity index 96% rename from ruoyi-ui/src/views/dashboard/mixins/resize.js rename to yudao-admin-ui/src/views/dashboard/mixins/resize.js index d26194c6d..b1e76e947 100644 --- a/ruoyi-ui/src/views/dashboard/mixins/resize.js +++ b/yudao-admin-ui/src/views/dashboard/mixins/resize.js @@ -1,56 +1,56 @@ -import { debounce } from '@/utils' - -export default { - data() { - return { - $_sidebarElm: null, - $_resizeHandler: null - } - }, - mounted() { - this.initListener() - }, - activated() { - if (!this.$_resizeHandler) { - // avoid duplication init - this.initListener() - } - - // when keep-alive chart activated, auto resize - this.resize() - }, - beforeDestroy() { - this.destroyListener() - }, - deactivated() { - this.destroyListener() - }, - methods: { - // use $_ for mixins properties - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential - $_sidebarResizeHandler(e) { - if (e.propertyName === 'width') { - this.$_resizeHandler() - } - }, - initListener() { - this.$_resizeHandler = debounce(() => { - this.resize() - }, 100) - window.addEventListener('resize', this.$_resizeHandler) - - this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] - this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) - }, - destroyListener() { - window.removeEventListener('resize', this.$_resizeHandler) - this.$_resizeHandler = null - - this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) - }, - resize() { - const { chart } = this - chart && chart.resize() - } - } -} +import { debounce } from '@/utils' + +export default { + data() { + return { + $_sidebarElm: null, + $_resizeHandler: null + } + }, + mounted() { + this.initListener() + }, + activated() { + if (!this.$_resizeHandler) { + // avoid duplication init + this.initListener() + } + + // when keep-alive chart activated, auto resize + this.resize() + }, + beforeDestroy() { + this.destroyListener() + }, + deactivated() { + this.destroyListener() + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_sidebarResizeHandler(e) { + if (e.propertyName === 'width') { + this.$_resizeHandler() + } + }, + initListener() { + this.$_resizeHandler = debounce(() => { + this.resize() + }, 100) + window.addEventListener('resize', this.$_resizeHandler) + + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) + }, + destroyListener() { + window.removeEventListener('resize', this.$_resizeHandler) + this.$_resizeHandler = null + + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) + }, + resize() { + const { chart } = this + chart && chart.resize() + } + } +} diff --git a/ruoyi-ui/src/views/error/401.vue b/yudao-admin-ui/src/views/error/401.vue similarity index 95% rename from ruoyi-ui/src/views/error/401.vue rename to yudao-admin-ui/src/views/error/401.vue index 9664fbaf4..448b6ecd6 100644 --- a/ruoyi-ui/src/views/error/401.vue +++ b/yudao-admin-ui/src/views/error/401.vue @@ -1,88 +1,88 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/error/404.vue b/yudao-admin-ui/src/views/error/404.vue similarity index 95% rename from ruoyi-ui/src/views/error/404.vue rename to yudao-admin-ui/src/views/error/404.vue index 666d27c87..96f075c17 100644 --- a/ruoyi-ui/src/views/error/404.vue +++ b/yudao-admin-ui/src/views/error/404.vue @@ -1,233 +1,233 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/index.vue b/yudao-admin-ui/src/views/index.vue similarity index 100% rename from ruoyi-ui/src/views/index.vue rename to yudao-admin-ui/src/views/index.vue diff --git a/ruoyi-ui/src/views/index_old.vue b/yudao-admin-ui/src/views/index_old.vue similarity index 100% rename from ruoyi-ui/src/views/index_old.vue rename to yudao-admin-ui/src/views/index_old.vue diff --git a/ruoyi-ui/src/views/infra/apiAccessLog/index.vue b/yudao-admin-ui/src/views/infra/apiAccessLog/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/apiAccessLog/index.vue rename to yudao-admin-ui/src/views/infra/apiAccessLog/index.vue diff --git a/ruoyi-ui/src/views/infra/apiErrorLog/index.vue b/yudao-admin-ui/src/views/infra/apiErrorLog/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/apiErrorLog/index.vue rename to yudao-admin-ui/src/views/infra/apiErrorLog/index.vue diff --git a/ruoyi-ui/src/views/infra/config/index.vue b/yudao-admin-ui/src/views/infra/config/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/config/index.vue rename to yudao-admin-ui/src/views/infra/config/index.vue diff --git a/ruoyi-ui/src/views/infra/druid/index.vue b/yudao-admin-ui/src/views/infra/druid/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/druid/index.vue rename to yudao-admin-ui/src/views/infra/druid/index.vue diff --git a/ruoyi-ui/src/views/infra/file/index.vue b/yudao-admin-ui/src/views/infra/file/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/file/index.vue rename to yudao-admin-ui/src/views/infra/file/index.vue diff --git a/ruoyi-ui/src/views/infra/job/index.vue b/yudao-admin-ui/src/views/infra/job/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/job/index.vue rename to yudao-admin-ui/src/views/infra/job/index.vue diff --git a/ruoyi-ui/src/views/infra/job/log.vue b/yudao-admin-ui/src/views/infra/job/log.vue similarity index 100% rename from ruoyi-ui/src/views/infra/job/log.vue rename to yudao-admin-ui/src/views/infra/job/log.vue diff --git a/ruoyi-ui/src/views/infra/redis/index.vue b/yudao-admin-ui/src/views/infra/redis/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/redis/index.vue rename to yudao-admin-ui/src/views/infra/redis/index.vue diff --git a/ruoyi-ui/src/views/infra/server/index.vue b/yudao-admin-ui/src/views/infra/server/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/server/index.vue rename to yudao-admin-ui/src/views/infra/server/index.vue diff --git a/ruoyi-ui/src/views/infra/skywalking/index.vue b/yudao-admin-ui/src/views/infra/skywalking/index.vue similarity index 100% rename from ruoyi-ui/src/views/infra/skywalking/index.vue rename to yudao-admin-ui/src/views/infra/skywalking/index.vue diff --git a/ruoyi-ui/src/views/infra/skywalking/log.vue b/yudao-admin-ui/src/views/infra/skywalking/log.vue similarity index 100% rename from ruoyi-ui/src/views/infra/skywalking/log.vue rename to yudao-admin-ui/src/views/infra/skywalking/log.vue diff --git a/ruoyi-ui/src/views/login.vue b/yudao-admin-ui/src/views/login.vue similarity index 96% rename from ruoyi-ui/src/views/login.vue rename to yudao-admin-ui/src/views/login.vue index 1fca6413f..40ef6f799 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/yudao-admin-ui/src/views/login.vue @@ -1,204 +1,204 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/redirect.vue b/yudao-admin-ui/src/views/redirect.vue similarity index 100% rename from ruoyi-ui/src/views/redirect.vue rename to yudao-admin-ui/src/views/redirect.vue diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/yudao-admin-ui/src/views/system/dept/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/dept/index.vue rename to yudao-admin-ui/src/views/system/dept/index.vue index 0fc5a8733..8202d2f99 100644 --- a/ruoyi-ui/src/views/system/dept/index.vue +++ b/yudao-admin-ui/src/views/system/dept/index.vue @@ -1,283 +1,283 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/yudao-admin-ui/src/views/system/dict/data.vue similarity index 97% rename from ruoyi-ui/src/views/system/dict/data.vue rename to yudao-admin-ui/src/views/system/dict/data.vue index 13d262303..fa01ebce5 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/yudao-admin-ui/src/views/system/dict/data.vue @@ -1,277 +1,277 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/yudao-admin-ui/src/views/system/dict/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/dict/index.vue rename to yudao-admin-ui/src/views/system/dict/index.vue index a730e61bf..b93131764 100644 --- a/ruoyi-ui/src/views/system/dict/index.vue +++ b/yudao-admin-ui/src/views/system/dict/index.vue @@ -1,263 +1,263 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/errorCode/index.vue b/yudao-admin-ui/src/views/system/errorCode/index.vue similarity index 100% rename from ruoyi-ui/src/views/system/errorCode/index.vue rename to yudao-admin-ui/src/views/system/errorCode/index.vue diff --git a/ruoyi-ui/src/views/system/loginlog/index.vue b/yudao-admin-ui/src/views/system/loginlog/index.vue similarity index 100% rename from ruoyi-ui/src/views/system/loginlog/index.vue rename to yudao-admin-ui/src/views/system/loginlog/index.vue diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/yudao-admin-ui/src/views/system/menu/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/menu/index.vue rename to yudao-admin-ui/src/views/system/menu/index.vue index 767878e2e..e46c2664f 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/yudao-admin-ui/src/views/system/menu/index.vue @@ -1,327 +1,327 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/yudao-admin-ui/src/views/system/notice/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/notice/index.vue rename to yudao-admin-ui/src/views/system/notice/index.vue index 30f17bcf2..c50da669a 100644 --- a/ruoyi-ui/src/views/system/notice/index.vue +++ b/yudao-admin-ui/src/views/system/notice/index.vue @@ -1,251 +1,251 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/operatelog/index.vue b/yudao-admin-ui/src/views/system/operatelog/index.vue similarity index 100% rename from ruoyi-ui/src/views/system/operatelog/index.vue rename to yudao-admin-ui/src/views/system/operatelog/index.vue diff --git a/ruoyi-ui/src/views/system/post/index.vue b/yudao-admin-ui/src/views/system/post/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/post/index.vue rename to yudao-admin-ui/src/views/system/post/index.vue index 80cab5d49..96f955ec4 100644 --- a/ruoyi-ui/src/views/system/post/index.vue +++ b/yudao-admin-ui/src/views/system/post/index.vue @@ -1,249 +1,249 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/role/index.vue b/yudao-admin-ui/src/views/system/role/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/role/index.vue rename to yudao-admin-ui/src/views/system/role/index.vue index 744f5f90d..0ced5d8df 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/yudao-admin-ui/src/views/system/role/index.vue @@ -1,514 +1,514 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/session/index.vue b/yudao-admin-ui/src/views/system/session/index.vue similarity index 100% rename from ruoyi-ui/src/views/system/session/index.vue rename to yudao-admin-ui/src/views/system/session/index.vue diff --git a/ruoyi-ui/src/views/system/sms/smsChannel.vue b/yudao-admin-ui/src/views/system/sms/smsChannel.vue similarity index 100% rename from ruoyi-ui/src/views/system/sms/smsChannel.vue rename to yudao-admin-ui/src/views/system/sms/smsChannel.vue diff --git a/ruoyi-ui/src/views/system/sms/smsLog.vue b/yudao-admin-ui/src/views/system/sms/smsLog.vue similarity index 100% rename from ruoyi-ui/src/views/system/sms/smsLog.vue rename to yudao-admin-ui/src/views/system/sms/smsLog.vue diff --git a/ruoyi-ui/src/views/system/sms/smsTemplate.vue b/yudao-admin-ui/src/views/system/sms/smsTemplate.vue similarity index 100% rename from ruoyi-ui/src/views/system/sms/smsTemplate.vue rename to yudao-admin-ui/src/views/system/sms/smsTemplate.vue diff --git a/ruoyi-ui/src/views/system/user/index.vue b/yudao-admin-ui/src/views/system/user/index.vue similarity index 100% rename from ruoyi-ui/src/views/system/user/index.vue rename to yudao-admin-ui/src/views/system/user/index.vue diff --git a/ruoyi-ui/src/views/system/user/profile/index.vue b/yudao-admin-ui/src/views/system/user/profile/index.vue similarity index 97% rename from ruoyi-ui/src/views/system/user/profile/index.vue rename to yudao-admin-ui/src/views/system/user/profile/index.vue index cae5e2e4b..bb4192857 100644 --- a/ruoyi-ui/src/views/system/user/profile/index.vue +++ b/yudao-admin-ui/src/views/system/user/profile/index.vue @@ -1,93 +1,93 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue b/yudao-admin-ui/src/views/system/user/profile/resetPwd.vue similarity index 96% rename from ruoyi-ui/src/views/system/user/profile/resetPwd.vue rename to yudao-admin-ui/src/views/system/user/profile/resetPwd.vue index 135971701..ee6524053 100644 --- a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue +++ b/yudao-admin-ui/src/views/system/user/profile/resetPwd.vue @@ -1,72 +1,72 @@ - - - + + + diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/yudao-admin-ui/src/views/system/user/profile/userAvatar.vue similarity index 96% rename from ruoyi-ui/src/views/system/user/profile/userAvatar.vue rename to yudao-admin-ui/src/views/system/user/profile/userAvatar.vue index aca1990d7..edc15e36e 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/yudao-admin-ui/src/views/system/user/profile/userAvatar.vue @@ -1,167 +1,167 @@ - - - - \ No newline at end of file diff --git a/ruoyi-ui/src/views/system/user/profile/userInfo.vue b/yudao-admin-ui/src/views/system/user/profile/userInfo.vue similarity index 96% rename from ruoyi-ui/src/views/system/user/profile/userInfo.vue rename to yudao-admin-ui/src/views/system/user/profile/userInfo.vue index 3aea8bcd5..058a1130f 100644 --- a/ruoyi-ui/src/views/system/user/profile/userInfo.vue +++ b/yudao-admin-ui/src/views/system/user/profile/userInfo.vue @@ -1,76 +1,76 @@ - - - + + + diff --git a/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue b/yudao-admin-ui/src/views/tool/build/CodeTypeDialog.vue similarity index 95% rename from ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue rename to yudao-admin-ui/src/views/tool/build/CodeTypeDialog.vue index 99f9eb2dc..941ec3625 100644 --- a/ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue +++ b/yudao-admin-ui/src/views/tool/build/CodeTypeDialog.vue @@ -1,106 +1,106 @@ - - + + diff --git a/ruoyi-ui/src/views/tool/build/DraggableItem.vue b/yudao-admin-ui/src/views/tool/build/DraggableItem.vue similarity index 96% rename from ruoyi-ui/src/views/tool/build/DraggableItem.vue rename to yudao-admin-ui/src/views/tool/build/DraggableItem.vue index f669ac0e6..e881778f0 100644 --- a/ruoyi-ui/src/views/tool/build/DraggableItem.vue +++ b/yudao-admin-ui/src/views/tool/build/DraggableItem.vue @@ -1,100 +1,100 @@ - + diff --git a/ruoyi-ui/src/views/tool/build/IconsDialog.vue b/yudao-admin-ui/src/views/tool/build/IconsDialog.vue similarity index 95% rename from ruoyi-ui/src/views/tool/build/IconsDialog.vue rename to yudao-admin-ui/src/views/tool/build/IconsDialog.vue index 0d1277835..958be50c5 100644 --- a/ruoyi-ui/src/views/tool/build/IconsDialog.vue +++ b/yudao-admin-ui/src/views/tool/build/IconsDialog.vue @@ -1,123 +1,123 @@ - - - + + + diff --git a/ruoyi-ui/src/views/tool/build/RightPanel.vue b/yudao-admin-ui/src/views/tool/build/RightPanel.vue similarity index 97% rename from ruoyi-ui/src/views/tool/build/RightPanel.vue rename to yudao-admin-ui/src/views/tool/build/RightPanel.vue index 1acdc5794..abaec431e 100644 --- a/ruoyi-ui/src/views/tool/build/RightPanel.vue +++ b/yudao-admin-ui/src/views/tool/build/RightPanel.vue @@ -1,944 +1,944 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue b/yudao-admin-ui/src/views/tool/build/TreeNodeDialog.vue similarity index 95% rename from ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue rename to yudao-admin-ui/src/views/tool/build/TreeNodeDialog.vue index 477c010b9..c225c4cc8 100644 --- a/ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue +++ b/yudao-admin-ui/src/views/tool/build/TreeNodeDialog.vue @@ -1,149 +1,149 @@ - - + + diff --git a/ruoyi-ui/src/views/tool/build/index.vue b/yudao-admin-ui/src/views/tool/build/index.vue similarity index 96% rename from ruoyi-ui/src/views/tool/build/index.vue rename to yudao-admin-ui/src/views/tool/build/index.vue index 4548012de..92291e981 100644 --- a/ruoyi-ui/src/views/tool/build/index.vue +++ b/yudao-admin-ui/src/views/tool/build/index.vue @@ -1,789 +1,789 @@ - - - - - + + + + + diff --git a/ruoyi-ui/src/views/tool/codegen/basicInfoForm.vue b/yudao-admin-ui/src/views/tool/codegen/basicInfoForm.vue similarity index 100% rename from ruoyi-ui/src/views/tool/codegen/basicInfoForm.vue rename to yudao-admin-ui/src/views/tool/codegen/basicInfoForm.vue diff --git a/ruoyi-ui/src/views/tool/codegen/editTable.vue b/yudao-admin-ui/src/views/tool/codegen/editTable.vue similarity index 100% rename from ruoyi-ui/src/views/tool/codegen/editTable.vue rename to yudao-admin-ui/src/views/tool/codegen/editTable.vue diff --git a/ruoyi-ui/src/views/tool/codegen/genInfoForm.vue b/yudao-admin-ui/src/views/tool/codegen/genInfoForm.vue similarity index 100% rename from ruoyi-ui/src/views/tool/codegen/genInfoForm.vue rename to yudao-admin-ui/src/views/tool/codegen/genInfoForm.vue diff --git a/ruoyi-ui/src/views/tool/codegen/importTable.vue b/yudao-admin-ui/src/views/tool/codegen/importTable.vue similarity index 100% rename from ruoyi-ui/src/views/tool/codegen/importTable.vue rename to yudao-admin-ui/src/views/tool/codegen/importTable.vue diff --git a/ruoyi-ui/src/views/tool/codegen/index.vue b/yudao-admin-ui/src/views/tool/codegen/index.vue similarity index 100% rename from ruoyi-ui/src/views/tool/codegen/index.vue rename to yudao-admin-ui/src/views/tool/codegen/index.vue diff --git a/ruoyi-ui/src/views/tool/dbDoc/index.vue b/yudao-admin-ui/src/views/tool/dbDoc/index.vue similarity index 100% rename from ruoyi-ui/src/views/tool/dbDoc/index.vue rename to yudao-admin-ui/src/views/tool/dbDoc/index.vue diff --git a/ruoyi-ui/src/views/tool/swagger/index.vue b/yudao-admin-ui/src/views/tool/swagger/index.vue similarity index 96% rename from ruoyi-ui/src/views/tool/swagger/index.vue rename to yudao-admin-ui/src/views/tool/swagger/index.vue index 13daa0911..8504daf31 100644 --- a/ruoyi-ui/src/views/tool/swagger/index.vue +++ b/yudao-admin-ui/src/views/tool/swagger/index.vue @@ -1,26 +1,26 @@ -